diff options
Diffstat (limited to 'src')
77 files changed, 83924 insertions, 5885 deletions
diff --git a/src/char/Makefile.in b/src/char/Makefile.in index 02759b32e..4bb7f3fb8 100644 --- a/src/char/Makefile.in +++ b/src/char/Makefile.in @@ -34,21 +34,27 @@ CC = @CC@ export CC ##################################################################### -.PHONY: all sql char-server clean help +.PHONY: all sql char-server clean buildclean help all: sql sql: char-server -clean: +buildclean: + @echo " CLEAN char (build temp files)" + @rm -rf *.o obj_sql + +clean: buildclean @echo " CLEAN char" - @rm -rf *.o obj_sql ../../char-server@EXEEXT@ + @rm -rf ../../char-server@EXEEXT@ help: @echo "possible targets are 'char-server' 'all' 'clean' 'help'" @echo "'char-server' - char server" @echo "'all' - builds all above targets" @echo "'clean' - cleans builds and objects" + @echo "'buildclean' - cleans build temporary (object) files, without deleting the" + @echo " executables" @echo "'help' - outputs this message" ##################################################################### diff --git a/src/char/inter.c b/src/char/inter.c index 353d3e009..2dc15933b 100644 --- a/src/char/inter.c +++ b/src/char/inter.c @@ -414,16 +414,19 @@ const char* geoip_getcountry(uint32 ipnum){ } return geoip_countryname[0]; } -/* sends a mesasge to map server (fd) to a user (u_fd) although we use fd we keep aid for safe-check */ -/* extremely handy I believe it will serve other uses in the near future */ -void inter_to_fd(int fd, int u_fd, int aid, char* msg, ...) { + +/** + * Argument-list version of inter_msg_to_fd + * @see inter_msg_to_fd + */ +void inter_vmsg_to_fd(int fd, int u_fd, int aid, char* msg, va_list ap) { char msg_out[512]; - va_list ap; + va_list apcopy; int len = 1;/* yes we start at 1 */ - va_start(ap,msg); - len += vsnprintf(msg_out, 512, msg, ap); - va_end(ap); + va_copy(apcopy, ap); + len += vsnprintf(msg_out, 512, msg, apcopy); + va_end(apcopy); WFIFOHEAD(fd,12 + len); @@ -437,6 +440,23 @@ void inter_to_fd(int fd, int u_fd, int aid, char* msg, ...) { return; } + +/** + * Sends a message to map server (fd) to a user (u_fd) although we use fd we + * keep aid for safe-check. + * @param fd Mapserver's fd + * @param u_fd Recipient's fd + * @param aid Recipient's expected for sanity checks on the mapserver + * @param msg Message format string + * @param ... Additional parameters for (v)sprinf + */ +void inter_msg_to_fd(int fd, int u_fd, int aid, char* msg, ...) { + va_list ap; + va_start(ap,msg); + inter_vmsg_to_fd(fd, u_fd, aid, msg, ap); + va_end(ap); +} + /* [Dekamaster/Nightroad] */ void mapif_parse_accinfo(int fd) { int u_fd = RFIFOL(fd,2), aid = RFIFOL(fd,6), castergroup = RFIFOL(fd,10); @@ -454,10 +474,10 @@ void mapif_parse_accinfo(int fd) { if ( SQL_ERROR == SQL->Query(sql_handle, "SELECT `account_id`,`name`,`class`,`base_level`,`job_level`,`online` FROM `%s` WHERE `name` LIKE '%s' LIMIT 10", char_db, query_esq) || SQL->NumRows(sql_handle) == 0 ) { if( SQL->NumRows(sql_handle) == 0 ) { - inter_to_fd(fd, u_fd, aid, "No matches were found for your criteria, '%s'",query); + inter_msg_to_fd(fd, u_fd, aid, "No matches were found for your criteria, '%s'",query); } else { Sql_ShowDebug(sql_handle); - inter_to_fd(fd, u_fd, aid, "An error occured, bother your admin about it."); + inter_msg_to_fd(fd, u_fd, aid, "An error occured, bother your admin about it."); } SQL->FreeResult(sql_handle); return; @@ -467,7 +487,7 @@ void mapif_parse_accinfo(int fd) { SQL->GetData(sql_handle, 0, &data, NULL); account_id = atoi(data); SQL->FreeResult(sql_handle); } else {// more than one, listing... [Dekamaster/Nightroad] - inter_to_fd(fd, u_fd, aid, "Your query returned the following %d results, please be more specific...",(int)SQL->NumRows(sql_handle)); + inter_msg_to_fd(fd, u_fd, aid, "Your query returned the following %d results, please be more specific...",(int)SQL->NumRows(sql_handle)); while ( SQL_SUCCESS == SQL->NextRow(sql_handle) ) { int class_; short base_level, job_level, online; @@ -480,7 +500,7 @@ void mapif_parse_accinfo(int fd) { SQL->GetData(sql_handle, 4, &data, NULL); job_level = atoi(data); SQL->GetData(sql_handle, 5, &data, NULL); online = atoi(data); - inter_to_fd(fd, u_fd, aid, "[AID: %d] %s | %s | Level: %d/%d | %s", account_id, name, job_name(class_), base_level, job_level, online?"Online":"Offline"); + inter_msg_to_fd(fd, u_fd, aid, "[AID: %d] %s | %s | Level: %d/%d | %s", account_id, name, job_name(class_), base_level, job_level, online?"Online":"Offline"); } SQL->FreeResult(sql_handle); return; @@ -497,9 +517,9 @@ void mapif_parse_accinfo(int fd) { if ( SQL_ERROR == SQL->Query(sql_handle, "SELECT `userid`, `user_pass`, `email`, `last_ip`, `group_id`, `lastlogin`, `logincount`, `state`,`pincode`,`birthdate` FROM `login` WHERE `account_id` = '%d' LIMIT 1", account_id) || SQL->NumRows(sql_handle) == 0 ) { if( SQL->NumRows(sql_handle) == 0 ) { - inter_to_fd(fd, u_fd, aid, "No account with ID '%d' was found.", account_id ); + inter_msg_to_fd(fd, u_fd, aid, "No account with ID '%d' was found.", account_id ); } else { - inter_to_fd(fd, u_fd, aid, "An error occured, bother your admin about it."); + inter_msg_to_fd(fd, u_fd, aid, "An error occured, bother your admin about it."); Sql_ShowDebug(sql_handle); } } else { @@ -521,29 +541,29 @@ void mapif_parse_accinfo(int fd) { if (level == -1) return; - inter_to_fd(fd, u_fd, aid, "-- Account %d --", account_id ); - inter_to_fd(fd, u_fd, aid, "User: %s | GM Group: %d | State: %d", userid, level, state ); + inter_msg_to_fd(fd, u_fd, aid, "-- Account %d --", account_id ); + inter_msg_to_fd(fd, u_fd, aid, "User: %s | GM Group: %d | State: %d", userid, level, state ); if (level < castergroup) { /* only show pass if your gm level is greater than the one you're searching for */ if( strlen(pin_code) ) - inter_to_fd(fd, u_fd, aid, "Password: %s (PIN:%s)", user_pass, pin_code ); + inter_msg_to_fd(fd, u_fd, aid, "Password: %s (PIN:%s)", user_pass, pin_code ); else - inter_to_fd(fd, u_fd, aid, "Password: %s", user_pass ); + inter_msg_to_fd(fd, u_fd, aid, "Password: %s", user_pass ); } - inter_to_fd(fd, u_fd, aid, "Account e-mail: %s | Birthdate: %s", email, birthdate); - inter_to_fd(fd, u_fd, aid, "Last IP: %s (%s)", last_ip, geoip_getcountry(str2ip(last_ip)) ); - inter_to_fd(fd, u_fd, aid, "This user has logged %d times, the last time were at %s", logincount, lastlogin ); - inter_to_fd(fd, u_fd, aid, "-- Character Details --" ); + inter_msg_to_fd(fd, u_fd, aid, "Account e-mail: %s | Birthdate: %s", email, birthdate); + inter_msg_to_fd(fd, u_fd, aid, "Last IP: %s (%s)", last_ip, geoip_getcountry(str2ip(last_ip)) ); + inter_msg_to_fd(fd, u_fd, aid, "This user has logged %d times, the last time were at %s", logincount, lastlogin ); + inter_msg_to_fd(fd, u_fd, aid, "-- Character Details --" ); if ( SQL_ERROR == SQL->Query(sql_handle, "SELECT `char_id`, `name`, `char_num`, `class`, `base_level`, `job_level`, `online` FROM `%s` WHERE `account_id` = '%d' ORDER BY `char_num` LIMIT %d", char_db, account_id, MAX_CHARS) || SQL->NumRows(sql_handle) == 0 ) { if( SQL->NumRows(sql_handle) == 0 ) - inter_to_fd(fd, u_fd, aid,"This account doesn't have characters."); + inter_msg_to_fd(fd, u_fd, aid,"This account doesn't have characters."); else { - inter_to_fd(fd, u_fd, aid,"An error occured, bother your admin about it."); + inter_msg_to_fd(fd, u_fd, aid,"An error occured, bother your admin about it."); Sql_ShowDebug(sql_handle); } @@ -561,7 +581,7 @@ void mapif_parse_accinfo(int fd) { SQL->GetData(sql_handle, 5, &data, NULL); job_level = atoi(data); SQL->GetData(sql_handle, 6, &data, NULL); online = atoi(data); - inter_to_fd(fd, u_fd, aid, "[Slot/CID: %d/%d] %s | %s | Level: %d/%d | %s", char_num, char_id, name, job_name(class_), base_level, job_level, online?"On":"Off"); + inter_msg_to_fd(fd, u_fd, aid, "[Slot/CID: %d/%d] %s | %s | Level: %d/%d | %s", char_num, char_id, name, job_name(class_), base_level, job_level, online?"On":"Off"); } } SQL->FreeResult(sql_handle); @@ -743,16 +763,18 @@ static int inter_config_read(const char* cfgName) return 0; } -// Save interlog into sql -int inter_log(char* fmt, ...) -{ +/** + * Save interlog into sql (arglist version) + * @see inter_log + */ +int inter_vlog(char* fmt, va_list ap) { char str[255]; char esc_str[sizeof(str)*2+1];// escaped str - va_list ap; + va_list apcopy; - va_start(ap,fmt); - vsnprintf(str, sizeof(str), fmt, ap); - va_end(ap); + va_copy(apcopy, ap); + vsnprintf(str, sizeof(str), fmt, apcopy); + va_end(apcopy); SQL->EscapeStringLen(sql_handle, esc_str, str, strnlen(str, sizeof(str))); if( SQL_ERROR == SQL->Query(sql_handle, "INSERT INTO `%s` (`time`, `log`) VALUES (NOW(), '%s')", interlog_db, esc_str) ) @@ -761,6 +783,23 @@ int inter_log(char* fmt, ...) return 0; } +/** + * Save interlog into sql + * @param fmt Message's format string + * @param ... Additional (printf-like) arguments + * @return Always 0 // FIXME + */ +int inter_log(char* fmt, ...) { + va_list ap; + int ret; + + va_start(ap,fmt); + ret = inter_vlog(fmt, ap); + va_end(ap); + + return ret; +} + // initialize int inter_init_sql(const char *file) { diff --git a/src/char/inter.h b/src/char/inter.h index f6663813a..88501c9a0 100644 --- a/src/char/inter.h +++ b/src/char/inter.h @@ -17,6 +17,7 @@ int mapif_send_gmaccounts(void); int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason); int inter_log(char *fmt,...); +int inter_vlog(char *fmt, va_list ap); #define inter_cfgName "conf/inter-server.conf" diff --git a/src/common/HPM.c b/src/common/HPM.c index 9895ae95d..8be9298f9 100644 --- a/src/common/HPM.c +++ b/src/common/HPM.c @@ -40,7 +40,7 @@ void hplugin_export_symbol(void *var, char *name) { HPM->symbols[HPM->symbol_count - 1]->ptr = var; } -void *hplugin_import_symbol(char *name) { +void *hplugin_import_symbol(char *name, unsigned int pID) { unsigned int i; for( i = 0; i < HPM->symbol_count; i++ ) { @@ -48,7 +48,7 @@ void *hplugin_import_symbol(char *name) { return HPM->symbols[i]->ptr; } - ShowError("HPM:get_symbol: '"CL_WHITE"%s"CL_RESET"' not found!\n",name); + ShowError("HPM:get_symbol:%s: '"CL_WHITE"%s"CL_RESET"' not found!\n",HPM->pid2name(pID),name); return NULL; } @@ -59,7 +59,7 @@ bool hplugin_iscompatible(char* version) { return false; sscanf(version, "%u.%u", &req_major, &req_minor); - + return ( req_major == HPM->version[0] && req_minor <= HPM->version[1] ) ? true : false; } @@ -108,7 +108,7 @@ bool hplugin_populate(struct hplugin *plugin, const char *filename) { return true; } -void hplugin_load(const char* filename) { +struct hplugin *hplugin_load(const char* filename) { struct hplugin *plugin; struct hplugin_info *info; struct HPMi_interface **HPMi; @@ -118,7 +118,7 @@ void hplugin_load(const char* filename) { if( HPM->exists(filename) ) { ShowWarning("HPM:plugin_load: attempting to load duplicate '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename); - return; + return NULL; } plugin = HPM->create(); @@ -126,30 +126,33 @@ void hplugin_load(const char* filename) { if( !( plugin->dll = plugin_open(filename) ) ){ ShowWarning("HPM:plugin_load: failed to load '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename); HPM->unload(plugin); - return; + return NULL; } if( !( info = plugin_import(plugin->dll, "pinfo",struct hplugin_info*) ) ) { ShowDebug("HPM:plugin_load: failed to retrieve 'plugin_info' for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename); HPM->unload(plugin); - return; + return NULL; } if( !(info->type & SERVER_TYPE) ) { HPM->unload(plugin); - return; + return NULL; } if( !HPM->iscompatible(info->req_version) ) { ShowWarning("HPM:plugin_load: '"CL_WHITE"%s"CL_RESET"' incompatible version '%s' -> '%s', skipping...\n", filename, info->req_version, HPM_VERSION); HPM->unload(plugin); - return; + return NULL; } - + + plugin->info = info; + plugin->filename = aStrdup(filename); + if( !( import_symbol_ref = plugin_import(plugin->dll, "import_symbol",void **) ) ) { ShowWarning("HPM:plugin_load: failed to retrieve 'import_symbol' for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename); HPM->unload(plugin); - return; + return NULL; } *import_symbol_ref = HPM->import_symbol; @@ -157,21 +160,21 @@ void hplugin_load(const char* filename) { if( !( sql_handle = plugin_import(plugin->dll, "mysql_handle",Sql **) ) ) { ShowWarning("HPM:plugin_load: failed to retrieve 'mysql_handle' for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename); HPM->unload(plugin); - return; + return NULL; } - *sql_handle = HPM->import_symbol("sql_handle"); + *sql_handle = HPM->import_symbol("sql_handle",plugin->idx); if( !( HPMi = plugin_import(plugin->dll, "HPMi",struct HPMi_interface **) ) ) { ShowWarning("HPM:plugin_load: failed to retrieve 'HPMi' for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename); HPM->unload(plugin); - return; + return NULL; } if( !( *HPMi = plugin_import(plugin->dll, "HPMi_s",struct HPMi_interface *) ) ) { ShowWarning("HPM:plugin_load: failed to retrieve 'HPMi_s' for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename); HPM->unload(plugin); - return; + return NULL; } plugin->hpi = *HPMi; @@ -184,30 +187,34 @@ void hplugin_load(const char* filename) { if( ( plugin->hpi->event[HPET_READY] = plugin_import(plugin->dll, "server_online",void (*)(void)) ) ) anyEvent = true; + if( ( plugin->hpi->event[HPET_POST_FINAL] = plugin_import(plugin->dll, "server_post_final",void (*)(void)) ) ) + anyEvent = true; + if( !anyEvent ) { ShowWarning("HPM:plugin_load: no events found for '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename); HPM->unload(plugin); - return; + return NULL; } if( !HPM->populate(plugin,filename) ) - return; + return NULL; + /* id */ plugin->hpi->pid = plugin->idx; /* core */ - plugin->hpi->addCPCommand = HPM->import_symbol("addCPCommand"); - plugin->hpi->addPacket = HPM->import_symbol("addPacket"); - plugin->hpi->addToSession = HPM->import_symbol("addToSession"); - plugin->hpi->getFromSession = HPM->import_symbol("getFromSession"); - plugin->hpi->removeFromSession = HPM->import_symbol("removeFromSession"); + plugin->hpi->addCPCommand = HPM->import_symbol("addCPCommand",plugin->idx); + plugin->hpi->addPacket = HPM->import_symbol("addPacket",plugin->idx); + plugin->hpi->addToSession = HPM->import_symbol("addToSession",plugin->idx); + plugin->hpi->getFromSession = HPM->import_symbol("getFromSession",plugin->idx); + plugin->hpi->removeFromSession = HPM->import_symbol("removeFromSession",plugin->idx); + plugin->hpi->AddHook = HPM->import_symbol("AddHook",plugin->idx); + plugin->hpi->HookStop = HPM->import_symbol("HookStop",plugin->idx); + plugin->hpi->HookStopped = HPM->import_symbol("HookStopped",plugin->idx); /* server specific */ if( HPM->load_sub ) HPM->load_sub(plugin); - - plugin->info = info; - plugin->filename = aStrdup(filename); - - return; + + return plugin; } void hplugin_unload(struct hplugin* plugin) { @@ -253,8 +260,26 @@ void hplugins_config_read(void) { int length = config_setting_length(plist), i; char filename[60]; for(i = 0; i < length; i++) { - snprintf(filename, 60, "plugins/%s%s", config_setting_get_string_elem(plist,i), DLL_EXT); - HPM->load(filename); + if( !strcmpi(config_setting_get_string_elem(plist,i),"HPMHooking") ) {//must load it first + struct hplugin *plugin; + snprintf(filename, 60, "plugins/%s%s", config_setting_get_string_elem(plist,i), DLL_EXT); + if( ( plugin = HPM->load(filename) ) ) { + bool (*func)(bool *fr); + bool (*addhook_sub) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID); + if( ( func = plugin_import(plugin->dll, "Hooked",bool (*)(bool *)) ) && ( addhook_sub = plugin_import(plugin->dll, "HPM_Plugin_AddHook",bool (*)(enum HPluginHookType, const char *, void *, unsigned int)) ) ) { + if( func(&HPM->force_return) ) { + HPM->hooking = true; + HPM->addhook_sub = addhook_sub; + } + } + } + } + } + for(i = 0; i < length; i++) { + if( strcmpi(config_setting_get_string_elem(plist,i),"HPMHooking") ) {//now all others + snprintf(filename, 60, "plugins/%s%s", config_setting_get_string_elem(plist,i), DLL_EXT); + HPM->load(filename); + } } config_destroy(&plugins_conf); } @@ -436,6 +461,25 @@ void* HPM_realloc(void *p, size_t size, const char *file, int line, const char * char* HPM_astrdup(const char *p, const char *file, int line, const char *func) { return iMalloc->astrdup(p,HPM_file2ptr(file),line,func); } +/* todo: add ability for tracking using pID for the upcoming runtime load/unload support. */ +bool HPM_AddHook(enum HPluginHookType type, const char *target, void *hook, unsigned int pID) { + if( !HPM->hooking ) { + ShowError("HPM:AddHook Fail! '%s' tried to hook to '%s' but HPMHooking is disabled!\n",HPM->pid2name(pID),target); + return false; + } + /* search if target is a known hook point within 'common' */ + /* if not check if a sub-hooking list is available (from the server) and run it by */ + if( HPM->addhook_sub && HPM->addhook_sub(type,target,hook,pID) ) + return true; + return false; +} +void HPM_HookStop (const char *func, unsigned int pID) { + /* track? */ + HPM->force_return = true; +} +bool HPM_HookStopped (void) { + return HPM->force_return; +} void hplugins_share_defaults(void) { /* console */ @@ -447,6 +491,9 @@ void hplugins_share_defaults(void) { HPM->share(hplugins_addToSession,"addToSession"); HPM->share(hplugins_getFromSession,"getFromSession"); HPM->share(hplugins_removeFromSession,"removeFromSession"); + HPM->share(HPM_AddHook,"AddHook"); + HPM->share(HPM_HookStop,"HookStop"); + HPM->share(HPM_HookStopped,"HookStopped"); /* core */ HPM->share(&runflag,"runflag"); HPM->share(arg_v,"arg_v"); @@ -489,7 +536,7 @@ void hpm_init(void) { HPMiMalloc->realloc = HPM_realloc; HPMiMalloc->astrdup = HPM_astrdup; - sscanf(HPM_VERSION, "%d.%d", &HPM->version[0], &HPM->version[1]); + sscanf(HPM_VERSION, "%u.%u", &HPM->version[0], &HPM->version[1]); if( HPM->version[0] == 0 && HPM->version[1] == 0 ) { ShowError("HPM:init:failed to retrieve HPM version!!\n"); @@ -554,6 +601,8 @@ void hpm_defaults(void) { HPM->fnames = NULL; HPM->fnamec = 0; + HPM->force_return = false; + HPM->hooking = false; HPM->init = hpm_init; HPM->final = hpm_final; @@ -573,4 +622,5 @@ void hpm_defaults(void) { HPM->pid2name = hplugins_id2name; HPM->parse_packets = hplugins_parse_packets; HPM->load_sub = NULL; + HPM->addhook_sub = NULL; } diff --git a/src/common/HPM.h b/src/common/HPM.h index 614498fd3..395555948 100644 --- a/src/common/HPM.h +++ b/src/common/HPM.h @@ -79,6 +79,9 @@ struct HPM_interface { /* vars */ unsigned int version[2]; bool off; + bool hooking; + /* hooking */ + bool force_return; /* data */ struct hplugin **plugins; unsigned int plugin_count; @@ -94,12 +97,12 @@ struct HPM_interface { void (*init) (void); void (*final) (void); struct hplugin * (*create) (void); - void (*load) (const char* filename); + struct hplugin * (*load) (const char* filename); void (*unload) (struct hplugin* plugin); bool (*exists) (const char *filename); bool (*iscompatible) (char* version); void (*event) (enum hp_event_types type); - void *(*import_symbol) (char *); + void *(*import_symbol) (char *name, unsigned int pID); void (*share) (void *, char *); void (*symbol_defaults) (void); void (*config_read) (void); @@ -108,6 +111,7 @@ struct HPM_interface { char *(*pid2name) (unsigned int pid); unsigned char (*parse_packets) (int fd, enum HPluginPacketHookingPoints point); void (*load_sub) (struct hplugin *plugin); + bool (*addhook_sub) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID); } HPM_s; struct HPM_interface *HPM; diff --git a/src/common/HPMi.h b/src/common/HPMi.h index c8bce8ee8..9c2a6184e 100644 --- a/src/common/HPMi.h +++ b/src/common/HPMi.h @@ -35,7 +35,7 @@ struct map_session_data; /* after */ #include "../common/showmsg.h" -#define HPM_VERSION "0.2" +#define HPM_VERSION "1.0" struct hplugin_info { char* name; @@ -44,10 +44,10 @@ struct hplugin_info { char* req_version; }; -HPExport void *(*import_symbol) (char *name); +HPExport void *(*import_symbol) (char *name, unsigned int pID); HPExport Sql *mysql_handle; -#define GET_SYMBOL(n) import_symbol(n) +#define GET_SYMBOL(n) import_symbol(n,HPMi->pid) #define SERVER_TYPE_ALL SERVER_TYPE_LOGIN|SERVER_TYPE_CHAR|SERVER_TYPE_MAP @@ -55,6 +55,7 @@ enum hp_event_types { HPET_INIT,/* server starts */ HPET_FINAL,/* server is shutting down */ HPET_READY,/* server is ready (online) */ + HPET_POST_FINAL,/* server is done shutting down */ HPET_MAX, }; @@ -70,6 +71,18 @@ enum HPluginPacketHookingPoints { hpPHP_MAX, }; +enum HPluginHookType { + HOOK_TYPE_PRE, + HOOK_TYPE_POST, +}; + +#define addHookPre(tname,hook) HPMi->AddHook(HOOK_TYPE_PRE,tname,hook,HPMi->pid) +#define addHookPost(tname,hook) HPMi->AddHook(HOOK_TYPE_POST,tname,hook,HPMi->pid) +/* need better names ;/ */ +/* will not run the original function after pre-hook processing is complete (other hooks will run) */ +#define hookStop() HPMi->HookStop(__func__,HPMi->pid) +#define hookStopped() HPMi->HookStopped() + /* Hercules Plugin Mananger Include Interface */ HPExport struct HPMi_interface { /* */ @@ -89,6 +102,10 @@ HPExport struct HPMi_interface { void (*removeFromSession) (struct socket_data *sess, unsigned int id, unsigned int type); /* packet */ bool (*addPacket) (unsigned short cmd, unsigned short length, void (*receive)(int fd), unsigned int point, unsigned int pluginID); + /* Hooking */ + bool (*AddHook) (enum HPluginHookType type, const char *target, void *hook, unsigned int pID); + void (*HookStop) (const char *func, unsigned int pID); + bool (*HookStopped) (void); } HPMi_s; #ifndef _HPM_H_ HPExport struct HPMi_interface *HPMi; diff --git a/src/common/Makefile.in b/src/common/Makefile.in index 78f9cd0d1..53b7a472e 100644 --- a/src/common/Makefile.in +++ b/src/common/Makefile.in @@ -40,22 +40,25 @@ CC = @CC@ export CC ##################################################################### -.PHONY: all sql common common_sql common_mini clean help +.PHONY: all sql common common_sql common_mini clean buildclean help all: sql sql: $(SQL_DEPENDS) -clean: - @echo " CLEAN common" +buildclean: + @echo " CLEAN common (build temp files)" @rm -rf *.o obj_all obj_sql +clean: buildclean + @echo " CLEAN common" + help: @echo "possible targets are 'sql' 'all' 'clean' 'help'" - @echo "'sql' - builds object files used in sql servers" - @echo "'all' - builds all above targets" - @echo "'clean' - cleans builds and objects" - @echo "'help' - outputs this message" + @echo "'sql' - builds object files used in sql servers" + @echo "'all' - builds all above targets" + @echo "'clean', 'buildclean' - cleans builds and objects" + @echo "'help' - outputs this message" ##################################################################### diff --git a/src/common/db.c b/src/common/db.c index bd2bea424..b3a58e0a4 100644 --- a/src/common/db.c +++ b/src/common/db.c @@ -2730,20 +2730,26 @@ void linkdb_insert( struct linkdb_node** head, void *key, void* data) node->data = data; } -void linkdb_foreach( struct linkdb_node** head, LinkDBFunc func, ... ) -{ +void linkdb_vforeach( struct linkdb_node** head, LinkDBFunc func, va_list ap) { struct linkdb_node *node; if( head == NULL ) return; node = *head; while ( node ) { - va_list args; - va_start(args, func); - func( node->key, node->data, args ); - va_end(args); + va_list argscopy; + va_copy(argscopy, ap); + func(node->key, node->data, argscopy); + va_end(argscopy); node = node->next; } } +void linkdb_foreach( struct linkdb_node** head, LinkDBFunc func, ...) { + va_list ap; + va_start(ap, func); + linkdb_vforeach(head, func, ap); + va_end(ap); +} + void* linkdb_search( struct linkdb_node** head, void *key) { int n = 0; diff --git a/src/common/db.h b/src/common/db.h index aa4bfb054..dffd2356d 100644 --- a/src/common/db.h +++ b/src/common/db.h @@ -882,12 +882,13 @@ struct linkdb_node { typedef void (*LinkDBFunc)(void* key, void* data, va_list args); -void linkdb_insert ( struct linkdb_node** head, void *key, void* data); // d•¡‚ðl—¶‚µ‚È‚¢ -void linkdb_replace( struct linkdb_node** head, void *key, void* data); // d•¡‚ðl—¶‚·‚é -void* linkdb_search ( struct linkdb_node** head, void *key); -void* linkdb_erase ( struct linkdb_node** head, void *key); -void linkdb_final ( struct linkdb_node** head ); -void linkdb_foreach( struct linkdb_node** head, LinkDBFunc func, ... ); +void linkdb_insert (struct linkdb_node** head, void *key, void* data); // d•¡‚ðl—¶‚µ‚È‚¢ +void linkdb_replace (struct linkdb_node** head, void *key, void* data); // d•¡‚ðl—¶‚·‚é +void* linkdb_search (struct linkdb_node** head, void *key); +void* linkdb_erase (struct linkdb_node** head, void *key); +void linkdb_final (struct linkdb_node** head); +void linkdb_vforeach(struct linkdb_node** head, LinkDBFunc func, va_list ap); +void linkdb_foreach (struct linkdb_node** head, LinkDBFunc func, ...); diff --git a/src/common/mmo.h b/src/common/mmo.h index b51d0ec4a..205cf8425 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -772,16 +772,68 @@ enum { JOB_KAGEROU = 4211, JOB_OBORO, + JOB_REBELLION = 4215, JOB_MAX, }; +//Total number of classes (for data storage) +#define CLASS_COUNT (JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC) + enum { SEX_FEMALE = 0, SEX_MALE, SEX_SERVER }; +enum weapon_type { + W_FIST, //Bare hands + W_DAGGER, //1 + W_1HSWORD, //2 + W_2HSWORD, //3 + W_1HSPEAR, //4 + W_2HSPEAR, //5 + W_1HAXE, //6 + W_2HAXE, //7 + W_MACE, //8 + W_2HMACE, //9 (unused) + W_STAFF, //10 + W_BOW, //11 + W_KNUCKLE, //12 + W_MUSICAL, //13 + W_WHIP, //14 + W_BOOK, //15 + W_KATAR, //16 + W_REVOLVER, //17 + W_RIFLE, //18 + W_GATLING, //19 + W_SHOTGUN, //20 + W_GRENADE, //21 + W_HUUMA, //22 + W_2HSTAFF, //23 + MAX_WEAPON_TYPE, + // dual-wield constants + W_DOUBLE_DD, // 2 daggers + W_DOUBLE_SS, // 2 swords + W_DOUBLE_AA, // 2 axes + W_DOUBLE_DS, // dagger + sword + W_DOUBLE_DA, // dagger + axe + W_DOUBLE_SA, // sword + axe +}; + +enum ammo_type { + A_ARROW = 1, + A_DAGGER, //2 + A_BULLET, //3 + A_SHELL, //4 + A_GRENADE, //5 + A_SHURIKEN, //6 + A_KUNAI, //7 + A_CANNONBALL, //8 + A_THROWWEAPON //9 +}; + + // sanity checks... #if MAX_ZENY > INT_MAX #error MAX_ZENY is too big diff --git a/src/common/timer.h b/src/common/timer.h index 3146a2e66..600f9fd02 100644 --- a/src/common/timer.h +++ b/src/common/timer.h @@ -23,9 +23,8 @@ typedef int (*TimerFunc)(int tid, unsigned int tick, int id, intptr_t data); struct TimerData { unsigned int tick; TimerFunc func; - int type; + unsigned char type; int interval; - int heap_pos; // general-purpose storage int id; diff --git a/src/login/Makefile.in b/src/login/Makefile.in index b6b70a495..a97d17f68 100644 --- a/src/login/Makefile.in +++ b/src/login/Makefile.in @@ -31,21 +31,27 @@ CC = @CC@ export CC ##################################################################### -.PHONY: all sql login-server clean help +.PHONY: all sql login-server clean buildclean help all: sql sql: login-server -clean: +buildclean: + @echo " CLEAN login (build temp files)" + @rm -rf *.o obj_sql + +clean: buildclean @echo " CLEAN login" - @rm -rf *.o obj_sql ../../login-server@EXEEXT@ + @rm -rf ../../login-server@EXEEXT@ help: @echo "possible targets are 'login-server' 'all' 'clean' 'help'" @echo "'login-server' - login server" @echo "'all' - builds all above targets" @echo "'clean' - cleans builds and objects" + @echo "'buildclean' - cleans build temporary (object) files, without deleting the" + @echo " executables" @echo "'help' - outputs this message" ##################################################################### diff --git a/src/map/HPMmap.c b/src/map/HPMmap.c index 17d72bc98..3ba9ae725 100644 --- a/src/map/HPMmap.c +++ b/src/map/HPMmap.c @@ -10,12 +10,29 @@ #include "pc.h" #include "map.h" +// +#include "chat.h" +#include "chrif.h" +#include "duel.h" +#include "elemental.h" +#include "homunculus.h" +#include "instance.h" +#include "intif.h" +#include "irc-bot.h" +#include "mail.h" +#include "mapreg.h" +#include "mercenary.h" +#include "party.h" +#include "pet.h" +#include "quest.h" +#include "storage.h" +#include "trade.h" + #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> - void HPM_map_addToMSD(struct map_session_data *sd, void *data, unsigned int id, unsigned int type, bool autofree) { struct HPluginData *HPData; unsigned int i; @@ -80,10 +97,10 @@ void HPM_map_removeFromMSD(struct map_session_data *sd, unsigned int id, unsigne } void HPM_map_plugin_load_sub(struct hplugin *plugin) { - plugin->hpi->addCommand = HPM->import_symbol("addCommand"); - plugin->hpi->addScript = HPM->import_symbol("addScript"); + plugin->hpi->addCommand = HPM->import_symbol("addCommand",plugin->idx); + plugin->hpi->addScript = HPM->import_symbol("addScript",plugin->idx); /* */ - plugin->hpi->addToMSD = HPM->import_symbol("addToMSD"); - plugin->hpi->getFromMSD = HPM->import_symbol("getFromMSD"); - plugin->hpi->removeFromMSD = HPM->import_symbol("removeFromMSD"); -} + plugin->hpi->addToMSD = HPM->import_symbol("addToMSD",plugin->idx); + plugin->hpi->getFromMSD = HPM->import_symbol("getFromMSD",plugin->idx); + plugin->hpi->removeFromMSD = HPM->import_symbol("removeFromMSD",plugin->idx); +}
\ No newline at end of file diff --git a/src/map/Makefile.in b/src/map/Makefile.in index fb78d51a1..b516c61ca 100644 --- a/src/map/Makefile.in +++ b/src/map/Makefile.in @@ -47,21 +47,27 @@ CC = @CC@ export CC ##################################################################### -.PHONY: all sql map-server clean help +.PHONY: all sql map-server clean buildclean help all: sql sql: map-server -clean: +buildclean: + @echo " CLEAN map (build temp files)" + @rm -rf *.o obj_sql + +clean: buildclean @echo " CLEAN map" - @rm -rf *.o obj_sql ../../map-server@EXEEXT@ + @rm -rf ../../map-server@EXEEXT@ help: @echo "possible targets are 'map-server' 'all' 'clean' 'help'" @echo "'map-server' - map server" @echo "'all' - builds all above targets" @echo "'clean' - cleans builds and objects" + @echo "'buildclean' - cleans build temporary (object) files, without deleting the" + @echo " executables" @echo "'help' - outputs this message" ##################################################################### diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 4f784ecc5..3d04a6bff 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -412,11 +412,11 @@ ACMD(mapmove) { if (!map->search_freecell(NULL, m, &x, &y, 10, 10, 1)) x = y = 0; //Invalid cell, use random spot. } - if (maplist[m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (map->list[m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(247)); return false; } - if (sd->bl.m >= 0 && maplist[sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(248)); return false; } @@ -476,12 +476,12 @@ ACMD(jumpto) { return false; } - if (pl_sd->bl.m >= 0 && maplist[pl_sd->bl.m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (pl_sd->bl.m >= 0 && map->list[pl_sd->bl.m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(247)); // You are not authorized to warp to this map. return false; } - if (sd->bl.m >= 0 && maplist[sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(248)); // You are not authorized to warp from your current map. return false; } @@ -511,7 +511,7 @@ ACMD(jump) sscanf(message, "%hd %hd", &x, &y); - if (maplist[sd->bl.m].flag.noteleport && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (map->list[sd->bl.m].flag.noteleport && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(248)); // You are not authorized to warp from your current map. return false; } @@ -626,11 +626,11 @@ ACMD(who) { StrBuf->Printf(&buf, msg_txt(30), count); // %d players found. } else { if (count == 0) - StrBuf->Printf(&buf, msg_txt(54), maplist[map_id].name); // No player found in map '%s'. + StrBuf->Printf(&buf, msg_txt(54), map->list[map_id].name); // No player found in map '%s'. else if (count == 1) - StrBuf->Printf(&buf, msg_txt(55), maplist[map_id].name); // 1 player found in map '%s'. + StrBuf->Printf(&buf, msg_txt(55), map->list[map_id].name); // 1 player found in map '%s'. else - StrBuf->Printf(&buf, msg_txt(56), count, maplist[map_id].name); // %d players found in map '%s'. + StrBuf->Printf(&buf, msg_txt(56), count, map->list[map_id].name); // %d players found in map '%s'. } clif->message(fd, StrBuf->Value(&buf)); StrBuf->Destroy(&buf); @@ -750,11 +750,11 @@ ACMD(load) { nullpo_retr(-1, sd); m = map->mapindex2mapid(sd->status.save_point.map); - if (m >= 0 && maplist[m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (m >= 0 && map->list[m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(249)); // You are not authorized to warp to your save map. return false; } - if (sd->bl.m >= 0 && maplist[sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(248)); // You are not authorized to warp from your current map. return false; } @@ -893,9 +893,9 @@ ACMD(hide) { clif->message(fd, msg_txt(10)); // Invisible: Off // increment the number of pvp players on the map - maplist[sd->bl.m].users_pvp++; + map->list[sd->bl.m].users_pvp++; - if( maplist[sd->bl.m].flag.pvp && !maplist[sd->bl.m].flag.pvp_nocalcrank ) { + if( map->list[sd->bl.m].flag.pvp && !map->list[sd->bl.m].flag.pvp_nocalcrank ) { // register the player for ranking calculations sd->pvp_timer = timer->add( timer->gettick() + 200, pc->calc_pvprank_timer, sd->bl.id, 0 ); } @@ -907,9 +907,9 @@ ACMD(hide) { clif->message(fd, msg_txt(11)); // Invisible: On // decrement the number of pvp players on the map - maplist[sd->bl.m].users_pvp--; + map->list[sd->bl.m].users_pvp--; - if( maplist[sd->bl.m].flag.pvp && !maplist[sd->bl.m].flag.pvp_nocalcrank && sd->pvp_timer != INVALID_TIMER ) { + if( map->list[sd->bl.m].flag.pvp && !map->list[sd->bl.m].flag.pvp_nocalcrank && sd->pvp_timer != INVALID_TIMER ) { // unregister the player for ranking timer->delete( sd->pvp_timer, pc->calc_pvprank_timer ); sd->pvp_timer = INVALID_TIMER; @@ -1463,13 +1463,13 @@ int atcommand_pvpoff_sub(struct block_list *bl,va_list ap) ACMD(pvpoff) { nullpo_retr(-1, sd); - if (!maplist[sd->bl.m].flag.pvp) { + if (!map->list[sd->bl.m].flag.pvp) { clif->message(fd, msg_txt(160)); // PvP is already Off. return false; } - map->zone_change2(sd->bl.m,maplist[sd->bl.m].prev_zone); - maplist[sd->bl.m].flag.pvp = 0; + map->zone_change2(sd->bl.m,map->list[sd->bl.m].prev_zone); + map->list[sd->bl.m].flag.pvp = 0; if (!battle_config.pk_mode) { clif->map_property_mapall(sd->bl.m, MAPPROPERTY_NOTHING); @@ -1501,13 +1501,13 @@ int atcommand_pvpon_sub(struct block_list *bl,va_list ap) ACMD(pvpon) { nullpo_retr(-1, sd); - if (maplist[sd->bl.m].flag.pvp) { + if (map->list[sd->bl.m].flag.pvp) { clif->message(fd, msg_txt(161)); // PvP is already On. return false; } - map->zone_change2(sd->bl.m,strdb_get(zone_db, MAP_ZONE_PVP_NAME)); - maplist[sd->bl.m].flag.pvp = 1; + map->zone_change2(sd->bl.m,strdb_get(map->zone_db, MAP_ZONE_PVP_NAME)); + map->list[sd->bl.m].flag.pvp = 1; if (!battle_config.pk_mode) {// display pvp circle and rank clif->map_property_mapall(sd->bl.m, MAPPROPERTY_FREEPVPZONE); @@ -1526,13 +1526,13 @@ ACMD(pvpon) { ACMD(gvgoff) { nullpo_retr(-1, sd); - if (!maplist[sd->bl.m].flag.gvg) { + if (!map->list[sd->bl.m].flag.gvg) { clif->message(fd, msg_txt(162)); // GvG is already Off. return false; } - map->zone_change2(sd->bl.m,maplist[sd->bl.m].prev_zone); - maplist[sd->bl.m].flag.gvg = 0; + map->zone_change2(sd->bl.m,map->list[sd->bl.m].prev_zone); + map->list[sd->bl.m].flag.gvg = 0; clif->map_property_mapall(sd->bl.m, MAPPROPERTY_NOTHING); clif->maptypeproperty2(&sd->bl,ALL_SAMEMAP); map->foreachinmap(atcommand->stopattack,sd->bl.m, BL_CHAR, 0); @@ -1547,13 +1547,13 @@ ACMD(gvgoff) { ACMD(gvgon) { nullpo_retr(-1, sd); - if (maplist[sd->bl.m].flag.gvg) { + if (map->list[sd->bl.m].flag.gvg) { clif->message(fd, msg_txt(163)); // GvG is already On. return false; } - map->zone_change2(sd->bl.m,strdb_get(zone_db, MAP_ZONE_GVG_NAME)); - maplist[sd->bl.m].flag.gvg = 1; + map->zone_change2(sd->bl.m,strdb_get(map->zone_db, MAP_ZONE_GVG_NAME)); + map->list[sd->bl.m].flag.gvg = 1; clif->map_property_mapall(sd->bl.m, MAPPROPERTY_AGITZONE); clif->maptypeproperty2(&sd->bl,ALL_SAMEMAP); clif->message(fd, msg_txt(34)); // GvG: On. @@ -1845,11 +1845,11 @@ ACMD(go) if (town >= 0 && town < ARRAYLENGTH(data)) { m = map->mapname2mapid(data[town].map); - if (m >= 0 && maplist[m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (m >= 0 && map->list[m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(247)); return false; } - if (sd->bl.m >= 0 && maplist[sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(248)); return false; } @@ -2192,7 +2192,7 @@ ACMD(gat) { for (y = 2; y >= -2; y--) { sprintf(atcmd_output, "%s (x= %d, y= %d) %02X %02X %02X %02X %02X", - maplist[sd->bl.m].name, sd->bl.x - 2, sd->bl.y + y, + map->list[sd->bl.m].name, sd->bl.x - 2, sd->bl.y + y, map->getcell(sd->bl.m, sd->bl.x - 2, sd->bl.y + y, CELL_GETTYPE), map->getcell(sd->bl.m, sd->bl.x - 1, sd->bl.y + y, CELL_GETTYPE), map->getcell(sd->bl.m, sd->bl.x, sd->bl.y + y, CELL_GETTYPE), @@ -2688,11 +2688,11 @@ ACMD(recall) { return false; } - if (sd->bl.m >= 0 && maplist[sd->bl.m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(1019)); // You are not authorized to warp someone to this map. return false; } - if (pl_sd->bl.m >= 0 && maplist[pl_sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (pl_sd->bl.m >= 0 && map->list[pl_sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(1020)); // You are not authorized to warp this player from their map. return false; } @@ -3391,7 +3391,7 @@ ACMD(recallall) memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (sd->bl.m >= 0 && maplist[sd->bl.m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(1032)); // You are not authorized to warp somenone to your current map. return false; } @@ -3402,7 +3402,7 @@ ACMD(recallall) if (sd->status.account_id != pl_sd->status.account_id && pc->get_group_level(sd) >= pc->get_group_level(pl_sd)) { if (pl_sd->bl.m == sd->bl.m && pl_sd->bl.x == sd->bl.x && pl_sd->bl.y == sd->bl.y) continue; // Don't waste time warping the character to the same place. - if (pl_sd->bl.m >= 0 && maplist[pl_sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) + if (pl_sd->bl.m >= 0 && map->list[pl_sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) count++; else { if (pc_isdead(pl_sd)) { //Wake them up @@ -3444,7 +3444,7 @@ ACMD(guildrecall) return false; } - if (sd->bl.m >= 0 && maplist[sd->bl.m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(1032)); // You are not authorized to warp somenone to your current map. return false; } @@ -3464,7 +3464,7 @@ ACMD(guildrecall) if (sd->status.account_id != pl_sd->status.account_id && pl_sd->status.guild_id == g->guild_id) { if (pc->get_group_level(pl_sd) > pc->get_group_level(sd) || (pl_sd->bl.m == sd->bl.m && pl_sd->bl.x == sd->bl.x && pl_sd->bl.y == sd->bl.y)) continue; // Skip GMs greater than you... or chars already on the cell - if (pl_sd->bl.m >= 0 && maplist[pl_sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) + if (pl_sd->bl.m >= 0 && map->list[pl_sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) count++; else pc->setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_RESPAWN); @@ -3502,7 +3502,7 @@ ACMD(partyrecall) return false; } - if (sd->bl.m >= 0 && maplist[sd->bl.m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { + if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarpto && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(1032)); // You are not authorized to warp somenone to your current map. return false; } @@ -3521,7 +3521,7 @@ ACMD(partyrecall) if (sd->status.account_id != pl_sd->status.account_id && pl_sd->status.party_id == p->party.party_id) { if (pc->get_group_level(pl_sd) > pc->get_group_level(sd) || (pl_sd->bl.m == sd->bl.m && pl_sd->bl.x == sd->bl.x && pl_sd->bl.y == sd->bl.y)) continue; // Skip GMs greater than you... or chars already on the cell - if (pl_sd->bl.m >= 0 && maplist[pl_sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) + if (pl_sd->bl.m >= 0 && map->list[pl_sd->bl.m].flag.nowarp && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE)) count++; else pc->setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_RESPAWN); @@ -3561,7 +3561,7 @@ ACMD(reloadmobdb) { homun->reload(); mercenary->read_db(); mercenary->read_skilldb(); - elemental->reload_elementaldb(); + elemental->reload_db(); clif->message(fd, msg_txt(98)); // Monster database has been reloaded. return true; @@ -3774,129 +3774,129 @@ ACMD(mapinfo) { } mapit->free(iter); - sprintf(atcmd_output, msg_txt(1040), mapname, maplist[m_id].zone->name, maplist[m_id].users, maplist[m_id].npc_num, chat_num, vend_num); // Map: %s (Zone:%s) | Players: %d | NPCs: %d | Chats: %d | Vendings: %d + sprintf(atcmd_output, msg_txt(1040), mapname, map->list[m_id].zone->name, map->list[m_id].users, map->list[m_id].npc_num, chat_num, vend_num); // Map: %s (Zone:%s) | Players: %d | NPCs: %d | Chats: %d | Vendings: %d clif->message(fd, atcmd_output); clif->message(fd, msg_txt(1041)); // ------ Map Flags ------ - if (maplist[m_id].flag.town) + if (map->list[m_id].flag.town) clif->message(fd, msg_txt(1042)); // Town Map - if (battle_config.autotrade_mapflag == maplist[m_id].flag.autotrade) + if (battle_config.autotrade_mapflag == map->list[m_id].flag.autotrade) clif->message(fd, msg_txt(1043)); // Autotrade Enabled else clif->message(fd, msg_txt(1044)); // Autotrade Disabled - if (maplist[m_id].flag.battleground) + if (map->list[m_id].flag.battleground) clif->message(fd, msg_txt(1045)); // Battlegrounds ON strcpy(atcmd_output,msg_txt(1046)); // PvP Flags: - if (maplist[m_id].flag.pvp) + if (map->list[m_id].flag.pvp) strcat(atcmd_output, msg_txt(1047)); // Pvp ON | - if (maplist[m_id].flag.pvp_noguild) + if (map->list[m_id].flag.pvp_noguild) strcat(atcmd_output, msg_txt(1048)); // NoGuild | - if (maplist[m_id].flag.pvp_noparty) + if (map->list[m_id].flag.pvp_noparty) strcat(atcmd_output, msg_txt(1049)); // NoParty | - if (maplist[m_id].flag.pvp_nightmaredrop) + if (map->list[m_id].flag.pvp_nightmaredrop) strcat(atcmd_output, msg_txt(1050)); // NightmareDrop | - if (maplist[m_id].flag.pvp_nocalcrank) + if (map->list[m_id].flag.pvp_nocalcrank) strcat(atcmd_output, msg_txt(1051)); // NoCalcRank | clif->message(fd, atcmd_output); strcpy(atcmd_output,msg_txt(1052)); // GvG Flags: - if (maplist[m_id].flag.gvg) + if (map->list[m_id].flag.gvg) strcat(atcmd_output, msg_txt(1053)); // GvG ON | - if (maplist[m_id].flag.gvg_dungeon) + if (map->list[m_id].flag.gvg_dungeon) strcat(atcmd_output, msg_txt(1054)); // GvG Dungeon | - if (maplist[m_id].flag.gvg_castle) + if (map->list[m_id].flag.gvg_castle) strcat(atcmd_output, msg_txt(1055)); // GvG Castle | - if (maplist[m_id].flag.gvg_noparty) + if (map->list[m_id].flag.gvg_noparty) strcat(atcmd_output, msg_txt(1056)); // NoParty | clif->message(fd, atcmd_output); strcpy(atcmd_output,msg_txt(1057)); // Teleport Flags: - if (maplist[m_id].flag.noteleport) + if (map->list[m_id].flag.noteleport) strcat(atcmd_output, msg_txt(1058)); // NoTeleport | - if (maplist[m_id].flag.monster_noteleport) + if (map->list[m_id].flag.monster_noteleport) strcat(atcmd_output, msg_txt(1059)); // Monster NoTeleport | - if (maplist[m_id].flag.nowarp) + if (map->list[m_id].flag.nowarp) strcat(atcmd_output, msg_txt(1060)); // NoWarp | - if (maplist[m_id].flag.nowarpto) + if (map->list[m_id].flag.nowarpto) strcat(atcmd_output, msg_txt(1061)); // NoWarpTo | - if (maplist[m_id].flag.noreturn) + if (map->list[m_id].flag.noreturn) strcat(atcmd_output, msg_txt(1062)); // NoReturn | - if (maplist[m_id].flag.nomemo) + if (map->list[m_id].flag.nomemo) strcat(atcmd_output, msg_txt(1064)); // NoMemo | clif->message(fd, atcmd_output); sprintf(atcmd_output, msg_txt(1065), // No Exp Penalty: %s | No Zeny Penalty: %s - (maplist[m_id].flag.noexppenalty) ? msg_txt(1066) : msg_txt(1067), - (maplist[m_id].flag.nozenypenalty) ? msg_txt(1066) : msg_txt(1067)); // On / Off + (map->list[m_id].flag.noexppenalty) ? msg_txt(1066) : msg_txt(1067), + (map->list[m_id].flag.nozenypenalty) ? msg_txt(1066) : msg_txt(1067)); // On / Off clif->message(fd, atcmd_output); - if (maplist[m_id].flag.nosave) { - if (!maplist[m_id].save.map) + if (map->list[m_id].flag.nosave) { + if (!map->list[m_id].save.map) clif->message(fd, msg_txt(1068)); // No Save (Return to last Save Point) - else if (maplist[m_id].save.x == -1 || maplist[m_id].save.y == -1 ) { - sprintf(atcmd_output, msg_txt(1069), mapindex_id2name(maplist[m_id].save.map)); // No Save, Save Point: %s,Random + else if (map->list[m_id].save.x == -1 || map->list[m_id].save.y == -1 ) { + sprintf(atcmd_output, msg_txt(1069), mapindex_id2name(map->list[m_id].save.map)); // No Save, Save Point: %s,Random clif->message(fd, atcmd_output); } else { sprintf(atcmd_output, msg_txt(1070), // No Save, Save Point: %s,%d,%d - mapindex_id2name(maplist[m_id].save.map),maplist[m_id].save.x,maplist[m_id].save.y); + mapindex_id2name(map->list[m_id].save.map),map->list[m_id].save.x,map->list[m_id].save.y); clif->message(fd, atcmd_output); } } strcpy(atcmd_output,msg_txt(1071)); // Weather Flags: - if (maplist[m_id].flag.snow) + if (map->list[m_id].flag.snow) strcat(atcmd_output, msg_txt(1072)); // Snow | - if (maplist[m_id].flag.fog) + if (map->list[m_id].flag.fog) strcat(atcmd_output, msg_txt(1073)); // Fog | - if (maplist[m_id].flag.sakura) + if (map->list[m_id].flag.sakura) strcat(atcmd_output, msg_txt(1074)); // Sakura | - if (maplist[m_id].flag.clouds) + if (map->list[m_id].flag.clouds) strcat(atcmd_output, msg_txt(1075)); // Clouds | - if (maplist[m_id].flag.clouds2) + if (map->list[m_id].flag.clouds2) strcat(atcmd_output, msg_txt(1076)); // Clouds2 | - if (maplist[m_id].flag.fireworks) + if (map->list[m_id].flag.fireworks) strcat(atcmd_output, msg_txt(1077)); // Fireworks | - if (maplist[m_id].flag.leaves) + if (map->list[m_id].flag.leaves) strcat(atcmd_output, msg_txt(1078)); // Leaves | - if (maplist[m_id].flag.nightenabled) + if (map->list[m_id].flag.nightenabled) strcat(atcmd_output, msg_txt(1080)); // Displays Night | clif->message(fd, atcmd_output); strcpy(atcmd_output,msg_txt(1081)); // Other Flags: - if (maplist[m_id].flag.nobranch) + if (map->list[m_id].flag.nobranch) strcat(atcmd_output, msg_txt(1082)); // NoBranch | - if (maplist[m_id].flag.notrade) + if (map->list[m_id].flag.notrade) strcat(atcmd_output, msg_txt(1083)); // NoTrade | - if (maplist[m_id].flag.novending) + if (map->list[m_id].flag.novending) strcat(atcmd_output, msg_txt(1084)); // NoVending | - if (maplist[m_id].flag.nodrop) + if (map->list[m_id].flag.nodrop) strcat(atcmd_output, msg_txt(1085)); // NoDrop | - if (maplist[m_id].flag.noskill) + if (map->list[m_id].flag.noskill) strcat(atcmd_output, msg_txt(1086)); // NoSkill | - if (maplist[m_id].flag.noicewall) + if (map->list[m_id].flag.noicewall) strcat(atcmd_output, msg_txt(1087)); // NoIcewall | - if (maplist[m_id].flag.allowks) + if (map->list[m_id].flag.allowks) strcat(atcmd_output, msg_txt(1088)); // AllowKS | - if (maplist[m_id].flag.reset) + if (map->list[m_id].flag.reset) strcat(atcmd_output, msg_txt(1089)); // Reset | clif->message(fd, atcmd_output); strcpy(atcmd_output,msg_txt(1090)); // Other Flags: - if (maplist[m_id].nocommand) + if (map->list[m_id].nocommand) strcat(atcmd_output, msg_txt(1091)); // NoCommand | - if (maplist[m_id].flag.nobaseexp) + if (map->list[m_id].flag.nobaseexp) strcat(atcmd_output, msg_txt(1092)); // NoBaseEXP | - if (maplist[m_id].flag.nojobexp) + if (map->list[m_id].flag.nojobexp) strcat(atcmd_output, msg_txt(1093)); // NoJobEXP | - if (maplist[m_id].flag.nomobloot) + if (map->list[m_id].flag.nomobloot) strcat(atcmd_output, msg_txt(1094)); // NoMobLoot | - if (maplist[m_id].flag.nomvploot) + if (map->list[m_id].flag.nomvploot) strcat(atcmd_output, msg_txt(1095)); // NoMVPLoot | - if (maplist[m_id].flag.partylock) + if (map->list[m_id].flag.partylock) strcat(atcmd_output, msg_txt(1096)); // PartyLock | - if (maplist[m_id].flag.guildlock) + if (map->list[m_id].flag.guildlock) strcat(atcmd_output, msg_txt(1097)); // GuildLock | clif->message(fd, atcmd_output); @@ -3919,8 +3919,8 @@ ACMD(mapinfo) { break; case 2: clif->message(fd, msg_txt(1100)); // ----- NPCs in Map ----- - for (i = 0; i < maplist[m_id].npc_num;) { - nd = maplist[m_id].npc[i]; + for (i = 0; i < map->list[m_id].npc_num;) { + nd = map->list[m_id].npc[i]; switch(nd->dir) { case 0: strcpy(direction, msg_txt(1101)); break; // North case 1: strcpy(direction, msg_txt(1102)); break; // North West @@ -5028,7 +5028,7 @@ ACMD(killable) { *------------------------------------------*/ ACMD(skillon) { nullpo_retr(-1, sd); - maplist[sd->bl.m].flag.noskill = 0; + map->list[sd->bl.m].flag.noskill = 0; clif->message(fd, msg_txt(244)); return true; } @@ -5039,7 +5039,7 @@ ACMD(skillon) { *------------------------------------------*/ ACMD(skilloff) { nullpo_retr(-1, sd); - maplist[sd->bl.m].flag.noskill = 1; + map->list[sd->bl.m].flag.noskill = 1; clif->message(fd, msg_txt(243)); return true; } @@ -5069,8 +5069,8 @@ ACMD(npcmove) { return false; //Not on a map. } - x = cap_value(x, 0, maplist[m].xs-1); - y = cap_value(y, 0, maplist[m].ys-1); + x = cap_value(x, 0, map->list[m].xs-1); + y = cap_value(y, 0, map->list[m].ys-1); map->foreachinrange(clif->outsight, &nd->bl, AREA_SIZE, BL_PC, &nd->bl); map->moveblock(&nd->bl, x, y, timer->gettick()); map->foreachinrange(clif->insight, &nd->bl, AREA_SIZE, BL_PC, &nd->bl); @@ -5428,14 +5428,14 @@ ACMD(skilltree) { sprintf(atcmd_output, msg_txt(1168), pc->job_name(c), pc->checkskill(pl_sd, NV_BASIC)); // Player is using %s skill tree (%d basic points). clif->message(fd, atcmd_output); - ARR_FIND( 0, MAX_SKILL_TREE, j, skill_tree[c][j].id == 0 || skill_tree[c][j].id == skill_id ); - if( j == MAX_SKILL_TREE || skill_tree[c][j].id == 0 ) + ARR_FIND( 0, MAX_SKILL_TREE, j, pc->skill_tree[c][j].id == 0 || pc->skill_tree[c][j].id == skill_id ); + if( j == MAX_SKILL_TREE || pc->skill_tree[c][j].id == 0 ) { clif->message(fd, msg_txt(1169)); // The player cannot use that skill. return true; } - ent = &skill_tree[c][j]; + ent = &pc->skill_tree[c][j]; meets = 1; for(j=0;j<MAX_PC_SKILL_REQUIRE;j++) @@ -5557,7 +5557,7 @@ ACMD(changelook) ACMD(autotrade) { nullpo_retr(-1, sd); - if( maplist[sd->bl.m].flag.autotrade != battle_config.autotrade_mapflag ) { + if( map->list[sd->bl.m].flag.autotrade != battle_config.autotrade_mapflag ) { clif->message(fd, msg_txt(1179)); // Autotrade is not allowed on this map. return false; } @@ -5599,7 +5599,7 @@ ACMD(changegm) { return false; } - if( maplist[sd->bl.m].flag.guildlock || maplist[sd->bl.m].flag.gvg_castle ) { + if( map->list[sd->bl.m].flag.guildlock || map->list[sd->bl.m].flag.gvg_castle ) { clif->message(fd, msg_txt(1182)); // You cannot change guild leaders on this map. return false; } @@ -5815,12 +5815,12 @@ ACMD(autolootitem) *------------------------------------------*/ //ACMD(rain) { // nullpo_retr(-1, sd); -// if (maplist[sd->bl.m].flag.rain) { -// maplist[sd->bl.m].flag.rain=0; +// if (map->list[sd->bl.m].flag.rain) { +// map->list[sd->bl.m].flag.rain=0; // clif->weather(sd->bl.m); // clif->message(fd, msg_txt(1201)); // The rain has stopped. // } else { -// maplist[sd->bl.m].flag.rain=1; +// map->list[sd->bl.m].flag.rain=1; // clif->weather(sd->bl.m); // clif->message(fd, msg_txt(1202)); // It has started to rain. // } @@ -5832,12 +5832,12 @@ ACMD(autolootitem) *------------------------------------------*/ ACMD(snow) { nullpo_retr(-1, sd); - if (maplist[sd->bl.m].flag.snow) { - maplist[sd->bl.m].flag.snow=0; + if (map->list[sd->bl.m].flag.snow) { + map->list[sd->bl.m].flag.snow=0; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1203)); // Snow has stopped falling. } else { - maplist[sd->bl.m].flag.snow=1; + map->list[sd->bl.m].flag.snow=1; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1204)); // It has started to snow. } @@ -5850,12 +5850,12 @@ ACMD(snow) { *------------------------------------------*/ ACMD(sakura) { nullpo_retr(-1, sd); - if (maplist[sd->bl.m].flag.sakura) { - maplist[sd->bl.m].flag.sakura=0; + if (map->list[sd->bl.m].flag.sakura) { + map->list[sd->bl.m].flag.sakura=0; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1205)); // Cherry tree leaves no longer fall. } else { - maplist[sd->bl.m].flag.sakura=1; + map->list[sd->bl.m].flag.sakura=1; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1206)); // Cherry tree leaves have begun to fall. } @@ -5867,12 +5867,12 @@ ACMD(sakura) { *------------------------------------------*/ ACMD(clouds) { nullpo_retr(-1, sd); - if (maplist[sd->bl.m].flag.clouds) { - maplist[sd->bl.m].flag.clouds=0; + if (map->list[sd->bl.m].flag.clouds) { + map->list[sd->bl.m].flag.clouds=0; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1207)); // The clouds has disappear. } else { - maplist[sd->bl.m].flag.clouds=1; + map->list[sd->bl.m].flag.clouds=1; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1208)); // Clouds appear. } @@ -5885,12 +5885,12 @@ ACMD(clouds) { *------------------------------------------*/ ACMD(clouds2) { nullpo_retr(-1, sd); - if (maplist[sd->bl.m].flag.clouds2) { - maplist[sd->bl.m].flag.clouds2=0; + if (map->list[sd->bl.m].flag.clouds2) { + map->list[sd->bl.m].flag.clouds2=0; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1209)); // The alternative clouds disappear. } else { - maplist[sd->bl.m].flag.clouds2=1; + map->list[sd->bl.m].flag.clouds2=1; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1210)); // Alternative clouds appear. } @@ -5903,12 +5903,12 @@ ACMD(clouds2) { *------------------------------------------*/ ACMD(fog) { nullpo_retr(-1, sd); - if (maplist[sd->bl.m].flag.fog) { - maplist[sd->bl.m].flag.fog=0; + if (map->list[sd->bl.m].flag.fog) { + map->list[sd->bl.m].flag.fog=0; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1211)); // The fog has gone. } else { - maplist[sd->bl.m].flag.fog=1; + map->list[sd->bl.m].flag.fog=1; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1212)); // Fog hangs over. } @@ -5920,12 +5920,12 @@ ACMD(fog) { *------------------------------------------*/ ACMD(leaves) { nullpo_retr(-1, sd); - if (maplist[sd->bl.m].flag.leaves) { - maplist[sd->bl.m].flag.leaves=0; + if (map->list[sd->bl.m].flag.leaves) { + map->list[sd->bl.m].flag.leaves=0; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1213)); // Leaves no longer fall. } else { - maplist[sd->bl.m].flag.leaves=1; + map->list[sd->bl.m].flag.leaves=1; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1214)); // Fallen leaves fall. } @@ -5938,12 +5938,12 @@ ACMD(leaves) { *------------------------------------------*/ ACMD(fireworks) { nullpo_retr(-1, sd); - if (maplist[sd->bl.m].flag.fireworks) { - maplist[sd->bl.m].flag.fireworks=0; + if (map->list[sd->bl.m].flag.fireworks) { + map->list[sd->bl.m].flag.fireworks=0; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1215)); // Fireworks have ended. } else { - maplist[sd->bl.m].flag.fireworks=1; + map->list[sd->bl.m].flag.fireworks=1; clif->weather(sd->bl.m); clif->message(fd, msg_txt(1216)); // Fireworks have launched. } @@ -5959,14 +5959,14 @@ ACMD(clearweather) { /** * No longer available, keeping here just in case it's back someday. [Ind] **/ - //maplist[sd->bl.m].flag.rain=0; - maplist[sd->bl.m].flag.snow=0; - maplist[sd->bl.m].flag.sakura=0; - maplist[sd->bl.m].flag.clouds=0; - maplist[sd->bl.m].flag.clouds2=0; - maplist[sd->bl.m].flag.fog=0; - maplist[sd->bl.m].flag.fireworks=0; - maplist[sd->bl.m].flag.leaves=0; + //map->list[sd->bl.m].flag.rain=0; + map->list[sd->bl.m].flag.snow=0; + map->list[sd->bl.m].flag.sakura=0; + map->list[sd->bl.m].flag.clouds=0; + map->list[sd->bl.m].flag.clouds2=0; + map->list[sd->bl.m].flag.fog=0; + map->list[sd->bl.m].flag.fireworks=0; + map->list[sd->bl.m].flag.leaves=0; clif->weather(sd->bl.m); clif->message(fd, msg_txt(291)); @@ -7238,7 +7238,7 @@ ACMD(whereis) for (i = 0; i < ARRAYLENGTH(monster->spawn) && monster->spawn[i].qty; i++) { j = map->mapindex2mapid(monster->spawn[i].mapindex); if (j < 0) continue; - snprintf(atcmd_output, sizeof atcmd_output, "%s (%d)", maplist[j].name, monster->spawn[i].qty); + snprintf(atcmd_output, sizeof atcmd_output, "%s (%d)", map->list[j].name, monster->spawn[i].qty); clif->message(fd, atcmd_output); } if (i == 0) @@ -7513,10 +7513,10 @@ ACMD(fakename) * Ragnarok Resources *------------------------------------------*/ ACMD(mapflag) { -#define CHECKFLAG( cmd ) do { if ( maplist[ sd->bl.m ].flag.cmd ) clif->message(sd->fd,#cmd); } while(0) +#define CHECKFLAG( cmd ) do { if ( map->list[ sd->bl.m ].flag.cmd ) clif->message(sd->fd,#cmd); } while(0) #define SETFLAG( cmd ) do { \ if ( strcmp( flag_name , #cmd ) == 0 ) { \ - maplist[ sd->bl.m ].flag.cmd = flag; \ + map->list[ sd->bl.m ].flag.cmd = flag; \ sprintf(atcmd_output,"[ @mapflag ] %s flag has been set to %s value = %hd",#cmd,flag?"On":"Off",flag); \ clif->message(sd->fd,atcmd_output); \ return true; \ @@ -7552,20 +7552,20 @@ ACMD(mapflag) { for (i = 0; flag_name[i]; i++) flag_name[i] = TOLOWER(flag_name[i]); //lowercase if ( strcmp( flag_name , "gvg" ) == 0 ) { - if( flag && !maplist[sd->bl.m].flag.gvg ) - map->zone_change2(sd->bl.m,strdb_get(zone_db, MAP_ZONE_GVG_NAME)); - else if ( !flag && maplist[sd->bl.m].flag.gvg ) - map->zone_change2(sd->bl.m,maplist[sd->bl.m].prev_zone); + if( flag && !map->list[sd->bl.m].flag.gvg ) + map->zone_change2(sd->bl.m,strdb_get(map->zone_db, MAP_ZONE_GVG_NAME)); + else if ( !flag && map->list[sd->bl.m].flag.gvg ) + map->zone_change2(sd->bl.m,map->list[sd->bl.m].prev_zone); } else if ( strcmp( flag_name , "pvp" ) == 0 ) { - if( flag && !maplist[sd->bl.m].flag.pvp ) - map->zone_change2(sd->bl.m,strdb_get(zone_db, MAP_ZONE_PVP_NAME)); - else if ( !flag && maplist[sd->bl.m].flag.pvp ) - map->zone_change2(sd->bl.m,maplist[sd->bl.m].prev_zone); + if( flag && !map->list[sd->bl.m].flag.pvp ) + map->zone_change2(sd->bl.m,strdb_get(map->zone_db, MAP_ZONE_PVP_NAME)); + else if ( !flag && map->list[sd->bl.m].flag.pvp ) + map->zone_change2(sd->bl.m,map->list[sd->bl.m].prev_zone); } else if ( strcmp( flag_name , "battleground" ) == 0 ) { - if( flag && !maplist[sd->bl.m].flag.battleground ) - map->zone_change2(sd->bl.m,strdb_get(zone_db, MAP_ZONE_BG_NAME)); - else if ( !flag && maplist[sd->bl.m].flag.battleground ) - map->zone_change2(sd->bl.m,maplist[sd->bl.m].prev_zone); + if( flag && !map->list[sd->bl.m].flag.battleground ) + map->zone_change2(sd->bl.m,strdb_get(map->zone_db, MAP_ZONE_BG_NAME)); + else if ( !flag && map->list[sd->bl.m].flag.battleground ) + map->zone_change2(sd->bl.m,map->list[sd->bl.m].prev_zone); } SETFLAG(autotrade); SETFLAG(allowks); SETFLAG(nomemo); SETFLAG(noteleport); @@ -8004,11 +8004,11 @@ ACMD(ksprotection) ACMD(allowks) { nullpo_retr(-1,sd); - if( maplist[sd->bl.m].flag.allowks ) { - maplist[sd->bl.m].flag.allowks = 0; + if( map->list[sd->bl.m].flag.allowks ) { + map->list[sd->bl.m].flag.allowks = 0; clif->message(fd, msg_txt(1330)); // [ Map K.S Protection Active ] } else { - maplist[sd->bl.m].flag.allowks = 1; + map->list[sd->bl.m].flag.allowks = 1; clif->message(fd, msg_txt(1331)); // [ Map K.S Protection Inactive ] } return true; @@ -8707,11 +8707,11 @@ ACMD(join) { return false; } if( hChSys.local && strcmpi(name + 1, hChSys.local_name) == 0 ) { - if( !maplist[sd->bl.m].channel ) { + if( !map->list[sd->bl.m].channel ) { clif->chsys_mjoin(sd); return true; } else - channel = maplist[sd->bl.m].channel; + channel = map->list[sd->bl.m].channel; } else if( hChSys.ally && sd->status.guild_id && strcmpi(name + 1, hChSys.ally_name) == 0 ) { struct guild *g = sd->guild; if( !g ) return false;/* unlikely, but we wont let it crash anyway. */ @@ -8877,7 +8877,7 @@ ACMD(channel) { bool show_all = pc->has_permission(sd, PC_PERM_HCHSYS_ADMIN) ? true : false; clif->message(fd, msg_txt(1410)); // -- Public Channels if( hChSys.local ) { - sprintf(atcmd_output, msg_txt(1409), hChSys.local_name, maplist[sd->bl.m].channel ? db_size(maplist[sd->bl.m].channel->users) : 0);// - #%s ( %d users ) + sprintf(atcmd_output, msg_txt(1409), hChSys.local_name, map->list[sd->bl.m].channel ? db_size(map->list[sd->bl.m].channel->users) : 0);// - #%s ( %d users ) clif->message(fd, atcmd_output); } if( hChSys.ally && sd->status.guild_id ) { @@ -9815,7 +9815,7 @@ bool is_atcommand(const int fd, struct map_session_data* sd, const char* message // 1 = player invoked if ( type == 1) { //Commands are disabled on maps flagged as 'nocommand' - if ( maplist[sd->bl.m].nocommand && pc->get_group_level(sd) < maplist[sd->bl.m].nocommand ) { + if ( map->list[sd->bl.m].nocommand && pc->get_group_level(sd) < map->list[sd->bl.m].nocommand ) { clif->message(fd, msg_txt(143)); return false; } @@ -9938,9 +9938,9 @@ bool is_atcommand(const int fd, struct map_session_data* sd, const char* message clif->message(fd, msg_txt(1393)); // You can't use commands while dead return true; } - for(i = 0; i < maplist[sd->bl.m].zone->disabled_commands_count; i++) { - if( info->func == maplist[sd->bl.m].zone->disabled_commands[i]->cmd ) { - if( pc->get_group_level(sd) < maplist[sd->bl.m].zone->disabled_commands[i]->group_lv ) { + for(i = 0; i < map->list[sd->bl.m].zone->disabled_commands_count; i++) { + if( info->func == map->list[sd->bl.m].zone->disabled_commands[i]->cmd ) { + if( pc->get_group_level(sd) < map->list[sd->bl.m].zone->disabled_commands[i]->group_lv ) { clif->colormes(sd->fd,COLOR_RED,"This command is disabled in this area"); return true; } else diff --git a/src/map/battle.c b/src/map/battle.c index 98e132077..c79dee7ee 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -410,8 +410,8 @@ int64 battle_attr_fix(struct block_list *src, struct block_list *target, int64 d } return damage*ratio/100; } -#ifdef RENEWAL int64 battle_calc_weapon_damage(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, struct weapon_atk *watk, int nk, bool n_ele, short s_ele, short s_ele_, int size, int type, int flag, int flag2){ // [malufett] +#ifdef RENEWAL int64 damage, eatk = 0; struct status_change *sc; struct map_session_data *sd; @@ -470,8 +470,10 @@ int64 battle_calc_weapon_damage(struct block_list *src, struct block_list *bl, u damage = battle->calc_cardfix(BF_WEAPON, src, bl, nk, s_ele, s_ele_, damage, 0, flag2); return damage; -} +#else + return 0; #endif +} /*========================================== * Calculates the standard damage of a normal attack assuming it hits, * it calculates nothing extra fancy, is needed for magnum break's WATK_ELEMENT bonus. [Skotlex] @@ -484,7 +486,7 @@ int64 battle_calc_weapon_damage(struct block_list *src, struct block_list *bl, u * &8: Skip target size adjustment (Extremity Fist?) *&16: Arrow attack but BOW, REVOLVER, RIFLE, SHOTGUN, GATLING or GRENADE type weapon not equipped (i.e. shuriken, kunai and venom knives not affected by DEX) */ -#ifdef RENEWAL +/* 'battle_calc_base_damage' is used on renewal, 'battle_calc_base_damage2' otherwise. */ int64 battle_calc_base_damage(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int nk, bool n_ele, short s_ele, short s_ele_, int type, int flag, int flag2) { int64 damage, batk; struct status_data *st = status->get_status_data(src); @@ -495,8 +497,10 @@ int64 battle_calc_base_damage(struct block_list *src, struct block_list *bl, uin damage = batk + 3 * battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &st->lhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2) / 4; else damage = (batk << 1) + battle->calc_weapon_damage(src, bl, skill_id, skill_lv, &st->rhw, nk, n_ele, s_ele, s_ele_, status_get_size(bl), type, flag, flag2); -#else -static int64 battle_calc_base_damage(struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag) { + + return damage; +} +int64 battle_calc_base_damage2(struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag) { unsigned int atkmin=0, atkmax=0; short type = 0; int64 damage = 0; @@ -572,7 +576,6 @@ static int64 battle_calc_base_damage(struct status_data *st, struct weapon_atk * damage += damage * sd->weapon_atk_rate[sd->weapontype1] / 100; } } -#endif return damage; } @@ -791,7 +794,7 @@ int64 battle_calc_masteryfix(struct block_list *src, struct block_list *target, damage += 4; if(sd->status.party_id && (skill2_lv=pc->checkskill(sd,TK_POWER)) > 0) { - if( (i = party_foreachsamemap(party->sub_count, sd, 0)) > 1 ) + if( (i = party->foreachsamemap(party->sub_count, sd, 0)) > 1 ) damage += 2 * skill2_lv * i * (damage /*+ unknown value*/) / 100 /*+ unknown value*/; } #else @@ -805,7 +808,7 @@ int64 battle_calc_masteryfix(struct block_list *src, struct block_list *target, i = 2; //Star anger else ARR_FIND(0, MAX_PC_FEELHATE, i, status->get_class(target) == sd->hate_mob[i]); - if ( i < MAX_PC_FEELHATE && (skill2_lv=pc->checkskill(sd,sg_info[i].anger_id)) && weapon ) { + if ( i < MAX_PC_FEELHATE && (skill2_lv=pc->checkskill(sd,pc->sg_info[i].anger_id)) && weapon ) { int ratio = sd->status.base_level + status_get_dex(src) + status_get_luk(src); if ( i == 2 ) ratio += status_get_str(src); //Star Anger if (skill2_lv < 4 ) @@ -856,10 +859,10 @@ int64 battle_calc_elefix(struct block_list *src, struct block_list *target, uint sc = status->get_sc(src); if( sc && sc->data[SC_SUB_WEAPONPROPERTY] ) { // Descriptions indicate this means adding a percent of a normal attack in another element. [Skotlex] - int64 temp = battle->calc_base_damage(sstatus, &sstatus->rhw, sc, tstatus->size, BL_CAST(BL_PC, src), (flag?2:0)) * sc->data[SC_SUB_WEAPONPROPERTY]->val2 / 100; + int64 temp = battle->calc_base_damage2(sstatus, &sstatus->rhw, sc, tstatus->size, BL_CAST(BL_PC, src), (flag?2:0)) * sc->data[SC_SUB_WEAPONPROPERTY]->val2 / 100; damage += battle->attr_fix(src, target, temp, sc->data[SC_SUB_WEAPONPROPERTY]->val1, tstatus->def_ele, tstatus->ele_lv); if( left ) { - temp = battle->calc_base_damage(sstatus, &sstatus->lhw, sc, tstatus->size, BL_CAST(BL_PC, src), (flag?2:0)) * sc->data[SC_SUB_WEAPONPROPERTY]->val2 / 100; + temp = battle->calc_base_damage2(sstatus, &sstatus->lhw, sc, tstatus->size, BL_CAST(BL_PC, src), (flag?2:0)) * sc->data[SC_SUB_WEAPONPROPERTY]->val2 / 100; damage += battle->attr_fix(src, target, temp, sc->data[SC_SUB_WEAPONPROPERTY]->val1, tstatus->def_ele, tstatus->ele_lv); } } @@ -1556,7 +1559,7 @@ int battle_calc_skillratio(int attack_type, struct block_list *src, struct block c = 0; memset (p_sd, 0, sizeof(p_sd)); - party_foreachsamemap(skill->check_condition_char_sub, sd, 3, &sd->bl, &c, &p_sd, skill_id); + party->foreachsamemap(skill->check_condition_char_sub, sd, 3, &sd->bl, &c, &p_sd, skill_id); c = ( c > 1 ? rand()%c : 0 ); if( (psd = map->id2sd(p_sd[c])) && pc->checkskill(psd,WL_COMET) > 0 ){ @@ -3003,16 +3006,16 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam default: if (flag & BF_SKILL) { //Skills get a different reduction than non-skills. [Skotlex] if (flag&BF_WEAPON) - damage = damage * maplist[bl->m].weapon_damage_rate / 100; + damage = damage * map->list[bl->m].weapon_damage_rate / 100; if (flag&BF_MAGIC) - damage = damage * maplist[bl->m].magic_damage_rate / 100; + damage = damage * map->list[bl->m].magic_damage_rate / 100; if (flag&BF_MISC) - damage = damage * maplist[bl->m].misc_damage_rate / 100; + damage = damage * map->list[bl->m].misc_damage_rate / 100; } else { //Normal attacks get reductions based on range. if (flag & BF_SHORT) - damage = damage * maplist[bl->m].short_damage_rate / 100; + damage = damage * map->list[bl->m].short_damage_rate / 100; if (flag & BF_LONG) - damage = damage * maplist[bl->m].long_damage_rate / 100; + damage = damage * map->list[bl->m].long_damage_rate / 100; } if(!damage) damage = 1; break; @@ -3178,12 +3181,12 @@ int battle_range_type(struct block_list *src, struct block_list *target, uint16 return BF_LONG; } int battle_adjust_skill_damage(int m, unsigned short skill_id) { - if( maplist[m].skill_count ) { + if( map->list[m].skill_count ) { int i; - ARR_FIND(0, maplist[m].skill_count, i, maplist[m].skills[i]->skill_id == skill_id ); + ARR_FIND(0, map->list[m].skill_count, i, map->list[m].skills[i]->skill_id == skill_id ); - if( i < maplist[m].skill_count ) { - return maplist[m].skills[i]->modifier; + if( i < map->list[m].skill_count ) { + return map->list[m].skills[i]->modifier; } } @@ -3402,18 +3405,18 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list } #ifndef HMAP_ZONE_DAMAGE_CAP_TYPE if( target && skill_id ) { - for(i = 0; i < maplist[target->m].zone->capped_skills_count; i++) { - if( skill_id == maplist[target->m].zone->capped_skills[i]->nameid && (maplist[target->m].zone->capped_skills[i]->type & target->type) ) { - if( target->type == BL_MOB && maplist[target->m].zone->capped_skills[i]->subtype != MZS_NONE ) { - if( (((TBL_MOB*)target)->status.mode&MD_BOSS) && !(maplist[target->m].zone->disabled_skills[i]->subtype&MZS_BOSS) ) + for(i = 0; i < map->list[target->m].zone->capped_skills_count; i++) { + if( skill_id == map->list[target->m].zone->capped_skills[i]->nameid && (map->list[target->m].zone->capped_skills[i]->type & target->type) ) { + if( target->type == BL_MOB && map->list[target->m].zone->capped_skills[i]->subtype != MZS_NONE ) { + if( (((TBL_MOB*)target)->status.mode&MD_BOSS) && !(map->list[target->m].zone->disabled_skills[i]->subtype&MZS_BOSS) ) continue; - if( ((TBL_MOB*)target)->special_state.clone && !(maplist[target->m].zone->disabled_skills[i]->subtype&MZS_CLONE) ) + if( ((TBL_MOB*)target)->special_state.clone && !(map->list[target->m].zone->disabled_skills[i]->subtype&MZS_CLONE) ) continue; } - if( ad.damage > maplist[target->m].zone->capped_skills[i]->cap ) - ad.damage = maplist[target->m].zone->capped_skills[i]->cap; - if( ad.damage2 > maplist[target->m].zone->capped_skills[i]->cap ) - ad.damage2 = maplist[target->m].zone->capped_skills[i]->cap; + if( ad.damage > map->list[target->m].zone->capped_skills[i]->cap ) + ad.damage = map->list[target->m].zone->capped_skills[i]->cap; + if( ad.damage2 > map->list[target->m].zone->capped_skills[i]->cap ) + ad.damage2 = map->list[target->m].zone->capped_skills[i]->cap; break; } } @@ -3498,7 +3501,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list ad.damage=battle->calc_damage(src,target,&ad,ad.damage,skill_id,skill_lv); if( map_flag_gvg2(target->m) ) ad.damage=battle->calc_gvg_damage(src,target,ad.damage,ad.div_,skill_id,skill_lv,ad.flag); - else if( maplist[target->m].flag.battleground ) + else if( map->list[target->m].flag.battleground ) ad.damage=battle->calc_bg_damage(src,target,ad.damage,ad.div_,skill_id,skill_lv,ad.flag); switch( skill_id ) { /* post-calc modifiers */ @@ -3844,18 +3847,18 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list * } #ifndef HMAP_ZONE_DAMAGE_CAP_TYPE if( target && skill_id ) { - for(i = 0; i < maplist[target->m].zone->capped_skills_count; i++) { - if( skill_id == maplist[target->m].zone->capped_skills[i]->nameid && (maplist[target->m].zone->capped_skills[i]->type & target->type) ) { - if( target->type == BL_MOB && maplist[target->m].zone->capped_skills[i]->subtype != MZS_NONE ) { - if( (((TBL_MOB*)target)->status.mode&MD_BOSS) && !(maplist[target->m].zone->disabled_skills[i]->subtype&MZS_BOSS) ) + for(i = 0; i < map->list[target->m].zone->capped_skills_count; i++) { + if( skill_id == map->list[target->m].zone->capped_skills[i]->nameid && (map->list[target->m].zone->capped_skills[i]->type & target->type) ) { + if( target->type == BL_MOB && map->list[target->m].zone->capped_skills[i]->subtype != MZS_NONE ) { + if( (((TBL_MOB*)target)->status.mode&MD_BOSS) && !(map->list[target->m].zone->disabled_skills[i]->subtype&MZS_BOSS) ) continue; - if( ((TBL_MOB*)target)->special_state.clone && !(maplist[target->m].zone->disabled_skills[i]->subtype&MZS_CLONE) ) + if( ((TBL_MOB*)target)->special_state.clone && !(map->list[target->m].zone->disabled_skills[i]->subtype&MZS_CLONE) ) continue; } - if( md.damage > maplist[target->m].zone->capped_skills[i]->cap ) - md.damage = maplist[target->m].zone->capped_skills[i]->cap; - if( md.damage2 > maplist[target->m].zone->capped_skills[i]->cap ) - md.damage2 = maplist[target->m].zone->capped_skills[i]->cap; + if( md.damage > map->list[target->m].zone->capped_skills[i]->cap ) + md.damage = map->list[target->m].zone->capped_skills[i]->cap; + if( md.damage2 > map->list[target->m].zone->capped_skills[i]->cap ) + md.damage2 = map->list[target->m].zone->capped_skills[i]->cap; break; } } @@ -3896,7 +3899,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list * md.damage=battle->calc_damage(src,target,&md,md.damage,skill_id,skill_lv); if( map_flag_gvg2(target->m) ) md.damage=battle->calc_gvg_damage(src,target,md.damage,md.div_,skill_id,skill_lv,md.flag); - else if( maplist[target->m].flag.battleground ) + else if( map->list[target->m].flag.battleground ) md.damage=battle->calc_bg_damage(src,target,md.damage,md.div_,skill_id,skill_lv,md.flag); switch( skill_id ) { @@ -4514,9 +4517,9 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list wd.damage2 = battle->calc_masteryfix(src, target, skill_id, skill_lv, wd.damage2, wd.div_, 1, flag.weapon); } #else - wd.damage = battle->calc_base_damage(sstatus, &sstatus->rhw, sc, tstatus->size, sd, i); + wd.damage = battle->calc_base_damage2(sstatus, &sstatus->rhw, sc, tstatus->size, sd, i); if (flag.lh) - wd.damage2 = battle->calc_base_damage(sstatus, &sstatus->lhw, sc, tstatus->size, sd, i); + wd.damage2 = battle->calc_base_damage2(sstatus, &sstatus->lhw, sc, tstatus->size, sd, i); #endif if (nk&NK_SPLASHSPLIT){ // Divide ATK among targets if(wflag>0) @@ -4534,7 +4537,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list #ifndef RENEWAL if(sd->status.party_id && (temp=pc->checkskill(sd,TK_POWER)) > 0){ - if( (i = party_foreachsamemap(party->sub_count, sd, 0)) > 1 ) // exclude the player himself [Inkfish] + if( (i = party->foreachsamemap(party->sub_count, sd, 0)) > 1 ) // exclude the player himself [Inkfish] ATK_ADDRATE(2*temp*i); } #endif @@ -4859,18 +4862,18 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list return wd; //Enough, rest is not needed. #ifndef HMAP_ZONE_DAMAGE_CAP_TYPE if( target && skill_id ) { - for(i = 0; i < maplist[target->m].zone->capped_skills_count; i++) { - if( skill_id == maplist[target->m].zone->capped_skills[i]->nameid && (maplist[target->m].zone->capped_skills[i]->type & target->type) ) { - if( target->type == BL_MOB && maplist[target->m].zone->capped_skills[i]->subtype != MZS_NONE ) { - if( (((TBL_MOB*)target)->status.mode&MD_BOSS) && !(maplist[target->m].zone->disabled_skills[i]->subtype&MZS_BOSS) ) + for(i = 0; i < map->list[target->m].zone->capped_skills_count; i++) { + if( skill_id == map->list[target->m].zone->capped_skills[i]->nameid && (map->list[target->m].zone->capped_skills[i]->type & target->type) ) { + if( target->type == BL_MOB && map->list[target->m].zone->capped_skills[i]->subtype != MZS_NONE ) { + if( (((TBL_MOB*)target)->status.mode&MD_BOSS) && !(map->list[target->m].zone->disabled_skills[i]->subtype&MZS_BOSS) ) continue; - if( ((TBL_MOB*)target)->special_state.clone && !(maplist[target->m].zone->disabled_skills[i]->subtype&MZS_CLONE) ) + if( ((TBL_MOB*)target)->special_state.clone && !(map->list[target->m].zone->disabled_skills[i]->subtype&MZS_CLONE) ) continue; } - if( wd.damage > maplist[target->m].zone->capped_skills[i]->cap ) - wd.damage = maplist[target->m].zone->capped_skills[i]->cap; - if( wd.damage2 > maplist[target->m].zone->capped_skills[i]->cap ) - wd.damage2 = maplist[target->m].zone->capped_skills[i]->cap; + if( wd.damage > map->list[target->m].zone->capped_skills[i]->cap ) + wd.damage = map->list[target->m].zone->capped_skills[i]->cap; + if( wd.damage2 > map->list[target->m].zone->capped_skills[i]->cap ) + wd.damage2 = map->list[target->m].zone->capped_skills[i]->cap; break; } } @@ -5047,13 +5050,13 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list wd.damage = battle->calc_damage(src,target,&wd,wd.damage,skill_id,skill_lv); if( map_flag_gvg2(target->m) ) wd.damage=battle->calc_gvg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag); - else if( maplist[target->m].flag.battleground ) + else if( map->list[target->m].flag.battleground ) wd.damage=battle->calc_bg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag); } else if(!wd.damage) { wd.damage2 = battle->calc_damage(src,target,&wd,wd.damage2,skill_id,skill_lv); if( map_flag_gvg2(target->m) ) wd.damage2 = battle->calc_gvg_damage(src,target,wd.damage2,wd.div_,skill_id,skill_lv,wd.flag); - else if( maplist[target->m].flag.battleground ) + else if( map->list[target->m].flag.battleground ) wd.damage = battle->calc_bg_damage(src,target,wd.damage2,wd.div_,skill_id,skill_lv,wd.flag); } else { #ifdef RENEWAL @@ -5065,7 +5068,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list #endif if( map_flag_gvg2(target->m) ) wd.damage = battle->calc_gvg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag); - else if( maplist[target->m].flag.battleground ) + else if( map->list[target->m].flag.battleground ) wd.damage = battle->calc_bg_damage(src,target,wd.damage,wd.div_,skill_id,skill_lv,wd.flag); #ifndef RENEWAL wd.damage2 = d2*100/d1 * wd.damage/100; @@ -5118,18 +5121,18 @@ struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct bl #ifdef HMAP_ZONE_DAMAGE_CAP_TYPE if( target && skill_id ) { int i; - for(i = 0; i < maplist[target->m].zone->capped_skills_count; i++) { - if( skill_id == maplist[target->m].zone->capped_skills[i]->nameid && (maplist[target->m].zone->capped_skills[i]->type & target->type) ) { - if( target->type == BL_MOB && maplist[target->m].zone->capped_skills[i]->subtype != MZS_NONE ) { - if( (((TBL_MOB*)target)->status.mode&MD_BOSS) && !(maplist[target->m].zone->disabled_skills[i]->subtype&MZS_BOSS) ) + for(i = 0; i < map->list[target->m].zone->capped_skills_count; i++) { + if( skill_id == map->list[target->m].zone->capped_skills[i]->nameid && (map->list[target->m].zone->capped_skills[i]->type & target->type) ) { + if( target->type == BL_MOB && map->list[target->m].zone->capped_skills[i]->subtype != MZS_NONE ) { + if( (((TBL_MOB*)target)->status.mode&MD_BOSS) && !(map->list[target->m].zone->disabled_skills[i]->subtype&MZS_BOSS) ) continue; - if( ((TBL_MOB*)target)->special_state.clone && !(maplist[target->m].zone->disabled_skills[i]->subtype&MZS_CLONE) ) + if( ((TBL_MOB*)target)->special_state.clone && !(map->list[target->m].zone->disabled_skills[i]->subtype&MZS_CLONE) ) continue; } - if( d.damage > maplist[target->m].zone->capped_skills[i]->cap ) - d.damage = maplist[target->m].zone->capped_skills[i]->cap; - if( d.damage2 > maplist[target->m].zone->capped_skills[i]->cap ) - d.damage2 = maplist[target->m].zone->capped_skills[i]->cap; + if( d.damage > map->list[target->m].zone->capped_skills[i]->cap ) + d.damage = map->list[target->m].zone->capped_skills[i]->cap; + if( d.damage2 > map->list[target->m].zone->capped_skills[i]->cap ) + d.damage2 = map->list[target->m].zone->capped_skills[i]->cap; break; } } @@ -5801,7 +5804,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f switch( battle->get_current_skill(src) ) { case RK_DRAGONBREATH:// it can only hit traps in pvp/gvg maps case RK_DRAGONBREATH_WATER: - if( !maplist[m].flag.pvp && !maplist[m].flag.gvg ) + if( !map->list[m].flag.pvp && !map->list[m].flag.gvg ) break; case 0://you can hit them without skills case MA_REMOVETRAP: @@ -5886,7 +5889,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f { struct mob_data *md = BL_CAST(BL_MOB, t_bl); - if( !((map->agit_flag || map->agit2_flag) && maplist[m].flag.gvg_castle) && md->guardian_data && md->guardian_data->guild_id ) + if( !((map->agit_flag || map->agit2_flag) && map->list[m].flag.gvg_castle) && md->guardian_data && md->guardian_data->guild_id ) return 0; // Disable guardians/emperiums owned by Guilds on non-woe times. break; } @@ -5929,7 +5932,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f state |= BCT_ENEMY; // Can kill anything strip_enemy = 0; } else if( sd->duel_group - && !((!battle_config.duel_allow_pvp && maplist[m].flag.pvp) || (!battle_config.duel_allow_gvg && map_flag_gvg(m))) + && !((!battle_config.duel_allow_pvp && map->list[m].flag.pvp) || (!battle_config.duel_allow_gvg && map_flag_gvg(m))) ) { if( t_bl->type == BL_PC && (sd->duel_group == ((TBL_PC*)t_bl)->duel_group) ) return (BCT_ENEMY&flag)?1:-1; // Duel targets can ONLY be your enemy, nothing else. @@ -5946,7 +5949,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f case BL_MOB: { struct mob_data *md = BL_CAST(BL_MOB, s_bl); - if( !((map->agit_flag || map->agit2_flag) && maplist[m].flag.gvg_castle) && md->guardian_data && md->guardian_data->guild_id ) + if( !((map->agit_flag || map->agit2_flag) && map->list[m].flag.gvg_castle) && md->guardian_data && md->guardian_data->guild_id ) return 0; // Disable guardians/emperium owned by Guilds on non-woe times. if( !md->special_state.ai ) @@ -5994,16 +5997,16 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f if( map_flag_vs(m) ) { //Check rivalry settings. int sbg_id = 0, tbg_id = 0; - if( maplist[m].flag.battleground ) { + if( map->list[m].flag.battleground ) { sbg_id = bg->team_get_id(s_bl); tbg_id = bg->team_get_id(t_bl); } if( flag&(BCT_PARTY|BCT_ENEMY) ) { int s_party = status->get_party_id(s_bl); if( s_party && s_party == status->get_party_id(t_bl) - && !(maplist[m].flag.pvp && maplist[m].flag.pvp_noparty) - && !(map_flag_gvg(m) && maplist[m].flag.gvg_noparty) - && (!maplist[m].flag.battleground || sbg_id == tbg_id) ) + && !(map->list[m].flag.pvp && map->list[m].flag.pvp_noparty) + && !(map_flag_gvg(m) && map->list[m].flag.gvg_noparty) + && (!map->list[m].flag.battleground || sbg_id == tbg_id) ) state |= BCT_PARTY; else state |= BCT_ENEMY; @@ -6011,15 +6014,15 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f if( flag&(BCT_GUILD|BCT_ENEMY) ) { int s_guild = status->get_guild_id(s_bl); int t_guild = status->get_guild_id(t_bl); - if( !(maplist[m].flag.pvp && maplist[m].flag.pvp_noguild) + if( !(map->list[m].flag.pvp && map->list[m].flag.pvp_noguild) && s_guild && t_guild && (s_guild == t_guild || (!(flag&BCT_SAMEGUILD) && guild->isallied(s_guild, t_guild))) - && (!maplist[m].flag.battleground || sbg_id == tbg_id) ) + && (!map->list[m].flag.battleground || sbg_id == tbg_id) ) state |= BCT_GUILD; else state |= BCT_ENEMY; } - if( state&BCT_ENEMY && maplist[m].flag.battleground && sbg_id && sbg_id == tbg_id ) + if( state&BCT_ENEMY && map->list[m].flag.battleground && sbg_id && sbg_id == tbg_id ) state &= ~BCT_ENEMY; if( state&BCT_ENEMY && battle_config.pk_mode && !map_flag_gvg(m) && s_bl->type == BL_PC && t_bl->type == BL_PC ) @@ -6784,9 +6787,7 @@ void battle_defaults(void) { battle->calc_masteryfix = battle_calc_masteryfix; battle->calc_skillratio = battle_calc_skillratio; battle->calc_sizefix = battle_calc_sizefix; -#ifdef RENEWAL battle->calc_weapon_damage = battle_calc_weapon_damage; -#endif battle->calc_defense = battle_calc_defense; battle->get_master = battle_get_master; battle->get_targeted = battle_gettargeted; @@ -6804,6 +6805,7 @@ void battle_defaults(void) { battle->blewcount_bonus = battle_blewcount_bonus; battle->range_type = battle_range_type; battle->calc_base_damage = battle_calc_base_damage; + battle->calc_base_damage2 = battle_calc_base_damage2; battle->calc_misc_attack = battle_calc_misc_attack; battle->calc_magic_attack = battle_calc_magic_attack; battle->adjust_skill_damage = battle_adjust_skill_damage; diff --git a/src/map/battle.h b/src/map/battle.h index 8878962b8..6d5d5f186 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -523,10 +523,8 @@ struct battle_interface { int (*calc_skillratio) (int attack_type, struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int skillratio, int flag); /* applies size modifiers */ int64 (*calc_sizefix) (struct map_session_data *sd, int64 damage, int type, int size, bool ignore); -#ifdef RENEWAL /* get weapon damage */ int64 (*calc_weapon_damage) (struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, struct weapon_atk *watk, int nk, bool n_ele, short s_ele, short s_ele_, int size, int type, int flag, int flag2); -#endif /* applies defense reductions */ int64 (*calc_defense) (int attack_type, struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 damage, int flag, int pdef); /* get master (who does this unit respond to?) */ @@ -554,12 +552,8 @@ struct battle_interface { int (*blewcount_bonus) (struct map_session_data *sd, uint16 skill_id); /* skill range criteria */ int (*range_type) (struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv); - int64 (*calc_base_damage) -#ifdef RENEWAL - (struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int nk, bool n_ele, short s_ele, short s_ele_, int type, int flag, int flag2); -#else - (struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag); -#endif + int64 (*calc_base_damage) (struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int nk, bool n_ele, short s_ele, short s_ele_, int type, int flag, int flag2); + int64 (*calc_base_damage2) (struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag); struct Damage (*calc_misc_attack) (struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag); struct Damage (*calc_magic_attack) (struct block_list *src,struct block_list *target,uint16 skill_id,uint16 skill_lv,int mflag); int (*adjust_skill_damage) (int m, unsigned short skill_id); diff --git a/src/map/battleground.c b/src/map/battleground.c index 160d2f96e..e7fe4085b 100644 --- a/src/map/battleground.c +++ b/src/map/battleground.c @@ -91,8 +91,8 @@ int bg_team_join(int bg_id, struct map_session_data *sd) { bgd->members[i].x = sd->bl.x; bgd->members[i].y = sd->bl.y; /* populate 'where i came from' */ - if(maplist[sd->bl.m].flag.nosave || maplist[sd->bl.m].instance_id >= 0) { - struct map_data *m=&maplist[sd->bl.m]; + if(map->list[sd->bl.m].flag.nosave || map->list[sd->bl.m].instance_id >= 0) { + struct map_data *m=&map->list[sd->bl.m]; if(m->save.map) memcpy(&bgd->members[i].source,&m->save,sizeof(struct point)); else diff --git a/src/map/buyingstore.c b/src/map/buyingstore.c index 92bf9b869..2a9e6a88e 100644 --- a/src/map/buyingstore.c +++ b/src/map/buyingstore.c @@ -34,7 +34,7 @@ bool buyingstore_setup(struct map_session_data* sd, unsigned char slots) return false; } - if( maplist[sd->bl.m].flag.novending ) { + if( map->list[sd->bl.m].flag.novending ) { // custom: no vending maps clif->message(sd->fd, msg_txt(276)); // "You can't open a shop on this map" return false; @@ -89,7 +89,7 @@ void buyingstore_create(struct map_session_data* sd, int zenylimit, unsigned cha return; } - if( maplist[sd->bl.m].flag.novending ) { + if( map->list[sd->bl.m].flag.novending ) { // custom: no vending maps clif->message(sd->fd, msg_txt(276)); // "You can't open a shop on this map" return; diff --git a/src/map/chat.c b/src/map/chat.c index d6fad4d94..187d40337 100644 --- a/src/map/chat.c +++ b/src/map/chat.c @@ -80,7 +80,7 @@ int chat_createpcchat(struct map_session_data* sd, const char* title, const char return 0; } - if( maplist[sd->bl.m].flag.nochat ) { + if( map->list[sd->bl.m].flag.nochat ) { clif->message(sd->fd, msg_txt(281)); return 0; //Can't create chatrooms on this map. } diff --git a/src/map/chrif.c b/src/map/chrif.c index 829dc22b9..01af69fbf 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -1076,14 +1076,14 @@ int chrif_recvfamelist(int fd) { int num, size; int total = 0, len = 8; - memset(smith_fame_list, 0, sizeof(smith_fame_list)); - memset(chemist_fame_list, 0, sizeof(chemist_fame_list)); - memset(taekwon_fame_list, 0, sizeof(taekwon_fame_list)); + memset(pc->smith_fame_list, 0, sizeof(pc->smith_fame_list)); + memset(pc->chemist_fame_list, 0, sizeof(pc->chemist_fame_list)); + memset(pc->taekwon_fame_list, 0, sizeof(pc->taekwon_fame_list)); size = RFIFOW(fd, 6); //Blacksmith block size for (num = 0; len < size && num < MAX_FAME_LIST; num++) { - memcpy(&smith_fame_list[num], RFIFOP(fd,len), sizeof(struct fame_list)); + memcpy(&pc->smith_fame_list[num], RFIFOP(fd,len), sizeof(struct fame_list)); len += sizeof(struct fame_list); } @@ -1092,7 +1092,7 @@ int chrif_recvfamelist(int fd) { size = RFIFOW(fd, 4); //Alchemist block size for (num = 0; len < size && num < MAX_FAME_LIST; num++) { - memcpy(&chemist_fame_list[num], RFIFOP(fd,len), sizeof(struct fame_list)); + memcpy(&pc->chemist_fame_list[num], RFIFOP(fd,len), sizeof(struct fame_list)); len += sizeof(struct fame_list); } @@ -1101,7 +1101,7 @@ int chrif_recvfamelist(int fd) { size = RFIFOW(fd, 2); //Total packet length for (num = 0; len < size && num < MAX_FAME_LIST; num++) { - memcpy(&taekwon_fame_list[num], RFIFOP(fd,len), sizeof(struct fame_list)); + memcpy(&pc->taekwon_fame_list[num], RFIFOP(fd,len), sizeof(struct fame_list)); len += sizeof(struct fame_list); } @@ -1119,9 +1119,9 @@ int chrif_updatefamelist_ack(int fd) { uint8 index; switch (RFIFOB(fd,2)) { - case RANKTYPE_BLACKSMITH: list = smith_fame_list; break; - case RANKTYPE_ALCHEMIST: list = chemist_fame_list; break; - case RANKTYPE_TAEKWON: list = taekwon_fame_list; break; + case RANKTYPE_BLACKSMITH: list = pc->smith_fame_list; break; + case RANKTYPE_ALCHEMIST: list = pc->chemist_fame_list; break; + case RANKTYPE_TAEKWON: list = pc->taekwon_fame_list; break; default: return 0; } diff --git a/src/map/clif.c b/src/map/clif.c index ed75e9aa0..357c4dc6a 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -860,9 +860,9 @@ static int clif_setlevel(struct block_list* bl) { } return lv; } -#if PACKETVER < 20091103 /* for 'packetver < 20091103' 0x78 non-pc-looking unit handling */ void clif_set_unit_idle2(struct block_list* bl, struct map_session_data *tsd, enum send_target target) { +#if PACKETVER < 20091103 struct map_session_data* sd; struct status_change* sc = status->get_sc(bl); struct view_data* vd = status->get_viewdata(bl); @@ -907,8 +907,10 @@ void clif_set_unit_idle2(struct block_list* bl, struct map_session_data *tsd, en p.clevel = clif_setlevel(bl); clif->send(&p,sizeof(p),tsd?&tsd->bl:bl,target); -} +#else + return; #endif +} /*========================================== * Prepares 'unit standing' packet *------------------------------------------*/ @@ -996,9 +998,9 @@ void clif_set_unit_idle(struct block_list* bl, struct map_session_data *tsd, enu } } -#if PACKETVER < 20091103 /* for 'packetver < 20091103' 0x7c non-pc-looking unit handling */ void clif_spawn_unit2(struct block_list* bl, enum send_target target) { +#if PACKETVER < 20091103 struct map_session_data* sd; struct status_change* sc = status->get_sc(bl); struct view_data* vd = status->get_viewdata(bl); @@ -1037,8 +1039,10 @@ void clif_spawn_unit2(struct block_list* bl, enum send_target target) { p.xSize = p.ySize = (sd) ? 5 : 0; clif->send(&p,sizeof(p),bl,target); -} +#else + return; #endif +} void clif_spawn_unit(struct block_list* bl, enum send_target target) { struct map_session_data* sd; struct status_change* sc = status->get_sc(bl); @@ -1251,22 +1255,22 @@ void clif_weather_check(struct map_session_data *sd) { int16 m = sd->bl.m; int fd = sd->fd; - if (maplist[m].flag.snow) + if (map->list[m].flag.snow) clif->specialeffect_single(&sd->bl, 162, fd); - if (maplist[m].flag.clouds) + if (map->list[m].flag.clouds) clif->specialeffect_single(&sd->bl, 233, fd); - if (maplist[m].flag.clouds2) + if (map->list[m].flag.clouds2) clif->specialeffect_single(&sd->bl, 516, fd); - if (maplist[m].flag.fog) + if (map->list[m].flag.fog) clif->specialeffect_single(&sd->bl, 515, fd); - if (maplist[m].flag.fireworks) { + if (map->list[m].flag.fireworks) { clif->specialeffect_single(&sd->bl, 297, fd); clif->specialeffect_single(&sd->bl, 299, fd); clif->specialeffect_single(&sd->bl, 301, fd); } - if (maplist[m].flag.sakura) + if (map->list[m].flag.sakura) clif->specialeffect_single(&sd->bl, 163, fd); - if (maplist[m].flag.leaves) + if (map->list[m].flag.leaves) clif->specialeffect_single(&sd->bl, 333, fd); } /** @@ -1319,10 +1323,10 @@ int clif_spawn(struct block_list *bl) clif->specialeffect(bl,423,AREA); else if(sd->state.size==SZ_MEDIUM) clif->specialeffect(bl,421,AREA); - if( sd->bg_id && maplist[sd->bl.m].flag.battleground ) + if( sd->bg_id && map->list[sd->bl.m].flag.battleground ) clif->sendbgemblem_area(sd); for( i = 0; i < sd->sc_display_count; i++ ) { - clif->sc_load(&sd->bl, sd->bl.id,AREA,StatusIconChangeTable[sd->sc_display[i]->type],sd->sc_display[i]->val1,sd->sc_display[i]->val2,sd->sc_display[i]->val3); + clif->sc_load(&sd->bl, sd->bl.id,AREA,status->IconChangeTable[sd->sc_display[i]->type],sd->sc_display[i]->val1,sd->sc_display[i]->val2,sd->sc_display[i]->val3); } for(i = 1; i < 5; i++){ if( sd->charm[i] > 0 ) @@ -1638,7 +1642,7 @@ void clif_changemap(struct map_session_data *sd, short m, int x, int y) { WFIFOHEAD(fd,packet_len(0x91)); WFIFOW(fd,0) = 0x91; - mapindex_getmapname_ext(maplist[m].custom_name ? maplist[maplist[m].instance_src_map].name : maplist[m].name, (char*)WFIFOP(fd,2)); + mapindex_getmapname_ext(map->list[m].custom_name ? map->list[map->list[m].instance_src_map].name : map->list[m].name, (char*)WFIFOP(fd,2)); WFIFOW(fd,18) = x; WFIFOW(fd,20) = y; WFIFOSET(fd,packet_len(0x91)); @@ -4283,7 +4287,7 @@ void clif_getareachar_pc(struct map_session_data* sd,struct map_session_data* ds clif->charm_single(sd->fd, dstsd, i); } for( i = 0; i < dstsd->sc_display_count; i++ ) { - clif->sc_load(&sd->bl,dstsd->bl.id,SELF,StatusIconChangeTable[dstsd->sc_display[i]->type],dstsd->sc_display[i]->val1,dstsd->sc_display[i]->val2,dstsd->sc_display[i]->val3); + clif->sc_load(&sd->bl,dstsd->bl.id,SELF,status->IconChangeTable[dstsd->sc_display[i]->type],dstsd->sc_display[i]->val1,dstsd->sc_display[i]->val2,dstsd->sc_display[i]->val3); } if( (sd->status.party_id && dstsd->status.party_id == sd->status.party_id) || //Party-mate, or hpdisp setting. (sd->bg_id && sd->bg_id == dstsd->bg_id) || //BattleGround @@ -4332,7 +4336,7 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) { clif->specialeffect_single(bl,423,sd->fd); else if(tsd->state.size==SZ_MEDIUM) clif->specialeffect_single(bl,421,sd->fd); - if( tsd->bg_id && maplist[tsd->bl.m].flag.battleground ) + if( tsd->bg_id && map->list[tsd->bl.m].flag.battleground ) clif->sendbgemblem_single(sd->fd,tsd); if ( tsd->status.robe ) clif->refreshlook(&sd->bl,bl->id,LOOK_ROBE,tsd->status.robe,SELF); @@ -4574,7 +4578,7 @@ void clif_changemapcell(int fd, int16 m, int x, int y, int type, enum send_targe WBUFW(buf,2) = x; WBUFW(buf,4) = y; WBUFW(buf,6) = type; - mapindex_getmapname_ext(maplist[m].custom_name ? maplist[maplist[m].instance_src_map].name : maplist[m].name,(char*)WBUFP(buf,8)); + mapindex_getmapname_ext(map->list[m].custom_name ? map->list[map->list[m].instance_src_map].name : map->list[m].name,(char*)WBUFP(buf,8)); if( fd ) { WFIFOHEAD(fd,packet_len(0x192)); @@ -6525,7 +6529,7 @@ void clif_party_member_info(struct party_data *p, struct map_session_data *sd) WBUFB(buf,14) = (p->party.member[i].online)?0:1; memcpy(WBUFP(buf,15), p->party.name, NAME_LENGTH); memcpy(WBUFP(buf,39), sd->status.name, NAME_LENGTH); - mapindex_getmapname_ext(maplist[sd->bl.m].custom_name ? maplist[maplist[sd->bl.m].instance_src_map].name : maplist[sd->bl.m].name, (char*)WBUFP(buf,63)); + mapindex_getmapname_ext(map->list[sd->bl.m].custom_name ? map->list[map->list[sd->bl.m].instance_src_map].name : map->list[sd->bl.m].name, (char*)WBUFP(buf,63)); WBUFB(buf,79) = (p->party.item&1)?1:0; WBUFB(buf,80) = (p->party.item&2)?1:0; clif->send(buf,packet_len(0x1e9),&sd->bl,PARTY); @@ -9286,24 +9290,24 @@ void clif_parse_WantToConnection(int fd, struct map_session_data* sd) { chrif->authreq(sd); } void clif_hercules_chsys_mjoin(struct map_session_data *sd) { - if( !maplist[sd->bl.m].channel ) { - CREATE(maplist[sd->bl.m].channel, struct hChSysCh , 1); - safestrncpy(maplist[sd->bl.m].channel->name, hChSys.local_name, HCHSYS_NAME_LENGTH); - maplist[sd->bl.m].channel->type = hChSys_MAP; - maplist[sd->bl.m].channel->m = sd->bl.m; + if( !map->list[sd->bl.m].channel ) { + CREATE(map->list[sd->bl.m].channel, struct hChSysCh , 1); + safestrncpy(map->list[sd->bl.m].channel->name, hChSys.local_name, HCHSYS_NAME_LENGTH); + map->list[sd->bl.m].channel->type = hChSys_MAP; + map->list[sd->bl.m].channel->m = sd->bl.m; - clif->chsys_create(maplist[sd->bl.m].channel,NULL,NULL,hChSys.local_color); + clif->chsys_create(map->list[sd->bl.m].channel,NULL,NULL,hChSys.local_color); } - if( maplist[sd->bl.m].channel->banned && idb_exists(maplist[sd->bl.m].channel->banned, sd->status.account_id) ) { + if( map->list[sd->bl.m].channel->banned && idb_exists(map->list[sd->bl.m].channel->banned, sd->status.account_id) ) { return; } - clif->chsys_join(maplist[sd->bl.m].channel,sd); + clif->chsys_join(map->list[sd->bl.m].channel,sd); - if( !( maplist[sd->bl.m].channel->opt & hChSys_OPT_ANNOUNCE_JOIN ) ) { + if( !( map->list[sd->bl.m].channel->opt & hChSys_OPT_ANNOUNCE_JOIN ) ) { char mout[60]; - sprintf(mout, msg_txt(1435),hChSys.local_name,maplist[sd->bl.m].name); // You're now in the '#%s' channel for '%s' + sprintf(mout, msg_txt(1435),hChSys.local_name,map->list[sd->bl.m].name); // You're now in the '#%s' channel for '%s' clif->colormes(sd->fd, COLOR_DEFAULT, mout); } } @@ -9362,14 +9366,14 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) { pc->setinvincibletimer(sd,battle_config.pc_invincible_time); } - if( maplist[sd->bl.m].users++ == 0 && battle_config.dynamic_mobs ) + if( map->list[sd->bl.m].users++ == 0 && battle_config.dynamic_mobs ) map->spawnmobs(sd->bl.m); if( !(sd->sc.option&OPTION_INVISIBLE) ) { // increment the number of pvp players on the map - maplist[sd->bl.m].users_pvp++; + map->list[sd->bl.m].users_pvp++; } - if( maplist[sd->bl.m].instance_id >= 0 ) { - instances[maplist[sd->bl.m].instance_id].users++; - instance->check_idle(maplist[sd->bl.m].instance_id); + if( map->list[sd->bl.m].instance_id >= 0 ) { + instance->list[map->list[sd->bl.m].instance_id].users++; + instance->check_idle(map->list[sd->bl.m].instance_id); } sd->state.debug_remove_map = 0; // temporary state to track double remove_map's [FlavioJS] @@ -9388,9 +9392,9 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) { if( sd->bg_id ) clif->bg_hp(sd); // BattleGround System - if(maplist[sd->bl.m].flag.pvp && !(sd->sc.option&OPTION_INVISIBLE)) { + if(map->list[sd->bl.m].flag.pvp && !(sd->sc.option&OPTION_INVISIBLE)) { if(!battle_config.pk_mode) { // remove pvp stuff for pk_mode [Valaris] - if (!maplist[sd->bl.m].flag.pvp_nocalcrank) + if (!map->list[sd->bl.m].flag.pvp_nocalcrank) sd->pvp_timer = timer->add(timer->gettick()+200, pc->calc_pvprank_timer, sd->bl.id, 0); sd->pvp_rank = 0; sd->pvp_lastusers = 0; @@ -9404,7 +9408,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) { if(sd->duel_group) clif->map_property(sd, MAPPROPERTY_FREEPVPZONE); - if (maplist[sd->bl.m].flag.gvg_dungeon) + if (map->list[sd->bl.m].flag.gvg_dungeon) clif->map_property(sd, MAPPROPERTY_FREEPVPZONE); //TODO: Figure out the real packet to send here. if( map_flag_gvg2(sd->bl.m) ) @@ -9496,13 +9500,13 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) { if(homun_alive(sd->hd)) homun->init_timers(sd->hd); - if (map->night_flag && maplist[sd->bl.m].flag.nightenabled) { + if (map->night_flag && map->list[sd->bl.m].flag.nightenabled) { sd->state.night = 1; clif->status_change(&sd->bl, SI_SKE, 1, 0, 0, 0, 0); } // Notify everyone that this char logged in [Skotlex]. - map->map_foreachpc(clif->friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 1); + map->foreachpc(clif->friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 1); //Login Event npc->script_event(sd, NPCE_LOGIN); @@ -9534,10 +9538,10 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) { #endif if( (battle_config.bg_flee_penalty != 100 || battle_config.gvg_flee_penalty != 100) && (map_flag_gvg2(sd->state.pmap) || map_flag_gvg2(sd->bl.m) - || maplist[sd->state.pmap].flag.battleground || maplist[sd->bl.m].flag.battleground) ) + || map->list[sd->state.pmap].flag.battleground || map->list[sd->bl.m].flag.battleground) ) status_calc_bl(&sd->bl, SCB_FLEE); //Refresh flee penalty - if( map->night_flag && maplist[sd->bl.m].flag.nightenabled ) { + if( map->night_flag && map->list[sd->bl.m].flag.nightenabled ) { //Display night. if( !sd->state.night ) { sd->state.night = 1; @@ -9548,13 +9552,13 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) { clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_SKE); } - if( maplist[sd->bl.m].flag.battleground ) { + if( map->list[sd->bl.m].flag.battleground ) { clif->map_type(sd, MAPTYPE_BATTLEFIELD); // Battleground Mode - if( maplist[sd->bl.m].flag.battleground == 2 ) + if( map->list[sd->bl.m].flag.battleground == 2 ) clif->bg_updatescore_single(sd); } - if( maplist[sd->bl.m].flag.allowks && !map_flag_ks(sd->bl.m) ) { + if( map->list[sd->bl.m].flag.allowks && !map_flag_ks(sd->bl.m) ) { char output[128]; sprintf(output, "[ Kill Steal Protection Disabled. KS is allowed in this map ]"); clif->broadcast(&sd->bl, output, strlen(output) + 1, BC_BLUE, SELF); @@ -9564,7 +9568,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) { status_calc_pc(sd, false);/* some conditions are map-dependent so we must recalculate */ sd->state.changemap = false; - if( hChSys.local && hChSys.local_autojoin && !maplist[sd->bl.m].flag.chsysnolocalaj ) { + if( hChSys.local && hChSys.local_autojoin && !map->list[sd->bl.m].flag.chsysnolocalaj ) { clif->chsys_mjoin(sd); } } @@ -9586,7 +9590,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) { clif->showvendingboard(&sd->bl,sd->message,0); } - if(maplist[sd->bl.m].flag.loadevent) // Lance + if(map->list[sd->bl.m].flag.loadevent) // Lance npc->script_event(sd, NPCE_LOADMAP); if (pc->checkskill(sd, SG_DEVIL) && !pc->nextjobexp(sd)) //blindness [Komurka] @@ -10415,10 +10419,10 @@ void clif_parse_WisMessage(int fd, struct map_session_data* sd) chname++; if( hChSys.local && strcmpi(chname, hChSys.local_name) == 0 ) { - if( !maplist[sd->bl.m].channel ) { + if( !map->list[sd->bl.m].channel ) { clif->chsys_mjoin(sd); } - channel = maplist[sd->bl.m].channel; + channel = map->list[sd->bl.m].channel; } else if( hChSys.ally && sd->status.guild_id && strcmpi(chname, hChSys.ally_name) == 0 ) { struct guild *g = sd->guild; if( !g ) return; @@ -10699,7 +10703,7 @@ void clif_hercules_chsys_delete(struct hChSysCh *channel) { } db_destroy(channel->users); if( channel->m ) { - maplist[channel->m].channel = NULL; + map->list[channel->m].channel = NULL; aFree(channel); } else if ( channel->type == hChSys_ALLY ) aFree(channel); @@ -12000,7 +12004,7 @@ void clif_parse_CreateParty(int fd, struct map_session_data *sd) { char* name = (char*)RFIFOP(fd,2); name[NAME_LENGTH-1] = '\0'; - if( maplist[sd->bl.m].flag.partylock ) { + if( map->list[sd->bl.m].flag.partylock ) { // Party locked. clif->message(fd, msg_txt(227)); return; @@ -12019,7 +12023,7 @@ void clif_parse_CreateParty2(int fd, struct map_session_data *sd) { int item2 = RFIFOB(fd,27); name[NAME_LENGTH-1] = '\0'; - if( maplist[sd->bl.m].flag.partylock ) { + if( map->list[sd->bl.m].flag.partylock ) { // Party locked. clif->message(fd, msg_txt(227)); return; @@ -12039,7 +12043,7 @@ void clif_parse_CreateParty2(int fd, struct map_session_data *sd) { void clif_parse_PartyInvite(int fd, struct map_session_data *sd) { struct map_session_data *t_sd; - if(maplist[sd->bl.m].flag.partylock) { + if(map->list[sd->bl.m].flag.partylock) { // Party locked. clif->message(fd, msg_txt(227)); return; @@ -12060,7 +12064,7 @@ void clif_parse_PartyInvite2(int fd, struct map_session_data *sd) { char *name = (char*)RFIFOP(fd,2); name[NAME_LENGTH-1] = '\0'; - if(maplist[sd->bl.m].flag.partylock) { + if(map->list[sd->bl.m].flag.partylock) { // Party locked. clif->message(fd, msg_txt(227)); return; @@ -12097,7 +12101,7 @@ void clif_parse_ReplyPartyInvite2(int fd,struct map_session_data *sd) /// Request to leave party (CZ_REQ_LEAVE_GROUP). /// 0100 void clif_parse_LeaveParty(int fd, struct map_session_data *sd) { - if(maplist[sd->bl.m].flag.partylock) { + if(map->list[sd->bl.m].flag.partylock) { // Party locked. clif->message(fd, msg_txt(227)); return; @@ -12109,7 +12113,7 @@ void clif_parse_LeaveParty(int fd, struct map_session_data *sd) { /// Request to expel a party member (CZ_REQ_EXPEL_GROUP_MEMBER). /// 0103 <account id>.L <char name>.24B void clif_parse_RemovePartyMember(int fd, struct map_session_data *sd) { - if(maplist[sd->bl.m].flag.partylock) { + if(map->list[sd->bl.m].flag.partylock) { // Party locked. clif->message(fd, msg_txt(227)); return; @@ -12186,7 +12190,6 @@ void clif_parse_PartyChangeLeader(int fd, struct map_session_data* sd) { party->changeleader(sd, map->id2sd(RFIFOL(fd,2))); } -#ifndef PARTY_RECRUIT /// Party Booking in KRO [Spiria] /// @@ -12194,6 +12197,7 @@ void clif_parse_PartyChangeLeader(int fd, struct map_session_data* sd) { /// 0802 <level>.W <map id>.W { <job>.W }*6 void clif_parse_PartyBookingRegisterReq(int fd, struct map_session_data* sd) { +#ifndef PARTY_RECRUIT short level = RFIFOW(fd,2); short mapid = RFIFOW(fd,4); short job[PARTY_BOOKING_JOBS]; @@ -12203,6 +12207,9 @@ void clif_parse_PartyBookingRegisterReq(int fd, struct map_session_data* sd) job[i] = RFIFOB(fd,6+i*2); party->booking_register(sd, level, mapid, job); +#else + return; +#endif } @@ -12214,12 +12221,16 @@ void clif_parse_PartyBookingRegisterReq(int fd, struct map_session_data* sd) /// 2 = already registered void clif_PartyBookingRegisterAck(struct map_session_data *sd, int flag) { +#ifndef PARTY_RECRUIT int fd = sd->fd; WFIFOHEAD(fd,packet_len(0x803)); WFIFOW(fd,0) = 0x803; WFIFOW(fd,2) = flag; WFIFOSET(fd,packet_len(0x803)); +#else + return; +#endif } @@ -12227,6 +12238,7 @@ void clif_PartyBookingRegisterAck(struct map_session_data *sd, int flag) /// 0804 <level>.W <map id>.W <job>.W <last index>.L <result count>.W void clif_parse_PartyBookingSearchReq(int fd, struct map_session_data* sd) { +#ifndef PARTY_RECRUIT short level = RFIFOW(fd,2); short mapid = RFIFOW(fd,4); short job = RFIFOW(fd,6); @@ -12234,6 +12246,9 @@ void clif_parse_PartyBookingSearchReq(int fd, struct map_session_data* sd) short resultcount = RFIFOW(fd,12); party->booking_search(sd, level, mapid, job, lastindex, resultcount); +#else + return; +#endif } @@ -12244,6 +12259,7 @@ void clif_parse_PartyBookingSearchReq(int fd, struct map_session_data* sd) /// 1 = yes void clif_PartyBookingSearchAck(int fd, struct party_booking_ad_info** results, int count, bool more_result) { +#ifndef PARTY_RECRUIT int i, j; int size = sizeof(struct party_booking_ad_info); // structure size (48) struct party_booking_ad_info *pb_ad; @@ -12263,6 +12279,9 @@ void clif_PartyBookingSearchAck(int fd, struct party_booking_ad_info** results, WFIFOW(fd,i*size+41+j*2) = pb_ad->p_detail.job[j]; } WFIFOSET(fd,WFIFOW(fd,2)); +#else + return; +#endif } @@ -12270,8 +12289,12 @@ void clif_PartyBookingSearchAck(int fd, struct party_booking_ad_info** results, /// 0806 void clif_parse_PartyBookingDeleteReq(int fd, struct map_session_data* sd) { +#ifndef PARTY_RECRUIT if(party->booking_delete(sd)) clif->PartyBookingDeleteAck(sd, 0); +#else + return; +#endif } @@ -12284,12 +12307,16 @@ void clif_parse_PartyBookingDeleteReq(int fd, struct map_session_data* sd) /// 3 = nothing registered void clif_PartyBookingDeleteAck(struct map_session_data* sd, int flag) { +#ifndef PARTY_RECRUIT int fd = sd->fd; WFIFOHEAD(fd,packet_len(0x807)); WFIFOW(fd,0) = 0x807; WFIFOW(fd,2) = flag; WFIFOSET(fd,packet_len(0x807)); +#else + return; +#endif } @@ -12297,6 +12324,7 @@ void clif_PartyBookingDeleteAck(struct map_session_data* sd, int flag) /// 0808 { <job>.W }*6 void clif_parse_PartyBookingUpdateReq(int fd, struct map_session_data* sd) { +#ifndef PARTY_RECRUIT short job[PARTY_BOOKING_JOBS]; int i; @@ -12304,6 +12332,9 @@ void clif_parse_PartyBookingUpdateReq(int fd, struct map_session_data* sd) job[i] = RFIFOW(fd,2+i*2); party->booking_update(sd, job); +#else + return; +#endif } @@ -12311,6 +12342,7 @@ void clif_parse_PartyBookingUpdateReq(int fd, struct map_session_data* sd) /// 0809 <index>.L <char name>.24B <expire time>.L <level>.W <map id>.W { <job>.W }*6 void clif_PartyBookingInsertNotify(struct map_session_data* sd, struct party_booking_ad_info* pb_ad) { +#ifndef PARTY_RECRUIT int i; uint8 buf[38+PARTY_BOOKING_JOBS*2]; @@ -12326,6 +12358,9 @@ void clif_PartyBookingInsertNotify(struct map_session_data* sd, struct party_boo WBUFW(buf,38+i*2) = pb_ad->p_detail.job[i]; clif->send(buf, packet_len(0x809), &sd->bl, ALL_CLIENT); +#else + return; +#endif } @@ -12333,6 +12368,7 @@ void clif_PartyBookingInsertNotify(struct map_session_data* sd, struct party_boo /// 080a <index>.L { <job>.W }*6 void clif_PartyBookingUpdateNotify(struct map_session_data* sd, struct party_booking_ad_info* pb_ad) { +#ifndef PARTY_RECRUIT int i; uint8 buf[6+PARTY_BOOKING_JOBS*2]; @@ -12343,6 +12379,9 @@ void clif_PartyBookingUpdateNotify(struct map_session_data* sd, struct party_boo for(i=0; i<PARTY_BOOKING_JOBS; i++) WBUFW(buf,6+i*2) = pb_ad->p_detail.job[i]; clif->send(buf,packet_len(0x80a),&sd->bl,ALL_CLIENT); // Now UPDATE all client. +#else + return; +#endif } @@ -12350,26 +12389,33 @@ void clif_PartyBookingUpdateNotify(struct map_session_data* sd, struct party_boo /// 080b <index>.L void clif_PartyBookingDeleteNotify(struct map_session_data* sd, int index) { +#ifndef PARTY_RECRUIT uint8 buf[6]; WBUFW(buf,0) = 0x80b; WBUFL(buf,2) = index; clif->send(buf, packet_len(0x80b), &sd->bl, ALL_CLIENT); // Now UPDATE all client. +#else + return; +#endif } -#else /// Modified version of Party Booking System for 2012-04-10 or 2012-04-18 (RagexeRE). /// Code written by mkbu95, Spiria, Yommy and Ind /// Request to register a party booking advertisment (CZ_PARTY_RECRUIT_REQ_REGISTER). /// 08e5 <level>.W <notice>.37B -void clif_parse_PartyBookingRegisterReq(int fd, struct map_session_data* sd) +void clif_parse_PartyRecruitRegisterReq(int fd, struct map_session_data* sd) { +#ifdef PARTY_RECRUIT short level = RFIFOW(fd,2); const char *notice = (const char*)RFIFOP(fd, 4); - party->booking_register(sd, level, notice); + party->recruit_register(sd, level, notice); +#else + return; +#endif } /// Party booking search results (ZC_PARTY_RECRUIT_ACK_SEARCH). @@ -12377,8 +12423,9 @@ void clif_parse_PartyBookingRegisterReq(int fd, struct map_session_data* sd) /// more results: /// 0 = no /// 1 = yes -void clif_PartyBookingSearchAck(int fd, struct party_booking_ad_info** results, int count, bool more_result) +void clif_PartyRecruitSearchAck(int fd, struct party_booking_ad_info** results, int count, bool more_result) { +#ifdef PARTY_RECRUIT int i; int size = sizeof(struct party_booking_ad_info); struct party_booking_ad_info *pb_ad; @@ -12399,6 +12446,9 @@ void clif_PartyBookingSearchAck(int fd, struct party_booking_ad_info** results, } WFIFOSET(fd,WFIFOW(fd,2)); +#else + return; +#endif } /// Result of request to register a party booking advertisment (ZC_PARTY_RECRUIT_ACK_REGISTER). @@ -12407,34 +12457,46 @@ void clif_PartyBookingSearchAck(int fd, struct party_booking_ad_info** results, /// 0 = success /// 1 = failure /// 2 = already registered -void clif_PartyBookingRegisterAck(struct map_session_data *sd, int flag) +void clif_PartyRecruitRegisterAck(struct map_session_data *sd, int flag) { +#ifdef PARTY_RECRUIT int fd = sd->fd; WFIFOHEAD(fd, packet_len(0x8e6)); WFIFOW(fd, 0) = 0x8e6; WFIFOW(fd, 2) = flag; WFIFOSET(fd, packet_len(0x8e6)); +#else + return; +#endif } /// Request to search for party booking advertisments (CZ_PARTY_RECRUIT_REQ_SEARCH). /// 08e7 <level>.W <map id>.W <last index>.L <result count>.W -void clif_parse_PartyBookingSearchReq(int fd, struct map_session_data* sd) +void clif_parse_PartyRecruitSearchReq(int fd, struct map_session_data* sd) { +#ifdef PARTY_RECRUIT short level = RFIFOW(fd, 2); short mapid = RFIFOW(fd, 4); unsigned long lastindex = RFIFOL(fd, 6); short resultcount = RFIFOW(fd, 10); - party->booking_search(sd, level, mapid, lastindex, resultcount); + party->recruit_search(sd, level, mapid, lastindex, resultcount); +#else + return; +#endif } /// Request to delete own party booking advertisment (CZ_PARTY_RECRUIT_REQ_DELETE). /// 08e9 -void clif_parse_PartyBookingDeleteReq(int fd, struct map_session_data* sd) +void clif_parse_PartyRecruitDeleteReq(int fd, struct map_session_data* sd) { +#ifdef PARTY_RECRUIT if(party->booking_delete(sd)) - clif->PartyBookingDeleteAck(sd, 0); + clif->PartyRecruitDeleteAck(sd, 0); +#else + return; +#endif } /// Result of request to delete own party booking advertisment (ZC_PARTY_RECRUIT_ACK_DELETE). @@ -12444,31 +12506,40 @@ void clif_parse_PartyBookingDeleteReq(int fd, struct map_session_data* sd) /// 1 = success (auto-removed expired ad) /// 2 = failure /// 3 = nothing registered -void clif_PartyBookingDeleteAck(struct map_session_data* sd, int flag) +void clif_PartyRecruitDeleteAck(struct map_session_data* sd, int flag) { +#ifdef PARTY_RECRUIT int fd = sd->fd; WFIFOHEAD(fd, packet_len(0x8ea)); WFIFOW(fd, 0) = 0x8ea; WFIFOW(fd, 2) = flag; WFIFOSET(fd, packet_len(0x8ea)); +#else + return; +#endif } /// Request to update party booking advertisment (CZ_PARTY_RECRUIT_REQ_UPDATE). /// 08eb <notice>.37B -void clif_parse_PartyBookingUpdateReq(int fd, struct map_session_data *sd) +void clif_parse_PartyRecruitUpdateReq(int fd, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT const char *notice; notice = (const char*)RFIFOP(fd, 2); - party->booking_update(sd, notice); + party->recruit_update(sd, notice); +#else + return; +#endif } /// Notification about new party booking advertisment (ZC_PARTY_RECRUIT_NOTIFY_INSERT). /// 08ec <index>.L <expire time>.L <char name>.24B <level>.W <notice>.37B -void clif_PartyBookingInsertNotify(struct map_session_data* sd, struct party_booking_ad_info* pb_ad) +void clif_PartyRecruitInsertNotify(struct map_session_data* sd, struct party_booking_ad_info* pb_ad) { +#ifdef PARTY_RECRUIT unsigned char buf[2+6+6+24+4+37+1]; if (pb_ad == NULL) @@ -12481,12 +12552,16 @@ void clif_PartyBookingInsertNotify(struct map_session_data* sd, struct party_boo WBUFW(buf,34) = pb_ad->p_detail.level; memcpy(WBUFP(buf, 36), pb_ad->p_detail.notice, PB_NOTICE_LENGTH); clif->send(buf, packet_len(0x8ec), &sd->bl, ALL_CLIENT); +#else + return; +#endif } /// Notification about updated party booking advertisment (ZC_PARTY_RECRUIT_NOTIFY_UPDATE). /// 08ed <index>.L <notice>.37B -void clif_PartyBookingUpdateNotify(struct map_session_data *sd, struct party_booking_ad_info* pb_ad) +void clif_PartyRecruitUpdateNotify(struct map_session_data *sd, struct party_booking_ad_info* pb_ad) { +#ifdef PARTY_RECRUIT unsigned char buf[2+6+37+1]; WBUFW(buf, 0) = 0x8ed; @@ -12494,51 +12569,71 @@ void clif_PartyBookingUpdateNotify(struct map_session_data *sd, struct party_boo memcpy(WBUFP(buf, 6), pb_ad->p_detail.notice, PB_NOTICE_LENGTH); clif->send(buf, packet_len(0x8ed), &sd->bl, ALL_CLIENT); +#else + return; +#endif } /// Notification about deleted party booking advertisment (ZC_PARTY_RECRUIT_NOTIFY_DELETE). /// 08ee <index>.L -void clif_PartyBookingDeleteNotify(struct map_session_data* sd, int index) +void clif_PartyRecruitDeleteNotify(struct map_session_data* sd, int index) { +#ifdef PARTY_RECRUIT unsigned char buf[2+6+1]; WBUFW(buf, 0) = 0x8ee; WBUFL(buf, 2) = index; clif->send(buf, packet_len(0x8ee), &sd->bl, ALL_CLIENT); +#else + return; +#endif } /// Request to add to filtering list (PARTY_RECRUIT_ADD_FILTERLINGLIST). /// 08ef <index>.L void clif_parse_PartyBookingAddFilteringList(int fd, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT int index = RFIFOL(fd, 2); clif->PartyBookingAddFilteringList(index, sd); +#else + return; +#endif } /// Request to remove from filtering list (PARTY_RECRUIT_SUB_FILTERLINGLIST). /// 08f0 <GID>.L void clif_parse_PartyBookingSubFilteringList(int fd, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT int gid = RFIFOL(fd, 2); clif->PartyBookingSubFilteringList(gid, sd); +#else + return; +#endif } /// Request to recruit volunteer (PARTY_RECRUIT_REQ_VOLUNTEER). /// 08f1 <index>.L void clif_parse_PartyBookingReqVolunteer(int fd, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT int index = RFIFOL(fd, 2); clif->PartyBookingVolunteerInfo(index, sd); +#else + return; +#endif } /// Request volunteer information (PARTY_RECRUIT_VOLUNTEER_INFO). /// 08f2 <AID>.L <job>.L <level>.W <char name>.24B void clif_PartyBookingVolunteerInfo(int index, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT unsigned char buf[2+4+4+2+24+1]; WBUFW(buf, 0) = 0x8f2; @@ -12548,6 +12643,9 @@ void clif_PartyBookingVolunteerInfo(int index, struct map_session_data *sd) memcpy(WBUFP(buf, 12), sd->status.name, NAME_LENGTH); clif->send(buf, packet_len(0x8f2), &sd->bl, ALL_CLIENT); +#else + return; +#endif } #if 0 //Disabled for now. Needs more info. @@ -12591,44 +12689,61 @@ void clif_PartyBookingFailedRecall(int fd, struct map_session_data *sd) /// 08f9 <refuse AID>.L void clif_parse_PartyBookingRefuseVolunteer(int fd, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT unsigned long aid = RFIFOL(fd, 2); clif->PartyBookingRefuseVolunteer(aid, sd); +#else + return; +#endif } /// 08fa <index>.L void clif_PartyBookingRefuseVolunteer(unsigned long aid, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT unsigned char buf[2+6]; WBUFW(buf, 0) = 0x8fa; WBUFL(buf, 2) = aid; clif->send(buf, packet_len(0x8fa), &sd->bl, ALL_CLIENT); +#else + return; +#endif } /// 08fb <index>.L void clif_parse_PartyBookingCancelVolunteer(int fd, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT int index = RFIFOL(fd, 2); clif->PartyBookingCancelVolunteer(index, sd); +#else + return; +#endif } /// 0909 <index>.L void clif_PartyBookingCancelVolunteer(int index, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT unsigned char buf[2+6+1]; WBUFW(buf, 0) = 0x909; WBUFL(buf, 2) = index; clif->send(buf, packet_len(0x909), &sd->bl, ALL_CLIENT); +#else + return; +#endif } /// 090b <gid>.L <char name>.24B void clif_PartyBookingAddFilteringList(int index, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT unsigned char buf[2+6+24+1]; WBUFW(buf, 0) = 0x90b; @@ -12636,11 +12751,15 @@ void clif_PartyBookingAddFilteringList(int index, struct map_session_data *sd) memcpy(WBUFP(buf, 6), sd->status.name, NAME_LENGTH); clif->send(buf, packet_len(0x90b), &sd->bl, ALL_CLIENT); +#else + return; +#endif } /// 090c <gid>.L <char name>.24B void clif_PartyBookingSubFilteringList(int gid, struct map_session_data *sd) { +#ifdef PARTY_RECRUIT unsigned char buf[2+6+24+1]; WBUFW(buf, 0) = 0x90c; @@ -12648,6 +12767,9 @@ void clif_PartyBookingSubFilteringList(int gid, struct map_session_data *sd) memcpy(WBUFP(buf, 6), sd->status.name, NAME_LENGTH); clif->send(buf, packet_len(0x90c), &sd->bl, ALL_CLIENT); +#else + return; +#endif } #if 0 @@ -12661,7 +12783,6 @@ void clif_PartyBookingRefuseVolunteerToPM(struct map_session_data *sd) { } #endif //if 0 -#endif /// Request to close own vending (CZ_REQ_CLOSESTORE). /// 012e @@ -12730,7 +12851,7 @@ void clif_parse_OpenVending(int fd, struct map_session_data* sd) { if( sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOROOM ) return; - if( maplist[sd->bl.m].flag.novending ) { + if( map->list[sd->bl.m].flag.novending ) { clif->message (sd->fd, msg_txt(276)); // "You can't open a shop on this map" return; } @@ -12751,7 +12872,7 @@ void clif_parse_CreateGuild(int fd,struct map_session_data *sd) { char* name = (char*)RFIFOP(fd,6); name[NAME_LENGTH-1] = '\0'; - if(maplist[sd->bl.m].flag.guildlock) { + if(map->list[sd->bl.m].flag.guildlock) { //Guild locked. clif->message(fd, msg_txt(228)); return; @@ -12914,7 +13035,7 @@ clif_sub_guild_invite(int fd, struct map_session_data *sd, struct map_session_da return 1; } - if (maplist[sd->bl.m].flag.guildlock) { + if (map->list[sd->bl.m].flag.guildlock) { //Guild locked. clif->message(fd, msg_txt(228)); return 1; @@ -12961,7 +13082,7 @@ void clif_parse_GuildReplyInvite(int fd,struct map_session_data *sd) /// Request to leave guild (CZ_REQ_LEAVE_GUILD). /// 0159 <guild id>.L <account id>.L <char id>.L <reason>.40B void clif_parse_GuildLeave(int fd,struct map_session_data *sd) { - if(maplist[sd->bl.m].flag.guildlock) { + if(map->list[sd->bl.m].flag.guildlock) { //Guild locked. clif->message(fd, msg_txt(228)); return; @@ -12978,7 +13099,7 @@ void clif_parse_GuildLeave(int fd,struct map_session_data *sd) { /// Request to expel a member of a guild (CZ_REQ_BAN_GUILD). /// 015b <guild id>.L <account id>.L <char id>.L <reason>.40B void clif_parse_GuildExpulsion(int fd,struct map_session_data *sd) { - if( maplist[sd->bl.m].flag.guildlock || sd->bg_id ) { + if( map->list[sd->bl.m].flag.guildlock || sd->bg_id ) { // Guild locked. clif->message(fd, msg_txt(228)); return; @@ -13029,7 +13150,7 @@ void clif_parse_GuildRequestAlliance(int fd, struct map_session_data *sd) { if(!sd->state.gmaster_flag) return; - if(maplist[sd->bl.m].flag.guildlock) { + if(map->list[sd->bl.m].flag.guildlock) { //Guild locked. clif->message(fd, msg_txt(228)); return; @@ -13067,7 +13188,7 @@ void clif_parse_GuildDelAlliance(int fd, struct map_session_data *sd) { if(!sd->state.gmaster_flag) return; - if(maplist[sd->bl.m].flag.guildlock) { + if(map->list[sd->bl.m].flag.guildlock) { //Guild locked. clif->message(fd, msg_txt(228)); return; @@ -13084,7 +13205,7 @@ void clif_parse_GuildOpposition(int fd, struct map_session_data *sd) { if(!sd->state.gmaster_flag) return; - if(maplist[sd->bl.m].flag.guildlock) { + if(map->list[sd->bl.m].flag.guildlock) { //Guild locked. clif->message(fd, msg_txt(228)); return; @@ -13108,7 +13229,7 @@ void clif_parse_GuildOpposition(int fd, struct map_session_data *sd) { /// now guild name; might have been (intended) email, since the /// field name and size is same as the one in CH_DELETE_CHAR. void clif_parse_GuildBreak(int fd, struct map_session_data *sd) { - if( maplist[sd->bl.m].flag.guildlock ) { + if( map->list[sd->bl.m].flag.guildlock ) { //Guild locked. clif->message(fd, msg_txt(228)); return; @@ -14000,9 +14121,9 @@ void clif_ranklist_sub(unsigned char *buf, enum fame_list_type type) { int i; switch( type ) { - case RANKTYPE_BLACKSMITH: list = smith_fame_list; break; - case RANKTYPE_ALCHEMIST: list = chemist_fame_list; break; - case RANKTYPE_TAEKWON: list = taekwon_fame_list; break; + case RANKTYPE_BLACKSMITH: list = pc->smith_fame_list; break; + case RANKTYPE_ALCHEMIST: list = pc->chemist_fame_list; break; + case RANKTYPE_TAEKWON: list = pc->taekwon_fame_list; break; default: return; // Unsupported } @@ -14208,7 +14329,7 @@ void clif_parse_FeelSaveOk(int fd,struct map_session_data *sd) sd->feel_map[i].index = map_id2index(sd->bl.m); sd->feel_map[i].m = sd->bl.m; - pc_setglobalreg(sd,sg_info[i].feel_var,sd->feel_map[i].index); + pc_setglobalreg(sd,pc->sg_info[i].feel_var,sd->feel_map[i].index); //Are these really needed? Shouldn't they show up automatically from the feel save packet? // clif_misceffect2(&sd->bl, 0x1b0); @@ -15950,8 +16071,8 @@ void clif_bg_updatescore(int16 m) { bl.m = m; WBUFW(buf,0) = 0x2de; - WBUFW(buf,2) = maplist[m].bgscore_lion; - WBUFW(buf,4) = maplist[m].bgscore_eagle; + WBUFW(buf,2) = map->list[m].bgscore_lion; + WBUFW(buf,4) = map->list[m].bgscore_eagle; clif->send(buf,packet_len(0x2de),&bl,ALL_SAMEMAP); } @@ -15962,8 +16083,8 @@ void clif_bg_updatescore_single(struct map_session_data *sd) { WFIFOHEAD(fd,packet_len(0x2de)); WFIFOW(fd,0) = 0x2de; - WFIFOW(fd,2) = maplist[sd->bl.m].bgscore_lion; - WFIFOW(fd,4) = maplist[sd->bl.m].bgscore_eagle; + WFIFOW(fd,2) = map->list[sd->bl.m].bgscore_lion; + WFIFOW(fd,4) = map->list[sd->bl.m].bgscore_eagle; WFIFOSET(fd,packet_len(0x2de)); } @@ -16017,20 +16138,20 @@ int clif_instance(int instance_id, int type, int flag) { unsigned char buf[255]; enum send_target target = PARTY; - switch( instances[instance_id].owner_type ) { + switch( instance->list[instance_id].owner_type ) { case IOT_NONE: return 0; case IOT_GUILD: target = GUILD; - sd = guild->getavailablesd(guild->search(instances[instance_id].owner_id)); + sd = guild->getavailablesd(guild->search(instance->list[instance_id].owner_id)); break; case IOT_PARTY: /* default is already PARTY */ - sd = party->getavailablesd(party->search(instances[instance_id].owner_id)); + sd = party->getavailablesd(party->search(instance->list[instance_id].owner_id)); break; case IOT_CHAR: target = SELF; - sd = map->id2sd(instances[instance_id].owner_id); + sd = map->id2sd(instance->list[instance_id].owner_id); break; } @@ -16043,7 +16164,7 @@ int clif_instance(int instance_id, int type, int flag) { // Required to start the instancing information window on Client // This window re-appear each "refresh" of client automatically until type 4 is send to client. WBUFW(buf,0) = 0x02CB; - memcpy(WBUFP(buf,2),instances[instance_id].name,INSTANCE_NAME_LENGTH); + memcpy(WBUFP(buf,2),instance->list[instance_id].name,INSTANCE_NAME_LENGTH); WBUFW(buf,63) = flag; clif->send(buf,packet_len(0x02CB),&sd->bl,target); break; @@ -16058,13 +16179,13 @@ int clif_instance(int instance_id, int type, int flag) { case 4: // S 0x2cd <Instance Name>.61B <Instance Remaining Time>.L <Instance Noplayers close time>.L WBUFW(buf,0) = 0x02CD; - memcpy(WBUFP(buf,2),instances[instance_id].name,61); + memcpy(WBUFP(buf,2),instance->list[instance_id].name,61); if( type == 3 ) { - WBUFL(buf,63) = instances[instance_id].progress_timeout; + WBUFL(buf,63) = instance->list[instance_id].progress_timeout; WBUFL(buf,67) = 0; } else { WBUFL(buf,63) = 0; - WBUFL(buf,67) = instances[instance_id].idle_timeout; + WBUFL(buf,67) = instance->list[instance_id].idle_timeout; } clif->send(buf,packet_len(0x02CD),&sd->bl,target); break; @@ -16086,24 +16207,24 @@ int clif_instance(int instance_id, int type, int flag) { void clif_instance_join(int fd, int instance_id) { - if( instances[instance_id].idle_timer != INVALID_TIMER ) { + if( instance->list[instance_id].idle_timer != INVALID_TIMER ) { WFIFOHEAD(fd,packet_len(0x02CD)); WFIFOW(fd,0) = 0x02CD; - memcpy(WFIFOP(fd,2),instances[instance_id].name,61); + memcpy(WFIFOP(fd,2),instance->list[instance_id].name,61); WFIFOL(fd,63) = 0; - WFIFOL(fd,67) = instances[instance_id].idle_timeout; + WFIFOL(fd,67) = instance->list[instance_id].idle_timeout; WFIFOSET(fd,packet_len(0x02CD)); - } else if( instances[instance_id].progress_timer != INVALID_TIMER ) { + } else if( instance->list[instance_id].progress_timer != INVALID_TIMER ) { WFIFOHEAD(fd,packet_len(0x02CD)); WFIFOW(fd,0) = 0x02CD; - memcpy(WFIFOP(fd,2),instances[instance_id].name,61); - WFIFOL(fd,63) = instances[instance_id].progress_timeout; + memcpy(WFIFOP(fd,2),instance->list[instance_id].name,61); + WFIFOL(fd,63) = instance->list[instance_id].progress_timeout; WFIFOL(fd,67) = 0; WFIFOSET(fd,packet_len(0x02CD)); } else { WFIFOHEAD(fd,packet_len(0x02CB)); WFIFOW(fd,0) = 0x02CB; - memcpy(WFIFOP(fd,2),instances[instance_id].name,61); + memcpy(WFIFOP(fd,2),instance->list[instance_id].name,61); WFIFOW(fd,63) = 0; WFIFOSET(fd,packet_len(0x02CB)); } @@ -17358,14 +17479,14 @@ void clif_maptypeproperty2(struct block_list *bl,enum send_target t) { p.PacketType = maptypeproperty2Type; p.type = 0x28; - p.flag.party = maplist[bl->m].flag.pvp ? 1 : 0; + p.flag.party = map->list[bl->m].flag.pvp ? 1 : 0; p.flag.guild = map_flag_gvg(bl->m) ? 1 : 0; p.flag.siege = map_flag_gvg2(bl->m) ? 1: 0; p.flag.mineffect = map_flag_gvg(bl->m); // FIXME/CHECKME Forcing /mineffect in castles during WoE (probably redundant? I'm not sure) p.flag.nolockon = 0; // TODO - p.flag.countpk = maplist[bl->m].flag.pvp ? 1 : 0; - p.flag.nopartyformation = maplist[bl->m].flag.partylock ? 1 : 0; - p.flag.bg = maplist[bl->m].flag.battleground ? 1 : 0; + p.flag.countpk = map->list[bl->m].flag.pvp ? 1 : 0; + p.flag.nopartyformation = map->list[bl->m].flag.partylock ? 1 : 0; + p.flag.bg = map->list[bl->m].flag.battleground ? 1 : 0; p.flag.noitemconsumption = 0; // TODO p.flag.summonstarmiracle = 0; // TODO p.flag.usecart = 1; // TODO @@ -17984,10 +18105,8 @@ void clif_defaults(void) { clif->clearunit_delayed_sub = clif_clearunit_delayed_sub; clif->set_unit_idle = clif_set_unit_idle; clif->spawn_unit = clif_spawn_unit; -#if PACKETVER < 20091103 clif->spawn_unit2 = clif_spawn_unit2; clif->set_unit_idle2 = clif_set_unit_idle2; -#endif clif->set_unit_walking = clif_set_unit_walking; clif->calc_walkdelay = clif_calc_walkdelay; clif->getareachar_skillunit = clif_getareachar_skillunit; @@ -18342,14 +18461,18 @@ void clif_defaults(void) { clif->PartyBookingUpdateNotify = clif_PartyBookingUpdateNotify; clif->PartyBookingDeleteNotify = clif_PartyBookingDeleteNotify; clif->PartyBookingInsertNotify = clif_PartyBookingInsertNotify; + clif->PartyRecruitRegisterAck = clif_PartyRecruitRegisterAck; + clif->PartyRecruitDeleteAck = clif_PartyRecruitDeleteAck; + clif->PartyRecruitSearchAck = clif_PartyRecruitSearchAck; + clif->PartyRecruitUpdateNotify = clif_PartyRecruitUpdateNotify; + clif->PartyRecruitDeleteNotify = clif_PartyRecruitDeleteNotify; + clif->PartyRecruitInsertNotify = clif_PartyRecruitInsertNotify; /* Group Search System Update */ -#ifdef PARTY_RECRUIT clif->PartyBookingVolunteerInfo = clif_PartyBookingVolunteerInfo; clif->PartyBookingRefuseVolunteer = clif_PartyBookingRefuseVolunteer; clif->PartyBookingCancelVolunteer = clif_PartyBookingCancelVolunteer; clif->PartyBookingAddFilteringList = clif_PartyBookingAddFilteringList; clif->PartyBookingSubFilteringList = clif_PartyBookingSubFilteringList; -#endif /* buying store-related */ clif->buyingstore_open = clif_buyingstore_open; clif->buyingstore_open_failed = clif_buyingstore_open_failed; @@ -18498,6 +18621,10 @@ void clif_defaults(void) { clif->pPartyBookingSearchReq = clif_parse_PartyBookingSearchReq; clif->pPartyBookingDeleteReq = clif_parse_PartyBookingDeleteReq; clif->pPartyBookingUpdateReq = clif_parse_PartyBookingUpdateReq; + clif->pPartyRecruitRegisterReq = clif_parse_PartyRecruitRegisterReq; + clif->pPartyRecruitSearchReq = clif_parse_PartyRecruitSearchReq; + clif->pPartyRecruitDeleteReq = clif_parse_PartyRecruitDeleteReq; + clif->pPartyRecruitUpdateReq = clif_parse_PartyRecruitUpdateReq; clif->pCloseVending = clif_parse_CloseVending; clif->pVendingListReq = clif_parse_VendingListReq; clif->pPurchaseReq = clif_parse_PurchaseReq; @@ -18613,11 +18740,9 @@ void clif_defaults(void) { clif->pPartyTick = clif_parse_PartyTick; clif->pGuildInvite2 = clif_parse_GuildInvite2; /* Group Search System Update */ -#ifdef PARTY_RECRUIT clif->pPartyBookingAddFilter = clif_parse_PartyBookingAddFilteringList; clif->pPartyBookingSubFilter = clif_parse_PartyBookingSubFilteringList; clif->pPartyBookingReqVolunteer = clif_parse_PartyBookingReqVolunteer; clif->pPartyBookingRefuseVolunteer = clif_parse_PartyBookingRefuseVolunteer; clif->pPartyBookingCancelVolunteer = clif_parse_PartyBookingCancelVolunteer; -#endif } diff --git a/src/map/clif.h b/src/map/clif.h index 1e054db1d..1a2748353 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -546,10 +546,8 @@ struct clif_interface { int (*clearunit_delayed_sub) (int tid, unsigned int tick, int id, intptr_t data); void (*set_unit_idle) (struct block_list* bl, struct map_session_data *tsd,enum send_target target); void (*spawn_unit) (struct block_list* bl, enum send_target target); -#if PACKETVER < 20091103 void (*spawn_unit2) (struct block_list* bl, enum send_target target); void (*set_unit_idle2) (struct block_list* bl, struct map_session_data *tsd, enum send_target target); -#endif void (*set_unit_walking) (struct block_list* bl, struct map_session_data *tsd,struct unit_data* ud, enum send_target target); int (*calc_walkdelay) (struct block_list *bl,int delay, int type, int damage, int div_); void (*getareachar_skillunit) (struct map_session_data *sd, struct skill_unit *su); @@ -904,14 +902,18 @@ struct clif_interface { void (*PartyBookingUpdateNotify) (struct map_session_data* sd, struct party_booking_ad_info* pb_ad); void (*PartyBookingDeleteNotify) (struct map_session_data* sd, int index); void (*PartyBookingInsertNotify) (struct map_session_data* sd, struct party_booking_ad_info* pb_ad); + void (*PartyRecruitRegisterAck) (struct map_session_data *sd, int flag); + void (*PartyRecruitDeleteAck) (struct map_session_data* sd, int flag); + void (*PartyRecruitSearchAck) (int fd, struct party_booking_ad_info** results, int count, bool more_result); + void (*PartyRecruitUpdateNotify) (struct map_session_data* sd, struct party_booking_ad_info* pb_ad); + void (*PartyRecruitDeleteNotify) (struct map_session_data* sd, int index); + void (*PartyRecruitInsertNotify) (struct map_session_data* sd, struct party_booking_ad_info* pb_ad); /* Group Search System Update */ -#ifdef PARTY_RECRUIT void (*PartyBookingVolunteerInfo) (int index, struct map_session_data *sd); void (*PartyBookingRefuseVolunteer) (unsigned long aid, struct map_session_data *sd); void (*PartyBookingCancelVolunteer) (int index, struct map_session_data *sd); void (*PartyBookingAddFilteringList) (int index, struct map_session_data *sd); void (*PartyBookingSubFilteringList) (int gid, struct map_session_data *sd); -#endif /* buying store-related */ void (*buyingstore_open) (struct map_session_data* sd); void (*buyingstore_open_failed) (struct map_session_data* sd, unsigned short result, unsigned int weight); @@ -1060,6 +1062,10 @@ struct clif_interface { void (*pPartyBookingSearchReq) (int fd, struct map_session_data* sd); void (*pPartyBookingDeleteReq) (int fd, struct map_session_data* sd); void (*pPartyBookingUpdateReq) (int fd, struct map_session_data* sd); + void (*pPartyRecruitRegisterReq) (int fd, struct map_session_data* sd); + void (*pPartyRecruitSearchReq) (int fd, struct map_session_data* sd); + void (*pPartyRecruitDeleteReq) (int fd, struct map_session_data* sd); + void (*pPartyRecruitUpdateReq) (int fd, struct map_session_data* sd); void (*pCloseVending) (int fd, struct map_session_data* sd); void (*pVendingListReq) (int fd, struct map_session_data* sd); void (*pPurchaseReq) (int fd, struct map_session_data* sd); @@ -1173,13 +1179,11 @@ struct clif_interface { void (*pPartyTick) (int fd, struct map_session_data *sd); void (*pGuildInvite2) (int fd, struct map_session_data *sd); /* Group Search System Update */ -#ifdef PARTY_RECRUIT void (*pPartyBookingAddFilter) (int fd, struct map_session_data *sd); void (*pPartyBookingSubFilter) (int fd, struct map_session_data *sd); void (*pPartyBookingReqVolunteer) (int fd, struct map_session_data *sd); void (*pPartyBookingRefuseVolunteer) (int fd, struct map_session_data *sd); void (*pPartyBookingCancelVolunteer) (int fd, struct map_session_data *sd); -#endif }; struct clif_interface *clif; diff --git a/src/map/duel.c b/src/map/duel.c index a993ee667..4e41865d4 100644 --- a/src/map/duel.c +++ b/src/map/duel.c @@ -69,7 +69,7 @@ void duel_showinfo(const unsigned int did, struct map_session_data* sd) { duel->list[did].members_count + duel->list[did].invites_count); clif->disp_onlyself(sd, output, strlen(output)); - map->map_foreachpc(duel_showinfo_sub, sd, &p); + map->foreachpc(duel_showinfo_sub, sd, &p); } int duel_create(struct map_session_data* sd, const unsigned int maxpl) { @@ -126,7 +126,7 @@ void duel_leave(const unsigned int did, struct map_session_data* sd) { duel->list[did].members_count--; if(duel->list[did].members_count == 0) { - map->map_foreachpc(duel_leave_sub, did); + map->foreachpc(duel_leave_sub, did); duel->count--; } diff --git a/src/map/duel.h b/src/map/duel.h index 7802f6163..d1ec58415 100644 --- a/src/map/duel.h +++ b/src/map/duel.h @@ -1,5 +1,7 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Portions Copyright (c) Athena Dev Teams + #ifndef _DUEL_H_ #define _DUEL_H_ @@ -11,8 +13,6 @@ struct duel { #define MAX_DUEL 1024 - - /*===================================== * Interface : duel.h * Generated by HerculesInterfaceMaker diff --git a/src/map/elemental.c b/src/map/elemental.c index 12e8f4c4e..3251ca992 100644 --- a/src/map/elemental.c +++ b/src/map/elemental.c @@ -39,22 +39,24 @@ #include <string.h> #include <math.h> +struct elemental_interface elemental_s; + int elemental_search_index(int class_) { int i; - ARR_FIND(0, MAX_ELEMENTAL_CLASS, i, elemental->elemental_db[i].class_ == class_); + ARR_FIND(0, MAX_ELEMENTAL_CLASS, i, elemental->db[i].class_ == class_); return (i == MAX_ELEMENTAL_CLASS)?-1:i; } bool elemental_class(int class_) { - return (bool)(elemental_search_index(class_) > -1); + return (bool)(elemental->search_index(class_) > -1); } struct view_data * elemental_get_viewdata(int class_) { - int i = elemental_search_index(class_); + int i = elemental->search_index(class_); if( i < 0 ) return 0; - return &elemental->elemental_db[i].vd; + return &elemental->db[i].vd; } int elemental_create(struct map_session_data *sd, int class_, unsigned int lifetime) { @@ -64,10 +66,10 @@ int elemental_create(struct map_session_data *sd, int class_, unsigned int lifet nullpo_retr(1,sd); - if( (i = elemental_search_index(class_)) < 0 ) + if( (i = elemental->search_index(class_)) < 0 ) return 0; - db = &elemental->elemental_db[i]; + db = &elemental->db[i]; memset(&ele,0,sizeof(struct s_elemental)); ele.char_id = sd->status.char_id; @@ -75,27 +77,27 @@ int elemental_create(struct map_session_data *sd, int class_, unsigned int lifet ele.mode = EL_MODE_PASSIVE; // Initial mode i = db->status.size+1; // summon level - //[(Caster�s Max HP/ 3 ) + (Caster�s INT x 10 )+ (Caster�s Job Level x 20 )] x [(Elemental Summon Level + 2) / 3] + //[(Caster's Max HP/ 3 ) + (Caster's INT x 10 )+ (Caster's Job Level x 20 )] x [(Elemental Summon Level + 2) / 3] ele.hp = ele.max_hp = (sd->battle_status.max_hp/3 + sd->battle_status.int_*10 + sd->status.job_level) * ((i + 2) / 3); - //Caster�s Max SP /4 + //Caster's Max SP /4 ele.sp = ele.max_sp = sd->battle_status.max_sp/4; - //Caster�s [ Max SP / (18 / Elemental Summon Skill Level) 1- 100 ] + //Caster's [ Max SP / (18 / Elemental Summon Skill Level) 1- 100 ] ele.atk = (sd->battle_status.max_sp / (18 / i) * 1 - 100); - //Caster�s [ Max SP / (18 / Elemental Summon Skill Level) ] + //Caster's [ Max SP / (18 / Elemental Summon Skill Level) ] ele.atk2 = sd->battle_status.max_sp / 18; - //Caster�s HIT + (Caster�s Base Level ) + //Caster's HIT + (Caster's Base Level) ele.hit = sd->battle_status.hit + sd->status.base_level; - //[Elemental Summon Skill Level x (Caster�s INT / 2 + Caster�s DEX / 4)] + //[Elemental Summon Skill Level x (Caster's INT / 2 + Caster's DEX / 4)] ele.matk = i * (sd->battle_status.int_ / 2 + sd->battle_status.dex / 4); - //150 + [Caster�s DEX / 10] + [Elemental Summon Skill Level x 3 ] + //150 + [Caster's DEX / 10] + [Elemental Summon Skill Level x 3 ] ele.amotion = 150 + sd->battle_status.dex / 10 + i * 3; - //Caster�s DEF + (Caster�s Base Level / (5 � Elemental Summon Skill Level) + //Caster's DEF + (Caster's Base Level / (5 - Elemental Summon Skill Level) ele.def = sd->battle_status.def + sd->status.base_level / (5-i); - //Caster�s MDEF + (Caster�s INT / (5 - Elemental Summon Skill Level) + //Caster's MDEF + (Caster's INT / (5 - Elemental Summon Skill Level) ele.mdef = sd->battle_status.mdef + sd->battle_status.int_ / (5-i); - //Caster�s FLEE + (Caster�s Base Level / (5 � Elemental Summon Skill Level) + //Caster's FLEE + (Caster's Base Level / (5 - Elemental Summon Skill Level) ele.flee = sd->status.base_level / (5-i); - //Caster�s HIT + (Caster�s Base Level ) + //Caster's HIT + (Caster's Base Level) ele.hit = sd->battle_status.hit + sd->status.base_level; //per individual bonuses @@ -167,7 +169,7 @@ int elemental_save(struct elemental_data *ed) { return 1; } -static int elemental_summon_end(int tid, unsigned int tick, int id, intptr_t data) { +int elemental_summon_end_timer(int tid, unsigned int tick, int id, intptr_t data) { struct map_session_data *sd; struct elemental_data *ed; @@ -177,7 +179,7 @@ static int elemental_summon_end(int tid, unsigned int tick, int id, intptr_t dat return 1; if( ed->summon_timer != tid ) { - ShowError("elemental_summon_end %d != %d.\n", ed->summon_timer, tid); + ShowError("elemental_summon_end_timer %d != %d.\n", ed->summon_timer, tid); return 0; } @@ -190,7 +192,7 @@ static int elemental_summon_end(int tid, unsigned int tick, int id, intptr_t dat void elemental_summon_stop(struct elemental_data *ed) { nullpo_retv(ed); if( ed->summon_timer != INVALID_TIMER ) - timer->delete(ed->summon_timer, elemental_summon_end); + timer->delete(ed->summon_timer, elemental->summon_end_timer); ed->summon_timer = INVALID_TIMER; } @@ -215,7 +217,7 @@ int elemental_delete(struct elemental_data *ed, int reply) { void elemental_summon_init(struct elemental_data *ed) { if( ed->summon_timer == INVALID_TIMER ) - ed->summon_timer = timer->add(timer->gettick() + ed->elemental.life_time, elemental_summon_end, ed->master->bl.id, 0); + ed->summon_timer = timer->add(timer->gettick() + ed->elemental.life_time, elemental->summon_end_timer, ed->master->bl.id, 0); ed->regen.state.block = 0; } @@ -224,7 +226,7 @@ int elemental_data_received(struct s_elemental *ele, bool flag) { struct map_session_data *sd; struct elemental_data *ed; struct s_elemental_db *db; - int i = elemental_search_index(ele->class_); + int i = elemental->search_index(ele->class_); if( (sd = map->charid2sd(ele->char_id)) == NULL ) return 0; @@ -234,7 +236,7 @@ int elemental_data_received(struct s_elemental *ele, bool flag) { return 0; } - db = &elemental->elemental_db[i]; + db = &elemental->db[i]; if( !sd->ed ) { // Initialize it after first summon. sd->ed = ed = (struct elemental_data*)aCalloc(1,sizeof(struct elemental_data)); ed->bl.type = BL_ELEM; @@ -259,7 +261,7 @@ int elemental_data_received(struct s_elemental *ele, bool flag) { status_calc_elemental(ed,1); ed->last_spdrain_time = ed->last_thinktime = timer->gettick(); ed->summon_timer = INVALID_TIMER; - elemental_summon_init(ed); + elemental->summon_init(ed); } else { memcpy(&sd->ed->elemental, ele, sizeof(struct s_elemental)); ed = sd->ed; @@ -598,7 +600,7 @@ int elemental_set_target( struct map_session_data *sd, struct block_list *bl ) { return 1; } -static int elemental_ai_sub_timer_activesearch(struct block_list *bl, va_list ap) { +int elemental_ai_sub_timer_activesearch(struct block_list *bl, va_list ap) { struct elemental_data *ed; struct block_list **target; int dist; @@ -634,7 +636,7 @@ static int elemental_ai_sub_timer_activesearch(struct block_list *bl, va_list ap return 0; } -static int elemental_ai_sub_timer(struct elemental_data *ed, struct map_session_data *sd, unsigned int tick) { +int elemental_ai_sub_timer(struct elemental_data *ed, struct map_session_data *sd, unsigned int tick) { struct block_list *target = NULL; int master_dist, view_range, mode; @@ -713,7 +715,7 @@ static int elemental_ai_sub_timer(struct elemental_data *ed, struct map_session_ target = map->id2bl(ed->ud.target); if( !target ) - map->foreachinrange(elemental_ai_sub_timer_activesearch, &ed->bl, view_range, BL_CHAR, ed, &target, status_get_mode(&ed->bl)); + map->foreachinrange(elemental->ai_sub_timer_activesearch, &ed->bl, view_range, BL_CHAR, ed, &target, status_get_mode(&ed->bl)); if( !target ) { //No targets available. elemental->unlocktarget(ed); @@ -743,16 +745,16 @@ static int elemental_ai_sub_timer(struct elemental_data *ed, struct map_session_ return 0; } -static int elemental_ai_sub_foreachclient(struct map_session_data *sd, va_list ap) { +int elemental_ai_sub_foreachclient(struct map_session_data *sd, va_list ap) { unsigned int tick = va_arg(ap,unsigned int); if(sd->status.ele_id && sd->ed) - elemental_ai_sub_timer(sd->ed,sd,tick); + elemental->ai_sub_timer(sd->ed,sd,tick); return 0; } -static int elemental_ai_timer(int tid, unsigned int tick, int id, intptr_t data) { - map->map_foreachpc(elemental_ai_sub_foreachclient,tick); +int elemental_ai_timer(int tid, unsigned int tick, int id, intptr_t data) { + map->foreachpc(elemental->ai_sub_foreachclient,tick); return 0; } @@ -765,7 +767,9 @@ int read_elementaldb(void) { struct status_data *estatus; sprintf(line, "%s/%s", map->db_path, "elemental_db.txt"); - memset(elemental->elemental_db,0,sizeof(elemental->elemental_db)); + + if( runflag == MAPSERVER_ST_RUNNING ) //only necessary after we're up + memset(elemental->db,0,sizeof(elemental->db)); fp = fopen(line, "r"); if( !fp ) { @@ -792,7 +796,7 @@ int read_elementaldb(void) { continue; } - db = &elemental->elemental_db[j]; + db = &elemental->db[j]; db->class_ = atoi(str[0]); safestrncpy(db->sprite, str[1], NAME_LENGTH); safestrncpy(db->name, str[2], NAME_LENGTH); @@ -882,7 +886,7 @@ int read_elemental_skilldb(void) { } class_ = atoi(str[0]); - ARR_FIND(0, MAX_ELEMENTAL_CLASS, i, class_ == elemental->elemental_db[i].class_); + ARR_FIND(0, MAX_ELEMENTAL_CLASS, i, class_ == elemental->db[i].class_); if( i == MAX_ELEMENTAL_CLASS ) { ShowError("read_elemental_skilldb : Class not found in elemental_db for skill entry, line %d.\n", k); continue; @@ -894,7 +898,7 @@ int read_elemental_skilldb(void) { continue; } - db = &elemental->elemental_db[i]; + db = &elemental->db[i]; skill_lv = atoi(str[2]); skillmode = atoi(str[3]); @@ -919,7 +923,7 @@ int read_elemental_skilldb(void) { } void reload_elementaldb(void) { - read_elementaldb(); + elemental->read_db(); elemental->reload_skilldb(); } @@ -928,11 +932,11 @@ void reload_elemental_skilldb(void) { } int do_init_elemental(void) { - read_elementaldb(); + elemental->read_db(); elemental->read_skilldb(); - timer->add_func_list(elemental_ai_timer,"elemental_ai_timer"); - timer->add_interval(timer->gettick()+MIN_ELETHINKTIME,elemental_ai_timer,0,0,MIN_ELETHINKTIME); + timer->add_func_list(elemental->ai_timer,"elemental_ai_timer"); + timer->add_interval(timer->gettick()+MIN_ELETHINKTIME,elemental->ai_timer,0,0,MIN_ELETHINKTIME); return 0; } @@ -949,6 +953,13 @@ void do_final_elemental(void) { void elemental_defaults(void) { elemental = &elemental_s; + /* */ + elemental->init = do_init_elemental; + elemental->final = do_final_elemental; + + /* */ + memset(elemental->db,0,sizeof(elemental->db)); + /* funcs */ elemental->class = elemental_class; @@ -978,8 +989,15 @@ void elemental_defaults(void) { elemental->skill_get_requirements = elemental_skill_get_requirements; elemental->read_skilldb = read_elemental_skilldb; - elemental->reload_elementaldb = reload_elementaldb; + elemental->reload_db = reload_elementaldb; elemental->reload_skilldb = reload_elemental_skilldb; - elemental->do_init_elemental = do_init_elemental; - elemental->do_final_elemental = do_final_elemental; + + elemental->search_index = elemental_search_index; + elemental->summon_init = elemental_summon_init; + elemental->summon_end_timer = elemental_summon_end_timer; + elemental->ai_sub_timer_activesearch = elemental_ai_sub_timer_activesearch; + elemental->ai_sub_timer = elemental_ai_sub_timer; + elemental->ai_sub_foreachclient = elemental_ai_sub_foreachclient; + elemental->ai_timer = elemental_ai_timer; + elemental->read_db = read_elementaldb; } diff --git a/src/map/elemental.h b/src/map/elemental.h index ccc3bcb5f..b42d5c0b7 100644 --- a/src/map/elemental.h +++ b/src/map/elemental.h @@ -1,9 +1,16 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Portions Copyright (c) Athena Dev Teams + #ifndef _ELEMENTAL_H_ #define _ELEMENTAL_H_ + #include "status.h" // struct status_data, struct status_change #include "unit.h" // struct unit_data + +/** + * Defines + **/ #define MIN_ELETHINKTIME 100 #define MIN_ELEDISTANCE 2 #define MAX_ELEDISTANCE 5 @@ -13,10 +20,18 @@ #define EL_SKILLMODE_PASIVE 0x1 #define EL_SKILLMODE_ASSIST 0x2 #define EL_SKILLMODE_AGGRESSIVE 0x4 + +#define elemental_stop_walking(ed, type) unit->stop_walking(&(ed)->bl, type) +#define elemental_stop_attack(ed) unit->stop_attack(&(ed)->bl) + +/** + * Structures + **/ struct elemental_skill { unsigned short id, lv; short mode; }; + struct s_elemental_db { int class_; char sprite[NAME_LENGTH], name[NAME_LENGTH]; @@ -26,6 +41,7 @@ struct s_elemental_db { struct view_data vd; struct elemental_skill skill[MAX_ELESKILLTREE]; }; + struct elemental_data { struct block_list bl; struct unit_data ud; @@ -46,9 +62,6 @@ struct elemental_data { int target_id, attacked_id; }; -#define elemental_stop_walking(ed, type) unit->stop_walking(&(ed)->bl, type) -#define elemental_stop_attack(ed) unit->stop_attack(&(ed)->bl) - /*===================================== * Interface : elemental.h * Generated by HerculesInterfaceMaker @@ -57,8 +70,11 @@ struct elemental_data { struct elemental_interface { /* vars */ - struct s_elemental_db elemental_db[MAX_ELEMENTAL_CLASS]; // Elemental Database + struct s_elemental_db db[MAX_ELEMENTAL_CLASS]; // Elemental Database + /* */ + int (*init) (void); + void (*final) (void); /* funcs */ bool (*class) (int class_); struct view_data * (*get_viewdata) (int class_); @@ -87,11 +103,18 @@ struct elemental_interface { struct skill_condition (*skill_get_requirements) (uint16 skill_id, uint16 skill_lv); int (*read_skilldb) (void); - void (*reload_elementaldb) (void); + void (*reload_db) (void); void (*reload_skilldb) (void); - int (*do_init_elemental) (void); - void (*do_final_elemental) (void); -} elemental_s; + + int (*search_index) (int class_); + void (*summon_init) (struct elemental_data *ed); + int (*summon_end_timer) (int tid, unsigned int tick, int id, intptr_t data); + int (*ai_sub_timer_activesearch) (struct block_list *bl, va_list ap); + int (*ai_sub_timer) (struct elemental_data *ed, struct map_session_data *sd, unsigned int tick); + int (*ai_sub_foreachclient) (struct map_session_data *sd, va_list ap); + int (*ai_timer) (int tid, unsigned int tick, int id, intptr_t data); + int (*read_db) (void); +}; struct elemental_interface *elemental; diff --git a/src/map/guild.c b/src/map/guild.c index 797b3b370..30f989f58 100644 --- a/src/map/guild.c +++ b/src/map/guild.c @@ -32,50 +32,10 @@ struct guild_interface guild_s; -static DBMap* guild_db; // int guild_id -> struct guild* -static DBMap* castle_db; // int castle_id -> struct guild_castle* -static DBMap* guild_expcache_db; // int char_id -> struct guild_expcache* -static DBMap* guild_infoevent_db; // int guild_id -> struct eventlist* - -struct eventlist { - char name[EVENT_NAME_LENGTH]; - struct eventlist *next; -}; - -//Constant related to the flash of the Guild EXP cache -#define GUILD_SEND_XY_INVERVAL 5000 // Interval of sending coordinates and HP -#define GUILD_PAYEXP_INVERVAL 10000 //Interval (maximum survival time of the cache, in milliseconds) -#define GUILD_PAYEXP_LIST 8192 //The maximum number of cache - -//Guild EXP cache - -struct guild_expcache { - int guild_id, account_id, char_id; - uint64 exp; -}; -static struct eri *expcache_ers; //For handling of guild exp payment. - -#define MAX_GUILD_SKILL_REQUIRE 5 -struct{ - int id; - int max; - struct{ - short id; - short lv; - }need[MAX_GUILD_SKILL_REQUIRE]; -} guild_skill_tree[MAX_GUILDSKILL]; - -int guild_payexp_timer(int tid, unsigned int tick, int id, intptr_t data); -static int guild_send_xy_timer(int tid, unsigned int tick, int id, intptr_t data); - -/* guild flags cache */ -struct npc_data **guild_flags; -unsigned short guild_flags_count; - /*========================================== * Retrieves and validates the sd pointer for this guild member [Skotlex] *------------------------------------------*/ -static TBL_PC* guild_sd_check(int guild_id, int account_id, int char_id) { +TBL_PC* guild_sd_check(int guild_id, int account_id, int char_id) { TBL_PC* sd = map->id2sd(account_id); if (!(sd && sd->status.char_id == char_id)) @@ -90,15 +50,14 @@ static TBL_PC* guild_sd_check(int guild_id, int account_id, int char_id) { return sd; } - // Modified [Komurka] +// Modified [Komurka] int guild_skill_get_max (int id) { if (id < GD_SKILLBASE || id >= GD_SKILLBASE+MAX_GUILDSKILL) return 0; - return guild_skill_tree[id-GD_SKILLBASE].max; + return guild->skill_tree[id-GD_SKILLBASE].max; } // Retrive skill_lv learned by guild - int guild_checkskill(struct guild *g, int id) { int idx = id - GD_SKILLBASE; if (idx < 0 || idx >= MAX_GUILDSKILL) @@ -109,7 +68,7 @@ int guild_checkskill(struct guild *g, int id) { /*========================================== * guild_skill_tree.txt reading - from jA [Komurka] *------------------------------------------*/ -static bool guild_read_guildskill_tree_db(char* split[], int columns, int current) +bool guild_read_guildskill_tree_db(char* split[], int columns, int current) {// <skill id>,<max lv>,<req id1>,<req lv1>,<req id2>,<req lv2>,<req id3>,<req lv3>,<req id4>,<req lv4>,<req id5>,<req lv5> int k, id, skill_id; @@ -122,18 +81,18 @@ static bool guild_read_guildskill_tree_db(char* split[], int columns, int curren return false; } - guild_skill_tree[id].id = skill_id; - guild_skill_tree[id].max = atoi(split[1]); + guild->skill_tree[id].id = skill_id; + guild->skill_tree[id].max = atoi(split[1]); - if( guild_skill_tree[id].id == GD_GLORYGUILD && battle_config.require_glory_guild && guild_skill_tree[id].max == 0 ) + if( guild->skill_tree[id].id == GD_GLORYGUILD && battle_config.require_glory_guild && guild->skill_tree[id].max == 0 ) {// enable guild's glory when required for emblems - guild_skill_tree[id].max = 1; + guild->skill_tree[id].max = 1; } for( k = 0; k < MAX_GUILD_SKILL_REQUIRE; k++ ) { - guild_skill_tree[id].need[k].id = atoi(split[k*2+2]); - guild_skill_tree[id].need[k].lv = atoi(split[k*2+3]); + guild->skill_tree[id].need[k].id = atoi(split[k*2+2]); + guild->skill_tree[id].need[k].lv = atoi(split[k*2+3]); } return true; @@ -155,14 +114,14 @@ int guild_check_skill_require(struct guild *g,int id) for(i=0;i<MAX_GUILD_SKILL_REQUIRE;i++) { - if(guild_skill_tree[idx].need[i].id == 0) break; - if(guild_skill_tree[idx].need[i].lv > guild->checkskill(g,guild_skill_tree[idx].need[i].id)) + if(guild->skill_tree[idx].need[i].id == 0) break; + if(guild->skill_tree[idx].need[i].lv > guild->checkskill(g,guild->skill_tree[idx].need[i].id)) return 0; } return 1; } -static bool guild_read_castledb(char* str[], int columns, int current) +bool guild_read_castledb(char* str[], int columns, int current) {// <castle id>,<map name>,<castle name>,<castle event>[,<reserved/unused switch flag>] struct guild_castle *gc; int mapindex = mapindex_name2id(str[1]); @@ -176,7 +135,7 @@ static bool guild_read_castledb(char* str[], int columns, int current) safestrncpy(gc->castle_name, str[2], sizeof(gc->castle_name)); safestrncpy(gc->castle_event, str[3], sizeof(gc->castle_event)); - idb_put(castle_db,gc->castle_id,gc); + idb_put(guild->castle_db,gc->castle_id,gc); //intif->guild_castle_info(gc->castle_id); @@ -186,14 +145,14 @@ static bool guild_read_castledb(char* str[], int columns, int current) /// lookup: guild id -> guild* struct guild* guild_search(int guild_id) { - return (struct guild*)idb_get(guild_db,guild_id); + return (struct guild*)idb_get(guild->db,guild_id); } /// lookup: guild name -> guild* struct guild* guild_searchname(char* str) { struct guild* g; - DBIterator *iter = db_iterator(guild_db); + DBIterator *iter = db_iterator(guild->db); for( g = dbi_first(iter); dbi_exists(iter); g = dbi_next(iter) ) { @@ -208,14 +167,14 @@ struct guild* guild_searchname(char* str) /// lookup: castle id -> castle* struct guild_castle* guild_castle_search(int gcid) { - return (struct guild_castle*)idb_get(castle_db,gcid); + return (struct guild_castle*)idb_get(guild->castle_db,gcid); } /// lookup: map index -> castle* struct guild_castle* guild_mapindex2gc(short mapindex) { struct guild_castle* gc; - DBIterator *iter = db_iterator(castle_db); + DBIterator *iter = db_iterator(guild->castle_db); for( gc = dbi_first(iter); dbi_exists(iter); gc = dbi_next(iter) ) { @@ -303,7 +262,7 @@ int guild_payexp_timer_sub(DBKey key, DBData *data, va_list ap) { (g = guild->search(c->guild_id)) == NULL || (i = guild->getindex(g, c->account_id, c->char_id)) < 0 ) { - ers_free(expcache_ers, c); + ers_free(guild->expcache_ers, c); return 0; } @@ -316,13 +275,13 @@ int guild_payexp_timer_sub(DBKey key, DBData *data, va_list ap) { GMI_EXP,&g->member[i].exp,sizeof(g->member[i].exp)); c->exp=0; - ers_free(expcache_ers, c); + ers_free(guild->expcache_ers, c); return 0; } int guild_payexp_timer(int tid, unsigned int tick, int id, intptr_t data) { - guild_expcache_db->clear(guild_expcache_db,guild_payexp_timer_sub); + guild->expcache_db->clear(guild->expcache_db,guild->payexp_timer_sub); return 0; } @@ -355,9 +314,9 @@ int guild_send_xy_timer_sub(DBKey key, DBData *data, va_list ap) } //Code from party_send_xy_timer [Skotlex] -static int guild_send_xy_timer(int tid, unsigned int tick, int id, intptr_t data) +int guild_send_xy_timer(int tid, unsigned int tick, int id, intptr_t data) { - guild_db->foreach(guild_db,guild_send_xy_timer_sub,tick); + guild->db->foreach(guild->db,guild->send_xy_timer_sub,tick); return 0; } @@ -392,7 +351,7 @@ int guild_create(struct map_session_data *sd, const char *name) return 0; } - guild_makemember(&m,sd); + guild->makemember(&m,sd); m.position=0; intif->guild_create(name,&m); return 1; @@ -440,7 +399,7 @@ int guild_npc_request_info(int guild_id,const char *event) ev=(struct eventlist *)aCalloc(sizeof(struct eventlist),1); memcpy(ev->name,event,strlen(event)); //The one in the db (if present) becomes the next event from this. - if (guild_infoevent_db->put(guild_infoevent_db, DB->i2key(guild_id), DB->ptr2data(ev), &prev)) + if (guild->infoevent_db->put(guild->infoevent_db, DB->i2key(guild_id), DB->ptr2data(ev), &prev)) ev->next = DB->data2ptr(&prev); } @@ -501,12 +460,12 @@ int guild_recv_info(struct guild *sg) { nullpo_ret(sg); - if((g = (struct guild*)idb_get(guild_db,sg->guild_id))==NULL) { + if((g = (struct guild*)idb_get(guild->db,sg->guild_id))==NULL) { guild_new = true; g=(struct guild *)aCalloc(1,sizeof(struct guild)); g->instance = NULL; g->instances = 0; - idb_put(guild_db,sg->guild_id,g); + idb_put(guild->db,sg->guild_id,g); if( hChSys.ally ) { struct hChSysCh *channel; @@ -554,7 +513,7 @@ int guild_recv_info(struct guild *sg) { } before=*sg; //Perform the check on the user because the first load - guild_check_member(sg); + guild->check_member(sg); if ((sd = map->nick2sd(sg->master)) != NULL) { //If the guild master is online the first time the guild_info is received, //that means he was the first to join, so apply guild skill blocking here. @@ -583,7 +542,7 @@ int guild_recv_info(struct guild *sg) { for(i=bm=m=0;i<g->max_member;i++){ if(g->member[i].account_id>0){ - sd = g->member[i].sd = guild_sd_check(g->guild_id, g->member[i].account_id, g->member[i].char_id); + sd = g->member[i].sd = guild->sd_check(g->guild_id, g->member[i].account_id, g->member[i].char_id); if (sd) clif->charnameupdate(sd); // [LuzZza] m++; }else @@ -618,7 +577,7 @@ int guild_recv_info(struct guild *sg) { } //Occurrence of an event - if (guild_infoevent_db->remove(guild_infoevent_db, DB->i2key(sg->guild_id), &data)) { + if (guild->infoevent_db->remove(guild->infoevent_db, DB->i2key(sg->guild_id), &data)) { struct eventlist *ev = DB->data2ptr(&data), *ev2; while(ev) { npc->event_do(ev->name); @@ -662,7 +621,7 @@ int guild_invite(struct map_session_data *sd, struct map_session_data *tsd) { if( tsd->status.guild_id > 0 || tsd->guild_invite > 0 - || ((map->agit_flag || map->agit2_flag) && maplist[tsd->bl.m].flag.gvg_castle) + || ((map->agit_flag || map->agit2_flag) && map->list[tsd->bl.m].flag.gvg_castle) ) { //Can't invite people inside castles. [Skotlex] clif->guild_inviteack(sd,0); @@ -731,7 +690,7 @@ int guild_reply_invite(struct map_session_data* sd, int guild_id, int flag) { return 0; } - guild_makemember(&m,sd); + guild->makemember(&m,sd); intif->guild_addmember(guild_id, &m); //TODO: send a minimap update to this player } @@ -847,7 +806,7 @@ int guild_leave(struct map_session_data* sd, int guild_id, int account_id, int c if( sd->status.account_id != account_id || sd->status.char_id != char_id || sd->status.guild_id != guild_id - || ((map->agit_flag || map->agit2_flag) && maplist[sd->bl.m].flag.gvg_castle) + || ((map->agit_flag || map->agit2_flag) && map->list[sd->bl.m].flag.gvg_castle) ) return 0; @@ -879,7 +838,7 @@ int guild_expulsion(struct map_session_data* sd, int guild_id, int account_id, i //Can't leave inside guild castles. if ((tsd = map->id2sd(account_id)) && tsd->status.char_id == char_id - && ((map->agit_flag || map->agit2_flag) && maplist[tsd->bl.m].flag.gvg_castle) + && ((map->agit_flag || map->agit2_flag) && map->list[tsd->bl.m].flag.gvg_castle) ) return 0; @@ -1015,7 +974,7 @@ int guild_recv_memberinfoshort(int guild_id,int account_id,int char_id,int onlin g->connect_member=om; //Ensure validity of pointer (ie: player logs in/out, changes map-server) - g->member[idx].sd = guild_sd_check(guild_id, account_id, char_id); + g->member[idx].sd = guild->sd_check(guild_id, account_id, char_id); if(oldonline!=online) clif->guild_memberlogin_notice(g, idx, online); @@ -1095,8 +1054,7 @@ int guild_memberposition_changed(struct guild *g,int idx,int pos) /*==================================================== * Change guild title or member *---------------------------------------------------*/ -int guild_change_position(int guild_id,int idx, - int mode,int exp_mode,const char *name) +int guild_change_position(int guild_id,int idx,int mode,int exp_mode,const char *name) { struct guild_position p; @@ -1202,7 +1160,7 @@ int guild_emblem_changed(int len,int guild_id,int emblem_id,const char *data) } } {// update guardians (mobs) - DBIterator* iter = db_iterator(castle_db); + DBIterator* iter = db_iterator(guild->castle_db); struct guild_castle* gc; for( gc = (struct guild_castle*)dbi_first(iter) ; dbi_exists(iter); gc = (struct guild_castle*)dbi_next(iter) ) { @@ -1228,9 +1186,9 @@ int guild_emblem_changed(int len,int guild_id,int emblem_id,const char *data) dbi_destroy(iter); } {// update npcs (flags or other npcs that used flagemblem to attach to this guild) - for( i = 0; i < guild_flags_count; i++ ) { - if( guild_flags[i] && guild_flags[i]->u.scr.guild_id == guild_id ) { - clif->guild_emblem_area(&guild_flags[i]->bl); + for( i = 0; i < guild->flags_count; i++ ) { + if( guild->flags[i] && guild->flags[i]->u.scr.guild_id == guild_id ) { + clif->guild_emblem_area(&guild->flags[i]->bl); } } } @@ -1240,12 +1198,12 @@ int guild_emblem_changed(int len,int guild_id,int emblem_id,const char *data) /** * @see DBCreateData */ -static DBData create_expcache(DBKey key, va_list args) +DBData create_expcache(DBKey key, va_list args) { struct guild_expcache *c; struct map_session_data *sd = va_arg(args, struct map_session_data*); - c = ers_alloc(expcache_ers, struct guild_expcache); + c = ers_alloc(guild->expcache_ers, struct guild_expcache); c->guild_id = sd->status.guild_id; c->account_id = sd->status.account_id; c->char_id = sd->status.char_id; @@ -1276,7 +1234,7 @@ unsigned int guild_payexp(struct map_session_data *sd,unsigned int exp) { exp = exp * per / 100; //Otherwise tax everything. - c = DB->data2ptr(guild_expcache_db->ensure(guild_expcache_db, DB->i2key(sd->status.char_id), create_expcache, sd)); + c = DB->data2ptr(guild->expcache_db->ensure(guild->expcache_db, DB->i2key(sd->status.char_id), guild->create_expcache, sd)); if (c->exp > UINT64_MAX - exp) c->exp = UINT64_MAX; @@ -1299,7 +1257,7 @@ int guild_getexp(struct map_session_data *sd,int exp) if (sd->status.guild_id == 0 || sd->guild == NULL) return 0; - c = DB->data2ptr(guild_expcache_db->ensure(guild_expcache_db, DB->i2key(sd->status.char_id), create_expcache, sd)); + c = DB->data2ptr(guild->expcache_db->ensure(guild->expcache_db, DB->i2key(sd->status.char_id), guild->create_expcache, sd)); if (c->exp > UINT64_MAX - exp) c->exp = UINT64_MAX; else @@ -1459,11 +1417,11 @@ int guild_reqalliance(struct map_session_data *sd,struct map_session_data *tsd) if(sd->status.guild_id == tsd->status.guild_id) return 0; - if( guild_get_alliance_count(g[0],0) >= battle_config.max_guild_alliance ) { + if( guild->get_alliance_count(g[0],0) >= battle_config.max_guild_alliance ) { clif->guild_allianceack(sd,4); return 0; } - if( guild_get_alliance_count(g[1],0) >= battle_config.max_guild_alliance ) { + if( guild->get_alliance_count(g[1],0) >= battle_config.max_guild_alliance ) { clif->guild_allianceack(sd,3); return 0; } @@ -1511,12 +1469,12 @@ int guild_reply_reqalliance(struct map_session_data *sd,int account_id,int flag) g=sd->guild; tg=tsd->guild; - if(g==NULL || guild_get_alliance_count(g,0) >= battle_config.max_guild_alliance){ + if(g==NULL || guild->get_alliance_count(g,0) >= battle_config.max_guild_alliance){ clif->guild_allianceack(sd,4); clif->guild_allianceack(tsd,3); return 0; } - if(tg==NULL || guild_get_alliance_count(tg,0) >= battle_config.max_guild_alliance){ + if(tg==NULL || guild->get_alliance_count(tg,0) >= battle_config.max_guild_alliance){ clif->guild_allianceack(sd,3); clif->guild_allianceack(tsd,4); return 0; @@ -1582,7 +1540,7 @@ int guild_opposition(struct map_session_data *sd,struct map_session_data *tsd) if(sd->status.guild_id == tsd->status.guild_id) return 0; - if( guild_get_alliance_count(g,1) >= battle_config.max_guild_alliance ) { + if( guild->get_alliance_count(g,1) >= battle_config.max_guild_alliance ) { clif->guild_oppositionack(sd,1); return 0; } @@ -1765,15 +1723,15 @@ int guild_broken(int guild_id,int flag) } } - guild_db->foreach(guild_db,guild_broken_sub,guild_id); - castle_db->foreach(castle_db,castle_guild_broken_sub,guild_id); + guild->db->foreach(guild->db,guild->broken_sub,guild_id); + guild->castle_db->foreach(guild->castle_db,guild->castle_broken_sub,guild_id); gstorage->delete(guild_id); if( hChSys.ally ) { if( g->channel != NULL ) { clif->chsys_delete(( struct hChSysCh * )g->channel); } } - idb_remove(guild_db,guild_id); + idb_remove(guild->db,guild_id); return 0; } @@ -1911,7 +1869,7 @@ int guild_break(struct map_session_data *sd,char *name) { void guild_castle_map_init(void) { DBIterator* iter = NULL; - int num = db_size(castle_db); + int num = db_size(guild->castle_db); if (num > 0) { struct guild_castle* gc = NULL; @@ -1919,7 +1877,7 @@ void guild_castle_map_init(void) CREATE(castle_ids, int, num); cursor = castle_ids; - iter = db_iterator(castle_db); + iter = db_iterator(guild->castle_db); for (gc = dbi_first(iter); dbi_exists(iter); gc = dbi_next(iter)) { *(cursor++) = gc->castle_id; } @@ -2015,7 +1973,7 @@ void guild_castle_reconnect(int castle_id, int index, int value) static struct linkdb_node *gc_save_pending = NULL; if (castle_id < 0) { // char-server reconnected - linkdb_foreach(&gc_save_pending, guild_castle_reconnect_sub); + linkdb_foreach(&gc_save_pending, guild->castle_reconnect_sub); linkdb_final(&gc_save_pending); } else { int *data; @@ -2107,7 +2065,7 @@ int guild_checkcastles(struct guild *g) { int nb_cas = 0; struct guild_castle* gc = NULL; - DBIterator *iter = db_iterator(castle_db); + DBIterator *iter = db_iterator(guild->castle_db); for (gc = dbi_first(iter); dbi_exists(iter); gc = dbi_next(iter)) { if (gc->guild_id == g->guild_id) { @@ -2133,38 +2091,38 @@ void guild_flag_add(struct npc_data *nd) { int i; /* check */ - for( i = 0; i < guild_flags_count; i++ ) { - if( guild_flags[i] && guild_flags[i]->bl.id == nd->bl.id ) { + for( i = 0; i < guild->flags_count; i++ ) { + if( guild->flags[i] && guild->flags[i]->bl.id == nd->bl.id ) { return;/* exists, most likely updated the id. */ } } - i = guild_flags_count;/* save the current slot */ + i = guild->flags_count;/* save the current slot */ /* add */ - RECREATE(guild_flags,struct npc_data*,++guild_flags_count); + RECREATE(guild->flags,struct npc_data*,++guild->flags_count); /* save */ - guild_flags[i] = nd; + guild->flags[i] = nd; } void guild_flag_remove(struct npc_data *nd) { int i, cursor; - if( guild_flags_count == 0 ) + if( guild->flags_count == 0 ) return; /* find it */ - for( i = 0; i < guild_flags_count; i++ ) { - if( guild_flags[i] && guild_flags[i]->bl.id == nd->bl.id ) {/* found */ - guild_flags[i] = NULL; + for( i = 0; i < guild->flags_count; i++ ) { + if( guild->flags[i] && guild->flags[i]->bl.id == nd->bl.id ) {/* found */ + guild->flags[i] = NULL; break; } } /* compact list */ - for( i = 0, cursor = 0; i < guild_flags_count; i++ ) { - if( guild_flags[i] == NULL ) + for( i = 0, cursor = 0; i < guild->flags_count; i++ ) { + if( guild->flags[i] == NULL ) continue; if( cursor != i ) { - memmove(&guild_flags[cursor], &guild_flags[i], sizeof(struct npc_data*)); + memmove(&guild->flags[cursor], &guild->flags[i], sizeof(struct npc_data*)); } cursor++; @@ -2175,7 +2133,7 @@ void guild_flag_remove(struct npc_data *nd) { /** * @see DBApply */ -static int eventlist_db_final(DBKey key, DBData *data, va_list ap) { +int eventlist_db_final(DBKey key, DBData *data, va_list ap) { struct eventlist *next = NULL; struct eventlist *current = DB->data2ptr(data); while (current != NULL) { @@ -2189,15 +2147,15 @@ static int eventlist_db_final(DBKey key, DBData *data, va_list ap) { /** * @see DBApply */ -static int guild_expcache_db_final(DBKey key, DBData *data, va_list ap) { - ers_free(expcache_ers, DB->data2ptr(data)); +int guild_expcache_db_final(DBKey key, DBData *data, va_list ap) { + ers_free(guild->expcache_ers, DB->data2ptr(data)); return 0; } /** * @see DBApply */ -static int guild_castle_db_final(DBKey key, DBData *data, va_list ap) { +int guild_castle_db_final(DBKey key, DBData *data, va_list ap) { struct guild_castle* gc = DB->data2ptr(data); if( gc->temp_guardians ) aFree(gc->temp_guardians); @@ -2208,36 +2166,33 @@ static int guild_castle_db_final(DBKey key, DBData *data, va_list ap) { /* called when scripts are reloaded/unloaded */ void guild_flags_clear(void) { int i; - for( i = 0; i < guild_flags_count; i++ ) { - if( guild_flags[i] ) - guild_flags[i] = NULL; + for( i = 0; i < guild->flags_count; i++ ) { + if( guild->flags[i] ) + guild->flags[i] = NULL; } - guild_flags_count = 0; + guild->flags_count = 0; } void do_init_guild(void) { - guild_db = idb_alloc(DB_OPT_RELEASE_DATA); - castle_db = idb_alloc(DB_OPT_BASE); - guild_expcache_db = idb_alloc(DB_OPT_BASE); - guild_infoevent_db = idb_alloc(DB_OPT_BASE); - expcache_ers = ers_new(sizeof(struct guild_expcache),"guild.c::expcache_ers",ERS_OPT_NONE); - - guild_flags_count = 0; - - sv->readdb(map->db_path, "castle_db.txt", ',', 4, 5, -1, &guild_read_castledb); + guild->db = idb_alloc(DB_OPT_RELEASE_DATA); + guild->castle_db = idb_alloc(DB_OPT_BASE); + guild->expcache_db = idb_alloc(DB_OPT_BASE); + guild->infoevent_db = idb_alloc(DB_OPT_BASE); + guild->expcache_ers = ers_new(sizeof(struct guild_expcache),"guild.c::expcache_ers",ERS_OPT_NONE); + + sv->readdb(map->db_path, "castle_db.txt", ',', 4, 5, -1, guild->read_castledb); - memset(guild_skill_tree,0,sizeof(guild_skill_tree)); - sv->readdb(map->db_path, "guild_skill_tree.txt", ',', 2+MAX_GUILD_SKILL_REQUIRE*2, 2+MAX_GUILD_SKILL_REQUIRE*2, -1, &guild_read_guildskill_tree_db); //guild skill tree [Komurka] + sv->readdb(map->db_path, "guild_skill_tree.txt", ',', 2+MAX_GUILD_SKILL_REQUIRE*2, 2+MAX_GUILD_SKILL_REQUIRE*2, -1, guild->read_guildskill_tree_db); //guild skill tree [Komurka] - timer->add_func_list(guild_payexp_timer,"guild_payexp_timer"); - timer->add_func_list(guild_send_xy_timer, "guild_send_xy_timer"); - timer->add_interval(timer->gettick()+GUILD_PAYEXP_INVERVAL,guild_payexp_timer,0,0,GUILD_PAYEXP_INVERVAL); - timer->add_interval(timer->gettick()+GUILD_SEND_XY_INVERVAL,guild_send_xy_timer,0,0,GUILD_SEND_XY_INVERVAL); + timer->add_func_list(guild->payexp_timer,"guild_payexp_timer"); + timer->add_func_list(guild->send_xy_timer, "guild_send_xy_timer"); + timer->add_interval(timer->gettick()+GUILD_PAYEXP_INVERVAL,guild->payexp_timer,0,0,GUILD_PAYEXP_INVERVAL); + timer->add_interval(timer->gettick()+GUILD_SEND_XY_INVERVAL,guild->send_xy_timer,0,0,GUILD_SEND_XY_INVERVAL); } void do_final_guild(void) { - DBIterator *iter = db_iterator(guild_db); + DBIterator *iter = db_iterator(guild->db); struct guild *g; for( g = dbi_first(iter); dbi_exists(iter); g = dbi_next(iter) ) { @@ -2251,13 +2206,14 @@ void do_final_guild(void) { dbi_destroy(iter); - db_destroy(guild_db); - castle_db->destroy(castle_db,guild_castle_db_final); - guild_expcache_db->destroy(guild_expcache_db,guild_expcache_db_final); - guild_infoevent_db->destroy(guild_infoevent_db,eventlist_db_final); - ers_destroy(expcache_ers); - - aFree(guild_flags);/* never empty; created on boot */ + db_destroy(guild->db); + guild->castle_db->destroy(guild->castle_db,guild->castle_db_final); + guild->expcache_db->destroy(guild->expcache_db,guild->expcache_db_final); + guild->infoevent_db->destroy(guild->infoevent_db,guild->eventlist_db_final); + ers_destroy(guild->expcache_ers); + + if( guild->flags ) + aFree(guild->flags); } void guild_defaults(void) { guild = &guild_s; @@ -2265,6 +2221,18 @@ void guild_defaults(void) { guild->init = do_init_guild; guild->final = do_final_guild; /* */ + guild->db = NULL; + guild->castle_db = NULL; + guild->expcache_db = NULL; + guild->infoevent_db = NULL; + /* */ + guild->expcache_ers = NULL; + /* */ + memset(guild->skill_tree, 0, sizeof(guild->skill_tree)); + /* guild flags cache */ + guild->flags = NULL; + guild->flags_count = 0; + /* */ guild->skill_get_max = guild_skill_get_max; /* */ guild->checkskill = guild_checkskill; @@ -2341,4 +2309,22 @@ void guild_defaults(void) { guild->flags_clear = guild_flags_clear; /* guild aura */ guild->aura_refresh = guild_guildaura_refresh; + /* */ + guild->payexp_timer = guild_payexp_timer; + guild->sd_check = guild_sd_check; + guild->read_guildskill_tree_db = guild_read_guildskill_tree_db; + guild->read_castledb = guild_read_castledb; + guild->payexp_timer_sub = guild_payexp_timer_sub; + guild->send_xy_timer_sub = guild_send_xy_timer_sub; + guild->send_xy_timer = guild_send_xy_timer; + guild->create_expcache = create_expcache; + guild->eventlist_db_final = eventlist_db_final; + guild->expcache_db_final = guild_expcache_db_final; + guild->castle_db_final = guild_castle_db_final; + guild->broken_sub = guild_broken_sub; + guild->castle_broken_sub = castle_guild_broken_sub; + guild->makemember = guild_makemember; + guild->check_member = guild_check_member; + guild->get_alliance_count = guild_get_alliance_count; + guild->castle_reconnect_sub = guild_castle_reconnect_sub; } diff --git a/src/map/guild.h b/src/map/guild.h index 1f61df09e..566ca7ce4 100644 --- a/src/map/guild.h +++ b/src/map/guild.h @@ -6,14 +6,32 @@ #define _GUILD_H_ //#include "../common/mmo.h" +#include "map.h" // NAME_LENGTH + +/** + * Declarations + **/ struct guild; struct guild_member; struct guild_position; struct guild_castle; -#include "map.h" // NAME_LENGTH struct map_session_data; struct mob_data; +/** + * Defines + **/ +#define GUILD_SEND_XY_INVERVAL 5000 // Interval of sending coordinates and HP +#define GUILD_PAYEXP_INVERVAL 10000 //Interval (maximum survival time of the cache, in milliseconds) +#define MAX_GUILD_SKILL_REQUIRE 5 + +/** + * Structures + **/ +struct eventlist { + char name[EVENT_NAME_LENGTH]; + struct eventlist *next; +}; //For quick linking to a guardian's info. [Skotlex] struct guardian_data { int number; //0-MAX_GUARDIANS-1 = Guardians. MAX_GUARDIANS = Emperium. @@ -23,11 +41,36 @@ struct guardian_data { char guild_name[NAME_LENGTH]; struct guild_castle* castle; }; +struct guild_expcache { + int guild_id, account_id, char_id; + uint64 exp; +}; +struct s_guild_skill_tree { + int id; + int max; + struct { + short id; + short lv; + } need[MAX_GUILD_SKILL_REQUIRE]; +}; + struct guild_interface { void (*init) (void); void (*final) (void); /* */ + DBMap* db; // int guild_id -> struct guild* + DBMap* castle_db; // int castle_id -> struct guild_castle* + DBMap* expcache_db; // int char_id -> struct guild_expcache* + DBMap* infoevent_db; // int guild_id -> struct eventlist* + /* */ + struct eri *expcache_ers; //For handling of guild exp payment. + /* */ + struct s_guild_skill_tree skill_tree[MAX_GUILDSKILL]; + /* guild flags cache */ + struct npc_data **flags; + unsigned short flags_count; + /* */ int (*skill_get_max) (int id); /* */ int (*checkskill) (struct guild *g,int id); @@ -104,6 +147,24 @@ struct guild_interface { void (*flags_clear) (void); /* guild aura */ void (*aura_refresh) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); + /* */ + int (*payexp_timer) (int tid, unsigned int tick, int id, intptr_t data); + TBL_PC* (*sd_check) (int guild_id, int account_id, int char_id); + bool (*read_guildskill_tree_db) (char* split[], int columns, int current); + bool (*read_castledb) (char* str[], int columns, int current); + int (*payexp_timer_sub) (DBKey key, DBData *data, va_list ap); + int (*send_xy_timer_sub) (DBKey key, DBData *data, va_list ap); + int (*send_xy_timer) (int tid, unsigned int tick, int id, intptr_t data); + DBData (*create_expcache) (DBKey key, va_list args); + int (*eventlist_db_final) (DBKey key, DBData *data, va_list ap); + int (*expcache_db_final) (DBKey key, DBData *data, va_list ap); + int (*castle_db_final) (DBKey key, DBData *data, va_list ap); + int (*broken_sub) (DBKey key, DBData *data, va_list ap); + int (*castle_broken_sub) (DBKey key, DBData *data, va_list ap); + void (*makemember) (struct guild_member *m,struct map_session_data *sd); + int (*check_member) (struct guild *g); + int (*get_alliance_count) (struct guild *g,int flag); + void (*castle_reconnect_sub) (void *key, void *data, va_list ap); }; struct guild_interface *guild; diff --git a/src/map/homunculus.h b/src/map/homunculus.h index a90faf2e2..9562ed5c3 100644 --- a/src/map/homunculus.h +++ b/src/map/homunculus.h @@ -28,8 +28,6 @@ struct s_homunculus_db { unsigned char element, race, base_size, evo_size; }; -extern struct s_homunculus_db homunculus_db[MAX_HOMUNCULUS_CLASS]; - enum { HOMUNCULUS_CLASS, HOMUNCULUS_FOOD diff --git a/src/map/instance.c b/src/map/instance.c index 5ef089fae..6ae1d6141 100644 --- a/src/map/instance.c +++ b/src/map/instance.c @@ -33,7 +33,7 @@ bool instance_is_valid(int instance_id) { return false; } - if( instances[instance_id].state == INSTANCE_FREE ) {// uninitialized/freed instance slot + if( instance->list[instance_id].state == INSTANCE_FREE ) {// uninitialized/freed instance slot return false; } @@ -88,30 +88,30 @@ int instance_create(int owner_id, const char *name, enum instance_owner_type typ } if( type != IOT_NONE && *icptr ) { - ARR_FIND(0, *icptr, i, strcmp(instances[iptr[i]].name,name) == 0 ); + ARR_FIND(0, *icptr, i, strcmp(instance->list[iptr[i]].name,name) == 0 ); if( i != *icptr ) return -4;/* already got this instance */ } - ARR_FIND(0, instance->instances, i, instances[i].state == INSTANCE_FREE); + ARR_FIND(0, instance->instances, i, instance->list[i].state == INSTANCE_FREE); if( i == instance->instances ) - RECREATE(instances, struct instance_data, ++instance->instances); - - instances[i].state = INSTANCE_IDLE; - instances[i].id = i; - instances[i].idle_timer = INVALID_TIMER; - instances[i].idle_timeout = instances[i].idle_timeoutval = 0; - instances[i].progress_timer = INVALID_TIMER; - instances[i].progress_timeout = 0; - instances[i].users = 0; - instances[i].map = NULL; - instances[i].num_map = 0; - instances[i].owner_id = owner_id; - instances[i].owner_type = type; - instances[i].vars = idb_alloc(DB_OPT_RELEASE_DATA); - - safestrncpy( instances[i].name, name, sizeof(instances[i].name) ); + RECREATE(instance->list, struct instance_data, ++instance->instances); + + instance->list[i].state = INSTANCE_IDLE; + instance->list[i].id = i; + instance->list[i].idle_timer = INVALID_TIMER; + instance->list[i].idle_timeout = instance->list[i].idle_timeoutval = 0; + instance->list[i].progress_timer = INVALID_TIMER; + instance->list[i].progress_timeout = 0; + instance->list[i].users = 0; + instance->list[i].map = NULL; + instance->list[i].num_map = 0; + instance->list[i].owner_id = owner_id; + instance->list[i].owner_type = type; + instance->list[i].vars = idb_alloc(DB_OPT_RELEASE_DATA); + + safestrncpy( instance->list[i].name, name, sizeof(instance->list[i].name) ); if( type != IOT_NONE ) { ARR_FIND(0, *icptr, j, iptr[j] == -1); @@ -159,95 +159,95 @@ int instance_add_map(const char *name, int instance_id, bool usebasename, const return -2; } - if( maplist[m].instance_id >= 0 ) { + if( map->list[m].instance_id >= 0 ) { // Source map already belong to a Instance. ShowError("instance_add_map: trying to instance already instanced map %s.\n", name); return -4; } - ARR_FIND( instance->start_id, map->map_num, i, maplist[i].name[0] == 0 ); // Searching for a Free Map + ARR_FIND( instance->start_id, map->count, i, map->list[i].name[0] == 0 ); // Searching for a Free Map - if( i < map->map_num ) + if( i < map->count ) im = i; // Unused map found (old instance) else { - im = map->map_num; // Using next map index - RECREATE(maplist,struct map_data,++map->map_num); + im = map->count; // Using next map index + RECREATE(map->list,struct map_data,++map->count); } - if( maplist[m].cell == (struct mapcell *)0xdeadbeaf ) - map->cellfromcache(&maplist[m]); + if( map->list[m].cell == (struct mapcell *)0xdeadbeaf ) + map->cellfromcache(&map->list[m]); - memcpy( &maplist[im], &maplist[m], sizeof(struct map_data) ); // Copy source map + memcpy( &map->list[im], &map->list[m], sizeof(struct map_data) ); // Copy source map if( map_name != NULL ) { - snprintf(maplist[im].name, MAP_NAME_LENGTH, "%s", map_name); - maplist[im].custom_name = true; + snprintf(map->list[im].name, MAP_NAME_LENGTH, "%s", map_name); + map->list[im].custom_name = true; } else - snprintf(maplist[im].name, MAP_NAME_LENGTH, (usebasename ? "%.3d#%s" : "%.3d%s"), instance_id, name); // Generate Name for Instance Map - maplist[im].index = mapindex_addmap(-1, maplist[im].name); // Add map index + snprintf(map->list[im].name, MAP_NAME_LENGTH, (usebasename ? "%.3d#%s" : "%.3d%s"), instance_id, name); // Generate Name for Instance Map + map->list[im].index = mapindex_addmap(-1, map->list[im].name); // Add map index - maplist[im].channel = NULL; + map->list[im].channel = NULL; - if( !maplist[im].index ) { - maplist[im].name[0] = '\0'; + if( !map->list[im].index ) { + map->list[im].name[0] = '\0'; ShowError("instance_add_map: no more free map indexes.\n"); return -3; // No free map index } // Reallocate cells - num_cell = maplist[im].xs * maplist[im].ys; - CREATE( maplist[im].cell, struct mapcell, num_cell ); - memcpy( maplist[im].cell, maplist[m].cell, num_cell * sizeof(struct mapcell) ); + num_cell = map->list[im].xs * map->list[im].ys; + CREATE( map->list[im].cell, struct mapcell, num_cell ); + memcpy( map->list[im].cell, map->list[m].cell, num_cell * sizeof(struct mapcell) ); - size = maplist[im].bxs * maplist[im].bys * sizeof(struct block_list*); - maplist[im].block = (struct block_list**)aCalloc(size, 1); - maplist[im].block_mob = (struct block_list**)aCalloc(size, 1); + size = map->list[im].bxs * map->list[im].bys * sizeof(struct block_list*); + map->list[im].block = (struct block_list**)aCalloc(size, 1); + map->list[im].block_mob = (struct block_list**)aCalloc(size, 1); - memset(maplist[im].npc, 0x00, sizeof(maplist[i].npc)); - maplist[im].npc_num = 0; + memset(map->list[im].npc, 0x00, sizeof(map->list[i].npc)); + map->list[im].npc_num = 0; - memset(maplist[im].moblist, 0x00, sizeof(maplist[im].moblist)); - maplist[im].mob_delete_timer = INVALID_TIMER; + memset(map->list[im].moblist, 0x00, sizeof(map->list[im].moblist)); + map->list[im].mob_delete_timer = INVALID_TIMER; //Mimic unit - if( maplist[m].unit_count ) { - maplist[im].unit_count = maplist[m].unit_count; - CREATE( maplist[im].units, struct mapflag_skill_adjust*, maplist[im].unit_count ); + if( map->list[m].unit_count ) { + map->list[im].unit_count = map->list[m].unit_count; + CREATE( map->list[im].units, struct mapflag_skill_adjust*, map->list[im].unit_count ); - for(i = 0; i < maplist[im].unit_count; i++) { - CREATE( maplist[im].units[i], struct mapflag_skill_adjust, 1); - memcpy( maplist[im].units[i],maplist[m].units[i],sizeof(struct mapflag_skill_adjust)); + for(i = 0; i < map->list[im].unit_count; i++) { + CREATE( map->list[im].units[i], struct mapflag_skill_adjust, 1); + memcpy( map->list[im].units[i],map->list[m].units[i],sizeof(struct mapflag_skill_adjust)); } } //Mimic skills - if( maplist[m].skill_count ) { - maplist[im].skill_count = maplist[m].skill_count; - CREATE( maplist[im].skills, struct mapflag_skill_adjust*, maplist[im].skill_count ); + if( map->list[m].skill_count ) { + map->list[im].skill_count = map->list[m].skill_count; + CREATE( map->list[im].skills, struct mapflag_skill_adjust*, map->list[im].skill_count ); - for(i = 0; i < maplist[im].skill_count; i++) { - CREATE( maplist[im].skills[i], struct mapflag_skill_adjust, 1); - memcpy( maplist[im].skills[i],maplist[m].skills[i],sizeof(struct mapflag_skill_adjust)); + for(i = 0; i < map->list[im].skill_count; i++) { + CREATE( map->list[im].skills[i], struct mapflag_skill_adjust, 1); + memcpy( map->list[im].skills[i],map->list[m].skills[i],sizeof(struct mapflag_skill_adjust)); } } //Mimic zone mf - if( maplist[m].zone_mf_count ) { - maplist[im].zone_mf_count = maplist[m].zone_mf_count; - CREATE( maplist[im].zone_mf, char *, maplist[im].zone_mf_count ); + if( map->list[m].zone_mf_count ) { + map->list[im].zone_mf_count = map->list[m].zone_mf_count; + CREATE( map->list[im].zone_mf, char *, map->list[im].zone_mf_count ); - for(i = 0; i < maplist[im].zone_mf_count; i++) { - CREATE(maplist[im].zone_mf[i], char, MAP_ZONE_MAPFLAG_LENGTH); - safestrncpy(maplist[im].zone_mf[i],maplist[m].zone_mf[i],MAP_ZONE_MAPFLAG_LENGTH); + for(i = 0; i < map->list[im].zone_mf_count; i++) { + CREATE(map->list[im].zone_mf[i], char, MAP_ZONE_MAPFLAG_LENGTH); + safestrncpy(map->list[im].zone_mf[i],map->list[m].zone_mf[i],MAP_ZONE_MAPFLAG_LENGTH); } } - maplist[im].m = im; - maplist[im].instance_id = instance_id; - maplist[im].instance_src_map = m; - maplist[m].flag.src4instance = 1; // Flag this map as a src map for instances + map->list[im].m = im; + map->list[im].instance_id = instance_id; + map->list[im].instance_src_map = m; + map->list[m].flag.src4instance = 1; // Flag this map as a src map for instances - RECREATE(instances[instance_id].map, unsigned short, ++instances[instance_id].num_map); + RECREATE(instance->list[instance_id].map, unsigned short, ++instance->list[instance_id].num_map); - instances[instance_id].map[instances[instance_id].num_map - 1] = im; // Attach to actual instance - map->addmap2db(&maplist[im]); + instance->list[instance_id].map[instance->list[instance_id].num_map - 1] = im; // Attach to actual instance + map->addmap2db(&map->list[im]); return im; } @@ -264,9 +264,9 @@ int instance_map2imap(int16 m, int instance_id) { return -1; } - for( i = 0; i < instances[instance_id].num_map; i++ ) { - if( instances[instance_id].map[i] && maplist[instances[instance_id].map[i]].instance_src_map == m ) - return instances[instance_id].map[i]; + for( i = 0; i < instance->list[instance_id].num_map; i++ ) { + if( instance->list[instance_id].map[i] && map->list[instance->list[instance_id].map[i]].instance_src_map == m ) + return instance->list[instance_id].map[i]; } return -1; } @@ -277,9 +277,9 @@ int instance_map2imap(int16 m, int instance_id) { * result : mapid of map "m" in this instance *--------------------------------------*/ int instance_mapid2imapid(int16 m, int instance_id) { - if( maplist[m].flag.src4instance == 0 ) + if( map->list[m].flag.src4instance == 0 ) return m; // not instances found for this map - else if( maplist[m].instance_id >= 0 ) { // This map is a instance, not a src map instance + else if( map->list[m].instance_id >= 0 ) { // This map is a instance, not a src map instance ShowError("map_instance_mapid2imapid: already instanced (%d / %d)\n", m, instance_id); return -1; } @@ -313,10 +313,10 @@ void instance_init(int instance_id) { if( !instance->valid(instance_id) ) return; // nothing to do - for( i = 0; i < instances[instance_id].num_map; i++ ) - map->foreachinmap(instance_map_npcsub, maplist[instances[instance_id].map[i]].instance_src_map, BL_NPC, instances[instance_id].map[i]); + for( i = 0; i < instance->list[instance_id].num_map; i++ ) + map->foreachinmap(instance_map_npcsub, map->list[instance->list[instance_id].map[i]].instance_src_map, BL_NPC, instance->list[instance_id].map[i]); - instances[instance_id].state = INSTANCE_BUSY; + instance->list[instance_id].state = INSTANCE_BUSY; } /*-------------------------------------- @@ -367,70 +367,70 @@ int instance_cleanup_sub(struct block_list *bl, va_list ap) { void instance_del_map(int16 m) { int i; - if( m <= 0 || maplist[m].instance_id == -1 ) { + if( m <= 0 || map->list[m].instance_id == -1 ) { ShowError("instance_del_map: tried to remove non-existing instance map (%d)\n", m); return; } - map->map_foreachpc(instance_del_load, m); + map->foreachpc(instance_del_load, m); map->foreachinmap(instance_cleanup_sub, m, BL_ALL); - if( maplist[m].mob_delete_timer != INVALID_TIMER ) - timer->delete(maplist[m].mob_delete_timer, map->removemobs_timer); + if( map->list[m].mob_delete_timer != INVALID_TIMER ) + timer->delete(map->list[m].mob_delete_timer, map->removemobs_timer); mapindex_removemap(map_id2index(m)); // Free memory - aFree(maplist[m].cell); - aFree(maplist[m].block); - aFree(maplist[m].block_mob); + aFree(map->list[m].cell); + aFree(map->list[m].block); + aFree(map->list[m].block_mob); - if( maplist[m].unit_count ) { - for(i = 0; i < maplist[m].unit_count; i++) { - aFree(maplist[m].units[i]); + if( map->list[m].unit_count ) { + for(i = 0; i < map->list[m].unit_count; i++) { + aFree(map->list[m].units[i]); } - if( maplist[m].units ) - aFree(maplist[m].units); + if( map->list[m].units ) + aFree(map->list[m].units); } - if( maplist[m].skill_count ) { - for(i = 0; i < maplist[m].skill_count; i++) { - aFree(maplist[m].skills[i]); + if( map->list[m].skill_count ) { + for(i = 0; i < map->list[m].skill_count; i++) { + aFree(map->list[m].skills[i]); } - if( maplist[m].skills ) - aFree(maplist[m].skills); + if( map->list[m].skills ) + aFree(map->list[m].skills); } - if( maplist[m].zone_mf_count ) { - for(i = 0; i < maplist[m].zone_mf_count; i++) { - aFree(maplist[m].zone_mf[i]); + if( map->list[m].zone_mf_count ) { + for(i = 0; i < map->list[m].zone_mf_count; i++) { + aFree(map->list[m].zone_mf[i]); } - if( maplist[m].zone_mf ) - aFree(maplist[m].zone_mf); + if( map->list[m].zone_mf ) + aFree(map->list[m].zone_mf); } // Remove from instance - for( i = 0; i < instances[maplist[m].instance_id].num_map; i++ ) { - if( instances[maplist[m].instance_id].map[i] == m ) { - instances[maplist[m].instance_id].num_map--; - for( ; i < instances[maplist[m].instance_id].num_map; i++ ) - instances[maplist[m].instance_id].map[i] = instances[maplist[m].instance_id].map[i+1]; + for( i = 0; i < instance->list[map->list[m].instance_id].num_map; i++ ) { + if( instance->list[map->list[m].instance_id].map[i] == m ) { + instance->list[map->list[m].instance_id].num_map--; + for( ; i < instance->list[map->list[m].instance_id].num_map; i++ ) + instance->list[map->list[m].instance_id].map[i] = instance->list[map->list[m].instance_id].map[i+1]; i = -1; break; } } - if( i == instances[maplist[m].instance_id].num_map ) - ShowError("map_instance_del: failed to remove %s from instance list (%s): %d\n", maplist[m].name, instances[maplist[m].instance_id].name, m); + if( i == instance->list[map->list[m].instance_id].num_map ) + ShowError("map_instance_del: failed to remove %s from instance list (%s): %d\n", map->list[m].name, instance->list[map->list[m].instance_id].name, m); - if( maplist[m].channel ) - clif->chsys_delete(maplist[m].channel); - - map->removemapdb(&maplist[m]); - memset(&maplist[m], 0x00, sizeof(maplist[0])); - maplist[m].name[0] = 0; - maplist[m].instance_id = -1; - maplist[m].mob_delete_timer = INVALID_TIMER; + if( map->list[m].channel ) + clif->chsys_delete(map->list[m].channel); + + map->removemapdb(&map->list[m]); + memset(&map->list[m], 0x00, sizeof(map->list[0])); + map->list[m].name[0] = 0; + map->list[m].instance_id = -1; + map->list[m].mob_delete_timer = INVALID_TIMER; } /*-------------------------------------- @@ -456,41 +456,41 @@ void instance_destroy(int instance_id) { if( !instance->valid(instance_id) ) return; // nothing to do - if( instances[instance_id].progress_timeout && instances[instance_id].progress_timeout <= now ) + if( instance->list[instance_id].progress_timeout && instance->list[instance_id].progress_timeout <= now ) type = 1; - else if( instances[instance_id].idle_timeout && instances[instance_id].idle_timeout <= now ) + else if( instance->list[instance_id].idle_timeout && instance->list[instance_id].idle_timeout <= now ) type = 2; else type = 3; clif->instance(instance_id, 5, type); // Report users this instance has been destroyed - switch ( instances[instance_id].owner_type ) { + switch ( instance->list[instance_id].owner_type ) { case IOT_NONE: break; case IOT_CHAR: - if( ( sd = map->id2sd(instances[instance_id].owner_id) ) == NULL ) { + if( ( sd = map->id2sd(instance->list[instance_id].owner_id) ) == NULL ) { break; } iptr = sd->instance; icptr = &sd->instances; break; case IOT_PARTY: - if( ( p = party->search(instances[instance_id].owner_id) ) == NULL ) { + if( ( p = party->search(instance->list[instance_id].owner_id) ) == NULL ) { break; } iptr = p->instance; icptr = &p->instances; break; case IOT_GUILD: - if( ( g = guild->search(instances[instance_id].owner_id) ) == NULL ) { + if( ( g = guild->search(instance->list[instance_id].owner_id) ) == NULL ) { break; } iptr = g->instance; icptr = &g->instances; break; default: - ShowError("instance_destroy: unknown type %d for owner_id %d and name '%s'.\n", instances[instance_id].owner_type,instances[instance_id].owner_id,instances[instance_id].name); + ShowError("instance_destroy: unknown type %d for owner_id %d and name '%s'.\n", instance->list[instance_id].owner_type,instance->list[instance_id].owner_id,instance->list[instance_id].name); break; } @@ -500,27 +500,27 @@ void instance_destroy(int instance_id) { iptr[j] = -1; } - while( instances[instance_id].num_map && last != instances[instance_id].map[0] ) { // Remove all maps from instance - last = instances[instance_id].map[0]; - instance->del_map( instances[instance_id].map[0] ); + while( instance->list[instance_id].num_map && last != instance->list[instance_id].map[0] ) { // Remove all maps from instance + last = instance->list[instance_id].map[0]; + instance->del_map( instance->list[instance_id].map[0] ); } - if( instances[instance_id].vars ) - db_destroy(instances[instance_id].vars); + if( instance->list[instance_id].vars ) + db_destroy(instance->list[instance_id].vars); - if( instances[instance_id].progress_timer != INVALID_TIMER ) - timer->delete( instances[instance_id].progress_timer, instance_destroy_timer); - if( instances[instance_id].idle_timer != INVALID_TIMER ) - timer->delete( instances[instance_id].idle_timer, instance_destroy_timer); + if( instance->list[instance_id].progress_timer != INVALID_TIMER ) + timer->delete( instance->list[instance_id].progress_timer, instance->destroy_timer); + if( instance->list[instance_id].idle_timer != INVALID_TIMER ) + timer->delete( instance->list[instance_id].idle_timer, instance->destroy_timer); - instances[instance_id].vars = NULL; + instance->list[instance_id].vars = NULL; - if( instances[instance_id].map ) - aFree(instances[instance_id].map); + if( instance->list[instance_id].map ) + aFree(instance->list[instance_id].map); - instances[instance_id].map = NULL; - instances[instance_id].state = INSTANCE_FREE; - instances[instance_id].num_map = 0; + instance->list[instance_id].map = NULL; + instance->list[instance_id].state = INSTANCE_FREE; + instance->list[instance_id].num_map = 0; } /*-------------------------------------- @@ -530,20 +530,20 @@ void instance_check_idle(int instance_id) { bool idle = true; unsigned int now = (unsigned int)time(NULL); - if( !instance->valid(instance_id) || instances[instance_id].idle_timeoutval == 0 ) + if( !instance->valid(instance_id) || instance->list[instance_id].idle_timeoutval == 0 ) return; - if( instances[instance_id].users ) + if( instance->list[instance_id].users ) idle = false; - if( instances[instance_id].idle_timer != INVALID_TIMER && !idle ) { - timer->delete(instances[instance_id].idle_timer, instance_destroy_timer); - instances[instance_id].idle_timer = INVALID_TIMER; - instances[instance_id].idle_timeout = 0; + if( instance->list[instance_id].idle_timer != INVALID_TIMER && !idle ) { + timer->delete(instance->list[instance_id].idle_timer, instance->destroy_timer); + instance->list[instance_id].idle_timer = INVALID_TIMER; + instance->list[instance_id].idle_timeout = 0; clif->instance(instance_id, 3, 0); // Notify instance users normal instance expiration - } else if( instances[instance_id].idle_timer == INVALID_TIMER && idle ) { - instances[instance_id].idle_timeout = now + instances[instance_id].idle_timeoutval; - instances[instance_id].idle_timer = timer->add( timer->gettick() + instances[instance_id].idle_timeoutval * 1000, instance_destroy_timer, instance_id, 0); + } else if( instance->list[instance_id].idle_timer == INVALID_TIMER && idle ) { + instance->list[instance_id].idle_timeout = now + instance->list[instance_id].idle_timeoutval; + instance->list[instance_id].idle_timer = timer->add( timer->gettick() + instance->list[instance_id].idle_timeoutval * 1000, instance->destroy_timer, instance_id, 0); clif->instance(instance_id, 4, 0); // Notify instance users it will be destroyed of no user join it again in "X" time } } @@ -558,30 +558,30 @@ void instance_set_timeout(int instance_id, unsigned int progress_timeout, unsign if( !instance->valid(instance_id) ) return; - if( instances[instance_id].progress_timer != INVALID_TIMER ) - timer->delete( instances[instance_id].progress_timer, instance_destroy_timer); - if( instances[instance_id].idle_timer != INVALID_TIMER ) - timer->delete( instances[instance_id].idle_timer, instance_destroy_timer); + if( instance->list[instance_id].progress_timer != INVALID_TIMER ) + timer->delete( instance->list[instance_id].progress_timer, instance->destroy_timer); + if( instance->list[instance_id].idle_timer != INVALID_TIMER ) + timer->delete( instance->list[instance_id].idle_timer, instance->destroy_timer); if( progress_timeout ) { - instances[instance_id].progress_timeout = now + progress_timeout; - instances[instance_id].progress_timer = timer->add( timer->gettick() + progress_timeout * 1000, instance_destroy_timer, instance_id, 0); + instance->list[instance_id].progress_timeout = now + progress_timeout; + instance->list[instance_id].progress_timer = timer->add( timer->gettick() + progress_timeout * 1000, instance->destroy_timer, instance_id, 0); } else { - instances[instance_id].progress_timeout = 0; - instances[instance_id].progress_timer = INVALID_TIMER; + instance->list[instance_id].progress_timeout = 0; + instance->list[instance_id].progress_timer = INVALID_TIMER; } if( idle_timeout ) { - instances[instance_id].idle_timeoutval = idle_timeout; - instances[instance_id].idle_timer = INVALID_TIMER; - instance_check_idle(instance_id); + instance->list[instance_id].idle_timeoutval = idle_timeout; + instance->list[instance_id].idle_timer = INVALID_TIMER; + instance->check_idle(instance_id); } else { - instances[instance_id].idle_timeoutval = 0; - instances[instance_id].idle_timeout = 0; - instances[instance_id].idle_timer = INVALID_TIMER; + instance->list[instance_id].idle_timeoutval = 0; + instance->list[instance_id].idle_timeout = 0; + instance->list[instance_id].idle_timer = INVALID_TIMER; } - if( instances[instance_id].idle_timer == INVALID_TIMER && instances[instance_id].progress_timer != INVALID_TIMER ) + if( instance->list[instance_id].idle_timer == INVALID_TIMER && instance->list[instance_id].progress_timer != INVALID_TIMER ) clif->instance(instance_id, 3, 0); } @@ -592,9 +592,9 @@ void instance_check_kick(struct map_session_data *sd) { int16 m = sd->bl.m; clif->instance_leave(sd->fd); - if( maplist[m].instance_id >= 0 ) { // User was on the instance map - if( maplist[m].save.map ) - pc->setpos(sd, maplist[m].save.map, maplist[m].save.x, maplist[m].save.y, CLR_TELEPORT); + if( map->list[m].instance_id >= 0 ) { // User was on the instance map + if( map->list[m].save.map ) + pc->setpos(sd, map->list[m].save.map, map->list[m].save.x, map->list[m].save.y, CLR_TELEPORT); else pc->setpos(sd, sd->status.save_point.map, sd->status.save_point.x, sd->status.save_point.y, CLR_TELEPORT); } @@ -607,14 +607,15 @@ void do_final_instance(void) { instance->destroy(i); } - if( instances ) - aFree(instances); + if( instance->list ) + aFree(instance->list); + instance->list = NULL; instance->instances = 0; } void do_init_instance(void) { - timer->add_func_list(instance_destroy_timer, "instance_destroy_timer"); + timer->add_func_list(instance->destroy_timer, "instance_destroy_timer"); } void instance_defaults(void) { @@ -627,7 +628,8 @@ void instance_defaults(void) { instance->start_id = 0; /* count */ instance->instances = 0; - + /* */ + instance->list = NULL; /* */ instance->create = instance_create; instance->add_map = instance_add_map; @@ -640,4 +642,5 @@ void instance_defaults(void) { instance->check_kick = instance_check_kick; instance->set_timeout = instance_set_timeout; instance->valid = instance_is_valid; + instance->destroy_timer = instance_destroy_timer; } diff --git a/src/map/instance.h b/src/map/instance.h index 164aaf662..ba6d26d59 100644 --- a/src/map/instance.h +++ b/src/map/instance.h @@ -42,14 +42,14 @@ struct instance_data { unsigned int idle_timeout, idle_timeoutval; }; -struct instance_data *instances; - struct instance_interface { void (*init) (void); void (*final) (void); /* start point */ unsigned short start_id; - unsigned short instances; + unsigned short instances;/* count */ + /* */ + struct instance_data *list;/* pointer to a chunk of consecutive memory, access via instance->list[0]..etc */ /* */ int (*create) (int party_id, const char *name, enum instance_owner_type type); int (*add_map) (const char *name, int instance_id, bool usebasename, const char *map_name); @@ -62,6 +62,7 @@ struct instance_interface { void (*check_kick) (struct map_session_data *sd); void (*set_timeout) (int instance_id, unsigned int progress_timeout, unsigned int idle_timeout); bool (*valid) (int instance_id); + int (*destroy_timer) (int tid, unsigned int tick, int id, intptr_t data); }; struct instance_interface *instance; diff --git a/src/map/intif.c b/src/map/intif.c index 97ff8a681..f31ab0f5a 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -33,18 +33,7 @@ #include <string.h> -static const int packet_len_table[]={ - -1,-1,27,-1, -1, 0,37,-1, 0, 0, 0, 0, 0, 0, 0, 0, //0x3800-0x380f - 0, 0, 0, 0, 0, 0, 0, 0, -1,11, 0, 0, 0, 0, 0, 0, //0x3810 - 39,-1,15,15, 14,19, 7,-1, 0, 0, 0, 0, 0, 0, 0, 0, //0x3820 - 10,-1,15, 0, 79,19, 7,-1, 0,-1,-1,-1, 14,67,186,-1, //0x3830 - -1, 0, 0,14, 0, 0, 0, 0, -1,74,-1,11, 11,-1, 0, 0, //0x3840 - -1,-1, 7, 7, 7,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0x3850 Auctions [Zephyrus] - -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0x3860 Quests [Kevin] [Inkfish] - -1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 3, 0, //0x3870 Mercenaries [Zephyrus] / Elemental [pakpil] - 11,-1, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0x3880 - -1,-1, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0x3890 Homunculus [albator] -}; +struct intif_interface intif_s; #define inter_fd chrif->fd // alias @@ -465,8 +454,8 @@ int intif_party_changemap(struct map_session_data *sd,int online) { if(!sd) return 0; - if( (m=map->mapindex2mapid(sd->mapindex)) >= 0 && maplist[m].instance_id >= 0 ) - mapindex = map_id2index(maplist[m].instance_src_map); + if( (m=map->mapindex2mapid(sd->mapindex)) >= 0 && map->list[m].instance_id >= 0 ) + mapindex = map_id2index(map->list[m].instance_src_map); else mapindex = sd->mapindex; @@ -850,7 +839,7 @@ int intif_homunculus_requestdelete(int homun_id) // Packets receive from inter server // Wisp/Page reception // rewritten by [Yor] -int intif_parse_WisMessage(int fd) { +void intif_parse_WisMessage(int fd) { struct map_session_data* sd; char *wisp_source; char name[NAME_LENGTH]; @@ -863,11 +852,11 @@ int intif_parse_WisMessage(int fd) { if(sd == NULL || strcmp(sd->status.name, name) != 0) { //Not found intif_wis_replay(id,1); - return 0; + return; } if(sd->state.ignoreAll) { intif_wis_replay(id, 2); - return 0; + return; } wisp_source = (char *) RFIFOP(fd,8); // speed up [Yor] for(i=0; i < MAX_IGNORE_LIST && @@ -878,17 +867,15 @@ int intif_parse_WisMessage(int fd) { if (i < MAX_IGNORE_LIST && sd->ignore[i].name[0] != '\0') { //Ignored intif_wis_replay(id, 2); - return 0; + return; } //Success to send whisper. clif->wis_message(sd->fd, wisp_source, (char*)RFIFOP(fd,56),RFIFOW(fd,2)-56); intif_wis_replay(id,0); // succes - return 0; } // Wisp/page transmission result reception -int intif_parse_WisEnd(int fd) -{ +void intif_parse_WisEnd(int fd) { struct map_session_data* sd; if (battle_config.etc_log) @@ -897,11 +884,10 @@ int intif_parse_WisEnd(int fd) if (sd != NULL) clif->wis_end(sd->fd, RFIFOB(fd,26)); - return 0; + return; } -static int mapif_parse_WisToGM_sub(struct map_session_data* sd,va_list va) -{ +int mapif_parse_WisToGM_sub(struct map_session_data* sd,va_list va) { int permission = va_arg(va, int); char *wisp_name; char *message; @@ -918,7 +904,7 @@ static int mapif_parse_WisToGM_sub(struct map_session_data* sd,va_list va) // Received wisp message from map-server via char-server for ALL gm // 0x3003/0x3803 <packet_len>.w <wispname>.24B <permission>.l <message>.?B -int mapif_parse_WisToGM(int fd) +void mapif_parse_WisToGM(int fd) { int permission, mes_len; char Wisp_name[NAME_LENGTH]; @@ -932,15 +918,14 @@ int mapif_parse_WisToGM(int fd) safestrncpy(Wisp_name, (char*)RFIFOP(fd,4), NAME_LENGTH); safestrncpy(message, (char*)RFIFOP(fd,32), mes_len); // information is sent to all online GM - map->map_foreachpc(mapif_parse_WisToGM_sub, permission, Wisp_name, message, mes_len); + map->foreachpc(mapif_parse_WisToGM_sub, permission, Wisp_name, message, mes_len); if (message != mbuf) aFree(message); - return 0; } // Request player registre -int intif_parse_Registers(int fd) +void intif_parse_Registers(int fd) { int j,p,len,max, flag; struct map_session_data *sd; @@ -955,7 +940,7 @@ int intif_parse_Registers(int fd) if (sd && RFIFOB(fd,12) == 3 && sd->status.char_id != char_id) sd = NULL; //Character registry from another character. } - if (!sd) return 1; + if (!sd) return; flag = (sd->save_reg.global_num == -1 || sd->save_reg.account_num == -1 || sd->save_reg.account2_num == -1); @@ -977,7 +962,7 @@ int intif_parse_Registers(int fd) break; default: ShowError("intif_parse_Registers: Unrecognized type %d\n",RFIFOB(fd,12)); - return 0; + return; } for(j=0,p=13;j<max && p<RFIFOW(fd,2);j++){ sscanf((char*)RFIFOP(fd,p), "%31c%n", reg[j].str,&len); @@ -991,10 +976,9 @@ int intif_parse_Registers(int fd) if (flag && sd->save_reg.global_num > -1 && sd->save_reg.account_num > -1 && sd->save_reg.account2_num > -1) pc->reg_received(sd); //Received all registry values, execute init scripts and what-not. [Skotlex] - return 1; } -int intif_parse_LoadGuildStorage(int fd) +void intif_parse_LoadGuildStorage(int fd) { struct guild_storage *gstor; struct map_session_data *sd; @@ -1002,168 +986,143 @@ int intif_parse_LoadGuildStorage(int fd) guild_id = RFIFOL(fd,8); if(guild_id <= 0) - return 1; + return; sd=map->id2sd( RFIFOL(fd,4) ); if(sd==NULL){ ShowError("intif_parse_LoadGuildStorage: user not found %d\n",RFIFOL(fd,4)); - return 1; + return; } gstor=gstorage->id2storage(guild_id); if(!gstor) { ShowWarning("intif_parse_LoadGuildStorage: error guild_id %d not exist\n",guild_id); - return 1; + return; } if (gstor->storage_status == 1) { // Already open.. lets ignore this update ShowWarning("intif_parse_LoadGuildStorage: storage received for a client already open (User %d:%d)\n", sd->status.account_id, sd->status.char_id); - return 1; + return; } if (gstor->dirty) { // Already have storage, and it has been modified and not saved yet! Exploit! [Skotlex] ShowWarning("intif_parse_LoadGuildStorage: received storage for an already modified non-saved storage! (User %d:%d)\n", sd->status.account_id, sd->status.char_id); - return 1; + return; } if( RFIFOW(fd,2)-12 != sizeof(struct guild_storage) ){ ShowError("intif_parse_LoadGuildStorage: data size error %d %d\n",RFIFOW(fd,2)-12 , sizeof(struct guild_storage)); gstor->storage_status = 0; - return 1; + return; } memcpy(gstor,RFIFOP(fd,12),sizeof(struct guild_storage)); gstorage->open(sd); - return 0; } // ACK guild_storage saved -int intif_parse_SaveGuildStorage(int fd) +void intif_parse_SaveGuildStorage(int fd) { gstorage->saved(/*RFIFOL(fd,2), */RFIFOL(fd,6)); - return 0; } // ACK party creation -int intif_parse_PartyCreated(int fd) +void intif_parse_PartyCreated(int fd) { if(battle_config.etc_log) ShowInfo("intif: party created by account %d\n\n", RFIFOL(fd,2)); party->created(RFIFOL(fd,2), RFIFOL(fd,6),RFIFOB(fd,10),RFIFOL(fd,11), (char *)RFIFOP(fd,15)); - return 0; } // Receive party info -int intif_parse_PartyInfo(int fd) +void intif_parse_PartyInfo(int fd) { if( RFIFOW(fd,2) == 12 ){ ShowWarning("intif: party noinfo (char_id=%d party_id=%d)\n", RFIFOL(fd,4), RFIFOL(fd,8)); party->recv_noinfo(RFIFOL(fd,8), RFIFOL(fd,4)); - return 0; + return; } if( RFIFOW(fd,2) != 8+sizeof(struct party) ) ShowError("intif: party info : data size error (char_id=%d party_id=%d packet_len=%d expected_len=%d)\n", RFIFOL(fd,4), RFIFOL(fd,8), RFIFOW(fd,2), 8+sizeof(struct party)); party->recv_info((struct party *)RFIFOP(fd,8), RFIFOL(fd,4)); - return 0; } // ACK adding party member -int intif_parse_PartyMemberAdded(int fd) +void intif_parse_PartyMemberAdded(int fd) { if(battle_config.etc_log) ShowInfo("intif: party member added Party (%d), Account(%d), Char(%d)\n",RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10)); party->member_added(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10), RFIFOB(fd, 14)); - return 0; } // ACK changing party option -int intif_parse_PartyOptionChanged(int fd) +void intif_parse_PartyOptionChanged(int fd) { party->optionchanged(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOW(fd,10),RFIFOW(fd,12),RFIFOB(fd,14)); - return 0; } // ACK member leaving party -int intif_parse_PartyMemberWithdraw(int fd) +void intif_parse_PartyMemberWithdraw(int fd) { if(battle_config.etc_log) ShowInfo("intif: party member withdraw: Party(%d), Account(%d), Char(%d)\n",RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10)); party->member_withdraw(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10)); - return 0; } // ACK party break -int intif_parse_PartyBroken(int fd) -{ +void intif_parse_PartyBroken(int fd) { party->broken(RFIFOL(fd,2)); - return 0; } // ACK party on new map -int intif_parse_PartyMove(int fd) +void intif_parse_PartyMove(int fd) { party->recv_movemap(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOW(fd,14),RFIFOB(fd,16),RFIFOW(fd,17)); - return 0; } // ACK party messages -int intif_parse_PartyMessage(int fd) -{ +void intif_parse_PartyMessage(int fd) { party->recv_message(RFIFOL(fd,4),RFIFOL(fd,8),(char *) RFIFOP(fd,12),RFIFOW(fd,2)-12); - return 0; } // ACK guild creation -int intif_parse_GuildCreated(int fd) -{ +void intif_parse_GuildCreated(int fd) { guild->created(RFIFOL(fd,2),RFIFOL(fd,6)); - return 0; } // ACK guild infos -int intif_parse_GuildInfo(int fd) -{ +void intif_parse_GuildInfo(int fd) { if(RFIFOW(fd,2) == 8) { ShowWarning("intif: guild noinfo %d\n",RFIFOL(fd,4)); guild->recv_noinfo(RFIFOL(fd,4)); - return 0; + return; } if( RFIFOW(fd,2)!=sizeof(struct guild)+4 ) ShowError("intif: guild info : data size error Gid: %d recv size: %d Expected size: %d\n",RFIFOL(fd,4),RFIFOW(fd,2),sizeof(struct guild)+4); guild->recv_info((struct guild *)RFIFOP(fd,4)); - return 0; } // ACK adding guild member -int intif_parse_GuildMemberAdded(int fd) -{ +void intif_parse_GuildMemberAdded(int fd) { if(battle_config.etc_log) ShowInfo("intif: guild member added %d %d %d %d\n",RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOB(fd,14)); guild->member_added(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOB(fd,14)); - return 0; } // ACK member leaving guild -int intif_parse_GuildMemberWithdraw(int fd) -{ +void intif_parse_GuildMemberWithdraw(int fd) { guild->member_withdraw(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOB(fd,14),(char *)RFIFOP(fd,55),(char *)RFIFOP(fd,15)); - return 0; } // ACK guild member basic info -int intif_parse_GuildMemberInfoShort(int fd) -{ +void intif_parse_GuildMemberInfoShort(int fd) { guild->recv_memberinfoshort(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOB(fd,14),RFIFOW(fd,15),RFIFOW(fd,17)); - return 0; } // ACK guild break -int intif_parse_GuildBroken(int fd) -{ +void intif_parse_GuildBroken(int fd) { guild->broken(RFIFOL(fd,2),RFIFOB(fd,6)); - return 0; } // basic guild info change notice // 0x3839 <packet len>.w <guild id>.l <type>.w <data>.?b -int intif_parse_GuildBasicInfoChanged(int fd) -{ +void intif_parse_GuildBasicInfoChanged(int fd) { //int len = RFIFOW(fd,2) - 10; int guild_id = RFIFOL(fd,4); int type = RFIFOW(fd,8); @@ -1171,21 +1130,18 @@ int intif_parse_GuildBasicInfoChanged(int fd) struct guild* g = guild->search(guild_id); if( g == NULL ) - return 0; + return; switch(type) { - case GBI_EXP: g->exp = RFIFOQ(fd,10); break; - case GBI_GUILDLV: g->guild_lv = RFIFOW(fd,10); break; - case GBI_SKILLPOINT: g->skill_point = RFIFOL(fd,10); break; + case GBI_EXP: g->exp = RFIFOQ(fd,10); break; + case GBI_GUILDLV: g->guild_lv = RFIFOW(fd,10); break; + case GBI_SKILLPOINT: g->skill_point = RFIFOL(fd,10); break; } - - return 0; } // guild member info change notice // 0x383a <packet len>.w <guild id>.l <account id>.l <char id>.l <type>.w <data>.?b -int intif_parse_GuildMemberInfoChanged(int fd) -{ +void intif_parse_GuildMemberInfoChanged(int fd) { //int len = RFIFOW(fd,2) - 18; int guild_id = RFIFOL(fd,4); int account_id = RFIFOL(fd,8); @@ -1198,130 +1154,103 @@ int intif_parse_GuildMemberInfoChanged(int fd) g = guild->search(guild_id); if( g == NULL ) - return 0; + return; idx = guild->getindex(g,account_id,char_id); if( idx == -1 ) - return 0; + return; switch( type ) { - case GMI_POSITION: g->member[idx].position = RFIFOW(fd,18); guild->memberposition_changed(g,idx,RFIFOW(fd,18)); break; - case GMI_EXP: g->member[idx].exp = RFIFOQ(fd,18); break; - case GMI_HAIR: g->member[idx].hair = RFIFOW(fd,18); break; - case GMI_HAIR_COLOR: g->member[idx].hair_color = RFIFOW(fd,18); break; - case GMI_GENDER: g->member[idx].gender = RFIFOW(fd,18); break; - case GMI_CLASS: g->member[idx].class_ = RFIFOW(fd,18); break; - case GMI_LEVEL: g->member[idx].lv = RFIFOW(fd,18); break; + case GMI_POSITION: g->member[idx].position = RFIFOW(fd,18); guild->memberposition_changed(g,idx,RFIFOW(fd,18)); break; + case GMI_EXP: g->member[idx].exp = RFIFOQ(fd,18); break; + case GMI_HAIR: g->member[idx].hair = RFIFOW(fd,18); break; + case GMI_HAIR_COLOR: g->member[idx].hair_color = RFIFOW(fd,18); break; + case GMI_GENDER: g->member[idx].gender = RFIFOW(fd,18); break; + case GMI_CLASS: g->member[idx].class_ = RFIFOW(fd,18); break; + case GMI_LEVEL: g->member[idx].lv = RFIFOW(fd,18); break; } - return 0; } // ACK change of guild title -int intif_parse_GuildPosition(int fd) -{ +void intif_parse_GuildPosition(int fd) { if( RFIFOW(fd,2)!=sizeof(struct guild_position)+12 ) ShowError("intif: guild info : data size error\n %d %d %d",RFIFOL(fd,4),RFIFOW(fd,2),sizeof(struct guild_position)+12); guild->position_changed(RFIFOL(fd,4),RFIFOL(fd,8),(struct guild_position *)RFIFOP(fd,12)); - return 0; } // ACK change of guild skill update -int intif_parse_GuildSkillUp(int fd) -{ +void intif_parse_GuildSkillUp(int fd) { guild->skillupack(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10)); - return 0; } // ACK change of guild relationship -int intif_parse_GuildAlliance(int fd) -{ +void intif_parse_GuildAlliance(int fd) { guild->allianceack(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOL(fd,14),RFIFOB(fd,18),(char *) RFIFOP(fd,19),(char *) RFIFOP(fd,43)); - return 0; } // ACK change of guild notice -int intif_parse_GuildNotice(int fd) -{ +void intif_parse_GuildNotice(int fd) { guild->notice_changed(RFIFOL(fd,2),(char *) RFIFOP(fd,6),(char *) RFIFOP(fd,66)); - return 0; } // ACK change of guild emblem -int intif_parse_GuildEmblem(int fd) -{ +void intif_parse_GuildEmblem(int fd) { guild->emblem_changed(RFIFOW(fd,2)-12,RFIFOL(fd,4),RFIFOL(fd,8), (char *)RFIFOP(fd,12)); - return 0; } // ACK guild message -int intif_parse_GuildMessage(int fd) -{ +void intif_parse_GuildMessage(int fd) { guild->recv_message(RFIFOL(fd,4),RFIFOL(fd,8),(char *) RFIFOP(fd,12),RFIFOW(fd,2)-12); - return 0; } // Reply guild castle data request -int intif_parse_GuildCastleDataLoad(int fd) -{ - return guild->castledataloadack(RFIFOW(fd,2), (struct guild_castle *)RFIFOP(fd,4)); +void intif_parse_GuildCastleDataLoad(int fd) { + guild->castledataloadack(RFIFOW(fd,2), (struct guild_castle *)RFIFOP(fd,4)); } // ACK change of guildmaster -int intif_parse_GuildMasterChanged(int fd) -{ - return guild->gm_changed(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10)); +void intif_parse_GuildMasterChanged(int fd) { + guild->gm_changed(RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10)); } // Request pet creation -int intif_parse_CreatePet(int fd) -{ +void intif_parse_CreatePet(int fd) { pet->get_egg(RFIFOL(fd,2),RFIFOL(fd,7),RFIFOB(fd,6)); - return 0; } // ACK pet data -int intif_parse_RecvPetData(int fd) -{ +void intif_parse_RecvPetData(int fd) { struct s_pet p; int len; len=RFIFOW(fd,2); if(sizeof(struct s_pet)!=len-9) { if(battle_config.etc_log) ShowError("intif: pet data: data size error %d %d\n",sizeof(struct s_pet),len-9); - } - else{ + } else { memcpy(&p,RFIFOP(fd,9),sizeof(struct s_pet)); pet->recv_petdata(RFIFOL(fd,4),&p,RFIFOB(fd,8)); } - - return 0; } - +/* Really? Whats the point, shouldn't be sent when successful then [Ind] */ // ACK pet save data -int intif_parse_SavePetOk(int fd) -{ +void intif_parse_SavePetOk(int fd) { if(RFIFOB(fd,6) == 1) ShowError("pet data save failure\n"); - - return 0; } - +/* Really? Whats the point, shouldn't be sent when successful then [Ind] */ // ACK deleting pet -int intif_parse_DeletePetOk(int fd) -{ +void intif_parse_DeletePetOk(int fd) { if(RFIFOB(fd,2) == 1) ShowError("pet data delete failure\n"); - - return 0; } // ACK changing name resquest, players,pets,hommon -int intif_parse_ChangeNameOk(int fd) +void intif_parse_ChangeNameOk(int fd) { struct map_session_data *sd = NULL; if((sd=map->id2sd(RFIFOL(fd,2)))==NULL || sd->status.char_id != RFIFOL(fd,6)) - return 0; + return; switch (RFIFOB(fd,10)) { case 0: //Players [NOT SUPPORTED YET] @@ -1333,54 +1262,43 @@ int intif_parse_ChangeNameOk(int fd) homun->change_name_ack(sd, (char*)RFIFOP(fd,12), RFIFOB(fd,11)); break; } - return 0; + return; } //---------------------------------------------------------------- // Homunculus recv packets [albator] -int intif_parse_CreateHomunculus(int fd) -{ - int len; - len=RFIFOW(fd,2)-9; +void intif_parse_CreateHomunculus(int fd) { + int len = RFIFOW(fd,2)-9; if(sizeof(struct s_homunculus)!=len) { if(battle_config.etc_log) ShowError("intif: create homun data: data size error %d != %d\n",sizeof(struct s_homunculus),len); - return 0; + return; } homun->recv_data(RFIFOL(fd,4), (struct s_homunculus*)RFIFOP(fd,9), RFIFOB(fd,8)) ; - return 0; } -int intif_parse_RecvHomunculusData(int fd) -{ - int len; - - len=RFIFOW(fd,2)-9; +void intif_parse_RecvHomunculusData(int fd) { + int len = RFIFOW(fd,2)-9; if(sizeof(struct s_homunculus)!=len) { if(battle_config.etc_log) ShowError("intif: homun data: data size error %d %d\n",sizeof(struct s_homunculus),len); - return 0; + return; } homun->recv_data(RFIFOL(fd,4), (struct s_homunculus*)RFIFOP(fd,9), RFIFOB(fd,8)); - return 0; } -int intif_parse_SaveHomunculusOk(int fd) -{ +/* Really? Whats the point, shouldn't be sent when successful then [Ind] */ +void intif_parse_SaveHomunculusOk(int fd) { if(RFIFOB(fd,6) != 1) ShowError("homunculus data save failure for account %d\n", RFIFOL(fd,2)); - - return 0; } -int intif_parse_DeleteHomunculusOk(int fd) -{ +/* Really? Whats the point, shouldn't be sent when successful then [Ind] */ +void intif_parse_DeleteHomunculusOk(int fd) { if(RFIFOB(fd,2) != 1) ShowError("Homunculus data delete failure\n"); - - return 0; } /************************************** @@ -1398,15 +1316,14 @@ int intif_request_questlog(TBL_PC *sd) return 0; } -int intif_parse_questlog(int fd) -{ +void intif_parse_QuestLog(int fd) { int char_id = RFIFOL(fd, 4); int i; TBL_PC * sd = map->charid2sd(char_id); //User not online anymore if(!sd) - return -1; + return; sd->avail_quests = sd->num_quests = (RFIFOW(fd, 2)-8)/sizeof(struct quest); @@ -1420,7 +1337,7 @@ int intif_parse_questlog(int fd) if( sd->quest_index[i] < 0 ) { - ShowError("intif_parse_questlog: quest %d not found in DB.\n",sd->quest_log[i].quest_id); + ShowError("intif_parse_QuestLog: quest %d not found in DB.\n",sd->quest_log[i].quest_id); sd->avail_quests--; sd->num_quests--; i--; @@ -1432,20 +1349,16 @@ int intif_parse_questlog(int fd) } quest->pc_login(sd); - - return 0; } -int intif_parse_questsave(int fd) { +void intif_parse_QuestSave(int fd) { int cid = RFIFOL(fd, 2); TBL_PC *sd = map->id2sd(cid); if( !RFIFOB(fd, 6) ) - ShowError("intif_parse_questsave: Failed to save quest(s) for character %d!\n", cid); + ShowError("intif_parse_QuestSave: Failed to save quest(s) for character %d!\n", cid); else if( sd ) sd->save_quest = false; - - return 0; } int intif_quest_save(TBL_PC *sd) @@ -1491,23 +1404,20 @@ int intif_Mail_requestinbox(int char_id, unsigned char flag) return 0; } -int intif_parse_Mail_inboxreceived(int fd) -{ +void intif_parse_MailInboxReceived(int fd) { struct map_session_data *sd; unsigned char flag = RFIFOB(fd,8); sd = map->charid2sd(RFIFOL(fd,4)); - if (sd == NULL) - { - ShowError("intif_parse_Mail_inboxreceived: char not found %d\n",RFIFOL(fd,4)); - return 1; + if (sd == NULL) { + ShowError("intif_parse_MailInboxReceived: char not found %d\n",RFIFOL(fd,4)); + return; } - if (RFIFOW(fd,2) - 9 != sizeof(struct mail_data)) - { - ShowError("intif_parse_Mail_inboxreceived: data size error %d %d\n", RFIFOW(fd,2) - 9, sizeof(struct mail_data)); - return 1; + if (RFIFOW(fd,2) - 9 != sizeof(struct mail_data)) { + ShowError("intif_parse_MailInboxReceived: data size error %d %d\n", RFIFOW(fd,2) - 9, sizeof(struct mail_data)); + return; } //FIXME: this operation is not safe [ultramage] @@ -1516,13 +1426,11 @@ int intif_parse_Mail_inboxreceived(int fd) if (flag) clif->mail_refreshinbox(sd); - else if( battle_config.mail_show_status && ( battle_config.mail_show_status == 1 || sd->mail.inbox.unread ) ) - { + else if( battle_config.mail_show_status && ( battle_config.mail_show_status == 1 || sd->mail.inbox.unread ) ) { char output[128]; sprintf(output, msg_txt(510), sd->mail.inbox.unchecked, sd->mail.inbox.unread + sd->mail.inbox.unchecked); clif->disp_onlyself(sd, output, strlen(output)); } - return 0; } /*------------------------------------------ * Mail Read @@ -1556,29 +1464,26 @@ int intif_Mail_getattach(int char_id, int mail_id) return 0; } -int intif_parse_Mail_getattach(int fd) { +void intif_parse_MailGetAttach(int fd) { struct map_session_data *sd; struct item item; int zeny = RFIFOL(fd,8); sd = map->charid2sd( RFIFOL(fd,4) ); - if (sd == NULL) - { - ShowError("intif_parse_Mail_getattach: char not found %d\n",RFIFOL(fd,4)); - return 1; + if (sd == NULL) { + ShowError("intif_parse_MailGetAttach: char not found %d\n",RFIFOL(fd,4)); + return; } - if (RFIFOW(fd,2) - 12 != sizeof(struct item)) - { - ShowError("intif_parse_Mail_getattach: data size error %d %d\n", RFIFOW(fd,2) - 16, sizeof(struct item)); - return 1; + if (RFIFOW(fd,2) - 12 != sizeof(struct item)) { + ShowError("intif_parse_MailGetAttach: data size error %d %d\n", RFIFOW(fd,2) - 16, sizeof(struct item)); + return; } memcpy(&item, RFIFOP(fd,12), sizeof(struct item)); mail->getattachment(sd, zeny, &item); - return 0; } /*------------------------------------------ * Delete Message @@ -1597,24 +1502,21 @@ int intif_Mail_delete(int char_id, int mail_id) return 0; } -int intif_parse_Mail_delete(int fd) { +void intif_parse_MailDelete(int fd) { + struct map_session_data *sd; int char_id = RFIFOL(fd,2); int mail_id = RFIFOL(fd,6); bool failed = RFIFOB(fd,10); - - struct map_session_data *sd = map->charid2sd(char_id); - if (sd == NULL) - { - ShowError("intif_parse_Mail_delete: char not found %d\n", char_id); - return 1; + + if ( (sd = map->charid2sd(char_id)) == NULL) { + ShowError("intif_parse_MailDelete: char not found %d\n", char_id); + return; } - if (!failed) - { + if (!failed) { int i; ARR_FIND(0, MAIL_MAX_INBOX, i, sd->mail.inbox.msg[i].id == mail_id); - if( i < MAIL_MAX_INBOX ) - { + if( i < MAIL_MAX_INBOX ) { memset(&sd->mail.inbox.msg[i], 0, sizeof(struct mail_message)); sd->mail.inbox.amount--; } @@ -1624,7 +1526,6 @@ int intif_parse_Mail_delete(int fd) { } clif->mail_delete(sd->fd, mail_id, failed); - return 0; } /*------------------------------------------ * Return Message @@ -1643,23 +1544,20 @@ int intif_Mail_return(int char_id, int mail_id) return 0; } -int intif_parse_Mail_return(int fd) { +void intif_parse_MailReturn(int fd) { struct map_session_data *sd = map->charid2sd(RFIFOL(fd,2)); int mail_id = RFIFOL(fd,6); short fail = RFIFOB(fd,10); - if( sd == NULL ) - { - ShowError("intif_parse_Mail_return: char not found %d\n",RFIFOL(fd,2)); - return 1; + if( sd == NULL ) { + ShowError("intif_parse_MailReturn: char not found %d\n",RFIFOL(fd,2)); + return; } - if( !fail ) - { + if( !fail ) { int i; ARR_FIND(0, MAIL_MAX_INBOX, i, sd->mail.inbox.msg[i].id == mail_id); - if( i < MAIL_MAX_INBOX ) - { + if( i < MAIL_MAX_INBOX ) { memset(&sd->mail.inbox.msg[i], 0, sizeof(struct mail_message)); sd->mail.inbox.amount--; } @@ -1669,7 +1567,6 @@ int intif_parse_Mail_return(int fd) { } clif->mail_return(sd->fd, mail_id, fail); - return 0; } /*------------------------------------------ * Send Mail @@ -1691,15 +1588,13 @@ int intif_Mail_send(int account_id, struct mail_message *msg) return 1; } -static void intif_parse_Mail_send(int fd) -{ +void intif_parse_MailSend(int fd) { struct mail_message msg; struct map_session_data *sd; bool fail; - if( RFIFOW(fd,2) - 4 != sizeof(struct mail_message) ) - { - ShowError("intif_parse_Mail_send: data size error %d %d\n", RFIFOW(fd,2) - 4, sizeof(struct mail_message)); + if( RFIFOW(fd,2) - 4 != sizeof(struct mail_message) ) { + ShowError("intif_parse_MailSend: data size error %d %d\n", RFIFOW(fd,2) - 4, sizeof(struct mail_message)); return; } @@ -1719,7 +1614,7 @@ static void intif_parse_Mail_send(int fd) } } -static void intif_parse_Mail_new(int fd) { +void intif_parse_MailNew(int fd) { struct map_session_data *sd = map->charid2sd(RFIFOL(fd,2)); int mail_id = RFIFOL(fd,6); const char* sender_name = (char*)RFIFOP(fd,10); @@ -1756,7 +1651,7 @@ int intif_Auction_requestlist(int char_id, short type, int price, const char* se return 0; } -static void intif_parse_Auction_results(int fd) { +void intif_parse_AuctionResults(int fd) { struct map_session_data *sd = map->charid2sd(RFIFOL(fd,4)); short count = RFIFOW(fd,8); short pages = RFIFOW(fd,10); @@ -1784,12 +1679,12 @@ int intif_Auction_register(struct auction_data *auction) return 1; } -static void intif_parse_Auction_register(int fd) { +void intif_parse_AuctionRegister(int fd) { struct map_session_data *sd; struct auction_data auction; if( RFIFOW(fd,2) - 4 != sizeof(struct auction_data) ) { - ShowError("intif_parse_Auction_register: data size error %d %d\n", RFIFOW(fd,2) - 4, sizeof(struct auction_data)); + ShowError("intif_parse_AuctionRegister: data size error %d %d\n", RFIFOW(fd,2) - 4, sizeof(struct auction_data)); return; } @@ -1801,9 +1696,7 @@ static void intif_parse_Auction_register(int fd) { clif->auction_message(sd->fd, 1); // Confirmation Packet ?? if( map->save_settings&32 ) chrif->save(sd,0); - } - else - { + } else { int zeny = auction.hours*battle_config.auction_feeperhour; clif->auction_message(sd->fd, 4); @@ -1827,7 +1720,7 @@ int intif_Auction_cancel(int char_id, unsigned int auction_id) return 0; } -static void intif_parse_Auction_cancel(int fd) { +void intif_parse_AuctionCancel(int fd) { struct map_session_data *sd = map->charid2sd(RFIFOL(fd,2)); int result = RFIFOB(fd,6); @@ -1835,10 +1728,10 @@ static void intif_parse_Auction_cancel(int fd) { return; switch( result ) { - case 0: clif->auction_message(sd->fd, 2); break; - case 1: clif->auction_close(sd->fd, 2); break; - case 2: clif->auction_close(sd->fd, 1); break; - case 3: clif->auction_message(sd->fd, 3); break; + case 0: clif->auction_message(sd->fd, 2); break; + case 1: clif->auction_close(sd->fd, 2); break; + case 2: clif->auction_close(sd->fd, 1); break; + case 3: clif->auction_message(sd->fd, 3); break; } } @@ -1856,7 +1749,7 @@ int intif_Auction_close(int char_id, unsigned int auction_id) return 0; } -static void intif_parse_Auction_close(int fd) { +void intif_parse_AuctionClose(int fd) { struct map_session_data *sd = map->charid2sd(RFIFOL(fd,2)); unsigned char result = RFIFOB(fd,6); @@ -1864,8 +1757,7 @@ static void intif_parse_Auction_close(int fd) { return; clif->auction_close(sd->fd, result); - if( result == 0 ) - { + if( result == 0 ) { // FIXME: Leeching off a parse function clif->pAuction_cancelreg(fd, sd); intif_Auction_requestlist(sd->status.char_id, 6, 0, "", 1); @@ -1891,7 +1783,7 @@ int intif_Auction_bid(int char_id, const char* name, unsigned int auction_id, in return 0; } -static void intif_parse_Auction_bid(int fd) { +void intif_parse_AuctionBid(int fd) { struct map_session_data *sd = map->charid2sd(RFIFOL(fd,2)); int bid = RFIFOL(fd,6); unsigned char result = RFIFOB(fd,10); @@ -1910,7 +1802,7 @@ static void intif_parse_Auction_bid(int fd) { } // Used to send 'You have won the auction' and 'You failed to won the auction' messages -static void intif_parse_Auction_message(int fd) { +void intif_parse_AuctionMessage(int fd) { struct map_session_data *sd = map->charid2sd(RFIFOL(fd,2)); unsigned char result = RFIFOB(fd,6); @@ -1938,18 +1830,16 @@ int intif_mercenary_create(struct s_mercenary *merc) return 0; } -int intif_parse_mercenary_received(int fd) -{ +void intif_parse_MercenaryReceived(int fd) { int len = RFIFOW(fd,2) - 5; - if( sizeof(struct s_mercenary) != len ) - { + + if( sizeof(struct s_mercenary) != len ) { if( battle_config.etc_log ) ShowError("intif: create mercenary data size error %d != %d\n", sizeof(struct s_mercenary), len); - return 0; + return; } mercenary->data_received((struct s_mercenary*)RFIFOP(fd,5), RFIFOB(fd,4)); - return 0; } int intif_mercenary_request(int merc_id, int char_id) @@ -1976,13 +1866,10 @@ int intif_mercenary_delete(int merc_id) WFIFOSET(inter_fd,6); return 0; } - -int intif_parse_mercenary_deleted(int fd) -{ +/* Really? Whats the point, shouldn't be sent when successful then [Ind] */ +void intif_parse_MercenaryDeleted(int fd) { if( RFIFOB(fd,2) != 1 ) ShowError("Mercenary data delete failure\n"); - - return 0; } int intif_mercenary_save(struct s_mercenary *merc) @@ -1999,13 +1886,10 @@ int intif_mercenary_save(struct s_mercenary *merc) WFIFOSET(inter_fd,size); return 0; } - -int intif_parse_mercenary_saved(int fd) -{ +/* Really? Whats the point, shouldn't be sent when successful then [Ind] */ +void intif_parse_MercenarySaved(int fd) { if( RFIFOB(fd,2) != 1 ) ShowError("Mercenary data save failure\n"); - - return 0; } /*========================================== @@ -2026,18 +1910,16 @@ int intif_elemental_create(struct s_elemental *ele) return 0; } -int intif_parse_elemental_received(int fd) -{ +void intif_parse_ElementalReceived(int fd) { int len = RFIFOW(fd,2) - 5; - if( sizeof(struct s_elemental) != len ) - { + + if( sizeof(struct s_elemental) != len ) { if( battle_config.etc_log ) ShowError("intif: create elemental data size error %d != %d\n", sizeof(struct s_elemental), len); - return 0; + return; } elemental->data_received((struct s_elemental*)RFIFOP(fd,5), RFIFOB(fd,4)); - return 0; } int intif_elemental_request(int ele_id, int char_id) @@ -2064,13 +1946,10 @@ int intif_elemental_delete(int ele_id) WFIFOSET(inter_fd,6); return 0; } - -int intif_parse_elemental_deleted(int fd) -{ +/* Really? Whats the point, shouldn't be sent when successful then [Ind] */ +void intif_parse_ElementalDeleted(int fd) { if( RFIFOB(fd,2) != 1 ) ShowError("Elemental data delete failure\n"); - - return 0; } int intif_elemental_save(struct s_elemental *ele) @@ -2087,13 +1966,10 @@ int intif_elemental_save(struct s_elemental *ele) WFIFOSET(inter_fd,size); return 0; } - -int intif_parse_elemental_saved(int fd) -{ +/* Really? Whats the point, shouldn't be sent when successful then [Ind] */ +void intif_parse_ElementalSaved(int fd) { if( RFIFOB(fd,2) != 1 ) ShowError("Elemental data save failure\n"); - - return 0; } void intif_request_accinfo( int u_fd, int aid, int group_lv, char* query ) { @@ -2139,12 +2015,12 @@ int intif_parse(int fd) int packet_len, cmd; cmd = RFIFOW(fd,0); // Verify ID of the packet - if(cmd<0x3800 || cmd>=0x3800+(sizeof(packet_len_table)/sizeof(packet_len_table[0])) || - packet_len_table[cmd-0x3800]==0){ + if(cmd<0x3800 || cmd>=0x3800+(sizeof(intif->packet_len_table)/sizeof(intif->packet_len_table[0])) || + intif->packet_len_table[cmd-0x3800]==0){ return 0; } // Check the length of the packet - packet_len = packet_len_table[cmd-0x3800]; + packet_len = intif->packet_len_table[cmd-0x3800]; if(packet_len==-1){ if(RFIFOREST(fd)<4) return 2; @@ -2155,81 +2031,81 @@ int intif_parse(int fd) } // Processing branch switch(cmd){ - case 0x3800: - if (RFIFOL(fd,4) == 0xFF000000) //Normal announce. - clif->broadcast(NULL, (char *) RFIFOP(fd,16), packet_len-16, BC_DEFAULT, ALL_CLIENT); - else //Color announce. - clif->broadcast2(NULL, (char *) RFIFOP(fd,16), packet_len-16, RFIFOL(fd,4), RFIFOW(fd,8), RFIFOW(fd,10), RFIFOW(fd,12), RFIFOW(fd,14), ALL_CLIENT); - break; - case 0x3801: intif_parse_WisMessage(fd); break; - case 0x3802: intif_parse_WisEnd(fd); break; - case 0x3803: mapif_parse_WisToGM(fd); break; - case 0x3804: intif_parse_Registers(fd); break; - case 0x3806: intif_parse_ChangeNameOk(fd); break; - case 0x3807: intif_parse_MessageToFD(fd); break; - case 0x3818: intif_parse_LoadGuildStorage(fd); break; - case 0x3819: intif_parse_SaveGuildStorage(fd); break; - case 0x3820: intif_parse_PartyCreated(fd); break; - case 0x3821: intif_parse_PartyInfo(fd); break; - case 0x3822: intif_parse_PartyMemberAdded(fd); break; - case 0x3823: intif_parse_PartyOptionChanged(fd); break; - case 0x3824: intif_parse_PartyMemberWithdraw(fd); break; - case 0x3825: intif_parse_PartyMove(fd); break; - case 0x3826: intif_parse_PartyBroken(fd); break; - case 0x3827: intif_parse_PartyMessage(fd); break; - case 0x3830: intif_parse_GuildCreated(fd); break; - case 0x3831: intif_parse_GuildInfo(fd); break; - case 0x3832: intif_parse_GuildMemberAdded(fd); break; - case 0x3834: intif_parse_GuildMemberWithdraw(fd); break; - case 0x3835: intif_parse_GuildMemberInfoShort(fd); break; - case 0x3836: intif_parse_GuildBroken(fd); break; - case 0x3837: intif_parse_GuildMessage(fd); break; - case 0x3839: intif_parse_GuildBasicInfoChanged(fd); break; - case 0x383a: intif_parse_GuildMemberInfoChanged(fd); break; - case 0x383b: intif_parse_GuildPosition(fd); break; - case 0x383c: intif_parse_GuildSkillUp(fd); break; - case 0x383d: intif_parse_GuildAlliance(fd); break; - case 0x383e: intif_parse_GuildNotice(fd); break; - case 0x383f: intif_parse_GuildEmblem(fd); break; - case 0x3840: intif_parse_GuildCastleDataLoad(fd); break; - case 0x3843: intif_parse_GuildMasterChanged(fd); break; - - //Quest system - case 0x3860: intif_parse_questlog(fd); break; - case 0x3861: intif_parse_questsave(fd); break; - -// Mail System - case 0x3848: intif_parse_Mail_inboxreceived(fd); break; - case 0x3849: intif_parse_Mail_new(fd); break; - case 0x384a: intif_parse_Mail_getattach(fd); break; - case 0x384b: intif_parse_Mail_delete(fd); break; - case 0x384c: intif_parse_Mail_return(fd); break; - case 0x384d: intif_parse_Mail_send(fd); break; -// Auction System - case 0x3850: intif_parse_Auction_results(fd); break; - case 0x3851: intif_parse_Auction_register(fd); break; - case 0x3852: intif_parse_Auction_cancel(fd); break; - case 0x3853: intif_parse_Auction_close(fd); break; - case 0x3854: intif_parse_Auction_message(fd); break; - case 0x3855: intif_parse_Auction_bid(fd); break; - -// Mercenary System - case 0x3870: intif_parse_mercenary_received(fd); break; - case 0x3871: intif_parse_mercenary_deleted(fd); break; - case 0x3872: intif_parse_mercenary_saved(fd); break; -// Elemental System - case 0x387c: intif_parse_elemental_received(fd); break; - case 0x387d: intif_parse_elemental_deleted(fd); break; - case 0x387e: intif_parse_elemental_saved(fd); break; - - case 0x3880: intif_parse_CreatePet(fd); break; - case 0x3881: intif_parse_RecvPetData(fd); break; - case 0x3882: intif_parse_SavePetOk(fd); break; - case 0x3883: intif_parse_DeletePetOk(fd); break; - case 0x3890: intif_parse_CreateHomunculus(fd); break; - case 0x3891: intif_parse_RecvHomunculusData(fd); break; - case 0x3892: intif_parse_SaveHomunculusOk(fd); break; - case 0x3893: intif_parse_DeleteHomunculusOk(fd); break; + case 0x3800: + if (RFIFOL(fd,4) == 0xFF000000) //Normal announce. + clif->broadcast(NULL, (char *) RFIFOP(fd,16), packet_len-16, BC_DEFAULT, ALL_CLIENT); + else //Color announce. + clif->broadcast2(NULL, (char *) RFIFOP(fd,16), packet_len-16, RFIFOL(fd,4), RFIFOW(fd,8), RFIFOW(fd,10), RFIFOW(fd,12), RFIFOW(fd,14), ALL_CLIENT); + break; + case 0x3801: intif->pWisMessage(fd); break; + case 0x3802: intif->pWisEnd(fd); break; + case 0x3803: intif->pWisToGM(fd); break; + case 0x3804: intif->pRegisters(fd); break; + case 0x3806: intif->pChangeNameOk(fd); break; + case 0x3807: intif->pMessageToFD(fd); break; + case 0x3818: intif->pLoadGuildStorage(fd); break; + case 0x3819: intif->pSaveGuildStorage(fd); break; + case 0x3820: intif->pPartyCreated(fd); break; + case 0x3821: intif->pPartyInfo(fd); break; + case 0x3822: intif->pPartyMemberAdded(fd); break; + case 0x3823: intif->pPartyOptionChanged(fd); break; + case 0x3824: intif->pPartyMemberWithdraw(fd); break; + case 0x3825: intif->pPartyMove(fd); break; + case 0x3826: intif->pPartyBroken(fd); break; + case 0x3827: intif->pPartyMessage(fd); break; + case 0x3830: intif->pGuildCreated(fd); break; + case 0x3831: intif->pGuildInfo(fd); break; + case 0x3832: intif->pGuildMemberAdded(fd); break; + case 0x3834: intif->pGuildMemberWithdraw(fd); break; + case 0x3835: intif->pGuildMemberInfoShort(fd); break; + case 0x3836: intif->pGuildBroken(fd); break; + case 0x3837: intif->pGuildMessage(fd); break; + case 0x3839: intif->pGuildBasicInfoChanged(fd); break; + case 0x383a: intif->pGuildMemberInfoChanged(fd); break; + case 0x383b: intif->pGuildPosition(fd); break; + case 0x383c: intif->pGuildSkillUp(fd); break; + case 0x383d: intif->pGuildAlliance(fd); break; + case 0x383e: intif->pGuildNotice(fd); break; + case 0x383f: intif->pGuildEmblem(fd); break; + case 0x3840: intif->pGuildCastleDataLoad(fd); break; + case 0x3843: intif->pGuildMasterChanged(fd); break; + + //Quest system + case 0x3860: intif->pQuestLog(fd); break; + case 0x3861: intif->pQuestSave(fd); break; + + // Mail System + case 0x3848: intif->pMailInboxReceived(fd); break; + case 0x3849: intif->pMailNew(fd); break; + case 0x384a: intif->pMailGetAttach(fd); break; + case 0x384b: intif->pMailDelete(fd); break; + case 0x384c: intif->pMailReturn(fd); break; + case 0x384d: intif->pMailSend(fd); break; + // Auction System + case 0x3850: intif->pAuctionResults(fd); break; + case 0x3851: intif->pAuctionRegister(fd); break; + case 0x3852: intif->pAuctionCancel(fd); break; + case 0x3853: intif->pAuctionClose(fd); break; + case 0x3854: intif->pAuctionMessage(fd); break; + case 0x3855: intif->pAuctionBid(fd); break; + + // Mercenary System + case 0x3870: intif->pMercenaryReceived(fd); break; + case 0x3871: intif->pMercenaryDeleted(fd); break; + case 0x3872: intif->pMercenarySaved(fd); break; + // Elemental System + case 0x387c: intif->pElementalReceived(fd); break; + case 0x387d: intif->pElementalDeleted(fd); break; + case 0x387e: intif->pElementalSaved(fd); break; + + case 0x3880: intif->pCreatePet(fd); break; + case 0x3881: intif->pRecvPetData(fd); break; + case 0x3882: intif->pSavePetOk(fd); break; + case 0x3883: intif->pDeletePetOk(fd); break; + case 0x3890: intif->pCreateHomunculus(fd); break; + case 0x3891: intif->pRecvHomunculusData(fd); break; + case 0x3892: intif->pSaveHomunculusOk(fd); break; + case 0x3893: intif->pDeleteHomunculusOk(fd); break; default: ShowError("intif_parse : unknown packet %d %x\n",fd,RFIFOW(fd,0)); return 0; @@ -2245,30 +2121,38 @@ int intif_parse(int fd) * created by Susu *-------------------------------------*/ void intif_defaults(void) { + const int packet_len_table [INTIF_PACKET_LEN_TABLE_SIZE] = { + -1,-1,27,-1, -1, 0,37,-1, 0, 0, 0, 0, 0, 0, 0, 0, //0x3800-0x380f + 0, 0, 0, 0, 0, 0, 0, 0, -1,11, 0, 0, 0, 0, 0, 0, //0x3810 + 39,-1,15,15, 14,19, 7,-1, 0, 0, 0, 0, 0, 0, 0, 0, //0x3820 + 10,-1,15, 0, 79,19, 7,-1, 0,-1,-1,-1, 14,67,186,-1, //0x3830 + -1, 0, 0,14, 0, 0, 0, 0, -1,74,-1,11, 11,-1, 0, 0, //0x3840 + -1,-1, 7, 7, 7,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0x3850 Auctions [Zephyrus] + -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0x3860 Quests [Kevin] [Inkfish] + -1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 3, 0, //0x3870 Mercenaries [Zephyrus] / Elemental [pakpil] + 11,-1, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0x3880 + -1,-1, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //0x3890 Homunculus [albator] + }; + intif = &intif_s; - /* funcs */ + /* */ + memcpy(intif->packet_len_table,&packet_len_table,sizeof(intif->packet_len_table)); + /* funcs */ intif->parse = intif_parse; - intif->create_pet = intif_create_pet; - intif->broadcast = intif_broadcast; intif->broadcast2 = intif_broadcast2; intif->main_message = intif_main_message; - intif->wis_message = intif_wis_message; intif->wis_message_to_gm = intif_wis_message_to_gm; - intif->saveregistry = intif_saveregistry; intif->request_registry = intif_request_registry; - intif->request_guild_storage = intif_request_guild_storage; intif->send_guild_storage = intif_send_guild_storage; - intif->create_party = intif_create_party; intif->request_partyinfo = intif_request_partyinfo; - intif->party_addmember = intif_party_addmember; intif->party_changeoption = intif_party_changeoption; intif->party_leave = intif_party_leave; @@ -2276,7 +2160,6 @@ void intif_defaults(void) { intif->break_party = intif_break_party; intif->party_message = intif_party_message; intif->party_leaderchange = intif_party_leaderchange; - intif->guild_create = intif_guild_create; intif->guild_request_info = intif_guild_request_info; intif->guild_addmember = intif_guild_addmember; @@ -2330,6 +2213,68 @@ void intif_defaults(void) { intif->elemental_save = intif_elemental_save; /* @accinfo */ intif->request_accinfo = intif_request_accinfo; - + /* */ intif->CheckForCharServer = CheckForCharServer; + /* */ + intif->pWisMessage = intif_parse_WisMessage; + intif->pWisEnd = intif_parse_WisEnd; + intif->pWisToGM_sub = mapif_parse_WisToGM_sub; + intif->pWisToGM = mapif_parse_WisToGM; + intif->pRegisters = intif_parse_Registers; + intif->pChangeNameOk = intif_parse_ChangeNameOk; + intif->pMessageToFD = intif_parse_MessageToFD; + intif->pLoadGuildStorage = intif_parse_LoadGuildStorage; + intif->pSaveGuildStorage = intif_parse_SaveGuildStorage; + intif->pPartyCreated = intif_parse_PartyCreated; + intif->pPartyInfo = intif_parse_PartyInfo; + intif->pPartyMemberAdded = intif_parse_PartyMemberAdded; + intif->pPartyOptionChanged = intif_parse_PartyOptionChanged; + intif->pPartyMemberWithdraw = intif_parse_PartyMemberWithdraw; + intif->pPartyMove = intif_parse_PartyMove; + intif->pPartyBroken = intif_parse_PartyBroken; + intif->pPartyMessage = intif_parse_PartyMessage; + intif->pGuildCreated = intif_parse_GuildCreated; + intif->pGuildInfo = intif_parse_GuildInfo; + intif->pGuildMemberAdded = intif_parse_GuildMemberAdded; + intif->pGuildMemberWithdraw = intif_parse_GuildMemberWithdraw; + intif->pGuildMemberInfoShort = intif_parse_GuildMemberInfoShort; + intif->pGuildBroken = intif_parse_GuildBroken; + intif->pGuildMessage = intif_parse_GuildMessage; + intif->pGuildBasicInfoChanged = intif_parse_GuildBasicInfoChanged; + intif->pGuildMemberInfoChanged = intif_parse_GuildMemberInfoChanged; + intif->pGuildPosition = intif_parse_GuildPosition; + intif->pGuildSkillUp = intif_parse_GuildSkillUp; + intif->pGuildAlliance = intif_parse_GuildAlliance; + intif->pGuildNotice = intif_parse_GuildNotice; + intif->pGuildEmblem = intif_parse_GuildEmblem; + intif->pGuildCastleDataLoad = intif_parse_GuildCastleDataLoad; + intif->pGuildMasterChanged = intif_parse_GuildMasterChanged; + intif->pQuestLog = intif_parse_QuestLog; + intif->pQuestSave = intif_parse_QuestSave; + intif->pMailInboxReceived = intif_parse_MailInboxReceived; + intif->pMailNew = intif_parse_MailNew; + intif->pMailGetAttach = intif_parse_MailGetAttach; + intif->pMailDelete = intif_parse_MailDelete; + intif->pMailReturn = intif_parse_MailReturn; + intif->pMailSend = intif_parse_MailSend; + intif->pAuctionResults = intif_parse_AuctionResults; + intif->pAuctionRegister = intif_parse_AuctionRegister; + intif->pAuctionCancel = intif_parse_AuctionCancel; + intif->pAuctionClose = intif_parse_AuctionClose; + intif->pAuctionMessage = intif_parse_AuctionMessage; + intif->pAuctionBid = intif_parse_AuctionBid; + intif->pMercenaryReceived = intif_parse_MercenaryReceived; + intif->pMercenaryDeleted = intif_parse_MercenaryDeleted; + intif->pMercenarySaved = intif_parse_MercenarySaved; + intif->pElementalReceived = intif_parse_ElementalReceived; + intif->pElementalDeleted = intif_parse_ElementalDeleted; + intif->pElementalSaved = intif_parse_ElementalSaved; + intif->pCreatePet = intif_parse_CreatePet; + intif->pRecvPetData = intif_parse_RecvPetData; + intif->pSavePetOk = intif_parse_SavePetOk; + intif->pDeletePetOk = intif_parse_DeletePetOk; + intif->pCreateHomunculus = intif_parse_CreateHomunculus; + intif->pRecvHomunculusData = intif_parse_RecvHomunculusData; + intif->pSaveHomunculusOk = intif_parse_SaveHomunculusOk; + intif->pDeleteHomunculusOk = intif_parse_DeleteHomunculusOk; } diff --git a/src/map/intif.h b/src/map/intif.h index 8abcf819d..768e735de 100644 --- a/src/map/intif.h +++ b/src/map/intif.h @@ -1,8 +1,14 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Portions Copyright (c) Athena Dev Teams + #ifndef _INTIF_H_ #define _INFIF_H_ -//#include "../common/mmo.h" + + +/** + * Declarations + **/ struct party_member; struct guild_member; struct guild_position; @@ -13,17 +19,13 @@ struct s_elemental; struct mail_message; struct auction_data; - - - - +/** + * Defines + **/ #define intif_rename_pc(sd, name) intif->rename(sd, 0, name) #define intif_rename_pet(sd, name) intif->rename(sd, 1, name) #define intif_rename_hom(sd, name) intif->rename(sd, 2, name) - - - - +#define INTIF_PACKET_LEN_TABLE_SIZE 161 /*===================================== @@ -32,30 +34,23 @@ struct auction_data; * created by Susu *-------------------------------------*/ struct intif_interface { + /* */ + int packet_len_table[INTIF_PACKET_LEN_TABLE_SIZE]; /* funcs */ - - int (*parse) (int fd); - int (*create_pet)(int account_id, int char_id, short pet_type, short pet_lv, short pet_egg_id, - short pet_equip, short intimate, short hungry, char rename_flag, char incuvate, char *pet_name); - + short pet_equip, short intimate, short hungry, char rename_flag, char incuvate, char *pet_name); int (*broadcast) (const char* mes, int len, int type); int (*broadcast2) (const char* mes, int len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY); int (*main_message) (struct map_session_data* sd, const char* message); - int (*wis_message) (struct map_session_data *sd,char *nick,char *mes,int mes_len); int (*wis_message_to_gm) (char *Wisp_name, int permission, char *mes); - int (*saveregistry) (struct map_session_data *sd, int type); int (*request_registry) (struct map_session_data *sd, int flag); - int (*request_guild_storage) (int account_id, int guild_id); int (*send_guild_storage) (int account_id, struct guild_storage *gstor); - int (*create_party) (struct party_member *member,char *name,int item,int item2); int (*request_partyinfo) (int party_id, int char_id); - int (*party_addmember) (int party_id,struct party_member *member); int (*party_changeoption) (int party_id, int account_id, int exp, int item); int (*party_leave) (int party_id,int account_id, int char_id); @@ -63,7 +58,6 @@ struct intif_interface { int (*break_party) (int party_id); int (*party_message) (int party_id, int account_id, const char *mes,int len); int (*party_leaderchange) (int party_id,int account_id,int char_id); - int (*guild_create) (const char *name, const struct guild_member *master); int (*guild_request_info) (int guild_id); int (*guild_addmember) (int guild_id, struct guild_member *m); @@ -117,9 +111,71 @@ struct intif_interface { int (*elemental_save) (struct s_elemental *ele); /* @accinfo */ void (*request_accinfo) (int u_fd, int aid, int group_lv, char* query); - + /* */ int (*CheckForCharServer) (void); -} intif_s; + /* */ + void (*pWisMessage) (int fd); + void (*pWisEnd) (int fd); + int (*pWisToGM_sub) (struct map_session_data* sd,va_list va); + void (*pWisToGM) (int fd); + void (*pRegisters) (int fd); + void (*pChangeNameOk) (int fd); + void (*pMessageToFD) (int fd); + void (*pLoadGuildStorage) (int fd); + void (*pSaveGuildStorage) (int fd); + void (*pPartyCreated) (int fd); + void (*pPartyInfo) (int fd); + void (*pPartyMemberAdded) (int fd); + void (*pPartyOptionChanged) (int fd); + void (*pPartyMemberWithdraw) (int fd); + void (*pPartyMove) (int fd); + void (*pPartyBroken) (int fd); + void (*pPartyMessage) (int fd); + void (*pGuildCreated) (int fd); + void (*pGuildInfo) (int fd); + void (*pGuildMemberAdded) (int fd); + void (*pGuildMemberWithdraw) (int fd); + void (*pGuildMemberInfoShort) (int fd); + void (*pGuildBroken) (int fd); + void (*pGuildMessage) (int fd); + void (*pGuildBasicInfoChanged) (int fd); + void (*pGuildMemberInfoChanged) (int fd); + void (*pGuildPosition) (int fd); + void (*pGuildSkillUp) (int fd); + void (*pGuildAlliance) (int fd); + void (*pGuildNotice) (int fd); + void (*pGuildEmblem) (int fd); + void (*pGuildCastleDataLoad) (int fd); + void (*pGuildMasterChanged) (int fd); + void (*pQuestLog) (int fd); + void (*pQuestSave) (int fd); + void (*pMailInboxReceived) (int fd); + void (*pMailNew) (int fd); + void (*pMailGetAttach) (int fd); + void (*pMailDelete) (int fd); + void (*pMailReturn) (int fd); + void (*pMailSend) (int fd); + void (*pAuctionResults) (int fd); + void (*pAuctionRegister) (int fd); + void (*pAuctionCancel) (int fd); + void (*pAuctionClose) (int fd); + void (*pAuctionMessage) (int fd); + void (*pAuctionBid) (int fd); + void (*pMercenaryReceived) (int fd); + void (*pMercenaryDeleted) (int fd); + void (*pMercenarySaved) (int fd); + void (*pElementalReceived) (int fd); + void (*pElementalDeleted) (int fd); + void (*pElementalSaved) (int fd); + void (*pCreatePet) (int fd); + void (*pRecvPetData) (int fd); + void (*pSavePetOk) (int fd); + void (*pDeletePetOk) (int fd); + void (*pCreateHomunculus) (int fd); + void (*pRecvHomunculusData) (int fd); + void (*pSaveHomunculusOk) (int fd); + void (*pDeleteHomunculusOk) (int fd); +}; struct intif_interface *intif; diff --git a/src/map/itemdb.c b/src/map/itemdb.c index ee0eea5ff..fe2c43fcc 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -354,7 +354,10 @@ void itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask) if (jobmask & 1<<23) //Soul Linker bclass[2] |= 1<<MAPID_TAEKWON; if (jobmask & 1<<JOB_GUNSLINGER) + {//Rebellion job can equip Gunslinger equips. [Rytech] bclass[0] |= 1<<MAPID_GUNSLINGER; + bclass[1] |= 1<<MAPID_GUNSLINGER; + } if (jobmask & 1<<JOB_NINJA) {bclass[0] |= 1<<MAPID_NINJA; bclass[1] |= 1<<MAPID_NINJA;}//Kagerou/Oboro jobs can equip Ninja equips. [Rytech] @@ -366,6 +369,8 @@ void itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask) bclass[2] |= 1<<MAPID_GANGSI; if (jobmask & 1<<29) //Kagerou / Oboro bclass[1] |= 1<<MAPID_NINJA; + if (jobmask & 1<<30) //Rebellion + bclass[1] |= 1<<MAPID_GUNSLINGER; } void create_dummy_data(void) @@ -1833,18 +1838,18 @@ int itemdb_read_sqldb(void) { uint32 count = 0; // retrieve all rows from the item database - if( SQL_ERROR == SQL->Query(mmysql_handle, "SELECT * FROM `%s`", item_db_name[fi]) ) { - Sql_ShowDebug(mmysql_handle); + if( SQL_ERROR == SQL->Query(map->mysql_handle, "SELECT * FROM `%s`", item_db_name[fi]) ) { + Sql_ShowDebug(map->mysql_handle); continue; } // process rows one by one - while( SQL_SUCCESS == SQL->NextRow(mmysql_handle) ) {// wrap the result into a TXT-compatible format + while( SQL_SUCCESS == SQL->NextRow(map->mysql_handle) ) {// wrap the result into a TXT-compatible format char* str[ITEMDB_SQL_COLUMNS]; char* dummy = ""; int i; for( i = 0; i < ITEMDB_SQL_COLUMNS; ++i ) { - SQL->GetData(mmysql_handle, i, &str[i], NULL); + SQL->GetData(map->mysql_handle, i, &str[i], NULL); if( str[i] == NULL ) str[i] = dummy; // get rid of NULL columns } @@ -1855,7 +1860,7 @@ int itemdb_read_sqldb(void) { } // free the query result - SQL->FreeResult(mmysql_handle); + SQL->FreeResult(map->mysql_handle); ShowStatus("Done reading '"CL_WHITE"%lu"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, item_db_name[fi]); } @@ -1890,18 +1895,18 @@ uint64 itemdb_unique_id(int8 flag, int64 value) { } int itemdb_uid_load() { char * uid; - if (SQL_ERROR == SQL->Query(mmysql_handle, "SELECT `value` FROM `%s` WHERE `varname`='unique_id'",map->interreg_db)) - Sql_ShowDebug(mmysql_handle); + if (SQL_ERROR == SQL->Query(map->mysql_handle, "SELECT `value` FROM `%s` WHERE `varname`='unique_id'",map->interreg_db)) + Sql_ShowDebug(map->mysql_handle); - if( SQL_SUCCESS != SQL->NextRow(mmysql_handle) ) { + if( SQL_SUCCESS != SQL->NextRow(map->mysql_handle) ) { ShowError("itemdb_uid_load: Unable to fetch unique_id data\n"); - SQL->FreeResult(mmysql_handle); + SQL->FreeResult(map->mysql_handle); return -1; } - SQL->GetData(mmysql_handle, 0, &uid, NULL); + SQL->GetData(map->mysql_handle, 0, &uid, NULL); itemdb->unique_id(1, (uint64)strtoull(uid, NULL, 10)); - SQL->FreeResult(mmysql_handle); + SQL->FreeResult(map->mysql_handle); return 0; } diff --git a/src/map/log.c b/src/map/log.c index 929143ba7..e33240505 100644 --- a/src/map/log.c +++ b/src/map/log.c @@ -20,36 +20,8 @@ struct log_interface log_s; -/// filters for item logging -typedef enum e_log_filter { - LOG_FILTER_NONE = 0x000, - LOG_FILTER_ALL = 0x001, - // bits - LOG_FILTER_HEALING = 0x002, // Healing items (0) - LOG_FILTER_ETC_AMMO = 0x004, // Etc Items(3) + Arrows (10) - LOG_FILTER_USABLE = 0x008, // Usable Items(2) + Scrolls, Lures(11) + Usable Cash Items(18) - LOG_FILTER_WEAPON = 0x010, // Weapons(4) - LOG_FILTER_ARMOR = 0x020, // Shields, Armors, Headgears, Accessories, Garments and Shoes(5) - LOG_FILTER_CARD = 0x040, // Cards(6) - LOG_FILTER_PETITEM = 0x080, // Pet Accessories(8) + Eggs(7) (well, monsters don't drop 'em but we'll use the same system for ALL logs) - LOG_FILTER_PRICE = 0x100, // Log expensive items ( >= price_log ) - LOG_FILTER_AMOUNT = 0x200, // Log large amount of items ( >= amount_log ) - LOG_FILTER_REFINE = 0x400, // Log refined items ( refine >= refine_log ) [not implemented] - LOG_FILTER_CHANCE = 0x800, // Log rare items and Emperium ( drop chance <= rare_log ) -} -e_log_filter; - -#ifdef SQL_INNODB -// database is using an InnoDB engine so do not use DELAYED -#define LOG_QUERY "INSERT" -#else -// database is using a MyISAM engine so use DELAYED -#define LOG_QUERY "INSERT DELAYED" -#endif - - /// obtain log type character for item/zeny logs -static char log_picktype2char(e_log_pick_type type) { +char log_picktype2char(e_log_pick_type type) { switch( type ) { case LOG_TYPE_TRADE: return 'T'; // (T)rade case LOG_TYPE_VENDING: return 'V'; // (V)ending @@ -78,7 +50,7 @@ static char log_picktype2char(e_log_pick_type type) { /// obtain log type character for chat logs -static char log_chattype2char(e_log_chat_type type) { +char log_chattype2char(e_log_chat_type type) { switch( type ) { case LOG_CHAT_GLOBAL: return 'O'; // Gl(O)bal case LOG_CHAT_WHISPER: return 'W'; // (W)hisper @@ -94,7 +66,7 @@ static char log_chattype2char(e_log_chat_type type) { /// check if this item should be logged according the settings -static bool should_log_item(int nameid, int amount, int refine, struct item_data *id) { +bool should_log_item(int nameid, int amount, int refine, struct item_data *id) { int filter = logs->config.filter; if( id == NULL ) @@ -119,7 +91,7 @@ static bool should_log_item(int nameid, int amount, int refine, struct item_data } void log_branch_sub_sql(struct map_session_data* sd) { SqlStmt* stmt; - stmt = SQL->StmtMalloc(logmysql_handle); + stmt = SQL->StmtMalloc(logs->mysql_handle); if( SQL_SUCCESS != SQL->StmtPrepare(stmt, LOG_QUERY " INTO `%s` (`branch_date`, `account_id`, `char_id`, `char_name`, `map`) VALUES (NOW(), '%d', '%d', ?, '%s')", logs->config.log_branch, sd->status.account_id, sd->status.char_id, mapindex_id2name(sd->mapindex) ) || SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_STRING, sd->status.name, strnlen(sd->status.name, NAME_LENGTH)) || SQL_SUCCESS != SQL->StmtExecute(stmt) ) @@ -153,13 +125,13 @@ void log_branch(struct map_session_data* sd) { logs->branch_sub(sd); } void log_pick_sub_sql(int id, int16 m, e_log_pick_type type, int amount, struct item* itm, struct item_data *data) { - if( SQL_ERROR == SQL->Query(logmysql_handle, + if( SQL_ERROR == SQL->Query(logs->mysql_handle, LOG_QUERY " INTO `%s` (`time`, `char_id`, `type`, `nameid`, `amount`, `refine`, `card0`, `card1`, `card2`, `card3`, `map`, `unique_id`) " "VALUES (NOW(), '%d', '%c', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%s', '%"PRIu64"')", - logs->config.log_pick, id, log_picktype2char(type), itm->nameid, amount, itm->refine, itm->card[0], itm->card[1], itm->card[2], itm->card[3], - maplist[m].name?maplist[m].name:"", itm->unique_id) + logs->config.log_pick, id, logs->picktype2char(type), itm->nameid, amount, itm->refine, itm->card[0], itm->card[1], itm->card[2], itm->card[3], + map->list[m].name?map->list[m].name:"", itm->unique_id) ) { - Sql_ShowDebug(logmysql_handle); + Sql_ShowDebug(logs->mysql_handle); return; } } @@ -173,8 +145,8 @@ void log_pick_sub_txt(int id, int16 m, e_log_pick_type type, int amount, struct time(&curtime); strftime(timestring, sizeof(timestring), "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %d\t%c\t%d,%d,%d,%d,%d,%d,%d,%s,'%"PRIu64"'\n", - timestring, id, log_picktype2char(type), itm->nameid, amount, itm->refine, itm->card[0], itm->card[1], itm->card[2], itm->card[3], - maplist[m].name?maplist[m].name:"", itm->unique_id); + timestring, id, logs->picktype2char(type), itm->nameid, amount, itm->refine, itm->card[0], itm->card[1], itm->card[2], itm->card[3], + map->list[m].name?map->list[m].name:"", itm->unique_id); fclose(logfp); } /// logs item transactions (generic) @@ -184,7 +156,7 @@ void log_pick(int id, int16 m, e_log_pick_type type, int amount, struct item* it return; } - if( !should_log_item(itm->nameid, amount, itm->refine, data) ) + if( !logs->should_log_item(itm->nameid, amount, itm->refine, data) ) return; //we skip logging this item set - it doesn't meet our logging conditions [Lupus] logs->pick_sub(id,m,type,amount,itm,data); @@ -203,10 +175,10 @@ void log_pick_mob(struct mob_data* md, e_log_pick_type type, int amount, struct log_pick(md->class_, md->bl.m, type, amount, itm, data ? data : itemdb->exists(itm->nameid)); } void log_zeny_sub_sql(struct map_session_data* sd, e_log_pick_type type, struct map_session_data* src_sd, int amount) { - if( SQL_ERROR == SQL->Query(logmysql_handle, LOG_QUERY " INTO `%s` (`time`, `char_id`, `src_id`, `type`, `amount`, `map`) VALUES (NOW(), '%d', '%d', '%c', '%d', '%s')", - logs->config.log_zeny, sd->status.char_id, src_sd->status.char_id, log_picktype2char(type), amount, mapindex_id2name(sd->mapindex)) ) + if( SQL_ERROR == SQL->Query(logs->mysql_handle, LOG_QUERY " INTO `%s` (`time`, `char_id`, `src_id`, `type`, `amount`, `map`) VALUES (NOW(), '%d', '%d', '%c', '%d', '%s')", + logs->config.log_zeny, sd->status.char_id, src_sd->status.char_id, logs->picktype2char(type), amount, mapindex_id2name(sd->mapindex)) ) { - Sql_ShowDebug(logmysql_handle); + Sql_ShowDebug(logs->mysql_handle); return; } } @@ -233,10 +205,10 @@ void log_zeny(struct map_session_data* sd, e_log_pick_type type, struct map_sess logs->zeny_sub(sd,type,src_sd,amount); } void log_mvpdrop_sub_sql(struct map_session_data* sd, int monster_id, int* log_mvp) { - if( SQL_ERROR == SQL->Query(logmysql_handle, LOG_QUERY " INTO `%s` (`mvp_date`, `kill_char_id`, `monster_id`, `prize`, `mvpexp`, `map`) VALUES (NOW(), '%d', '%d', '%d', '%d', '%s') ", + if( SQL_ERROR == SQL->Query(logs->mysql_handle, LOG_QUERY " INTO `%s` (`mvp_date`, `kill_char_id`, `monster_id`, `prize`, `mvpexp`, `map`) VALUES (NOW(), '%d', '%d', '%d', '%d', '%s') ", logs->config.log_mvpdrop, sd->status.char_id, monster_id, log_mvp[0], log_mvp[1], mapindex_id2name(sd->mapindex)) ) { - Sql_ShowDebug(logmysql_handle); + Sql_ShowDebug(logs->mysql_handle); return; } } @@ -266,7 +238,7 @@ void log_mvpdrop(struct map_session_data* sd, int monster_id, int* log_mvp) void log_atcommand_sub_sql(struct map_session_data* sd, const char* message) { SqlStmt* stmt; - stmt = SQL->StmtMalloc(logmysql_handle); + stmt = SQL->StmtMalloc(logs->mysql_handle); if( SQL_SUCCESS != SQL->StmtPrepare(stmt, LOG_QUERY " INTO `%s` (`atcommand_date`, `account_id`, `char_id`, `char_name`, `map`, `command`) VALUES (NOW(), '%d', '%d', ?, '%s', ?)", logs->config.log_gm, sd->status.account_id, sd->status.char_id, mapindex_id2name(sd->mapindex) ) || SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_STRING, sd->status.name, strnlen(sd->status.name, NAME_LENGTH)) || SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_STRING, (char*)message, safestrnlen(message, 255)) @@ -304,7 +276,7 @@ void log_atcommand(struct map_session_data* sd, const char* message) void log_npc_sub_sql(struct map_session_data *sd, const char *message) { SqlStmt* stmt; - stmt = SQL->StmtMalloc(logmysql_handle); + stmt = SQL->StmtMalloc(logs->mysql_handle); if( SQL_SUCCESS != SQL->StmtPrepare(stmt, LOG_QUERY " INTO `%s` (`npc_date`, `account_id`, `char_id`, `char_name`, `map`, `mes`) VALUES (NOW(), '%d', '%d', ?, '%s', ?)", logs->config.log_npc, sd->status.account_id, sd->status.char_id, mapindex_id2name(sd->mapindex) ) || SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_STRING, sd->status.name, strnlen(sd->status.name, NAME_LENGTH)) || SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_STRING, (char*)message, safestrnlen(message, 255)) @@ -342,8 +314,8 @@ void log_npc(struct map_session_data* sd, const char* message) void log_chat_sub_sql(e_log_chat_type type, int type_id, int src_charid, int src_accid, const char *mapname, int x, int y, const char* dst_charname, const char* message) { SqlStmt* stmt; - stmt = SQL->StmtMalloc(logmysql_handle); - if( SQL_SUCCESS != SQL->StmtPrepare(stmt, LOG_QUERY " INTO `%s` (`time`, `type`, `type_id`, `src_charid`, `src_accountid`, `src_map`, `src_map_x`, `src_map_y`, `dst_charname`, `message`) VALUES (NOW(), '%c', '%d', '%d', '%d', '%s', '%d', '%d', ?, ?)", logs->config.log_chat, log_chattype2char(type), type_id, src_charid, src_accid, mapname, x, y) + stmt = SQL->StmtMalloc(logs->mysql_handle); + if( SQL_SUCCESS != SQL->StmtPrepare(stmt, LOG_QUERY " INTO `%s` (`time`, `type`, `type_id`, `src_charid`, `src_accountid`, `src_map`, `src_map_x`, `src_map_y`, `dst_charname`, `message`) VALUES (NOW(), '%c', '%d', '%d', '%d', '%s', '%d', '%d', ?, ?)", logs->config.log_chat, logs->chattype2char(type), type_id, src_charid, src_accid, mapname, x, y) || SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_STRING, (char*)dst_charname, safestrnlen(dst_charname, NAME_LENGTH)) || SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_STRING, (char*)message, safestrnlen(message, CHAT_SIZE_MAX)) || SQL_SUCCESS != SQL->StmtExecute(stmt) @@ -363,7 +335,7 @@ void log_chat_sub_txt(e_log_chat_type type, int type_id, int src_charid, int src return; time(&curtime); strftime(timestring, sizeof(timestring), "%m/%d/%Y %H:%M:%S", localtime(&curtime)); - fprintf(logfp, "%s - %c,%d,%d,%d,%s,%d,%d,%s,%s\n", timestring, log_chattype2char(type), type_id, src_charid, src_accid, mapname, x, y, dst_charname, message); + fprintf(logfp, "%s - %c,%d,%d,%d,%s,%d,%d,%s,%s\n", timestring, logs->chattype2char(type), type_id, src_charid, src_accid, mapname, x, y, dst_charname, message); fclose(logfp); } @@ -382,6 +354,24 @@ void log_chat(e_log_chat_type type, int type_id, int src_charid, int src_accid, logs->chat_sub(type,type_id,src_charid,src_accid,mapname,x,y,dst_charname,message); } +void log_sql_init(void) { + // log db connection + logs->mysql_handle = SQL->Malloc(); + + ShowInfo(""CL_WHITE"[SQL]"CL_RESET": Connecting to the Log Database "CL_WHITE"%s"CL_RESET" At "CL_WHITE"%s"CL_RESET"...\n",logs->db_name,logs->db_ip); + if ( SQL_ERROR == SQL->Connect(logs->mysql_handle, logs->db_id, logs->db_pw, logs->db_ip, logs->db_port, logs->db_name) ) + exit(EXIT_FAILURE); + ShowStatus(""CL_WHITE"[SQL]"CL_RESET": Successfully '"CL_GREEN"connected"CL_RESET"' to Database '"CL_WHITE"%s"CL_RESET"'.\n", logs->db_name); + + if( strlen(map->default_codepage) > 0 ) + if ( SQL_ERROR == SQL->SetEncoding(logs->mysql_handle, map->default_codepage) ) + Sql_ShowDebug(logs->mysql_handle); +} +void log_sql_final(void) { + ShowStatus("Close Log DB Connection....\n"); + SQL->Free(logs->mysql_handle); + logs->mysql_handle = NULL; +} void log_set_defaults(void) { memset(&logs->config, 0, sizeof(logs->config)); @@ -509,6 +499,15 @@ void log_config_complete(void) { void log_defaults(void) { logs = &log_s; + sprintf(logs->db_ip,"127.0.0.1"); + sprintf(logs->db_id,"ragnarok"); + sprintf(logs->db_pw,"ragnarok"); + sprintf(logs->db_name,"log"); + + logs->db_port = 3306; + logs->mysql_handle = NULL; + /* */ + logs->pick_pc = log_pick_pc; logs->pick_mob = log_pick_mob; logs->zeny = log_zeny; @@ -529,5 +528,10 @@ void log_defaults(void) { logs->config_read = log_config_read; logs->config_done = log_config_complete; + logs->sql_init = log_sql_init; + logs->sql_final = log_sql_final; + logs->picktype2char = log_picktype2char; + logs->chattype2char = log_chattype2char; + logs->should_log_item = should_log_item; } diff --git a/src/map/log.h b/src/map/log.h index 1da1696ab..07606c8ef 100644 --- a/src/map/log.h +++ b/src/map/log.h @@ -5,13 +5,32 @@ #ifndef _LOG_H_ #define _LOG_H_ +#include "../common/cbasetypes.h" +#include "../common/sql.h" + +/** + * Declarations + **/ struct block_list; struct map_session_data; struct mob_data; struct item; struct item_data; +/** + * Defines + **/ +#ifdef SQL_INNODB +// database is using an InnoDB engine so do not use DELAYED + #define LOG_QUERY "INSERT" +#else +// database is using a MyISAM engine so use DELAYED + #define LOG_QUERY "INSERT DELAYED" +#endif +/** + * Enumerations + **/ typedef enum e_log_chat_type { LOG_CHAT_GLOBAL = 0x01, LOG_CHAT_WHISPER = 0x02, @@ -22,7 +41,6 @@ typedef enum e_log_chat_type { LOG_CHAT_ALL = 0xFF, } e_log_chat_type; - typedef enum e_log_pick_type { LOG_TYPE_NONE = 0, LOG_TYPE_TRADE = 0x00001, @@ -48,6 +66,24 @@ typedef enum e_log_pick_type { LOG_TYPE_ALL = 0xFFFFF, } e_log_pick_type; +/// filters for item logging +typedef enum e_log_filter { + LOG_FILTER_NONE = 0x000, + LOG_FILTER_ALL = 0x001, + // bits + LOG_FILTER_HEALING = 0x002, // Healing items (0) + LOG_FILTER_ETC_AMMO = 0x004, // Etc Items(3) + Arrows (10) + LOG_FILTER_USABLE = 0x008, // Usable Items(2) + Scrolls, Lures(11) + Usable Cash Items(18) + LOG_FILTER_WEAPON = 0x010, // Weapons(4) + LOG_FILTER_ARMOR = 0x020, // Shields, Armors, Headgears, Accessories, Garments and Shoes(5) + LOG_FILTER_CARD = 0x040, // Cards(6) + LOG_FILTER_PETITEM = 0x080, // Pet Accessories(8) + Eggs(7) (well, monsters don't drop 'em but we'll use the same system for ALL logs) + LOG_FILTER_PRICE = 0x100, // Log expensive items ( >= price_log ) + LOG_FILTER_AMOUNT = 0x200, // Log large amount of items ( >= amount_log ) + LOG_FILTER_REFINE = 0x400, // Log refined items ( refine >= refine_log ) [not implemented] + LOG_FILTER_CHANCE = 0x800, // Log rare items and Emperium ( drop chance <= rare_log ) +} e_log_filter; + struct log_interface { struct { e_log_pick_type enable_logs; @@ -59,6 +95,13 @@ struct log_interface { char log_branch[64], log_pick[64], log_zeny[64], log_mvpdrop[64], log_gm[64], log_npc[64], log_chat[64]; } config; /* */ + char db_ip[32]; + int db_port; + char db_id[32]; + char db_pw[32]; + char db_name[32]; + Sql* mysql_handle; + /* */ void (*pick_pc) (struct map_session_data* sd, e_log_pick_type type, int amount, struct item* itm, struct item_data *data); void (*pick_mob) (struct mob_data* md, e_log_pick_type type, int amount, struct item* itm, struct item_data *data); void (*zeny) (struct map_session_data* sd, e_log_pick_type type, struct map_session_data* src_sd, int amount); @@ -78,6 +121,12 @@ struct log_interface { int (*config_read) (const char* cfgName); void (*config_done) (void); + void (*sql_init) (void); + void (*sql_final) (void); + + char (*picktype2char) (e_log_pick_type type); + char (*chattype2char) (e_log_chat_type type); + bool (*should_log_item) (int nameid, int amount, int refine, struct item_data *id); }; struct log_interface *logs; diff --git a/src/map/mail.c b/src/map/mail.c index ea8bda003..2378cbe2a 100644 --- a/src/map/mail.c +++ b/src/map/mail.c @@ -177,7 +177,7 @@ void mail_deliveryfail(struct map_session_data *sd, struct mail_message *msg) // This function only check if the mail operations are valid bool mail_invalid_operation(struct map_session_data *sd) { - if( !maplist[sd->bl.m].flag.town && !pc->can_use_command(sd, "@mail") ) { + if( !map->list[sd->bl.m].flag.town && !pc->can_use_command(sd, "@mail") ) { ShowWarning("clif->parse_Mail: char '%s' trying to do invalid mail operations.\n", sd->status.name); return true; } diff --git a/src/map/map.c b/src/map/map.c index 09defc75a..d920875ee 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -62,197 +62,112 @@ #include <unistd.h> #endif -char default_codepage[32] = ""; - -int map_server_port = 3306; -char map_server_ip[32] = "127.0.0.1"; -char map_server_id[32] = "ragnarok"; -char map_server_pw[32] = "ragnarok"; -char map_server_db[32] = "ragnarok"; -Sql* mmysql_handle; - -int map_port=0; - -// log database -char log_db_ip[32] = "127.0.0.1"; -int log_db_port = 3306; -char log_db_id[32] = "ragnarok"; -char log_db_pw[32] = "ragnarok"; -char log_db_db[32] = "log"; -Sql* logmysql_handle; - -// DBMap declaration -static DBMap* id_db=NULL; // int id -> struct block_list* -static DBMap* pc_db=NULL; // int id -> struct map_session_data* -static DBMap* mobid_db=NULL; // int id -> struct mob_data* -static DBMap* bossid_db=NULL; // int id -> struct mob_data* (MVP db) -static DBMap* map_db=NULL; // unsigned int mapindex -> struct map_data_other_server* -static DBMap* nick_db=NULL; // int char_id -> struct charid2nick* (requested names of offline characters) -static DBMap* charid_db=NULL; // int char_id -> struct map_session_data* -static DBMap* regen_db=NULL; // int id -> struct block_list* (status_natural_heal processing) - -static int map_users=0; - -#define BLOCK_SIZE 8 -#define block_free_max 1048576 -struct block_list *block_free[block_free_max]; -static int block_free_count = 0, block_free_lock = 0; - -#define BL_LIST_MAX 1048576 -static struct block_list *bl_list[BL_LIST_MAX]; -static int bl_list_count = 0; - -struct charid_request { - struct charid_request* next; - int charid;// who want to be notified of the nick -}; -struct charid2nick { - char nick[NAME_LENGTH]; - struct charid_request* requests;// requests of notification on this nick -}; - -// This is the main header found at the very beginning of the map cache -struct map_cache_main_header { - uint32 file_size; - uint16 map_count; -}; - -// This is the header appended before every compressed map cells info in the map cache -struct map_cache_map_info { - char name[MAP_NAME_LENGTH]; - int16 xs; - int16 ys; - int32 len; -}; - -int16 index2mapid[MAX_MAPINDEX]; - -int enable_grf = 0; //To enable/disable reading maps from GRF files, bypassing mapcache [blackhole89] - -/* [Ind/Hercules] */ -struct eri *map_iterator_ers; -char *map_cache_buffer = NULL; // Has the uncompressed gat data of all maps, so just one allocation has to be made - struct map_interface map_s; - -struct map_session_data *cpsd; +struct mapit_interface mapit_s; /*========================================== -* server player count (of all mapservers) -*------------------------------------------*/ -void map_setusers(int users) -{ - map_users = users; + * server player count (of all mapservers) + *------------------------------------------*/ +void map_setusers(int users) { + map->users = users; } -int map_getusers(void) -{ - return map_users; +int map_getusers(void) { + return map->users; } /*========================================== -* server player count (this mapserver only) -*------------------------------------------*/ -int map_usercount(void) -{ - return pc_db->size(pc_db); + * server player count (this mapserver only) + *------------------------------------------*/ +int map_usercount(void) { + return db_size(map->pc_db); } - /*========================================== -* Attempt to free a map blocklist -*------------------------------------------*/ -int map_freeblock (struct block_list *bl) -{ - nullpo_retr(block_free_lock, bl); - if (block_free_lock == 0 || block_free_count >= block_free_max) - { + * Attempt to free a map blocklist + *------------------------------------------*/ +int map_freeblock (struct block_list *bl) { + nullpo_retr(map->block_free_lock, bl); + if (map->block_free_lock == 0 || map->block_free_count >= block_free_max) { aFree(bl); bl = NULL; - if (block_free_count >= block_free_max) - ShowWarning("map_freeblock: too many free block! %d %d\n", block_free_count, block_free_lock); + if (map->block_free_count >= block_free_max) + ShowWarning("map_freeblock: too many free block! %d %d\n", map->block_free_count, map->block_free_lock); } else - block_free[block_free_count++] = bl; + map->block_free[map->block_free_count++] = bl; - return block_free_lock; + return map->block_free_lock; } /*========================================== -* Lock blocklist, (prevent map->freeblock usage) -*------------------------------------------*/ -int map_freeblock_lock (void) -{ - return ++block_free_lock; + * Lock blocklist, (prevent map->freeblock usage) + *------------------------------------------*/ +int map_freeblock_lock (void) { + return ++map->block_free_lock; } /*========================================== -* Remove the lock on map_bl -*------------------------------------------*/ -int map_freeblock_unlock (void) -{ - if ((--block_free_lock) == 0) { + * Remove the lock on map_bl + *------------------------------------------*/ +int map_freeblock_unlock (void) { + if ((--map->block_free_lock) == 0) { int i; - for (i = 0; i < block_free_count; i++) + for (i = 0; i < map->block_free_count; i++) { - aFree(block_free[i]); - block_free[i] = NULL; + aFree(map->block_free[i]); + map->block_free[i] = NULL; } - block_free_count = 0; - } else if (block_free_lock < 0) { + map->block_free_count = 0; + } else if (map->block_free_lock < 0) { ShowError("map_freeblock_unlock: lock count < 0 !\n"); - block_free_lock = 0; + map->block_free_lock = 0; } - return block_free_lock; + return map->block_free_lock; } // Timer function to check if there some remaining lock and remove them if so. // Called each 1s int map_freeblock_timer(int tid, unsigned int tick, int id, intptr_t data) { - if (block_free_lock > 0) { - ShowError("map_freeblock_timer: block_free_lock(%d) is invalid.\n", block_free_lock); - block_free_lock = 1; + if (map->block_free_lock > 0) { + ShowError("map_freeblock_timer: block_free_lock(%d) is invalid.\n", map->block_free_lock); + map->block_free_lock = 1; map->freeblock_unlock(); } return 0; } -// -// blocklist -// /*========================================== -* Handling of map_bl[] -* The adresse of bl_heal is set in bl->prev -*------------------------------------------*/ -static struct block_list bl_head; - + * These pair of functions update the counter of how many objects + * lie on a tile. + *------------------------------------------*/ +void map_addblcell(struct block_list *bl) { #ifdef CELL_NOSTACK -/*========================================== -* These pair of functions update the counter of how many objects -* lie on a tile. -*------------------------------------------*/ -static void map_addblcell(struct block_list *bl) { - if( bl->m < 0 || bl->x < 0 || bl->x >= maplist[bl->m].xs - || bl->y < 0 || bl->y >= maplist[bl->m].ys + if( bl->m < 0 || bl->x < 0 || bl->x >= map->list[bl->m].xs + || bl->y < 0 || bl->y >= map->list[bl->m].ys || !(bl->type&BL_CHAR) ) return; - maplist[bl->m].cell[bl->x+bl->y*maplist[bl->m].xs].cell_bl++; + map->list[bl->m].cell[bl->x+bl->y*map->list[bl->m].xs].cell_bl++; +#else return; +#endif } -static void map_delblcell(struct block_list *bl) { - if( bl->m < 0 || bl->x < 0 || bl->x >= maplist[bl->m].xs - || bl->y < 0 || bl->y >= maplist[bl->m].ys +void map_delblcell(struct block_list *bl) { +#ifdef CELL_NOSTACK + if( bl->m < 0 || bl->x < 0 || bl->x >= map->list[bl->m].xs + || bl->y < 0 || bl->y >= map->list[bl->m].ys || !(bl->type&BL_CHAR) ) - return; - maplist[bl->m].cell[bl->x+bl->y*maplist[bl->m].xs].cell_bl--; -} + map->list[bl->m].cell[bl->x+bl->y*map->list[bl->m].xs].cell_bl--; +#else + return; #endif +} /*========================================== -* Adds a block to the map. -* Returns 0 on success, 1 on failure (illegal coordinates). -*------------------------------------------*/ + * Adds a block to the map. + * Returns 0 on success, 1 on failure (illegal coordinates). + *------------------------------------------*/ int map_addblock(struct block_list* bl) { int16 m, x, y; @@ -268,39 +183,39 @@ int map_addblock(struct block_list* bl) m = bl->m; x = bl->x; y = bl->y; - if( m < 0 || m >= map->map_num ) { - ShowError("map_addblock: invalid map id (%d), only %d are loaded.\n", m, map->map_num); + if( m < 0 || m >= map->count ) { + ShowError("map_addblock: invalid map id (%d), only %d are loaded.\n", m, map->count); return 1; } - if( x < 0 || x >= maplist[m].xs || y < 0 || y >= maplist[m].ys ) { - ShowError("map_addblock: out-of-bounds coordinates (\"%s\",%d,%d), map is %dx%d\n", maplist[m].name, x, y, maplist[m].xs, maplist[m].ys); + if( x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys ) { + ShowError("map_addblock: out-of-bounds coordinates (\"%s\",%d,%d), map is %dx%d\n", map->list[m].name, x, y, map->list[m].xs, map->list[m].ys); return 1; } - pos = x/BLOCK_SIZE+(y/BLOCK_SIZE)*maplist[m].bxs; + pos = x/BLOCK_SIZE+(y/BLOCK_SIZE)*map->list[m].bxs; if (bl->type == BL_MOB) { - bl->next = maplist[m].block_mob[pos]; - bl->prev = &bl_head; + bl->next = map->list[m].block_mob[pos]; + bl->prev = &map->bl_head; if (bl->next) bl->next->prev = bl; - maplist[m].block_mob[pos] = bl; + map->list[m].block_mob[pos] = bl; } else { - bl->next = maplist[m].block[pos]; - bl->prev = &bl_head; + bl->next = map->list[m].block[pos]; + bl->prev = &map->bl_head; if (bl->next) bl->next->prev = bl; - maplist[m].block[pos] = bl; + map->list[m].block[pos] = bl; } #ifdef CELL_NOSTACK - map_addblcell(bl); + map->addblcell(bl); #endif return 0; } /*========================================== -* Removes a block from the map. -*------------------------------------------*/ + * Removes a block from the map. + *------------------------------------------*/ int map_delblock(struct block_list* bl) { int pos; @@ -316,19 +231,19 @@ int map_delblock(struct block_list* bl) } #ifdef CELL_NOSTACK - map_delblcell(bl); + map->delblcell(bl); #endif - pos = bl->x/BLOCK_SIZE+(bl->y/BLOCK_SIZE)*maplist[bl->m].bxs; + pos = bl->x/BLOCK_SIZE+(bl->y/BLOCK_SIZE)*map->list[bl->m].bxs; if (bl->next) bl->next->prev = bl->prev; - if (bl->prev == &bl_head) { + if (bl->prev == &map->bl_head) { //Since the head of the list, update the block_list map of [] if (bl->type == BL_MOB) { - maplist[bl->m].block_mob[pos] = bl->next; + map->list[bl->m].block_mob[pos] = bl->next; } else { - maplist[bl->m].block[pos] = bl->next; + map->list[bl->m].block[pos] = bl->next; } } else { bl->prev->next = bl->next; @@ -340,10 +255,10 @@ int map_delblock(struct block_list* bl) } /*========================================== -* Moves a block a x/y target position. [Skotlex] -* Pass flag as 1 to prevent doing skill->unit_move checks -* (which are executed by default on BL_CHAR types) -*------------------------------------------*/ + * Moves a block a x/y target position. [Skotlex] + * Pass flag as 1 to prevent doing skill->unit_move checks + * (which are executed by default on BL_CHAR types) + *------------------------------------------*/ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) { int x0 = bl->x, y0 = bl->y; @@ -375,13 +290,13 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) if (moveblock) map->delblock(bl); #ifdef CELL_NOSTACK - else map_delblcell(bl); + else map->delblcell(bl); #endif bl->x = x1; bl->y = y1; if (moveblock) map->addblock(bl); #ifdef CELL_NOSTACK - else map_addblcell(bl); + else map->addblcell(bl); #endif if (bl->type&BL_CHAR) { @@ -449,49 +364,49 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) } /*========================================== -* Counts specified number of objects on given cell. -* TODO: merge with bl_getall_area -*------------------------------------------*/ + * Counts specified number of objects on given cell. + * TODO: merge with bl_getall_area + *------------------------------------------*/ int map_count_oncell(int16 m, int16 x, int16 y, int type) { int bx,by; struct block_list *bl; int count = 0; - if (x < 0 || y < 0 || (x >= maplist[m].xs) || (y >= maplist[m].ys)) + if (x < 0 || y < 0 || (x >= map->list[m].xs) || (y >= map->list[m].ys)) return 0; bx = x/BLOCK_SIZE; by = y/BLOCK_SIZE; if (type&~BL_MOB) - for( bl = maplist[m].block[bx+by*maplist[m].bxs] ; bl != NULL ; bl = bl->next ) + for( bl = map->list[m].block[bx+by*map->list[m].bxs] ; bl != NULL ; bl = bl->next ) if(bl->x == x && bl->y == y && bl->type&type) count++; if (type&BL_MOB) - for( bl = maplist[m].block_mob[bx+by*maplist[m].bxs] ; bl != NULL ; bl = bl->next ) + for( bl = map->list[m].block_mob[bx+by*map->list[m].bxs] ; bl != NULL ; bl = bl->next ) if(bl->x == x && bl->y == y) count++; return count; } /* -* Looks for a skill unit on a given cell -* flag&1: runs battle_check_target check based on unit->group->target_flag -*/ + * Looks for a skill unit on a given cell + * flag&1: runs battle_check_target check based on unit->group->target_flag + */ struct skill_unit* map_find_skill_unit_oncell(struct block_list* target,int16 x,int16 y,uint16 skill_id,struct skill_unit* out_unit, int flag) { int16 m,bx,by; struct block_list *bl; struct skill_unit *su; m = target->m; - if (x < 0 || y < 0 || (x >= maplist[m].xs) || (y >= maplist[m].ys)) + if (x < 0 || y < 0 || (x >= map->list[m].xs) || (y >= map->list[m].ys)) return NULL; bx = x/BLOCK_SIZE; by = y/BLOCK_SIZE; - for( bl = maplist[m].block[bx+by*maplist[m].bxs] ; bl != NULL ; bl = bl->next ) { + for( bl = map->list[m].block[bx+by*map->list[m].bxs] ; bl != NULL ; bl = bl->next ) { if (bl->x != x || bl->y != y || bl->type != BL_SKILL) continue; @@ -523,17 +438,17 @@ static int bl_vforeach(int (*func)(struct block_list*, va_list), int blockcount, int returnCount = 0; map->freeblock_lock(); - for (i = blockcount; i < bl_list_count && returnCount < max; i++) { - if (bl_list[i]->prev) { //func() may delete this bl_list[] slot, checking for prev ensures it wasnt queued for deletion. + for (i = blockcount; i < map->bl_list_count && returnCount < max; i++) { + if (map->bl_list[i]->prev) { //func() may delete this bl_list[] slot, checking for prev ensures it wasnt queued for deletion. va_list argscopy; va_copy(argscopy, args); - returnCount += func(bl_list[i], argscopy); + returnCount += func(map->bl_list[i], argscopy); va_end(argscopy); } } map->freeblock_unlock(); - bl_list_count = blockcount; + map->bl_list_count = blockcount; return returnCount; } @@ -553,30 +468,30 @@ static int map_vforeachinmap(int (*func)(struct block_list*, va_list), int16 m, int bsize; va_list argscopy; struct block_list *bl; - int blockcount = bl_list_count; + int blockcount = map->bl_list_count; if (m < 0) return 0; - bsize = maplist[m].bxs * maplist[m].bys; + bsize = map->list[m].bxs * map->list[m].bys; for (i = 0; i < bsize; i++) { if (type&~BL_MOB) { - for (bl = maplist[m].block[i]; bl != NULL; bl = bl->next) { - if (bl->type&type && bl_list_count < BL_LIST_MAX) { - bl_list[bl_list_count++] = bl; + for (bl = map->list[m].block[i]; bl != NULL; bl = bl->next) { + if (bl->type&type && map->bl_list_count < BL_LIST_MAX) { + map->bl_list[map->bl_list_count++] = bl; } } } if (type&BL_MOB) { - for (bl = maplist[m].block_mob[i]; bl != NULL; bl = bl->next) { - if (bl_list_count < BL_LIST_MAX) { - bl_list[bl_list_count++] = bl; + for (bl = map->list[m].block_mob[i]; bl != NULL; bl = bl->next) { + if (map->bl_list_count < BL_LIST_MAX) { + map->bl_list[map->bl_list_count++] = bl; } } } } - if (bl_list_count >= BL_LIST_MAX) + if (map->bl_list_count >= BL_LIST_MAX) ShowError("map.c:map_vforeachinmap: bl_list size (%d) exceeded\n", BL_LIST_MAX); va_copy(argscopy, args); @@ -596,13 +511,12 @@ static int map_vforeachinmap(int (*func)(struct block_list*, va_list), int16 m, * @param ... Extra arguments for func * @return Sum of the values returned by func */ -int map_foreachinmap(int (*func)(struct block_list*, va_list), int16 m, int type, ...) -{ - int returnCount = 0; +int map_foreachinmap(int (*func)(struct block_list*, va_list), int16 m, int type, ...) { + int returnCount; va_list ap; va_start(ap, type); - returnCount = map_vforeachinmap(func, m, type, ap); + returnCount = map->vforeachinmap(func, m, type, ap); va_end(ap); return returnCount; @@ -616,26 +530,47 @@ int map_foreachinmap(int (*func)(struct block_list*, va_list), int16 m, int type * @param func Function to be applied * @param m Map id * @param type enum bl_type - * @param ... Extra arguments for func + * @param ap Extra arguments for func * @return Sum of the values returned by func */ -int map_foreachininstance(int (*func)(struct block_list*, va_list), int16 instance_id, int type, ...) -{ +int map_vforeachininstance(int (*func)(struct block_list*, va_list), int16 instance_id, int type, va_list ap) { int i; int returnCount = 0; - for (i = 0; i < instances[instance_id].num_map; i++) { - int m = instances[instance_id].map[i]; - va_list ap; - va_start(ap, type); - returnCount += map_vforeachinmap(func, m, type, ap); - va_end(ap); + for (i = 0; i < instance->list[instance_id].num_map; i++) { + int m = instance->list[instance_id].map[i]; + va_list apcopy; + va_copy(apcopy, ap); + returnCount += map->vforeachinmap(func, m, type, apcopy); + va_end(apcopy); } return returnCount; } /** + * Applies func to every block_list object of bl_type type on all maps + * of instance instance_id. + * Returns the sum of values returned by func. + * @see map_vforeachininstance. + * @param func Function to be applied + * @param m Map id + * @param type enum bl_type + * @param ... Extra arguments for func + * @return Sum of the values returned by func + */ +int map_foreachininstance(int (*func)(struct block_list*, va_list), int16 instance_id, int type, ...) { + int returnCount; + va_list ap; + + va_start(ap, type); + returnCount = map->vforeachininstance(func, instance_id, type, ap); + va_end(ap); + + return returnCount; +} + +/** * Retrieves all map objects in area that are matched by the type * and func. Appends them at the end of global bl_list array. * @param type Matching enum bl_type @@ -659,48 +594,48 @@ static int bl_getall_area(int type, int m, int x0, int y0, int x1, int y1, int ( // Limit search area to map size x0 = max(x0, 0); y0 = max(y0, 0); - x1 = min(x1, maplist[m].xs - 1); - y1 = min(y1, maplist[m].ys - 1); + x1 = min(x1, map->list[m].xs - 1); + y1 = min(y1, map->list[m].ys - 1); for (by = y0 / BLOCK_SIZE; by <= y1 / BLOCK_SIZE; by++) { for (bx = x0 / BLOCK_SIZE; bx <= x1 / BLOCK_SIZE; bx++) { if (type&~BL_MOB) { - for (bl = maplist[m].block[bx + by * maplist[m].bxs]; bl != NULL; bl = bl->next) { - if (bl_list_count < BL_LIST_MAX + for (bl = map->list[m].block[bx + by * map->list[m].bxs]; bl != NULL; bl = bl->next) { + if (map->bl_list_count < BL_LIST_MAX && bl->type&type && bl->x >= x0 && bl->x <= x1 && bl->y >= y0 && bl->y <= y1) { if (func) { va_start(args, func); if (func(bl, args)) { - bl_list[bl_list_count++] = bl; + map->bl_list[map->bl_list_count++] = bl; found++; } va_end(args); } else { - bl_list[bl_list_count++] = bl; + map->bl_list[map->bl_list_count++] = bl; found++; } } } } if (type&BL_MOB) { // TODO: fix this code duplication - for (bl = maplist[m].block_mob[bx + by * maplist[m].bxs]; bl != NULL; bl = bl->next) { - if (bl_list_count < BL_LIST_MAX + for (bl = map->list[m].block_mob[bx + by * map->list[m].bxs]; bl != NULL; bl = bl->next) { + if (map->bl_list_count < BL_LIST_MAX //&& bl->type&type // block_mob contains BL_MOBs only && bl->x >= x0 && bl->x <= x1 && bl->y >= y0 && bl->y <= y1) { if (func) { va_start(args, func); if (func(bl, args)) { - bl_list[bl_list_count++] = bl; + map->bl_list[map->bl_list_count++] = bl; found++; } va_end(args); } else { - bl_list[bl_list_count++] = bl; + map->bl_list[map->bl_list_count++] = bl; found++; } } @@ -709,7 +644,7 @@ static int bl_getall_area(int type, int m, int x0, int y0, int x1, int y1, int ( } } - if (bl_list_count >= BL_LIST_MAX) + if (map->bl_list_count >= BL_LIST_MAX) ShowError("map.c:bl_getall_area: bl_list size (%d) exceeded\n", BL_LIST_MAX); return found; @@ -740,21 +675,43 @@ static int bl_vgetall_inrange(struct block_list *bl, va_list args) * @param center Center of the selection area * @param range Range in cells from center * @param type enum bl_type - * @param ... Extra arguments for func + * @param ap Extra arguments for func * @return Sum of the values returned by func */ -int map_foreachinrange(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int type, ...) -{ +int map_vforeachinrange(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int type, va_list ap) { int returnCount = 0; - int blockcount = bl_list_count; - va_list ap; + int blockcount = map->bl_list_count; + va_list apcopy; if (range < 0) range *= -1; bl_getall_area(type, center->m, center->x - range, center->y - range, center->x + range, center->y + range, bl_vgetall_inrange, center, range); + va_copy(apcopy, ap); + returnCount = bl_vforeach(func, blockcount, INT_MAX, apcopy); + va_end(ap); + + return returnCount; +} + +/** + * Applies func to every block_list object of bl_type type within range cells from center. + * Area is rectangular, unless CIRCULAR_AREA is defined. + * Returns the sum of values returned by func. + * @see map_vforeachinrange + * @param func Function to be applied + * @param center Center of the selection area + * @param range Range in cells from center + * @param type enum bl_type + * @param ... Extra arguments for func + * @return Sum of the values returned by func + */ +int map_foreachinrange(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int type, ...) { + int returnCount; + va_list ap; + va_start(ap, type); - returnCount = bl_vforeach(func, blockcount, INT_MAX, ap); + returnCount = map->vforeachinrange(func, center, range, type, ap); va_end(ap); return returnCount; @@ -770,21 +727,45 @@ int map_foreachinrange(int (*func)(struct block_list*, va_list), struct block_li * @param range Range in cells from center * @param count Maximum sum of values returned by func (usually max number of func calls) * @param type enum bl_type - * @param ... Extra arguments for func + * @param ap Extra arguments for func * @return Sum of the values returned by func */ -int map_forcountinrange(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int count, int type, ...) -{ +int map_vforcountinrange(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int count, int type, va_list ap) { int returnCount = 0; - int blockcount = bl_list_count; - va_list ap; + int blockcount = map->bl_list_count; + va_list apcopy; if (range < 0) range *= -1; bl_getall_area(type, center->m, center->x - range, center->y - range, center->x + range, center->y + range, bl_vgetall_inrange, center, range); + va_copy(apcopy, ap); + returnCount = bl_vforeach(func, blockcount, count, apcopy); + va_end(apcopy); + + return returnCount; +} + +/** + * Applies func to some block_list objects of bl_type type within range cells from center. + * Limit is set by count parameter. + * Area is rectangular, unless CIRCULAR_AREA is defined. + * Returns the sum of values returned by func. + * @see map_vforcountinrange + * @param func Function to be applied + * @param center Center of the selection area + * @param range Range in cells from center + * @param count Maximum sum of values returned by func (usually max number of func calls) + * @param type enum bl_type + * @param ... Extra arguments for func + * @return Sum of the values returned by func + */ +int map_forcountinrange(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int count, int type, ...) { + int returnCount; + va_list ap; + va_start(ap, type); - returnCount = bl_vforeach(func, blockcount, count, ap); + returnCount = map->vforcountinrange(func, center, range, count, type, ap); va_end(ap); return returnCount; @@ -819,21 +800,43 @@ static int bl_vgetall_inshootrange(struct block_list *bl, va_list args) * @param center Center of the selection area * @param range Range in cells from center * @param type enum bl_type - * @param ... Extra arguments for func + * @param ap Extra arguments for func * @return Sum of the values returned by func */ -int map_foreachinshootrange(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int type, ...) -{ +int map_vforeachinshootrange(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int type, va_list ap) { int returnCount = 0; - int blockcount = bl_list_count; - va_list ap; + int blockcount = map->bl_list_count; + va_list apcopy; if (range < 0) range *= -1; bl_getall_area(type, center->m, center->x - range, center->y - range, center->x + range, center->y + range, bl_vgetall_inshootrange, center, range); - va_start(ap, type); + va_copy(apcopy, ap); returnCount = bl_vforeach(func, blockcount, INT_MAX, ap); + va_end(apcopy); + + return returnCount; +} + +/** + * Applies func to every block_list object of bl_type type within shootable range from center. + * There must be a shootable path between bl and center. + * Area is rectangular, unless CIRCULAR_AREA is defined. + * Returns the sum of values returned by func. + * @param func Function to be applied + * @param center Center of the selection area + * @param range Range in cells from center + * @param type enum bl_type + * @param ... Extra arguments for func + * @return Sum of the values returned by func + */ +int map_foreachinshootrange(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int type, ...) { + int returnCount; + va_list ap; + + va_start(ap, type); + returnCount = map->vforeachinshootrange(func, center, range, type, ap); va_end(ap); return returnCount; @@ -850,19 +853,44 @@ int map_foreachinshootrange(int (*func)(struct block_list*, va_list), struct blo * @param x1 Ending X-coordinate * @param y1 Ending Y-coordinate * @param type enum bl_type - * @param ... Extra arguments for func + * @param ap Extra arguments for func * @return Sum of the values returned by func */ -int map_foreachinarea(int (*func)(struct block_list*, va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int type, ...) -{ +int map_vforeachinarea(int (*func)(struct block_list*, va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int type, va_list ap) { int returnCount = 0; - int blockcount = bl_list_count; - va_list ap; + int blockcount = map->bl_list_count; + va_list apcopy; bl_getall_area(type, m, x0, y0, x1, y1, NULL); + va_copy(apcopy, ap); + returnCount = bl_vforeach(func, blockcount, INT_MAX, apcopy); + va_end(apcopy); + + return returnCount; +} + +/** + * Applies func to every block_list object of bl_type type in + * rectangular area (x0,y0)~(x1,y1) on map m. + * Returns the sum of values returned by func. + * @see map_vforeachinarea + * @param func Function to be applied + * @param m Map id + * @param x0 Starting X-coordinate + * @param y0 Starting Y-coordinate + * @param x1 Ending X-coordinate + * @param y1 Ending Y-coordinate + * @param type enum bl_type + * @param ... Extra arguments for func + * @return Sum of the values returned by func + */ +int map_foreachinarea(int (*func)(struct block_list*, va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int type, ...) { + int returnCount; + va_list ap; + va_start(ap, type); - returnCount = bl_vforeach(func, blockcount, INT_MAX, ap); + returnCount = map->vforeachinarea(func, m, x0, y0, x1, y1, type, ap); va_end(ap); return returnCount; @@ -881,19 +909,46 @@ int map_foreachinarea(int (*func)(struct block_list*, va_list), int16 m, int16 x * @param y1 Ending Y-coordinate * @param count Maximum sum of values returned by func (usually max number of func calls) * @param type enum bl_type - * @param ... Extra arguments for func + * @param ap Extra arguments for func * @return Sum of the values returned by func */ -int map_forcountinarea(int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int count, int type, ...) -{ +int map_vforcountinarea(int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int count, int type, va_list ap) { int returnCount = 0; - int blockcount = bl_list_count; - va_list ap; + int blockcount = map->bl_list_count; + va_list apcopy; bl_getall_area(type, m, x0, y0, x1, y1, NULL); + va_copy(apcopy, ap); + returnCount = bl_vforeach(func, blockcount, count, apcopy); + va_end(apcopy); + + return returnCount; +} + +/** + * Applies func to some block_list objects of bl_type type in + * rectangular area (x0,y0)~(x1,y1) on map m. + * Limit is set by @count parameter. + * Returns the sum of values returned by func. + * @see map_vforcountinarea + * @param func Function to be applied + * @param m Map id + * @param x0 Starting X-coordinate + * @param y0 Starting Y-coordinate + * @param x1 Ending X-coordinate + * @param y1 Ending Y-coordinate + * @param count Maximum sum of values returned by func (usually max number of func calls) + * @param type enum bl_type + * @param ... Extra arguments for func + * @return Sum of the values returned by func + */ +int map_forcountinarea(int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int count, int type, ...) { + int returnCount; + va_list ap; + va_start(ap, type); - returnCount = bl_vforeach(func, blockcount, count, ap); + returnCount = map->vforcountinarea(func, m, x0, y0, x1, y1, count, type, ap); va_end(ap); return returnCount; @@ -939,15 +994,14 @@ static int bl_vgetall_inmovearea(struct block_list *bl, va_list args) * @param dx Center's movement on X-axis * @param dy Center's movement on Y-axis * @param type enum bl_type - * @param ... Extra arguments for func + * @param ap Extra arguments for func * @return Sum of the values returned by func */ -int map_foreachinmovearea(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int16 dx, int16 dy, int type, ...) -{ +int map_vforeachinmovearea(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int16 dx, int16 dy, int type, va_list ap) { int returnCount = 0; - int blockcount = bl_list_count; - va_list ap; + int blockcount = map->bl_list_count; int m, x0, x1, y0, y1; + va_list apcopy; if (!range) return 0; if (!dx && !dy) return 0; // No movement. @@ -974,8 +1028,39 @@ int map_foreachinmovearea(int (*func)(struct block_list*, va_list), struct block bl_getall_area(type, m, x0, y0, x1, y1, bl_vgetall_inmovearea, dx, dy, center, range); } + va_copy(apcopy, ap); + returnCount = bl_vforeach(func, blockcount, INT_MAX, apcopy); + va_end(apcopy); + + return returnCount; +} + +/** + * Applies func to every block_list object of bl_type type in + * area that was covered by range cells from center, but is no + * longer after center is moved by (dx,dy) cells (i.e. area that + * center has lost sight of). + * If used after center has reached its destination and with + * opposed movement vector (-dx,-dy), selection corresponds + * to new area in center's view). + * Uses rectangular area. + * Returns the sum of values returned by func. + * @see map_vforeachinmovearea + * @param func Function to be applied + * @param center Center of the selection area + * @param range Range in cells from center + * @param dx Center's movement on X-axis + * @param dy Center's movement on Y-axis + * @param type enum bl_type + * @param ... Extra arguments for func + * @return Sum of the values returned by func + */ +int map_foreachinmovearea(int (*func)(struct block_list*, va_list), struct block_list* center, int16 range, int16 dx, int16 dy, int type, ...) { + int returnCount; + va_list ap; + va_start(ap, type); - returnCount = bl_vforeach(func, blockcount, INT_MAX, ap); + returnCount = map->vforeachinmovearea(func, center, range, dx, dy, type, ap); va_end(ap); return returnCount; @@ -990,19 +1075,41 @@ int map_foreachinmovearea(int (*func)(struct block_list*, va_list), struct block * @param x Target cell X-coordinate * @param y Target cell Y-coordinate * @param type enum bl_type - * @param ... Extra arguments for func + * @param ap Extra arguments for func * @return Sum of the values returned by func */ -int map_foreachincell(int (*func)(struct block_list*, va_list), int16 m, int16 x, int16 y, int type, ...) -{ +int map_vforeachincell(int (*func)(struct block_list*, va_list), int16 m, int16 x, int16 y, int type, va_list ap) { int returnCount = 0; - int blockcount = bl_list_count; - va_list ap; + int blockcount = map->bl_list_count; + va_list apcopy; bl_getall_area(type, m, x, y, x, y, NULL); + va_copy(apcopy, ap); + returnCount = bl_vforeach(func, blockcount, INT_MAX, apcopy); + va_end(apcopy); + + return returnCount; +} + +/** + * Applies func to every block_list object of bl_type type in + * cell (x,y) on map m. + * Returns the sum of values returned by func. + * @param func Function to be applied + * @param m Map id + * @param x Target cell X-coordinate + * @param y Target cell Y-coordinate + * @param type enum bl_type + * @param ... Extra arguments for func + * @return Sum of the values returned by func + */ +int map_foreachincell(int (*func)(struct block_list*, va_list), int16 m, int16 x, int16 y, int type, ...) { + int returnCount; + va_list ap; + va_start(ap, type); - returnCount = bl_vforeach(func, blockcount, INT_MAX, ap); + returnCount = map->vforeachincell(func, m, x, y, type, ap); va_end(ap); return returnCount; @@ -1069,11 +1176,10 @@ static int bl_vgetall_inpath(struct block_list *bl, va_list args) * @param x Target cell X-coordinate * @param y Target cell Y-coordinate * @param type enum bl_type - * @param ... Extra arguments for func + * @param ap Extra arguments for func * @return Sum of the values returned by func */ -int map_foreachinpath(int (*func)(struct block_list*, va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, ...) -{ +int map_vforeachinpath(int (*func)(struct block_list*, va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, va_list ap) { // [Skotlex] // check for all targets in the square that // contains the initial and final positions (area range increased to match the @@ -1089,8 +1195,8 @@ int map_foreachinpath(int (*func)(struct block_list*, va_list), int16 m, int16 x // kRO int returnCount = 0; - int blockcount = bl_list_count; - va_list ap; + int blockcount = map->bl_list_count; + va_list apcopy; //method specific variables int magnitude2, len_limit; //The square of the magnitude @@ -1127,13 +1233,40 @@ int map_foreachinpath(int (*func)(struct block_list*, va_list), int16 m, int16 x bl_getall_area(type, m, mx0, my0, mx1, my1, bl_vgetall_inpath, m, x0, y0, x1, y1, range, len_limit, magnitude2); + va_copy(apcopy, ap); + returnCount = bl_vforeach(func, blockcount, INT_MAX, apcopy); + va_end(apcopy); + + return returnCount; +} +#undef MAGNITUDE2 + +/** + * Applies func to every block_list object of bl_type type in + * path on a line between (x0,y0) and (x1,y1) on map m. + * Path starts at (x0,y0) and is \a length cells long and \a range cells wide. + * Objects beyond the initial (x1,y1) ending point are checked + * for walls in the path. + * Returns the sum of values returned by func. + * @see map_vforeachinpath + * @param func Function to be applied + * @param m Map id + * @param x Target cell X-coordinate + * @param y Target cell Y-coordinate + * @param type enum bl_type + * @param ... Extra arguments for func + * @return Sum of the values returned by func + */ +int map_foreachinpath(int (*func)(struct block_list*, va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, ...) { + int returnCount; + va_list ap; + va_start(ap, type); - returnCount = bl_vforeach(func, blockcount, INT_MAX, ap); + returnCount = map->vforeachinpath(func, m, x0, y0, x1, y1, range, length, type, ap); va_end(ap); return returnCount; } -#undef MAGNITUDE2 /** @} */ @@ -1151,7 +1284,7 @@ int map_get_new_object_id(void) if( i == MAX_FLOORITEM ) i = MIN_FLOORITEM; - if( !idb_exists(id_db, i) ) + if( !idb_exists(map->id_db, i) ) break; ++i; @@ -1169,11 +1302,11 @@ int map_get_new_object_id(void) } /*========================================== -* Timered function to clear the floor (remove remaining item) -* Called each flooritem_lifetime ms -*------------------------------------------*/ + * Timered function to clear the floor (remove remaining item) + * Called each flooritem_lifetime ms + *------------------------------------------*/ int map_clearflooritem_timer(int tid, unsigned int tick, int id, intptr_t data) { - struct flooritem_data* fitem = (struct flooritem_data*)idb_get(id_db, id); + struct flooritem_data* fitem = (struct flooritem_data*)idb_get(map->id_db, id); if (fitem == NULL || fitem->bl.type != BL_ITEM || (fitem->cleartimer != tid)) { ShowError("map_clearflooritem_timer : error\n"); @@ -1192,8 +1325,8 @@ int map_clearflooritem_timer(int tid, unsigned int tick, int id, intptr_t data) } /* -* clears a single bl item out of the bazooonga. -*/ + * clears a single bl item out of the bazooonga. + */ void map_clearflooritem(struct block_list *bl) { struct flooritem_data* fitem = (struct flooritem_data*)bl; @@ -1207,19 +1340,19 @@ void map_clearflooritem(struct block_list *bl) { } /*========================================== -* (m,x,y) locates a random available free cell around the given coordinates -* to place an BL_ITEM object. Scan area is 9x9, returns 1 on success. -* x and y are modified with the target cell when successful. -*------------------------------------------*/ + * (m,x,y) locates a random available free cell around the given coordinates + * to place an BL_ITEM object. Scan area is 9x9, returns 1 on success. + * x and y are modified with the target cell when successful. + *------------------------------------------*/ int map_searchrandfreecell(int16 m,int16 *x,int16 *y,int stack) { int free_cell,i,j; int free_cells[9][2]; for(free_cell=0,i=-1;i<=1;i++){ - if(i+*y<0 || i+*y>=maplist[m].ys) + if(i+*y<0 || i+*y>=map->list[m].ys) continue; for(j=-1;j<=1;j++){ - if(j+*x<0 || j+*x>=maplist[m].xs) + if(j+*x<0 || j+*x>=map->list[m].xs) continue; if(map->getcell(m,j+*x,i+*y,CELL_CHKNOPASS) && !map->getcell(m,j+*x,i+*y,CELL_CHKICEWALL)) continue; @@ -1239,23 +1372,22 @@ int map_searchrandfreecell(int16 m,int16 *x,int16 *y,int stack) { } -static int map_count_sub(struct block_list *bl,va_list ap) -{ +int map_count_sub(struct block_list *bl,va_list ap) { return 1; } /*========================================== -* Locates a random spare cell around the object given, using range as max -* distance from that spot. Used for warping functions. Use range < 0 for -* whole map range. -* Returns 1 on success. when it fails and src is available, x/y are set to src's -* src can be null as long as flag&1 -* when ~flag&1, m is not needed. -* Flag values: -* &1 = random cell must be around given m,x,y, not around src -* &2 = the target should be able to walk to the target tile. -* &4 = there shouldn't be any players around the target tile (use the no_spawn_on_player setting) -*------------------------------------------*/ + * Locates a random spare cell around the object given, using range as max + * distance from that spot. Used for warping functions. Use range < 0 for + * whole map range. + * Returns 1 on success. when it fails and src is available, x/y are set to src's + * src can be null as long as flag&1 + * when ~flag&1, m is not needed. + * Flag values: + * &1 = random cell must be around given m,x,y, not around src + * &2 = the target should be able to walk to the target tile. + * &4 = there shouldn't be any players around the target tile (use the no_spawn_on_player setting) + *------------------------------------------*/ int map_search_freecell(struct block_list *src, int16 m, int16 *x,int16 *y, int16 rx, int16 ry, int flag) { int tries, spawn=0; @@ -1288,13 +1420,13 @@ int map_search_freecell(struct block_list *src, int16 m, int16 *x,int16 *y, int1 tries = rx2*ry2; if (tries > 100) tries = 100; } else { - tries = maplist[m].xs*maplist[m].ys; + tries = map->list[m].xs*map->list[m].ys; if (tries > 500) tries = 500; } while(tries--) { - *x = (rx >= 0)?(rnd()%rx2-rx+bx):(rnd()%(maplist[m].xs-2)+1); - *y = (ry >= 0)?(rnd()%ry2-ry+by):(rnd()%(maplist[m].ys-2)+1); + *x = (rx >= 0)?(rnd()%rx2-rx+bx):(rnd()%(map->list[m].xs-2)+1); + *y = (ry >= 0)?(rnd()%ry2-ry+by):(rnd()%(map->list[m].ys-2)+1); if (*x == bx && *y == by) continue; //Avoid picking the same target tile. @@ -1304,11 +1436,10 @@ int map_search_freecell(struct block_list *src, int16 m, int16 *x,int16 *y, int1 continue; if(flag&4) { if (spawn >= 100) return 0; //Limit of retries reached. - if (spawn++ < battle_config.no_spawn_on_player && - map_foreachinarea(map_count_sub, m, - *x-AREA_SIZE, *y-AREA_SIZE, - *x+AREA_SIZE, *y+AREA_SIZE, BL_PC) - ) + if (spawn++ < battle_config.no_spawn_on_player + && map->foreachinarea(map->count_sub, m, *x-AREA_SIZE, *y-AREA_SIZE, + *x+AREA_SIZE, *y+AREA_SIZE, BL_PC) + ) continue; } return 1; @@ -1320,14 +1451,14 @@ int map_search_freecell(struct block_list *src, int16 m, int16 *x,int16 *y, int1 } /*========================================== -* Add an item to location (m,x,y) -* Parameters -* @item_data item attributes -* @amount quantity -* @m, @x, @y mapid,x,y -* @first_charid, @second_charid, @third_charid, looting priority -* @flag: &1 MVP item. &2 do stacking check. -*------------------------------------------*/ + * Add an item to location (m,x,y) + * Parameters + * @item_data item attributes + * @amount quantity + * @m, @x, @y mapid,x,y + * @first_charid, @second_charid, @third_charid, looting priority + * @flag: &1 MVP item. &2 do stacking check. + *------------------------------------------*/ int map_addflooritem(struct item *item_data,int amount,int16 m,int16 x,int16 y,int first_charid,int second_charid,int third_charid,int flags) { int r; @@ -1335,7 +1466,7 @@ int map_addflooritem(struct item *item_data,int amount,int16 m,int16 x,int16 y,i nullpo_ret(item_data); - if(!map_searchrandfreecell(m,&x,&y,flags&2?1:0)) + if(!map->searchrandfreecell(m,&x,&y,flags&2?1:0)) return 0; r=rnd(); @@ -1372,9 +1503,9 @@ int map_addflooritem(struct item *item_data,int amount,int16 m,int16 x,int16 y,i } /** -* @see DBCreateData -*/ -static DBData create_charid2nick(DBKey key, va_list args) + * @see DBCreateData + */ +DBData create_charid2nick(DBKey key, va_list args) { struct charid2nick *p; CREATE(p, struct charid2nick, 1); @@ -1392,7 +1523,7 @@ void map_addnickdb(int charid, const char* nick) if( map->charid2sd(charid) ) return;// already online - p = idb_ensure(nick_db, charid, create_charid2nick); + p = idb_ensure(map->nick_db, charid, map->create_charid2nick); safestrncpy(p->nick, nick, sizeof(p->nick)); while( p->requests ) { @@ -1414,7 +1545,7 @@ void map_delnickdb(int charid, const char* name) struct map_session_data* sd; DBData data; - if (!nick_db->remove(nick_db, DB->i2key(charid), &data) || (p = DB->data2ptr(&data)) == NULL) + if (!map->nick_db->remove(map->nick_db, DB->i2key(charid), &data) || (p = DB->data2ptr(&data)) == NULL) return; while( p->requests ) { @@ -1445,7 +1576,7 @@ void map_reqnickdb(struct map_session_data * sd, int charid) return; } - p = idb_ensure(nick_db, charid, create_charid2nick); + p = idb_ensure(map->nick_db, charid, map->create_charid2nick); if( *p->nick ) { clif->solved_charname(sd->fd, charid, p->nick); return; @@ -1458,8 +1589,8 @@ void map_reqnickdb(struct map_session_data * sd, int charid) } /*========================================== -* add bl to id_db -*------------------------------------------*/ + * add bl to id_db + *------------------------------------------*/ void map_addiddb(struct block_list *bl) { nullpo_retv(bl); @@ -1467,27 +1598,27 @@ void map_addiddb(struct block_list *bl) if( bl->type == BL_PC ) { TBL_PC* sd = (TBL_PC*)bl; - idb_put(pc_db,sd->bl.id,sd); - idb_put(charid_db,sd->status.char_id,sd); + idb_put(map->pc_db,sd->bl.id,sd); + idb_put(map->charid_db,sd->status.char_id,sd); } else if( bl->type == BL_MOB ) { TBL_MOB* md = (TBL_MOB*)bl; - idb_put(mobid_db,bl->id,bl); + idb_put(map->mobid_db,bl->id,bl); if( md->state.boss ) - idb_put(bossid_db, bl->id, bl); + idb_put(map->bossid_db, bl->id, bl); } if( bl->type & BL_REGEN ) - idb_put(regen_db, bl->id, bl); + idb_put(map->regen_db, bl->id, bl); - idb_put(id_db,bl->id,bl); + idb_put(map->id_db,bl->id,bl); } /*========================================== -* remove bl from id_db -*------------------------------------------*/ + * remove bl from id_db + *------------------------------------------*/ void map_deliddb(struct block_list *bl) { nullpo_retv(bl); @@ -1495,24 +1626,24 @@ void map_deliddb(struct block_list *bl) if( bl->type == BL_PC ) { TBL_PC* sd = (TBL_PC*)bl; - idb_remove(pc_db,sd->bl.id); - idb_remove(charid_db,sd->status.char_id); + idb_remove(map->pc_db,sd->bl.id); + idb_remove(map->charid_db,sd->status.char_id); } else if( bl->type == BL_MOB ) { - idb_remove(mobid_db,bl->id); - idb_remove(bossid_db,bl->id); + idb_remove(map->mobid_db,bl->id); + idb_remove(map->bossid_db,bl->id); } if( bl->type & BL_REGEN ) - idb_remove(regen_db,bl->id); + idb_remove(map->regen_db,bl->id); - idb_remove(id_db,bl->id); + idb_remove(map->id_db,bl->id); } /*========================================== -* Standard call when a player connection is closed. -*------------------------------------------*/ + * Standard call when a player connection is closed. + *------------------------------------------*/ int map_quit(struct map_session_data *sd) { int i; @@ -1591,19 +1722,19 @@ int map_quit(struct map_session_data *sd) { unit->remove_map(&sd->ed->bl,CLR_TELEPORT,ALC_MARK); } - if( hChSys.local && maplist[sd->bl.m].channel && idb_exists(maplist[sd->bl.m].channel->users, sd->status.char_id) ) { - clif->chsys_left(maplist[sd->bl.m].channel,sd); + if( hChSys.local && map->list[sd->bl.m].channel && idb_exists(map->list[sd->bl.m].channel->users, sd->status.char_id) ) { + clif->chsys_left(map->list[sd->bl.m].channel,sd); } clif->chsys_quit(sd); - unit->remove_map_pc(sd,CLR_TELEPORT); + unit->remove_map_pc(sd,CLR_RESPAWN); - if( maplist[sd->bl.m].instance_id >= 0 ) { // Avoid map conflicts and warnings on next login + if( map->list[sd->bl.m].instance_id >= 0 ) { // Avoid map conflicts and warnings on next login int16 m; struct point *pt; - if( maplist[sd->bl.m].save.map ) - pt = &maplist[sd->bl.m].save; + if( map->list[sd->bl.m].save.map ) + pt = &map->list[sd->bl.m].save; else pt = &sd->status.save_point; @@ -1628,16 +1759,16 @@ int map_quit(struct map_session_data *sd) { } /*========================================== -* Lookup, id to session (player,mob,npc,homon,merc..) -*------------------------------------------*/ + * Lookup, id to session (player,mob,npc,homon,merc..) + *------------------------------------------*/ struct map_session_data *map_id2sd(int id) { if (id <= 0) return NULL; - return (struct map_session_data*)idb_get(pc_db,id); + return (struct map_session_data*)idb_get(map->pc_db,id); } struct mob_data *map_id2md(int id) { if (id <= 0) return NULL; - return (struct mob_data*)idb_get(mobid_db,id); + return (struct mob_data*)idb_get(map->mobid_db,id); } struct npc_data *map_id2nd(int id) { @@ -1674,7 +1805,7 @@ const char *map_charid2nick(int charid) { if( sd ) return sd->status.name;// character is online, return it's name - p = idb_ensure(nick_db, charid, create_charid2nick); + p = idb_ensure(map->nick_db, charid, map->create_charid2nick); if( *p->nick ) return p->nick;// name in nick_db @@ -1685,14 +1816,14 @@ const char *map_charid2nick(int charid) { /// Returns the struct map_session_data of the charid or NULL if the char is not online. struct map_session_data* map_charid2sd(int charid) { - return (struct map_session_data*)idb_get(charid_db, charid); + return (struct map_session_data*)idb_get(map->charid_db, charid); } /*========================================== -* Search session data from a nick name -* (without sensitive case if necessary) -* return map_session_data pointer or NULL -*------------------------------------------*/ + * Search session data from a nick name + * (without sensitive case if necessary) + * return map_session_data pointer or NULL + *------------------------------------------*/ struct map_session_data * map_nick2sd(const char *nick) { struct map_session_data* sd; @@ -1740,29 +1871,29 @@ struct map_session_data * map_nick2sd(const char *nick) } /*========================================== -* Looksup id_db DBMap and returns BL pointer of 'id' or NULL if not found -*------------------------------------------*/ + * Looksup id_db DBMap and returns BL pointer of 'id' or NULL if not found + *------------------------------------------*/ struct block_list * map_id2bl(int id) { - return (struct block_list*)idb_get(id_db,id); + return (struct block_list*)idb_get(map->id_db,id); } /** -* Same as map->id2bl except it only checks for its existence -**/ + * Same as map->id2bl except it only checks for its existence + **/ bool map_blid_exists( int id ) { - return (idb_exists(id_db,id)); + return (idb_exists(map->id_db,id)); } /*========================================== -* Convext Mirror -*------------------------------------------*/ + * Convext Mirror + *------------------------------------------*/ struct mob_data * map_getmob_boss(int16 m) { DBIterator* iter; struct mob_data *md = NULL; bool found = false; - iter = db_iterator(bossid_db); + iter = db_iterator(map->bossid_db); for( md = (struct mob_data*)dbi_first(iter); dbi_exists(iter); md = (struct mob_data*)dbi_next(iter) ) { if( md->bl.m == m ) @@ -1779,71 +1910,88 @@ struct mob_data * map_getmob_boss(int16 m) struct mob_data * map_id2boss(int id) { if (id <= 0) return NULL; - return (struct mob_data*)idb_get(bossid_db,id); + return (struct mob_data*)idb_get(map->bossid_db,id); } /// Applies func to all the players in the db. /// Stops iterating if func returns -1. -void map_map_foreachpc(int (*func)(struct map_session_data* sd, va_list args), ...) { +void map_vforeachpc(int (*func)(struct map_session_data* sd, va_list args), va_list args) { DBIterator* iter; struct map_session_data* sd; - iter = db_iterator(pc_db); + iter = db_iterator(map->pc_db); for( sd = dbi_first(iter); dbi_exists(iter); sd = dbi_next(iter) ) { - va_list args; + va_list argscopy; int ret; - va_start(args, func); - ret = func(sd, args); - va_end(args); + va_copy(argscopy, args); + ret = func(sd, argscopy); + va_end(argscopy); if( ret == -1 ) break;// stop iterating } dbi_destroy(iter); } +/// Applies func to all the players in the db. +/// Stops iterating if func returns -1. +/// @see map_vforeachpc +void map_foreachpc(int (*func)(struct map_session_data* sd, va_list args), ...) { + va_list args; + + va_start(args, func); + map->vforeachpc(func, args); + va_end(args); +} + /// Applies func to all the mobs in the db. /// Stops iterating if func returns -1. -void map_map_foreachmob(int (*func)(struct mob_data* md, va_list args), ...) -{ +void map_vforeachmob(int (*func)(struct mob_data* md, va_list args), va_list args) { DBIterator* iter; struct mob_data* md; - iter = db_iterator(mobid_db); - for( md = (struct mob_data*)dbi_first(iter); dbi_exists(iter); md = (struct mob_data*)dbi_next(iter) ) - { - va_list args; + iter = db_iterator(map->mobid_db); + for( md = (struct mob_data*)dbi_first(iter); dbi_exists(iter); md = (struct mob_data*)dbi_next(iter) ) { + va_list argscopy; int ret; - va_start(args, func); - ret = func(md, args); - va_end(args); + va_copy(argscopy, args); + ret = func(md, argscopy); + va_end(argscopy); if( ret == -1 ) break;// stop iterating } dbi_destroy(iter); } +/// Applies func to all the mobs in the db. +/// Stops iterating if func returns -1. +/// @see map_vforeachmob +void map_foreachmob(int (*func)(struct mob_data* md, va_list args), ...) { + va_list args; + + va_start(args, func); + map->vforeachmob(func, args); + va_end(args); +} + /// Applies func to all the npcs in the db. /// Stops iterating if func returns -1. -void map_map_foreachnpc(int (*func)(struct npc_data* nd, va_list args), ...) -{ +void map_vforeachnpc(int (*func)(struct npc_data* nd, va_list args), va_list args) { DBIterator* iter; struct block_list* bl; - iter = db_iterator(id_db); - for( bl = (struct block_list*)dbi_first(iter); dbi_exists(iter); bl = (struct block_list*)dbi_next(iter) ) - { - if( bl->type == BL_NPC ) - { + iter = db_iterator(map->id_db); + for( bl = (struct block_list*)dbi_first(iter); dbi_exists(iter); bl = (struct block_list*)dbi_next(iter) ) { + if( bl->type == BL_NPC ) { struct npc_data* nd = (struct npc_data*)bl; - va_list args; + va_list argscopy; int ret; - va_start(args, func); - ret = func(nd, args); - va_end(args); + va_copy(argscopy, args); + ret = func(nd, argscopy); + va_end(argscopy); if( ret == -1 ) break;// stop iterating } @@ -1851,22 +1999,31 @@ void map_map_foreachnpc(int (*func)(struct npc_data* nd, va_list args), ...) dbi_destroy(iter); } +/// Applies func to all the npcs in the db. +/// Stops iterating if func returns -1. +/// @see map_vforeachnpc +void map_foreachnpc(int (*func)(struct npc_data* nd, va_list args), ...) { + va_list args; + + va_start(args, func); + map->vforeachnpc(func, args); + va_end(args); +} + /// Applies func to everything in the db. /// Stops iteratin gif func returns -1. -void map_map_foreachregen(int (*func)(struct block_list* bl, va_list args), ...) -{ +void map_vforeachregen(int (*func)(struct block_list* bl, va_list args), va_list args) { DBIterator* iter; struct block_list* bl; - iter = db_iterator(regen_db); - for( bl = (struct block_list*)dbi_first(iter); dbi_exists(iter); bl = (struct block_list*)dbi_next(iter) ) - { - va_list args; + iter = db_iterator(map->regen_db); + for( bl = (struct block_list*)dbi_first(iter); dbi_exists(iter); bl = (struct block_list*)dbi_next(iter) ) { + va_list argscopy; int ret; - va_start(args, func); - ret = func(bl, args); - va_end(args); + va_copy(argscopy, args); + ret = func(bl, argscopy); + va_end(argscopy); if( ret == -1 ) break;// stop iterating } @@ -1874,27 +2031,47 @@ void map_map_foreachregen(int (*func)(struct block_list* bl, va_list args), ...) } /// Applies func to everything in the db. +/// Stops iteratin gif func returns -1. +/// @see map_vforeachregen +void map_foreachregen(int (*func)(struct block_list* bl, va_list args), ...) { + va_list args; + + va_start(args, func); + map->vforeachregen(func, args); + va_end(args); +} + +/// Applies func to everything in the db. /// Stops iterating if func returns -1. -void map_map_foreachiddb(int (*func)(struct block_list* bl, va_list args), ...) -{ +void map_vforeachiddb(int (*func)(struct block_list* bl, va_list args), va_list args) { DBIterator* iter; struct block_list* bl; - iter = db_iterator(id_db); - for( bl = (struct block_list*)dbi_first(iter); dbi_exists(iter); bl = (struct block_list*)dbi_next(iter) ) - { - va_list args; + iter = db_iterator(map->id_db); + for( bl = (struct block_list*)dbi_first(iter); dbi_exists(iter); bl = (struct block_list*)dbi_next(iter) ) { + va_list argscopy; int ret; - va_start(args, func); - ret = func(bl, args); - va_end(args); + va_copy(argscopy, args); + ret = func(bl, argscopy); + va_end(argscopy); if( ret == -1 ) break;// stop iterating } dbi_destroy(iter); } +/// Applies func to everything in the db. +/// Stops iterating if func returns -1. +/// @see map_vforeachiddb +void map_foreachiddb(int (*func)(struct block_list* bl, va_list args), ...) { + va_list args; + + va_start(args, func); + map->vforeachiddb(func, args); + va_end(args); +} + /// Iterator. /// Can filter by bl type. struct s_mapiterator @@ -1925,12 +2102,12 @@ struct s_mapiterator struct s_mapiterator* mapit_alloc(enum e_mapitflags flags, enum bl_type types) { struct s_mapiterator* iter; - iter = ers_alloc(map_iterator_ers, struct s_mapiterator); + iter = ers_alloc(map->iterator_ers, struct s_mapiterator); iter->flags = flags; iter->types = types; - if( types == BL_PC ) iter->dbi = db_iterator(pc_db); - else if( types == BL_MOB ) iter->dbi = db_iterator(mobid_db); - else iter->dbi = db_iterator(id_db); + if( types == BL_PC ) iter->dbi = db_iterator(map->pc_db); + else if( types == BL_MOB ) iter->dbi = db_iterator(map->mobid_db); + else iter->dbi = db_iterator(map->id_db); return iter; } @@ -1941,7 +2118,7 @@ void mapit_free(struct s_mapiterator* iter) { nullpo_retv(iter); dbi_destroy(iter->dbi); - ers_free(map_iterator_ers, iter); + ers_free(map->iterator_ers, iter); } /// Returns the first block_list that matches the description. @@ -2031,35 +2208,35 @@ bool mapit_exists(struct s_mapiterator* iter) { } /*========================================== -* Add npc-bl to id_db, basically register npc to map -*------------------------------------------*/ + * Add npc-bl to id_db, basically register npc to map + *------------------------------------------*/ bool map_addnpc(int16 m,struct npc_data *nd) { nullpo_ret(nd); - if( m < 0 || m >= map->map_num ) + if( m < 0 || m >= map->count ) return false; - if( maplist[m].npc_num == MAX_NPC_PER_MAP ) { - ShowWarning("too many NPCs in one map %s\n",maplist[m].name); + if( map->list[m].npc_num == MAX_NPC_PER_MAP ) { + ShowWarning("too many NPCs in one map %s\n",map->list[m].name); return false; } - maplist[m].npc[maplist[m].npc_num]=nd; - maplist[m].npc_num++; - idb_put(id_db,nd->bl.id,nd); + map->list[m].npc[map->list[m].npc_num]=nd; + map->list[m].npc_num++; + idb_put(map->id_db,nd->bl.id,nd); return true; } /*========================================= -* Dynamic Mobs [Wizputer] -*-----------------------------------------*/ + * Dynamic Mobs [Wizputer] + *-----------------------------------------*/ // Stores the spawn data entry in the mob list. // Returns the index of successful, or -1 if the list was full. int map_addmobtolist(unsigned short m, struct spawn_data *spawn) { size_t i; - ARR_FIND( 0, MAX_MOB_LIST_PER_MAP, i, maplist[m].moblist[i] == NULL ); + ARR_FIND( 0, MAX_MOB_LIST_PER_MAP, i, map->list[m].moblist[i] == NULL ); if( i < MAX_MOB_LIST_PER_MAP ) { - maplist[m].moblist[i] = spawn; + map->list[m].moblist[i] = spawn; return i; } return -1; @@ -2067,20 +2244,20 @@ int map_addmobtolist(unsigned short m, struct spawn_data *spawn) { void map_spawnmobs(int16 m) { int i, k=0; - if (maplist[m].mob_delete_timer != INVALID_TIMER) { + if (map->list[m].mob_delete_timer != INVALID_TIMER) { //Mobs have not been removed yet [Skotlex] - timer->delete(maplist[m].mob_delete_timer, map->removemobs_timer); - maplist[m].mob_delete_timer = INVALID_TIMER; + timer->delete(map->list[m].mob_delete_timer, map->removemobs_timer); + map->list[m].mob_delete_timer = INVALID_TIMER; return; } for(i=0; i<MAX_MOB_LIST_PER_MAP; i++) - if(maplist[m].moblist[i]!=NULL) { - k+=maplist[m].moblist[i]->num; - npc->parse_mob2(maplist[m].moblist[i]); + if(map->list[m].moblist[i]!=NULL) { + k+=map->list[m].moblist[i]->num; + npc->parse_mob2(map->list[m].moblist[i]); } if (battle_config.etc_log && k > 0) { - ShowStatus("Map %s: Spawned '"CL_WHITE"%d"CL_RESET"' mobs.\n",maplist[m].name, k); + ShowStatus("Map %s: Spawned '"CL_WHITE"%d"CL_RESET"' mobs.\n",map->list[m].name, k); } } @@ -2116,36 +2293,36 @@ int map_removemobs_timer(int tid, unsigned int tick, int id, intptr_t data) int count; const int16 m = id; - if (m < 0 || m >= map->map_num) { //Incorrect map id! + if (m < 0 || m >= map->count) { //Incorrect map id! ShowError("map_removemobs_timer error: timer %d points to invalid map %d\n",tid, m); return 0; } - if (maplist[m].mob_delete_timer != tid) { //Incorrect timer call! - ShowError("map_removemobs_timer mismatch: %d != %d (map %s)\n",maplist[m].mob_delete_timer, tid, maplist[m].name); + if (map->list[m].mob_delete_timer != tid) { //Incorrect timer call! + ShowError("map_removemobs_timer mismatch: %d != %d (map %s)\n",map->list[m].mob_delete_timer, tid, map->list[m].name); return 0; } - maplist[m].mob_delete_timer = INVALID_TIMER; - if (maplist[m].users > 0) //Map not empty! + map->list[m].mob_delete_timer = INVALID_TIMER; + if (map->list[m].users > 0) //Map not empty! return 1; - count = map_foreachinmap(map_removemobs_sub, m, BL_MOB); + count = map->foreachinmap(map->removemobs_sub, m, BL_MOB); if (battle_config.etc_log && count > 0) - ShowStatus("Map %s: Removed '"CL_WHITE"%d"CL_RESET"' mobs.\n",maplist[m].name, count); + ShowStatus("Map %s: Removed '"CL_WHITE"%d"CL_RESET"' mobs.\n",map->list[m].name, count); return 1; } void map_removemobs(int16 m) { - if (maplist[m].mob_delete_timer != INVALID_TIMER) // should never happen + if (map->list[m].mob_delete_timer != INVALID_TIMER) // should never happen return; //Mobs are already scheduled for removal - maplist[m].mob_delete_timer = timer->add(timer->gettick()+battle_config.mob_remove_delay, map->removemobs_timer, m, 0); + map->list[m].mob_delete_timer = timer->add(timer->gettick()+battle_config.mob_remove_delay, map->removemobs_timer, m, 0); } /*========================================== -* Hookup, get map_id from map_name -*------------------------------------------*/ + * Hookup, get map_id from map_name + *------------------------------------------*/ int16 map_mapname2mapid(const char* name) { unsigned short map_index; map_index = mapindex_name2id(name); @@ -2155,23 +2332,23 @@ int16 map_mapname2mapid(const char* name) { } /*========================================== -* Returns the map of the given mapindex. [Skotlex] -*------------------------------------------*/ + * Returns the map of the given mapindex. [Skotlex] + *------------------------------------------*/ int16 map_mapindex2mapid(unsigned short mapindex) { if (!mapindex || mapindex > MAX_MAPINDEX) return -1; - return index2mapid[mapindex]; + return map->index2mapid[mapindex]; } /*========================================== -* Switching Ip, port ? (like changing map_server) get ip/port from map_name -*------------------------------------------*/ + * Switching Ip, port ? (like changing map_server) get ip/port from map_name + *------------------------------------------*/ int map_mapname2ipport(unsigned short name, uint32* ip, uint16* port) { struct map_data_other_server *mdos; - mdos = (struct map_data_other_server*)uidb_get(map_db,(unsigned int)name); + mdos = (struct map_data_other_server*)uidb_get(map->map_db,(unsigned int)name); if(mdos==NULL || mdos->cell) //If gat isn't null, this is a local map. return -1; *ip=mdos->ip; @@ -2187,21 +2364,21 @@ int map_check_dir(int s_dir,int t_dir) if(s_dir == t_dir) return 0; switch(s_dir) { - case 0: if(t_dir == 7 || t_dir == 1 || t_dir == 0) return 0; break; - case 1: if(t_dir == 0 || t_dir == 2 || t_dir == 1) return 0; break; - case 2: if(t_dir == 1 || t_dir == 3 || t_dir == 2) return 0; break; - case 3: if(t_dir == 2 || t_dir == 4 || t_dir == 3) return 0; break; - case 4: if(t_dir == 3 || t_dir == 5 || t_dir == 4) return 0; break; - case 5: if(t_dir == 4 || t_dir == 6 || t_dir == 5) return 0; break; - case 6: if(t_dir == 5 || t_dir == 7 || t_dir == 6) return 0; break; - case 7: if(t_dir == 6 || t_dir == 0 || t_dir == 7) return 0; break; + case 0: if(t_dir == 7 || t_dir == 1 || t_dir == 0) return 0; break; + case 1: if(t_dir == 0 || t_dir == 2 || t_dir == 1) return 0; break; + case 2: if(t_dir == 1 || t_dir == 3 || t_dir == 2) return 0; break; + case 3: if(t_dir == 2 || t_dir == 4 || t_dir == 3) return 0; break; + case 4: if(t_dir == 3 || t_dir == 5 || t_dir == 4) return 0; break; + case 5: if(t_dir == 4 || t_dir == 6 || t_dir == 5) return 0; break; + case 6: if(t_dir == 5 || t_dir == 7 || t_dir == 6) return 0; break; + case 7: if(t_dir == 6 || t_dir == 0 || t_dir == 7) return 0; break; } return 1; } /*========================================== -* Returns the direction of the given cell, relative to 'src' -*------------------------------------------*/ + * Returns the direction of the given cell, relative to 'src' + *------------------------------------------*/ uint8 map_calc_dir(struct block_list* src, int16 x, int16 y) { uint8 dir = 0; @@ -2245,9 +2422,9 @@ uint8 map_calc_dir(struct block_list* src, int16 x, int16 y) } /*========================================== -* Randomizes target cell x,y to a random walkable cell that -* has the same distance from object as given coordinates do. [Skotlex] -*------------------------------------------*/ + * Randomizes target cell x,y to a random walkable cell that + * has the same distance from object as given coordinates do. [Skotlex] + *------------------------------------------*/ int map_random_dir(struct block_list *bl, int16 *x, int16 *y) { short xi = *x-bl->x; @@ -2283,13 +2460,13 @@ inline static struct mapcell map_gat2cell(int gat) { memset(&cell,0,sizeof(struct mapcell)); switch( gat ) { - case 0: cell.walkable = 1; cell.shootable = 1; cell.water = 0; break; // walkable ground - case 1: cell.walkable = 0; cell.shootable = 0; cell.water = 0; break; // non-walkable ground - case 2: cell.walkable = 1; cell.shootable = 1; cell.water = 0; break; // ??? - case 3: cell.walkable = 1; cell.shootable = 1; cell.water = 1; break; // walkable water - case 4: cell.walkable = 1; cell.shootable = 1; cell.water = 0; break; // ??? - case 5: cell.walkable = 0; cell.shootable = 1; cell.water = 0; break; // gap (snipable) - case 6: cell.walkable = 1; cell.shootable = 1; cell.water = 0; break; // ??? + case 0: cell.walkable = 1; cell.shootable = 1; cell.water = 0; break; // walkable ground + case 1: cell.walkable = 0; cell.shootable = 0; cell.water = 0; break; // non-walkable ground + case 2: cell.walkable = 1; cell.shootable = 1; cell.water = 0; break; // ??? + case 3: cell.walkable = 1; cell.shootable = 1; cell.water = 1; break; // walkable water + case 4: cell.walkable = 1; cell.shootable = 1; cell.water = 0; break; // ??? + case 5: cell.walkable = 0; cell.shootable = 1; cell.water = 0; break; // gap (snipable) + case 6: cell.walkable = 1; cell.shootable = 1; cell.water = 0; break; // ??? default: ShowWarning("map_gat2cell: unrecognized gat type '%d'\n", gat); break; @@ -2298,7 +2475,7 @@ inline static struct mapcell map_gat2cell(int gat) { return cell; } -static int map_cell2gat(struct mapcell cell) { +int map_cell2gat(struct mapcell cell) { if( cell.walkable == 1 && cell.shootable == 1 && cell.water == 0 ) return 0; if( cell.walkable == 0 && cell.shootable == 0 && cell.water == 0 ) return 1; if( cell.walkable == 1 && cell.shootable == 1 && cell.water == 1 ) return 3; @@ -2307,8 +2484,6 @@ static int map_cell2gat(struct mapcell cell) { ShowWarning("map_cell2gat: cell has no matching gat type\n"); return 1; // default to 'wall' } -int map_getcellp(struct map_data* m,int16 x,int16 y,cell_chk cellchk); -void map_setcell(int16 m, int16 x, int16 y, cell_t cell, bool flag); void map_cellfromcache(struct map_data *m) { char decode_buffer[MAX_MAP_SIZE]; struct map_cache_map_info *info = NULL; @@ -2324,10 +2499,10 @@ void map_cellfromcache(struct map_data *m) { CREATE(m->cell, struct mapcell, size); for( xy = 0; xy < size; ++xy ) - m->cell[xy] = map_gat2cell(decode_buffer[xy]); + m->cell[xy] = map->gat2cell(decode_buffer[xy]); - m->getcellp = map_getcellp; - m->setcell = map_setcell; + m->getcellp = map->getcellp; + m->setcell = map->setcell; for(i = 0; i < m->npc_num; i++) { npc->setcells(m->npc[i]); @@ -2336,10 +2511,10 @@ void map_cellfromcache(struct map_data *m) { } /*========================================== -* Confirm if celltype in (m,x,y) match the one given in cellchk -*------------------------------------------*/ + * Confirm if celltype in (m,x,y) match the one given in cellchk + *------------------------------------------*/ int map_getcell(int16 m,int16 x,int16 y,cell_chk cellchk) { - return (m < 0 || m >= map->map_num) ? 0 : maplist[m].getcellp(&maplist[m],x,y,cellchk); + return (m < 0 || m >= map->count) ? 0 : map->list[m].getcellp(&map->list[m],x,y,cellchk); } int map_getcellp(struct map_data* m,int16 x,int16 y,cell_chk cellchk) { @@ -2356,7 +2531,7 @@ int map_getcellp(struct map_data* m,int16 x,int16 y,cell_chk cellchk) { switch(cellchk) { // gat type retrieval case CELL_GETTYPE: - return map_cell2gat(cell); + return map->cell2gat(cell); // base gat type checks case CELL_CHKWALL: @@ -2415,69 +2590,67 @@ int map_getcellp(struct map_data* m,int16 x,int16 y,cell_chk cellchk) { /* [Ind/Hercules] */ int map_sub_getcellp(struct map_data* m,int16 x,int16 y,cell_chk cellchk) { map->cellfromcache(m); - m->getcellp = map_getcellp; - m->setcell = map_setcell; + m->getcellp = map->getcellp; + m->setcell = map->setcell; return m->getcellp(m,x,y,cellchk); } /*========================================== -* Change the type/flags of a map cell -* 'cell' - which flag to modify -* 'flag' - true = on, false = off -*------------------------------------------*/ + * Change the type/flags of a map cell + * 'cell' - which flag to modify + * 'flag' - true = on, false = off + *------------------------------------------*/ void map_setcell(int16 m, int16 x, int16 y, cell_t cell, bool flag) { int j; - if( m < 0 || m >= map->map_num || x < 0 || x >= maplist[m].xs || y < 0 || y >= maplist[m].ys ) + if( m < 0 || m >= map->count || x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys ) return; - j = x + y*maplist[m].xs; + j = x + y*map->list[m].xs; switch( cell ) { - case CELL_WALKABLE: maplist[m].cell[j].walkable = flag; break; - case CELL_SHOOTABLE: maplist[m].cell[j].shootable = flag; break; - case CELL_WATER: maplist[m].cell[j].water = flag; break; - - case CELL_NPC: maplist[m].cell[j].npc = flag; break; - case CELL_BASILICA: maplist[m].cell[j].basilica = flag; break; - case CELL_LANDPROTECTOR: maplist[m].cell[j].landprotector = flag; break; - case CELL_NOVENDING: maplist[m].cell[j].novending = flag; break; - case CELL_NOCHAT: maplist[m].cell[j].nochat = flag; break; - case CELL_MAELSTROM: maplist[m].cell[j].maelstrom = flag; break; - case CELL_ICEWALL: maplist[m].cell[j].icewall = flag; break; + case CELL_WALKABLE: map->list[m].cell[j].walkable = flag; break; + case CELL_SHOOTABLE: map->list[m].cell[j].shootable = flag; break; + case CELL_WATER: map->list[m].cell[j].water = flag; break; + + case CELL_NPC: map->list[m].cell[j].npc = flag; break; + case CELL_BASILICA: map->list[m].cell[j].basilica = flag; break; + case CELL_LANDPROTECTOR: map->list[m].cell[j].landprotector = flag; break; + case CELL_NOVENDING: map->list[m].cell[j].novending = flag; break; + case CELL_NOCHAT: map->list[m].cell[j].nochat = flag; break; + case CELL_MAELSTROM: map->list[m].cell[j].maelstrom = flag; break; + case CELL_ICEWALL: map->list[m].cell[j].icewall = flag; break; default: ShowWarning("map_setcell: invalid cell type '%d'\n", (int)cell); break; } } void map_sub_setcell(int16 m, int16 x, int16 y, cell_t cell, bool flag) { - if( m < 0 || m >= map->map_num || x < 0 || x >= maplist[m].xs || y < 0 || y >= maplist[m].ys ) + if( m < 0 || m >= map->count || x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys ) return; - map->cellfromcache(&maplist[m]); - maplist[m].setcell = map_setcell; - maplist[m].getcellp = map_getcellp; - maplist[m].setcell(m,x,y,cell,flag); + map->cellfromcache(&map->list[m]); + map->list[m].setcell = map->setcell; + map->list[m].getcellp = map->getcellp; + map->list[m].setcell(m,x,y,cell,flag); } void map_setgatcell(int16 m, int16 x, int16 y, int gat) { int j; struct mapcell cell; - if( m < 0 || m >= map->map_num || x < 0 || x >= maplist[m].xs || y < 0 || y >= maplist[m].ys ) + if( m < 0 || m >= map->count || x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys ) return; - j = x + y*maplist[m].xs; + j = x + y*map->list[m].xs; - cell = map_gat2cell(gat); - maplist[m].cell[j].walkable = cell.walkable; - maplist[m].cell[j].shootable = cell.shootable; - maplist[m].cell[j].water = cell.water; + cell = map->gat2cell(gat); + map->list[m].cell[j].walkable = cell.walkable; + map->list[m].cell[j].shootable = cell.shootable; + map->list[m].cell[j].water = cell.water; } /*========================================== * Invisible Walls *------------------------------------------*/ -static DBMap* iwall_db; - void map_iwall_nextxy(int16 x, int16 y, int8 dir, int pos, int16 *x1, int16 *y1) { if( dir == 0 || dir == 4 ) @@ -2504,7 +2677,7 @@ bool map_iwall_set(int16 m, int16 x, int16 y, int size, int8 dir, bool shootable if( size < 1 || !wall_name ) return false; - if( (iwall = (struct iwall_data *)strdb_get(iwall_db, wall_name)) != NULL ) + if( (iwall = (struct iwall_data *)strdb_get(map->iwall_db, wall_name)) != NULL ) return false; // Already Exists if( map->getcell(m, x, y, CELL_CHKNOREACH) ) @@ -2520,21 +2693,21 @@ bool map_iwall_set(int16 m, int16 x, int16 y, int size, int8 dir, bool shootable safestrncpy(iwall->wall_name, wall_name, sizeof(iwall->wall_name)); for( i = 0; i < size; i++ ) { - map_iwall_nextxy(x, y, dir, i, &x1, &y1); + map->iwall_nextxy(x, y, dir, i, &x1, &y1); if( map->getcell(m, x1, y1, CELL_CHKNOREACH) ) break; // Collision - maplist[m].setcell(m, x1, y1, CELL_WALKABLE, false); - maplist[m].setcell(m, x1, y1, CELL_SHOOTABLE, shootable); + map->list[m].setcell(m, x1, y1, CELL_WALKABLE, false); + map->list[m].setcell(m, x1, y1, CELL_SHOOTABLE, shootable); clif->changemapcell(0, m, x1, y1, map->getcell(m, x1, y1, CELL_GETTYPE), ALL_SAMEMAP); } iwall->size = i; - strdb_put(iwall_db, iwall->wall_name, iwall); - maplist[m].iwall_num++; + strdb_put(map->iwall_db, iwall->wall_name, iwall); + map->list[m].iwall_num++; return true; } @@ -2545,16 +2718,16 @@ void map_iwall_get(struct map_session_data *sd) { int16 x1, y1; int i; - if( maplist[sd->bl.m].iwall_num < 1 ) + if( map->list[sd->bl.m].iwall_num < 1 ) return; - iter = db_iterator(iwall_db); + iter = db_iterator(map->iwall_db); for( iwall = dbi_first(iter); dbi_exists(iter); iwall = dbi_next(iter) ) { if( iwall->m != sd->bl.m ) continue; for( i = 0; i < iwall->size; i++ ) { - map_iwall_nextxy(iwall->x, iwall->y, iwall->dir, i, &x1, &y1); + map->iwall_nextxy(iwall->x, iwall->y, iwall->dir, i, &x1, &y1); clif->changemapcell(sd->fd, iwall->m, x1, y1, map->getcell(iwall->m, x1, y1, CELL_GETTYPE), SELF); } } @@ -2566,26 +2739,26 @@ void map_iwall_remove(const char *wall_name) struct iwall_data *iwall; int16 i, x1, y1; - if( (iwall = (struct iwall_data *)strdb_get(iwall_db, wall_name)) == NULL ) + if( (iwall = (struct iwall_data *)strdb_get(map->iwall_db, wall_name)) == NULL ) return; // Nothing to do for( i = 0; i < iwall->size; i++ ) { - map_iwall_nextxy(iwall->x, iwall->y, iwall->dir, i, &x1, &y1); + map->iwall_nextxy(iwall->x, iwall->y, iwall->dir, i, &x1, &y1); - maplist[iwall->m].setcell(iwall->m, x1, y1, CELL_SHOOTABLE, true); - maplist[iwall->m].setcell(iwall->m, x1, y1, CELL_WALKABLE, true); + map->list[iwall->m].setcell(iwall->m, x1, y1, CELL_SHOOTABLE, true); + map->list[iwall->m].setcell(iwall->m, x1, y1, CELL_WALKABLE, true); clif->changemapcell(0, iwall->m, x1, y1, map->getcell(iwall->m, x1, y1, CELL_GETTYPE), ALL_SAMEMAP); } - maplist[iwall->m].iwall_num--; - strdb_remove(iwall_db, iwall->wall_name); + map->list[iwall->m].iwall_num--; + strdb_remove(map->iwall_db, iwall->wall_name); } /** -* @see DBCreateData -*/ -static DBData create_map_data_other_server(DBKey key, va_list args) + * @see DBCreateData + */ +DBData create_map_data_other_server(DBKey key, va_list args) { struct map_data_other_server *mdos; unsigned short mapindex = (unsigned short)key.ui; @@ -2596,13 +2769,13 @@ static DBData create_map_data_other_server(DBKey key, va_list args) } /*========================================== -* Add mapindex to db of another map server -*------------------------------------------*/ + * Add mapindex to db of another map server + *------------------------------------------*/ int map_setipport(unsigned short mapindex, uint32 ip, uint16 port) { struct map_data_other_server *mdos; - mdos= uidb_ensure(map_db,(unsigned int)mapindex, create_map_data_other_server); + mdos= uidb_ensure(map->map_db,(unsigned int)mapindex, map->create_map_data_other_server); if(mdos->cell) //Local map,Do nothing. Give priority to our own local maps over ones from another server. [Skotlex] return 0; @@ -2617,36 +2790,36 @@ int map_setipport(unsigned short mapindex, uint32 ip, uint16 port) } /** -* Delete all the other maps server management -* @see DBApply -*/ + * Delete all the other maps server management + * @see DBApply + */ int map_eraseallipport_sub(DBKey key, DBData *data, va_list va) { struct map_data_other_server *mdos = DB->data2ptr(data); if(mdos->cell == NULL) { - db_remove(map_db,key); + db_remove(map->map_db,key); aFree(mdos); } return 0; } int map_eraseallipport(void) { - map_db->foreach(map_db,map_eraseallipport_sub); + map->map_db->foreach(map->map_db,map->eraseallipport_sub); return 1; } /*========================================== -* Delete mapindex from db of another map server -*------------------------------------------*/ + * Delete mapindex from db of another map server + *------------------------------------------*/ int map_eraseipport(unsigned short mapindex, uint32 ip, uint16 port) { struct map_data_other_server *mdos; - mdos = (struct map_data_other_server*)uidb_get(map_db,(unsigned int)mapindex); + mdos = (struct map_data_other_server*)uidb_get(map->map_db,(unsigned int)mapindex); if(!mdos || mdos->cell) //Map either does not exists or is a local map. return 0; if(mdos->ip==ip && mdos->port == port) { - uidb_remove(map_db,(unsigned int)mapindex); + uidb_remove(map->map_db,(unsigned int)mapindex); aFree(mdos); return 1; } @@ -2654,10 +2827,9 @@ int map_eraseipport(unsigned short mapindex, uint32 ip, uint16 port) { } /*========================================== -* [Shinryo]: Init the mapcache -*------------------------------------------*/ -static char *map_init_mapcache(FILE *fp) -{ + * [Shinryo]: Init the mapcache + *------------------------------------------*/ +char *map_init_mapcache(FILE *fp) { size_t size = 0; char *buffer; @@ -2685,9 +2857,9 @@ static char *map_init_mapcache(FILE *fp) } /*========================================== -* Map cache reading -* [Shinryo]: Optimized some behaviour to speed this up -*==========================================*/ + * Map cache reading + * [Shinryo]: Optimized some behaviour to speed this up + *==========================================*/ int map_readfromcache(struct map_data *m, char *buffer) { int i; struct map_cache_main_header *header = (struct map_cache_main_header *)buffer; @@ -2730,15 +2902,15 @@ int map_readfromcache(struct map_data *m, char *buffer) { int map_addmap(char* mapname) { - maplist[map->map_num].instance_id = -1; - mapindex_getmapname(mapname, maplist[map->map_num++].name); + map->list[map->count].instance_id = -1; + mapindex_getmapname(mapname, map->list[map->count++].name); return 0; } -static void map_delmapid(int id) { - ShowNotice("Removing map [ %s ] from maplist"CL_CLL"\n",maplist[id].name); - memmove(maplist+id, maplist+id+1, sizeof(maplist[0])*(map->map_num-id-1)); - map->map_num--; +void map_delmapid(int id) { + ShowNotice("Removing map [ %s ] from map->list"CL_CLL"\n",map->list[id].name); + memmove(map->list+id, map->list+id+1, sizeof(map->list[0])*(map->count-id-1)); + map->count--; } int map_delmap(char* mapname) { @@ -2746,14 +2918,14 @@ int map_delmap(char* mapname) { char map_name[MAP_NAME_LENGTH]; if (strcmpi(mapname, "all") == 0) { - map->map_num = 0; + map->count = 0; return 0; } mapindex_getmapname(mapname, map_name); - for(i = 0; i < map->map_num; i++) { - if (strcmp(maplist[i].name, map_name) == 0) { - map_delmapid(i); + for(i = 0; i < map->count; i++) { + if (strcmp(map->list[i].name, map_name) == 0) { + map->delmapid(i); return 1; } } @@ -2763,7 +2935,7 @@ void map_zone_db_clear(void) { struct map_zone_data *zone; int i; - DBIterator *iter = db_iterator(zone_db); + DBIterator *iter = db_iterator(map->zone_db); for(zone = dbi_first(iter); dbi_exists(iter); zone = dbi_next(iter)) { for(i = 0; i < zone->disabled_skills_count; i++) { aFree(zone->disabled_skills[i]); @@ -2785,229 +2957,229 @@ void map_zone_db_clear(void) { } dbi_destroy(iter); - db_destroy(zone_db);/* will aFree(zone) */ + db_destroy(map->zone_db);/* will aFree(zone) */ /* clear the pk zone stuff */ - for(i = 0; i < map_zone_pk.disabled_skills_count; i++) { - aFree(map_zone_pk.disabled_skills[i]); + for(i = 0; i < map->zone_pk.disabled_skills_count; i++) { + aFree(map->zone_pk.disabled_skills[i]); } - aFree(map_zone_pk.disabled_skills); - aFree(map_zone_pk.disabled_items); - for(i = 0; i < map_zone_pk.mapflags_count; i++) { - aFree(map_zone_pk.mapflags[i]); + aFree(map->zone_pk.disabled_skills); + aFree(map->zone_pk.disabled_items); + for(i = 0; i < map->zone_pk.mapflags_count; i++) { + aFree(map->zone_pk.mapflags[i]); } - aFree(map_zone_pk.mapflags); - for(i = 0; i < map_zone_pk.disabled_commands_count; i++) { - aFree(map_zone_pk.disabled_commands[i]); + aFree(map->zone_pk.mapflags); + for(i = 0; i < map->zone_pk.disabled_commands_count; i++) { + aFree(map->zone_pk.disabled_commands[i]); } - aFree(map_zone_pk.disabled_commands); - for(i = 0; i < map_zone_pk.capped_skills_count; i++) { - aFree(map_zone_pk.capped_skills[i]); + aFree(map->zone_pk.disabled_commands); + for(i = 0; i < map->zone_pk.capped_skills_count; i++) { + aFree(map->zone_pk.capped_skills[i]); } - aFree(map_zone_pk.capped_skills); + aFree(map->zone_pk.capped_skills); /* clear the main zone stuff */ - for(i = 0; i < map_zone_all.disabled_skills_count; i++) { - aFree(map_zone_all.disabled_skills[i]); + for(i = 0; i < map->zone_all.disabled_skills_count; i++) { + aFree(map->zone_all.disabled_skills[i]); } - aFree(map_zone_all.disabled_skills); - aFree(map_zone_all.disabled_items); - for(i = 0; i < map_zone_all.mapflags_count; i++) { - aFree(map_zone_all.mapflags[i]); + aFree(map->zone_all.disabled_skills); + aFree(map->zone_all.disabled_items); + for(i = 0; i < map->zone_all.mapflags_count; i++) { + aFree(map->zone_all.mapflags[i]); } - aFree(map_zone_all.mapflags); - for(i = 0; i < map_zone_all.disabled_commands_count; i++) { - aFree(map_zone_all.disabled_commands[i]); + aFree(map->zone_all.mapflags); + for(i = 0; i < map->zone_all.disabled_commands_count; i++) { + aFree(map->zone_all.disabled_commands[i]); } - aFree(map_zone_all.disabled_commands); - for(i = 0; i < map_zone_all.capped_skills_count; i++) { - aFree(map_zone_all.capped_skills[i]); + aFree(map->zone_all.disabled_commands); + for(i = 0; i < map->zone_all.capped_skills_count; i++) { + aFree(map->zone_all.capped_skills[i]); } - aFree(map_zone_all.capped_skills); + aFree(map->zone_all.capped_skills); } void map_clean(int i) { int v; - if(maplist[i].cell && maplist[i].cell != (struct mapcell *)0xdeadbeaf) aFree(maplist[i].cell); - if(maplist[i].block) aFree(maplist[i].block); - if(maplist[i].block_mob) aFree(maplist[i].block_mob); + if(map->list[i].cell && map->list[i].cell != (struct mapcell *)0xdeadbeaf) aFree(map->list[i].cell); + if(map->list[i].block) aFree(map->list[i].block); + if(map->list[i].block_mob) aFree(map->list[i].block_mob); if(battle_config.dynamic_mobs) { //Dynamic mobs flag by [random] int j; - if(maplist[i].mob_delete_timer != INVALID_TIMER) - timer->delete(maplist[i].mob_delete_timer, map->removemobs_timer); + if(map->list[i].mob_delete_timer != INVALID_TIMER) + timer->delete(map->list[i].mob_delete_timer, map->removemobs_timer); for (j=0; j<MAX_MOB_LIST_PER_MAP; j++) - if (maplist[i].moblist[j]) aFree(maplist[i].moblist[j]); + if (map->list[i].moblist[j]) aFree(map->list[i].moblist[j]); } - if( maplist[i].unit_count ) { - for(v = 0; v < maplist[i].unit_count; v++) { - aFree(maplist[i].units[v]); + if( map->list[i].unit_count ) { + for(v = 0; v < map->list[i].unit_count; v++) { + aFree(map->list[i].units[v]); } - if( maplist[i].units ) { - aFree(maplist[i].units); - maplist[i].units = NULL; + if( map->list[i].units ) { + aFree(map->list[i].units); + map->list[i].units = NULL; } - maplist[i].unit_count = 0; + map->list[i].unit_count = 0; } - if( maplist[i].skill_count ) { - for(v = 0; v < maplist[i].skill_count; v++) { - aFree(maplist[i].skills[v]); + if( map->list[i].skill_count ) { + for(v = 0; v < map->list[i].skill_count; v++) { + aFree(map->list[i].skills[v]); } - if( maplist[i].skills ) { - aFree(maplist[i].skills); - maplist[i].skills = NULL; + if( map->list[i].skills ) { + aFree(map->list[i].skills); + map->list[i].skills = NULL; } - maplist[i].skill_count = 0; + map->list[i].skill_count = 0; } - if( maplist[i].zone_mf_count ) { - for(v = 0; v < maplist[i].zone_mf_count; v++) { - aFree(maplist[i].zone_mf[v]); + if( map->list[i].zone_mf_count ) { + for(v = 0; v < map->list[i].zone_mf_count; v++) { + aFree(map->list[i].zone_mf[v]); } - if( maplist[i].zone_mf ) { - aFree(maplist[i].zone_mf); - maplist[i].zone_mf = NULL; + if( map->list[i].zone_mf ) { + aFree(map->list[i].zone_mf); + map->list[i].zone_mf = NULL; } - maplist[i].zone_mf_count = 0; + map->list[i].zone_mf_count = 0; } - if( maplist[i].channel ) - clif->chsys_delete(maplist[i].channel); + if( map->list[i].channel ) + clif->chsys_delete(map->list[i].channel); } void do_final_maps(void) { int i, v = 0; - for( i = 0; i < map->map_num; i++ ) { + for( i = 0; i < map->count; i++ ) { - if(maplist[i].cell && maplist[i].cell != (struct mapcell *)0xdeadbeaf ) aFree(maplist[i].cell); - if(maplist[i].block) aFree(maplist[i].block); - if(maplist[i].block_mob) aFree(maplist[i].block_mob); + if(map->list[i].cell && map->list[i].cell != (struct mapcell *)0xdeadbeaf ) aFree(map->list[i].cell); + if(map->list[i].block) aFree(map->list[i].block); + if(map->list[i].block_mob) aFree(map->list[i].block_mob); if(battle_config.dynamic_mobs) { //Dynamic mobs flag by [random] int j; - if(maplist[i].mob_delete_timer != INVALID_TIMER) - timer->delete(maplist[i].mob_delete_timer, map->removemobs_timer); + if(map->list[i].mob_delete_timer != INVALID_TIMER) + timer->delete(map->list[i].mob_delete_timer, map->removemobs_timer); for (j=0; j<MAX_MOB_LIST_PER_MAP; j++) - if (maplist[i].moblist[j]) aFree(maplist[i].moblist[j]); + if (map->list[i].moblist[j]) aFree(map->list[i].moblist[j]); } - if( maplist[i].unit_count ) { - for(v = 0; v < maplist[i].unit_count; v++) { - aFree(maplist[i].units[v]); + if( map->list[i].unit_count ) { + for(v = 0; v < map->list[i].unit_count; v++) { + aFree(map->list[i].units[v]); } - if( maplist[i].units ) { - aFree(maplist[i].units); - maplist[i].units = NULL; + if( map->list[i].units ) { + aFree(map->list[i].units); + map->list[i].units = NULL; } - maplist[i].unit_count = 0; + map->list[i].unit_count = 0; } - if( maplist[i].skill_count ) { - for(v = 0; v < maplist[i].skill_count; v++) { - aFree(maplist[i].skills[v]); + if( map->list[i].skill_count ) { + for(v = 0; v < map->list[i].skill_count; v++) { + aFree(map->list[i].skills[v]); } - if( maplist[i].skills ) { - aFree(maplist[i].skills); - maplist[i].skills = NULL; + if( map->list[i].skills ) { + aFree(map->list[i].skills); + map->list[i].skills = NULL; } - maplist[i].skill_count = 0; + map->list[i].skill_count = 0; } - if( maplist[i].zone_mf_count ) { - for(v = 0; v < maplist[i].zone_mf_count; v++) { - aFree(maplist[i].zone_mf[v]); + if( map->list[i].zone_mf_count ) { + for(v = 0; v < map->list[i].zone_mf_count; v++) { + aFree(map->list[i].zone_mf[v]); } - if( maplist[i].zone_mf ) { - aFree(maplist[i].zone_mf); - maplist[i].zone_mf = NULL; + if( map->list[i].zone_mf ) { + aFree(map->list[i].zone_mf); + map->list[i].zone_mf = NULL; } - maplist[i].zone_mf_count = 0; + map->list[i].zone_mf_count = 0; } - if( maplist[i].drop_list_count ) { - maplist[i].drop_list_count = 0; + if( map->list[i].drop_list_count ) { + map->list[i].drop_list_count = 0; } - if( maplist[i].drop_list != NULL ) - aFree(maplist[i].drop_list); + if( map->list[i].drop_list != NULL ) + aFree(map->list[i].drop_list); - if( maplist[i].channel ) - clif->chsys_delete(maplist[i].channel); + if( map->list[i].channel ) + clif->chsys_delete(map->list[i].channel); } - map_zone_db_clear(); + map->zone_db_clear(); } /// Initializes map flags and adjusts them depending on configuration. void map_flags_init(void) { int i, v = 0; - for( i = 0; i < map->map_num; i++ ) { + for( i = 0; i < map->count; i++ ) { // mapflags - memset(&maplist[i].flag, 0, sizeof(maplist[i].flag)); + memset(&map->list[i].flag, 0, sizeof(map->list[i].flag)); // additional mapflag data - maplist[i].nocommand = 0; // nocommand mapflag level - maplist[i].bexp = 100; // per map base exp multiplicator - maplist[i].jexp = 100; // per map job exp multiplicator - if( maplist[i].drop_list != NULL ) - aFree(maplist[i].drop_list); - maplist[i].drop_list = NULL; - maplist[i].drop_list_count = 0; - - if( maplist[i].unit_count ) { - for(v = 0; v < maplist[i].unit_count; v++) { - aFree(maplist[i].units[v]); + map->list[i].nocommand = 0; // nocommand mapflag level + map->list[i].bexp = 100; // per map base exp multiplicator + map->list[i].jexp = 100; // per map job exp multiplicator + if( map->list[i].drop_list != NULL ) + aFree(map->list[i].drop_list); + map->list[i].drop_list = NULL; + map->list[i].drop_list_count = 0; + + if( map->list[i].unit_count ) { + for(v = 0; v < map->list[i].unit_count; v++) { + aFree(map->list[i].units[v]); } - aFree(maplist[i].units); + aFree(map->list[i].units); } - maplist[i].units = NULL; - maplist[i].unit_count = 0; + map->list[i].units = NULL; + map->list[i].unit_count = 0; - if( maplist[i].skill_count ) { - for(v = 0; v < maplist[i].skill_count; v++) { - aFree(maplist[i].skills[v]); + if( map->list[i].skill_count ) { + for(v = 0; v < map->list[i].skill_count; v++) { + aFree(map->list[i].skills[v]); } - aFree(maplist[i].skills); + aFree(map->list[i].skills); } - maplist[i].skills = NULL; - maplist[i].skill_count = 0; + map->list[i].skills = NULL; + map->list[i].skill_count = 0; // adjustments if( battle_config.pk_mode ) { - maplist[i].flag.pvp = 1; // make all maps pvp for pk_mode [Valaris] - maplist[i].zone = &map_zone_pk; + map->list[i].flag.pvp = 1; // make all maps pvp for pk_mode [Valaris] + map->list[i].zone = &map->zone_pk; } else /* align with 'All' zone */ - maplist[i].zone = &map_zone_all; + map->list[i].zone = &map->zone_all; - if( maplist[i].zone_mf_count ) { - for(v = 0; v < maplist[i].zone_mf_count; v++) { - aFree(maplist[i].zone_mf[v]); + if( map->list[i].zone_mf_count ) { + for(v = 0; v < map->list[i].zone_mf_count; v++) { + aFree(map->list[i].zone_mf[v]); } - aFree(maplist[i].zone_mf); + aFree(map->list[i].zone_mf); } - maplist[i].zone_mf = NULL; - maplist[i].zone_mf_count = 0; - maplist[i].prev_zone = maplist[i].zone; + map->list[i].zone_mf = NULL; + map->list[i].zone_mf_count = 0; + map->list[i].prev_zone = map->list[i].zone; - maplist[i].invincible_time_inc = 0; + map->list[i].invincible_time_inc = 0; - maplist[i].weapon_damage_rate = 100; - maplist[i].magic_damage_rate = 100; - maplist[i].misc_damage_rate = 100; - maplist[i].short_damage_rate = 100; - maplist[i].long_damage_rate = 100; + map->list[i].weapon_damage_rate = 100; + map->list[i].magic_damage_rate = 100; + map->list[i].misc_damage_rate = 100; + map->list[i].short_damage_rate = 100; + map->list[i].long_damage_rate = 100; } } #define NO_WATER 1000000 /* -* Reads from the .rsw for each map -* Returns water height (or NO_WATER if file doesn't exist) or other error is encountered. -* Assumed path for file is data/mapname.rsw -* Credits to LittleWolf -*/ + * Reads from the .rsw for each map + * Returns water height (or NO_WATER if file doesn't exist) or other error is encountered. + * Assumed path for file is data/mapname.rsw + * Credits to LittleWolf + */ int map_waterheight(char* mapname) { char fn[256]; @@ -3032,8 +3204,8 @@ int map_waterheight(char* mapname) } /*================================== -* .GAT format -*----------------------------------*/ + * .GAT format + *----------------------------------*/ int map_readgat (struct map_data* m) { char filename[256]; @@ -3052,7 +3224,7 @@ int map_readgat (struct map_data* m) num_cells = m->xs * m->ys; CREATE(m->cell, struct mapcell, num_cells); - water_height = map_waterheight(m->name); + water_height = map->waterheight(m->name); // Set cell properties off = 14; @@ -3066,7 +3238,7 @@ int map_readgat (struct map_data* m) if( type == 0 && water_height != NO_WATER && height > water_height ) type = 3; // Cell is 0 (walkable) but under water level, set to 3 (walkable water) - m->cell[xy] = map_gat2cell(type); + m->cell[xy] = map->gat2cell(type); } aFree(gat); @@ -3075,25 +3247,25 @@ int map_readgat (struct map_data* m) } /*====================================== -* Add/Remove map to the map_db -*--------------------------------------*/ + * Add/Remove map to the map_db + *--------------------------------------*/ void map_addmap2db(struct map_data *m) { - index2mapid[m->index] = m->m; + map->index2mapid[m->index] = m->m; } void map_removemapdb(struct map_data *m) { - index2mapid[m->index] = -1; + map->index2mapid[m->index] = -1; } /*====================================== -* Initiate maps loading stage -*--------------------------------------*/ + * Initiate maps loading stage + *--------------------------------------*/ int map_readallmaps (void) { int i; FILE* fp=NULL; int maps_removed = 0; - if( enable_grf ) + if( map->enable_grf ) ShowStatus("Loading maps (using GRF files)...\n"); else { char mapcachefilepath[254]; @@ -3105,73 +3277,73 @@ int map_readallmaps (void) { } // Init mapcache data.. [Shinryo] - map_cache_buffer = map_init_mapcache(fp); - if(!map_cache_buffer) { + map->cache_buffer = map->init_mapcache(fp); + if(!map->cache_buffer) { ShowFatalError("Failed to initialize mapcache data (%s)..\n", mapcachefilepath); exit(EXIT_FAILURE); } } - for(i = 0; i < map->map_num; i++) { + for(i = 0; i < map->count; i++) { size_t size; // show progress - if(enable_grf) - ShowStatus("Loading maps [%i/%i]: %s"CL_CLL"\r", i, map->map_num, maplist[i].name); + if(map->enable_grf) + ShowStatus("Loading maps [%i/%i]: %s"CL_CLL"\r", i, map->count, map->list[i].name); // try to load the map if( ! - (enable_grf? - map_readgat(&maplist[i]) - :map_readfromcache(&maplist[i], map_cache_buffer)) + (map->enable_grf? + map->readgat(&map->list[i]) + :map->readfromcache(&map->list[i], map->cache_buffer)) ) { - map_delmapid(i); + map->delmapid(i); maps_removed++; i--; continue; } - maplist[i].index = mapindex_name2id(maplist[i].name); + map->list[i].index = mapindex_name2id(map->list[i].name); - if ( index2mapid[map_id2index(i)] != -1 ) { - ShowWarning("Map %s already loaded!"CL_CLL"\n", maplist[i].name); - if (maplist[i].cell && maplist[i].cell != (struct mapcell *)0xdeadbeaf) { - aFree(maplist[i].cell); - maplist[i].cell = NULL; + if ( map->index2mapid[map_id2index(i)] != -1 ) { + ShowWarning("Map %s already loaded!"CL_CLL"\n", map->list[i].name); + if (map->list[i].cell && map->list[i].cell != (struct mapcell *)0xdeadbeaf) { + aFree(map->list[i].cell); + map->list[i].cell = NULL; } - map_delmapid(i); + map->delmapid(i); maps_removed++; i--; continue; } - maplist[i].m = i; - map->addmap2db(&maplist[i]); + map->list[i].m = i; + map->addmap2db(&map->list[i]); - memset(maplist[i].moblist, 0, sizeof(maplist[i].moblist)); //Initialize moblist [Skotlex] - maplist[i].mob_delete_timer = INVALID_TIMER; //Initialize timer [Skotlex] + memset(map->list[i].moblist, 0, sizeof(map->list[i].moblist)); //Initialize moblist [Skotlex] + map->list[i].mob_delete_timer = INVALID_TIMER; //Initialize timer [Skotlex] - maplist[i].bxs = (maplist[i].xs + BLOCK_SIZE - 1) / BLOCK_SIZE; - maplist[i].bys = (maplist[i].ys + BLOCK_SIZE - 1) / BLOCK_SIZE; + map->list[i].bxs = (map->list[i].xs + BLOCK_SIZE - 1) / BLOCK_SIZE; + map->list[i].bys = (map->list[i].ys + BLOCK_SIZE - 1) / BLOCK_SIZE; - size = maplist[i].bxs * maplist[i].bys * sizeof(struct block_list*); - maplist[i].block = (struct block_list**)aCalloc(size, 1); - maplist[i].block_mob = (struct block_list**)aCalloc(size, 1); + size = map->list[i].bxs * map->list[i].bys * sizeof(struct block_list*); + map->list[i].block = (struct block_list**)aCalloc(size, 1); + map->list[i].block_mob = (struct block_list**)aCalloc(size, 1); - maplist[i].getcellp = map_sub_getcellp; - maplist[i].setcell = map_sub_setcell; + map->list[i].getcellp = map->sub_getcellp; + map->list[i].setcell = map->sub_setcell; } // intialization and configuration-dependent adjustments of mapflags map->flags_init(); - if( !enable_grf ) { + if( !map->enable_grf ) { fclose(fp); } // finished map loading - ShowInfo("Successfully loaded '"CL_WHITE"%d"CL_RESET"' maps."CL_CLL"\n",map->map_num); - instance->start_id = map->map_num; // Next Map Index will be instances + ShowInfo("Successfully loaded '"CL_WHITE"%d"CL_RESET"' maps."CL_CLL"\n",map->count); + instance->start_id = map->count; // Next Map Index will be instances if (maps_removed) ShowNotice("Maps removed: '"CL_WHITE"%d"CL_RESET"'\n",maps_removed); @@ -3179,13 +3351,9 @@ int map_readallmaps (void) { return 0; } -//////////////////////////////////////////////////////////////////////// -static int map_ip_set = 0; -static int char_ip_set = 0; - /*========================================== -* Read map server configuration files (conf/map_server.conf...) -*------------------------------------------*/ + * Read map server configuration files (conf/map_server.conf...) + *------------------------------------------*/ int map_config_read(char *cfgName) { char line[1024], w1[1024], w2[1024]; FILE *fp; @@ -3225,20 +3393,20 @@ int map_config_read(char *cfgName) { else if (strcmpi(w1, "passwd") == 0) chrif->setpasswd(w2); else if (strcmpi(w1, "char_ip") == 0) - char_ip_set = chrif->setip(w2); + map->char_ip_set = chrif->setip(w2); else if (strcmpi(w1, "char_port") == 0) chrif->setport(atoi(w2)); else if (strcmpi(w1, "map_ip") == 0) - map_ip_set = clif->setip(w2); + map->ip_set = clif->setip(w2); else if (strcmpi(w1, "bind_ip") == 0) clif->setbindip(w2); else if (strcmpi(w1, "map_port") == 0) { clif->setport(atoi(w2)); - map_port = (atoi(w2)); + map->port = (atoi(w2)); } else if (strcmpi(w1, "map") == 0) - map->map_num++; + map->count++; else if (strcmpi(w1, "delmap") == 0) - map->map_num--; + map->count--; else if (strcmpi(w1, "npc") == 0) npc->addsrcfile(w2); else if (strcmpi(w1, "delnpc") == 0) @@ -3266,11 +3434,11 @@ int map_config_read(char *cfgName) { else if (strcmpi(w1, "enable_spy") == 0) map->enable_spy = config_switch(w2); else if (strcmpi(w1, "use_grf") == 0) - enable_grf = config_switch(w2); + map->enable_grf = config_switch(w2); else if (strcmpi(w1, "console_msg_log") == 0) console_msg_log = atoi(w2);//[Ind] else if (strcmpi(w1, "import") == 0) - map_config_read(w2); + map->config_read(w2); else ShowWarning("Unknown setting '%s' in file %s\n", w1, cfgName); } @@ -3305,11 +3473,11 @@ int map_config_read_sub(char *cfgName) { *ptr = '\0'; if (strcmpi(w1, "map") == 0) - map_addmap(w2); + map->addmap(w2); else if (strcmpi(w1, "delmap") == 0) map->delmap(w2); else if (strcmpi(w1, "import") == 0) - map_config_read_sub(w2); + map->config_read_sub(w2); } fclose(fp); @@ -3347,7 +3515,7 @@ void map_reloadnpc_sub(char *cfgName) if (strcmpi(w1, "npc") == 0) npc->addsrcfile(w2); else if (strcmpi(w1, "import") == 0) - map_reloadnpc_sub(w2); + map->reloadnpc_sub(w2); else ShowWarning("Unknown setting '%s' in file %s\n", w1, cfgName); } @@ -3361,9 +3529,9 @@ void map_reloadnpc(bool clear) npc->addsrcfile("clear"); // this will clear the current script list #ifdef RENEWAL - map_reloadnpc_sub("npc/re/scripts_main.conf"); + map->reloadnpc_sub("npc/re/scripts_main.conf"); #else - map_reloadnpc_sub("npc/pre-re/scripts_main.conf"); + map->reloadnpc_sub("npc/pre-re/scripts_main.conf"); #endif } @@ -3400,17 +3568,17 @@ int inter_config_read(char *cfgName) { strcpy(map->interreg_db,w2); /* map sql stuff */ else if(strcmpi(w1,"map_server_ip")==0) - strcpy(map_server_ip, w2); + strcpy(map->server_ip, w2); else if(strcmpi(w1,"map_server_port")==0) - map_server_port=atoi(w2); + map->server_port=atoi(w2); else if(strcmpi(w1,"map_server_id")==0) - strcpy(map_server_id, w2); + strcpy(map->server_id, w2); else if(strcmpi(w1,"map_server_pw")==0) - strcpy(map_server_pw, w2); + strcpy(map->server_pw, w2); else if(strcmpi(w1,"map_server_db")==0) - strcpy(map_server_db, w2); + strcpy(map->server_db, w2); else if(strcmpi(w1,"default_codepage")==0) - strcpy(default_codepage, w2); + strcpy(map->default_codepage, w2); else if(strcmpi(w1,"use_sql_item_db")==0) { map->db_use_sql_item_db = config_switch(w2); ShowStatus ("Using item database as SQL: '%s'\n", w2); @@ -3425,21 +3593,21 @@ int inter_config_read(char *cfgName) { } /* sql log db */ else if(strcmpi(w1,"log_db_ip")==0) - strcpy(log_db_ip, w2); + strcpy(logs->db_ip, w2); else if(strcmpi(w1,"log_db_id")==0) - strcpy(log_db_id, w2); + strcpy(logs->db_id, w2); else if(strcmpi(w1,"log_db_pw")==0) - strcpy(log_db_pw, w2); + strcpy(logs->db_pw, w2); else if(strcmpi(w1,"log_db_port")==0) - log_db_port = atoi(w2); + logs->db_port = atoi(w2); else if(strcmpi(w1,"log_db_db")==0) - strcpy(log_db_db, w2); + strcpy(logs->db_name, w2); /* mapreg */ else if( mapreg->config_read(w1,w2) ) continue; /* import */ else if(strcmpi(w1,"import")==0) - inter_config_read(w2); + map->inter_config_read(w2); } fclose(fp); @@ -3447,21 +3615,21 @@ int inter_config_read(char *cfgName) { } /*======================================= -* MySQL Init -*---------------------------------------*/ + * MySQL Init + *---------------------------------------*/ int map_sql_init(void) { // main db connection - mmysql_handle = SQL->Malloc(); + map->mysql_handle = SQL->Malloc(); ShowInfo("Connecting to the Map DB Server....\n"); - if( SQL_ERROR == SQL->Connect(mmysql_handle, map_server_id, map_server_pw, map_server_ip, map_server_port, map_server_db) ) + if( SQL_ERROR == SQL->Connect(map->mysql_handle, map->server_id, map->server_pw, map->server_ip, map->server_port, map->server_db) ) exit(EXIT_FAILURE); ShowStatus("connect success! (Map Server Connection)\n"); - if( strlen(default_codepage) > 0 ) - if ( SQL_ERROR == SQL->SetEncoding(mmysql_handle, default_codepage) ) - Sql_ShowDebug(mmysql_handle); + if( strlen(map->default_codepage) > 0 ) + if ( SQL_ERROR == SQL->SetEncoding(map->mysql_handle, map->default_codepage) ) + Sql_ShowDebug(map->mysql_handle); return 0; } @@ -3469,46 +3637,29 @@ int map_sql_init(void) int map_sql_close(void) { ShowStatus("Close Map DB Connection....\n"); - SQL->Free(mmysql_handle); - mmysql_handle = NULL; + SQL->Free(map->mysql_handle); + map->mysql_handle = NULL; if (logs->config.sql_logs) { - ShowStatus("Close Log DB Connection....\n"); - SQL->Free(logmysql_handle); - logmysql_handle = NULL; + logs->sql_final(); } return 0; } -int log_sql_init(void) -{ - // log db connection - logmysql_handle = SQL->Malloc(); - - ShowInfo(""CL_WHITE"[SQL]"CL_RESET": Connecting to the Log Database "CL_WHITE"%s"CL_RESET" At "CL_WHITE"%s"CL_RESET"...\n",log_db_db,log_db_ip); - if ( SQL_ERROR == SQL->Connect(logmysql_handle, log_db_id, log_db_pw, log_db_ip, log_db_port, log_db_db) ) - exit(EXIT_FAILURE); - ShowStatus(""CL_WHITE"[SQL]"CL_RESET": Successfully '"CL_GREEN"connected"CL_RESET"' to Database '"CL_WHITE"%s"CL_RESET"'.\n", log_db_db); - - if( strlen(default_codepage) > 0 ) - if ( SQL_ERROR == SQL->SetEncoding(logmysql_handle, default_codepage) ) - Sql_ShowDebug(logmysql_handle); - return 0; -} void map_zone_change2(int m, struct map_zone_data *zone) { char empty[1] = "\0"; - maplist[m].prev_zone = maplist[m].zone; + map->list[m].prev_zone = map->list[m].zone; - if( maplist[m].zone_mf_count ) + if( map->list[m].zone_mf_count ) map->zone_remove(m); map->zone_apply(m,zone,empty,empty,empty); } /* when changing from a mapflag to another during runtime */ void map_zone_change(int m, struct map_zone_data *zone, const char* start, const char* buffer, const char* filepath) { - maplist[m].prev_zone = maplist[m].zone; + map->list[m].prev_zone = map->list[m].zone; - if( maplist[m].zone_mf_count ) + if( map->list[m].zone_mf_count ) map->zone_remove(m); map->zone_apply(m,zone,start,buffer,filepath); } @@ -3517,10 +3668,10 @@ void map_zone_remove(int m) { char flag[MAP_ZONE_MAPFLAG_LENGTH], params[MAP_ZONE_MAPFLAG_LENGTH]; unsigned short k; char empty[1] = "\0"; - for(k = 0; k < maplist[m].zone_mf_count; k++) { - int len = strlen(maplist[m].zone_mf[k]),j; + for(k = 0; k < map->list[m].zone_mf_count; k++) { + int len = strlen(map->list[m].zone_mf[k]),j; params[0] = '\0'; - memcpy(flag, maplist[m].zone_mf[k], MAP_ZONE_MAPFLAG_LENGTH); + memcpy(flag, map->list[m].zone_mf[k], MAP_ZONE_MAPFLAG_LENGTH); for(j = 0; j < len; j++) { if( flag[j] == '\t' ) { memcpy(params, &flag[j+1], len - j); @@ -3529,19 +3680,19 @@ void map_zone_remove(int m) { } } - npc->parse_mapflag(maplist[m].name,empty,flag,params,empty,empty,empty); - aFree(maplist[m].zone_mf[k]); - maplist[m].zone_mf[k] = NULL; + npc->parse_mapflag(map->list[m].name,empty,flag,params,empty,empty,empty); + aFree(map->list[m].zone_mf[k]); + map->list[m].zone_mf[k] = NULL; } - aFree(maplist[m].zone_mf); - maplist[m].zone_mf = NULL; - maplist[m].zone_mf_count = 0; + aFree(map->list[m].zone_mf); + map->list[m].zone_mf = NULL; + map->list[m].zone_mf_count = 0; } static inline void map_zone_mf_cache_add(int m, char *rflag) { - RECREATE(maplist[m].zone_mf, char *, ++maplist[m].zone_mf_count); - CREATE(maplist[m].zone_mf[maplist[m].zone_mf_count - 1], char, MAP_ZONE_MAPFLAG_LENGTH); - safestrncpy(maplist[m].zone_mf[maplist[m].zone_mf_count - 1], rflag, MAP_ZONE_MAPFLAG_LENGTH); + RECREATE(map->list[m].zone_mf, char *, ++map->list[m].zone_mf_count); + CREATE(map->list[m].zone_mf[map->list[m].zone_mf_count - 1], char, MAP_ZONE_MAPFLAG_LENGTH); + safestrncpy(map->list[m].zone_mf[map->list[m].zone_mf_count - 1], rflag, MAP_ZONE_MAPFLAG_LENGTH); } /* TODO: introduce enumerations to each mapflag so instead of reading the string a number of times we read it only once and use its value wherever we need */ /* cache previous values to revert */ @@ -3557,157 +3708,157 @@ bool map_zone_mf_cache(int m, char *flag, char *params) { char savemap[32]; int savex, savey; if (state == 0) { - if( maplist[m].flag.nosave ) { + if( map->list[m].flag.nosave ) { sprintf(rflag, "nosave\tSavePoint"); map_zone_mf_cache_add(m,nosave); } } else if (!strcmpi(params, "SavePoint")) { - if( maplist[m].save.map ) { - sprintf(rflag, "nosave\t%s,%d,%d",mapindex_id2name(maplist[m].save.map),maplist[m].save.x,maplist[m].save.y); + if( map->list[m].save.map ) { + sprintf(rflag, "nosave\t%s,%d,%d",mapindex_id2name(map->list[m].save.map),map->list[m].save.x,map->list[m].save.y); } else - sprintf(rflag, "nosave\t%s,%d,%d",mapindex_id2name(maplist[m].save.map),maplist[m].save.x,maplist[m].save.y); + sprintf(rflag, "nosave\t%s,%d,%d",mapindex_id2name(map->list[m].save.map),map->list[m].save.x,map->list[m].save.y); map_zone_mf_cache_add(m,nosave); } else if (sscanf(params, "%31[^,],%d,%d", savemap, &savex, &savey) == 3) { - if( maplist[m].save.map ) { - sprintf(rflag, "nosave\t%s,%d,%d",mapindex_id2name(maplist[m].save.map),maplist[m].save.x,maplist[m].save.y); + if( map->list[m].save.map ) { + sprintf(rflag, "nosave\t%s,%d,%d",mapindex_id2name(map->list[m].save.map),map->list[m].save.x,map->list[m].save.y); map_zone_mf_cache_add(m,nosave); } } #endif // 0 } else if (!strcmpi(flag,"autotrade")) { - if( state && maplist[m].flag.autotrade ) + if( state && map->list[m].flag.autotrade ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"autotrade\toff"); - else if( !maplist[m].flag.autotrade ) + else if( !map->list[m].flag.autotrade ) map_zone_mf_cache_add(m,"autotrade"); } } else if (!strcmpi(flag,"allowks")) { - if( state && maplist[m].flag.allowks ) + if( state && map->list[m].flag.allowks ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"allowks\toff"); - else if( !maplist[m].flag.allowks ) + else if( !map->list[m].flag.allowks ) map_zone_mf_cache_add(m,"allowks"); } } else if (!strcmpi(flag,"town")) { - if( state && maplist[m].flag.town ) + if( state && map->list[m].flag.town ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"town\toff"); - else if( !maplist[m].flag.town ) + else if( !map->list[m].flag.town ) map_zone_mf_cache_add(m,"town"); } } else if (!strcmpi(flag,"nomemo")) { - if( state && maplist[m].flag.nomemo ) + if( state && map->list[m].flag.nomemo ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nomemo\toff"); - else if( !maplist[m].flag.nomemo ) + else if( !map->list[m].flag.nomemo ) map_zone_mf_cache_add(m,"nomemo"); } } else if (!strcmpi(flag,"noteleport")) { - if( state && maplist[m].flag.noteleport ) + if( state && map->list[m].flag.noteleport ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"noteleport\toff"); - else if( !maplist[m].flag.noteleport ) + else if( !map->list[m].flag.noteleport ) map_zone_mf_cache_add(m,"noteleport"); } } else if (!strcmpi(flag,"nowarp")) { - if( state && maplist[m].flag.nowarp ) + if( state && map->list[m].flag.nowarp ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nowarp\toff"); - else if( !maplist[m].flag.nowarp ) + else if( !map->list[m].flag.nowarp ) map_zone_mf_cache_add(m,"nowarp"); } } else if (!strcmpi(flag,"nowarpto")) { - if( state && maplist[m].flag.nowarpto ) + if( state && map->list[m].flag.nowarpto ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nowarpto\toff"); - else if( !maplist[m].flag.nowarpto ) + else if( !map->list[m].flag.nowarpto ) map_zone_mf_cache_add(m,"nowarpto"); } } else if (!strcmpi(flag,"noreturn")) { - if( state && maplist[m].flag.noreturn ) + if( state && map->list[m].flag.noreturn ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"noreturn\toff"); - else if( maplist[m].flag.noreturn ) + else if( map->list[m].flag.noreturn ) map_zone_mf_cache_add(m,"noreturn"); } } else if (!strcmpi(flag,"monster_noteleport")) { - if( state && maplist[m].flag.monster_noteleport ) + if( state && map->list[m].flag.monster_noteleport ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"monster_noteleport\toff"); - else if( maplist[m].flag.monster_noteleport ) + else if( map->list[m].flag.monster_noteleport ) map_zone_mf_cache_add(m,"monster_noteleport"); } } else if (!strcmpi(flag,"nobranch")) { - if( state && maplist[m].flag.nobranch ) + if( state && map->list[m].flag.nobranch ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nobranch\toff"); - else if( maplist[m].flag.nobranch ) + else if( map->list[m].flag.nobranch ) map_zone_mf_cache_add(m,"nobranch"); } } else if (!strcmpi(flag,"nopenalty")) { - if( state && maplist[m].flag.noexppenalty ) /* they are applied together, no need to check both */ + if( state && map->list[m].flag.noexppenalty ) /* they are applied together, no need to check both */ ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nopenalty\toff"); - else if( maplist[m].flag.noexppenalty ) + else if( map->list[m].flag.noexppenalty ) map_zone_mf_cache_add(m,"nopenalty"); } } else if (!strcmpi(flag,"pvp")) { - if( state && maplist[m].flag.pvp ) + if( state && map->list[m].flag.pvp ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"pvp\toff"); - else if( maplist[m].flag.pvp ) + else if( map->list[m].flag.pvp ) map_zone_mf_cache_add(m,"pvp"); } } else if (!strcmpi(flag,"pvp_noparty")) { - if( state && maplist[m].flag.pvp_noparty ) + if( state && map->list[m].flag.pvp_noparty ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"pvp_noparty\toff"); - else if( maplist[m].flag.pvp_noparty ) + else if( map->list[m].flag.pvp_noparty ) map_zone_mf_cache_add(m,"pvp_noparty"); } } else if (!strcmpi(flag,"pvp_noguild")) { - if( state && maplist[m].flag.pvp_noguild ) + if( state && map->list[m].flag.pvp_noguild ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"pvp_noguild\toff"); - else if( maplist[m].flag.pvp_noguild ) + else if( map->list[m].flag.pvp_noguild ) map_zone_mf_cache_add(m,"pvp_noguild"); } } else if (!strcmpi(flag, "pvp_nightmaredrop")) { - if( state && maplist[m].flag.pvp_nightmaredrop ) + if( state && map->list[m].flag.pvp_nightmaredrop ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"pvp_nightmaredrop\toff"); - else if( maplist[m].flag.pvp_nightmaredrop ) + else if( map->list[m].flag.pvp_nightmaredrop ) map_zone_mf_cache_add(m,"pvp_nightmaredrop"); } #if 0 /* not yet fully supported */ @@ -3729,262 +3880,262 @@ bool map_zone_mf_cache(int m, char *flag, char *params) { if (drop_id != 0) { int i; for (i = 0; i < MAX_DROP_PER_MAP; i++) { - if (maplist[m].drop_list[i].drop_id == 0){ - maplist[m].drop_list[i].drop_id = drop_id; - maplist[m].drop_list[i].drop_type = drop_type; - maplist[m].drop_list[i].drop_per = drop_per; + if (map->list[m].drop_list[i].drop_id == 0){ + map->list[m].drop_list[i].drop_id = drop_id; + map->list[m].drop_list[i].drop_type = drop_type; + map->list[m].drop_list[i].drop_per = drop_per; break; } } - maplist[m].flag.pvp_nightmaredrop = 1; + map->list[m].flag.pvp_nightmaredrop = 1; } } else if (!state) //Disable - maplist[m].flag.pvp_nightmaredrop = 0; + map->list[m].flag.pvp_nightmaredrop = 0; #endif // 0 } else if (!strcmpi(flag,"pvp_nocalcrank")) { - if( state && maplist[m].flag.pvp_nocalcrank ) + if( state && map->list[m].flag.pvp_nocalcrank ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"pvp_nocalcrank\toff"); - else if( maplist[m].flag.pvp_nocalcrank ) + else if( map->list[m].flag.pvp_nocalcrank ) map_zone_mf_cache_add(m,"pvp_nocalcrank"); } } else if (!strcmpi(flag,"gvg")) { - if( state && maplist[m].flag.gvg ) + if( state && map->list[m].flag.gvg ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"gvg\toff"); - else if( maplist[m].flag.gvg ) + else if( map->list[m].flag.gvg ) map_zone_mf_cache_add(m,"gvg"); } } else if (!strcmpi(flag,"gvg_noparty")) { - if( state && maplist[m].flag.gvg_noparty ) + if( state && map->list[m].flag.gvg_noparty ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"gvg_noparty\toff"); - else if( maplist[m].flag.gvg_noparty ) + else if( map->list[m].flag.gvg_noparty ) map_zone_mf_cache_add(m,"gvg_noparty"); } } else if (!strcmpi(flag,"gvg_dungeon")) { - if( state && maplist[m].flag.gvg_dungeon ) + if( state && map->list[m].flag.gvg_dungeon ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"gvg_dungeon\toff"); - else if( maplist[m].flag.gvg_dungeon ) + else if( map->list[m].flag.gvg_dungeon ) map_zone_mf_cache_add(m,"gvg_dungeon"); } } else if (!strcmpi(flag,"gvg_castle")) { - if( state && maplist[m].flag.gvg_castle ) + if( state && map->list[m].flag.gvg_castle ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"gvg_castle\toff"); - else if( maplist[m].flag.gvg_castle ) + else if( map->list[m].flag.gvg_castle ) map_zone_mf_cache_add(m,"gvg_castle"); } } else if (!strcmpi(flag,"battleground")) { - if( state && maplist[m].flag.battleground ) + if( state && map->list[m].flag.battleground ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"battleground\toff"); - else if( maplist[m].flag.battleground ) + else if( map->list[m].flag.battleground ) map_zone_mf_cache_add(m,"battleground"); } } else if (!strcmpi(flag,"noexppenalty")) { - if( state && maplist[m].flag.noexppenalty ) + if( state && map->list[m].flag.noexppenalty ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"noexppenalty\toff"); - else if( maplist[m].flag.noexppenalty ) + else if( map->list[m].flag.noexppenalty ) map_zone_mf_cache_add(m,"noexppenalty"); } } else if (!strcmpi(flag,"nozenypenalty")) { - if( state && maplist[m].flag.nozenypenalty ) + if( state && map->list[m].flag.nozenypenalty ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nozenypenalty\toff"); - else if( maplist[m].flag.nozenypenalty ) + else if( map->list[m].flag.nozenypenalty ) map_zone_mf_cache_add(m,"nozenypenalty"); } } else if (!strcmpi(flag,"notrade")) { - if( state && maplist[m].flag.notrade ) + if( state && map->list[m].flag.notrade ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"notrade\toff"); - else if( maplist[m].flag.notrade ) + else if( map->list[m].flag.notrade ) map_zone_mf_cache_add(m,"notrade"); } } else if (!strcmpi(flag,"novending")) { - if( state && maplist[m].flag.novending ) + if( state && map->list[m].flag.novending ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"novending\toff"); - else if( maplist[m].flag.novending ) + else if( map->list[m].flag.novending ) map_zone_mf_cache_add(m,"novending"); } } else if (!strcmpi(flag,"nodrop")) { - if( state && maplist[m].flag.nodrop ) + if( state && map->list[m].flag.nodrop ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nodrop\toff"); - else if( maplist[m].flag.nodrop ) + else if( map->list[m].flag.nodrop ) map_zone_mf_cache_add(m,"nodrop"); } } else if (!strcmpi(flag,"noskill")) { - if( state && maplist[m].flag.noskill ) + if( state && map->list[m].flag.noskill ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"noskill\toff"); - else if( maplist[m].flag.noskill ) + else if( map->list[m].flag.noskill ) map_zone_mf_cache_add(m,"noskill"); } } else if (!strcmpi(flag,"noicewall")) { - if( state && maplist[m].flag.noicewall ) + if( state && map->list[m].flag.noicewall ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"noicewall\toff"); - else if( maplist[m].flag.noicewall ) + else if( map->list[m].flag.noicewall ) map_zone_mf_cache_add(m,"noicewall"); } } else if (!strcmpi(flag,"snow")) { - if( state && maplist[m].flag.snow ) + if( state && map->list[m].flag.snow ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"snow\toff"); - else if( maplist[m].flag.snow ) + else if( map->list[m].flag.snow ) map_zone_mf_cache_add(m,"snow"); } } else if (!strcmpi(flag,"clouds")) { - if( state && maplist[m].flag.clouds ) + if( state && map->list[m].flag.clouds ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"clouds\toff"); - else if( maplist[m].flag.clouds ) + else if( map->list[m].flag.clouds ) map_zone_mf_cache_add(m,"clouds"); } } else if (!strcmpi(flag,"clouds2")) { - if( state && maplist[m].flag.clouds2 ) + if( state && map->list[m].flag.clouds2 ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"clouds2\toff"); - else if( maplist[m].flag.clouds2 ) + else if( map->list[m].flag.clouds2 ) map_zone_mf_cache_add(m,"clouds2"); } } else if (!strcmpi(flag,"fog")) { - if( state && maplist[m].flag.fog ) + if( state && map->list[m].flag.fog ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"fog\toff"); - else if( maplist[m].flag.fog ) + else if( map->list[m].flag.fog ) map_zone_mf_cache_add(m,"fog"); } } else if (!strcmpi(flag,"fireworks")) { - if( state && maplist[m].flag.fireworks ) + if( state && map->list[m].flag.fireworks ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"fireworks\toff"); - else if( maplist[m].flag.fireworks ) + else if( map->list[m].flag.fireworks ) map_zone_mf_cache_add(m,"fireworks"); } } else if (!strcmpi(flag,"sakura")) { - if( state && maplist[m].flag.sakura ) + if( state && map->list[m].flag.sakura ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"sakura\toff"); - else if( maplist[m].flag.sakura ) + else if( map->list[m].flag.sakura ) map_zone_mf_cache_add(m,"sakura"); } } else if (!strcmpi(flag,"leaves")) { - if( state && maplist[m].flag.leaves ) + if( state && map->list[m].flag.leaves ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"leaves\toff"); - else if( maplist[m].flag.leaves ) + else if( map->list[m].flag.leaves ) map_zone_mf_cache_add(m,"leaves"); } } else if (!strcmpi(flag,"nightenabled")) { - if( state && maplist[m].flag.nightenabled ) + if( state && map->list[m].flag.nightenabled ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nightenabled\toff"); - else if( maplist[m].flag.nightenabled ) + else if( map->list[m].flag.nightenabled ) map_zone_mf_cache_add(m,"nightenabled"); } } else if (!strcmpi(flag,"noexp")) { - if( state && maplist[m].flag.nobaseexp ) + if( state && map->list[m].flag.nobaseexp ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"noexp\toff"); - else if( maplist[m].flag.nobaseexp ) + else if( map->list[m].flag.nobaseexp ) map_zone_mf_cache_add(m,"noexp"); } } else if (!strcmpi(flag,"nobaseexp")) { - if( state && maplist[m].flag.nobaseexp ) + if( state && map->list[m].flag.nobaseexp ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nobaseexp\toff"); - else if( maplist[m].flag.nobaseexp ) + else if( map->list[m].flag.nobaseexp ) map_zone_mf_cache_add(m,"nobaseexp"); } } else if (!strcmpi(flag,"nojobexp")) { - if( state && maplist[m].flag.nojobexp ) + if( state && map->list[m].flag.nojobexp ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nojobexp\toff"); - else if( maplist[m].flag.nojobexp ) + else if( map->list[m].flag.nojobexp ) map_zone_mf_cache_add(m,"nojobexp"); } } else if (!strcmpi(flag,"noloot")) { - if( state && maplist[m].flag.nomobloot ) + if( state && map->list[m].flag.nomobloot ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"noloot\toff"); - else if( maplist[m].flag.nomobloot ) + else if( map->list[m].flag.nomobloot ) map_zone_mf_cache_add(m,"noloot"); } } else if (!strcmpi(flag,"nomobloot")) { - if( state && maplist[m].flag.nomobloot ) + if( state && map->list[m].flag.nomobloot ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nomobloot\toff"); - else if( maplist[m].flag.nomobloot ) + else if( map->list[m].flag.nomobloot ) map_zone_mf_cache_add(m,"nomobloot"); } } else if (!strcmpi(flag,"nomvploot")) { - if( state && maplist[m].flag.nomvploot ) + if( state && map->list[m].flag.nomvploot ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nomvploot\toff"); - else if( maplist[m].flag.nomvploot ) + else if( map->list[m].flag.nomvploot ) map_zone_mf_cache_add(m,"nomvploot"); } } else if (!strcmpi(flag,"nocommand")) { @@ -3992,79 +4143,79 @@ bool map_zone_mf_cache(int m, char *flag, char *params) { if( state && sscanf(params, "%d", &state) == 1 ) { sprintf(rflag, "nocommand\t%s",params); map_zone_mf_cache_add(m,rflag); - } else if( !state && maplist[m].nocommand ) { - sprintf(rflag, "nocommand\t%d",maplist[m].nocommand); + } else if( !state && map->list[m].nocommand ) { + sprintf(rflag, "nocommand\t%d",map->list[m].nocommand); map_zone_mf_cache_add(m,rflag); - } else if( maplist[m].nocommand ) { + } else if( map->list[m].nocommand ) { map_zone_mf_cache_add(m,"nocommand\toff"); } } else if (!strcmpi(flag,"jexp")) { if( !state ) { - if( maplist[m].jexp != 100 ) { - sprintf(rflag,"jexp\t%d",maplist[m].jexp); + if( map->list[m].jexp != 100 ) { + sprintf(rflag,"jexp\t%d",map->list[m].jexp); map_zone_mf_cache_add(m,rflag); } } if( sscanf(params, "%d", &state) == 1 ) { - if( state != maplist[m].jexp ) { + if( state != map->list[m].jexp ) { sprintf(rflag,"jexp\t%s",params); map_zone_mf_cache_add(m,rflag); } } } else if (!strcmpi(flag,"bexp")) { if( !state ) { - if( maplist[m].bexp != 100 ) { - sprintf(rflag,"bexp\t%d",maplist[m].jexp); + if( map->list[m].bexp != 100 ) { + sprintf(rflag,"bexp\t%d",map->list[m].jexp); map_zone_mf_cache_add(m,rflag); } } if( sscanf(params, "%d", &state) == 1 ) { - if( state != maplist[m].bexp ) { + if( state != map->list[m].bexp ) { sprintf(rflag,"bexp\t%s",params); map_zone_mf_cache_add(m,rflag); } } } else if (!strcmpi(flag,"loadevent")) { - if( state && maplist[m].flag.loadevent ) + if( state && map->list[m].flag.loadevent ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"loadevent\toff"); - else if( maplist[m].flag.loadevent ) + else if( map->list[m].flag.loadevent ) map_zone_mf_cache_add(m,"loadevent"); } } else if (!strcmpi(flag,"nochat")) { - if( state && maplist[m].flag.nochat ) + if( state && map->list[m].flag.nochat ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nochat\toff"); - else if( maplist[m].flag.nochat ) + else if( map->list[m].flag.nochat ) map_zone_mf_cache_add(m,"nochat"); } } else if (!strcmpi(flag,"partylock")) { - if( state && maplist[m].flag.partylock ) + if( state && map->list[m].flag.partylock ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"partylock\toff"); - else if( maplist[m].flag.partylock ) + else if( map->list[m].flag.partylock ) map_zone_mf_cache_add(m,"partylock"); } } else if (!strcmpi(flag,"guildlock")) { - if( state && maplist[m].flag.guildlock ) + if( state && map->list[m].flag.guildlock ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"guildlock\toff"); - else if( maplist[m].flag.guildlock ) + else if( map->list[m].flag.guildlock ) map_zone_mf_cache_add(m,"guildlock"); } } else if (!strcmpi(flag,"reset")) { - if( state && maplist[m].flag.reset ) + if( state && map->list[m].flag.reset ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"reset\toff"); - else if( maplist[m].flag.reset ) + else if( map->list[m].flag.reset ) map_zone_mf_cache_add(m,"reset"); } } else if (!strcmpi(flag,"adjust_unit_duration")) { @@ -4086,14 +4237,14 @@ bool map_zone_mf_cache(int m, char *flag, char *params) { if( modifier[0] == '\0' || !( skill_id = skill->name2id(skill_name) ) || !skill->get_unit_id( skill->name2id(skill_name), 0) || atoi(modifier) < 1 || atoi(modifier) > USHRT_MAX ) { ;/* we dont mind it, the server will take care of it next. */ } else { - int idx = maplist[m].unit_count; + int idx = map->list[m].unit_count; k = 0; - ARR_FIND(0, idx, k, maplist[m].units[k]->skill_id == skill_id); + ARR_FIND(0, idx, k, map->list[m].units[k]->skill_id == skill_id); if( k < idx ) { - if( atoi(modifier) != maplist[m].units[k]->modifier ) { - sprintf(rflag,"adjust_unit_duration\t%s\t%d",skill_name,maplist[m].units[k]->modifier); + if( atoi(modifier) != map->list[m].units[k]->modifier ) { + sprintf(rflag,"adjust_unit_duration\t%s\t%d",skill_name,map->list[m].units[k]->modifier); map_zone_mf_cache_add(m,rflag); } } else { @@ -4120,14 +4271,14 @@ bool map_zone_mf_cache(int m, char *flag, char *params) { if( modifier[0] == '\0' || !( skill_id = skill->name2id(skill_name) ) || atoi(modifier) < 1 || atoi(modifier) > USHRT_MAX ) { ;/* we dont mind it, the server will take care of it next. */ } else { - int idx = maplist[m].skill_count; + int idx = map->list[m].skill_count; k = 0; - ARR_FIND(0, idx, k, maplist[m].skills[k]->skill_id == skill_id); + ARR_FIND(0, idx, k, map->list[m].skills[k]->skill_id == skill_id); if( k < idx ) { - if( atoi(modifier) != maplist[m].skills[k]->modifier ) { - sprintf(rflag,"adjust_skill_damage\t%s\t%d",skill_name,maplist[m].skills[k]->modifier); + if( atoi(modifier) != map->list[m].skills[k]->modifier ) { + sprintf(rflag,"adjust_skill_damage\t%s\t%d",skill_name,map->list[m].skills[k]->modifier); map_zone_mf_cache_add(m,rflag); } } else { @@ -4137,94 +4288,94 @@ bool map_zone_mf_cache(int m, char *flag, char *params) { } } else if (!strcmpi(flag,"zone")) { - ShowWarning("You can't add a zone through a zone! ERROR, skipping for '%s'...\n",maplist[m].name); + ShowWarning("You can't add a zone through a zone! ERROR, skipping for '%s'...\n",map->list[m].name); return true; } else if ( !strcmpi(flag,"nomapchannelautojoin") ) { - if( state && maplist[m].flag.chsysnolocalaj ) + if( state && map->list[m].flag.chsysnolocalaj ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"nomapchannelautojoin\toff"); - else if( maplist[m].flag.chsysnolocalaj ) + else if( map->list[m].flag.chsysnolocalaj ) map_zone_mf_cache_add(m,"nomapchannelautojoin"); } } else if ( !strcmpi(flag,"invincible_time_inc") ) { if( !state ) { - if( maplist[m].invincible_time_inc != 0 ) { - sprintf(rflag,"invincible_time_inc\t%d",maplist[m].invincible_time_inc); + if( map->list[m].invincible_time_inc != 0 ) { + sprintf(rflag,"invincible_time_inc\t%d",map->list[m].invincible_time_inc); map_zone_mf_cache_add(m,rflag); } } if( sscanf(params, "%d", &state) == 1 ) { - if( state != maplist[m].invincible_time_inc ) { + if( state != map->list[m].invincible_time_inc ) { sprintf(rflag,"invincible_time_inc\t%s",params); map_zone_mf_cache_add(m,rflag); } } } else if ( !strcmpi(flag,"noknockback") ) { - if( state && maplist[m].flag.noknockback ) + if( state && map->list[m].flag.noknockback ) ;/* nothing to do */ else { if( state ) map_zone_mf_cache_add(m,"noknockback\toff"); - else if( maplist[m].flag.noknockback ) + else if( map->list[m].flag.noknockback ) map_zone_mf_cache_add(m,"noknockback"); } } else if ( !strcmpi(flag,"weapon_damage_rate") ) { if( !state ) { - if( maplist[m].weapon_damage_rate != 100 ) { - sprintf(rflag,"weapon_damage_rate\t%d",maplist[m].weapon_damage_rate); + if( map->list[m].weapon_damage_rate != 100 ) { + sprintf(rflag,"weapon_damage_rate\t%d",map->list[m].weapon_damage_rate); map_zone_mf_cache_add(m,rflag); } } if( sscanf(params, "%d", &state) == 1 ) { - if( state != maplist[m].weapon_damage_rate ) { + if( state != map->list[m].weapon_damage_rate ) { sprintf(rflag,"weapon_damage_rate\t%s",params); map_zone_mf_cache_add(m,rflag); } } } else if ( !strcmpi(flag,"magic_damage_rate") ) { if( !state ) { - if( maplist[m].magic_damage_rate != 100 ) { - sprintf(rflag,"magic_damage_rate\t%d",maplist[m].magic_damage_rate); + if( map->list[m].magic_damage_rate != 100 ) { + sprintf(rflag,"magic_damage_rate\t%d",map->list[m].magic_damage_rate); map_zone_mf_cache_add(m,rflag); } } if( sscanf(params, "%d", &state) == 1 ) { - if( state != maplist[m].magic_damage_rate ) { + if( state != map->list[m].magic_damage_rate ) { sprintf(rflag,"magic_damage_rate\t%s",params); map_zone_mf_cache_add(m,rflag); } } } else if ( !strcmpi(flag,"misc_damage_rate") ) { if( !state ) { - if( maplist[m].misc_damage_rate != 100 ) { - sprintf(rflag,"misc_damage_rate\t%d",maplist[m].misc_damage_rate); + if( map->list[m].misc_damage_rate != 100 ) { + sprintf(rflag,"misc_damage_rate\t%d",map->list[m].misc_damage_rate); map_zone_mf_cache_add(m,rflag); } } if( sscanf(params, "%d", &state) == 1 ) { - if( state != maplist[m].misc_damage_rate ) { + if( state != map->list[m].misc_damage_rate ) { sprintf(rflag,"misc_damage_rate\t%s",params); map_zone_mf_cache_add(m,rflag); } } } else if ( !strcmpi(flag,"short_damage_rate") ) { if( !state ) { - if( maplist[m].short_damage_rate != 100 ) { - sprintf(rflag,"short_damage_rate\t%d",maplist[m].short_damage_rate); + if( map->list[m].short_damage_rate != 100 ) { + sprintf(rflag,"short_damage_rate\t%d",map->list[m].short_damage_rate); map_zone_mf_cache_add(m,rflag); } } if( sscanf(params, "%d", &state) == 1 ) { - if( state != maplist[m].short_damage_rate ) { + if( state != map->list[m].short_damage_rate ) { sprintf(rflag,"short_damage_rate\t%s",params); map_zone_mf_cache_add(m,rflag); } } } else if ( !strcmpi(flag,"long_damage_rate") ) { if( !state ) { - if( maplist[m].long_damage_rate != 100 ) { - sprintf(rflag,"long_damage_rate\t%d",maplist[m].long_damage_rate); + if( map->list[m].long_damage_rate != 100 ) { + sprintf(rflag,"long_damage_rate\t%d",map->list[m].long_damage_rate); map_zone_mf_cache_add(m,rflag); } } if( sscanf(params, "%d", &state) == 1 ) { - if( state != maplist[m].long_damage_rate ) { + if( state != map->list[m].long_damage_rate ) { sprintf(rflag,"long_damage_rate\t%s",params); map_zone_mf_cache_add(m,rflag); } @@ -4236,7 +4387,7 @@ void map_zone_apply(int m, struct map_zone_data *zone, const char* start, const int i; char empty[1] = "\0"; char flag[MAP_ZONE_MAPFLAG_LENGTH], params[MAP_ZONE_MAPFLAG_LENGTH]; - maplist[m].zone = zone; + map->list[m].zone = zone; for(i = 0; i < zone->mapflags_count; i++) { int len = strlen(zone->mapflags[i]); int k; @@ -4250,10 +4401,10 @@ void map_zone_apply(int m, struct map_zone_data *zone, const char* start, const } } - if( map_zone_mf_cache(m,flag,params) ) + if( map->zone_mf_cache(m,flag,params) ) continue; - npc->parse_mapflag(maplist[m].name,empty,flag,params,start,buffer,filepath); + npc->parse_mapflag(map->list[m].name,empty,flag,params,start,buffer,filepath); } } /* used on npc load and reload to apply all "Normal" and "PK Mode" zones */ @@ -4263,7 +4414,7 @@ void map_zone_init(void) { char empty[1] = "\0"; int i,k,j; - zone = &map_zone_all; + zone = &map->zone_all; for(i = 0; i < zone->mapflags_count; i++) { int len = strlen(zone->mapflags[i]); @@ -4277,17 +4428,17 @@ void map_zone_init(void) { } } - for(j = 0; j < map->map_num; j++) { - if( maplist[j].zone == zone ) { - if( map_zone_mf_cache(j,flag,params) ) + for(j = 0; j < map->count; j++) { + if( map->list[j].zone == zone ) { + if( map->zone_mf_cache(j,flag,params) ) break; - npc->parse_mapflag(maplist[j].name,empty,flag,params,empty,empty,empty); + npc->parse_mapflag(map->list[j].name,empty,flag,params,empty,empty,empty); } } } if( battle_config.pk_mode ) { - zone = &map_zone_pk; + zone = &map->zone_pk; for(i = 0; i < zone->mapflags_count; i++) { int len = strlen(zone->mapflags[i]); params[0] = '\0'; @@ -4299,11 +4450,11 @@ void map_zone_init(void) { break; } } - for(j = 0; j < map->map_num; j++) { - if( maplist[j].zone == zone ) { - if( map_zone_mf_cache(j,flag,params) ) + for(j = 0; j < map->count; j++) { + if( map->list[j].zone == zone ) { + if( map->zone_mf_cache(j,flag,params) ) break; - npc->parse_mapflag(maplist[j].name,empty,flag,params,empty,empty,empty); + npc->parse_mapflag(map->list[j].name,empty,flag,params,empty,empty,empty); } } } @@ -4431,7 +4582,7 @@ void read_map_zone_db(void) { continue; } - if( strdb_exists(zone_db, zonename) ) { + if( strdb_exists(map->zone_db, zonename) ) { ShowError("map_zone_db: duplicate zone name '%s', skipping...\n",zonename); config_setting_remove_elem(zones,i);/* remove from the tree */ --zone_count; @@ -4441,10 +4592,10 @@ void read_map_zone_db(void) { /* is this the global template? */ if( strncmpi(zonename,MAP_ZONE_NORMAL_NAME,MAP_ZONE_NAME_LENGTH) == 0 ) { - zone = &map_zone_all; + zone = &map->zone_all; is_all = true; } else if( strncmpi(zonename,MAP_ZONE_PK_NAME,MAP_ZONE_NAME_LENGTH) == 0 ) { - zone = &map_zone_pk; + zone = &map->zone_pk; is_all = true; } else { CREATE( zone, struct map_zone_data, 1 ); @@ -4459,14 +4610,14 @@ void read_map_zone_db(void) { for(h = 0; h < config_setting_length(skills); h++) { config_setting_t *skillinfo = config_setting_get_elem(skills, h); name = config_setting_name(skillinfo); - if( !map_zone_str2skillid(name) ) { + if( !map->zone_str2skillid(name) ) { ShowError("map_zone_db: unknown skill (%s) in disabled_skills for zone '%s', skipping skill...\n",name,zone->name); config_setting_remove_elem(skills,h); --disabled_skills_count; --h; continue; } - if( !map_zone_bl_type(config_setting_get_string_elem(skills,h),&subtype) )/* we dont remove it from the three due to inheritance */ + if( !map->zone_bl_type(config_setting_get_string_elem(skills,h),&subtype) )/* we dont remove it from the three due to inheritance */ --disabled_skills_count; } /* all ok, process */ @@ -4477,10 +4628,10 @@ void read_map_zone_db(void) { enum bl_type type; name = config_setting_name(skillinfo); - if( (type = map_zone_bl_type(config_setting_get_string_elem(skills,h),&subtype)) ) { /* only add if enabled */ + if( (type = map->zone_bl_type(config_setting_get_string_elem(skills,h),&subtype)) ) { /* only add if enabled */ CREATE( entry, struct map_zone_disabled_skill_entry, 1 ); - entry->nameid = map_zone_str2skillid(name); + entry->nameid = map->zone_str2skillid(name); entry->type = type; entry->subtype = subtype; @@ -4497,7 +4648,7 @@ void read_map_zone_db(void) { for(h = 0; h < config_setting_length(items); h++) { config_setting_t *item = config_setting_get_elem(items, h); name = config_setting_name(item); - if( !map_zone_str2itemid(name) ) { + if( !map->zone_str2itemid(name) ) { ShowError("map_zone_db: unknown item (%s) in disabled_items for zone '%s', skipping item...\n",name,zone->name); config_setting_remove_elem(items,h); --disabled_items_count; @@ -4514,7 +4665,7 @@ void read_map_zone_db(void) { if( config_setting_get_bool(item) ) { /* only add if enabled */ name = config_setting_name(item); - zone->disabled_items[v++] = map_zone_str2itemid(name); + zone->disabled_items[v++] = map->zone_str2itemid(name); } } @@ -4578,14 +4729,14 @@ void read_map_zone_db(void) { for(h = 0; h < config_setting_length(caps); h++) { config_setting_t *cap = config_setting_get_elem(caps, h); name = config_setting_name(cap); - if( !map_zone_str2skillid(name) ) { + if( !map->zone_str2skillid(name) ) { ShowError("map_zone_db: unknown skill (%s) in skill_damage_cap for zone '%s', skipping skill...\n",name,zone->name); config_setting_remove_elem(caps,h); --capped_skills_count; --h; continue; } - if( !map_zone_bl_type(config_setting_get_string_elem(cap,1),&subtype) )/* we dont remove it from the three due to inheritance */ + if( !map->zone_bl_type(config_setting_get_string_elem(cap,1),&subtype) )/* we dont remove it from the three due to inheritance */ --capped_skills_count; } /* all ok, process */ @@ -4596,10 +4747,10 @@ void read_map_zone_db(void) { enum bl_type type; name = config_setting_name(cap); - if( (type = map_zone_bl_type(config_setting_get_string_elem(cap,1),&subtype)) ) { /* only add if enabled */ + if( (type = map->zone_bl_type(config_setting_get_string_elem(cap,1),&subtype)) ) { /* only add if enabled */ CREATE( entry, struct map_zone_skill_damage_cap_entry, 1 ); - entry->nameid = map_zone_str2skillid(name); + entry->nameid = map->zone_str2skillid(name); entry->cap = config_setting_get_int_elem(cap,0); entry->type = type; entry->subtype = subtype; @@ -4610,7 +4761,7 @@ void read_map_zone_db(void) { } if( !is_all ) /* global template doesn't go into db -- since it isn't a alloc'd piece of data */ - strdb_put(zone_db, zonename, zone); + strdb_put(map->zone_db, zonename, zone); } @@ -4650,17 +4801,17 @@ void read_map_zone_db(void) { name = config_setting_get_string_elem(inherit_tree, h); config_setting_lookup_string(zone_e, "name", &zonename);/* will succeed for we validated it earlier */ - if( !(izone = strdb_get(zone_db, name)) ) { + if( !(izone = strdb_get(map->zone_db, name)) ) { ShowError("map_zone_db: Unknown zone '%s' being inherit by zone '%s', skipping...\n",name,zonename); continue; } if( strncmpi(zonename,MAP_ZONE_NORMAL_NAME,MAP_ZONE_NAME_LENGTH) == 0 ) { - zone = &map_zone_all; + zone = &map->zone_all; } else if( strncmpi(zonename,MAP_ZONE_PK_NAME,MAP_ZONE_NAME_LENGTH) == 0 ) { - zone = &map_zone_pk; + zone = &map->zone_pk; } else - zone = strdb_get(zone_db, zonename);/* will succeed for we just put it in here */ + zone = strdb_get(map->zone_db, zonename);/* will succeed for we just put it in here */ disabled_skills_count_i = izone->disabled_skills_count; disabled_items_count_i = izone->disabled_items_count; @@ -4677,7 +4828,7 @@ void read_map_zone_db(void) { int k; for(k = 0; k < disabled_skills_count; k++) { config_setting_t *skillinfo = config_setting_get_elem(skills, k); - if( map_zone_str2skillid(config_setting_name(skillinfo)) == izone->disabled_skills[j]->nameid ) { + if( map->zone_str2skillid(config_setting_name(skillinfo)) == izone->disabled_skills[j]->nameid ) { break; } } @@ -4703,7 +4854,7 @@ void read_map_zone_db(void) { name = config_setting_name(item); - if( map_zone_str2itemid(name) == izone->disabled_items[j] ) { + if( map->zone_str2itemid(name) == izone->disabled_items[j] ) { if( config_setting_get_bool(item) ) continue; break; @@ -4770,7 +4921,7 @@ void read_map_zone_db(void) { int k; for(k = 0; k < capped_skills_count; k++) { config_setting_t *cap = config_setting_get_elem(caps, k); - if( map_zone_str2skillid(config_setting_name(cap)) == izone->capped_skills[j]->nameid ) { + if( map->zone_str2skillid(config_setting_name(cap)) == izone->capped_skills[j]->nameid ) { break; } } @@ -4796,8 +4947,8 @@ void read_map_zone_db(void) { } /** -* @see DBApply -*/ + * @see DBApply + */ int map_db_final(DBKey key, DBData *data, va_list ap) { struct map_data_other_server *mdos = DB->data2ptr(data); @@ -4808,8 +4959,8 @@ int map_db_final(DBKey key, DBData *data, va_list ap) { } /** -* @see DBApply -*/ + * @see DBApply + */ int nick_db_final(DBKey key, DBData *data, va_list args) { struct charid2nick* p = DB->data2ptr(data); @@ -4831,39 +4982,39 @@ int cleanup_sub(struct block_list *bl, va_list ap) { nullpo_ret(bl); switch(bl->type) { - case BL_PC: - map->quit((struct map_session_data *) bl); - break; - case BL_NPC: - npc->unload((struct npc_data *)bl,false); - break; - case BL_MOB: - unit->free(bl,CLR_OUTSIGHT); - break; - case BL_PET: - //There is no need for this, the pet is removed together with the player. [Skotlex] - break; - case BL_ITEM: - map->clearflooritem(bl); - break; - case BL_SKILL: - skill->delunit((struct skill_unit *) bl); - break; + case BL_PC: + map->quit((struct map_session_data *) bl); + break; + case BL_NPC: + npc->unload((struct npc_data *)bl,false); + break; + case BL_MOB: + unit->free(bl,CLR_OUTSIGHT); + break; + case BL_PET: + //There is no need for this, the pet is removed together with the player. [Skotlex] + break; + case BL_ITEM: + map->clearflooritem(bl); + break; + case BL_SKILL: + skill->delunit((struct skill_unit *) bl); + break; } return 1; } /** -* @see DBApply -*/ -static int cleanup_db_sub(DBKey key, DBData *data, va_list va) { + * @see DBApply + */ +int cleanup_db_sub(DBKey key, DBData *data, va_list va) { return map->cleanup_sub(DB->data2ptr(data), va); } /*========================================== -* map destructor -*------------------------------------------*/ + * map destructor + *------------------------------------------*/ void do_final(void) { int i; @@ -4871,9 +5022,11 @@ void do_final(void) struct s_mapiterator* iter; ShowStatus("Terminating...\n"); + hChSys.closing = true; HPM->event(HPET_FINAL); - if (cpsd) aFree(cpsd); + + if (map->cpsd) aFree(map->cpsd); //Ladies and babies first. iter = mapit_getallusers(); @@ -4885,14 +5038,14 @@ void do_final(void) npc->do_clear_npc(); // remove all objects on maps - for (i = 0; i < map->map_num; i++) { - ShowStatus("Cleaning up maps [%d/%d]: %s..."CL_CLL"\r", i+1, map->map_num, maplist[i].name); - if (maplist[i].m >= 0) - map_foreachinmap(map->cleanup_sub, i, BL_ALL); + for (i = 0; i < map->count; i++) { + ShowStatus("Cleaning up maps [%d/%d]: %s..."CL_CLL"\r", i+1, map->count, map->list[i].name); + if (map->list[i].m >= 0) + map->foreachinmap(map->cleanup_sub, i, BL_ALL); } - ShowStatus("Cleaned up %d maps."CL_CLL"\n", map->map_num); + ShowStatus("Cleaned up %d maps."CL_CLL"\n", map->count); - id_db->foreach(id_db,cleanup_db_sub); + map->id_db->foreach(map->id_db,map->cleanup_db_sub); chrif->char_reset_offline(); chrif->flush_fifo(); @@ -4905,10 +5058,10 @@ void do_final(void) script->final(); itemdb->final(); instance->final(); - storage->final(); + gstorage->final(); guild->final(); - party->do_final_party(); - pc->do_final_pc(); + party->final(); + pc->final(); pet->final(); mob->final(); homun->final(); @@ -4918,38 +5071,39 @@ void do_final(void) unit->final(); bg->final(); duel->final(); - elemental->do_final_elemental(); - do_final_maps(); + elemental->final(); + map->list_final(); vending->final(); - map_db->destroy(map_db, map_db_final); + map->map_db->destroy(map->map_db, map->db_final); mapindex_final(); - if(enable_grf) + if(map->enable_grf) grfio_final(); - id_db->destroy(id_db, NULL); - pc_db->destroy(pc_db, NULL); - mobid_db->destroy(mobid_db, NULL); - bossid_db->destroy(bossid_db, NULL); - nick_db->destroy(nick_db, nick_db_final); - charid_db->destroy(charid_db, NULL); - iwall_db->destroy(iwall_db, NULL); - regen_db->destroy(regen_db, NULL); + db_destroy(map->id_db); + db_destroy(map->pc_db); + db_destroy(map->mobid_db); + db_destroy(map->bossid_db); + map->nick_db->destroy(map->nick_db, map->nick_db_final); + db_destroy(map->charid_db); + db_destroy(map->iwall_db); + db_destroy(map->regen_db); - map_sql_close(); - ers_destroy(map_iterator_ers); + map->sql_close(); + ers_destroy(map->iterator_ers); - aFree(maplist); + aFree(map->list); - if( !enable_grf ) - aFree(map_cache_buffer); + if( !map->enable_grf ) + aFree(map->cache_buffer); + HPM->event(HPET_POST_FINAL); + ShowStatus("Finished.\n"); } -static int map_abort_sub(struct map_session_data* sd, va_list ap) -{ +int map_abort_sub(struct map_session_data* sd, va_list ap) { chrif->save(sd,1); return 1; } @@ -4970,19 +5124,19 @@ void do_abort(void) run = 1; if (!chrif->isconnected()) { - if (pc_db->size(pc_db)) - ShowFatalError("Server has crashed without a connection to the char-server, %u characters can't be saved!\n", pc_db->size(pc_db)); + if (db_size(map->pc_db)) + ShowFatalError("Server has crashed without a connection to the char-server, %u characters can't be saved!\n", db_size(map->pc_db)); return; } ShowError("Server received crash signal! Attempting to save all online characters!\n"); - map->map_foreachpc(map_abort_sub); + map->foreachpc(map->abort_sub); chrif->flush_fifo(); } /*====================================================== * Map-Server Version Screen [MC Cameri] *------------------------------------------------------*/ -static void map_helpscreen(bool do_exit) +void map_helpscreen(bool do_exit) { ShowInfo("Usage: %s [options]\n", SERVER_NAME); ShowInfo("\n"); @@ -5003,9 +5157,9 @@ static void map_helpscreen(bool do_exit) } /*====================================================== -* Map-Server Version Screen [MC Cameri] -*------------------------------------------------------*/ -static void map_versionscreen(bool do_exit) { + * Map-Server Version Screen [MC Cameri] + *------------------------------------------------------*/ +void map_versionscreen(bool do_exit) { const char *svn = get_svn_revision(); const char *git = get_git_hash(); ShowInfo(CL_WHITE"Hercules version: %s" CL_RESET"\n", git[0] != HERC_UNKNOWN_VER ? git : svn[0] != HERC_UNKNOWN_VER ? svn : "Unknown"); @@ -5040,7 +5194,7 @@ void do_shutdown(void) } } -static bool map_arg_next_value(const char* option, int i, int argc) +bool map_arg_next_value(const char* option, int i, int argc) { if( i >= argc-1 ) { ShowWarning("Missing value for option '%s'.\n", option); @@ -5064,15 +5218,15 @@ CPCMD(gm_position) { return; } - if( x < 0 || x >= maplist[m].xs || y < 0 || y >= maplist[m].ys ) { + if( x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys ) { ShowError("gm:info '"CL_WHITE"%d %d"CL_RESET"' is out of '"CL_WHITE"%s"CL_RESET"' map bounds!\n",x,y,map_name); return; } ShowInfo("HCP: updated console's game position to '"CL_WHITE"%d %d %s"CL_RESET"'\n",x,y,map_name); - cpsd->bl.x = x; - cpsd->bl.y = y; - cpsd->bl.m = m; + map->cpsd->bl.x = x; + map->cpsd->bl.y = y; + map->cpsd->bl.m = m; } CPCMD(gm_use) { @@ -5080,23 +5234,23 @@ CPCMD(gm_use) { ShowError("gm:use invalid syntax. use '"CL_WHITE"gm:use @command <optional params>"CL_RESET"'\n"); return; } - cpsd->fd = -2; - if( !atcommand->parse(cpsd->fd, cpsd, line, 0) ) + map->cpsd->fd = -2; + if( !atcommand->parse(map->cpsd->fd, map->cpsd, line, 0) ) ShowInfo("HCP: '"CL_WHITE"%s"CL_RESET"' failed\n",line); else ShowInfo("HCP: '"CL_WHITE"%s"CL_RESET"' was used\n",line); - cpsd->fd = 0; + map->cpsd->fd = 0; } /* Hercules Console Parser */ void map_cp_defaults(void) { #ifdef CONSOLE_INPUT /* default HCP data */ - cpsd = pc->get_dummy_sd(); - strcpy(cpsd->status.name, "Hercules Console"); - cpsd->bl.x = MAP_DEFAULT_X; - cpsd->bl.y = MAP_DEFAULT_Y; - cpsd->bl.m = map->mapname2mapid(MAP_DEFAULT); + map->cpsd = pc->get_dummy_sd(); + strcpy(map->cpsd->status.name, "Hercules Console"); + map->cpsd->bl.x = MAP_DEFAULT_X; + map->cpsd->bl.y = MAP_DEFAULT_Y; + map->cpsd->bl.m = map->mapname2mapid(MAP_DEFAULT); console->addCommand("gm:info",CPCMD_A(gm_position)); console->addCommand("gm:use",CPCMD_A(gm_use)); @@ -5119,6 +5273,7 @@ void map_hp_symbols(void) { HPM->share(itemdb,"itemdb"); HPM->share(logs,"logs"); HPM->share(mail,"mail"); + HPM->share(instance,"instance"); HPM->share(script,"script"); HPM->share(searchstore,"searchstore"); HPM->share(skill,"skill"); @@ -5146,7 +5301,7 @@ void map_hp_symbols(void) { /* partial */ HPM->share(mapit,"mapit"); /* sql link */ - HPM->share(mmysql_handle,"sql_handle"); + HPM->share(map->mysql_handle,"sql_handle"); /* specific */ HPM->share(atcommand->create,"addCommand"); HPM->share(script->addScript,"addScript"); @@ -5154,7 +5309,7 @@ void map_hp_symbols(void) { HPM->share(HPM_map_getFromMSD,"getFromMSD"); HPM->share(HPM_map_removeFromMSD,"removeFromMSD"); /* vars */ - HPM->share(maplist,"maplist"); + HPM->share(map->list,"map->list"); } void map_load_defaults(void) { @@ -5207,44 +5362,6 @@ int do_init(int argc, char *argv[]) map_defaults(); - map->map_num = 0; - - sprintf(map->db_path ,"db"); - sprintf(map->help_txt ,"conf/help.txt"); - sprintf(map->help2_txt ,"conf/help2.txt"); - sprintf(map->charhelp_txt ,"conf/charhelp.txt"); - - sprintf(map->wisp_server_name ,"Server"); // can be modified in char-server configuration file - - map->autosave_interval = DEFAULT_AUTOSAVE_INTERVAL; - map->minsave_interval = 100; - map->save_settings = 0xFFFF; - map->agit_flag = 0; - map->agit2_flag = 0; - map->night_flag = 0; // 0=day, 1=night [Yor] - map->enable_spy = 0; //To enable/disable @spy commands, which consume too much cpu time when sending packets. [Skotlex] - - map->db_use_sql_item_db = 0; - map->db_use_sql_mob_db = 0; - map->db_use_sql_mob_skill_db = 0; - - sprintf(map->item_db_db, "item_db"); - sprintf(map->item_db2_db, "item_db2"); - sprintf(map->item_db_re_db, "item_db_re"); - sprintf(map->mob_db_db, "mob_db"); - sprintf(map->mob_db2_db, "mob_db2"); - sprintf(map->mob_skill_db_db, "mob_skill_db"); - sprintf(map->mob_skill_db2_db, "mob_skill_db2"); - sprintf(map->interreg_db, "interreg"); - - map->INTER_CONF_NAME="conf/inter-server.conf"; - map->LOG_CONF_NAME="conf/logs.conf"; - map->MAP_CONF_NAME = "conf/map-server.conf"; - map->BATTLE_CONF_FILENAME = "conf/battle.conf"; - map->ATCOMMAND_CONF_FILENAME = "conf/atcommand.conf"; - map->SCRIPT_CONF_NAME = "conf/script.conf"; - map->MSG_CONF_NAME = "conf/messages.conf"; - map->GRF_PATH_FILENAME = "conf/grf-files.txt"; rnd_init(); for( i = 1; i < argc ; i++ ) { @@ -5257,32 +5374,32 @@ int do_init(int argc, char *argv[]) arg++; if( strcmp(arg, "help") == 0 ) { - map_helpscreen(true); + map->helpscreen(true); } else if( strcmp(arg, "version") == 0 ) { - map_versionscreen(true); + map->versionscreen(true); } else if( strcmp(arg, "map-config") == 0 ) { - if( map_arg_next_value(arg, i, argc) ) + if( map->arg_next_value(arg, i, argc) ) map->MAP_CONF_NAME = argv[++i]; } else if( strcmp(arg, "battle-config") == 0 ) { - if( map_arg_next_value(arg, i, argc) ) + if( map->arg_next_value(arg, i, argc) ) map->BATTLE_CONF_FILENAME = argv[++i]; } else if( strcmp(arg, "atcommand-config") == 0 ) { - if( map_arg_next_value(arg, i, argc) ) + if( map->arg_next_value(arg, i, argc) ) map->ATCOMMAND_CONF_FILENAME = argv[++i]; } else if( strcmp(arg, "script-config") == 0 ) { - if( map_arg_next_value(arg, i, argc) ) + if( map->arg_next_value(arg, i, argc) ) map->SCRIPT_CONF_NAME = argv[++i]; } else if( strcmp(arg, "msg-config") == 0 ) { - if( map_arg_next_value(arg, i, argc) ) + if( map->arg_next_value(arg, i, argc) ) map->MSG_CONF_NAME = argv[++i]; } else if( strcmp(arg, "grf-path-file") == 0 ) { - if( map_arg_next_value(arg, i, argc) ) + if( map->arg_next_value(arg, i, argc) ) map->GRF_PATH_FILENAME = argv[++i]; } else if( strcmp(arg, "inter-config") == 0 ) { - if( map_arg_next_value(arg, i, argc) ) + if( map->arg_next_value(arg, i, argc) ) map->INTER_CONF_NAME = argv[++i]; } else if( strcmp(arg, "log-config") == 0 ) { - if( map_arg_next_value(arg, i, argc) ) + if( map->arg_next_value(arg, i, argc) ) map->LOG_CONF_NAME = argv[++i]; } else if( strcmp(arg, "run-once") == 0 ) { // close the map-server as soon as its done.. for testing [Celest] runflag = CORE_ST_STOP; @@ -5290,32 +5407,33 @@ int do_init(int argc, char *argv[]) ShowError("Unknown option '%s'.\n", argv[i]); exit(EXIT_FAILURE); } - } else switch( arg[0] ) {// short option - case '?': - case 'h': - map_helpscreen(true); - break; - case 'v': - map_versionscreen(true); - break; - default: - ShowError("Unknown option '%s'.\n", argv[i]); - exit(EXIT_FAILURE); + } else { + switch( arg[0] ) {// short option + case '?': + case 'h': + map->helpscreen(true); + break; + case 'v': + map->versionscreen(true); + break; + default: + ShowError("Unknown option '%s'.\n", argv[i]); + exit(EXIT_FAILURE); + } } } - memset(&index2mapid, -1, sizeof(index2mapid)); map_load_defaults(); - map_config_read(map->MAP_CONF_NAME); - CREATE(maplist,struct map_data,map->map_num); - map->map_num = 0; - map_config_read_sub(map->MAP_CONF_NAME); + map->config_read(map->MAP_CONF_NAME); + CREATE(map->list,struct map_data,map->count); + map->count = 0; + map->config_read_sub(map->MAP_CONF_NAME); // loads npcs map->reloadnpc(false); chrif->checkdefaultlogin(); - if (!map_ip_set || !char_ip_set) { + if (!map->ip_set || !map->char_ip_set) { char ip_str[16]; ip2str(addr_[0], ip_str); @@ -5328,46 +5446,45 @@ int do_init(int argc, char *argv[]) ShowInfo("Defaulting to %s as our IP address\n", ip_str); - if (!map_ip_set) + if (!map->ip_set) clif->setip(ip_str); - if (!char_ip_set) + if (!map->char_ip_set) chrif->setip(ip_str); } battle->config_read(map->BATTLE_CONF_FILENAME); atcommand->msg_read(map->MSG_CONF_NAME); script->config_read(map->SCRIPT_CONF_NAME); - inter_config_read(map->INTER_CONF_NAME); + map->inter_config_read(map->INTER_CONF_NAME); logs->config_read(map->LOG_CONF_NAME); - id_db = idb_alloc(DB_OPT_BASE); - pc_db = idb_alloc(DB_OPT_BASE); //Added for reliable map->id2sd() use. [Skotlex] - mobid_db = idb_alloc(DB_OPT_BASE); //Added to lower the load of the lazy mob ai. [Skotlex] - bossid_db = idb_alloc(DB_OPT_BASE); // Used for Convex Mirror quick MVP search - map_db = uidb_alloc(DB_OPT_BASE); - nick_db = idb_alloc(DB_OPT_BASE); - charid_db = idb_alloc(DB_OPT_BASE); - regen_db = idb_alloc(DB_OPT_BASE); // efficient status_natural_heal processing + map->id_db = idb_alloc(DB_OPT_BASE); + map->pc_db = idb_alloc(DB_OPT_BASE); //Added for reliable map->id2sd() use. [Skotlex] + map->mobid_db = idb_alloc(DB_OPT_BASE); //Added to lower the load of the lazy mob ai. [Skotlex] + map->bossid_db = idb_alloc(DB_OPT_BASE); // Used for Convex Mirror quick MVP search + map->map_db = uidb_alloc(DB_OPT_BASE); + map->nick_db = idb_alloc(DB_OPT_BASE); + map->charid_db = idb_alloc(DB_OPT_BASE); + map->regen_db = idb_alloc(DB_OPT_BASE); // efficient status_natural_heal processing + map->iwall_db = strdb_alloc(DB_OPT_RELEASE_DATA,2*NAME_LENGTH+2+1); // [Zephyrus] Invisible Walls + map->zone_db = strdb_alloc(DB_OPT_DUP_KEY|DB_OPT_RELEASE_DATA, MAP_ZONE_NAME_LENGTH); - iwall_db = strdb_alloc(DB_OPT_RELEASE_DATA,2*NAME_LENGTH+2+1); // [Zephyrus] Invisible Walls - zone_db = strdb_alloc(DB_OPT_DUP_KEY|DB_OPT_RELEASE_DATA, MAP_ZONE_NAME_LENGTH); + map->iterator_ers = ers_new(sizeof(struct s_mapiterator),"map.c::map_iterator_ers",ERS_OPT_NONE); - map_iterator_ers = ers_new(sizeof(struct s_mapiterator),"map.c::map_iterator_ers",ERS_OPT_NONE); - - map_sql_init(); + map->sql_init(); if (logs->config.sql_logs) - log_sql_init(); + logs->sql_init(); mapindex_init(); - if(enable_grf) + if(map->enable_grf) grfio_init(map->GRF_PATH_FILENAME); - map_readallmaps(); + map->readallmaps(); - timer->add_func_list(map_freeblock_timer, "map_freeblock_timer"); - timer->add_func_list(map_clearflooritem_timer, "map_clearflooritem_timer"); - timer->add_func_list(map_removemobs_timer, "map_removemobs_timer"); - timer->add_interval(timer->gettick()+1000, map_freeblock_timer, 0, 0, 60*1000); + timer->add_func_list(map->freeblock_timer, "map_freeblock_timer"); + timer->add_func_list(map->clearflooritem_timer, "map_clearflooritem_timer"); + timer->add_func_list(map->removemobs_timer, "map_removemobs_timer"); + timer->add_interval(timer->gettick()+1000, map->freeblock_timer, 0, 0, 60*1000); HPM->load_sub = HPM_map_plugin_load_sub; HPM->symbol_defaults_sub = map_hp_symbols; @@ -5383,17 +5500,17 @@ int do_init(int argc, char *argv[]) script->init(); itemdb->init(); skill->init(); - read_map_zone_db();/* read after item and skill initalization */ + map->read_zone_db();/* read after item and skill initalization */ mob->init(); - pc->do_init_pc(); + pc->init(); status->init(); - party->do_init_party(); + party->init(); guild->init(); - storage->init(); + gstorage->init(); pet->init(); homun->init(); mercenary->init(); - elemental->do_init_elemental(); + elemental->init(); quest->init(); npc->init(); unit->init(); @@ -5406,13 +5523,13 @@ int do_init(int argc, char *argv[]) if (battle_config.pk_mode) ShowNotice("Server is running on '"CL_WHITE"PK Mode"CL_RESET"'.\n"); - Sql_HerculesUpdateCheck(mmysql_handle); + Sql_HerculesUpdateCheck(map->mysql_handle); #ifdef CONSOLE_INPUT - console->setSQL(mmysql_handle); + console->setSQL(map->mysql_handle); #endif - ShowStatus("Server is '"CL_GREEN"ready"CL_RESET"' and listening on port '"CL_WHITE"%d"CL_RESET"'.\n\n", map_port); + ShowStatus("Server is '"CL_GREEN"ready"CL_RESET"' and listening on port '"CL_WHITE"%d"CL_RESET"'.\n\n", map->port); if( runflag != CORE_ST_STOP ) { shutdown_callback = map->do_shutdown; @@ -5434,6 +5551,89 @@ int do_init(int argc, char *argv[]) void map_defaults(void) { map = &map_s; + /* */ + map->count = 0; + + sprintf(map->db_path ,"db"); + sprintf(map->help_txt ,"conf/help.txt"); + sprintf(map->help2_txt ,"conf/help2.txt"); + sprintf(map->charhelp_txt ,"conf/charhelp.txt"); + + sprintf(map->wisp_server_name ,"Server"); // can be modified in char-server configuration file + + map->autosave_interval = DEFAULT_AUTOSAVE_INTERVAL; + map->minsave_interval = 100; + map->save_settings = 0xFFFF; + map->agit_flag = 0; + map->agit2_flag = 0; + map->night_flag = 0; // 0=day, 1=night [Yor] + map->enable_spy = 0; //To enable/disable @spy commands, which consume too much cpu time when sending packets. [Skotlex] + + map->db_use_sql_item_db = 0; + map->db_use_sql_mob_db = 0; + map->db_use_sql_mob_skill_db = 0; + + sprintf(map->item_db_db, "item_db"); + sprintf(map->item_db2_db, "item_db2"); + sprintf(map->item_db_re_db, "item_db_re"); + sprintf(map->mob_db_db, "mob_db"); + sprintf(map->mob_db2_db, "mob_db2"); + sprintf(map->mob_skill_db_db, "mob_skill_db"); + sprintf(map->mob_skill_db2_db, "mob_skill_db2"); + sprintf(map->interreg_db, "interreg"); + + map->INTER_CONF_NAME="conf/inter-server.conf"; + map->LOG_CONF_NAME="conf/logs.conf"; + map->MAP_CONF_NAME = "conf/map-server.conf"; + map->BATTLE_CONF_FILENAME = "conf/battle.conf"; + map->ATCOMMAND_CONF_FILENAME = "conf/atcommand.conf"; + map->SCRIPT_CONF_NAME = "conf/script.conf"; + map->MSG_CONF_NAME = "conf/messages.conf"; + map->GRF_PATH_FILENAME = "conf/grf-files.txt"; + + map->default_codepage[0] = '\0'; + map->server_port = 3306; + sprintf(map->server_ip,"127.0.0.1"); + sprintf(map->server_id,"ragnarok"); + sprintf(map->server_pw,"ragnarok"); + sprintf(map->server_db,"ragnarok"); + map->mysql_handle = NULL; + + map->port = 0; + map->users = 0; + map->ip_set = 0; + map->char_ip_set = 0; + map->enable_grf = 0; + + memset(&map->index2mapid, -1, sizeof(map->index2mapid)); + + map->id_db = NULL; + map->pc_db = NULL; + map->mobid_db = NULL; + map->bossid_db = NULL; + map->map_db = NULL; + map->nick_db = NULL; + map->charid_db = NULL; + map->regen_db = NULL; + map->zone_db = NULL; + map->iwall_db = NULL; + + //all in a big chunk, respects order + memset(map->block_free,0,sizeof(map->block_free) + + sizeof(map->block_free_count) + + sizeof(map->block_free_lock) + + sizeof(map->bl_list) + + sizeof(map->bl_list_count) + + sizeof(map->bl_head) + + sizeof(map->zone_all) + + sizeof(map->zone_pk) + ); + + map->cpsd = NULL; + map->list = NULL; + + map->iterator_ers = NULL; + map->cache_buffer = NULL; /* funcs */ map->zone_init = map_zone_init; map->zone_remove = map_zone_remove; @@ -5479,21 +5679,36 @@ void map_defaults(void) { map->charid2nick = map_charid2nick; map->charid2sd = map_charid2sd; - map->map_foreachpc = map_map_foreachpc; - map->map_foreachmob = map_map_foreachmob; - map->map_foreachnpc = map_map_foreachnpc; - map->map_foreachregen = map_map_foreachregen; - map->map_foreachiddb = map_map_foreachiddb; - + map->vforeachpc = map_vforeachpc; + map->foreachpc = map_foreachpc; + map->vforeachmob = map_vforeachmob; + map->foreachmob = map_foreachmob; + map->vforeachnpc = map_vforeachnpc; + map->foreachnpc = map_foreachnpc; + map->vforeachregen = map_vforeachregen; + map->foreachregen = map_foreachregen; + map->vforeachiddb = map_vforeachiddb; + map->foreachiddb = map_foreachiddb; + + map->vforeachinrange = map_vforeachinrange; map->foreachinrange = map_foreachinrange; + map->vforeachinshootrange = map_vforeachinshootrange; map->foreachinshootrange = map_foreachinshootrange; + map->vforeachinarea = map_vforeachinarea; map->foreachinarea = map_foreachinarea; + map->vforcountinrange = map_vforcountinrange; map->forcountinrange = map_forcountinrange; + map->vforcountinarea = map_vforcountinarea; map->forcountinarea = map_forcountinarea; + map->vforeachinmovearea = map_vforeachinmovearea; map->foreachinmovearea = map_foreachinmovearea; + map->vforeachincell = map_vforeachincell; map->foreachincell = map_foreachincell; + map->vforeachinpath = map_vforeachinpath; map->foreachinpath = map_foreachinpath; + map->vforeachinmap = map_vforeachinmap; map->foreachinmap = map_foreachinmap; + map->vforeachininstance = map_vforeachininstance; map->foreachininstance = map_foreachininstance; map->id2sd = map_id2sd; @@ -5541,7 +5756,55 @@ void map_defaults(void) { map->do_shutdown = do_shutdown; - /* FIXME: temporary until the map.c "Hercules Renewal Phase One" design is complete. [Ind] */ + map->freeblock_timer = map_freeblock_timer; + map->searchrandfreecell = map_searchrandfreecell; + map->count_sub = map_count_sub; + map->create_charid2nick = create_charid2nick; + map->removemobs_sub = map_removemobs_sub; + map->gat2cell = map_gat2cell; + map->cell2gat = map_cell2gat; + map->getcellp = map_getcellp; + map->setcell = map_setcell; + map->sub_getcellp = map_sub_getcellp; + map->sub_setcell = map_sub_setcell; + map->iwall_nextxy = map_iwall_nextxy; + map->create_map_data_other_server = create_map_data_other_server; + map->eraseallipport_sub = map_eraseallipport_sub; + map->init_mapcache = map_init_mapcache; + map->readfromcache = map_readfromcache; + map->addmap = map_addmap; + map->delmapid = map_delmapid; + map->zone_db_clear = map_zone_db_clear; + map->list_final = do_final_maps; + map->waterheight = map_waterheight; + map->readgat = map_readgat; + map->readallmaps = map_readallmaps; + map->config_read = map_config_read; + map->config_read_sub = map_config_read_sub; + map->reloadnpc_sub = map_reloadnpc_sub; + map->inter_config_read = inter_config_read; + map->sql_init = map_sql_init; + map->sql_close = map_sql_close; + map->zone_mf_cache = map_zone_mf_cache; + map->zone_str2itemid = map_zone_str2itemid; + map->zone_str2skillid = map_zone_str2skillid; + map->zone_bl_type = map_zone_bl_type; + map->read_zone_db = read_map_zone_db; + map->db_final = map_db_final; + map->nick_db_final = nick_db_final; + map->cleanup_db_sub = cleanup_db_sub; + map->abort_sub = map_abort_sub; + map->helpscreen = map_helpscreen; + map->versionscreen = map_versionscreen; + map->arg_next_value = map_arg_next_value; + + map->addblcell = map_addblcell; + map->delblcell = map_delblcell; + + /** + * mapit interface + **/ + mapit = &mapit_s; mapit->alloc = mapit_alloc; diff --git a/src/map/map.h b/src/map/map.h index 4b06a065b..29c1dfecc 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -11,6 +11,7 @@ #include "../common/mapindex.h" #include "../common/db.h" #include "../config/core.h" +#include "../common/sql.h" #include "atcommand.h" #include <stdarg.h> @@ -40,6 +41,11 @@ enum E_MAPSERVER_ST { #define MAX_VENDING 12 #define MAX_MAP_SIZE 512*512 // Wasn't there something like this already? Can't find it.. [Shinryo] +#define BLOCK_SIZE 8 +#define block_free_max 1048576 +#define BL_LIST_MAX 1048576 + + // Added definitions for WoESE objects. [L0ne_W0lf] enum MOBID { MOBID_EMPERIUM = 1288, @@ -67,10 +73,12 @@ enum MOBID { #define JOBL_UPPER 0x1000 //4096 #define JOBL_BABY 0x2000 //8192 #define JOBL_THIRD 0x4000 //16384 + // For filtering and quick checking. #define MAPID_BASEMASK 0x00ff #define MAPID_UPPERMASK 0x0fff #define MAPID_THIRDMASK (JOBL_THIRD|MAPID_UPPERMASK) + //First Jobs //Note the oddity of the novice: //Super Novices are considered the 2-1 version of the novice! Novices are considered a first class type. @@ -99,6 +107,7 @@ enum { MAPID_BLACKSMITH, MAPID_ASSASSIN, MAPID_STAR_GLADIATOR, + MAPID_REBELLION = JOBL_2_1|0x09, MAPID_KAGEROUOBORO = JOBL_2_1|0x0A, MAPID_DEATH_KNIGHT = JOBL_2_1|0x0E, //2-2 Jobs @@ -214,13 +223,13 @@ enum { #define EVENT_NAME_LENGTH ( NAME_LENGTH * 2 + 3 ) #define DEFAULT_AUTOSAVE_INTERVAL 5*60*1000 // Specifies maps where players may hit each other -#define map_flag_vs(m) (maplist[m].flag.pvp || maplist[m].flag.gvg_dungeon || maplist[m].flag.gvg || ((map->agit_flag || map->agit2_flag) && maplist[m].flag.gvg_castle) || maplist[m].flag.battleground) +#define map_flag_vs(m) (map->list[m].flag.pvp || map->list[m].flag.gvg_dungeon || map->list[m].flag.gvg || ((map->agit_flag || map->agit2_flag) && map->list[m].flag.gvg_castle) || map->list[m].flag.battleground) // Specifies maps that have special GvG/WoE restrictions -#define map_flag_gvg(m) (maplist[m].flag.gvg || ((map->agit_flag || map->agit2_flag) && maplist[m].flag.gvg_castle)) +#define map_flag_gvg(m) (map->list[m].flag.gvg || ((map->agit_flag || map->agit2_flag) && map->list[m].flag.gvg_castle)) // Specifies if the map is tagged as GvG/WoE (regardless of map->agit_flag status) -#define map_flag_gvg2(m) (maplist[m].flag.gvg || maplist[m].flag.gvg_castle) +#define map_flag_gvg2(m) (map->list[m].flag.gvg || map->list[m].flag.gvg_castle) // No Kill Steal Protection -#define map_flag_ks(m) (maplist[m].flag.town || maplist[m].flag.pvp || maplist[m].flag.gvg || maplist[m].flag.battleground) +#define map_flag_ks(m) (map->list[m].flag.town || map->list[m].flag.pvp || map->list[m].flag.gvg || map->list[m].flag.battleground) //This stackable implementation does not means a BL can be more than one type at a time, but it's // meant to make it easier to check for multiple types at a time on invocations such as map_foreach* calls [Skotlex] @@ -459,19 +468,19 @@ typedef enum { struct mapcell { // terrain flags unsigned char -walkable : 1, -shootable : 1, -water : 1; + walkable : 1, + shootable : 1, + water : 1; // dynamic flags unsigned char -npc : 1, -basilica : 1, -landprotector : 1, -novending : 1, -nochat : 1, -maelstrom : 1, -icewall : 1; + npc : 1, + basilica : 1, + landprotector : 1, + novending : 1, + nochat : 1, + maelstrom : 1, + icewall : 1; #ifdef CELL_NOSTACK unsigned char cell_bl; //Holds amount of bls in this cell. @@ -524,9 +533,6 @@ struct map_zone_skill_damage_cap_entry { #define MAP_ZONE_PK_NAME "PK Mode" #define MAP_ZONE_MAPFLAG_LENGTH 50 -//TODO place it in the map interface -DBMap *zone_db;/* string => struct map_zone_data */ - struct map_zone_data { char name[MAP_ZONE_NAME_LENGTH];/* 20'd */ struct map_zone_disabled_skill_entry **disabled_skills; @@ -541,9 +547,6 @@ struct map_zone_data { int capped_skills_count; }; -struct map_zone_data map_zone_all;/* used as a base on all maps */ -struct map_zone_data map_zone_pk;/* used for (pk_mode) */ - struct map_drop_list { int drop_id; int drop_type; @@ -695,10 +698,7 @@ struct map_data_other_server { uint16 port; }; - -struct map_data *maplist; - -#define map_id2index(id) maplist[(id)].index +#define map_id2index(id) map->list[(id)].index /// Bitfield of flags for the iterator. enum e_mapitflags { @@ -717,7 +717,7 @@ struct mapit_interface { struct block_list* (*next) (struct s_mapiterator* iter); struct block_list* (*prev) (struct s_mapiterator* iter); bool (*exists) (struct s_mapiterator* iter); -} mapit_s; +}; struct mapit_interface *mapit; @@ -742,11 +742,29 @@ typedef struct elemental_data TBL_ELEM; #define BL_CAST(type_, bl) \ ( ((bl) == (struct block_list*)NULL || (bl)->type != (type_)) ? (T ## type_ *)NULL : (T ## type_ *)(bl) ) -#include "../common/sql.h" +struct charid_request { + struct charid_request* next; + int charid;// who want to be notified of the nick +}; +struct charid2nick { + char nick[NAME_LENGTH]; + struct charid_request* requests;// requests of notification on this nick +}; +// This is the main header found at the very beginning of the map cache +struct map_cache_main_header { + uint32 file_size; + uint16 map_count; +}; + +// This is the header appended before every compressed map cells info in the map cache +struct map_cache_map_info { + char name[MAP_NAME_LENGTH]; + int16 xs; + int16 ys; + int32 len; +}; -extern Sql* mmysql_handle; -extern Sql* logmysql_handle; /*===================================== * Interface : map.h @@ -756,7 +774,7 @@ extern Sql* logmysql_handle; struct map_interface { /* vars */ - int map_num; + int count; int autosave_interval; int minsave_interval; @@ -795,6 +813,47 @@ struct map_interface { char mob_skill_db2_db[32]; char interreg_db[32]; + char default_codepage[32]; + + int server_port; + char server_ip[32]; + char server_id[32]; + char server_pw[32]; + char server_db[32]; + Sql* mysql_handle; + + int port; + int users; + int enable_grf; //To enable/disable reading maps from GRF files, bypassing mapcache [blackhole89] + int ip_set; + int char_ip_set; + + int16 index2mapid[MAX_MAPINDEX]; + /* */ + DBMap* id_db; // int id -> struct block_list* + DBMap* pc_db; // int id -> struct map_session_data* + DBMap* mobid_db; // int id -> struct mob_data* + DBMap* bossid_db; // int id -> struct mob_data* (MVP db) + DBMap* map_db; // unsigned int mapindex -> struct map_data_other_server* + DBMap* nick_db; // int char_id -> struct charid2nick* (requested names of offline characters) + DBMap* charid_db; // int char_id -> struct map_session_data* + DBMap* regen_db; // int id -> struct block_list* (status_natural_heal processing) + DBMap* zone_db; // string => struct map_zone_data + DBMap* iwall_db; + /* order respected by map_defaults() in order to zero */ + /* from block_free until zone_pk */ + struct block_list *block_free[block_free_max]; + int block_free_count, block_free_lock; + struct block_list *bl_list[BL_LIST_MAX]; + int bl_list_count; + struct block_list bl_head; + struct map_zone_data zone_all;/* used as a base on all maps */ + struct map_zone_data zone_pk;/* used for (pk_mode) */ + struct map_session_data *cpsd; + struct map_data *list; + /* [Ind/Hercules] */ + struct eri *iterator_ers; + char *cache_buffer; // Has the uncompressed gat data of all maps, so just one allocation has to be made /* funcs */ void (*zone_init) (void); void (*zone_remove) (int m); @@ -817,17 +876,17 @@ struct map_interface { // blocklist manipulation int (*addblock) (struct block_list* bl); int (*delblock) (struct block_list* bl); - int (*moveblock) (struct block_list *, int, int, unsigned int); + int (*moveblock) (struct block_list *bl, int x1, int y1, unsigned int tick); //blocklist nb in one cell int (*count_oncell) (int16 m,int16 x,int16 y,int type); - struct skill_unit * (*find_skill_unit_oncell) (struct block_list *,int16 x,int16 y,uint16 skill_id,struct skill_unit *, int flag); + struct skill_unit * (*find_skill_unit_oncell) (struct block_list* target,int16 x,int16 y,uint16 skill_id,struct skill_unit* out_unit, int flag); // search and creation int (*get_new_object_id) (void); int (*search_freecell) (struct block_list *src, int16 m, int16 *x, int16 *y, int16 rx, int16 ry, int flag); // - int (*quit) (struct map_session_data *); + int (*quit) (struct map_session_data *sd); // npc - bool (*addnpc) (int16 m,struct npc_data *); + bool (*addnpc) (int16 m,struct npc_data *nd); // map item int (*clearflooritem_timer) (int tid, unsigned int tick, int id, intptr_t data); int (*removemobs_timer) (int tid, unsigned int tick, int id, intptr_t data); @@ -840,21 +899,36 @@ struct map_interface { const char* (*charid2nick) (int charid); struct map_session_data* (*charid2sd) (int charid); - void (*map_foreachpc) (int (*func)(struct map_session_data* sd, va_list args), ...); - void (*map_foreachmob) (int (*func)(struct mob_data* md, va_list args), ...); - void (*map_foreachnpc) (int (*func)(struct npc_data* nd, va_list args), ...); - void (*map_foreachregen) (int (*func)(struct block_list* bl, va_list args), ...); - void (*map_foreachiddb) (int (*func)(struct block_list* bl, va_list args), ...); - + void (*vforeachpc) (int (*func)(struct map_session_data* sd, va_list args), va_list args); + void (*foreachpc) (int (*func)(struct map_session_data* sd, va_list args), ...); + void (*vforeachmob) (int (*func)(struct mob_data* md, va_list args), va_list args); + void (*foreachmob) (int (*func)(struct mob_data* md, va_list args), ...); + void (*vforeachnpc) (int (*func)(struct npc_data* nd, va_list args), va_list args); + void (*foreachnpc) (int (*func)(struct npc_data* nd, va_list args), ...); + void (*vforeachregen) (int (*func)(struct block_list* bl, va_list args), va_list args); + void (*foreachregen) (int (*func)(struct block_list* bl, va_list args), ...); + void (*vforeachiddb) (int (*func)(struct block_list* bl, va_list args), va_list args); + void (*foreachiddb) (int (*func)(struct block_list* bl, va_list args), ...); + + int (*vforeachinrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int type, va_list ap); int (*foreachinrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int type, ...); + int (*vforeachinshootrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int type, va_list ap); int (*foreachinshootrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int type, ...); + int (*vforeachinarea) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int type, va_list ap); int (*foreachinarea) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int type, ...); + int (*vforcountinrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int count, int type, va_list ap); int (*forcountinrange) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int count, int type, ...); + int (*vforcountinarea) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int count, int type, va_list ap); int (*forcountinarea) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int count, int type, ...); + int (*vforeachinmovearea) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int16 dx, int16 dy, int type, va_list ap); int (*foreachinmovearea) (int (*func)(struct block_list*,va_list), struct block_list* center, int16 range, int16 dx, int16 dy, int type, ...); + int (*vforeachincell) (int (*func)(struct block_list*,va_list), int16 m, int16 x, int16 y, int type, va_list ap); int (*foreachincell) (int (*func)(struct block_list*,va_list), int16 m, int16 x, int16 y, int type, ...); + int (*vforeachinpath) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, va_list ap); int (*foreachinpath) (int (*func)(struct block_list*,va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, ...); + int (*vforeachinmap) (int (*func)(struct block_list*,va_list), int16 m, int type, va_list args); int (*foreachinmap) (int (*func)(struct block_list*,va_list), int16 m, int type, ...); + int (*vforeachininstance)(int (*func)(struct block_list*,va_list), int16 instance_id, int type, va_list ap); int (*foreachininstance)(int (*func)(struct block_list*,va_list), int16 instance_id, int type,...); struct map_session_data * (*id2sd) (int id); @@ -871,10 +945,10 @@ struct map_interface { int (*setipport) (unsigned short mapindex, uint32 ip, uint16 port); int (*eraseipport) (unsigned short mapindex, uint32 ip, uint16 port); int (*eraseallipport) (void); - void (*addiddb) (struct block_list *); + void (*addiddb) (struct block_list *bl); void (*deliddb) (struct block_list *bl); /* */ - struct map_session_data * (*nick2sd) (const char*); + struct map_session_data * (*nick2sd) (const char *nick); struct mob_data * (*getmob_boss) (int16 m); struct mob_data * (*id2boss) (int id); // reload config file looking only for npcs @@ -902,6 +976,50 @@ struct map_interface { void (*clean) (int i); void (*do_shutdown) (void); + + int (*freeblock_timer) (int tid, unsigned int tick, int id, intptr_t data); + int (*searchrandfreecell) (int16 m, int16 *x, int16 *y, int stack); + int (*count_sub) (struct block_list *bl, va_list ap); + DBData (*create_charid2nick) (DBKey key, va_list args); + int (*removemobs_sub) (struct block_list *bl, va_list ap); + struct mapcell (*gat2cell) (int gat); + int (*cell2gat) (struct mapcell cell); + int (*getcellp) (struct map_data *m, int16 x, int16 y, cell_chk cellchk); + void (*setcell) (int16 m, int16 x, int16 y, cell_t cell, bool flag); + int (*sub_getcellp) (struct map_data *m, int16 x, int16 y, cell_chk cellchk); + void (*sub_setcell) (int16 m, int16 x, int16 y, cell_t cell, bool flag); + void (*iwall_nextxy) (int16 x, int16 y, int8 dir, int pos, int16 *x1, int16 *y1); + DBData (*create_map_data_other_server) (DBKey key, va_list args); + int (*eraseallipport_sub) (DBKey key, DBData *data, va_list va); + char* (*init_mapcache) (FILE *fp); + int (*readfromcache) (struct map_data *m, char *buffer); + int (*addmap) (char *mapname); + void (*delmapid) (int id); + void (*zone_db_clear) (void); + void (*list_final) (void); + int (*waterheight) (char *mapname); + int (*readgat) (struct map_data *m); + int (*readallmaps) (void); + int (*config_read) (char *cfgName); + int (*config_read_sub) (char *cfgName); + void (*reloadnpc_sub) (char *cfgName); + int (*inter_config_read) (char *cfgName); + int (*sql_init) (void); + int (*sql_close) (void); + bool (*zone_mf_cache) (int m, char *flag, char *params); + unsigned short (*zone_str2itemid) (const char *name); + unsigned short (*zone_str2skillid) (const char *name); + enum bl_type (*zone_bl_type) (const char *entry, enum map_zone_skill_subtype *subtype); + void (*read_zone_db) (void); + int (*db_final) (DBKey key, DBData *data, va_list ap); + int (*nick_db_final) (DBKey key, DBData *data, va_list args); + int (*cleanup_db_sub) (DBKey key, DBData *data, va_list va); + int (*abort_sub) (struct map_session_data *sd, va_list ap); + void (*helpscreen) (bool do_exit); + void (*versionscreen) (bool do_exit); + bool (*arg_next_value) (const char *option, int i, int argc); + void (*addblcell) (struct block_list *bl); + void (*delblcell) (struct block_list *bl); }; struct map_interface *map; diff --git a/src/map/mapreg_sql.c b/src/map/mapreg_sql.c index 0a0b8f75f..902b7c39b 100644 --- a/src/map/mapreg_sql.c +++ b/src/map/mapreg_sql.c @@ -10,7 +10,7 @@ #include "../common/sql.h" #include "../common/strlib.h" #include "../common/timer.h" -#include "map.h" // mmysql_handle +#include "map.h" // map->mysql_handle #include "script.h" #include "mapreg.h" #include <stdlib.h> @@ -55,9 +55,9 @@ bool mapreg_setreg(int uid, int val) { if(name[1] != '@') {// write new variable to database char tmp_str[32*2+1]; - SQL->EscapeStringLen(mmysql_handle, tmp_str, name, strnlen(name, 32)); - if( SQL_ERROR == SQL->Query(mmysql_handle, "INSERT INTO `%s`(`varname`,`index`,`value`) VALUES ('%s','%d','%d')", mapreg->table, tmp_str, i, val) ) - Sql_ShowDebug(mmysql_handle); + SQL->EscapeStringLen(map->mysql_handle, tmp_str, name, strnlen(name, 32)); + if( SQL_ERROR == SQL->Query(map->mysql_handle, "INSERT INTO `%s`(`varname`,`index`,`value`) VALUES ('%s','%d','%d')", mapreg->table, tmp_str, i, val) ) + Sql_ShowDebug(map->mysql_handle); } idb_put(mapreg->db, uid, m); } @@ -68,8 +68,8 @@ bool mapreg_setreg(int uid, int val) { idb_remove(mapreg->db,uid); if( name[1] != '@' ) {// Remove from database because it is unused. - if( SQL_ERROR == SQL->Query(mmysql_handle, "DELETE FROM `%s` WHERE `varname`='%s' AND `index`='%d'", mapreg->table, name, i) ) - Sql_ShowDebug(mmysql_handle); + if( SQL_ERROR == SQL->Query(map->mysql_handle, "DELETE FROM `%s` WHERE `varname`='%s' AND `index`='%d'", mapreg->table, name, i) ) + Sql_ShowDebug(map->mysql_handle); } } @@ -85,8 +85,8 @@ bool mapreg_setregstr(int uid, const char* str) { if( str == NULL || *str == 0 ) { if(name[1] != '@') { - if( SQL_ERROR == SQL->Query(mmysql_handle, "DELETE FROM `%s` WHERE `varname`='%s' AND `index`='%d'", mapreg->table, name, i) ) - Sql_ShowDebug(mmysql_handle); + if( SQL_ERROR == SQL->Query(map->mysql_handle, "DELETE FROM `%s` WHERE `varname`='%s' AND `index`='%d'", mapreg->table, name, i) ) + Sql_ShowDebug(map->mysql_handle); } if( (m = idb_get(mapreg->str_db,uid)) ) { if( m->u.str != NULL ) @@ -113,10 +113,10 @@ bool mapreg_setregstr(int uid, const char* str) { if(name[1] != '@') { //put returned null, so we must insert. char tmp_str[32*2+1]; char tmp_str2[255*2+1]; - SQL->EscapeStringLen(mmysql_handle, tmp_str, name, strnlen(name, 32)); - SQL->EscapeStringLen(mmysql_handle, tmp_str2, str, strnlen(str, 255)); - if( SQL_ERROR == SQL->Query(mmysql_handle, "INSERT INTO `%s`(`varname`,`index`,`value`) VALUES ('%s','%d','%s')", mapreg->table, tmp_str, i, tmp_str2) ) - Sql_ShowDebug(mmysql_handle); + SQL->EscapeStringLen(map->mysql_handle, tmp_str, name, strnlen(name, 32)); + SQL->EscapeStringLen(map->mysql_handle, tmp_str2, str, strnlen(str, 255)); + if( SQL_ERROR == SQL->Query(map->mysql_handle, "INSERT INTO `%s`(`varname`,`index`,`value`) VALUES ('%s','%d','%s')", mapreg->table, tmp_str, i, tmp_str2) ) + Sql_ShowDebug(map->mysql_handle); } idb_put(mapreg->str_db, uid, m); } @@ -133,7 +133,7 @@ void script_load_mapreg(void) { | varname | index | value | +-------------------------+ */ - SqlStmt* stmt = SQL->StmtMalloc(mmysql_handle); + SqlStmt* stmt = SQL->StmtMalloc(map->mysql_handle); char varname[32+1]; int index; char value[255+1]; @@ -199,8 +199,8 @@ void script_save_mapreg(void) { int i = (m->uid & 0xff000000) >> 24; const char* name = script->get_str(num); - if( SQL_ERROR == SQL->Query(mmysql_handle, "UPDATE `%s` SET `value`='%d' WHERE `varname`='%s' AND `index`='%d' LIMIT 1", mapreg->table, m->u.i, name, i) ) - Sql_ShowDebug(mmysql_handle); + if( SQL_ERROR == SQL->Query(map->mysql_handle, "UPDATE `%s` SET `value`='%d' WHERE `varname`='%s' AND `index`='%d' LIMIT 1", mapreg->table, m->u.i, name, i) ) + Sql_ShowDebug(map->mysql_handle); m->save = false; } } @@ -217,9 +217,9 @@ void script_save_mapreg(void) { const char* name = script->get_str(num); char tmp_str2[2*255+1]; - SQL->EscapeStringLen(mmysql_handle, tmp_str2, m->u.str, safestrnlen(m->u.str, 255)); - if( SQL_ERROR == SQL->Query(mmysql_handle, "UPDATE `%s` SET `value`='%s' WHERE `varname`='%s' AND `index`='%d' LIMIT 1", mapreg->table, tmp_str2, name, i) ) - Sql_ShowDebug(mmysql_handle); + SQL->EscapeStringLen(map->mysql_handle, tmp_str2, m->u.str, safestrnlen(m->u.str, 255)); + if( SQL_ERROR == SQL->Query(map->mysql_handle, "UPDATE `%s` SET `value`='%s' WHERE `varname`='%s' AND `index`='%d' LIMIT 1", mapreg->table, tmp_str2, name, i) ) + Sql_ShowDebug(map->mysql_handle); m->save = false; } } diff --git a/src/map/mercenary.c b/src/map/mercenary.c index a1e2986b2..8b8353f46 100644 --- a/src/map/mercenary.c +++ b/src/map/mercenary.c @@ -50,12 +50,12 @@ int merc_search_index(int class_) bool merc_class(int class_) { - return (bool)(merc_search_index(class_) > -1); + return (bool)(mercenary->search_index(class_) > -1); } struct view_data * merc_get_viewdata(int class_) { - int i = merc_search_index(class_); + int i = mercenary->search_index(class_); if( i < 0 ) return 0; @@ -69,7 +69,7 @@ int merc_create(struct map_session_data *sd, int class_, unsigned int lifetime) int i; nullpo_retr(0,sd); - if( (i = merc_search_index(class_)) < 0 ) + if( (i = mercenary->search_index(class_)) < 0 ) return 0; db = &mercenary->db[i]; @@ -217,7 +217,7 @@ int mercenary_save(struct mercenary_data *md) return 1; } -static int merc_contract_end(int tid, unsigned int tick, int id, intptr_t data) { +int merc_contract_end_timer(int tid, unsigned int tick, int id, intptr_t data) { struct map_session_data *sd; struct mercenary_data *md; @@ -228,7 +228,7 @@ static int merc_contract_end(int tid, unsigned int tick, int id, intptr_t data) if( md->contract_timer != tid ) { - ShowError("merc_contract_end %d != %d.\n", md->contract_timer, tid); + ShowError("merc_contract_end_timer %d != %d.\n", md->contract_timer, tid); return 0; } @@ -268,14 +268,14 @@ void merc_contract_stop(struct mercenary_data *md) { nullpo_retv(md); if( md->contract_timer != INVALID_TIMER ) - timer->delete(md->contract_timer, merc_contract_end); + timer->delete(md->contract_timer, mercenary->contract_end_timer); md->contract_timer = INVALID_TIMER; } void merc_contract_init(struct mercenary_data *md) { if( md->contract_timer == INVALID_TIMER ) - md->contract_timer = timer->add(timer->gettick() + md->mercenary.life_time, merc_contract_end, md->master->bl.id, 0); + md->contract_timer = timer->add(timer->gettick() + md->mercenary.life_time, mercenary->contract_end_timer, md->master->bl.id, 0); md->regen.state.block = 0; } @@ -284,7 +284,7 @@ int merc_data_received(struct s_mercenary *merc, bool flag) { struct map_session_data *sd; struct mercenary_data *md; struct s_mercenary_db *db; - int i = merc_search_index(merc->class_); + int i = mercenary->search_index(merc->class_); if( (sd = map->charid2sd(merc->char_id)) == NULL ) return 0; @@ -372,7 +372,7 @@ int mercenary_kills(struct mercenary_data *md) if( (md->mercenary.kill_count % 50) == 0 ) { mercenary->set_faith(md, 1); - mercenary_killbonus(md); + mercenary->killbonus(md); } if( md->master ) @@ -393,7 +393,7 @@ int mercenary_checkskill(struct mercenary_data *md, uint16 skill_id) return 0; } -static bool read_mercenarydb_sub(char* str[], int columns, int current) { +bool read_mercenarydb_sub(char* str[], int columns, int current) { int ele; struct s_mercenary_db *db; struct status_data *mstatus; @@ -448,12 +448,12 @@ static bool read_mercenarydb_sub(char* str[], int columns, int current) { int read_mercenarydb(void) { memset(mercenary->db,0,sizeof(mercenary->db)); - sv->readdb(map->db_path, "mercenary_db.txt", ',', 26, 26, MAX_MERCENARY_CLASS, &read_mercenarydb_sub); + sv->readdb(map->db_path, "mercenary_db.txt", ',', 26, 26, MAX_MERCENARY_CLASS, mercenary->read_db_sub); return 0; } -static bool read_mercenary_skilldb_sub(char* str[], int columns, int current) +bool read_mercenary_skilldb_sub(char* str[], int columns, int current) {// <merc id>,<skill id>,<skill level> struct s_mercenary_db *db; int i, class_; @@ -485,22 +485,18 @@ static bool read_mercenary_skilldb_sub(char* str[], int columns, int current) } int read_mercenary_skilldb(void) { - sv->readdb(map->db_path, "mercenary_skill_db.txt", ',', 3, 3, -1, &read_mercenary_skilldb_sub); + sv->readdb(map->db_path, "mercenary_skill_db.txt", ',', 3, 3, -1, mercenary->read_skill_db_sub); return 0; } -int do_init_mercenary(void) -{ +void do_init_mercenary(void) { mercenary->read_db(); mercenary->read_skilldb(); - //add_timer_func_list(mercenary_contract, "mercenary_contract"); - return 0; + timer->add_func_list(mercenary->contract_end_timer, "merc_contract_end_timer"); } -int do_final_mercenary(void); - /*===================================== * Default Functions : mercenary.h * Generated by HerculesInterfaceMaker @@ -539,5 +535,12 @@ void mercenary_defaults(void) { mercenary->checkskill = mercenary_checkskill; mercenary->read_db = read_mercenarydb; - mercenary->read_skilldb = read_mercenary_skilldb; + mercenary->read_skilldb = read_mercenary_skilldb; + + mercenary->killbonus = mercenary_killbonus; + mercenary->search_index = merc_search_index; + + mercenary->contract_end_timer = merc_contract_end_timer; + mercenary->read_db_sub = read_mercenarydb_sub; + mercenary->read_skill_db_sub = read_mercenary_skilldb_sub; } diff --git a/src/map/mercenary.h b/src/map/mercenary.h index b59a1c808..47f37ac66 100644 --- a/src/map/mercenary.h +++ b/src/map/mercenary.h @@ -1,5 +1,6 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Portions Copyright (c) Athena Dev Teams #ifndef _MERCENARY_H_ #define _MERCENARY_H_ @@ -58,7 +59,7 @@ struct mercenary_interface { /* funcs */ - int (*init) (void); + void (*init) (void); bool (*class) (int class_); struct view_data * (*get_viewdata) (int class_); @@ -83,7 +84,14 @@ struct mercenary_interface { int (*checkskill) (struct mercenary_data *md, uint16 skill_id); int (*read_db) (void); - int (*read_skilldb) (void); + int (*read_skilldb) (void); + + int (*killbonus) (struct mercenary_data *md); + int (*search_index) (int class_); + + int (*contract_end_timer) (int tid, unsigned int tick, int id, intptr_t data); + bool (*read_db_sub) (char* str[], int columns, int current); + bool (*read_skill_db_sub) (char* str[], int columns, int current); }; struct mercenary_interface *mercenary; diff --git a/src/map/mob.c b/src/map/mob.c index 8e956adc1..7023bcb9d 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -173,11 +173,11 @@ void mvptomb_destroy(struct mob_data *md) { map->delblock(&nd->bl); - ARR_FIND( 0, maplist[m].npc_num, i, maplist[m].npc[i] == nd ); - if( !(i == maplist[m].npc_num) ) { - maplist[m].npc_num--; - maplist[m].npc[i] = maplist[m].npc[maplist[m].npc_num]; - maplist[m].npc[maplist[m].npc_num] = NULL; + ARR_FIND( 0, map->list[m].npc_num, i, map->list[m].npc[i] == nd ); + if( !(i == map->list[m].npc_num) ) { + map->list[m].npc_num--; + map->list[m].npc[i] = map->list[m].npc[map->list[m].npc_num]; + map->list[m].npc[map->list[m].npc_num] = NULL; } map->deliddb(&nd->bl); @@ -363,7 +363,7 @@ bool mob_ksprotected (struct block_list *src, struct block_list *target) t_sd = BL_CAST(BL_PC,s_bl); do { - if( maplist[md->bl.m].flag.allowks || map_flag_ks(md->bl.m) ) + if( map->list[md->bl.m].flag.allowks || map_flag_ks(md->bl.m) ) return false; // Ignores GVG, PVP and AllowKS map flags if( md->db->mexp || md->master_id ) @@ -638,12 +638,12 @@ int mob_spawn_guardian(const char* mapname, short x, short y, const char* mobnam if( !has_index ) { guardian = -1; } else if( guardian < 0 || guardian >= MAX_GUARDIANS ) { - ShowError("mob_spawn_guardian: Invalid guardian index %d for guardian %d (castle map %s)\n", guardian, class_, maplist[m].name); + ShowError("mob_spawn_guardian: Invalid guardian index %d for guardian %d (castle map %s)\n", guardian, class_, map->list[m].name); return 0; } if((x<=0 || y<=0) && !map->search_freecell(NULL, m, &x, &y, -1,-1, 1)) { - ShowWarning("mob_spawn_guardian: Couldn't locate a spawn cell for guardian class %d (index %d) at castle map %s\n",class_, guardian, maplist[m].name); + ShowWarning("mob_spawn_guardian: Couldn't locate a spawn cell for guardian class %d (index %d) at castle map %s\n",class_, guardian, map->list[m].name); return 0; } data.x = x; @@ -653,13 +653,13 @@ int mob_spawn_guardian(const char* mapname, short x, short y, const char* mobnam if (!mob->parse_dataset(&data)) return 0; - gc=guild->mapname2gc(maplist[m].name); + gc=guild->mapname2gc(map->list[m].name); if (gc == NULL) { - ShowError("mob_spawn_guardian: No castle set at map %s\n", maplist[m].name); + ShowError("mob_spawn_guardian: No castle set at map %s\n", map->list[m].name); return 0; } if (!gc->guild_id) - ShowWarning("mob_spawn_guardian: Spawning guardian %d on a castle with no guild (castle map %s)\n", class_, maplist[m].name); + ShowWarning("mob_spawn_guardian: Spawning guardian %d on a castle with no guild (castle map %s)\n", class_, map->list[m].name); else g = guild->search(gc->guild_id); @@ -670,7 +670,7 @@ int mob_spawn_guardian(const char* mapname, short x, short y, const char* mobnam && md2->guardian_data && md2->guardian_data->number == guardian ) { - ShowError("mob_spawn_guardian: Attempted to spawn guardian in position %d which already has a guardian (castle map %s)\n", guardian, maplist[m].name); + ShowError("mob_spawn_guardian: Attempted to spawn guardian in position %d which already has a guardian (castle map %s)\n", guardian, map->list[m].name); return 0; } } @@ -732,7 +732,7 @@ int mob_spawn_bg(const char* mapname, short x, short y, const char* mobname, int data.class_ = class_; if( (x <= 0 || y <= 0) && !map->search_freecell(NULL, m, &x, &y, -1,-1, 1) ) { - ShowWarning("mob_spawn_bg: Couldn't locate a spawn cell for guardian class %d (bg_id %d) at map %s\n",class_, bg_id, maplist[m].name); + ShowWarning("mob_spawn_bg: Couldn't locate a spawn cell for guardian class %d (bg_id %d) at map %s\n",class_, bg_id, map->list[m].name); return 0; } @@ -963,7 +963,7 @@ int mob_spawn (struct mob_data *md) mob->mvptomb_destroy(md); map->addblock(&md->bl); - if( maplist[md->bl.m].users ) + if( map->list[md->bl.m].users ) clif->spawn(&md->bl); skill->unit_move(&md->bl,tick,1); mob->skill_use(md, tick, MSC_SPAWN); @@ -1068,7 +1068,7 @@ int mob_ai_sub_hard_activesearch(struct block_list *bl,va_list ap) battle->check_range(&md->bl,bl,md->db->range2) ) { //Pick closest target? - if( maplist[bl->m].icewall_num && + if( map->list[bl->m].icewall_num && !path->search_long(NULL,bl->m,md->bl.x,md->bl.y,bl->x,bl->y,CELL_CHKICEWALL) ) { if( !check_distance_bl(&md->bl, bl, status_get_range(&md->bl) ) ) @@ -1337,7 +1337,7 @@ int mob_randomwalk(struct mob_data *md,unsigned int tick) if(i==retrycount){ md->move_fail_count++; if(md->move_fail_count>1000){ - ShowWarning("MOB can't move. random spawn %d, class = %d, at %s (%d,%d)\n",md->bl.id,md->class_,maplist[md->bl.m].name, md->bl.x, md->bl.y); + ShowWarning("MOB can't move. random spawn %d, class = %d, at %s (%d,%d)\n",md->bl.id,md->class_,map->list[md->bl.m].name, md->bl.x, md->bl.y); md->move_fail_count=0; mob->spawn(md); } @@ -1683,7 +1683,7 @@ int mob_ai_sub_lazy(struct mob_data *md, va_list args) tick = va_arg(args,unsigned int); - if (battle_config.mob_ai&0x20 && maplist[md->bl.m].users>0) + if (battle_config.mob_ai&0x20 && map->list[md->bl.m].users>0) return (int)mob->ai_sub_hard(md, tick); if (md->bl.prev==NULL || md->status.hp == 0) @@ -1720,7 +1720,7 @@ int mob_ai_sub_lazy(struct mob_data *md, va_list args) } if( DIFF_TICK(md->next_walktime,tick) < 0 && (status_get_mode(&md->bl)&MD_CANMOVE) && unit->can_move(&md->bl) ) { - if( maplist[md->bl.m].users > 0 ) + if( map->list[md->bl.m].users > 0 ) { if( rnd()%1000 < MOB_LAZYMOVEPERC(md) ) mob->randomwalk(md, tick); @@ -1741,7 +1741,7 @@ int mob_ai_sub_lazy(struct mob_data *md, va_list args) * Negligent processing for mob outside PC field of view (interval timer function) *------------------------------------------*/ int mob_ai_lazy(int tid, unsigned int tick, int id, intptr_t data) { - map->map_foreachmob(mob->ai_sub_lazy,tick); + map->foreachmob(mob->ai_sub_lazy,tick); return 0; } @@ -1751,9 +1751,9 @@ int mob_ai_lazy(int tid, unsigned int tick, int id, intptr_t data) { int mob_ai_hard(int tid, unsigned int tick, int id, intptr_t data) { if (battle_config.mob_ai&0x20) - map->map_foreachmob(mob->ai_sub_lazy,tick); + map->foreachmob(mob->ai_sub_lazy,tick); else - map->map_foreachpc(mob->ai_sub_foreachclient,tick); + map->foreachpc(mob->ai_sub_foreachclient,tick); return 0; } @@ -2145,9 +2145,9 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) { } if( !(type&2) //No exp - && (!maplist[m].flag.pvp || battle_config.pvp_exp) //Pvp no exp rule [MouseJstr] + && (!map->list[m].flag.pvp || battle_config.pvp_exp) //Pvp no exp rule [MouseJstr] && (!md->master_id || !md->special_state.ai) //Only player-summoned mobs do not give exp. [Skotlex] - && (!maplist[m].flag.nobaseexp || !maplist[m].flag.nojobexp) //Gives Exp + && (!map->list[m].flag.nobaseexp || !map->list[m].flag.nojobexp) //Gives Exp ) { //Experience calculation. int bonus = 100; //Bonus on top of your share (common to all attackers). if (md->sc.data[SC_RICHMANKIM]) @@ -2157,8 +2157,8 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) { if(sd->sc.data[SC_MIRACLE]) i = 2; //All mobs are Star Targets else ARR_FIND(0, MAX_PC_FEELHATE, i, temp == sd->hate_mob[i] && - (battle_config.allow_skill_without_day || sg_info[i].day_func())); - if(i<MAX_PC_FEELHATE && (temp=pc->checkskill(sd,sg_info[i].bless_id))) + (battle_config.allow_skill_without_day || pc->sg_info[i].day_func())); + if(i<MAX_PC_FEELHATE && (temp=pc->checkskill(sd,pc->sg_info[i].bless_id))) bonus += (i==2?20:10)*temp; } if(battle_config.mobs_level_up && md->level > md->db->lv) // [Valaris] @@ -2209,15 +2209,15 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) { zeny*=rnd()%250; } - if (maplist[m].flag.nobaseexp || !md->db->base_exp) + if (map->list[m].flag.nobaseexp || !md->db->base_exp) base_exp = 0; else - base_exp = (unsigned int)cap_value(md->db->base_exp * per * bonus/100. * maplist[m].bexp/100., 1, UINT_MAX); + base_exp = (unsigned int)cap_value(md->db->base_exp * per * bonus/100. * map->list[m].bexp/100., 1, UINT_MAX); - if (maplist[m].flag.nojobexp || !md->db->job_exp || md->dmglog[i].flag == MDLF_HOMUN) //Homun earned job-exp is always lost. + if (map->list[m].flag.nojobexp || !md->db->job_exp || md->dmglog[i].flag == MDLF_HOMUN) //Homun earned job-exp is always lost. job_exp = 0; else - job_exp = (unsigned int)cap_value(md->db->job_exp * per * bonus/100. * maplist[m].jexp/100., 1, UINT_MAX); + job_exp = (unsigned int)cap_value(md->db->job_exp * per * bonus/100. * map->list[m].jexp/100., 1, UINT_MAX); if ( (temp = tmpsd[i]->status.party_id) > 0 ) { int j; @@ -2271,7 +2271,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) { } //End EXP giving. - if( !(type&1) && !maplist[m].flag.nomobloot && !md->state.rebirth && ( + if( !(type&1) && !map->list[m].flag.nomobloot && !md->state.rebirth && ( !md->special_state.ai || //Non special mob battle_config.alchemist_summon_reward == 2 || //All summoned give drops (md->special_state.ai==2 && battle_config.alchemist_summon_reward == 1) //Marine Sphere Drops items. @@ -2439,7 +2439,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) { double exp; //mapflag: noexp check [Lorky] - if (maplist[m].flag.nobaseexp || type&2) + if (map->list[m].flag.nobaseexp || type&2) exp =1; else { exp = md->db->mexp; @@ -2454,7 +2454,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) { pc->gainexp(mvp_sd, &md->bl, mexp,0, false); log_mvp[1] = mexp; - if( !(maplist[m].flag.nomvploot || type&1) ) { + if( !(map->list[m].flag.nomvploot || type&1) ) { /* pose them randomly in the list -- so on 100% drop servers it wont always drop the same item */ int mdrop_id[MAX_MVP_DROP]; int mdrop_p[MAX_MVP_DROP]; @@ -2598,7 +2598,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) { return 5; // Note: Actually, it's 4. Oh well... // MvP tomb [GreenBox] - if (battle_config.mvp_tomb_enabled && md->spawn->state.boss && maplist[md->bl.m].flag.notomb != 1) + if (battle_config.mvp_tomb_enabled && md->spawn->state.boss && map->list[md->bl.m].flag.notomb != 1) mob->mvptomb_create(md, mvp_sd ? mvp_sd->status.name : NULL, time(NULL)); if( !rebirth ) { @@ -2781,7 +2781,7 @@ int mob_warpslave_sub(struct block_list *bl,va_list ap) { return 0; map->search_freecell(master, 0, &x, &y, range, range, 0); - unit->warp(&md->bl, master->m, x, y,CLR_RESPAWN); + unit->warp(&md->bl, master->m, x, y,CLR_TELEPORT); return 1; } @@ -3348,18 +3348,18 @@ int mob_clone_spawn(struct map_session_data *sd, int16 m, int16 x, int16 y, cons //Go Backwards to give better priority to advanced skills. for (i=0,j = MAX_SKILL_TREE-1;j>=0 && i< MAX_MOBSKILL ;j--) { - int idx = skill_tree[pc->class2idx(sd->status.class_)][j].idx; - skill_id = skill_tree[pc->class2idx(sd->status.class_)][j].id; + int idx = pc->skill_tree[pc->class2idx(sd->status.class_)][j].idx; + skill_id = pc->skill_tree[pc->class2idx(sd->status.class_)][j].id; if (!skill_id || sd->status.skill[idx].lv < 1 || (skill->db[idx].inf2&(INF2_WEDDING_SKILL|INF2_GUILD_SKILL)) ) continue; - for(h = 0; h < maplist[sd->bl.m].zone->disabled_skills_count; h++) { - if( skill_id == maplist[sd->bl.m].zone->disabled_skills[h]->nameid && maplist[sd->bl.m].zone->disabled_skills[h]->subtype == MZS_CLONE ) { + for(h = 0; h < map->list[sd->bl.m].zone->disabled_skills_count; h++) { + if( skill_id == map->list[sd->bl.m].zone->disabled_skills[h]->nameid && map->list[sd->bl.m].zone->disabled_skills[h]->subtype == MZS_CLONE ) { break; } } - if( h < maplist[sd->bl.m].zone->disabled_skills_count ) + if( h < map->list[sd->bl.m].zone->disabled_skills_count ) continue; //Normal aggressive mob, disable skills that cannot help them fight //against players (those with flags UF_NOMOB and UF_NOPC are specific @@ -3890,13 +3890,13 @@ int mob_read_sqldb(void) { uint32 lines = 0, count = 0; // retrieve all rows from the mob database - if( SQL_ERROR == SQL->Query(mmysql_handle, "SELECT * FROM `%s`", mob_db_name[fi]) ) { - Sql_ShowDebug(mmysql_handle); + if( SQL_ERROR == SQL->Query(map->mysql_handle, "SELECT * FROM `%s`", mob_db_name[fi]) ) { + Sql_ShowDebug(map->mysql_handle); continue; } // process rows one by one - while( SQL_SUCCESS == SQL->NextRow(mmysql_handle) ) { + while( SQL_SUCCESS == SQL->NextRow(map->mysql_handle) ) { // wrap the result into a TXT-compatible format char line[1024]; char* str[31+2*MAX_MVP_DROP+2*MAX_MOB_DROP]; @@ -3908,7 +3908,7 @@ int mob_read_sqldb(void) { { char* data; size_t len; - SQL->GetData(mmysql_handle, i, &data, &len); + SQL->GetData(map->mysql_handle, i, &data, &len); strcpy(p, data); str[i] = p; @@ -3922,7 +3922,7 @@ int mob_read_sqldb(void) { } // free the query result - SQL->FreeResult(mmysql_handle); + SQL->FreeResult(map->mysql_handle); ShowStatus("Done reading '"CL_WHITE"%lu"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, mob_db_name[fi]); } @@ -4454,13 +4454,13 @@ int mob_read_sqlskilldb(void) { uint32 lines = 0, count = 0; // retrieve all rows from the mob skill database - if( SQL_ERROR == SQL->Query(mmysql_handle, "SELECT * FROM `%s`", mob_skill_db_name[fi]) ) { - Sql_ShowDebug(mmysql_handle); + if( SQL_ERROR == SQL->Query(map->mysql_handle, "SELECT * FROM `%s`", mob_skill_db_name[fi]) ) { + Sql_ShowDebug(map->mysql_handle); continue; } // process rows one by one - while( SQL_SUCCESS == SQL->NextRow(mmysql_handle) ) { + while( SQL_SUCCESS == SQL->NextRow(map->mysql_handle) ) { // wrap the result into a TXT-compatible format char* str[19]; char* dummy = ""; @@ -4468,7 +4468,7 @@ int mob_read_sqlskilldb(void) { ++lines; for( i = 0; i < 19; ++i ) { - SQL->GetData(mmysql_handle, i, &str[i], NULL); + SQL->GetData(map->mysql_handle, i, &str[i], NULL); if( str[i] == NULL ) str[i] = dummy; // get rid of NULL columns } @@ -4479,7 +4479,7 @@ int mob_read_sqlskilldb(void) { } // free the query result - SQL->FreeResult(mmysql_handle); + SQL->FreeResult(map->mysql_handle); ShowStatus("Done reading '"CL_WHITE"%lu"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, mob_skill_db_name[fi]); } diff --git a/src/map/mob.h b/src/map/mob.h index f4cbd77c6..210983675 100644 --- a/src/map/mob.h +++ b/src/map/mob.h @@ -245,8 +245,8 @@ struct item_drop_list { #define mob_stop_walking(md, type) unit->stop_walking(&(md)->bl, type) #define mob_stop_attack(md) unit->stop_attack(&(md)->bl) -#define mob_is_battleground(md) ( maplist[(md)->bl.m].flag.battleground && ((md)->class_ == MOBID_BARRICADE2 || ((md)->class_ >= MOBID_FOOD_STOR && (md)->class_ <= MOBID_PINK_CRYST)) ) -#define mob_is_gvg(md) (maplist[(md)->bl.m].flag.gvg_castle && ( (md)->class_ == MOBID_EMPERIUM || (md)->class_ == MOBID_BARRICADE1 || (md)->class_ == MOBID_GUARIDAN_STONE1 || (md)->class_ == MOBID_GUARIDAN_STONE2) ) +#define mob_is_battleground(md) ( map->list[(md)->bl.m].flag.battleground && ((md)->class_ == MOBID_BARRICADE2 || ((md)->class_ >= MOBID_FOOD_STOR && (md)->class_ <= MOBID_PINK_CRYST)) ) +#define mob_is_gvg(md) (map->list[(md)->bl.m].flag.gvg_castle && ( (md)->class_ == MOBID_EMPERIUM || (md)->class_ == MOBID_BARRICADE1 || (md)->class_ == MOBID_GUARIDAN_STONE1 || (md)->class_ == MOBID_GUARIDAN_STONE2) ) #define mob_is_treasure(md) (((md)->class_ >= MOBID_TREAS01 && (md)->class_ <= MOBID_TREAS40) || ((md)->class_ >= MOBID_TREAS41 && (md)->class_ <= MOBID_TREAS49)) struct mob_interface { diff --git a/src/map/npc.c b/src/map/npc.c index 21e4221da..c52dce325 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -212,11 +212,11 @@ struct npc_data* npc_name2id(const char* name) /** * For the Secure NPC Timeout option (check config/Secure.h) [RR] **/ -#ifdef SECURE_NPCTIMEOUT /** * Timer to check for idle time and timeout the dialog if necessary **/ int npc_rr_secure_timeout_timer(int tid, unsigned int tick, int id, intptr_t data) { +#ifdef SECURE_NPCTIMEOUT struct map_session_data* sd = NULL; unsigned int timeout = NPC_SECURE_TIMEOUT_NEXT; if( (sd = map->id2sd(id)) == NULL || !sd->npc_id ) { @@ -251,9 +251,9 @@ int npc_rr_secure_timeout_timer(int tid, unsigned int tick, int id, intptr_t dat sd->npc_idle_timer = INVALID_TIMER; } else //Create a new instance of ourselves to continue sd->npc_idle_timer = timer->add(timer->gettick() + (SECURE_NPCTIMEOUT_INTERVAL*1000),npc->secure_timeout_timer,sd->bl.id,0); +#endif return 0; } -#endif /*========================================== * Dequeue event and add timer for execution (100ms) @@ -881,53 +881,53 @@ int npc_touch_areanpc(struct map_session_data* sd, int16 m, int16 x, int16 y) //if(sd->npc_id) // return 1; - for(i=0;i<maplist[m].npc_num;i++) { - if (maplist[m].npc[i]->option&OPTION_INVISIBLE) { + for(i=0;i<map->list[m].npc_num;i++) { + if (map->list[m].npc[i]->option&OPTION_INVISIBLE) { f=0; // a npc was found, but it is disabled; don't print warning continue; } - switch(maplist[m].npc[i]->subtype) { + switch(map->list[m].npc[i]->subtype) { case WARP: - xs=maplist[m].npc[i]->u.warp.xs; - ys=maplist[m].npc[i]->u.warp.ys; + xs=map->list[m].npc[i]->u.warp.xs; + ys=map->list[m].npc[i]->u.warp.ys; break; case SCRIPT: - xs=maplist[m].npc[i]->u.scr.xs; - ys=maplist[m].npc[i]->u.scr.ys; + xs=map->list[m].npc[i]->u.scr.xs; + ys=map->list[m].npc[i]->u.scr.ys; break; default: continue; } - if( x >= maplist[m].npc[i]->bl.x-xs && x <= maplist[m].npc[i]->bl.x+xs - && y >= maplist[m].npc[i]->bl.y-ys && y <= maplist[m].npc[i]->bl.y+ys ) + if( x >= map->list[m].npc[i]->bl.x-xs && x <= map->list[m].npc[i]->bl.x+xs + && y >= map->list[m].npc[i]->bl.y-ys && y <= map->list[m].npc[i]->bl.y+ys ) break; } - if( i == maplist[m].npc_num ) { + if( i == map->list[m].npc_num ) { if( f == 1 ) // no npc found - ShowError("npc_touch_areanpc : stray NPC cell/NPC not found in the block on coordinates '%s',%d,%d\n", maplist[m].name, x, y); + ShowError("npc_touch_areanpc : stray NPC cell/NPC not found in the block on coordinates '%s',%d,%d\n", map->list[m].name, x, y); return 1; } - switch(maplist[m].npc[i]->subtype) { + switch(map->list[m].npc[i]->subtype) { case WARP: if( pc_ishiding(sd) || (sd->sc.count && sd->sc.data[SC_CAMOUFLAGE]) ) break; // hidden chars cannot use warps - pc->setpos(sd,maplist[m].npc[i]->u.warp.mapindex,maplist[m].npc[i]->u.warp.x,maplist[m].npc[i]->u.warp.y,CLR_OUTSIGHT); + pc->setpos(sd,map->list[m].npc[i]->u.warp.mapindex,map->list[m].npc[i]->u.warp.x,map->list[m].npc[i]->u.warp.y,CLR_OUTSIGHT); break; case SCRIPT: - for (j = i; j < maplist[m].npc_num; j++) { - if (maplist[m].npc[j]->subtype != WARP) { + for (j = i; j < map->list[m].npc_num; j++) { + if (map->list[m].npc[j]->subtype != WARP) { continue; } - if ((sd->bl.x >= (maplist[m].npc[j]->bl.x - maplist[m].npc[j]->u.warp.xs) - && sd->bl.x <= (maplist[m].npc[j]->bl.x + maplist[m].npc[j]->u.warp.xs)) - && (sd->bl.y >= (maplist[m].npc[j]->bl.y - maplist[m].npc[j]->u.warp.ys) - && sd->bl.y <= (maplist[m].npc[j]->bl.y + maplist[m].npc[j]->u.warp.ys)) + if ((sd->bl.x >= (map->list[m].npc[j]->bl.x - map->list[m].npc[j]->u.warp.xs) + && sd->bl.x <= (map->list[m].npc[j]->bl.x + map->list[m].npc[j]->u.warp.xs)) + && (sd->bl.y >= (map->list[m].npc[j]->bl.y - map->list[m].npc[j]->u.warp.ys) + && sd->bl.y <= (map->list[m].npc[j]->bl.y + map->list[m].npc[j]->u.warp.ys)) ) { if( pc_ishiding(sd) || (sd->sc.count && sd->sc.data[SC_CAMOUFLAGE]) ) break; // hidden chars cannot use warps - pc->setpos(sd,maplist[m].npc[j]->u.warp.mapindex,maplist[m].npc[j]->u.warp.x,maplist[m].npc[j]->u.warp.y,CLR_OUTSIGHT); + pc->setpos(sd,map->list[m].npc[j]->u.warp.mapindex,map->list[m].npc[j]->u.warp.x,map->list[m].npc[j]->u.warp.y,CLR_OUTSIGHT); found_warp = 1; break; } @@ -937,7 +937,7 @@ int npc_touch_areanpc(struct map_session_data* sd, int16 m, int16 x, int16 y) break; } - if( npc->ontouch_event(sd,maplist[m].npc[i]) > 0 && npc->ontouch2_event(sd,maplist[m].npc[i]) > 0 ) + if( npc->ontouch_event(sd,map->list[m].npc[i]) > 0 && npc->ontouch2_event(sd,map->list[m].npc[i]) > 0 ) { // failed to run OnTouch event, so just click the npc struct unit_data *ud = unit->bl2ud(&sd->bl); if( ud && ud->walkpath.path_pos < ud->walkpath.path_len ) @@ -945,8 +945,8 @@ int npc_touch_areanpc(struct map_session_data* sd, int16 m, int16 x, int16 y) clif->fixpos(&sd->bl); ud->walkpath.path_pos = ud->walkpath.path_len; } - sd->areanpc_id = maplist[m].npc[i]->bl.id; - npc->click(sd,maplist[m].npc[i]); + sd->areanpc_id = map->list[m].npc[i]->bl.id; + npc->click(sd,map->list[m].npc[i]); } break; } @@ -962,42 +962,42 @@ int npc_touch_areanpc2(struct mob_data *md) struct event_data* ev; int xs, ys; - for( i = 0; i < maplist[m].npc_num; i++ ) { - if( maplist[m].npc[i]->option&OPTION_INVISIBLE ) + for( i = 0; i < map->list[m].npc_num; i++ ) { + if( map->list[m].npc[i]->option&OPTION_INVISIBLE ) continue; - switch( maplist[m].npc[i]->subtype ) { + switch( map->list[m].npc[i]->subtype ) { case WARP: if( !( battle_config.mob_warp&1 ) ) continue; - xs = maplist[m].npc[i]->u.warp.xs; - ys = maplist[m].npc[i]->u.warp.ys; + xs = map->list[m].npc[i]->u.warp.xs; + ys = map->list[m].npc[i]->u.warp.ys; break; case SCRIPT: - xs = maplist[m].npc[i]->u.scr.xs; - ys = maplist[m].npc[i]->u.scr.ys; + xs = map->list[m].npc[i]->u.scr.xs; + ys = map->list[m].npc[i]->u.scr.ys; break; default: continue; // Keep Searching } - if( x >= maplist[m].npc[i]->bl.x-xs && x <= maplist[m].npc[i]->bl.x+xs && y >= maplist[m].npc[i]->bl.y-ys && y <= maplist[m].npc[i]->bl.y+ys ) { + if( x >= map->list[m].npc[i]->bl.x-xs && x <= map->list[m].npc[i]->bl.x+xs && y >= map->list[m].npc[i]->bl.y-ys && y <= map->list[m].npc[i]->bl.y+ys ) { // In the npc touch area - switch( maplist[m].npc[i]->subtype ) { + switch( map->list[m].npc[i]->subtype ) { case WARP: - xs = map->mapindex2mapid(maplist[m].npc[i]->u.warp.mapindex); + xs = map->mapindex2mapid(map->list[m].npc[i]->u.warp.mapindex); if( m < 0 ) break; // Cannot Warp between map servers - if( unit->warp(&md->bl, xs, maplist[m].npc[i]->u.warp.x, maplist[m].npc[i]->u.warp.y, CLR_OUTSIGHT) == 0 ) + if( unit->warp(&md->bl, xs, map->list[m].npc[i]->u.warp.x, map->list[m].npc[i]->u.warp.y, CLR_OUTSIGHT) == 0 ) return 1; // Warped break; case SCRIPT: - if( maplist[m].npc[i]->bl.id == md->areanpc_id ) + if( map->list[m].npc[i]->bl.id == md->areanpc_id ) break; // Already touch this NPC - snprintf(eventname, ARRAYLENGTH(eventname), "%s::OnTouchNPC", maplist[m].npc[i]->exname); + snprintf(eventname, ARRAYLENGTH(eventname), "%s::OnTouchNPC", map->list[m].npc[i]->exname); if( (ev = (struct event_data*)strdb_get(npc->ev_db, eventname)) == NULL || ev->nd == NULL ) break; // No OnTouchNPC Event - md->areanpc_id = maplist[m].npc[i]->bl.id; + md->areanpc_id = map->list[m].npc[i]->bl.id; id = md->bl.id; // Stores Unique ID script->run(ev->nd->u.scr.script, ev->pos, md->bl.id, ev->nd->bl.id); if( map->id2md(id) == NULL ) return 1; // Not Warped, but killed @@ -1023,8 +1023,8 @@ int npc_check_areanpc(int flag, int16 m, int16 x, int16 y, int16 range) { if (range < 0) return 0; x0 = max(x-range, 0); y0 = max(y-range, 0); - x1 = min(x+range, maplist[m].xs-1); - y1 = min(y+range, maplist[m].ys-1); + x1 = min(x+range, map->list[m].xs-1); + y1 = min(y+range, map->list[m].ys-1); //First check for npc_cells on the range given i = 0; @@ -1037,35 +1037,35 @@ int npc_check_areanpc(int flag, int16 m, int16 x, int16 y, int16 range) { if (!i) return 0; //No NPC_CELLs. //Now check for the actual NPC on said range. - for(i=0;i<maplist[m].npc_num;i++) { - if (maplist[m].npc[i]->option&OPTION_INVISIBLE) + for(i=0;i<map->list[m].npc_num;i++) { + if (map->list[m].npc[i]->option&OPTION_INVISIBLE) continue; - switch(maplist[m].npc[i]->subtype) { + switch(map->list[m].npc[i]->subtype) { case WARP: if (!(flag&1)) continue; - xs=maplist[m].npc[i]->u.warp.xs; - ys=maplist[m].npc[i]->u.warp.ys; + xs=map->list[m].npc[i]->u.warp.xs; + ys=map->list[m].npc[i]->u.warp.ys; break; case SCRIPT: if (!(flag&2)) continue; - xs=maplist[m].npc[i]->u.scr.xs; - ys=maplist[m].npc[i]->u.scr.ys; + xs=map->list[m].npc[i]->u.scr.xs; + ys=map->list[m].npc[i]->u.scr.ys; break; default: continue; } - if( x1 >= maplist[m].npc[i]->bl.x-xs && x0 <= maplist[m].npc[i]->bl.x+xs - && y1 >= maplist[m].npc[i]->bl.y-ys && y0 <= maplist[m].npc[i]->bl.y+ys ) + if( x1 >= map->list[m].npc[i]->bl.x-xs && x0 <= map->list[m].npc[i]->bl.x+xs + && y1 >= map->list[m].npc[i]->bl.y-ys && y0 <= map->list[m].npc[i]->bl.y+ys ) break; // found a npc } - if (i==maplist[m].npc_num) + if (i==map->list[m].npc_num) return 0; - return (maplist[m].npc[i]->bl.id); + return (map->list[m].npc[i]->bl.id); } /*========================================== @@ -1410,7 +1410,7 @@ int npc_cashshop_buy(struct map_session_data *sd, int nameid, int amount, int po if( (double)nd->u.shop.shop_item[i].value * amount > INT_MAX ) { ShowWarning("npc_cashshop_buy: Item '%s' (%d) price overflow attempt!\n", item->name, nameid); ShowDebug("(NPC:'%s' (%s,%d,%d), player:'%s' (%d/%d), value:%d, amount:%d)\n", - nd->exname, maplist[nd->bl.m].name, nd->bl.x, nd->bl.y, + nd->exname, map->list[nd->bl.m].name, nd->bl.x, nd->bl.y, sd->status.name, sd->status.account_id, sd->status.char_id, nd->u.shop.shop_item[i].value, amount); return 5; @@ -1707,13 +1707,13 @@ int npc_remove_map(struct npc_data* nd) { clif->clearunit_area(&nd->bl,CLR_RESPAWN); npc->unsetcells(nd); map->delblock(&nd->bl); - //Remove npc from maplist[].npc list. [Skotlex] - ARR_FIND( 0, maplist[m].npc_num, i, maplist[m].npc[i] == nd ); - if( i == maplist[m].npc_num ) return 2; //failed to find it? + //Remove npc from map->list[].npc list. [Skotlex] + ARR_FIND( 0, map->list[m].npc_num, i, map->list[m].npc[i] == nd ); + if( i == map->list[m].npc_num ) return 2; //failed to find it? - maplist[m].npc_num--; - maplist[m].npc[i] = maplist[m].npc[maplist[m].npc_num]; - maplist[m].npc[maplist[m].npc_num] = NULL; + map->list[m].npc_num--; + map->list[m].npc[i] = map->list[m].npc[map->list[m].npc_num]; + map->list[m].npc[map->list[m].npc_num] = NULL; return 0; } @@ -1759,7 +1759,7 @@ int npc_unload_dup_sub(struct npc_data* nd, va_list args) //Removes all npcs that are duplicates of the passed one. [Skotlex] void npc_unload_duplicates(struct npc_data* nd) { - map->map_foreachnpc(npc->unload_dup_sub,nd->bl.id); + map->foreachnpc(npc->unload_dup_sub,nd->bl.id); } //Removes an npc from map and db. @@ -2054,7 +2054,7 @@ struct npc_data* npc_add_warp(char* name, short from_mapid, short from_x, short map->addblock(&nd->bl); status->set_viewdata(&nd->bl, nd->class_); nd->ud = &npc->base_ud; - if( maplist[nd->bl.m].users ) + if( map->list[nd->bl.m].users ) clif->spawn(&nd->bl); strdb_put(npc->name_db, nd->exname, nd); @@ -2086,8 +2086,8 @@ const char* npc_parse_warp(char* w1, char* w2, char* w3, char* w4, const char* s return strchr(start,'\n');// skip and continue } - if( m != -1 && ( x < 0 || x >= maplist[m].xs || y < 0 || y >= maplist[m].ys ) ) { - ShowError("npc_parse_warp: out-of-bounds coordinates (\"%s\",%d,%d), map is %dx%d, in file '%s', line '%d'\n", maplist[m].name, x, y, maplist[m].xs, maplist[m].ys,filepath,strline(buffer,start-buffer)); + if( m != -1 && ( x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys ) ) { + ShowError("npc_parse_warp: out-of-bounds coordinates (\"%s\",%d,%d), map is %dx%d, in file '%s', line '%d'\n", map->list[m].name, x, y, map->list[m].xs, map->list[m].ys,filepath,strline(buffer,start-buffer)); return strchr(start,'\n');;//try next } @@ -2119,7 +2119,7 @@ const char* npc_parse_warp(char* w1, char* w2, char* w3, char* w4, const char* s map->addblock(&nd->bl); status->set_viewdata(&nd->bl, nd->class_); nd->ud = &npc->base_ud; - if( maplist[nd->bl.m].users ) + if( map->list[nd->bl.m].users ) clif->spawn(&nd->bl); strdb_put(npc->name_db, nd->exname, nd); @@ -2152,8 +2152,8 @@ const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const char* s m = map->mapname2mapid(mapname); } - if( m != -1 && ( x < 0 || x >= maplist[m].xs || y < 0 || y >= maplist[m].ys ) ) { - ShowError("npc_parse_shop: out-of-bounds coordinates (\"%s\",%d,%d), map is %dx%d, in file '%s', line '%d'\n", maplist[m].name, x, y, maplist[m].xs, maplist[m].ys,filepath,strline(buffer,start-buffer)); + if( m != -1 && ( x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys ) ) { + ShowError("npc_parse_shop: out-of-bounds coordinates (\"%s\",%d,%d), map is %dx%d, in file '%s', line '%d'\n", map->list[m].name, x, y, map->list[m].xs, map->list[m].ys,filepath,strline(buffer,start-buffer)); return strchr(start,'\n');;//try next } @@ -2232,7 +2232,7 @@ const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const char* s status->set_viewdata(&nd->bl, nd->class_); nd->ud = &npc->base_ud; nd->dir = dir; - if( maplist[nd->bl.m].users ) + if( map->list[nd->bl.m].users ) clif->spawn(&nd->bl); } else {// 'floating' shop? map->addiddb(&nd->bl); @@ -2419,7 +2419,7 @@ const char* npc_parse_script(char* w1, char* w2, char* w3, char* w4, const char* map->addblock(&nd->bl); if( class_ >= 0 ) { status->set_viewdata(&nd->bl, nd->class_); - if( maplist[nd->bl.m].users ) + if( map->list[nd->bl.m].users ) clif->spawn(&nd->bl); } } else { @@ -2509,8 +2509,8 @@ const char* npc_parse_duplicate(char* w1, char* w2, char* w3, char* w4, const ch m = map->mapname2mapid(mapname); } - if( m != -1 && ( x < 0 || x >= maplist[m].xs || y < 0 || y >= maplist[m].ys ) ) { - ShowError("npc_parse_duplicate: out-of-bounds coordinates (\"%s\",%d,%d), map is %dx%d, in file '%s', line '%d'\n", maplist[m].name, x, y, maplist[m].xs, maplist[m].ys,filepath,strline(buffer,start-buffer)); + if( m != -1 && ( x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys ) ) { + ShowError("npc_parse_duplicate: out-of-bounds coordinates (\"%s\",%d,%d), map is %dx%d, in file '%s', line '%d'\n", map->list[m].name, x, y, map->list[m].xs, map->list[m].ys,filepath,strline(buffer,start-buffer)); return end;//try next } @@ -2575,7 +2575,7 @@ const char* npc_parse_duplicate(char* w1, char* w2, char* w3, char* w4, const ch map->addblock(&nd->bl); if( class_ >= 0 ) { status->set_viewdata(&nd->bl, nd->class_); - if( maplist[nd->bl.m].users ) + if( map->list[nd->bl.m].users ) clif->spawn(&nd->bl); } } else { @@ -2605,12 +2605,12 @@ const char* npc_parse_duplicate(char* w1, char* w2, char* w3, char* w4, const ch int npc_duplicate4instance(struct npc_data *snd, int16 m) { char newname[NAME_LENGTH]; - if( m == -1 || maplist[m].instance_id == -1 ) + if( m == -1 || map->list[m].instance_id == -1 ) return 1; - snprintf(newname, ARRAYLENGTH(newname), "dup_%d_%d", maplist[m].instance_id, snd->bl.id); + snprintf(newname, ARRAYLENGTH(newname), "dup_%d_%d", map->list[m].instance_id, snd->bl.id); if( npc->name2id(newname) != NULL ) { // Name already in use - ShowError("npc_duplicate4instance: the npcname (%s) is already in use while trying to duplicate npc %s in instance %d.\n", newname, snd->exname, maplist[m].instance_id); + ShowError("npc_duplicate4instance: the npcname (%s) is already in use while trying to duplicate npc %s in instance %d.\n", newname, snd->exname, map->list[m].instance_id); return 1; } @@ -2619,8 +2619,8 @@ int npc_duplicate4instance(struct npc_data *snd, int16 m) { int dm = map->mapindex2mapid(snd->u.warp.mapindex), im; if( dm < 0 ) return 1; - if( ( im = instance->mapid2imapid(dm, maplist[m].instance_id) ) == -1 ) { - ShowError("npc_duplicate4instance: warp (%s) leading to instanced map (%s), but instance map is not attached to current instance.\n", maplist[dm].name, snd->exname); + if( ( im = instance->mapid2imapid(dm, map->list[m].instance_id) ) == -1 ) { + ShowError("npc_duplicate4instance: warp (%s) leading to instanced map (%s), but instance map is not attached to current instance.\n", map->list[dm].name, snd->exname); return 1; } @@ -2646,14 +2646,14 @@ int npc_duplicate4instance(struct npc_data *snd, int16 m) { map->addblock(&wnd->bl); status->set_viewdata(&wnd->bl, wnd->class_); wnd->ud = &npc->base_ud; - if( maplist[wnd->bl.m].users ) + if( map->list[wnd->bl.m].users ) clif->spawn(&wnd->bl); strdb_put(npc->name_db, wnd->exname, wnd); } else { static char w1[50], w2[50], w3[50], w4[50]; const char* stat_buf = "- call from instancing subsystem -\n"; - snprintf(w1, sizeof(w1), "%s,%d,%d,%d", maplist[m].name, snd->bl.x, snd->bl.y, snd->dir); + snprintf(w1, sizeof(w1), "%s,%d,%d,%d", map->list[m].name, snd->bl.x, snd->bl.y, snd->dir); snprintf(w2, sizeof(w2), "duplicate(%s)", snd->exname); snprintf(w3, sizeof(w3), "%s::%s", snd->name, newname); @@ -2686,14 +2686,14 @@ void npc_setcells(struct npc_data* nd) { return; // Other types doesn't have touch area } - if (m < 0 || xs < 0 || ys < 0 || maplist[m].cell == (struct mapcell *)0xdeadbeaf) //invalid range or map + if (m < 0 || xs < 0 || ys < 0 || map->list[m].cell == (struct mapcell *)0xdeadbeaf) //invalid range or map return; for (i = y-ys; i <= y+ys; i++) { for (j = x-xs; j <= x+xs; j++) { if (map->getcell(m, j, i, CELL_CHKNOPASS)) continue; - maplist[m].setcell(m, j, i, CELL_NPC, true); + map->list[m].setcell(m, j, i, CELL_NPC, true); } } } @@ -2718,20 +2718,20 @@ void npc_unsetcells(struct npc_data* nd) { ys = nd->u.scr.ys; } - if (m < 0 || xs < 0 || ys < 0 || maplist[m].cell == (struct mapcell *)0xdeadbeaf) + if (m < 0 || xs < 0 || ys < 0 || map->list[m].cell == (struct mapcell *)0xdeadbeaf) return; //Locate max range on which we can locate npc cells //FIXME: does this really do what it's supposed to do? [ultramage] for(x0 = x-xs; x0 > 0 && map->getcell(m, x0, y, CELL_CHKNPC); x0--); - for(x1 = x+xs; x1 < maplist[m].xs-1 && map->getcell(m, x1, y, CELL_CHKNPC); x1++); + for(x1 = x+xs; x1 < map->list[m].xs-1 && map->getcell(m, x1, y, CELL_CHKNPC); x1++); for(y0 = y-ys; y0 > 0 && map->getcell(m, x, y0, CELL_CHKNPC); y0--); - for(y1 = y+ys; y1 < maplist[m].ys-1 && map->getcell(m, x, y1, CELL_CHKNPC); y1++); + for(y1 = y+ys; y1 < map->list[m].ys-1 && map->getcell(m, x, y1, CELL_CHKNPC); y1++); //Erase this npc's cells for (i = y-ys; i <= y+ys; i++) for (j = x-xs; j <= x+xs; j++) - maplist[m].setcell(m, j, i, CELL_NPC, false); + map->list[m].setcell(m, j, i, CELL_NPC, false); //Re-deploy NPC cells for other nearby npcs. map->foreachinarea( npc->unsetcells_sub, m, x0, y0, x1, y1, BL_NPC, nd->bl.id ); @@ -2742,8 +2742,8 @@ void npc_movenpc(struct npc_data* nd, int16 x, int16 y) const int16 m = nd->bl.m; if (m < 0 || nd->bl.prev == NULL) return; //Not on a map. - x = cap_value(x, 0, maplist[m].xs-1); - y = cap_value(y, 0, maplist[m].ys-1); + x = cap_value(x, 0, map->list[m].xs-1); + y = cap_value(y, 0, map->list[m].ys-1); map->foreachinrange(clif->outsight, &nd->bl, AREA_SIZE, BL_PC, &nd->bl); map->moveblock(&nd->bl, x, y, timer->gettick()); @@ -2759,7 +2759,7 @@ void npc_setdisplayname(struct npc_data* nd, const char* newname) nullpo_retv(nd); safestrncpy(nd->name, newname, sizeof(nd->name)); - if( maplist[nd->bl.m].users ) + if( map->list[nd->bl.m].users ) clif->charnameack(0, &nd->bl); } @@ -2773,11 +2773,11 @@ void npc_setclass(struct npc_data* nd, short class_) { if( nd->class_ == class_ ) return; - if( maplist[nd->bl.m].users ) + if( map->list[nd->bl.m].users ) clif->clearunit_area(&nd->bl, CLR_OUTSIGHT);// fade out nd->class_ = class_; status->set_viewdata(&nd->bl, class_); - if( maplist[nd->bl.m].users ) + if( map->list[nd->bl.m].users ) clif->spawn(&nd->bl);// fade in } @@ -2931,8 +2931,8 @@ const char* npc_parse_mob(char* w1, char* w2, char* w3, char* w4, const char* st return strchr(start,'\n');// skip and continue mobspawn.m = (unsigned short)m; - if( x < 0 || x >= maplist[mobspawn.m].xs || y < 0 || y >= maplist[mobspawn.m].ys ) { - ShowError("npc_parse_mob: Spawn coordinates out of range: %s (%d,%d), map size is (%d,%d) - %s %s (file '%s', line '%d').\n", maplist[mobspawn.m].name, x, y, (maplist[mobspawn.m].xs-1), (maplist[mobspawn.m].ys-1), w1, w3, filepath, strline(buffer,start-buffer)); + if( x < 0 || x >= map->list[mobspawn.m].xs || y < 0 || y >= map->list[mobspawn.m].ys ) { + ShowError("npc_parse_mob: Spawn coordinates out of range: %s (%d,%d), map size is (%d,%d) - %s %s (file '%s', line '%d').\n", map->list[mobspawn.m].name, x, y, (map->list[mobspawn.m].xs-1), (map->list[mobspawn.m].ys-1), w1, w3, filepath, strline(buffer,start-buffer)); return strchr(start,'\n');// skip and continue } @@ -3044,7 +3044,7 @@ const char* npc_parse_mob(char* w1, char* w2, char* w3, char* w4, const char* st // check if target map has players // (usually shouldn't occur when map server is just starting, // but not the case when we do @reloadscript - if( maplist[data->m].users > 0 ) { + if( map->list[data->m].users > 0 ) { npc->parse_mob2(data); } } else { @@ -3088,68 +3088,68 @@ const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char if (state == 0) ; //Map flag disabled. else if (!strcmpi(w4, "SavePoint")) { - maplist[m].save.map = 0; - maplist[m].save.x = -1; - maplist[m].save.y = -1; + map->list[m].save.map = 0; + map->list[m].save.x = -1; + map->list[m].save.y = -1; } else if (sscanf(w4, "%31[^,],%d,%d", savemap, &savex, &savey) == 3) { - maplist[m].save.map = mapindex_name2id(savemap); - maplist[m].save.x = savex; - maplist[m].save.y = savey; - if (!maplist[m].save.map) { + map->list[m].save.map = mapindex_name2id(savemap); + map->list[m].save.x = savex; + map->list[m].save.y = savey; + if (!map->list[m].save.map) { ShowWarning("npc_parse_mapflag: Specified save point map '%s' for mapflag 'nosave' not found (file '%s', line '%d'), using 'SavePoint'.\n * w1=%s\n * w2=%s\n * w3=%s\n * w4=%s\n", savemap, filepath, strline(buffer,start-buffer), w1, w2, w3, w4); - maplist[m].save.x = -1; - maplist[m].save.y = -1; + map->list[m].save.x = -1; + map->list[m].save.y = -1; } } - maplist[m].flag.nosave = state; + map->list[m].flag.nosave = state; } else if (!strcmpi(w3,"autotrade")) - maplist[m].flag.autotrade=state; + map->list[m].flag.autotrade=state; else if (!strcmpi(w3,"allowks")) - maplist[m].flag.allowks=state; // [Kill Steal Protection] + map->list[m].flag.allowks=state; // [Kill Steal Protection] else if (!strcmpi(w3,"town")) - maplist[m].flag.town=state; + map->list[m].flag.town=state; else if (!strcmpi(w3,"nomemo")) - maplist[m].flag.nomemo=state; + map->list[m].flag.nomemo=state; else if (!strcmpi(w3,"noteleport")) - maplist[m].flag.noteleport=state; + map->list[m].flag.noteleport=state; else if (!strcmpi(w3,"nowarp")) - maplist[m].flag.nowarp=state; + map->list[m].flag.nowarp=state; else if (!strcmpi(w3,"nowarpto")) - maplist[m].flag.nowarpto=state; + map->list[m].flag.nowarpto=state; else if (!strcmpi(w3,"noreturn")) - maplist[m].flag.noreturn=state; + map->list[m].flag.noreturn=state; else if (!strcmpi(w3,"monster_noteleport")) - maplist[m].flag.monster_noteleport=state; + map->list[m].flag.monster_noteleport=state; else if (!strcmpi(w3,"nobranch")) - maplist[m].flag.nobranch=state; + map->list[m].flag.nobranch=state; else if (!strcmpi(w3,"nopenalty")) { - maplist[m].flag.noexppenalty=state; - maplist[m].flag.nozenypenalty=state; + map->list[m].flag.noexppenalty=state; + map->list[m].flag.nozenypenalty=state; } else if (!strcmpi(w3,"pvp")) { struct map_zone_data *zone; - maplist[m].flag.pvp = state; - if( state && (maplist[m].flag.gvg || maplist[m].flag.gvg_dungeon || maplist[m].flag.gvg_castle) ) { - maplist[m].flag.gvg = 0; - maplist[m].flag.gvg_dungeon = 0; - maplist[m].flag.gvg_castle = 0; - ShowWarning("npc_parse_mapflag: You can't set PvP and GvG flags for the same map! Removing GvG flags from %s (file '%s', line '%d').\n", maplist[m].name, filepath, strline(buffer,start-buffer)); - } - if( state && maplist[m].flag.battleground ) { - maplist[m].flag.battleground = 0; - ShowWarning("npc_parse_mapflag: You can't set PvP and BattleGround flags for the same map! Removing BattleGround flag from %s (file '%s', line '%d').\n", maplist[m].name, filepath, strline(buffer,start-buffer)); - } - if( state && (zone = strdb_get(zone_db, MAP_ZONE_PVP_NAME)) && maplist[m].zone != zone ) { + map->list[m].flag.pvp = state; + if( state && (map->list[m].flag.gvg || map->list[m].flag.gvg_dungeon || map->list[m].flag.gvg_castle) ) { + map->list[m].flag.gvg = 0; + map->list[m].flag.gvg_dungeon = 0; + map->list[m].flag.gvg_castle = 0; + ShowWarning("npc_parse_mapflag: You can't set PvP and GvG flags for the same map! Removing GvG flags from %s (file '%s', line '%d').\n", map->list[m].name, filepath, strline(buffer,start-buffer)); + } + if( state && map->list[m].flag.battleground ) { + map->list[m].flag.battleground = 0; + ShowWarning("npc_parse_mapflag: You can't set PvP and BattleGround flags for the same map! Removing BattleGround flag from %s (file '%s', line '%d').\n", map->list[m].name, filepath, strline(buffer,start-buffer)); + } + if( state && (zone = strdb_get(map->zone_db, MAP_ZONE_PVP_NAME)) && map->list[m].zone != zone ) { map->zone_change(m,zone,start,buffer,filepath); } else if ( !state ) { - maplist[m].zone = &map_zone_pk; + map->list[m].zone = &map->zone_pk; } } else if (!strcmpi(w3,"pvp_noparty")) - maplist[m].flag.pvp_noparty=state; + map->list[m].flag.pvp_noparty=state; else if (!strcmpi(w3,"pvp_noguild")) - maplist[m].flag.pvp_noguild=state; + map->list[m].flag.pvp_noguild=state; else if (!strcmpi(w3, "pvp_nightmaredrop")) { char drop_arg1[16], drop_arg2[16]; int drop_per = 0; @@ -3167,145 +3167,145 @@ const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char drop_type = 3; if (drop_id != 0) { - RECREATE(maplist[m].drop_list, struct map_drop_list, ++maplist[m].drop_list_count); - maplist[m].drop_list[maplist[m].drop_list_count-1].drop_id = drop_id; - maplist[m].drop_list[maplist[m].drop_list_count-1].drop_type = drop_type; - maplist[m].drop_list[maplist[m].drop_list_count-1].drop_per = drop_per; - maplist[m].flag.pvp_nightmaredrop = 1; + RECREATE(map->list[m].drop_list, struct map_drop_list, ++map->list[m].drop_list_count); + map->list[m].drop_list[map->list[m].drop_list_count-1].drop_id = drop_id; + map->list[m].drop_list[map->list[m].drop_list_count-1].drop_type = drop_type; + map->list[m].drop_list[map->list[m].drop_list_count-1].drop_per = drop_per; + map->list[m].flag.pvp_nightmaredrop = 1; } } else if (!state) //Disable - maplist[m].flag.pvp_nightmaredrop = 0; + map->list[m].flag.pvp_nightmaredrop = 0; } else if (!strcmpi(w3,"pvp_nocalcrank")) - maplist[m].flag.pvp_nocalcrank=state; + map->list[m].flag.pvp_nocalcrank=state; else if (!strcmpi(w3,"gvg")) { struct map_zone_data *zone; - maplist[m].flag.gvg = state; - if( state && maplist[m].flag.pvp ) { - maplist[m].flag.pvp = 0; - ShowWarning("npc_parse_mapflag: You can't set PvP and GvG flags for the same map! Removing PvP flag from %s (file '%s', line '%d').\n", maplist[m].name, filepath, strline(buffer,start-buffer)); + map->list[m].flag.gvg = state; + if( state && map->list[m].flag.pvp ) { + map->list[m].flag.pvp = 0; + ShowWarning("npc_parse_mapflag: You can't set PvP and GvG flags for the same map! Removing PvP flag from %s (file '%s', line '%d').\n", map->list[m].name, filepath, strline(buffer,start-buffer)); } - if( state && maplist[m].flag.battleground ) { - maplist[m].flag.battleground = 0; - ShowWarning("npc_parse_mapflag: You can't set GvG and BattleGround flags for the same map! Removing BattleGround flag from %s (file '%s', line '%d').\n", maplist[m].name, filepath, strline(buffer,start-buffer)); + if( state && map->list[m].flag.battleground ) { + map->list[m].flag.battleground = 0; + ShowWarning("npc_parse_mapflag: You can't set GvG and BattleGround flags for the same map! Removing BattleGround flag from %s (file '%s', line '%d').\n", map->list[m].name, filepath, strline(buffer,start-buffer)); } - if( state && (zone = strdb_get(zone_db, MAP_ZONE_GVG_NAME)) && maplist[m].zone != zone ) { + if( state && (zone = strdb_get(map->zone_db, MAP_ZONE_GVG_NAME)) && map->list[m].zone != zone ) { map->zone_change(m,zone,start,buffer,filepath); } } else if (!strcmpi(w3,"gvg_noparty")) - maplist[m].flag.gvg_noparty=state; + map->list[m].flag.gvg_noparty=state; else if (!strcmpi(w3,"gvg_dungeon")) { - maplist[m].flag.gvg_dungeon=state; - if (state) maplist[m].flag.pvp=0; + map->list[m].flag.gvg_dungeon=state; + if (state) map->list[m].flag.pvp=0; } else if (!strcmpi(w3,"gvg_castle")) { - maplist[m].flag.gvg_castle=state; - if (state) maplist[m].flag.pvp=0; + map->list[m].flag.gvg_castle=state; + if (state) map->list[m].flag.pvp=0; } else if (!strcmpi(w3,"battleground")) { struct map_zone_data *zone; if( state ) { if( sscanf(w4, "%d", &state) == 1 ) - maplist[m].flag.battleground = state; + map->list[m].flag.battleground = state; else - maplist[m].flag.battleground = 1; // Default value + map->list[m].flag.battleground = 1; // Default value } else - maplist[m].flag.battleground = 0; + map->list[m].flag.battleground = 0; - if( maplist[m].flag.battleground && maplist[m].flag.pvp ) { - maplist[m].flag.pvp = 0; - ShowWarning("npc_parse_mapflag: You can't set PvP and BattleGround flags for the same map! Removing PvP flag from %s (file '%s', line '%d').\n", maplist[m].name, filepath, strline(buffer,start-buffer)); + if( map->list[m].flag.battleground && map->list[m].flag.pvp ) { + map->list[m].flag.pvp = 0; + ShowWarning("npc_parse_mapflag: You can't set PvP and BattleGround flags for the same map! Removing PvP flag from %s (file '%s', line '%d').\n", map->list[m].name, filepath, strline(buffer,start-buffer)); } - if( maplist[m].flag.battleground && (maplist[m].flag.gvg || maplist[m].flag.gvg_dungeon || maplist[m].flag.gvg_castle) ) { - maplist[m].flag.gvg = 0; - maplist[m].flag.gvg_dungeon = 0; - maplist[m].flag.gvg_castle = 0; - ShowWarning("npc_parse_mapflag: You can't set GvG and BattleGround flags for the same map! Removing GvG flag from %s (file '%s', line '%d').\n", maplist[m].name, filepath, strline(buffer,start-buffer)); + if( map->list[m].flag.battleground && (map->list[m].flag.gvg || map->list[m].flag.gvg_dungeon || map->list[m].flag.gvg_castle) ) { + map->list[m].flag.gvg = 0; + map->list[m].flag.gvg_dungeon = 0; + map->list[m].flag.gvg_castle = 0; + ShowWarning("npc_parse_mapflag: You can't set GvG and BattleGround flags for the same map! Removing GvG flag from %s (file '%s', line '%d').\n", map->list[m].name, filepath, strline(buffer,start-buffer)); } - if( state && (zone = strdb_get(zone_db, MAP_ZONE_BG_NAME)) && maplist[m].zone != zone ) { + if( state && (zone = strdb_get(map->zone_db, MAP_ZONE_BG_NAME)) && map->list[m].zone != zone ) { map->zone_change(m,zone,start,buffer,filepath); } } else if (!strcmpi(w3,"noexppenalty")) - maplist[m].flag.noexppenalty=state; + map->list[m].flag.noexppenalty=state; else if (!strcmpi(w3,"nozenypenalty")) - maplist[m].flag.nozenypenalty=state; + map->list[m].flag.nozenypenalty=state; else if (!strcmpi(w3,"notrade")) - maplist[m].flag.notrade=state; + map->list[m].flag.notrade=state; else if (!strcmpi(w3,"novending")) - maplist[m].flag.novending=state; + map->list[m].flag.novending=state; else if (!strcmpi(w3,"nodrop")) - maplist[m].flag.nodrop=state; + map->list[m].flag.nodrop=state; else if (!strcmpi(w3,"noskill")) - maplist[m].flag.noskill=state; + map->list[m].flag.noskill=state; else if (!strcmpi(w3,"noicewall")) - maplist[m].flag.noicewall=state; + map->list[m].flag.noicewall=state; else if (!strcmpi(w3,"snow")) - maplist[m].flag.snow=state; + map->list[m].flag.snow=state; else if (!strcmpi(w3,"clouds")) - maplist[m].flag.clouds=state; + map->list[m].flag.clouds=state; else if (!strcmpi(w3,"clouds2")) - maplist[m].flag.clouds2=state; + map->list[m].flag.clouds2=state; else if (!strcmpi(w3,"fog")) - maplist[m].flag.fog=state; + map->list[m].flag.fog=state; else if (!strcmpi(w3,"fireworks")) - maplist[m].flag.fireworks=state; + map->list[m].flag.fireworks=state; else if (!strcmpi(w3,"sakura")) - maplist[m].flag.sakura=state; + map->list[m].flag.sakura=state; else if (!strcmpi(w3,"leaves")) - maplist[m].flag.leaves=state; + map->list[m].flag.leaves=state; else if (!strcmpi(w3,"nightenabled")) - maplist[m].flag.nightenabled=state; + map->list[m].flag.nightenabled=state; else if (!strcmpi(w3,"noexp")) { - maplist[m].flag.nobaseexp=state; - maplist[m].flag.nojobexp=state; + map->list[m].flag.nobaseexp=state; + map->list[m].flag.nojobexp=state; } else if (!strcmpi(w3,"nobaseexp")) - maplist[m].flag.nobaseexp=state; + map->list[m].flag.nobaseexp=state; else if (!strcmpi(w3,"nojobexp")) - maplist[m].flag.nojobexp=state; + map->list[m].flag.nojobexp=state; else if (!strcmpi(w3,"noloot")) { - maplist[m].flag.nomobloot=state; - maplist[m].flag.nomvploot=state; + map->list[m].flag.nomobloot=state; + map->list[m].flag.nomvploot=state; } else if (!strcmpi(w3,"nomobloot")) - maplist[m].flag.nomobloot=state; + map->list[m].flag.nomobloot=state; else if (!strcmpi(w3,"nomvploot")) - maplist[m].flag.nomvploot=state; + map->list[m].flag.nomvploot=state; else if (!strcmpi(w3,"nocommand")) { if (state) { if (sscanf(w4, "%d", &state) == 1) - maplist[m].nocommand =state; + map->list[m].nocommand =state; else //No level specified, block everyone. - maplist[m].nocommand =100; + map->list[m].nocommand =100; } else - maplist[m].nocommand=0; + map->list[m].nocommand=0; } else if (!strcmpi(w3,"jexp")) { - maplist[m].jexp = (state) ? atoi(w4) : 100; - if( maplist[m].jexp < 0 ) maplist[m].jexp = 100; - maplist[m].flag.nojobexp = (maplist[m].jexp==0)?1:0; + map->list[m].jexp = (state) ? atoi(w4) : 100; + if( map->list[m].jexp < 0 ) map->list[m].jexp = 100; + map->list[m].flag.nojobexp = (map->list[m].jexp==0)?1:0; } else if (!strcmpi(w3,"bexp")) { - maplist[m].bexp = (state) ? atoi(w4) : 100; - if( maplist[m].bexp < 0 ) maplist[m].bexp = 100; - maplist[m].flag.nobaseexp = (maplist[m].bexp==0)?1:0; + map->list[m].bexp = (state) ? atoi(w4) : 100; + if( map->list[m].bexp < 0 ) map->list[m].bexp = 100; + map->list[m].flag.nobaseexp = (map->list[m].bexp==0)?1:0; } else if (!strcmpi(w3,"loadevent")) - maplist[m].flag.loadevent=state; + map->list[m].flag.loadevent=state; else if (!strcmpi(w3,"nochat")) - maplist[m].flag.nochat=state; + map->list[m].flag.nochat=state; else if (!strcmpi(w3,"partylock")) - maplist[m].flag.partylock=state; + map->list[m].flag.partylock=state; else if (!strcmpi(w3,"guildlock")) - maplist[m].flag.guildlock=state; + map->list[m].flag.guildlock=state; else if (!strcmpi(w3,"reset")) - maplist[m].flag.reset=state; + map->list[m].flag.reset=state; else if (!strcmpi(w3,"notomb")) - maplist[m].flag.notomb=state; + map->list[m].flag.notomb=state; else if (!strcmpi(w3,"adjust_unit_duration")) { int skill_id, k; char skill_name[MAP_ZONE_MAPFLAG_LENGTH], modifier[MAP_ZONE_MAPFLAG_LENGTH]; @@ -3323,41 +3323,41 @@ const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char } if( modifier[0] == '\0' ) { - ShowWarning("npc_parse_mapflag: Missing 5th param for 'adjust_unit_duration' flag! removing flag from %s (file '%s', line '%d').\n", maplist[m].name, filepath, strline(buffer,start-buffer)); + ShowWarning("npc_parse_mapflag: Missing 5th param for 'adjust_unit_duration' flag! removing flag from %s (file '%s', line '%d').\n", map->list[m].name, filepath, strline(buffer,start-buffer)); } else if( !( skill_id = skill->name2id(skill_name) ) || !skill->get_unit_id( skill->name2id(skill_name), 0) ) { - ShowWarning("npc_parse_mapflag: Unknown skill (%s) for 'adjust_unit_duration' flag! removing flag from %s (file '%s', line '%d').\n",skill_name, maplist[m].name, filepath, strline(buffer,start-buffer)); + ShowWarning("npc_parse_mapflag: Unknown skill (%s) for 'adjust_unit_duration' flag! removing flag from %s (file '%s', line '%d').\n",skill_name, map->list[m].name, filepath, strline(buffer,start-buffer)); } else if ( atoi(modifier) < 1 || atoi(modifier) > USHRT_MAX ) { - ShowWarning("npc_parse_mapflag: Invalid modifier '%d' for skill '%s' for 'adjust_unit_duration' flag! removing flag from %s (file '%s', line '%d').\n", atoi(modifier), skill_name, maplist[m].name, filepath, strline(buffer,start-buffer)); + ShowWarning("npc_parse_mapflag: Invalid modifier '%d' for skill '%s' for 'adjust_unit_duration' flag! removing flag from %s (file '%s', line '%d').\n", atoi(modifier), skill_name, map->list[m].name, filepath, strline(buffer,start-buffer)); } else { - int idx = maplist[m].unit_count; + int idx = map->list[m].unit_count; - ARR_FIND(0, idx, k, maplist[m].units[k]->skill_id == skill_id); + ARR_FIND(0, idx, k, map->list[m].units[k]->skill_id == skill_id); if( k < idx ) { if( atoi(modifier) != 100 ) - maplist[m].units[k]->modifier = (unsigned short)atoi(modifier); + map->list[m].units[k]->modifier = (unsigned short)atoi(modifier); else { /* remove */ int cursor = 0; - aFree(maplist[m].units[k]); - maplist[m].units[k] = NULL; + aFree(map->list[m].units[k]); + map->list[m].units[k] = NULL; for( k = 0; k < idx; k++ ) { - if( maplist[m].units[k] == NULL ) + if( map->list[m].units[k] == NULL ) continue; - maplist[m].units[cursor] = maplist[m].units[k]; + map->list[m].units[cursor] = map->list[m].units[k]; cursor++; } - if( !( maplist[m].unit_count = cursor ) ) { - aFree(maplist[m].units); - maplist[m].units = NULL; + if( !( map->list[m].unit_count = cursor ) ) { + aFree(map->list[m].units); + map->list[m].units = NULL; } } } else if( atoi(modifier) != 100 ) { - RECREATE(maplist[m].units, struct mapflag_skill_adjust*, ++maplist[m].unit_count); - CREATE(maplist[m].units[idx],struct mapflag_skill_adjust,1); - maplist[m].units[idx]->skill_id = (unsigned short)skill_id; - maplist[m].units[idx]->modifier = (unsigned short)atoi(modifier); + RECREATE(map->list[m].units, struct mapflag_skill_adjust*, ++map->list[m].unit_count); + CREATE(map->list[m].units[idx],struct mapflag_skill_adjust,1); + map->list[m].units[idx]->skill_id = (unsigned short)skill_id; + map->list[m].units[idx]->modifier = (unsigned short)atoi(modifier); } } } else if (!strcmpi(w3,"adjust_skill_damage")) { @@ -3377,68 +3377,68 @@ const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char } if( modifier[0] == '\0' ) { - ShowWarning("npc_parse_mapflag: Missing 5th param for 'adjust_skill_damage' flag! removing flag from %s (file '%s', line '%d').\n", maplist[m].name, filepath, strline(buffer,start-buffer)); + ShowWarning("npc_parse_mapflag: Missing 5th param for 'adjust_skill_damage' flag! removing flag from %s (file '%s', line '%d').\n", map->list[m].name, filepath, strline(buffer,start-buffer)); } else if( !( skill_id = skill->name2id(skill_name) ) ) { - ShowWarning("npc_parse_mapflag: Unknown skill (%s) for 'adjust_skill_damage' flag! removing flag from %s (file '%s', line '%d').\n", skill_name, maplist[m].name, filepath, strline(buffer,start-buffer)); + ShowWarning("npc_parse_mapflag: Unknown skill (%s) for 'adjust_skill_damage' flag! removing flag from %s (file '%s', line '%d').\n", skill_name, map->list[m].name, filepath, strline(buffer,start-buffer)); } else if ( atoi(modifier) < 1 || atoi(modifier) > USHRT_MAX ) { - ShowWarning("npc_parse_mapflag: Invalid modifier '%d' for skill '%s' for 'adjust_skill_damage' flag! removing flag from %s (file '%s', line '%d').\n", atoi(modifier), skill_name, maplist[m].name, filepath, strline(buffer,start-buffer)); + ShowWarning("npc_parse_mapflag: Invalid modifier '%d' for skill '%s' for 'adjust_skill_damage' flag! removing flag from %s (file '%s', line '%d').\n", atoi(modifier), skill_name, map->list[m].name, filepath, strline(buffer,start-buffer)); } else { - int idx = maplist[m].skill_count; + int idx = map->list[m].skill_count; - ARR_FIND(0, idx, k, maplist[m].skills[k]->skill_id == skill_id); + ARR_FIND(0, idx, k, map->list[m].skills[k]->skill_id == skill_id); if( k < idx ) { if( atoi(modifier) != 100 ) - maplist[m].skills[k]->modifier = (unsigned short)atoi(modifier); + map->list[m].skills[k]->modifier = (unsigned short)atoi(modifier); else { /* remove */ int cursor = 0; - aFree(maplist[m].skills[k]); - maplist[m].skills[k] = NULL; + aFree(map->list[m].skills[k]); + map->list[m].skills[k] = NULL; for( k = 0; k < idx; k++ ) { - if( maplist[m].skills[k] == NULL ) + if( map->list[m].skills[k] == NULL ) continue; - maplist[m].skills[cursor] = maplist[m].skills[k]; + map->list[m].skills[cursor] = map->list[m].skills[k]; cursor++; } - if( !( maplist[m].skill_count = cursor ) ) { - aFree(maplist[m].skills); - maplist[m].skills = NULL; + if( !( map->list[m].skill_count = cursor ) ) { + aFree(map->list[m].skills); + map->list[m].skills = NULL; } } } else if( atoi(modifier) != 100 ) { - RECREATE(maplist[m].skills, struct mapflag_skill_adjust*, ++maplist[m].skill_count); - CREATE(maplist[m].skills[idx],struct mapflag_skill_adjust,1); - maplist[m].skills[idx]->skill_id = (unsigned short)skill_id; - maplist[m].skills[idx]->modifier = (unsigned short)atoi(modifier); + RECREATE(map->list[m].skills, struct mapflag_skill_adjust*, ++map->list[m].skill_count); + CREATE(map->list[m].skills[idx],struct mapflag_skill_adjust,1); + map->list[m].skills[idx]->skill_id = (unsigned short)skill_id; + map->list[m].skills[idx]->modifier = (unsigned short)atoi(modifier); } } } else if (!strcmpi(w3,"zone")) { struct map_zone_data *zone; - if( !(zone = strdb_get(zone_db, w4)) ) { - ShowWarning("npc_parse_mapflag: Invalid zone '%s'! removing flag from %s (file '%s', line '%d').\n", w4, maplist[m].name, filepath, strline(buffer,start-buffer)); - } else if( maplist[m].zone != zone ) { + if( !(zone = strdb_get(map->zone_db, w4)) ) { + ShowWarning("npc_parse_mapflag: Invalid zone '%s'! removing flag from %s (file '%s', line '%d').\n", w4, map->list[m].name, filepath, strline(buffer,start-buffer)); + } else if( map->list[m].zone != zone ) { map->zone_change(m,zone,start,buffer,filepath); } } else if ( !strcmpi(w3,"nomapchannelautojoin") ) { - maplist[m].flag.chsysnolocalaj = state; + map->list[m].flag.chsysnolocalaj = state; } else if ( !strcmpi(w3,"invincible_time_inc") ) { - maplist[m].invincible_time_inc = (state) ? atoi(w4) : 0; + map->list[m].invincible_time_inc = (state) ? atoi(w4) : 0; } else if ( !strcmpi(w3,"noknockback") ) { - maplist[m].flag.noknockback = state; + map->list[m].flag.noknockback = state; } else if ( !strcmpi(w3,"weapon_damage_rate") ) { - maplist[m].weapon_damage_rate = (state) ? atoi(w4) : 100; + map->list[m].weapon_damage_rate = (state) ? atoi(w4) : 100; } else if ( !strcmpi(w3,"magic_damage_rate") ) { - maplist[m].magic_damage_rate = (state) ? atoi(w4) : 100; + map->list[m].magic_damage_rate = (state) ? atoi(w4) : 100; } else if ( !strcmpi(w3,"misc_damage_rate") ) { - maplist[m].misc_damage_rate = (state) ? atoi(w4) : 100; + map->list[m].misc_damage_rate = (state) ? atoi(w4) : 100; } else if ( !strcmpi(w3,"short_damage_rate") ) { - maplist[m].short_damage_rate = (state) ? atoi(w4) : 100; + map->list[m].short_damage_rate = (state) ? atoi(w4) : 100; } else if ( !strcmpi(w3,"long_damage_rate") ) { - maplist[m].long_damage_rate = (state) ? atoi(w4) : 100; + map->list[m].long_damage_rate = (state) ? atoi(w4) : 100; } else ShowError("npc_parse_mapflag: unrecognized mapflag '%s' (file '%s', line '%d').\n", w3, filepath, strline(buffer,start-buffer)); @@ -3560,7 +3560,7 @@ void npc_parsesrcfile(const char* filepath, bool runOnInit) p = strchr(p,'\n');// next line continue; } - if (x < 0 || x >= maplist[m].xs || y < 0 || y >= maplist[m].ys) { + if (x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys) { ShowError("npc_parsesrcfile: Unknown coordinates ('%d', '%d') for map '%s' in file '%s', line '%d'. Skipping line...\n", x, y, mapname, filepath, strline(buffer,p-buffer)); if( strcasecmp(w2,"script") == 0 && count > 3 ) { @@ -3742,20 +3742,20 @@ int npc_reload(void) { mapit->free(iter); if(battle_config.dynamic_mobs) {// dynamic check by [random] - for (m = 0; m < map->map_num; m++) { + for (m = 0; m < map->count; m++) { for (i = 0; i < MAX_MOB_LIST_PER_MAP; i++) { - if (maplist[m].moblist[i] != NULL) { - aFree(maplist[m].moblist[i]); - maplist[m].moblist[i] = NULL; + if (map->list[m].moblist[i] != NULL) { + aFree(map->list[m].moblist[i]); + map->list[m].moblist[i] = NULL; } - if( maplist[m].mob_delete_timer != INVALID_TIMER ) + if( map->list[m].mob_delete_timer != INVALID_TIMER ) { // Mobs were removed anyway,so delete the timer [Inkfish] - timer->delete(maplist[m].mob_delete_timer, map->removemobs_timer); - maplist[m].mob_delete_timer = INVALID_TIMER; + timer->delete(map->list[m].mob_delete_timer, map->removemobs_timer); + map->list[m].mob_delete_timer = INVALID_TIMER; } } - if (maplist[m].npc_num > 0) - ShowWarning("npc_reload: %d npcs weren't removed at map %s!\n", maplist[m].npc_num, maplist[m].name); + if (map->list[m].npc_num > 0) + ShowWarning("npc_reload: %d npcs weren't removed at map %s!\n", map->list[m].npc_num, map->list[m].name); } } @@ -3865,24 +3865,24 @@ void npc_debug_warps_sub(struct npc_data* nd) { if (map->getcell(m, nd->u.warp.x, nd->u.warp.y, CELL_CHKNPC)) { ShowWarning("Warp %s at %s(%d,%d) warps directly on top of an area npc at %s(%d,%d)\n", nd->name, - maplist[nd->bl.m].name, nd->bl.x, nd->bl.y, - maplist[m].name, nd->u.warp.x, nd->u.warp.y + map->list[nd->bl.m].name, nd->bl.x, nd->bl.y, + map->list[m].name, nd->u.warp.x, nd->u.warp.y ); } if (map->getcell(m, nd->u.warp.x, nd->u.warp.y, CELL_CHKNOPASS)) { ShowWarning("Warp %s at %s(%d,%d) warps to a non-walkable tile at %s(%d,%d)\n", nd->name, - maplist[nd->bl.m].name, nd->bl.x, nd->bl.y, - maplist[m].name, nd->u.warp.x, nd->u.warp.y + map->list[nd->bl.m].name, nd->bl.x, nd->bl.y, + map->list[m].name, nd->u.warp.x, nd->u.warp.y ); } } static void npc_debug_warps(void) { int16 m, i; - for (m = 0; m < map->map_num; m++) - for (i = 0; i < maplist[m].npc_num; i++) - npc->debug_warps_sub(maplist[m].npc[i]); + for (m = 0; m < map->count; m++) + for (i = 0; i < map->list[m].npc_num; i++) + npc->debug_warps_sub(map->list[m].npc[i]); } /*========================================== @@ -4072,7 +4072,5 @@ void npc_defaults(void) { npc->do_clear_npc = do_clear_npc; npc->debug_warps_sub = npc_debug_warps_sub; npc->debug_warps = npc_debug_warps; -#ifdef SECURE_NPCTIMEOUT npc->secure_timeout_timer = npc_rr_secure_timeout_timer; -#endif } diff --git a/src/map/npc.h b/src/map/npc.h index 3c273fffb..f809cb19c 100644 --- a/src/map/npc.h +++ b/src/map/npc.h @@ -229,9 +229,7 @@ struct npc_interface { /** * For the Secure NPC Timeout option (check config/Secure.h) [RR] **/ -#ifdef SECURE_NPCTIMEOUT int (*secure_timeout_timer) (int tid, unsigned int tick, int id, intptr_t data); -#endif }; struct npc_interface *npc; diff --git a/src/map/packets.h b/src/map/packets.h index 8fcc6c863..c91b5d50c 100644 --- a/src/map/packets.h +++ b/src/map/packets.h @@ -1971,14 +1971,14 @@ packet(0x020d,-1); #ifndef PACKETVER_RE packet(0x091D,18,clif->pPartyBookingRegisterReq,2,4,6); #else - packet(0x08E5,41,clif->pPartyBookingRegisterReq,2,4); + packet(0x08E5,41,clif->pPartyRecruitRegisterReq,2,4); #endif packet(0x08E6,4); - packet(0x08E7,10,clif->pPartyBookingSearchReq,2); + packet(0x08E7,10,clif->pPartyRecruitSearchReq,2); packet(0x08E8,-1); - packet(0x08E9,2,clif->pPartyBookingDeleteReq,2); + packet(0x08E9,2,clif->pPartyRecruitDeleteReq,2); packet(0x08EA,4); - packet(0x08EB,39,clif->pPartyBookingUpdateReq,2); + packet(0x08EB,39,clif->pPartyRecruitUpdateReq,2); packet(0x08EC,73); packet(0x08ED,43); packet(0x08EE,6); @@ -2022,14 +2022,14 @@ packet(0x020d,-1); packet(0x0364,8,clif->pMoveFromKafra,2,4); packet(0x096A,6,clif->pGetCharNameRequest,2); packet(0x0368,6,clif->pSolveCharName,2); - packet(0x08E5,41,clif->pPartyBookingRegisterReq,2,4); + packet(0x08E5,41,clif->pPartyRecruitRegisterReq,2,4); packet(0x08d2,10); packet(0x0916,26,clif->pGuildInvite2,2); #endif #ifndef PACKETVER_RE #if PACKETVER >= 20120604 - packet(0x0861,18,clif->pPartyBookingRegisterReq,2,4,6); + packet(0x0861,18,clif->pPartyRecruitRegisterReq,2,4,6); #endif #endif @@ -2118,7 +2118,11 @@ packet(0x020d,-1); packet(0x035F,6,clif->pReqClickBuyingStore,2); packet(0x0886,2,clif->pReqCloseBuyingStore,0); packet(0x0938,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); - packet(0x085D,41,clif->pPartyBookingRegisterReq,2,4); +#ifdef PACKETVER_RE + packet(0x085D,41,clif->pPartyRecruitRegisterReq,2,4); +#else // not PACKETVER_RE + packet(0x085D,18,clif->pPartyBookingRegisterReq,2,4); +#endif // PACKETVER_RE //packet(0x095A,8); // unknown usage packet(0x0868,-1,clif->pItemListWindowSelected,2,4,8); packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); @@ -2159,7 +2163,11 @@ packet(0x020d,-1); packet(0x0360,6,clif->pReqClickBuyingStore,2); packet(0x0817,2,clif->pReqCloseBuyingStore,0); packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); - packet(0x092D,41,clif->pPartyBookingRegisterReq,2,4); +#ifdef PACKETVER_RE + packet(0x092D,41,clif->pPartyRecruitRegisterReq,2,4); +#else // not PACKETVER_RE + packet(0x092D,18,clif->pPartyBookingRegisterReq,2,4); +#endif // PACKETVER_RE //packet(0x08AA,8); // CZ_JOIN_BATTLE_FIELD packet(0x0963,-1,clif->pItemListWindowSelected,2,4,8); packet(0x0943,19,clif->pWantToConnection,2,6,10,14,18); @@ -2194,7 +2202,11 @@ packet(0x020d,-1); packet(0x0368,6,clif->pReqClickBuyingStore,2); packet(0x086E,2,clif->pReqCloseBuyingStore,0); packet(0x0874,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); - packet(0x089B,41,clif->pPartyBookingRegisterReq,2,4); +#ifdef PACKETVER_RE + packet(0x089B,41,clif->pPartyRecruitRegisterReq,2,4); +#else // not PACKETVER_RE + packet(0x089B,18,clif->pPartyBookingRegisterReq,2,4); +#endif // PACKETVER_RE //packet(0x0965,8); // CZ_JOIN_BATTLE_FIELD packet(0x086A,-1,clif->pItemListWindowSelected,2,4,8); packet(0x08A9,19,clif->pWantToConnection,2,6,10,14,18); @@ -2228,7 +2240,11 @@ packet(0x020d,-1); packet(0x0892,6,clif->pReqClickBuyingStore,2); packet(0x0964,2,clif->pReqCloseBuyingStore,0); packet(0x0869,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); - packet(0x0874,41,clif->pPartyBookingRegisterReq,2,4); +#ifdef PACKETVER_RE + packet(0x0874,41,clif->pPartyRecruitRegisterReq,2,4); +#else // not PACKETVER_RE + packet(0x0874,18,clif->pPartyBookingRegisterReq,2,4); +#endif // PACKETVER_RE // packet(0x088E,8); // CZ_JOIN_BATTLE_FIELD packet(0x0958,-1,clif->pItemListWindowSelected,2,4,8); packet(0x0919,19,clif->pWantToConnection,2,6,10,14,18); @@ -2261,7 +2277,11 @@ packet(0x020d,-1); packet(0x0360,6,clif->pReqClickBuyingStore,2); packet(0x0817,2,clif->pReqCloseBuyingStore,0); packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); - packet(0x0365,41,clif->pPartyBookingRegisterReq,2,4); +#ifdef PACKETVER_RE + packet(0x0365,41,clif->pPartyRecruitRegisterReq,2,4); +#else // not PACKETVER_RE + packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); +#endif // PACKETVER_RE // packet(0x0363,8); // CZ_JOIN_BATTLE_FIELD packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18); @@ -2303,7 +2323,11 @@ packet(0x020d,-1); packet(0x0862,6,clif->pReqClickBuyingStore,2); packet(0x085A,2,clif->pReqCloseBuyingStore,0); packet(0x0932,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); - packet(0x08A7,41,clif->pPartyBookingRegisterReq,2,4); +#ifdef PACKETVER_RE + packet(0x08A7,41,clif->pPartyRecruitRegisterReq,2,4); +#else // not PACKETVER_RE + packet(0x08A7,18,clif->pPartyBookingRegisterReq,2,4); +#endif // PACKETVER_RE // packet(0x087A,8); // CZ_JOIN_BATTLE_FIELD packet(0x0942,-1,clif->pItemListWindowSelected,2,4,8); packet(0x095B,19,clif->pWantToConnection,2,6,10,14,18); @@ -2336,7 +2360,11 @@ packet(0x020d,-1); packet(0x0360,6,clif->pReqClickBuyingStore,2); packet(0x0365,2,clif->pReqCloseBuyingStore,0); packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); - packet(0x0894,41,clif->pPartyBookingRegisterReq,2,4); +#ifdef PACKETVER_RE + packet(0x0894,41,clif->pPartyRecruitRegisterReq,2,4); +#else // not PACKETVER_RE + packet(0x0894,18,clif->pPartyBookingRegisterReq,2,4); +#endif // PACKETVER_RE // packet(0x0860,8); // CZ_JOIN_BATTLE_FIELD packet(0x08A5,-1,clif->pItemListWindowSelected,2,4,8); packet(0x088C,19,clif->pWantToConnection,2,6,10,14,18); @@ -2357,7 +2385,11 @@ packet(0x020d,-1); packet(0x0202,6,clif->pReqClickBuyingStore,2); packet(0x0817,2,clif->pReqCloseBuyingStore,0); packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); - packet(0x0365,41,clif->pPartyBookingRegisterReq,2,4); +#ifdef PACKETVER_RE + packet(0x0365,41,clif->pPartyRecruitRegisterReq,2,4); +#else // not PACKETVER_RE + packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); +#endif // PACKETVER_RE // packet(0x0363,8); // CZ_JOIN_BATTLE_FIELD packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18); @@ -2369,6 +2401,42 @@ packet(0x020d,-1); packet(0x097C,4,clif->pRanklist); #endif +//2013-08-07Ragexe (Shakto) +#if PACKETVER >= 20130807 + packet(0x0369,7,clif->pActionRequest,2,6); + packet(0x083C,10,clif->pUseSkillToId,2,4,6); + packet(0x0437,5,clif->pWalkToXY,2); + packet(0x035F,6,clif->pTickSend,2); + packet(0x0202,5,clif->pChangeDir,2,4); + packet(0x07E4,6,clif->pTakeItem,2); + packet(0x0362,6,clif->pDropItem,2,4); + packet(0x07EC,8,clif->pMoveToKafra,2,4); + packet(0x0364,8,clif->pMoveFromKafra,2,4); + packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); + packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); + packet(0x096A,6,clif->pGetCharNameRequest,2); + packet(0x0368,6,clif->pSolveCharName,2); + packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); + packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); + packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); + packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); + packet(0x0360,6,clif->pReqClickBuyingStore,2); + packet(0x0817,2,clif->pReqCloseBuyingStore,0); + packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); +#ifdef PACKETVER_RE + packet(0x0365,41,clif->pPartyRecruitRegisterReq,2,4); +#else // not PACKETVER_RE + packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); +#endif // PACKETVER_RE + // packet(0x0363,8); // CZ_JOIN_BATTLE_FIELD + packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); + packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18); + packet(0x0802,26,clif->pPartyInvite2,2); + // packet(0x0436,4); // CZ_GANGSI_RANK + packet(0x023B,26,clif->pFriendsListAdd,2); + packet(0x0361,5,clif->pHomMenu,2,4); + packet(0x0887,36,clif->pStoragePassword,0); +#endif /* PacketKeys: http://hercules.ws/board/topic/1105-hercules-wpe-free-june-14th-patch/ */ #if PACKETVER >= 20110817 @@ -2559,5 +2627,8 @@ packet(0x020d,-1); packetKeys(0x4FF90E23,0x0F1432F2,0x4CFA1EDA); /* Thanks to Shakto */ #endif +#if PACKETVER >= 20130807 + packetKeys(0x7E241DE0,0x5E805580,0x3D807D80); /* Thanks to Shakto */ +#endif #endif /* _PACKETS_H_ */ diff --git a/src/map/party.c b/src/map/party.c index a4eb38629..904110452 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -1,5 +1,6 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Portions Copyright (c) Athena Dev Teams #include "../common/cbasetypes.h" #include "../common/timer.h" @@ -29,20 +30,13 @@ #include <string.h> -static DBMap* party_db; // int party_id -> struct party_data* (releases data) -static DBMap* party_booking_db; // int char_id -> struct party_booking_ad_info* (releases data) // Party Booking [Spiria] -static unsigned long party_booking_nextid = 1; - struct party_interface party_s; -int party_send_xy_timer(int tid, unsigned int tick, int id, intptr_t data); - /*========================================== * Fills the given party_member structure according to the sd provided. * Used when creating/adding people to a party. [Skotlex] *------------------------------------------*/ -static void party_fill_member(struct party_member* member, struct map_session_data* sd, unsigned int leader) -{ +void party_fill_member(struct party_member* member, struct map_session_data* sd, unsigned int leader) { member->account_id = sd->status.account_id; member->char_id = sd->status.char_id; safestrncpy(member->name, sd->status.name, NAME_LENGTH); @@ -54,8 +48,7 @@ static void party_fill_member(struct party_member* member, struct map_session_da } /// Get the member_id of a party member. /// Return -1 if not in party. -int party_getmemberid(struct party_data* p, struct map_session_data* sd) -{ +int party_getmemberid(struct party_data* p, struct map_session_data* sd) { int member_id; nullpo_retr(-1, p); if( sd == NULL ) @@ -68,7 +61,6 @@ int party_getmemberid(struct party_data* p, struct map_session_data* sd) return member_id; } - /*========================================== * Request an available sd of this party *------------------------------------------*/ @@ -83,8 +75,7 @@ struct map_session_data* party_getavailablesd(struct party_data *p) /*========================================== * Retrieves and validates the sd pointer for this party member [Skotlex] *------------------------------------------*/ - -static TBL_PC* party_sd_check(int party_id, int account_id, int char_id) { +TBL_PC* party_sd_check(int party_id, int account_id, int char_id) { TBL_PC* sd = map->id2sd(account_id); if (!(sd && sd->status.char_id == char_id)) @@ -108,30 +99,12 @@ int party_db_final(DBKey key, DBData *data, va_list ap) { return 0; } -/*========================================== - * Destructor - * Called in map shutdown, cleanup var - *------------------------------------------*/ -void do_final_party(void) -{ - party_db->destroy(party_db,party_db_final); - party_booking_db->destroy(party_booking_db,NULL); // Party Booking [Spiria] -} -// Constructor, init vars -void do_init_party(void) -{ - party_db = idb_alloc(DB_OPT_RELEASE_DATA); - party_booking_db = idb_alloc(DB_OPT_RELEASE_DATA); // Party Booking [Spiria] - timer->add_func_list(party_send_xy_timer, "party_send_xy_timer"); - timer->add_interval(timer->gettick()+battle_config.party_update_interval, party_send_xy_timer, 0, 0, battle_config.party_update_interval); -} - /// Party data lookup using party id. struct party_data* party_search(int party_id) { if(!party_id) return NULL; - return (struct party_data*)idb_get(party_db,party_id); + return (struct party_data*)idb_get(party->db,party_id); } /// Party data lookup using party name. @@ -139,7 +112,7 @@ struct party_data* party_searchname(const char* str) { struct party_data* p; - DBIterator *iter = db_iterator(party_db); + DBIterator *iter = db_iterator(party->db); for( p = dbi_first(iter); dbi_exists(iter); p = dbi_next(iter) ) { if( strncmpi(p->party.name,str,NAME_LENGTH) == 0 ) @@ -171,7 +144,7 @@ int party_create(struct map_session_data *sd,char *name,int item,int item2) sd->party_creating = true; - party_fill_member(&leader, sd, 1); + party->fill_member(&leader, sd, 1); intif->create_party(&leader,name,item,item2); return 0; @@ -219,29 +192,27 @@ int party_recv_noinfo(int party_id, int char_id) { return 0; } -static void party_check_state(struct party_data *p) -{ +void party_check_state(struct party_data *p) { int i; memset(&p->state, 0, sizeof(p->state)); - for (i = 0; i < MAX_PARTY; i ++) - { + for (i = 0; i < MAX_PARTY; i ++) { if (!p->party.member[i].online) continue; //Those not online shouldn't aport to skill usage and all that. switch (p->party.member[i].class_) { - case JOB_MONK: - case JOB_BABY_MONK: - case JOB_CHAMPION: - p->state.monk = 1; - break; - case JOB_STAR_GLADIATOR: - p->state.sg = 1; - break; - case JOB_SUPER_NOVICE: - case JOB_SUPER_BABY: - p->state.snovice = 1; - break; - case JOB_TAEKWON: - p->state.tk = 1; - break; + case JOB_MONK: + case JOB_BABY_MONK: + case JOB_CHAMPION: + p->state.monk = 1; + break; + case JOB_STAR_GLADIATOR: + p->state.sg = 1; + break; + case JOB_SUPER_NOVICE: + case JOB_SUPER_BABY: + p->state.snovice = 1; + break; + case JOB_TAEKWON: + p->state.tk = 1; + break; } } } @@ -260,7 +231,7 @@ int party_recv_info(struct party* sp, int char_id) nullpo_ret(sp); - p = (struct party_data*)idb_get(party_db, sp->party_id); + p = (struct party_data*)idb_get(party->db, sp->party_id); if( p != NULL ) {// diff members for( member_id = 0; member_id < MAX_PARTY; ++member_id ) { member = &p->party.member[member_id]; @@ -289,7 +260,7 @@ int party_recv_info(struct party* sp, int char_id) CREATE(p, struct party_data, 1); p->instance = NULL; p->instances = 0; - idb_put(party_db, sp->party_id, p); + idb_put(party->db, sp->party_id, p); } while( removed_count > 0 ) {// no longer in party member_id = removed[--removed_count]; @@ -305,9 +276,9 @@ int party_recv_info(struct party* sp, int char_id) member = &p->party.member[member_id]; if ( member->char_id == 0 ) continue;// empty - p->data[member_id].sd = party_sd_check(sp->party_id, member->account_id, member->char_id); + p->data[member_id].sd = party->sd_check(sp->party_id, member->account_id, member->char_id); } - party_check_state(p); + party->check_state(p); while( added_count > 0 ) { // new in party member_id = added[--added_count]; sd = p->data[member_id].sd; @@ -319,7 +290,7 @@ int party_recv_info(struct party* sp, int char_id) clif->party_info(p,NULL); for( j = 0; j < p->instances; j++ ) { if( p->instance[j] >= 0 ) { - if( instances[p->instance[j]].idle_timer == INVALID_TIMER && instances[p->instance[j]].progress_timer == INVALID_TIMER ) + if( instance->list[p->instance[j]].idle_timer == INVALID_TIMER && instance->list[p->instance[j]].progress_timer == INVALID_TIMER ) continue; clif->instance_join(sd->fd, p->instance[j]); break; @@ -412,7 +383,7 @@ void party_reply_invite(struct map_session_data *sd,int party_id,int flag) { if( flag == 1 && !sd->party_creating && !sd->party_joining ) {// accepted and allowed sd->party_joining = true; - party_fill_member(&member, sd, 0); + party->fill_member(&member, sd, 0); intif->party_addmember(sd->party_invite, &member); } else @@ -442,7 +413,7 @@ void party_member_joined(struct map_session_data *sd) p->data[i].sd = sd; for( j = 0; j < p->instances; j++ ) { if( p->instance[j] >= 0 ) { - if( instances[p->instance[j]].idle_timer == INVALID_TIMER && instances[p->instance[j]].progress_timer == INVALID_TIMER ) + if( instance->list[p->instance[j]].idle_timer == INVALID_TIMER && instance->list[p->instance[j]].progress_timer == INVALID_TIMER ) continue; clif->instance_join(sd->fd, p->instance[j]); break; @@ -504,7 +475,7 @@ int party_member_added(int party_id,int account_id,int char_id, int flag) { for( j = 0; j < p->instances; j++ ) { if( p->instance[j] >= 0 ) { - if( instances[p->instance[j]].idle_timer == INVALID_TIMER && instances[p->instance[j]].progress_timer == INVALID_TIMER ) + if( instance->list[p->instance[j]].idle_timer == INVALID_TIMER && instance->list[p->instance[j]].progress_timer == INVALID_TIMER ) continue; clif->instance_join(sd->fd, p->instance[j]); break; @@ -571,7 +542,7 @@ int party_member_withdraw(int party_id, int account_id, int char_id) memset(&p->party.member[i], 0, sizeof(p->party.member[0])); memset(&p->data[i], 0, sizeof(p->data[0])); p->party.count--; - party_check_state(p); + party->check_state(p); } } @@ -604,7 +575,7 @@ int party_broken(int party_id) for( j = 0; j < p->instances; j++ ) { if( p->instance[j] >= 0 ) { instance->destroy( p->instance[j] ); - instances[p->instance[j]].owner_id = 0; + instance->list[p->instance[j]].owner_id = 0; } } @@ -615,7 +586,7 @@ int party_broken(int party_id) } } - idb_remove(party_db,party_id); + idb_remove(party->db,party_id); return 0; } @@ -659,7 +630,7 @@ bool party_changeleader(struct map_session_data *sd, struct map_session_data *ts return false; } - if( maplist[sd->bl.m].flag.partylock ) { + if( map->list[sd->bl.m].flag.partylock ) { clif->message(sd->fd, msg_txt(287)); return false; } @@ -722,7 +693,7 @@ int party_recv_movemap(int party_id,int account_id,int char_id, unsigned short m m->online = online; m->lv = lv; //Check if they still exist on this map server - p->data[i].sd = party_sd_check(party_id, account_id, char_id); + p->data[i].sd = party->sd_check(party_id, account_id, char_id); clif->party_info(p,NULL); return 0; @@ -864,7 +835,7 @@ int party_send_xy_timer(int tid, unsigned int tick, int id, intptr_t data) { struct party_data* p; - DBIterator *iter = db_iterator(party_db); + DBIterator *iter = db_iterator(party->db); // for each existing party, for( p = dbi_first(iter); dbi_exists(iter); p = dbi_next(iter) ) { @@ -1060,9 +1031,11 @@ int party_sub_count(struct block_list *bl, va_list ap) return 1; } -/// Executes 'func' for each party member on the same map and in range (0:whole map) -int party_foreachsamemap(int (*func)(struct block_list*,va_list),struct map_session_data *sd,int range,...) -{ +/** + * Arglist-based version of party_foreachsamemap + * @see party_foreachsamemap + */ +int party_vforeachsamemap(int (*func)(struct block_list*,va_list), struct map_session_data *sd, int range, va_list ap) { struct party_data *p; int i; int x0,y0,x1,y1; @@ -1096,10 +1069,10 @@ int party_foreachsamemap(int (*func)(struct block_list*,va_list),struct map_sess map->freeblock_lock(); for(i=0;i<blockcount;i++) { - va_list ap; - va_start(ap, range); - total += func(list[i], ap); - va_end(ap); + va_list ap_copy; + va_copy(ap_copy, ap); + total += func(list[i], ap_copy); + va_end(ap_copy); } map->freeblock_unlock(); @@ -1107,123 +1080,190 @@ int party_foreachsamemap(int (*func)(struct block_list*,va_list),struct map_sess return total; } +/** + * Executes 'func' for each party member on the same map and within a 'range' cells area + * @param func Function to execute + * @param sd Reference character for party, map, area center + * @param range Area size (0 = whole map) + * @param ... Adidtional parameters to pass to func() + * @return Sum of the return values from func() + */ +int party_foreachsamemap(int (*func)(struct block_list*,va_list), struct map_session_data *sd, int range, ...) { + va_list ap; + int ret; + va_start(ap, range); + ret = party->vforeachsamemap(func, sd, range, ap); + va_end(ap); + return ret; +} + /*========================================== * Party Booking in KRO [Spiria] *------------------------------------------*/ -static struct party_booking_ad_info* create_party_booking_data(void) -{ +struct party_booking_ad_info* create_party_booking_data(void) { struct party_booking_ad_info *pb_ad; CREATE(pb_ad, struct party_booking_ad_info, 1); - pb_ad->index = party_booking_nextid++; + pb_ad->index = party->booking_nextid++; return pb_ad; } -#ifndef PARTY_RECRUIT -void party_booking_register(struct map_session_data *sd, short level, short mapid, short* job) -#else -void party_booking_register(struct map_session_data *sd, short level, const char *notice) -#endif -{ +void party_recruit_register(struct map_session_data *sd, short level, const char *notice) { +#ifdef PARTY_RECRUIT struct party_booking_ad_info *pb_ad; -#ifndef PARTY_RECRUIT - int i; -#endif - pb_ad = (struct party_booking_ad_info*)idb_get(party_booking_db, sd->status.char_id); + pb_ad = (struct party_booking_ad_info*)idb_get(party->booking_db, sd->status.char_id); if( pb_ad == NULL ) { - pb_ad = create_party_booking_data(); - idb_put(party_booking_db, sd->status.char_id, pb_ad); + pb_ad = party->create_booking_data(); + idb_put(party->booking_db, sd->status.char_id, pb_ad); } else {// already registered - clif->PartyBookingRegisterAck(sd, 2); + clif->PartyRecruitRegisterAck(sd, 2); return; } memcpy(pb_ad->charname,sd->status.name,NAME_LENGTH); pb_ad->expiretime = (int)time(NULL); pb_ad->p_detail.level = level; + safestrncpy(pb_ad->p_detail.notice, notice, PB_NOTICE_LENGTH); + + clif->PartyRecruitRegisterAck(sd, 0); + clif->PartyRecruitInsertNotify(sd, pb_ad); // Notice +#else + return; +#endif +} + +void party_booking_register(struct map_session_data *sd, short level, short mapid, short* job) { #ifndef PARTY_RECRUIT + struct party_booking_ad_info *pb_ad; + int i; + + pb_ad = (struct party_booking_ad_info*)idb_get(party->booking_db, sd->status.char_id); + + if( pb_ad == NULL ) + { + pb_ad = party->create_booking_data(); + idb_put(party->booking_db, sd->status.char_id, pb_ad); + } + else + {// already registered + clif->PartyBookingRegisterAck(sd, 2); + return; + } + + memcpy(pb_ad->charname,sd->status.name,NAME_LENGTH); + pb_ad->expiretime = (int)time(NULL); + pb_ad->p_detail.level = level; pb_ad->p_detail.mapid = mapid; - + for(i=0;i<PARTY_BOOKING_JOBS;i++) if(job[i] != 0xFF) pb_ad->p_detail.job[i] = job[i]; else pb_ad->p_detail.job[i] = -1; -#else - safestrncpy(pb_ad->p_detail.notice, notice, PB_NOTICE_LENGTH); -#endif - + clif->PartyBookingRegisterAck(sd, 0); clif->PartyBookingInsertNotify(sd, pb_ad); // Notice -} - -#ifndef PARTY_RECRUIT -void party_booking_update(struct map_session_data *sd, short* job) #else -void party_booking_update(struct map_session_data *sd, const char *notice) -#endif -{ -#ifndef PARTY_RECRUIT - int i; + return; #endif +} + +void party_recruit_update(struct map_session_data *sd, const char *notice) { +#ifdef PARTY_RECRUIT struct party_booking_ad_info *pb_ad; - pb_ad = (struct party_booking_ad_info*)idb_get(party_booking_db, sd->status.char_id); + pb_ad = (struct party_booking_ad_info*)idb_get(party->booking_db, sd->status.char_id); if( pb_ad == NULL ) return; pb_ad->expiretime = (int)time(NULL);// Update time. + if (notice != NULL) { + safestrncpy(pb_ad->p_detail.notice, notice, PB_NOTICE_LENGTH); + } + + clif->PartyRecruitUpdateNotify(sd, pb_ad); +#else + return; +#endif +} +void party_booking_update(struct map_session_data *sd, short* job) { #ifndef PARTY_RECRUIT + int i; + struct party_booking_ad_info *pb_ad; + + pb_ad = (struct party_booking_ad_info*)idb_get(party->booking_db, sd->status.char_id); + + if( pb_ad == NULL ) + return; + + pb_ad->expiretime = (int)time(NULL);// Update time. + for(i=0;i<PARTY_BOOKING_JOBS;i++) if(job[i] != 0xFF) pb_ad->p_detail.job[i] = job[i]; else pb_ad->p_detail.job[i] = -1; + + clif->PartyBookingUpdateNotify(sd, pb_ad); #else - if (notice != NULL) { - safestrncpy(pb_ad->p_detail.notice, notice, PB_NOTICE_LENGTH); - } + return; #endif - - clif->PartyBookingUpdateNotify(sd, pb_ad); } -#ifndef PARTY_RECRUIT -void party_booking_search(struct map_session_data *sd, short level, short mapid, short job, unsigned long lastindex, short resultcount) -#else -void party_booking_search(struct map_session_data *sd, short level, short mapid, unsigned long lastindex, short resultcount) -#endif -{ + +void party_recruit_search(struct map_session_data *sd, short level, short mapid, unsigned long lastindex, short resultcount) { +#ifdef PARTY_RECRUIT struct party_booking_ad_info *pb_ad; -#ifndef PARTY_RECRUIT - int i; -#endif int count = 0; struct party_booking_ad_info* result_list[PARTY_BOOKING_RESULTS]; bool more_result = false; - DBIterator* iter = db_iterator(party_booking_db); + DBIterator* iter = db_iterator(party->booking_db); memset(result_list, 0, sizeof(result_list)); for( pb_ad = dbi_first(iter); dbi_exists(iter); pb_ad = dbi_next(iter) ) { -#ifndef PARTY_RECRUIT - if (pb_ad->index < lastindex || (level && (pb_ad->p_detail.level < level-15 || pb_ad->p_detail.level > level))) - continue; -#else if ((level && (pb_ad->p_detail.level < level-15 || pb_ad->p_detail.level > level))) continue; -#endif if (count >= PARTY_BOOKING_RESULTS){ more_result = true; break; } + result_list[count] = pb_ad; + if( result_list[count] ) + { + count++; + } + } + dbi_destroy(iter); + clif->PartyRecruitSearchAck(sd->fd, result_list, count, more_result); +#else + return; +#endif +} +void party_booking_search(struct map_session_data *sd, short level, short mapid, short job, unsigned long lastindex, short resultcount) { #ifndef PARTY_RECRUIT + struct party_booking_ad_info *pb_ad; + int i; + int count = 0; + struct party_booking_ad_info* result_list[PARTY_BOOKING_RESULTS]; + bool more_result = false; + DBIterator* iter = db_iterator(party->booking_db); + + memset(result_list, 0, sizeof(result_list)); + + for( pb_ad = dbi_first(iter); dbi_exists(iter); pb_ad = dbi_next(iter) ) { + if (pb_ad->index < lastindex || (level && (pb_ad->p_detail.level < level-15 || pb_ad->p_detail.level > level))) + continue; + if (count >= PARTY_BOOKING_RESULTS){ + more_result = true; + break; + } if (mapid == 0 && job == -1) result_list[count] = pb_ad; else if (mapid == 0) { @@ -1234,9 +1274,6 @@ void party_booking_search(struct map_session_data *sd, short level, short mapid, if (pb_ad->p_detail.mapid == mapid) result_list[count] = pb_ad; } -#else - result_list[count] = pb_ad; -#endif if( result_list[count] ) { count++; @@ -1244,20 +1281,38 @@ void party_booking_search(struct map_session_data *sd, short level, short mapid, } dbi_destroy(iter); clif->PartyBookingSearchAck(sd->fd, result_list, count, more_result); +#else + return; +#endif } + bool party_booking_delete(struct map_session_data *sd) { struct party_booking_ad_info* pb_ad; - if((pb_ad = (struct party_booking_ad_info*)idb_get(party_booking_db, sd->status.char_id))!=NULL) + if((pb_ad = (struct party_booking_ad_info*)idb_get(party->booking_db, sd->status.char_id))!=NULL) { +#ifdef PARTY_RECRUIT + clif->PartyRecruitDeleteNotify(sd, pb_ad->index); +#else clif->PartyBookingDeleteNotify(sd, pb_ad->index); - idb_remove(party_booking_db,sd->status.char_id); +#endif + idb_remove(party->booking_db,sd->status.char_id); } return true; } - +void do_final_party(void) { + party->db->destroy(party->db,party->db_final); + db_destroy(party->booking_db); // Party Booking [Spiria] +} +// Constructor, init vars +void do_init_party(void) { + party->db = idb_alloc(DB_OPT_RELEASE_DATA); + party->booking_db = idb_alloc(DB_OPT_RELEASE_DATA); // Party Booking [Spiria] + timer->add_func_list(party->send_xy_timer, "party_send_xy_timer"); + timer->add_interval(timer->gettick()+battle_config.party_update_interval, party->send_xy_timer, 0, 0, battle_config.party_update_interval); +} /*===================================== * Default Functions : party.h * Generated by HerculesInterfaceMaker @@ -1266,10 +1321,14 @@ bool party_booking_delete(struct map_session_data *sd) void party_defaults(void) { party = &party_s; + /* */ + party->db = NULL; + party->booking_db = NULL; + party->booking_nextid = 1; /* funcs */ - - party->do_init_party = do_init_party; - party->do_final_party = do_final_party; + party->init = do_init_party; + party->final = do_final_party; + /* */ party->search = party_search; party->searchname = party_searchname; party->getmemberid = party_getmemberid; @@ -1306,5 +1365,16 @@ void party_defaults(void) { party->booking_register = party_booking_register; party->booking_update = party_booking_update; party->booking_search = party_booking_search; + party->recruit_register = party_recruit_register; + party->recruit_update = party_recruit_update; + party->recruit_search = party_recruit_search; party->booking_delete = party_booking_delete; + party->vforeachsamemap = party_vforeachsamemap; + party->foreachsamemap = party_foreachsamemap; + party->send_xy_timer = party_send_xy_timer; + party->fill_member = party_fill_member; + party->sd_check = party_sd_check; + party->check_state = party_check_state; + party->create_booking_data = create_party_booking_data; + party->db_final = party_db_final; } diff --git a/src/map/party.h b/src/map/party.h index 7ade6b841..208edb846 100644 --- a/src/map/party.h +++ b/src/map/party.h @@ -1,16 +1,16 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Portions Copyright (c) Athena Dev Teams + #ifndef _PARTY_H_ #define _PARTY_H_ + #include "../common/mmo.h" // struct party #include "../config/core.h" -struct block_list; -struct map_session_data; -struct party; -struct item; - #include <stdarg.h> +#include "map.h" + #define PARTY_BOOKING_JOBS 6 #define PARTY_BOOKING_RESULTS 10 @@ -34,6 +34,8 @@ struct party_data { } state; }; +#define PB_NOTICE_LENGTH (36 + 1) + #ifndef PARTY_RECRUIT struct party_booking_detail { short level; @@ -47,8 +49,7 @@ struct party_booking_ad_info { long expiretime; struct party_booking_detail p_detail; }; -#else -#define PB_NOTICE_LENGTH (36 + 1) +#else /* PARTY_RECRUIT */ struct party_booking_detail { short level; char notice[PB_NOTICE_LENGTH]; @@ -60,14 +61,7 @@ struct party_booking_ad_info { char charname[NAME_LENGTH]; struct party_booking_detail p_detail; }; -#endif - - -int party_foreachsamemap(int (*func)(struct block_list *,va_list),struct map_session_data *sd,int range,...); - -/*========================================== - * Party Booking in KRO [Spiria] - *------------------------------------------*/ +#endif /* PARTY_RECRUIT */ /*===================================== * Interface : party.h @@ -75,11 +69,13 @@ int party_foreachsamemap(int (*func)(struct block_list *,va_list),struct map_ses * created by Susu *-------------------------------------*/ struct party_interface { - + DBMap* db; // int party_id -> struct party_data* (releases data) + DBMap* booking_db; // int char_id -> struct party_booking_ad_info* (releases data) // Party Booking [Spiria] + unsigned long booking_nextid; /* funcs */ - - void (*do_init_party) (void); - void (*do_final_party) (void); + void (*init) (void); + void (*final) (void); + /* */ struct party_data* (*search) (int party_id); struct party_data* (*searchname) (const char* str); int (*getmemberid) (struct party_data* p, struct map_session_data* sd); @@ -113,16 +109,26 @@ struct party_interface { int (*share_loot) (struct party_data* p, struct map_session_data* sd, struct item* item_data, int first_charid); int (*send_dot_remove) (struct map_session_data *sd); int (*sub_count) (struct block_list *bl, va_list ap); -#ifndef PARTY_RECRUIT + /*========================================== + * Party Booking in KRO [Spiria] + *------------------------------------------*/ void (*booking_register) (struct map_session_data *sd, short level, short mapid, short* job); void (*booking_update) (struct map_session_data *sd, short* job); void (*booking_search) (struct map_session_data *sd, short level, short mapid, short job, unsigned long lastindex, short resultcount); -#else - void (*booking_register) (struct map_session_data *sd, short level, const char *notice); - void (*booking_update) (struct map_session_data *sd, const char *notice); - void (*booking_search) (struct map_session_data *sd, short level, short mapid, unsigned long lastindex, short resultcount); -#endif + /* PARTY_RECRUIT */ + void (*recruit_register) (struct map_session_data *sd, short level, const char *notice); + void (*recruit_update) (struct map_session_data *sd, const char *notice); + void (*recruit_search) (struct map_session_data *sd, short level, short mapid, unsigned long lastindex, short resultcount); bool (*booking_delete) (struct map_session_data *sd); + /* */ + int (*vforeachsamemap) (int (*func)(struct block_list *,va_list),struct map_session_data *sd,int range, va_list ap); + int (*foreachsamemap) (int (*func)(struct block_list *,va_list),struct map_session_data *sd,int range,...); + int (*send_xy_timer) (int tid, unsigned int tick, int id, intptr_t data); + void (*fill_member) (struct party_member* member, struct map_session_data* sd, unsigned int leader); + TBL_PC* (*sd_check) (int party_id, int account_id, int char_id); + void (*check_state) (struct party_data *p); + struct party_booking_ad_info* (*create_booking_data) (void); + int (*db_final) (DBKey key, DBData *data, va_list ap); }; struct party_interface *party; diff --git a/src/map/path.c b/src/map/path.c index 79e004601..a47677cf5 100644 --- a/src/map/path.c +++ b/src/map/path.c @@ -68,9 +68,9 @@ int path_blownpos(int16 m,int16 x0,int16 y0,int16 dx,int16 dy,int count) { struct map_data *md; - if( !maplist[m].cell ) + if( !map->list[m].cell ) return -1; - md = &maplist[m]; + md = &map->list[m]; if( count>25 ){ //Cap to prevent too much processing...? ShowWarning("path_blownpos: count too many %d !\n",count); @@ -121,9 +121,9 @@ bool path_search_long(struct shootpath_data *spd,int16 m,int16 x0,int16 y0,int16 if( spd == NULL ) spd = &s_spd; // use dummy output variable - if (!maplist[m].cell) + if (!map->list[m].cell) return false; - md = &maplist[m]; + md = &map->list[m]; dx = (x1 - x0); if (dx < 0) { @@ -255,9 +255,9 @@ bool path_search(struct walkpath_data *wpd, int16 m, int16 x0, int16 y0, int16 x if (wpd == NULL) wpd = &s_wpd; // use dummy output variable - if (!maplist[m].cell) + if (!map->list[m].cell) return false; - md = &maplist[m]; + md = &map->list[m]; #ifdef CELL_NOSTACK //Do not check starting cell as that would get you stuck. diff --git a/src/map/pc.c b/src/map/pc.c index d11eb7e75..6b7d6c735 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -51,45 +51,6 @@ #include <time.h> -#define PVP_CALCRANK_INTERVAL 1000 // PVP calculation interval -static unsigned int exp_table[CLASS_COUNT][2][MAX_LEVEL]; -static unsigned int max_level[CLASS_COUNT][2]; -static unsigned int statp[MAX_LEVEL+1]; -#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) -static unsigned int level_penalty[3][RC_MAX][MAX_LEVEL*2+1]; -#endif - -// h-files are for declarations, not for implementations... [Shinomori] -struct skill_tree_entry skill_tree[CLASS_COUNT][MAX_SKILL_TREE]; -// timer for night.day implementation -int day_timer_tid; -int night_timer_tid; - -struct fame_list smith_fame_list[MAX_FAME_LIST]; -struct fame_list chemist_fame_list[MAX_FAME_LIST]; -struct fame_list taekwon_fame_list[MAX_FAME_LIST]; - -static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_GARMENT,EQP_AMMO}; - -//Links related info to the sd->hate_mob[]/sd->feel_map[] entries -const struct sg_data sg_info[MAX_PC_FEELHATE] = { - { SG_SUN_ANGER, SG_SUN_BLESS, SG_SUN_COMFORT, "PC_FEEL_SUN", "PC_HATE_MOB_SUN", is_day_of_sun }, - { SG_MOON_ANGER, SG_MOON_BLESS, SG_MOON_COMFORT, "PC_FEEL_MOON", "PC_HATE_MOB_MOON", is_day_of_moon }, - { SG_STAR_ANGER, SG_STAR_BLESS, SG_STAR_COMFORT, "PC_FEEL_STAR", "PC_HATE_MOB_STAR", is_day_of_star } - }; - -/** - * Item Cool Down Delay Saving - * Struct item_cd is not a member of struct map_session_data - * to keep cooldowns in memory between player log-ins. - * All cooldowns are reset when server is restarted. - **/ -DBMap* itemcd_db = NULL; // char_id -> struct skill_cd -struct item_cd { - unsigned int tick[MAX_ITEMDELAYS];//tick - short nameid[MAX_ITEMDELAYS];//skill id -}; - struct pc_interface pc_s; //Converts a class to its array index for CLASS_COUNT defined arrays. @@ -156,7 +117,7 @@ bool pc_should_log_commands(struct map_session_data *sd) return pc_group_should_log_commands(sd->group); } -static int pc_invincible_timer(int tid, unsigned int tick, int id, intptr_t data) { +int pc_invincible_timer(int tid, unsigned int tick, int id, intptr_t data) { struct map_session_data *sd; if( (sd=(struct map_session_data *)map->id2sd(id)) == NULL || sd->bl.type!=BL_PC ) @@ -175,11 +136,11 @@ static int pc_invincible_timer(int tid, unsigned int tick, int id, intptr_t data void pc_setinvincibletimer(struct map_session_data* sd, int val) { nullpo_retv(sd); - val += maplist[sd->bl.m].invincible_time_inc; + val += map->list[sd->bl.m].invincible_time_inc; if( sd->invincible_timer != INVALID_TIMER ) - timer->delete(sd->invincible_timer,pc_invincible_timer); - sd->invincible_timer = timer->add(timer->gettick()+val,pc_invincible_timer,sd->bl.id,0); + timer->delete(sd->invincible_timer,pc->invincible_timer); + sd->invincible_timer = timer->add(timer->gettick()+val,pc->invincible_timer,sd->bl.id,0); } void pc_delinvincibletimer(struct map_session_data* sd) @@ -188,13 +149,13 @@ void pc_delinvincibletimer(struct map_session_data* sd) if( sd->invincible_timer != INVALID_TIMER ) { - timer->delete(sd->invincible_timer,pc_invincible_timer); + timer->delete(sd->invincible_timer,pc->invincible_timer); sd->invincible_timer = INVALID_TIMER; skill->unit_move(&sd->bl,timer->gettick(),1); } } -static int pc_spiritball_timer(int tid, unsigned int tick, int id, intptr_t data) { +int pc_spiritball_timer(int tid, unsigned int tick, int id, intptr_t data) { struct map_session_data *sd; int i; @@ -238,14 +199,14 @@ int pc_addspiritball(struct map_session_data *sd,int interval,int max) if( sd->spiritball && sd->spiritball >= max ) { if(sd->spirit_timer[0] != INVALID_TIMER) - timer->delete(sd->spirit_timer[0],pc_spiritball_timer); + timer->delete(sd->spirit_timer[0],pc->spiritball_timer); sd->spiritball--; if( sd->spiritball != 0 ) memmove(sd->spirit_timer+0, sd->spirit_timer+1, (sd->spiritball)*sizeof(int)); sd->spirit_timer[sd->spiritball] = INVALID_TIMER; } - tid = timer->add(timer->gettick()+interval, pc_spiritball_timer, sd->bl.id, 0); + tid = timer->add(timer->gettick()+interval, pc->spiritball_timer, sd->bl.id, 0); ARR_FIND(0, sd->spiritball, i, sd->spirit_timer[i] == INVALID_TIMER || DIFF_TICK(timer->get(tid)->tick, timer->get(sd->spirit_timer[i])->tick) < 0); if( i != sd->spiritball ) memmove(sd->spirit_timer+i+1, sd->spirit_timer+i, (sd->spiritball-i)*sizeof(int)); @@ -280,7 +241,7 @@ int pc_delspiritball(struct map_session_data *sd,int count,int type) for(i=0;i<count;i++) { if(sd->spirit_timer[i] != INVALID_TIMER) { - timer->delete(sd->spirit_timer[i],pc_spiritball_timer); + timer->delete(sd->spirit_timer[i],pc->spiritball_timer); sd->spirit_timer[i] = INVALID_TIMER; } } @@ -297,7 +258,7 @@ int pc_delspiritball(struct map_session_data *sd,int count,int type) } return 0; } -static int pc_check_banding( struct block_list *bl, va_list ap ) { +int pc_check_banding( struct block_list *bl, va_list ap ) { int *c, *b_sd; struct block_list *src; struct map_session_data *tsd; @@ -337,7 +298,7 @@ int pc_banding(struct map_session_data *sd, uint16 skill_lv) { c = 0; memset(b_sd, 0, sizeof(b_sd)); - i = party_foreachsamemap(pc_check_banding,sd,range,&sd->bl,&c,&b_sd); + i = party->foreachsamemap(pc->check_banding,sd,range,&sd->bl,&c,&b_sd); if( c < 1 ) { //just recalc status no need to recalc hp @@ -415,19 +376,19 @@ unsigned char pc_famerank(int char_id, int job) switch(job){ case MAPID_BLACKSMITH: // Blacksmith for(i = 0; i < MAX_FAME_LIST; i++){ - if(smith_fame_list[i].id == char_id) + if(pc->smith_fame_list[i].id == char_id) return i + 1; } break; case MAPID_ALCHEMIST: // Alchemist for(i = 0; i < MAX_FAME_LIST; i++){ - if(chemist_fame_list[i].id == char_id) + if(pc->chemist_fame_list[i].id == char_id) return i + 1; } break; case MAPID_TAEKWON: // Taekwon for(i = 0; i < MAX_FAME_LIST; i++){ - if(taekwon_fame_list[i].id == char_id) + if(pc->taekwon_fame_list[i].id == char_id) return i + 1; } break; @@ -458,7 +419,7 @@ int pc_setrestartvalue(struct map_session_data *sd,int type) { /*========================================== Rental System *------------------------------------------*/ -static int pc_inventory_rental_end(int tid, unsigned int tick, int id, intptr_t data) { +int pc_inventory_rental_end(int tid, unsigned int tick, int id, intptr_t data) { struct map_session_data *sd = map->id2sd(id); if( sd == NULL ) return 0; @@ -476,7 +437,7 @@ int pc_inventory_rental_clear(struct map_session_data *sd) { if( sd->rental_timer != INVALID_TIMER ) { - timer->delete(sd->rental_timer, pc_inventory_rental_end); + timer->delete(sd->rental_timer, pc->inventory_rental_end); sd->rental_timer = INVALID_TIMER; } @@ -511,7 +472,7 @@ void pc_inventory_rentals(struct map_session_data *sd) } if( c > 0 ) // min(next_tick,3600000) 1 hour each timer to keep announcing to the owner, and to avoid a but with rental time > 15 days - sd->rental_timer = timer->add(timer->gettick() + min(next_tick,3600000), pc_inventory_rental_end, sd->bl.id, 0); + sd->rental_timer = timer->add(timer->gettick() + min(next_tick,3600000), pc->inventory_rental_end, sd->bl.id, 0); else sd->rental_timer = INVALID_TIMER; } @@ -530,11 +491,11 @@ void pc_inventory_rental_add(struct map_session_data *sd, int seconds) if( DIFF_TICK(td->tick, timer->gettick()) > tick ) { // Update Timer as this one ends first than the current one pc->inventory_rental_clear(sd); - sd->rental_timer = timer->add(timer->gettick() + tick, pc_inventory_rental_end, sd->bl.id, 0); + sd->rental_timer = timer->add(timer->gettick() + tick, pc->inventory_rental_end, sd->bl.id, 0); } } else - sd->rental_timer = timer->add(timer->gettick() + min(tick,3600000), pc_inventory_rental_end, sd->bl.id, 0); + sd->rental_timer = timer->add(timer->gettick() + min(tick,3600000), pc->inventory_rental_end, sd->bl.id, 0); } /** @@ -586,8 +547,8 @@ int pc_makesavestatus(struct map_session_data *sd) sd->status.last_point.y = sd->bl.y; } - if(maplist[sd->bl.m].flag.nosave || maplist[sd->bl.m].instance_id >= 0) { - struct map_data *m=&maplist[sd->bl.m]; + if(map->list[sd->bl.m].flag.nosave || map->list[sd->bl.m].instance_id >= 0) { + struct map_data *m=&map->list[sd->bl.m]; if(m->save.map) memcpy(&sd->status.last_point,&m->save,sizeof(sd->status.last_point)); else @@ -683,26 +644,26 @@ int pc_calcweapontype(struct map_session_data *sd) // dual-wield sd->status.weapon = 0; switch (sd->weapontype1){ - case W_DAGGER: - switch (sd->weapontype2) { - case W_DAGGER: sd->status.weapon = W_DOUBLE_DD; break; - case W_1HSWORD: sd->status.weapon = W_DOUBLE_DS; break; - case W_1HAXE: sd->status.weapon = W_DOUBLE_DA; break; - } - break; - case W_1HSWORD: - switch (sd->weapontype2) { - case W_DAGGER: sd->status.weapon = W_DOUBLE_DS; break; - case W_1HSWORD: sd->status.weapon = W_DOUBLE_SS; break; - case W_1HAXE: sd->status.weapon = W_DOUBLE_SA; break; - } - break; - case W_1HAXE: - switch (sd->weapontype2) { - case W_DAGGER: sd->status.weapon = W_DOUBLE_DA; break; - case W_1HSWORD: sd->status.weapon = W_DOUBLE_SA; break; - case W_1HAXE: sd->status.weapon = W_DOUBLE_AA; break; - } + case W_DAGGER: + switch (sd->weapontype2) { + case W_DAGGER: sd->status.weapon = W_DOUBLE_DD; break; + case W_1HSWORD: sd->status.weapon = W_DOUBLE_DS; break; + case W_1HAXE: sd->status.weapon = W_DOUBLE_DA; break; + } + break; + case W_1HSWORD: + switch (sd->weapontype2) { + case W_DAGGER: sd->status.weapon = W_DOUBLE_DS; break; + case W_1HSWORD: sd->status.weapon = W_DOUBLE_SS; break; + case W_1HAXE: sd->status.weapon = W_DOUBLE_SA; break; + } + break; + case W_1HAXE: + switch (sd->weapontype2) { + case W_DAGGER: sd->status.weapon = W_DOUBLE_DA; break; + case W_1HSWORD: sd->status.weapon = W_DOUBLE_SA; break; + case W_1HAXE: sd->status.weapon = W_DOUBLE_AA; break; + } } // unknown, default to right hand type if (!sd->status.weapon) @@ -725,7 +686,7 @@ int pc_setequipindex(struct map_session_data *sd) continue; if(sd->status.inventory[i].equip) { for(j=0;j<EQI_MAX;j++) - if(sd->status.inventory[i].equip & equip_pos[j]) + if(sd->status.inventory[i].equip & pc->equip_pos[j]) sd->equip_index[j] = i; if(sd->status.inventory[i].equip & EQP_HAND_R) @@ -745,7 +706,7 @@ int pc_setequipindex(struct map_session_data *sd) } } } - pc_calcweapontype(sd); + pc->calcweapontype(sd); return 0; } @@ -1205,7 +1166,7 @@ int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl) return 0; //Wrong size } sd->hate_mob[pos] = class_; - pc_setglobalreg(sd,sg_info[pos].hate_var,class_+1); + pc_setglobalreg(sd,pc->sg_info[pos].hate_var,class_+1); clif->hate_info(sd, pos, class_, 1); return 1; } @@ -1236,14 +1197,14 @@ int pc_reg_received(struct map_session_data *sd) //SG map and mob read [Komurka] for(i=0;i<MAX_PC_FEELHATE;i++) { //for now - someone need to make reading from txt/sql - if ((j = pc_readglobalreg(sd,sg_info[i].feel_var))!=0) { + if ((j = pc_readglobalreg(sd,pc->sg_info[i].feel_var))!=0) { sd->feel_map[i].index = j; sd->feel_map[i].m = map->mapindex2mapid(j); } else { sd->feel_map[i].index = 0; sd->feel_map[i].m = -1; } - sd->hate_mob[i] = pc_readglobalreg(sd,sg_info[i].hate_var)-1; + sd->hate_mob[i] = pc_readglobalreg(sd,pc->sg_info[i].hate_var)-1; } if ((i = pc->checkskill(sd,RG_PLAGIARISM)) > 0) { @@ -1312,9 +1273,9 @@ int pc_reg_received(struct map_session_data *sd) sd->vd.class_ = INVISIBLE_CLASS; clif->message(sd->fd, msg_txt(11)); // Invisible: On // decrement the number of pvp players on the map - maplist[sd->bl.m].users_pvp--; + map->list[sd->bl.m].users_pvp--; - if( maplist[sd->bl.m].flag.pvp && !maplist[sd->bl.m].flag.pvp_nocalcrank && sd->pvp_timer != INVALID_TIMER ) {// unregister the player for ranking + if( map->list[sd->bl.m].flag.pvp && !map->list[sd->bl.m].flag.pvp_nocalcrank && sd->pvp_timer != INVALID_TIMER ) {// unregister the player for ranking timer->delete( sd->pvp_timer, pc->calc_pvprank_timer ); sd->pvp_timer = INVALID_TIMER; } @@ -1447,8 +1408,8 @@ int pc_calc_skilltree(struct map_session_data *sd) do { flag = 0; - for( i = 0; i < MAX_SKILL_TREE && (id = skill_tree[c][i].id) > 0; i++ ) { - int f, idx = skill_tree[c][i].idx; + for( i = 0; i < MAX_SKILL_TREE && (id = pc->skill_tree[c][i].id) > 0; i++ ) { + int f, idx = pc->skill_tree[c][i].idx; if( sd->status.skill[idx].id ) continue; //Skill already known. @@ -1457,21 +1418,21 @@ int pc_calc_skilltree(struct map_session_data *sd) int j; for(j = 0; j < MAX_PC_SKILL_REQUIRE; j++) { int k; - if((k=skill_tree[c][i].need[j].id)) { - int idx2 = skill_tree[c][i].need[j].idx; + if((k=pc->skill_tree[c][i].need[j].id)) { + int idx2 = pc->skill_tree[c][i].need[j].idx; if (sd->status.skill[idx2].id == 0 || sd->status.skill[idx2].flag == SKILL_FLAG_TEMPORARY || sd->status.skill[idx2].flag == SKILL_FLAG_PLAGIARIZED) k = 0; //Not learned. else if (sd->status.skill[idx2].flag >= SKILL_FLAG_REPLACED_LV_0) //Real lerned level k = sd->status.skill[idx2].flag - SKILL_FLAG_REPLACED_LV_0; else k = pc->checkskill2(sd,idx2); - if (k < skill_tree[c][i].need[j].lv) { + if (k < pc->skill_tree[c][i].need[j].lv) { f = 0; break; } } } - if( sd->status.job_level < skill_tree[c][i].joblv ) + if( sd->status.job_level < pc->skill_tree[c][i].joblv ) f = 0; // job level requirement wasn't satisfied } if( f ) { @@ -1505,8 +1466,8 @@ int pc_calc_skilltree(struct map_session_data *sd) - (c > 0) to avoid grant Novice Skill Tree in case of Skill Reset (need more logic) - (sd->status.skill_point == 0) to wait until all skill points are asigned to avoid problems with Job Change quest. */ - for( i = 0; i < MAX_SKILL_TREE && (id = skill_tree[c][i].id) > 0; i++ ) { - int idx = skill_tree[c][i].idx; + for( i = 0; i < MAX_SKILL_TREE && (id = pc->skill_tree[c][i].id) > 0; i++ ) { + int idx = pc->skill_tree[c][i].idx; if( (skill->db[idx].inf2&(INF2_QUEST_SKILL|INF2_WEDDING_SKILL)) ) continue; //Do not include Quest/Wedding skills. @@ -1525,7 +1486,7 @@ int pc_calc_skilltree(struct map_session_data *sd) } //Checks if you can learn a new skill after having leveled up a skill. -static void pc_check_skilltree(struct map_session_data *sd, int skill_id) +void pc_check_skilltree(struct map_session_data *sd, int skill_id) { int i,id=0,flag; int c=0; @@ -1542,22 +1503,22 @@ static void pc_check_skilltree(struct map_session_data *sd, int skill_id) c = pc->class2idx(c); do { flag = 0; - for( i = 0; i < MAX_SKILL_TREE && (id=skill_tree[c][i].id)>0; i++ ) { - int j, f = 1, k, idx = skill_tree[c][i].idx; + for( i = 0; i < MAX_SKILL_TREE && (id=pc->skill_tree[c][i].id)>0; i++ ) { + int j, f = 1, k, idx = pc->skill_tree[c][i].idx; if( sd->status.skill[idx].id ) //Already learned continue; for( j = 0; j < MAX_PC_SKILL_REQUIRE; j++ ) { - if( (k = skill_tree[c][i].need[j].id) ) { - int idx2 = skill_tree[c][i].need[j].idx; + if( (k = pc->skill_tree[c][i].need[j].id) ) { + int idx2 = pc->skill_tree[c][i].need[j].idx; if( sd->status.skill[idx2].id == 0 || sd->status.skill[idx2].flag == SKILL_FLAG_TEMPORARY || sd->status.skill[idx2].flag == SKILL_FLAG_PLAGIARIZED ) k = 0; //Not learned. else if( sd->status.skill[idx2].flag >= SKILL_FLAG_REPLACED_LV_0) //Real lerned level k = sd->status.skill[idx2].flag - SKILL_FLAG_REPLACED_LV_0; else k = pc->checkskill2(sd,idx2); - if( k < skill_tree[c][i].need[j].lv ) { + if( k < pc->skill_tree[c][i].need[j].lv ) { f = 0; break; } @@ -1565,7 +1526,7 @@ static void pc_check_skilltree(struct map_session_data *sd, int skill_id) } if( !f ) continue; - if( sd->status.job_level < skill_tree[c][i].joblv ) + if( sd->status.job_level < pc->skill_tree[c][i].joblv ) continue; j = skill->db[idx].inf2; @@ -1612,7 +1573,7 @@ int pc_calc_skilltree_normalize_job(struct map_session_data *sd) skill_point = pc->calc_skillpoint(sd); - novice_skills = max_level[pc->class2idx(JOB_NOVICE)][1] - 1; + novice_skills = pc->max_level[pc->class2idx(JOB_NOVICE)][1] - 1; sd->sktree.second = sd->sktree.third = 0; @@ -1630,7 +1591,7 @@ int pc_calc_skilltree_normalize_job(struct map_session_data *sd) { // if neither 2nd nor 3rd jobchange levels are known, we have to assume a default for 2nd if (!sd->change_level_3rd) - sd->change_level_2nd = max_level[pc->class2idx(pc->mapid2jobid(sd->class_&MAPID_UPPERMASK, sd->status.sex))][1]; + sd->change_level_2nd = pc->max_level[pc->class2idx(pc->mapid2jobid(sd->class_&MAPID_UPPERMASK, sd->status.sex))][1]; else sd->change_level_2nd = 1 + skill_point + sd->status.skill_point - (sd->status.job_level - 1) @@ -1759,7 +1720,7 @@ int pc_disguise(struct map_session_data *sd, int class_) { return 1; } -static int pc_bonus_autospell(struct s_autospell *spell, int max, short id, short lv, short rate, short flag, short card_id) +int pc_bonus_autospell(struct s_autospell *spell, int max, short id, short lv, short rate, short flag, short card_id) { int i; @@ -1795,7 +1756,7 @@ static int pc_bonus_autospell(struct s_autospell *spell, int max, short id, shor return 1; } -static int pc_bonus_autospell_onskill(struct s_autospell *spell, int max, short src_skill, short id, short lv, short rate, short card_id) +int pc_bonus_autospell_onskill(struct s_autospell *spell, int max, short src_skill, short id, short lv, short rate, short card_id) { int i; @@ -1821,7 +1782,7 @@ static int pc_bonus_autospell_onskill(struct s_autospell *spell, int max, short return 1; } -static int pc_bonus_addeff(struct s_addeffect* effect, int max, enum sc_type id, short rate, short arrow_rate, unsigned char flag) +int pc_bonus_addeff(struct s_addeffect* effect, int max, enum sc_type id, short rate, short arrow_rate, unsigned char flag) { int i; if (!(flag&(ATF_SHORT|ATF_LONG))) @@ -1850,7 +1811,7 @@ static int pc_bonus_addeff(struct s_addeffect* effect, int max, enum sc_type id, return 1; } -static int pc_bonus_addeff_onskill(struct s_addeffectonskill* effect, int max, enum sc_type id, short rate, short skill_id, unsigned char target) { +int pc_bonus_addeff_onskill(struct s_addeffectonskill* effect, int max, enum sc_type id, short rate, short skill_id, unsigned char target) { int i; for( i = 0; i < max && effect[i].skill; i++ ) { if( effect[i].id == id && effect[i].skill == skill_id && effect[i].target == target ) { @@ -1869,7 +1830,7 @@ static int pc_bonus_addeff_onskill(struct s_addeffectonskill* effect, int max, e return 1; } -static int pc_bonus_item_drop(struct s_add_drop *drop, const short max, short id, short group, int race, int rate) { +int pc_bonus_item_drop(struct s_add_drop *drop, const short max, short id, short group, int race, int rate) { int i; //Apply config rate adjustment settings. @@ -2695,7 +2656,7 @@ int pc_bonus(struct map_session_data *sd,int type,int val) { #endif case SP_ADD_MONSTER_DROP_CHAINITEM: if (sd->state.lr_flag != 2) - pc_bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), 0, val, (1<<RC_BOSS)|(1<<RC_NONBOSS), 10000); + pc->bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), 0, val, (1<<RC_BOSS)|(1<<RC_NONBOSS), 10000); break; default: ShowWarning("pc_bonus: unknown type %d %d !\n",type,val); @@ -2759,7 +2720,7 @@ int pc_bonus2(struct map_session_data *sd,int type,int type2,int val) ShowWarning("pc_bonus2 (Add Effect): %d is not supported.\n", type2); break; } - pc_bonus_addeff(sd->addeff, ARRAYLENGTH(sd->addeff), (sc_type)type2, + pc->bonus_addeff(sd->addeff, ARRAYLENGTH(sd->addeff), (sc_type)type2, sd->state.lr_flag!=2?val:0, sd->state.lr_flag==2?val:0, 0); break; case SP_ADDEFF2: @@ -2767,7 +2728,7 @@ int pc_bonus2(struct map_session_data *sd,int type,int type2,int val) ShowWarning("pc_bonus2 (Add Effect2): %d is not supported.\n", type2); break; } - pc_bonus_addeff(sd->addeff, ARRAYLENGTH(sd->addeff), (sc_type)type2, + pc->bonus_addeff(sd->addeff, ARRAYLENGTH(sd->addeff), (sc_type)type2, sd->state.lr_flag!=2?val:0, sd->state.lr_flag==2?val:0, ATF_SELF); break; case SP_RESEFF: @@ -2978,7 +2939,7 @@ int pc_bonus2(struct map_session_data *sd,int type,int type2,int val) break; } if(sd->state.lr_flag != 2) - pc_bonus_addeff(sd->addeff2, ARRAYLENGTH(sd->addeff2), (sc_type)type2, val, 0, 0); + pc->bonus_addeff(sd->addeff2, ARRAYLENGTH(sd->addeff2), (sc_type)type2, val, 0, 0); break; case SP_SKILL_ATK: if(sd->state.lr_flag == 2) @@ -3148,7 +3109,7 @@ int pc_bonus2(struct map_session_data *sd,int type,int type2,int val) break; case SP_ADD_MONSTER_DROP_ITEM: if (sd->state.lr_flag != 2) - pc_bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), type2, 0, (1<<RC_BOSS)|(1<<RC_NONBOSS), val); + pc->bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), type2, 0, (1<<RC_BOSS)|(1<<RC_NONBOSS), val); break; case SP_SP_LOSS_RATE: if(sd->state.lr_flag != 2) { @@ -3292,7 +3253,7 @@ int pc_bonus2(struct map_session_data *sd,int type,int type2,int val) break; case SP_ADD_MONSTER_DROP_CHAINITEM: if (sd->state.lr_flag != 2) - pc_bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), 0, val, 1<<type2, 10000); + pc->bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), 0, val, 1<<type2, 10000); break; default: ShowWarning("pc_bonus2: unknown type %d %d %d!\n",type,type2,val); @@ -3308,18 +3269,18 @@ int pc_bonus3(struct map_session_data *sd,int type,int type2,int type3,int val) switch(type){ case SP_ADD_MONSTER_DROP_ITEM: if(sd->state.lr_flag != 2) - pc_bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), type2, 0, 1<<type3, val); + pc->bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), type2, 0, 1<<type3, val); break; case SP_ADD_CLASS_DROP_ITEM: if(sd->state.lr_flag != 2) - pc_bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), type2, 0, -type3, val); + pc->bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), type2, 0, -type3, val); break; case SP_AUTOSPELL: if(sd->state.lr_flag != 2) { int target = skill->get_inf(type2); //Support or Self (non-auto-target) skills should pick self. target = target&INF_SUPPORT_SKILL || (target&INF_SELF_SKILL && !(skill->get_inf2(type2)&INF2_NO_TARGET_SELF)); - pc_bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell), + pc->bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell), target?-type2:type2, type3, val, 0, status->current_equip_card_id); } break; @@ -3328,7 +3289,7 @@ int pc_bonus3(struct map_session_data *sd,int type,int type2,int type3,int val) { int target = skill->get_inf(type2); //Support or Self (non-auto-target) skills should pick self. target = target&INF_SUPPORT_SKILL || (target&INF_SELF_SKILL && !(skill->get_inf2(type2)&INF2_NO_TARGET_SELF)); - pc_bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2), + pc->bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2), target?-type2:type2, type3, val, BF_NORMAL|BF_SKILL, status->current_equip_card_id); } break; @@ -3376,7 +3337,7 @@ int pc_bonus3(struct map_session_data *sd,int type,int type2,int type3,int val) ShowWarning("pc_bonus3 (Add Effect): %d is not supported.\n", type2); break; } - pc_bonus_addeff(sd->addeff, ARRAYLENGTH(sd->addeff), (sc_type)type2, + pc->bonus_addeff(sd->addeff, ARRAYLENGTH(sd->addeff), (sc_type)type2, sd->state.lr_flag!=2?type3:0, sd->state.lr_flag==2?type3:0, val); break; @@ -3386,7 +3347,7 @@ int pc_bonus3(struct map_session_data *sd,int type,int type2,int type3,int val) break; } if(sd->state.lr_flag != 2) - pc_bonus_addeff(sd->addeff2, ARRAYLENGTH(sd->addeff2), (sc_type)type2, type3, 0, val); + pc->bonus_addeff(sd->addeff2, ARRAYLENGTH(sd->addeff2), (sc_type)type2, type3, 0, val); break; case SP_ADDEFF_ONSKILL: @@ -3395,7 +3356,7 @@ int pc_bonus3(struct map_session_data *sd,int type,int type2,int type3,int val) break; } if( sd->state.lr_flag != 2 ) - pc_bonus_addeff_onskill(sd->addeff3, ARRAYLENGTH(sd->addeff3), (sc_type)type3, val, type2, ATF_TARGET); + pc->bonus_addeff_onskill(sd->addeff3, ARRAYLENGTH(sd->addeff3), (sc_type)type3, val, type2, ATF_TARGET); break; case SP_ADDELE: @@ -3430,12 +3391,12 @@ int pc_bonus4(struct map_session_data *sd,int type,int type2,int type3,int type4 switch(type) { case SP_AUTOSPELL: if(sd->state.lr_flag != 2) - pc_bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell), (val&1?type2:-type2), (val&2?-type3:type3), type4, 0, status->current_equip_card_id); + pc->bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell), (val&1?type2:-type2), (val&2?-type3:type3), type4, 0, status->current_equip_card_id); break; case SP_AUTOSPELL_WHENHIT: if(sd->state.lr_flag != 2) - pc_bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2), (val&1?type2:-type2), (val&2?-type3:type3), type4, BF_NORMAL|BF_SKILL, status->current_equip_card_id); + pc->bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2), (val&1?type2:-type2), (val&2?-type3:type3), type4, BF_NORMAL|BF_SKILL, status->current_equip_card_id); break; case SP_AUTOSPELL_ONSKILL: @@ -3443,7 +3404,7 @@ int pc_bonus4(struct map_session_data *sd,int type,int type2,int type3,int type4 int target = skill->get_inf(type2); //Support or Self (non-auto-target) skills should pick self. target = target&INF_SUPPORT_SKILL || (target&INF_SELF_SKILL && !(skill->get_inf2(type2)&INF2_NO_TARGET_SELF)); - pc_bonus_autospell_onskill(sd->autospell3, ARRAYLENGTH(sd->autospell3), type2, target?-type3:type3, type4, val, status->current_equip_card_id); + pc->bonus_autospell_onskill(sd->autospell3, ARRAYLENGTH(sd->autospell3), type2, target?-type3:type3, type4, val, status->current_equip_card_id); } break; @@ -3453,7 +3414,7 @@ int pc_bonus4(struct map_session_data *sd,int type,int type2,int type3,int type4 break; } if( sd->state.lr_flag != 2 ) - pc_bonus_addeff_onskill(sd->addeff3, ARRAYLENGTH(sd->addeff3), (sc_type)type3, type4, type2, val); + pc->bonus_addeff_onskill(sd->addeff3, ARRAYLENGTH(sd->addeff3), (sc_type)type3, type4, type2, val); break; default: @@ -3470,17 +3431,17 @@ int pc_bonus5(struct map_session_data *sd,int type,int type2,int type3,int type4 switch(type){ case SP_AUTOSPELL: if(sd->state.lr_flag != 2) - pc_bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell), (val&1?type2:-type2), (val&2?-type3:type3), type4, type5, status->current_equip_card_id); + pc->bonus_autospell(sd->autospell, ARRAYLENGTH(sd->autospell), (val&1?type2:-type2), (val&2?-type3:type3), type4, type5, status->current_equip_card_id); break; case SP_AUTOSPELL_WHENHIT: if(sd->state.lr_flag != 2) - pc_bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2), (val&1?type2:-type2), (val&2?-type3:type3), type4, type5, status->current_equip_card_id); + pc->bonus_autospell(sd->autospell2, ARRAYLENGTH(sd->autospell2), (val&1?type2:-type2), (val&2?-type3:type3), type4, type5, status->current_equip_card_id); break; case SP_AUTOSPELL_ONSKILL: if(sd->state.lr_flag != 2) - pc_bonus_autospell_onskill(sd->autospell3, ARRAYLENGTH(sd->autospell3), type2, (val&1?-type3:type3), (val&2?-type4:type4), type5, status->current_equip_card_id); + pc->bonus_autospell_onskill(sd->autospell3, ARRAYLENGTH(sd->autospell3), type2, (val&1?-type3:type3), (val&2?-type4:type4), type5, status->current_equip_card_id); break; default: @@ -4037,7 +3998,7 @@ int pc_dropitem(struct map_session_data *sd,int n,int amount) ) return 0; - if( maplist[sd->bl.m].flag.nodrop ) { + if( map->list[sd->bl.m].flag.nodrop ) { clif->message (sd->fd, msg_txt(271)); return 0; //Can't drop items in nodrop mapflag maps. } @@ -4165,7 +4126,7 @@ int pc_isUseitem(struct map_session_data *sd,int n) break; case 601: // Fly Wing case 12212: // Giant Fly Wing - if( maplist[sd->bl.m].flag.noteleport || map_flag_gvg2(sd->bl.m) ) { + if( map->list[sd->bl.m].flag.noteleport || map_flag_gvg2(sd->bl.m) ) { clif->skill_mapinfomessage(sd,0); return 0; } @@ -4182,14 +4143,14 @@ int pc_isUseitem(struct map_session_data *sd,int n) clif->message(sd->fd, msg_txt(663)); return 0; } - if( nameid != 601 && nameid != 12212 && maplist[sd->bl.m].flag.noreturn ) + if( nameid != 601 && nameid != 12212 && map->list[sd->bl.m].flag.noreturn ) return 0; break; case 604: // Dead Branch case 12024: // Red Pouch case 12103: // Bloody Branch case 12109: // Poring Box - if( maplist[sd->bl.m].flag.nobranch || map_flag_gvg2(sd->bl.m) ) + if( map->list[sd->bl.m].flag.nobranch || map_flag_gvg2(sd->bl.m) ) return 0; break; case 12210: // Bubble Gum @@ -4230,7 +4191,7 @@ int pc_isUseitem(struct map_session_data *sd,int n) break; case 12213: //Neuralizer - if( !maplist[sd->bl.m].flag.reset ) + if( !map->list[sd->bl.m].flag.reset ) return 0; break; } @@ -4332,7 +4293,7 @@ int pc_useitem(struct map_session_data *sd,int n) { if( sd->status.inventory[n].nameid <= 0 || sd->status.inventory[n].amount <= 0 ) return 0; - if( !pc_isUseitem(sd,n) ) + if( !pc->isUseitem(sd,n) ) return 0; // Store information for later use before it is lost (via pc->delitem) [Paradox924X] @@ -4404,8 +4365,8 @@ int pc_useitem(struct map_session_data *sd,int n) { } /* on restricted maps the item is consumed but the effect is not used */ - for(i = 0; i < maplist[sd->bl.m].zone->disabled_items_count; i++) { - if( maplist[sd->bl.m].zone->disabled_items[i] == nameid ) { + for(i = 0; i < map->list[sd->bl.m].zone->disabled_items_count; i++) { + if( map->list[sd->bl.m].zone->disabled_items[i] == nameid ) { clif->msg(sd, ITEM_CANT_USE_AREA); // This item cannot be used within this area if( battle_config.item_restricted_consumption_type ) { clif->useitemack(sd,n,sd->status.inventory[n].amount-1,true); @@ -4675,7 +4636,7 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl, uint16 skil md_status= status->get_status_data(bl); if( md->master_id || md_status->mode&MD_BOSS || mob_is_treasure(md) || - maplist[bl->m].flag.nomobloot || // check noloot map flag [Lorky] + map->list[bl->m].flag.nomobloot || // check noloot map flag [Lorky] (battle_config.skill_steal_max_tries && //Reached limit of steal attempts. [Lupus] md->state.steal_flag++ >= battle_config.skill_steal_max_tries) ) { //Can't steal from @@ -4714,7 +4675,7 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl, uint16 skil } if(battle_config.show_steal_in_same_party) - party_foreachsamemap(pc_show_steal,sd,AREA_SIZE,sd,tmp_item.nameid); + party->foreachsamemap(pc->show_steal,sd,AREA_SIZE,sd,tmp_item.nameid); //Logs items, Stolen from mobs [Lupus] logs->pick_mob(md, LOG_TYPE_STEAL, -1, &tmp_item, data); @@ -4783,7 +4744,7 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y pc->setrestartvalue(sd,1); } - if( maplist[m].flag.src4instance ) { + if( map->list[m].flag.src4instance ) { struct party_data *p; bool stop = false; int i = 0, j = 0; @@ -4791,13 +4752,13 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y if( sd->instances ) { for( i = 0; i < sd->instances; i++ ) { if( sd->instance[i] >= 0 ) { - ARR_FIND(0, instances[sd->instance[i]].num_map, j, maplist[instances[sd->instance[i]].map[j]].instance_src_map == m && !maplist[instances[sd->instance[i]].map[j]].custom_name); - if( j != instances[sd->instance[i]].num_map ) + ARR_FIND(0, instance->list[sd->instance[i]].num_map, j, map->list[instance->list[sd->instance[i]].map[j]].instance_src_map == m && !map->list[instance->list[sd->instance[i]].map[j]].custom_name); + if( j != instance->list[sd->instance[i]].num_map ) break; } } if( i != sd->instances ) { - m = instances[sd->instance[i]].map[j]; + m = instance->list[sd->instance[i]].map[j]; mapindex = map_id2index(m); stop = true; } @@ -4805,13 +4766,13 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y if ( !stop && sd->status.party_id && (p = party->search(sd->status.party_id)) && p->instances ) { for( i = 0; i < p->instances; i++ ) { if( p->instance[i] >= 0 ) { - ARR_FIND(0, instances[p->instance[i]].num_map, j, maplist[instances[p->instance[i]].map[j]].instance_src_map == m && !maplist[instances[p->instance[i]].map[j]].custom_name); - if( j != instances[p->instance[i]].num_map ) + ARR_FIND(0, instance->list[p->instance[i]].num_map, j, map->list[instance->list[p->instance[i]].map[j]].instance_src_map == m && !map->list[instance->list[p->instance[i]].map[j]].custom_name); + if( j != instance->list[p->instance[i]].num_map ) break; } } if( i != p->instances ) { - m = instances[p->instance[i]].map[j]; + m = instance->list[p->instance[i]].map[j]; mapindex = map_id2index(m); stop = true; } @@ -4819,13 +4780,13 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y if ( !stop && sd->status.guild_id && sd->guild && sd->guild->instances ) { for( i = 0; i < sd->guild->instances; i++ ) { if( sd->guild->instance[i] >= 0 ) { - ARR_FIND(0, instances[sd->guild->instance[i]].num_map, j, maplist[instances[sd->guild->instance[i]].map[j]].instance_src_map == m && !maplist[instances[sd->guild->instance[i]].map[j]].custom_name); - if( j != instances[sd->guild->instance[i]].num_map ) + ARR_FIND(0, instance->list[sd->guild->instance[i]].num_map, j, map->list[instance->list[sd->guild->instance[i]].map[j]].instance_src_map == m && !map->list[instance->list[sd->guild->instance[i]].map[j]].custom_name); + if( j != instance->list[sd->guild->instance[i]].num_map ) break; } } if( i != sd->guild->instances ) { - m = instances[sd->guild->instance[i]].map[j]; + m = instance->list[sd->guild->instance[i]].map[j]; mapindex = map_id2index(m); stop = true; } @@ -4842,13 +4803,13 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y for( i = 0; i < sd->queues_count; i++ ) { struct hQueue *queue; if( (queue = script->queue(sd->queues[i])) && queue->onMapChange[0] != '\0' ) { - pc->setregstr(sd, script->add_str("QMapChangeTo"), maplist[m].name); + pc->setregstr(sd, script->add_str("QMapChangeTo"), map->list[m].name); npc->event(sd, queue->onMapChange, 0); } } - if( maplist[m].cell == (struct mapcell *)0xdeadbeaf ) - map->cellfromcache(&maplist[m]); + if( map->list[m].cell == (struct mapcell *)0xdeadbeaf ) + map->cellfromcache(&map->list[m]); if (sd->sc.count) { // Cancel some map related stuff. if (sd->sc.data[SC_JAILED]) return 1; //You may not get out! @@ -4881,13 +4842,13 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y if (sd->regen.state.gc) sd->regen.state.gc = 0; // make sure vending is allowed here - if (sd->state.vending && maplist[m].flag.novending) { + if (sd->state.vending && map->list[m].flag.novending) { clif->message (sd->fd, msg_txt(276)); // "You can't open a shop on this map" vending->close(sd); } - if( hChSys.local && maplist[sd->bl.m].channel && idb_exists(maplist[sd->bl.m].channel->users, sd->status.char_id) ) { - clif->chsys_left(maplist[sd->bl.m].channel,sd); + if( hChSys.local && map->list[sd->bl.m].channel && idb_exists(map->list[sd->bl.m].channel->users, sd->status.char_id) ) { + clif->chsys_left(map->list[sd->bl.m].channel,sd); } } @@ -4916,15 +4877,15 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y return 0; } - if( x < 0 || x >= maplist[m].xs || y < 0 || y >= maplist[m].ys ) { + if( x < 0 || x >= map->list[m].xs || y < 0 || y >= map->list[m].ys ) { ShowError("pc_setpos: attempt to place player %s (%d:%d) on invalid coordinates (%s-%d,%d)\n", sd->status.name, sd->status.account_id, sd->status.char_id, mapindex_id2name(mapindex),x,y); x = y = 0; // make it random } if( x == 0 && y == 0 ) {// pick a random walkable cell do { - x=rnd()%(maplist[m].xs-2)+1; - y=rnd()%(maplist[m].ys-2)+1; + x=rnd()%(map->list[m].xs-2)+1; + y=rnd()%(map->list[m].ys-2)+1; } while(map->getcell(m,x,y,CELL_CHKNOPASS)); } @@ -4945,7 +4906,7 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y sd->bl.x = sd->ud.to_x = x; sd->bl.y = sd->ud.to_y = y; - if( sd->status.guild_id > 0 && maplist[m].flag.gvg_castle ) { // Increased guild castle regen [Valaris] + if( sd->status.guild_id > 0 && map->list[m].flag.gvg_castle ) { // Increased guild castle regen [Valaris] struct guild_castle *gc = guild->mapindex2gc(sd->mapindex); if(gc && gc->guild_id == sd->status.guild_id) sd->regen.state.gc = 1; @@ -4990,12 +4951,12 @@ int pc_randomwarp(struct map_session_data *sd, clr_type type) { m=sd->bl.m; - if (maplist[sd->bl.m].flag.noteleport) //Teleport forbidden + if (map->list[sd->bl.m].flag.noteleport) //Teleport forbidden return 0; do { - x=rnd()%(maplist[m].xs-2)+1; - y=rnd()%(maplist[m].ys-2)+1; + x=rnd()%(map->list[m].xs-2)+1; + y=rnd()%(map->list[m].ys-2)+1; } while( map->getcell(m,x,y,CELL_CHKNOPASS) && (i++) < 1000 ); if (i < 1000) @@ -5014,7 +4975,7 @@ int pc_memo(struct map_session_data* sd, int pos) { nullpo_ret(sd); // check mapflags - if( sd->bl.m >= 0 && (maplist[sd->bl.m].flag.nomemo || maplist[sd->bl.m].flag.nowarpto) && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE) ) { + if( sd->bl.m >= 0 && (map->list[sd->bl.m].flag.nomemo || map->list[sd->bl.m].flag.nowarpto) && !pc->has_permission(sd, PC_PERM_WARP_ANYWHERE) ) { clif->skill_mapinfomessage(sd, 1); // "Saved point cannot be memorized." return 0; } @@ -5166,7 +5127,7 @@ int pc_checkequip(struct map_session_data *sd,int pos) nullpo_retr(-1, sd); for(i=0;i<EQI_MAX;i++){ - if(pos & equip_pos[i]) + if(pos & pc->equip_pos[i]) return sd->equip_index[i]; } @@ -5207,6 +5168,7 @@ int pc_jobid2mapid(unsigned short b_class) case JOB_STAR_GLADIATOR: return MAPID_STAR_GLADIATOR; case JOB_KAGEROU: case JOB_OBORO: return MAPID_KAGEROUOBORO; + case JOB_REBELLION: return MAPID_REBELLION; case JOB_DEATH_KNIGHT: return MAPID_DEATH_KNIGHT; //2-2 Jobs case JOB_CRUSADER: return MAPID_CRUSADER; @@ -5347,6 +5309,7 @@ int pc_mapid2jobid(unsigned short class_, int sex) case MAPID_ASSASSIN: return JOB_ASSASSIN; case MAPID_STAR_GLADIATOR: return JOB_STAR_GLADIATOR; case MAPID_KAGEROUOBORO: return sex?JOB_KAGEROU:JOB_OBORO; + case MAPID_REBELLION: return JOB_REBELLION; case MAPID_DEATH_KNIGHT: return JOB_DEATH_KNIGHT; //2-2 Jobs case MAPID_CRUSADER: return JOB_CRUSADER; @@ -5663,6 +5626,8 @@ const char* job_name(int class_) case JOB_KAGEROU: case JOB_OBORO: return msg_txt(653 - JOB_KAGEROU+class_); + case JOB_REBELLION: + return msg_txt(694); default: return msg_txt(655); @@ -5703,7 +5668,7 @@ int pc_follow_timer(int tid, unsigned int tick, int id, intptr_t data) { } sd->followtimer = timer->add( tick + 1000, // increase time a bit to loosen up map's load - pc_follow_timer, sd->bl.id, 0); + pc->follow_timer, sd->bl.id, 0); return 0; } @@ -5712,7 +5677,7 @@ int pc_stop_following (struct map_session_data *sd) nullpo_ret(sd); if (sd->followtimer != INVALID_TIMER) { - timer->delete(sd->followtimer,pc_follow_timer); + timer->delete(sd->followtimer,pc->follow_timer); sd->followtimer = INVALID_TIMER; } sd->followtarget = -1; @@ -5731,7 +5696,7 @@ int pc_follow(struct map_session_data *sd,int target_id) { pc->stop_following(sd); sd->followtarget = target_id; - pc_follow_timer(INVALID_TIMER, timer->gettick(), sd->bl.id, 0); + pc->follow_timer(INVALID_TIMER, timer->gettick(), sd->bl.id, 0); return 0; } @@ -5833,7 +5798,7 @@ int pc_checkjoblevelup(struct map_session_data *sd) /*========================================== * Alters experienced based on self bonuses that do not get even shared to the party. *------------------------------------------*/ -static void pc_calcexp(struct map_session_data *sd, unsigned int *base_exp, unsigned int *job_exp, struct block_list *src) { +void pc_calcexp(struct map_session_data *sd, unsigned int *base_exp, unsigned int *job_exp, struct block_list *src) { int bonus = 0; struct status_data *st = status->get_status_data(src); @@ -5868,13 +5833,13 @@ int pc_gainexp(struct map_session_data *sd, struct block_list *src, unsigned int if(sd->bl.prev == NULL || pc_isdead(sd)) return 0; - if(!battle_config.pvp_exp && maplist[sd->bl.m].flag.pvp) // [MouseJstr] + if(!battle_config.pvp_exp && map->list[sd->bl.m].flag.pvp) // [MouseJstr] return 0; // no exp on pvp maps if(sd->status.guild_id>0) base_exp-=guild->payexp(sd,base_exp); - if(src) pc_calcexp(sd, &base_exp, &job_exp, src); + if(src) pc->calcexp(sd, &base_exp, &job_exp, src); nextb = pc->nextbaseexp(sd); nextj = pc->nextjobexp(sd); @@ -5944,12 +5909,12 @@ int pc_gainexp(struct map_session_data *sd, struct block_list *src, unsigned int *------------------------------------------*/ unsigned int pc_maxbaselv(struct map_session_data *sd) { - return max_level[pc->class2idx(sd->status.class_)][0]; + return pc->max_level[pc->class2idx(sd->status.class_)][0]; } unsigned int pc_maxjoblv(struct map_session_data *sd) { - return max_level[pc->class2idx(sd->status.class_)][1]; + return pc->max_level[pc->class2idx(sd->status.class_)][1]; } /*========================================== @@ -5964,7 +5929,7 @@ unsigned int pc_nextbaseexp(struct map_session_data *sd) if(sd->status.base_level>=pc->maxbaselv(sd) || sd->status.base_level<=0) return 0; - return exp_table[pc->class2idx(sd->status.class_)][0][sd->status.base_level-1]; + return pc->exp_table[pc->class2idx(sd->status.class_)][0][sd->status.base_level-1]; } //Base exp needed for this level. @@ -5973,7 +5938,7 @@ unsigned int pc_thisbaseexp(struct map_session_data *sd) if(sd->status.base_level>pc->maxbaselv(sd) || sd->status.base_level<=1) return 0; - return exp_table[pc->class2idx(sd->status.class_)][0][sd->status.base_level-2]; + return pc->exp_table[pc->class2idx(sd->status.class_)][0][sd->status.base_level-2]; } @@ -5991,7 +5956,7 @@ unsigned int pc_nextjobexp(struct map_session_data *sd) if(sd->status.job_level>=pc->maxjoblv(sd) || sd->status.job_level<=0) return 0; - return exp_table[pc->class2idx(sd->status.class_)][1][sd->status.job_level-1]; + return pc->exp_table[pc->class2idx(sd->status.class_)][1][sd->status.job_level-1]; } //Job exp needed for this level. @@ -5999,41 +5964,41 @@ unsigned int pc_thisjobexp(struct map_session_data *sd) { if(sd->status.job_level>pc->maxjoblv(sd) || sd->status.job_level<=1) return 0; - return exp_table[pc->class2idx(sd->status.class_)][1][sd->status.job_level-2]; + return pc->exp_table[pc->class2idx(sd->status.class_)][1][sd->status.job_level-2]; } /// Returns the value of the specified stat. -static int pc_getstat(struct map_session_data* sd, int type) +int pc_getstat(struct map_session_data* sd, int type) { nullpo_retr(-1, sd); switch( type ) { - case SP_STR: return sd->status.str; - case SP_AGI: return sd->status.agi; - case SP_VIT: return sd->status.vit; - case SP_INT: return sd->status.int_; - case SP_DEX: return sd->status.dex; - case SP_LUK: return sd->status.luk; - default: - return -1; + case SP_STR: return sd->status.str; + case SP_AGI: return sd->status.agi; + case SP_VIT: return sd->status.vit; + case SP_INT: return sd->status.int_; + case SP_DEX: return sd->status.dex; + case SP_LUK: return sd->status.luk; + default: + return -1; } } /// Sets the specified stat to the specified value. /// Returns the new value. -static int pc_setstat(struct map_session_data* sd, int type, int val) +int pc_setstat(struct map_session_data* sd, int type, int val) { nullpo_retr(-1, sd); switch( type ) { - case SP_STR: sd->status.str = val; break; - case SP_AGI: sd->status.agi = val; break; - case SP_VIT: sd->status.vit = val; break; - case SP_INT: sd->status.int_ = val; break; - case SP_DEX: sd->status.dex = val; break; - case SP_LUK: sd->status.luk = val; break; - default: - return -1; + case SP_STR: sd->status.str = val; break; + case SP_AGI: sd->status.agi = val; break; + case SP_VIT: sd->status.vit = val; break; + case SP_INT: sd->status.int_ = val; break; + case SP_DEX: sd->status.dex = val; break; + case SP_LUK: sd->status.luk = val; break; + default: + return -1; } return val; @@ -6043,7 +6008,7 @@ static int pc_setstat(struct map_session_data* sd, int type, int val) int pc_gets_status_point(int level) { if (battle_config.use_statpoint_table) //Use values from "db/statpoint.txt" - return (statp[level+1] - statp[level]); + return (pc->statp[level+1] - pc->statp[level]); else //Default increase return ((level+15) / 5); } @@ -6058,7 +6023,7 @@ int pc_need_status_point(struct map_session_data* sd, int type, int val) if ( val == 0 ) return 0; - low = pc_getstat(sd,type); + low = pc->getstat(sd,type); if ( low >= pc_maxparameter(sd) && val > 0 ) return 0; // Official servers show '0' when max is reached @@ -6099,14 +6064,14 @@ int pc_statusup(struct map_session_data* sd, int type) // check limits max = pc_maxparameter(sd); - if( pc_getstat(sd,type) >= max ) + if( pc->getstat(sd,type) >= max ) { clif->statusupack(sd,type,0,0); return 1; } // set new values - val = pc_setstat(sd, type, pc_getstat(sd,type) + 1); + val = pc->setstat(sd, type, pc->getstat(sd,type) + 1); sd->status.status_point -= need; status_calc_pc(sd,0); @@ -6147,7 +6112,7 @@ int pc_statusup2(struct map_session_data* sd, int type, int val) // set new value max = pc_maxparameter(sd); - val = pc_setstat(sd, type, cap_value(pc_getstat(sd,type) + val, 1, max)); + val = pc->setstat(sd, type, cap_value(pc->getstat(sd,type) + val, 1, max)); status_calc_pc(sd,0); @@ -6196,7 +6161,7 @@ int pc_skillup(struct map_session_data *sd,uint16 skill_id) { else if( sd->status.skill_point == 0 && (sd->class_&MAPID_UPPERMASK) == MAPID_TAEKWON && sd->status.base_level >= 90 && pc->famerank(sd->status.char_id, MAPID_TAEKWON) ) pc->calc_skilltree(sd); // Required to grant all TK Ranger skills. else - pc_check_skilltree(sd, skill_id); // Check if a new skill can Lvlup + pc->check_skilltree(sd, skill_id); // Check if a new skill can Lvlup clif->skillup(sd,skill_id); clif->updatestatus(sd,SP_SKILLPOINT); @@ -6251,8 +6216,8 @@ int pc_allskillup(struct map_session_data *sd) } } else { int inf2; - for(i=0;i < MAX_SKILL_TREE && (id=skill_tree[pc->class2idx(sd->status.class_)][i].id)>0;i++){ - int idx = skill_tree[pc->class2idx(sd->status.class_)][i].idx; + for(i=0;i < MAX_SKILL_TREE && (id=pc->skill_tree[pc->class2idx(sd->status.class_)][i].id)>0;i++){ + int idx = pc->skill_tree[pc->class2idx(sd->status.class_)][i].idx; inf2 = skill->db[idx].inf2; if ( (inf2&INF2_QUEST_SKILL && !battle_config.quest_skill_learn) || @@ -6370,33 +6335,33 @@ int pc_resetstate(struct map_session_data* sd) if (battle_config.use_statpoint_table) { // New statpoint table used here - Dexity if (sd->status.base_level > MAX_LEVEL) - { //statp[] goes out of bounds, can't reset! + { //pc->statp[] goes out of bounds, can't reset! ShowError("pc_resetstate: Can't reset stats of %d:%d, the base level (%d) is greater than the max level supported (%d)\n", sd->status.account_id, sd->status.char_id, sd->status.base_level, MAX_LEVEL); return 0; } - sd->status.status_point = statp[sd->status.base_level] + ( sd->class_&JOBL_UPPER ? 52 : 0 ); // extra 52+48=100 stat points + sd->status.status_point = pc->statp[sd->status.base_level] + ( sd->class_&JOBL_UPPER ? 52 : 0 ); // extra 52+48=100 stat points } else { int add=0; - add += pc->need_status_point(sd, SP_STR, 1-pc_getstat(sd, SP_STR)); - add += pc->need_status_point(sd, SP_AGI, 1-pc_getstat(sd, SP_AGI)); - add += pc->need_status_point(sd, SP_VIT, 1-pc_getstat(sd, SP_VIT)); - add += pc->need_status_point(sd, SP_INT, 1-pc_getstat(sd, SP_INT)); - add += pc->need_status_point(sd, SP_DEX, 1-pc_getstat(sd, SP_DEX)); - add += pc->need_status_point(sd, SP_LUK, 1-pc_getstat(sd, SP_LUK)); + add += pc->need_status_point(sd, SP_STR, 1-pc->getstat(sd, SP_STR)); + add += pc->need_status_point(sd, SP_AGI, 1-pc->getstat(sd, SP_AGI)); + add += pc->need_status_point(sd, SP_VIT, 1-pc->getstat(sd, SP_VIT)); + add += pc->need_status_point(sd, SP_INT, 1-pc->getstat(sd, SP_INT)); + add += pc->need_status_point(sd, SP_DEX, 1-pc->getstat(sd, SP_DEX)); + add += pc->need_status_point(sd, SP_LUK, 1-pc->getstat(sd, SP_LUK)); sd->status.status_point+=add; } - pc_setstat(sd, SP_STR, 1); - pc_setstat(sd, SP_AGI, 1); - pc_setstat(sd, SP_VIT, 1); - pc_setstat(sd, SP_INT, 1); - pc_setstat(sd, SP_DEX, 1); - pc_setstat(sd, SP_LUK, 1); + pc->setstat(sd, SP_STR, 1); + pc->setstat(sd, SP_AGI, 1); + pc->setstat(sd, SP_VIT, 1); + pc->setstat(sd, SP_INT, 1); + pc->setstat(sd, SP_DEX, 1); + pc->setstat(sd, SP_LUK, 1); clif->updatestatus(sd,SP_STR); clif->updatestatus(sd,SP_AGI); @@ -6549,7 +6514,7 @@ int pc_resetfeel(struct map_session_data* sd) { sd->feel_map[i].m = -1; sd->feel_map[i].index = 0; - pc_setglobalreg(sd,sg_info[i].feel_var,0); + pc_setglobalreg(sd,pc->sg_info[i].feel_var,0); } return 0; @@ -6563,7 +6528,7 @@ int pc_resethate(struct map_session_data* sd) for (i=0; i<3; i++) { sd->hate_mob[i] = -1; - pc_setglobalreg(sd,sg_info[i].hate_var,0); + pc_setglobalreg(sd,pc->sg_info[i].hate_var,0); } return 0; } @@ -6627,7 +6592,7 @@ void pc_respawn(struct map_session_data* sd, clr_type clrtype) clif->resurrection(&sd->bl, 1); //If warping fails, send a normal stand up packet. } -static int pc_respawn_timer(int tid, unsigned int tick, int id, intptr_t data) { +int pc_respawn_timer(int tid, unsigned int tick, int id, intptr_t data) { struct map_session_data *sd = map->id2sd(id); if( sd != NULL ) { @@ -6686,7 +6651,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) { if(sd->status.pet_id > 0 && sd->pd) { struct pet_data *pd = sd->pd; - if( !maplist[sd->bl.m].flag.noexppenalty ) { + if( !map->list[sd->bl.m].flag.noexppenalty ) { pet->set_intimate(pd, pd->pet.intimate - pd->petDB->die); if( pd->pet.intimate < 0 ) pd->pet.intimate = 0; @@ -6844,7 +6809,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) { } if( battle_config.bone_drop==2 - || (battle_config.bone_drop==1 && maplist[sd->bl.m].flag.pvp) + || (battle_config.bone_drop==1 && map->list[sd->bl.m].flag.pvp) ) { struct item item_tmp; memset(&item_tmp,0,sizeof(item_tmp)); @@ -6870,7 +6835,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) { pc->setinvincibletimer(sd, battle_config.pc_invincible_time); sc_start(&sd->bl,status->skill2sc(MO_STEELBODY),100,1,skill->get_time(MO_STEELBODY,1)); if(map_flag_gvg2(sd->bl.m)) - pc_respawn_timer(INVALID_TIMER, timer->gettick(), sd->bl.id, 0); + pc->respawn_timer(INVALID_TIMER, timer->gettick(), sd->bl.id, 0); return 0; } } @@ -6878,7 +6843,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) { // changed penalty options, added death by player if pk_mode [Valaris] if( battle_config.death_penalty_type && (sd->class_&MAPID_UPPERMASK) != MAPID_NOVICE // only novices will receive no penalty - && !maplist[sd->bl.m].flag.noexppenalty && !map_flag_gvg2(sd->bl.m) + && !map->list[sd->bl.m].flag.noexppenalty && !map_flag_gvg2(sd->bl.m) && !sd->sc.data[SC_BABY] && !sd->sc.data[SC_CASH_DEATHPENALTY] ) { unsigned int base_penalty =0; @@ -6916,7 +6881,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) { clif->updatestatus(sd,SP_JOBEXP); } } - if(battle_config.zeny_penalty > 0 && !maplist[sd->bl.m].flag.nozenypenalty) + if(battle_config.zeny_penalty > 0 && !map->list[sd->bl.m].flag.nozenypenalty) { base_penalty = (unsigned int)((double)sd->status.zeny * (double)battle_config.zeny_penalty / 10000.); if(base_penalty) @@ -6924,12 +6889,12 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) { } } - if(maplist[sd->bl.m].flag.pvp_nightmaredrop) { + if(map->list[sd->bl.m].flag.pvp_nightmaredrop) { // Moved this outside so it works when PVP isn't enabled and during pk mode [Ancyker] - for(j=0;j<maplist[sd->bl.m].drop_list_count;j++){ - int id = maplist[sd->bl.m].drop_list[j].drop_id; - int type = maplist[sd->bl.m].drop_list[j].drop_type; - int per = maplist[sd->bl.m].drop_list[j].drop_per; + for(j=0;j<map->list[sd->bl.m].drop_list_count;j++){ + int id = map->list[sd->bl.m].drop_list[j].drop_id; + int type = map->list[sd->bl.m].drop_list[j].drop_type; + int per = map->list[sd->bl.m].drop_list[j].drop_per; if(id == 0) continue; if(id == -1){ @@ -6975,7 +6940,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) { } // pvp // disable certain pvp functions on pk_mode [Valaris] - if( maplist[sd->bl.m].flag.pvp && !battle_config.pk_mode && !maplist[sd->bl.m].flag.pvp_nocalcrank ) { + if( map->list[sd->bl.m].flag.pvp && !battle_config.pk_mode && !map->list[sd->bl.m].flag.pvp_nocalcrank ) { sd->pvp_point -= 5; sd->pvp_lost++; if( src && src->type == BL_PC ) @@ -6986,18 +6951,18 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) { } if( sd->pvp_point < 0 ) { - timer->add(tick+1, pc_respawn_timer,sd->bl.id,0); + timer->add(tick+1, pc->respawn_timer,sd->bl.id,0); return 1|8; } } //GvG if( map_flag_gvg2(sd->bl.m) ) { - timer->add(tick+1, pc_respawn_timer, sd->bl.id, 0); + timer->add(tick+1, pc->respawn_timer, sd->bl.id, 0); return 1|8; } else if( sd->bg_id ) { struct battleground_data *bgd = bg->team_search(sd->bg_id); if( bgd && bgd->mapindex > 0 ) { // Respawn by BG - timer->add(tick+1000, pc_respawn_timer, sd->bl.id, 0); + timer->add(tick+1000, pc->respawn_timer, sd->bl.id, 0); return 1|8; } } @@ -7450,7 +7415,7 @@ int pc_percentheal(struct map_session_data *sd,int hp,int sp) return 0; } -static int jobchange_killclone(struct block_list *bl, va_list ap) +int jobchange_killclone(struct block_list *bl, va_list ap) { struct mob_data *md; int flag; @@ -7538,7 +7503,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper) if ( (b_class&MAPID_UPPERMASK) != (sd->class_&MAPID_UPPERMASK) ) { //Things to remove when changing class tree. const int class_ = pc->class2idx(sd->status.class_); short id; - for(i = 0; i < MAX_SKILL_TREE && (id = skill_tree[class_][i].id) > 0; i++) { + for(i = 0; i < MAX_SKILL_TREE && (id = pc->skill_tree[class_][i].id) > 0; i++) { //Remove status specific to your current tree skills. enum sc_type sc = status->skill2sc(id); if (sc > SC_COMMON_MAX && sd->sc.data[sc]) @@ -7596,7 +7561,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper) if (sd->state.vending) vending->close(sd); - map->foreachinmap(jobchange_killclone, sd->bl.m, BL_MOB, sd->bl.id); + map->foreachinmap(pc->jobchange_killclone, sd->bl.m, BL_MOB, sd->bl.id); //Remove peco/cart/falcon i = sd->sc.option; @@ -8277,7 +8242,7 @@ int pc_setregistry_str(struct map_session_data *sd,const char *reg,const char *v /*========================================== * Exec eventtimer for player sd (retrieved from map_session (id)) *------------------------------------------*/ -static int pc_eventtimer(int tid, unsigned int tick, int id, intptr_t data) { +int pc_eventtimer(int tid, unsigned int tick, int id, intptr_t data) { struct map_session_data *sd=map->id2sd(id); char *p = (char *)data; int i; @@ -8310,7 +8275,7 @@ int pc_addeventtimer(struct map_session_data *sd,int tick,const char *name) if( i == MAX_EVENTTIMER ) return 0; - sd->eventtimer[i] = timer->add(timer->gettick()+tick, pc_eventtimer, sd->bl.id, (intptr_t)aStrdup(name)); + sd->eventtimer[i] = timer->add(timer->gettick()+tick, pc->eventtimer, sd->bl.id, (intptr_t)aStrdup(name)); sd->eventcount++; return 1; @@ -8338,7 +8303,7 @@ int pc_deleventtimer(struct map_session_data *sd,const char *name) if( i == MAX_EVENTTIMER ) return 0; // not found - timer->delete(sd->eventtimer[i],pc_eventtimer); + timer->delete(sd->eventtimer[i],pc->eventtimer); sd->eventtimer[i] = INVALID_TIMER; sd->eventcount--; aFree(p); @@ -8380,7 +8345,7 @@ int pc_cleareventtimer(struct map_session_data *sd) for(i=0;i<MAX_EVENTTIMER;i++) if( sd->eventtimer[i] != INVALID_TIMER ){ char *p = (char *)(timer->get(sd->eventtimer[i])->data); - timer->delete(sd->eventtimer[i],pc_eventtimer); + timer->delete(sd->eventtimer[i],pc->eventtimer); sd->eventtimer[i] = INVALID_TIMER; sd->eventcount--; if (p) aFree(p); @@ -8502,7 +8467,7 @@ int pc_removecombo(struct map_session_data *sd, struct item_data *data ) { } /* check if combo requirements still fit */ - if( pc_checkcombo( sd, data ) ) + if( pc->checkcombo( sd, data ) ) continue; /* it's empty, we can clear all the memory */ @@ -8526,7 +8491,7 @@ int pc_load_combo(struct map_session_data *sd) { if( sd->equip_index[i] < 0 || !(id = sd->inventory_data[idx] ) ) continue; if( id->combos_count ) - ret += pc_checkcombo(sd,id); + ret += pc->checkcombo(sd,id); if(!itemdb_isspecial(sd->status.inventory[idx].card[0])) { struct item_data *data; int j; @@ -8535,7 +8500,7 @@ int pc_load_combo(struct map_session_data *sd) { continue; if ( ( data = itemdb->exists(sd->status.inventory[idx].card[j]) ) != NULL ) { if( data->combos_count ) - ret += pc_checkcombo(sd,data); + ret += pc->checkcombo(sd,data); } } } @@ -8603,7 +8568,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos) } for(i=0;i<EQI_MAX;i++) { - if(pos & equip_pos[i]) { + if(pos & pc->equip_pos[i]) { if(sd->equip_index[i] >= 0) //Slot taken, remove item from there. pc->unequipitem(sd,sd->equip_index[i],2); @@ -8625,7 +8590,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos) sd->weapontype1 = id->look; else sd->weapontype1 = 0; - pc_calcweapontype(sd); + pc->calcweapontype(sd); clif->changelook(&sd->bl,LOOK_WEAPON,sd->status.weapon); } if(pos & EQP_HAND_L) { @@ -8642,7 +8607,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos) } else sd->status.shield = sd->weapontype2 = 0; - pc_calcweapontype(sd); + pc->calcweapontype(sd); clif->changelook(&sd->bl,LOOK_SHIELD,sd->status.shield); } //Added check to prevent sending the same look on multiple slots -> @@ -8709,7 +8674,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos) /* check for combos (MUST be before status_calc_pc) */ if ( id ) { if( id->combos_count ) - pc_checkcombo(sd,id); + pc->checkcombo(sd,id); if(itemdb_isspecial(sd->status.inventory[n].card[0])) ; //No cards else { @@ -8719,7 +8684,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos) continue; if ( ( data = itemdb->exists(sd->status.inventory[n].card[i]) ) != NULL ) { if( data->combos_count ) - pc_checkcombo(sd,data); + pc->checkcombo(sd,data); } } } @@ -8790,21 +8755,21 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) { return 0; } for(i=0;i<EQI_MAX;i++) { - if(sd->status.inventory[n].equip & equip_pos[i]) + if(sd->status.inventory[n].equip & pc->equip_pos[i]) sd->equip_index[i] = -1; } if(sd->status.inventory[n].equip & EQP_HAND_R) { sd->weapontype1 = 0; sd->status.weapon = sd->weapontype2; - pc_calcweapontype(sd); + pc->calcweapontype(sd); clif->changelook(&sd->bl,LOOK_WEAPON,sd->status.weapon); if( !battle_config.dancing_weaponswitch_fix ) status_change_end(&sd->bl, SC_DANCING, INVALID_TIMER); // Unequipping => stop dancing. } if(sd->status.inventory[n].equip & EQP_HAND_L) { sd->status.shield = sd->weapontype2 = 0; - pc_calcweapontype(sd); + pc->calcweapontype(sd); clif->changelook(&sd->bl,LOOK_SHIELD,sd->status.shield); } if(sd->status.inventory[n].equip & EQP_HEAD_LOW && pc->checkequip(sd,EQP_COSTUME_HEAD_LOW) == -1 ) { @@ -8869,7 +8834,7 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) { /* check for combos (MUST be before status_calc_pc) */ if ( sd->inventory_data[n] ) { if( sd->inventory_data[n]->combos_count ) { - if( pc_removecombo(sd,sd->inventory_data[n]) ) + if( pc->removecombo(sd,sd->inventory_data[n]) ) status_cacl = true; } if(itemdb_isspecial(sd->status.inventory[n].card[0])) ; //No cards @@ -8880,7 +8845,7 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) { continue; if ( ( data = itemdb->exists(sd->status.inventory[n].card[i]) ) != NULL ) { if( data->combos_count ) { - if( pc_removecombo(sd,data) ) + if( pc->removecombo(sd,data) ) status_cacl = true; } } @@ -9027,7 +8992,7 @@ int pc_calc_pvprank_sub(struct block_list *bl,va_list ap) int pc_calc_pvprank(struct map_session_data *sd) { int old; struct map_data *m; - m=&maplist[sd->bl.m]; + m=&map->list[sd->bl.m]; old=sd->pvp_rank; sd->pvp_rank=1; map->foreachinmap(pc_calc_pvprank_sub,sd->bl.m,BL_PC,sd); @@ -9288,13 +9253,13 @@ int pc_autosave(int tid, unsigned int tick, int id, intptr_t data) interval = map->autosave_interval/(map->usercount()+1); if(interval < map->minsave_interval) interval = map->minsave_interval; - timer->add(timer->gettick()+interval,pc_autosave,0,0); + timer->add(timer->gettick()+interval,pc->autosave,0,0); return 0; } -static int pc_daynight_timer_sub(struct map_session_data *sd,va_list ap) { - if (sd->state.night != map->night_flag && maplist[sd->bl.m].flag.nightenabled) { //Night/day state does not match. +int pc_daynight_timer_sub(struct map_session_data *sd,va_list ap) { + if (sd->state.night != map->night_flag && map->list[sd->bl.m].flag.nightenabled) { //Night/day state does not match. clif->status_change(&sd->bl, SI_SKE, map->night_flag, 0, 0, 0, 0); //New night effect by dynamix [Skotlex] sd->state.night = map->night_flag; return 1; @@ -9315,7 +9280,7 @@ int map_day_timer(int tid, unsigned int tick, int id, intptr_t data) { return 0; //Already day. map->night_flag = 0; // 0=day, 1=night [Yor] - map->map_foreachpc(pc_daynight_timer_sub); + map->foreachpc(pc->daynight_timer_sub); strcpy(tmp_soutput, (data == 0) ? msg_txt(502) : msg_txt(60)); // The day has arrived! intif->broadcast(tmp_soutput, strlen(tmp_soutput) + 1, BC_DEFAULT); return 0; @@ -9335,7 +9300,7 @@ int map_night_timer(int tid, unsigned int tick, int id, intptr_t data) { return 0; //Already nigth. map->night_flag = 1; // 0=day, 1=night [Yor] - map->map_foreachpc(pc_daynight_timer_sub); + map->foreachpc(pc->daynight_timer_sub); strcpy(tmp_soutput, (data == 0) ? msg_txt(503) : msg_txt(59)); // The night has fallen... intif->broadcast(tmp_soutput, strlen(tmp_soutput) + 1, BC_DEFAULT); return 0; @@ -9397,7 +9362,7 @@ bool pc_can_use_command(struct map_session_data *sd, const char *command) { return atcommand->can_use(sd,command); } -static int pc_charm_timer(int tid, unsigned int tick, int id, intptr_t data) { +int pc_charm_timer(int tid, unsigned int tick, int id, intptr_t data) { struct map_session_data *sd; int i, type; @@ -9444,14 +9409,14 @@ int pc_add_charm(struct map_session_data *sd,int interval,int max,int type) if( sd->charm[type] && sd->charm[type] >= max ) { if(sd->charm_timer[type][0] != INVALID_TIMER) - timer->delete(sd->charm_timer[type][0],pc_charm_timer); + timer->delete(sd->charm_timer[type][0],pc->charm_timer); sd->charm[type]--; if( sd->charm[type] != 0 ) memmove(sd->charm_timer[type]+0, sd->charm_timer[type]+1, (sd->charm[type])*sizeof(int)); sd->charm_timer[type][sd->charm[type]] = INVALID_TIMER; } - tid = timer->add(timer->gettick()+interval, pc_charm_timer, sd->bl.id, 0); + tid = timer->add(timer->gettick()+interval, pc->charm_timer, sd->bl.id, 0); ARR_FIND(0, sd->charm[type], i, sd->charm_timer[type][i] == INVALID_TIMER || DIFF_TICK(timer->get(tid)->tick, timer->get(sd->charm_timer[type][i])->tick) < 0); if( i != sd->charm[type] ) memmove(sd->charm_timer[type]+i+1, sd->charm_timer[type]+i, (sd->charm[type]-i)*sizeof(int)); @@ -9483,7 +9448,7 @@ int pc_del_charm(struct map_session_data *sd,int count,int type) for(i = 0; i < count; i++) { if(sd->charm_timer[type][i] != INVALID_TIMER) { - timer->delete(sd->charm_timer[type][i],pc_charm_timer); + timer->delete(sd->charm_timer[type][i],pc->charm_timer); sd->charm_timer[type][i] = INVALID_TIMER; } } @@ -9495,13 +9460,12 @@ int pc_del_charm(struct map_session_data *sd,int count,int type) clif->charm(sd, type); return 0; } -#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) /*========================================== * Renewal EXP/Itemdrop rate modifier base on level penalty * 1=exp 2=itemdrop *------------------------------------------*/ -int pc_level_penalty_mod(int diff, unsigned char race, unsigned short mode, int type) -{ +int pc_level_penalty_mod(int diff, unsigned char race, unsigned short mode, int type) { +#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) int rate = 100, i; if( diff < 0 ) @@ -9517,15 +9481,17 @@ int pc_level_penalty_mod(int diff, unsigned char race, unsigned short mode, int continue; } - if( (tmp=level_penalty[type][i][diff]) > 0 ){ + if( (tmp=pc->level_penalty[type][i][diff]) > 0 ){ rate = tmp; break; } } return rate; -} +#else + return 100; #endif +} int pc_split_str(char *str,char **val,int num) { int i; @@ -9711,6 +9677,7 @@ void pc_read_skill_tree(void) { { "Expanded_Super_Baby", JOB_SUPER_BABY_E }, { "Kagerou", JOB_KAGEROU }, { "Oboro", JOB_OBORO }, + { "Rebellion", JOB_REBELLION }, }; if (conf_read_file(&skill_tree_conf, config_filename)) { @@ -9744,36 +9711,36 @@ void pc_read_skill_tree(void) { if( ( skill_id = skill->name2id(sk_name) ) ) { int skidx, offset = 0, h = 0, rlen = 0, rskid = 0; - ARR_FIND( 0, MAX_SKILL_TREE, skidx, skill_tree[idx][skidx].id == 0 || skill_tree[idx][skidx].id == skill_id ); + ARR_FIND( 0, MAX_SKILL_TREE, skidx, pc->skill_tree[idx][skidx].id == 0 || pc->skill_tree[idx][skidx].id == skill_id ); if( skidx == MAX_SKILL_TREE ) { ShowWarning("pc_read_skill_tree: Unable to load skill %hu (%s) into '%s's tree. Maximum number of skills per class has been reached.\n", skill_id, sk_name, name); continue; - } else if(skill_tree[idx][skidx].id) { + } else if(pc->skill_tree[idx][skidx].id) { ShowNotice("pc_read_skill_tree: Overwriting %hu for '%s' (%d)\n", skill_id, name, jnames[k].id); } - skill_tree[idx][skidx].id = skill_id; - skill_tree[idx][skidx].idx = skill->get_index(skill_id); + pc->skill_tree[idx][skidx].id = skill_id; + pc->skill_tree[idx][skidx].idx = skill->get_index(skill_id); if( config_setting_is_group(sk) ) { int max = 0, jlevel = 0; config_setting_lookup_int(sk, "MaxLevel", &max); config_setting_lookup_int(sk, "MinJobLevel", &jlevel); - skill_tree[idx][skidx].max = (unsigned char)max; - skill_tree[idx][skidx].joblv = (unsigned char)jlevel; + pc->skill_tree[idx][skidx].max = (unsigned char)max; + pc->skill_tree[idx][skidx].joblv = (unsigned char)jlevel; rlen = config_setting_length(sk); offset += jlevel ? 2 : 1; } else { - skill_tree[idx][skidx].max = (unsigned char)config_setting_get_int(sk); - skill_tree[idx][skidx].joblv = 0; + pc->skill_tree[idx][skidx].max = (unsigned char)config_setting_get_int(sk); + pc->skill_tree[idx][skidx].joblv = 0; } for( h = offset; h < rlen && h < MAX_PC_SKILL_REQUIRE; h++ ) { config_setting_t *rsk = config_setting_get_elem(sk,h); if( rsk && ( rskid = skill->name2id(config_setting_name(rsk)) ) ) { - skill_tree[idx][skidx].need[h].id = rskid; - skill_tree[idx][skidx].need[h].idx = skill->get_index(rskid); - skill_tree[idx][skidx].need[h].lv = (unsigned char)config_setting_get_int(rsk); + pc->skill_tree[idx][skidx].need[h].id = rskid; + pc->skill_tree[idx][skidx].need[h].idx = skill->get_index(rskid); + pc->skill_tree[idx][skidx].need[h].lv = (unsigned char)config_setting_get_int(rsk); } else if( rsk ) { ShowWarning("pc_read_skill_tree: unknown requirement '%s' for '%s' in '%s'\n",config_setting_name(rsk),sk_name,name); } else { @@ -9816,19 +9783,19 @@ void pc_read_skill_tree(void) { fidx = pc->class2idx(jnames[b].id); - ARR_FIND( 0, MAX_SKILL_TREE, d, skill_tree[fidx][d].id == 0 ); + ARR_FIND( 0, MAX_SKILL_TREE, d, pc->skill_tree[fidx][d].id == 0 ); for( f = 0; f < d; f++ ) { - ARR_FIND( 0, MAX_SKILL_TREE, a, skill_tree[idx][a].id == 0 || skill_tree[idx][a].id == skill_tree[fidx][f].id ); + ARR_FIND( 0, MAX_SKILL_TREE, a, pc->skill_tree[idx][a].id == 0 || pc->skill_tree[idx][a].id == pc->skill_tree[fidx][f].id ); if( a == MAX_SKILL_TREE ) { ShowWarning("pc_read_skill_tree: '%s' can't inherit '%s', skill tree is full!\n", name,iname); break; - } else if ( skill_tree[idx][a].id || ( skill_tree[idx][a].id == NV_TRICKDEAD && ((pc->jobid2mapid(jnames[k].id)&MAPID_BASEMASK)!=MAPID_NOVICE) ) ) /* we skip trickdead for non-novices */ + } else if ( pc->skill_tree[idx][a].id || ( pc->skill_tree[idx][a].id == NV_TRICKDEAD && ((pc->jobid2mapid(jnames[k].id)&MAPID_BASEMASK)!=MAPID_NOVICE) ) ) /* we skip trickdead for non-novices */ continue;/* skip */ - memcpy(&skill_tree[idx][a],&skill_tree[fidx][f],sizeof(skill_tree[fidx][f])); + memcpy(&pc->skill_tree[idx][a],&pc->skill_tree[fidx][f],sizeof(pc->skill_tree[fidx][f])); } } @@ -9844,9 +9811,8 @@ void pc_read_skill_tree(void) { clif->skillinfoblock(sd); mapit->free(iter); } +bool pc_readdb_levelpenalty(char* fields[], int columns, int current) { #if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) -static bool pc_readdb_levelpenalty(char* fields[], int columns, int current) -{ int type, race, diff; type = atoi(fields[0]); @@ -9868,11 +9834,10 @@ static bool pc_readdb_levelpenalty(char* fields[], int columns, int current) if( diff < 0 ) diff = min(MAX_LEVEL + ( ~(diff) + 1 ), MAX_LEVEL*2); - level_penalty[type][race][diff] = atoi(fields[3]); - + pc->level_penalty[type][race][diff] = atoi(fields[3]); +#endif return true; } -#endif /*========================================== * pc DB reading. @@ -9887,8 +9852,8 @@ int pc_readdb(void) { char line[24000],*p; //reset - memset(exp_table,0,sizeof(exp_table)); - memset(max_level,0,sizeof(max_level)); + memset(pc->exp_table,0,sizeof(pc->exp_table)); + memset(pc->max_level,0,sizeof(pc->max_level)); sprintf(line, "%s/"DBPATH"exp.txt", map->db_path); @@ -9928,23 +9893,23 @@ int pc_readdb(void) { count++; job = jobs[0] = pc->class2idx(job_id); //We send one less and then one more because the last entry in the exp array should hold 0. - max_level[job][type] = pc_split_atoui(split[3], exp_table[job][type],',',maxlv-1)+1; + pc->max_level[job][type] = pc_split_atoui(split[3], pc->exp_table[job][type],',',maxlv-1)+1; //Reverse check in case the array has a bunch of trailing zeros... [Skotlex] //The reasoning behind the -2 is this... if the max level is 5, then the array //should look like this: //0: x, 1: x, 2: x: 3: x 4: 0 <- last valid value is at 3. - while ((ui = max_level[job][type]) >= 2 && exp_table[job][type][ui-2] <= 0) - max_level[job][type]--; - if (max_level[job][type] < maxlv) { - ShowWarning("pc_readdb: Specified max %u for job %d, but that job's exp table only goes up to level %u.\n", maxlv, job_id, max_level[job][type]); + while ((ui = pc->max_level[job][type]) >= 2 && pc->exp_table[job][type][ui-2] <= 0) + pc->max_level[job][type]--; + if (pc->max_level[job][type] < maxlv) { + ShowWarning("pc_readdb: Specified max %u for job %d, but that job's exp table only goes up to level %u.\n", maxlv, job_id, pc->max_level[job][type]); ShowInfo("Filling the missing values with the last exp entry.\n"); //Fill the requested values with the last entry. - ui = (max_level[job][type] <= 2? 0: max_level[job][type]-2); + ui = (pc->max_level[job][type] <= 2? 0: pc->max_level[job][type]-2); for (; ui+2 < maxlv; ui++) - exp_table[job][type][ui] = exp_table[job][type][ui-1]; - max_level[job][type] = maxlv; + pc->exp_table[job][type][ui] = pc->exp_table[job][type][ui-1]; + pc->max_level[job][type] = maxlv; } -// ShowDebug("%s - Class %d: %d\n", type?"Job":"Base", job_id, max_level[job][type]); +// ShowDebug("%s - Class %d: %d\n", type?"Job":"Base", job_id, pc->max_level[job][type]); for (i = 1; i < job_count; i++) { job_id = jobs[i]; if (!pcdb_checkid(job_id)) { @@ -9952,9 +9917,9 @@ int pc_readdb(void) { continue; } job = pc->class2idx(job_id); - memcpy(exp_table[job][type], exp_table[jobs[0]][type], sizeof(exp_table[0][0])); - max_level[job][type] = maxlv; -// ShowDebug("%s - Class %d: %u\n", type?"Job":"Base", job_id, max_level[job][type]); + memcpy(pc->exp_table[job][type], pc->exp_table[jobs[0]][type], sizeof(pc->exp_table[0][0])); + pc->max_level[job][type] = maxlv; +// ShowDebug("%s - Class %d: %u\n", type?"Job":"Base", job_id, pc->max_level[job][type]); } } fclose(fp); @@ -9963,28 +9928,28 @@ int pc_readdb(void) { if (i == JOB_WEDDING || i == JOB_XMAS || i == JOB_SUMMER) continue; //Classes that do not need exp tables. j = pc->class2idx(i); - if (!max_level[j][0]) + if (!pc->max_level[j][0]) ShowWarning("Class %s (%d) does not has a base exp table.\n", pc->job_name(i), i); - if (!max_level[j][1]) + if (!pc->max_level[j][1]) ShowWarning("Class %s (%d) does not has a job exp table.\n", pc->job_name(i), i); } ShowStatus("Done reading '"CL_WHITE"%lu"CL_RESET"' entries in '"CL_WHITE"%s/"DBPATH"%s"CL_RESET"'.\n",count,map->db_path,"exp.txt"); count = 0; // Reset and read skilltree - memset(skill_tree,0,sizeof(skill_tree)); - pc_read_skill_tree(); + memset(pc->skill_tree,0,sizeof(pc->skill_tree)); + pc->read_skill_tree(); #if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) - sv->readdb(map->db_path, "re/level_penalty.txt", ',', 4, 4, -1, &pc_readdb_levelpenalty); + sv->readdb(map->db_path, "re/level_penalty.txt", ',', 4, 4, -1, pc->readdb_levelpenalty); for( k=1; k < 3; k++ ){ // fill in the blanks for( j = 0; j < RC_MAX; j++ ){ int tmp = 0; for( i = 0; i < MAX_LEVEL*2; i++ ){ if( i == MAX_LEVEL+1 ) - tmp = level_penalty[k][j][0];// reset - if( level_penalty[k][j][i] > 0 ) - tmp = level_penalty[k][j][i]; + tmp = pc->level_penalty[k][j][0];// reset + if( pc->level_penalty[k][j][i] > 0 ) + tmp = pc->level_penalty[k][j][i]; else - level_penalty[k][j][i] = tmp; + pc->level_penalty[k][j][i] = tmp; } } } @@ -10043,7 +10008,7 @@ int pc_readdb(void) { ShowStatus("Done reading '"CL_WHITE"%lu"CL_RESET"' entries in '"CL_WHITE"%s/"DBPATH"%s"CL_RESET"'.\n",count,map->db_path,"attr_fix.txt"); count = 0; // reset then read statspoint - memset(statp,0,sizeof(statp)); + memset(pc->statp,0,sizeof(pc->statp)); i=1; sprintf(line, "%s/"DBPATH"statpoint.txt", map->db_path); @@ -10062,7 +10027,7 @@ int pc_readdb(void) { if (i > MAX_LEVEL) break; count++; - statp[i]=stat; + pc->statp[i]=stat; i++; } fclose(fp); @@ -10072,9 +10037,9 @@ int pc_readdb(void) { // generate the remaining parts of the db if necessary k = battle_config.use_statpoint_table; //save setting battle_config.use_statpoint_table = 0; //temporarily disable to force pc->gets_status_point use default values - statp[0] = 45; // seed value + pc->statp[0] = 45; // seed value for (; i <= MAX_LEVEL; i++) - statp[i] = statp[i-1] + pc->gets_status_point(i-1); + pc->statp[i] = pc->statp[i-1] + pc->gets_status_point(i-1); battle_config.use_statpoint_table = k; //restore setting return 0; @@ -10085,7 +10050,7 @@ void pc_itemcd_do(struct map_session_data *sd, bool load) { struct item_cd* cd = NULL; if( load ) { - if( !(cd = idb_get(itemcd_db, sd->status.char_id)) ) { + if( !(cd = idb_get(pc->itemcd_db, sd->status.char_id)) ) { // no skill cooldown is associated with this character return; } @@ -10096,12 +10061,12 @@ void pc_itemcd_do(struct map_session_data *sd, bool load) { cursor++; } } - idb_remove(itemcd_db,sd->status.char_id); + idb_remove(pc->itemcd_db,sd->status.char_id); } else { - if( !(cd = idb_get(itemcd_db,sd->status.char_id)) ) { + if( !(cd = idb_get(pc->itemcd_db,sd->status.char_id)) ) { // create a new skill cooldown object for map storage CREATE( cd, struct item_cd, 1 ); - idb_put( itemcd_db, sd->status.char_id, cd ); + idb_put( pc->itemcd_db, sd->status.char_id, cd ); } for(i = 0; i < MAX_ITEMDELAYS; i++) { if( sd->item_delay[i].nameid && DIFF_TICK(timer->gettick(),sd->item_delay[i].tick) < 0 ) { @@ -10119,31 +10084,31 @@ void pc_itemcd_do(struct map_session_data *sd, bool load) { *------------------------------------------*/ void do_final_pc(void) { - db_destroy(itemcd_db); + db_destroy(pc->itemcd_db); do_final_pc_groups(); - ers_destroy(pc_sc_display_ers); + ers_destroy(pc->sc_display_ers); return; } -int do_init_pc(void) { +void do_init_pc(void) { - itemcd_db = idb_alloc(DB_OPT_RELEASE_DATA); + pc->itemcd_db = idb_alloc(DB_OPT_RELEASE_DATA); pc->readdb(); - timer->add_func_list(pc_invincible_timer, "pc_invincible_timer"); - timer->add_func_list(pc_eventtimer, "pc_eventtimer"); - timer->add_func_list(pc_inventory_rental_end, "pc_inventory_rental_end"); - timer->add_func_list(pc->calc_pvprank_timer, "pc->calc_pvprank_timer"); - timer->add_func_list(pc_autosave, "pc_autosave"); - timer->add_func_list(pc_spiritball_timer, "pc_spiritball_timer"); - timer->add_func_list(pc_follow_timer, "pc_follow_timer"); - timer->add_func_list(pc->endautobonus, "pc->endautobonus"); - timer->add_func_list(pc_charm_timer, "pc_charm_timer"); + timer->add_func_list(pc->invincible_timer, "pc_invincible_timer"); + timer->add_func_list(pc->eventtimer, "pc_eventtimer"); + timer->add_func_list(pc->inventory_rental_end, "pc_inventory_rental_end"); + timer->add_func_list(pc->calc_pvprank_timer, "pc_calc_pvprank_timer"); + timer->add_func_list(pc->autosave, "pc_autosave"); + timer->add_func_list(pc->spiritball_timer, "pc_spiritball_timer"); + timer->add_func_list(pc->follow_timer, "pc_follow_timer"); + timer->add_func_list(pc->endautobonus, "pc_endautobonus"); + timer->add_func_list(pc->charm_timer, "pc_charm_timer"); - timer->add(timer->gettick() + map->autosave_interval, pc_autosave, 0, 0); + timer->add(timer->gettick() + map->autosave_interval, pc->autosave, 0, 0); // 0=day, 1=night [Yor] map->night_flag = battle_config.night_at_start ? 1 : 0; @@ -10152,8 +10117,8 @@ int do_init_pc(void) { int day_duration = battle_config.day_duration; int night_duration = battle_config.night_duration; // add night/day timer [Yor] - timer->add_func_list(pc->map_day_timer, "pc->map_day_timer"); - timer->add_func_list(pc->map_night_timer, "pc->map_night_timer"); + timer->add_func_list(pc->map_day_timer, "pc_map_day_timer"); + timer->add_func_list(pc->map_night_timer, "pc_map_night_timer"); pc->day_timer_tid = timer->add_interval(timer->gettick() + (map->night_flag ? 0 : day_duration) + night_duration, pc->map_day_timer, 0, 0, day_duration + night_duration); pc->night_timer_tid = timer->add_interval(timer->gettick() + day_duration + (map->night_flag ? night_duration : 0), pc->map_night_timer, 0, 0, day_duration + night_duration); @@ -10161,9 +10126,7 @@ int do_init_pc(void) { do_init_pc_groups(); - pc_sc_display_ers = ers_new(sizeof(struct sc_display_entry), "pc.c:pc_sc_display_ers", ERS_OPT_NONE); - - return 0; + pc->sc_display_ers = ers_new(sizeof(struct sc_display_entry), "pc.c:sc_display_ers", ERS_OPT_NONE); } /*===================================== @@ -10172,15 +10135,43 @@ int do_init_pc(void) { * created by Susu *-------------------------------------*/ void pc_defaults(void) { + const struct sg_data sg_info[MAX_PC_FEELHATE] = { + { SG_SUN_ANGER, SG_SUN_BLESS, SG_SUN_COMFORT, "PC_FEEL_SUN", "PC_HATE_MOB_SUN", is_day_of_sun }, + { SG_MOON_ANGER, SG_MOON_BLESS, SG_MOON_COMFORT, "PC_FEEL_MOON", "PC_HATE_MOB_MOON", is_day_of_moon }, + { SG_STAR_ANGER, SG_STAR_BLESS, SG_STAR_COMFORT, "PC_FEEL_STAR", "PC_HATE_MOB_STAR", is_day_of_star } + }; + unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_GARMENT,EQP_AMMO}; + + pc = &pc_s; /* vars */ - // timer for night.day - pc->day_timer_tid = day_timer_tid; - pc->night_timer_tid = night_timer_tid; - + pc->itemcd_db = NULL; + /* */ + pc->day_timer_tid = INVALID_TIMER; + pc->night_timer_tid = INVALID_TIMER; + /* respecting order */ + memset(pc->exp_table, 0, sizeof(pc->exp_table) + + sizeof(pc->max_level) + + sizeof(pc->statp) +#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) + + sizeof(pc->level_penalty) +#endif + + sizeof(pc->skill_tree) + + sizeof(pc->smith_fame_list) + + sizeof(pc->chemist_fame_list) + + sizeof(pc->taekwon_fame_list) + ); + /* */ + memcpy(pc->equip_pos, &equip_pos, sizeof(pc->equip_pos)); + /* */ + memcpy(pc->sg_info, sg_info, sizeof(pc->sg_info)); + /* */ + pc->sc_display_ers = NULL; /* funcs */ - + pc->init = do_init_pc; + pc->final = do_final_pc; + pc->get_dummy_sd = pc_get_dummy_sd; pc->class2idx = pc_class2idx; pc->get_group_level = pc_get_group_level; @@ -10358,8 +10349,6 @@ void pc_defaults(void) { pc->set_hate_mob = pc_set_hate_mob; pc->readdb = pc_readdb; - pc->do_init_pc = do_init_pc; - pc->do_final_pc = do_final_pc; pc->map_day_timer = map_day_timer; // by [yor] pc->map_night_timer = map_night_timer; // by [yor] // Rental System @@ -10382,9 +10371,35 @@ void pc_defaults(void) { pc->del_charm = pc_del_charm; pc->baselevelchanged = pc_baselevelchanged; -#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) pc->level_penalty_mod = pc_level_penalty_mod; -#endif pc->calc_skillpoint = pc_calc_skillpoint; + + pc->invincible_timer = pc_invincible_timer; + pc->spiritball_timer = pc_spiritball_timer; + pc->check_banding = pc_check_banding; + pc->inventory_rental_end = pc_inventory_rental_end; + pc->check_skilltree = pc_check_skilltree; + pc->bonus_autospell = pc_bonus_autospell; + pc->bonus_autospell_onskill = pc_bonus_autospell_onskill; + pc->bonus_addeff = pc_bonus_addeff; + pc->bonus_addeff_onskill = pc_bonus_addeff_onskill; + pc->bonus_item_drop = pc_bonus_item_drop; + pc->calcexp = pc_calcexp; + pc->respawn_timer = pc_respawn_timer; + pc->jobchange_killclone = jobchange_killclone; + pc->getstat = pc_getstat; + pc->setstat = pc_setstat; + pc->eventtimer = pc_eventtimer; + pc->daynight_timer_sub = pc_daynight_timer_sub; + pc->charm_timer = pc_charm_timer; + pc->readdb_levelpenalty = pc_readdb_levelpenalty; + pc->autosave = pc_autosave; + pc->follow_timer = pc_follow_timer; + pc->read_skill_tree = pc_read_skill_tree; + pc->isUseitem = pc_isUseitem; + pc->show_steal = pc_show_steal; + pc->checkcombo = pc_checkcombo; + pc->calcweapontype = pc_calcweapontype; + pc->removecombo = pc_removecombo; } diff --git a/src/map/pc.h b/src/map/pc.h index d384e0145..fadb922b5 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -22,10 +22,13 @@ #include "unit.h" // unit_stop_attack(), unit_stop_walking() #include "vending.h" // struct s_vending - +/** + * Defines + **/ #define MAX_PC_BONUS 10 #define MAX_PC_SKILL_REQUIRE 5 #define MAX_PC_FEELHATE 3 +#define PVP_CALCRANK_INTERVAL 1000 // PVP calculation interval //Equip indexes constants. (eg: sd->equip_index[EQI_AMMO] returns the index //where the arrows are equipped) @@ -521,58 +524,6 @@ struct map_session_data { }; -struct eri *pc_sc_display_ers; - -//Total number of classes (for data storage) -#define CLASS_COUNT (JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC) - -enum weapon_type { - W_FIST, //Bare hands - W_DAGGER, //1 - W_1HSWORD, //2 - W_2HSWORD, //3 - W_1HSPEAR, //4 - W_2HSPEAR, //5 - W_1HAXE, //6 - W_2HAXE, //7 - W_MACE, //8 - W_2HMACE, //9 (unused) - W_STAFF, //10 - W_BOW, //11 - W_KNUCKLE, //12 - W_MUSICAL, //13 - W_WHIP, //14 - W_BOOK, //15 - W_KATAR, //16 - W_REVOLVER, //17 - W_RIFLE, //18 - W_GATLING, //19 - W_SHOTGUN, //20 - W_GRENADE, //21 - W_HUUMA, //22 - W_2HSTAFF, //23 - MAX_WEAPON_TYPE, - // dual-wield constants - W_DOUBLE_DD, // 2 daggers - W_DOUBLE_SS, // 2 swords - W_DOUBLE_AA, // 2 axes - W_DOUBLE_DS, // dagger + sword - W_DOUBLE_DA, // dagger + axe - W_DOUBLE_SA, // sword + axe -}; - -enum ammo_type { - A_ARROW = 1, - A_DAGGER, //2 - A_BULLET, //3 - A_SHELL, //4 - A_GRENADE, //5 - A_SHURIKEN, //6 - A_KUNAI, //7 - A_CANNONBALL, //8 - A_THROWWEAPON //9 -}; - //Equip position constants enum equip_pos { EQP_HEAD_LOW = 0x0001, @@ -634,7 +585,7 @@ enum equip_pos { #define pc_isinvisible(sd) ( (sd)->sc.option&OPTION_INVISIBLE ) #define pc_is50overweight(sd) ( (sd)->weight*100 >= (sd)->max_weight*battle_config.natural_heal_weight_rate ) #define pc_is90overweight(sd) ( (sd)->weight*10 >= (sd)->max_weight*9 ) -#define pc_maxparameter(sd) ( ((((sd)->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO) || (sd)->class_&JOBL_THIRD ? ((sd)->class_&JOBL_BABY ? battle_config.max_baby_third_parameter : battle_config.max_third_parameter) : ((sd)->class_&JOBL_BABY ? battle_config.max_baby_parameter : battle_config.max_parameter)) ) +#define pc_maxparameter(sd) ( ((((sd)->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO) || (((sd)->class_&MAPID_UPPERMASK) == MAPID_REBELLION) || (sd)->class_&JOBL_THIRD ? ((sd)->class_&JOBL_BABY ? battle_config.max_baby_third_parameter : battle_config.max_third_parameter) : ((sd)->class_&JOBL_BABY ? battle_config.max_baby_parameter : battle_config.max_parameter)) ) /** * Ranger **/ @@ -660,7 +611,8 @@ enum equip_pos { || ( (class_) >= JOB_RUNE_KNIGHT && (class_) <= JOB_MECHANIC_T2 ) \ || ( (class_) >= JOB_BABY_RUNE && (class_) <= JOB_BABY_MECHANIC2 ) \ || ( (class_) >= JOB_SUPER_NOVICE_E && (class_) <= JOB_SUPER_BABY_E ) \ -|| ( (class_) >= JOB_KAGEROU && (class_) < JOB_MAX ) \ +|| ( (class_) >= JOB_KAGEROU && (class_) <= JOB_OBORO ) \ +|| ( (class_) >= JOB_REBELLION && (class_) < JOB_MAX ) \ ) #define pcdb_checkid(class_) pcdb_checkid_sub((unsigned int)class_) @@ -725,8 +677,6 @@ struct skill_tree_entry { } need[MAX_PC_SKILL_REQUIRE]; }; // Celest -extern struct skill_tree_entry skill_tree[CLASS_COUNT][MAX_SKILL_TREE]; - struct sg_data { short anger_id; short bless_id; @@ -736,16 +686,19 @@ struct sg_data { int (*day_func)(void); }; -extern const struct sg_data sg_info[MAX_PC_FEELHATE]; - -extern struct fame_list smith_fame_list[MAX_FAME_LIST]; -extern struct fame_list chemist_fame_list[MAX_FAME_LIST]; -extern struct fame_list taekwon_fame_list[MAX_FAME_LIST]; +enum { ADDITEM_EXIST , ADDITEM_NEW , ADDITEM_OVERAMOUNT }; -enum {ADDITEM_EXIST,ADDITEM_NEW,ADDITEM_OVERAMOUNT}; +/** + * Item Cool Down Delay Saving + * Struct item_cd is not a member of struct map_session_data + * to keep cooldowns in memory between player log-ins. + * All cooldowns are reset when server is restarted. + **/ +struct item_cd { + unsigned int tick[MAX_ITEMDELAYS];//tick + short nameid[MAX_ITEMDELAYS];//skill id +}; -#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) -#endif /*===================================== * Interface : pc.h * Generated by HerculesInterfaceMaker @@ -753,12 +706,30 @@ enum {ADDITEM_EXIST,ADDITEM_NEW,ADDITEM_OVERAMOUNT}; *-------------------------------------*/ struct pc_interface { - /* vars */ - // timer for night.day + /* */ + DBMap* itemcd_db; + /* */ int day_timer_tid; int night_timer_tid; - + /* */ + unsigned int exp_table[CLASS_COUNT][2][MAX_LEVEL]; + unsigned int max_level[CLASS_COUNT][2]; + unsigned int statp[MAX_LEVEL+1]; +#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) + unsigned int level_penalty[3][RC_MAX][MAX_LEVEL*2+1]; +#endif + unsigned short equip_pos[EQI_MAX]; + /* */ + struct skill_tree_entry skill_tree[CLASS_COUNT][MAX_SKILL_TREE]; + struct fame_list smith_fame_list[MAX_FAME_LIST]; + struct fame_list chemist_fame_list[MAX_FAME_LIST]; + struct fame_list taekwon_fame_list[MAX_FAME_LIST]; + struct sg_data sg_info[MAX_PC_FEELHATE]; + /* */ + struct eri *sc_display_ers; /* funcs */ + void (*init) (void); + void (*final) (void); struct map_session_data* (*get_dummy_sd) (void); int (*class2idx) (int class_); @@ -772,11 +743,11 @@ struct pc_interface { bool (*should_log_commands) (struct map_session_data *sd); int (*setrestartvalue) (struct map_session_data *sd,int type); - int (*makesavestatus) (struct map_session_data *); + int (*makesavestatus) (struct map_session_data *sd); void (*respawn) (struct map_session_data* sd, clr_type clrtype); - int (*setnewpc) (struct map_session_data*,int,int,int,unsigned int,int,int); + int (*setnewpc) (struct map_session_data *sd, int account_id, int char_id, int login_id1, unsigned int client_tick, int sex, int fd); bool (*authok) (struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, struct mmo_charstatus *st, bool changing_mapservers); - void (*authfail) (struct map_session_data *); + void (*authfail) (struct map_session_data *sd); int (*reg_received) (struct map_session_data *sd); int (*isequip) (struct map_session_data *sd,int n); @@ -793,17 +764,17 @@ struct pc_interface { int (*clean_skilltree) (struct map_session_data *sd); int (*setpos) (struct map_session_data* sd, unsigned short mapindex, int x, int y, clr_type clrtype); - int (*setsavepoint) (struct map_session_data*,short,int,int); + int (*setsavepoint) (struct map_session_data *sd, short mapindex,int x,int y); int (*randomwarp) (struct map_session_data *sd,clr_type type); int (*memo) (struct map_session_data* sd, int pos); - int (*checkadditem) (struct map_session_data*,int,int); - int (*inventoryblank) (struct map_session_data*); + int (*checkadditem) (struct map_session_data *sd,int nameid,int amount); + int (*inventoryblank) (struct map_session_data *sd); int (*search_inventory) (struct map_session_data *sd,int item_id); - int (*payzeny) (struct map_session_data*,int, enum e_log_pick_type type, struct map_session_data*); - int (*additem) (struct map_session_data*,struct item*,int,e_log_pick_type); - int (*getzeny) (struct map_session_data*,int, enum e_log_pick_type, struct map_session_data*); - int (*delitem) (struct map_session_data*,int,int,int,short,e_log_pick_type); + int (*payzeny) (struct map_session_data *sd,int zeny, enum e_log_pick_type type, struct map_session_data *tsd); + int (*additem) (struct map_session_data *sd,struct item *item_data,int amount,e_log_pick_type log_type); + int (*getzeny) (struct map_session_data *sd,int zeny, enum e_log_pick_type type, struct map_session_data *tsd); + int (*delitem) (struct map_session_data *sd,int n,int amount,int type, short reason, e_log_pick_type log_type); // Special Shop System int (*paycash) (struct map_session_data *sd, int price, int points); int (*getcash) (struct map_session_data *sd, int cash, int points); @@ -814,8 +785,8 @@ struct pc_interface { int (*getitemfromcart) (struct map_session_data *sd,int idx,int amount); int (*cartitem_amount) (struct map_session_data *sd,int idx,int amount); - int (*takeitem) (struct map_session_data*,struct flooritem_data*); - int (*dropitem) (struct map_session_data*,int,int); + int (*takeitem) (struct map_session_data *sd,struct flooritem_data *fitem); + int (*dropitem) (struct map_session_data *sd,int n,int amount); bool (*isequipped) (struct map_session_data *sd, int nameid); bool (*can_Adopt) (struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd); @@ -828,48 +799,48 @@ struct pc_interface { int (*endautobonus) (int tid, unsigned int tick, int id, intptr_t data); int (*delautobonus) (struct map_session_data* sd,struct s_autobonus *bonus,char max,bool restore); - int (*bonus) (struct map_session_data*,int,int); - int (*bonus2) (struct map_session_data *sd,int,int,int); - int (*bonus3) (struct map_session_data *sd,int,int,int,int); - int (*bonus4) (struct map_session_data *sd,int,int,int,int,int); - int (*bonus5) (struct map_session_data *sd,int,int,int,int,int,int); - int (*skill) (struct map_session_data* sd, int id, int level, int flag); + int (*bonus) (struct map_session_data *sd,int type,int val); + int (*bonus2) (struct map_session_data *sd,int type,int type2,int val); + int (*bonus3) (struct map_session_data *sd,int type,int type2,int type3,int val); + int (*bonus4) (struct map_session_data *sd,int type,int type2,int type3,int type4,int val); + int (*bonus5) (struct map_session_data *sd,int type,int type2,int type3,int type4,int type5,int val); + int (*skill) (struct map_session_data *sd, int id, int level, int flag); int (*insert_card) (struct map_session_data *sd,int idx_card,int idx_equip); int (*steal_item) (struct map_session_data *sd,struct block_list *bl, uint16 skill_lv); int (*steal_coin) (struct map_session_data *sd,struct block_list *bl); - int (*modifybuyvalue) (struct map_session_data*,int); - int (*modifysellvalue) (struct map_session_data*,int); + int (*modifybuyvalue) (struct map_session_data *sd,int orig_value); + int (*modifysellvalue) (struct map_session_data *sd,int orig_value); - int (*follow) (struct map_session_data*, int); // [MouseJstr] - int (*stop_following) (struct map_session_data*); + int (*follow) (struct map_session_data *sd, int target_id); // [MouseJstr] + int (*stop_following) (struct map_session_data *sd); unsigned int (*maxbaselv) (struct map_session_data *sd); unsigned int (*maxjoblv) (struct map_session_data *sd); int (*checkbaselevelup) (struct map_session_data *sd); int (*checkjoblevelup) (struct map_session_data *sd); int (*gainexp) (struct map_session_data *sd, struct block_list *src, unsigned int base_exp, unsigned int job_exp, bool is_quest); - unsigned int (*nextbaseexp) (struct map_session_data *); - unsigned int (*thisbaseexp) (struct map_session_data *); - unsigned int (*nextjobexp) (struct map_session_data *); - unsigned int (*thisjobexp) (struct map_session_data *); - int (*gets_status_point) (int); - int (*need_status_point) (struct map_session_data *,int,int); - int (*statusup) (struct map_session_data*,int); - int (*statusup2) (struct map_session_data*,int,int); - int (*skillup) (struct map_session_data*,uint16 skill_id); - int (*allskillup) (struct map_session_data*); - int (*resetlvl) (struct map_session_data*,int type); - int (*resetstate) (struct map_session_data*); - int (*resetskill) (struct map_session_data*, int); - int (*resetfeel) (struct map_session_data*); - int (*resethate) (struct map_session_data*); - int (*equipitem) (struct map_session_data*,int,int); - int (*unequipitem) (struct map_session_data*,int,int); - int (*checkitem) (struct map_session_data*); - int (*useitem) (struct map_session_data*,int); + unsigned int (*nextbaseexp) (struct map_session_data *sd); + unsigned int (*thisbaseexp) (struct map_session_data *sd); + unsigned int (*nextjobexp) (struct map_session_data *sd); + unsigned int (*thisjobexp) (struct map_session_data *sd); + int (*gets_status_point) (int level); + int (*need_status_point) (struct map_session_data *sd,int type,int val); + int (*statusup) (struct map_session_data *sd,int type); + int (*statusup2) (struct map_session_data *sd,int type,int val); + int (*skillup) (struct map_session_data *sd,uint16 skill_id); + int (*allskillup) (struct map_session_data *sd); + int (*resetlvl) (struct map_session_data *sd,int type); + int (*resetstate) (struct map_session_data *sd); + int (*resetskill) (struct map_session_data *sd, int flag); + int (*resetfeel) (struct map_session_data *sd); + int (*resethate) (struct map_session_data *sd); + int (*equipitem) (struct map_session_data *sd,int n,int req_pos); + int (*unequipitem) (struct map_session_data *sd,int n,int flag); + int (*checkitem) (struct map_session_data *sd); + int (*useitem) (struct map_session_data *sd,int n); int (*skillatk_bonus) (struct map_session_data *sd, uint16 skill_id); int (*skillheal_bonus) (struct map_session_data *sd, uint16 skill_id); @@ -880,26 +851,26 @@ struct pc_interface { void (*revive) (struct map_session_data *sd,unsigned int hp, unsigned int sp); void (*heal) (struct map_session_data *sd,unsigned int hp,unsigned int sp, int type); int (*itemheal) (struct map_session_data *sd,int itemid, int hp,int sp); - int (*percentheal) (struct map_session_data *sd,int,int); - int (*jobchange) (struct map_session_data *,int, int); - int (*setoption) (struct map_session_data *,int); + int (*percentheal) (struct map_session_data *sd,int hp,int sp); + int (*jobchange) (struct map_session_data *sd,int job, int upper); + int (*setoption) (struct map_session_data *sd,int type); int (*setcart) (struct map_session_data* sd, int type); int (*setfalcon) (struct map_session_data* sd, int flag); int (*setriding) (struct map_session_data* sd, int flag); int (*setmadogear) (struct map_session_data* sd, int flag); - int (*changelook) (struct map_session_data *,int,int); + int (*changelook) (struct map_session_data *sd,int type,int val); int (*equiplookall) (struct map_session_data *sd); - int (*readparam) (struct map_session_data*,int); - int (*setparam) (struct map_session_data*,int,int); - int (*readreg) (struct map_session_data*,int); - int (*setreg) (struct map_session_data*,int,int); + int (*readparam) (struct map_session_data *sd,int type); + int (*setparam) (struct map_session_data *sd,int type,int val); + int (*readreg) (struct map_session_data *sd,int reg); + int (*setreg) (struct map_session_data *sd,int reg,int val); char * (*readregstr) (struct map_session_data *sd,int reg); int (*setregstr) (struct map_session_data *sd,int reg,const char *str); - int (*readregistry) (struct map_session_data*,const char*,int); - int (*setregistry) (struct map_session_data*,const char*,int,int); - char * (*readregistry_str) (struct map_session_data*,const char*,int); - int (*setregistry_str) (struct map_session_data*,const char*,const char*,int); + int (*readregistry) (struct map_session_data *sd,const char *reg,int type); + int (*setregistry) (struct map_session_data *sd,const char *reg,int val,int type); + char * (*readregistry_str) (struct map_session_data *sd,const char *reg,int type); + int (*setregistry_str) (struct map_session_data *sd,const char *reg,const char *val,int type); int (*addeventtimer) (struct map_session_data *sd,int tick,const char *name); int (*deleventtimer) (struct map_session_data *sd,const char *name); @@ -931,15 +902,13 @@ struct pc_interface { void (*setinvincibletimer) (struct map_session_data* sd, int val); void (*delinvincibletimer) (struct map_session_data* sd); - int (*addspiritball) (struct map_session_data *sd,int,int); - int (*delspiritball) (struct map_session_data *sd,int,int); + int (*addspiritball) (struct map_session_data *sd,int interval,int max); + int (*delspiritball) (struct map_session_data *sd,int count,int type); void (*addfame) (struct map_session_data *sd,int count); unsigned char (*famerank) (int char_id, int job); int (*set_hate_mob) (struct map_session_data *sd, int pos, struct block_list *bl); int (*readdb) (void); - int (*do_init_pc) (void); - void (*do_final_pc) (void); int (*map_day_timer) (int tid, unsigned int tick, int id, intptr_t data); // by [yor] int (*map_night_timer) (int tid, unsigned int tick, int id, intptr_t data); // by [yor] // Rental System @@ -962,10 +931,36 @@ struct pc_interface { int (*del_charm) (struct map_session_data *sd,int count,int type); void (*baselevelchanged) (struct map_session_data *sd); -#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP) int (*level_penalty_mod) (int diff, unsigned char race, unsigned short mode, int type); -#endif int (*calc_skillpoint) (struct map_session_data* sd); + + int (*invincible_timer) (int tid, unsigned int tick, int id, intptr_t data); + int (*spiritball_timer) (int tid, unsigned int tick, int id, intptr_t data); + int (*check_banding) ( struct block_list *bl, va_list ap ); + int (*inventory_rental_end) (int tid, unsigned int tick, int id, intptr_t data); + void (*check_skilltree) (struct map_session_data *sd, int skill_id); + int (*bonus_autospell) (struct s_autospell *spell, int max, short id, short lv, short rate, short flag, short card_id); + int (*bonus_autospell_onskill) (struct s_autospell *spell, int max, short src_skill, short id, short lv, short rate, short card_id); + int (*bonus_addeff) (struct s_addeffect* effect, int max, enum sc_type id, short rate, short arrow_rate, unsigned char flag); + int (*bonus_addeff_onskill) (struct s_addeffectonskill* effect, int max, enum sc_type id, short rate, short skill_id, unsigned char target); + int (*bonus_item_drop) (struct s_add_drop *drop, const short max, short id, short group, int race, int rate); + void (*calcexp) (struct map_session_data *sd, unsigned int *base_exp, unsigned int *job_exp, struct block_list *src); + int (*respawn_timer) (int tid, unsigned int tick, int id, intptr_t data); + int (*jobchange_killclone) (struct block_list *bl, va_list ap); + int (*getstat) (struct map_session_data* sd, int type); + int (*setstat) (struct map_session_data* sd, int type, int val); + int (*eventtimer) (int tid, unsigned int tick, int id, intptr_t data); + int (*daynight_timer_sub) (struct map_session_data *sd,va_list ap); + int (*charm_timer) (int tid, unsigned int tick, int id, intptr_t data); + bool (*readdb_levelpenalty) (char* fields[], int columns, int current); + int (*autosave) (int tid, unsigned int tick, int id, intptr_t data); + int (*follow_timer) (int tid, unsigned int tick, int id, intptr_t data); + void (*read_skill_tree) (void); + int (*isUseitem) (struct map_session_data *sd,int n); + int (*show_steal) (struct block_list *bl,va_list ap); + int (*checkcombo) (struct map_session_data *sd, struct item_data *data ); + int (*calcweapontype) (struct map_session_data *sd); + int (*removecombo) (struct map_session_data *sd, struct item_data *data ); }; struct pc_interface *pc; diff --git a/src/map/pet.c b/src/map/pet.c index 811ac9f09..023059a6b 100644 --- a/src/map/pet.c +++ b/src/map/pet.c @@ -934,7 +934,7 @@ int pet_ai_sub_foreachclient(struct map_session_data *sd,va_list ap) } int pet_ai_hard(int tid, unsigned int tick, int id, intptr_t data) { - map->map_foreachpc(pet->ai_sub_foreachclient,tick); + map->foreachpc(pet->ai_sub_foreachclient,tick); return 0; } diff --git a/src/map/script.c b/src/map/script.c index 06c97bbe6..5fa248f4e 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -2,12 +2,6 @@ // See the LICENSE file // Portions Copyright (c) Athena Dev Teams -//#define DEBUG_DISP -//#define DEBUG_DISASM -//#define DEBUG_RUN -//#define DEBUG_HASH -//#define DEBUG_DUMP_STACK - #include "../common/cbasetypes.h" #include "../common/malloc.h" #include "../common/md5calc.h" @@ -60,165 +54,18 @@ #include <sys/time.h> #endif #include <time.h> -#include <setjmp.h> -#include <errno.h> - - -#define FETCH(n, t) \ - if( script_hasdata(st,n) ) \ - (t)=script_getnum(st,n); - -/// Maximum amount of elements in script arrays -#define SCRIPT_MAX_ARRAYSIZE 128 - -#define SCRIPT_BLOCK_SIZE 512 -enum { LABEL_NEXTLINE=1,LABEL_START }; -/// temporary buffer for passing around compiled bytecode -/// @see add_scriptb, set_label, parse_script -static unsigned char* script_buf = NULL; -static int script_pos = 0, script_size = 0; - -static inline int GETVALUE(const unsigned char* buf, int i) -{ +static inline int GETVALUE(const unsigned char* buf, int i) { return (int)MakeDWord(MakeWord(buf[i], buf[i+1]), MakeWord(buf[i+2], 0)); } -static inline void SETVALUE(unsigned char* buf, int i, int n) -{ +static inline void SETVALUE(unsigned char* buf, int i, int n) { buf[i] = GetByte(n, 0); buf[i+1] = GetByte(n, 1); buf[i+2] = GetByte(n, 2); } -// Using a prime number for SCRIPT_HASH_SIZE should give better distributions -#define SCRIPT_HASH_SIZE 1021 -int str_hash[SCRIPT_HASH_SIZE]; -// Specifies which string hashing method to use -//#define SCRIPT_HASH_DJB2 -//#define SCRIPT_HASH_SDBM -#define SCRIPT_HASH_ELF - -static int parse_options=0; - -// important buildin function references for usage in scripts -static int buildin_set_ref = 0; -static int buildin_callsub_ref = 0; -static int buildin_callfunc_ref = 0; -static int buildin_getelementofarray_ref = 0; - -static jmp_buf error_jump; -static char* error_msg; -static const char* error_pos; -static int error_report; // if the error should produce output -// Used by disp_warning_message -static const char* parser_current_src; -static const char* parser_current_file; -static int parser_current_line; - -// for advanced scripting support ( nested if, switch, while, for, do-while, function, etc ) -// [Eoe / jA 1080, 1081, 1094, 1164] -enum curly_type { - TYPE_NULL = 0, - TYPE_IF, - TYPE_SWITCH, - TYPE_WHILE, - TYPE_FOR, - TYPE_DO, - TYPE_USERFUNC, - TYPE_ARGLIST // function argument list -}; - -enum e_arglist -{ - ARGLIST_UNDEFINED = 0, - ARGLIST_NO_PAREN = 1, - ARGLIST_PAREN = 2, -}; - -static struct { - struct { - enum curly_type type; - int index; - int count; - int flag; - struct linkdb_node *case_label; - } curly[256]; // Information right parenthesis - int curly_count; // The number of right brackets - int index; // Number of the syntax used in the script -} syntax; - -const char* parse_curly_close(const char* p); -const char* parse_syntax_close(const char* p); -const char* parse_syntax_close_sub(const char* p,int* flag); -const char* parse_syntax(const char* p); -static int parse_syntax_for_flag = 0; - -extern int status_current_equip_item_index; //for New CARDS Scripts. It contains Inventory Index of the EQUIP_SCRIPT caller item. [Lupus] - struct script_interface script_s; -c_op get_com(unsigned char *scriptbuf,int *pos); -int get_num(unsigned char *scriptbuf,int *pos); - -/*========================================== - * (Only those needed) local declaration prototype - *------------------------------------------*/ - -enum { - MF_NOMEMO, //0 - MF_NOTELEPORT, - MF_NOSAVE, - MF_NOBRANCH, - MF_NOPENALTY, - MF_NOZENYPENALTY, - MF_PVP, - MF_PVP_NOPARTY, - MF_PVP_NOGUILD, - MF_GVG, - MF_GVG_NOPARTY, //10 - MF_NOTRADE, - MF_NOSKILL, - MF_NOWARP, - MF_PARTYLOCK, - MF_NOICEWALL, - MF_SNOW, - MF_FOG, - MF_SAKURA, - MF_LEAVES, - /* 21 - 22 free */ - MF_CLOUDS = 23, - MF_CLOUDS2, - MF_FIREWORKS, - MF_GVG_CASTLE, - MF_GVG_DUNGEON, - MF_NIGHTENABLED, - MF_NOBASEEXP, - MF_NOJOBEXP, //30 - MF_NOMOBLOOT, - MF_NOMVPLOOT, - MF_NORETURN, - MF_NOWARPTO, - MF_NIGHTMAREDROP, - MF_ZONE, - MF_NOCOMMAND, - MF_NODROP, - MF_JEXP, - MF_BEXP, //40 - MF_NOVENDING, - MF_LOADEVENT, - MF_NOCHAT, - MF_NOEXPPENALTY, - MF_GUILDLOCK, - MF_TOWN, - MF_AUTOTRADE, - MF_ALLOWKS, - MF_MONSTER_NOTELEPORT, - MF_PVP_NOCALCRANK, //50 - MF_BATTLEGROUND, - MF_RESET, - MF_NOTOMB -}; - const char* script_op2name(int op) { #define RETURN_OP_NAME(type) case type: return #type @@ -269,7 +116,7 @@ const char* script_op2name(int op) #undef RETURN_OP_NAME } -#ifdef DEBUG_DUMP_STACK +#ifdef SCRIPT_DEBUG_DUMP_STACK static void script_dump_stack(struct script_state* st) { int i; @@ -312,7 +159,7 @@ static void script_dump_stack(struct script_state* st) #endif /// Reports on the console the src of a script error. -static void script_reportsrc(struct script_state *st) { +void script_reportsrc(struct script_state *st) { struct block_list* bl; if( st->oid == 0 ) @@ -325,13 +172,13 @@ static void script_reportsrc(struct script_state *st) { switch( bl->type ) { case BL_NPC: if( bl->m >= 0 ) - ShowDebug("Source (NPC): %s at %s (%d,%d)\n", ((struct npc_data *)bl)->name, maplist[bl->m].name, bl->x, bl->y); + ShowDebug("Source (NPC): %s at %s (%d,%d)\n", ((struct npc_data *)bl)->name, map->list[bl->m].name, bl->x, bl->y); else ShowDebug("Source (NPC): %s (invisible/not on a map)\n", ((struct npc_data *)bl)->name); break; default: if( bl->m >= 0 ) - ShowDebug("Source (Non-NPC type %d): name %s at %s (%d,%d)\n", bl->type, status->get_name(bl), maplist[bl->m].name, bl->x, bl->y); + ShowDebug("Source (Non-NPC type %d): name %s at %s (%d,%d)\n", bl->type, status->get_name(bl), map->list[bl->m].name, bl->x, bl->y); else ShowDebug("Source (Non-NPC type %d): name %s (invisible/not on a map)\n", bl->type, status->get_name(bl)); break; @@ -339,7 +186,7 @@ static void script_reportsrc(struct script_state *st) { } /// Reports on the console information about the script data. -static void script_reportdata(struct script_data* data) +void script_reportdata(struct script_data* data) { if( data == NULL ) return; @@ -370,22 +217,22 @@ static void script_reportdata(struct script_data* data) } else if( reference_toparam(data) ) {// param ShowDebug("Data: param name='%s' type=%d\n", reference_getname(data), reference_getparamtype(data)); } else {// ??? - ShowDebug("Data: reference name='%s' type=%s\n", reference_getname(data), script_op2name(data->type)); - ShowDebug("Please report this!!! - script->str_data.type=%s\n", script_op2name(script->str_data[reference_getid(data)].type)); + ShowDebug("Data: reference name='%s' type=%s\n", reference_getname(data), script->op2name(data->type)); + ShowDebug("Please report this!!! - script->str_data.type=%s\n", script->op2name(script->str_data[reference_getid(data)].type)); } break; case C_POS:// label ShowDebug("Data: label pos=%d\n", data->u.num); break; default: - ShowDebug("Data: %s\n", script_op2name(data->type)); + ShowDebug("Data: %s\n", script->op2name(data->type)); break; } } /// Reports on the console information about the current built-in function. -static void script_reportfunc(struct script_state* st) +void script_reportfunc(struct script_state* st) { int i, params, id; struct script_data* data; @@ -411,7 +258,7 @@ static void script_reportfunc(struct script_state* st) for( i = 2; i <= script_lastdata(st); i++ ) { - script_reportdata(script_getdata(st,i)); + script->reportdata(script_getdata(st,i)); } } else @@ -424,33 +271,33 @@ static void script_reportfunc(struct script_state* st) /*========================================== * Output error message *------------------------------------------*/ -static void disp_error_message2(const char *mes,const char *pos,int report) +void disp_error_message2(const char *mes,const char *pos,int report) { - error_msg = aStrdup(mes); - error_pos = pos; - error_report = report; - longjmp( error_jump, 1 ); + script->error_msg = aStrdup(mes); + script->error_pos = pos; + script->error_report = report; + longjmp( script->error_jump, 1 ); } -#define disp_error_message(mes,pos) disp_error_message2(mes,pos,1) +#define disp_error_message(mes,pos) script->disp_error_message2(mes,pos,1) -static void disp_warning_message(const char *mes, const char *pos) { - script->warning(parser_current_src,parser_current_file,parser_current_line,mes,pos); +void disp_warning_message(const char *mes, const char *pos) { + script->warning(script->parser_current_src,script->parser_current_file,script->parser_current_line,mes,pos); } /// Checks event parameter validity -static void check_event(struct script_state *st, const char *evt) +void check_event(struct script_state *st, const char *evt) { if( evt && evt[0] && !stristr(evt, "::On") ) { ShowWarning("NPC event parameter deprecated! Please use 'NPCNAME::OnEVENT' instead of '%s'.\n", evt); - script_reportsrc(st); + script->reportsrc(st); } } /*========================================== * Hashes the input string *------------------------------------------*/ -static unsigned int calc_hash(const char* p) +unsigned int calc_hash(const char* p) { unsigned int h; @@ -500,7 +347,7 @@ int script_search_str(const char* p) { int i; - for( i = str_hash[calc_hash(p)]; i != 0; i = script->str_data[i].next ) + for( i = script->str_hash[script->calc_hash(p)]; i != 0; i = script->str_data[i].next ) if( strcasecmp(script->get_str(i),p) == 0 ) return i; @@ -514,12 +361,12 @@ int script_add_str(const char* p) int i, h; int len; - h = calc_hash(p); + h = script->calc_hash(p); - if( str_hash[h] == 0 ) {// empty bucket, add new node here - str_hash[h] = script->str_num; + if( script->str_hash[h] == 0 ) {// empty bucket, add new node here + script->str_hash[h] = script->str_num; } else {// scan for end of list, or occurence of identical string - for( i = str_hash[h]; ; i = script->str_data[i].next ) { + for( i = script->str_hash[h]; ; i = script->str_data[i].next ) { if( strcasecmp(script->get_str(i),p) == 0 ) return i; // string already in list if( script->str_data[i].next == 0 ) @@ -561,43 +408,43 @@ int script_add_str(const char* p) /// Appends 1 byte to the script buffer. -static void add_scriptb(int a) +void add_scriptb(int a) { - if( script_pos+1 >= script_size ) + if( script->pos+1 >= script->size ) { - script_size += SCRIPT_BLOCK_SIZE; - RECREATE(script_buf,unsigned char,script_size); + script->size += SCRIPT_BLOCK_SIZE; + RECREATE(script->buf,unsigned char,script->size); } - script_buf[script_pos++] = (uint8)(a); + script->buf[script->pos++] = (uint8)(a); } /// Appends a c_op value to the script buffer. /// The value is variable-length encoded into 8-bit blocks. /// The encoding scheme is ( 01?????? )* 00??????, LSB first. /// All blocks but the last hold 7 bits of data, topmost bit is always 1 (carries). -static void add_scriptc(int a) +void add_scriptc(int a) { while( a >= 0x40 ) { - add_scriptb((a&0x3f)|0x40); + script->addb((a&0x3f)|0x40); a = (a - 0x40) >> 6; } - add_scriptb(a); + script->addb(a); } /// Appends an integer value to the script buffer. /// The value is variable-length encoded into 8-bit blocks. /// The encoding scheme is ( 11?????? )* 10??????, LSB first. /// All blocks but the last hold 7 bits of data, topmost bit is always 1 (carries). -static void add_scripti(int a) +void add_scripti(int a) { while( a >= 0x40 ) { - add_scriptb((a&0x3f)|0xc0); + script->addb((a&0x3f)|0xc0); a = (a - 0x40) >> 6; } - add_scriptb(a|0x80); + script->addb(a|0x80); } /// Appends a script->str_data object (label/function/variable/integer) to the script buffer. @@ -605,37 +452,37 @@ static void add_scripti(int a) /// /// @param l The id of the script->str_data entry // Maximum up to 16M -static void add_scriptl(int l) +void add_scriptl(int l) { int backpatch = script->str_data[l].backpatch; switch(script->str_data[l].type){ case C_POS: case C_USERFUNC_POS: - add_scriptc(C_POS); - add_scriptb(script->str_data[l].label); - add_scriptb(script->str_data[l].label>>8); - add_scriptb(script->str_data[l].label>>16); + script->addc(C_POS); + script->addb(script->str_data[l].label); + script->addb(script->str_data[l].label>>8); + script->addb(script->str_data[l].label>>16); break; case C_NOP: case C_USERFUNC: // Embedded data backpatch there is a possibility of label - add_scriptc(C_NAME); - script->str_data[l].backpatch = script_pos; - add_scriptb(backpatch); - add_scriptb(backpatch>>8); - add_scriptb(backpatch>>16); + script->addc(C_NAME); + script->str_data[l].backpatch = script->pos; + script->addb(backpatch); + script->addb(backpatch>>8); + script->addb(backpatch>>16); break; case C_INT: - add_scripti(abs(script->str_data[l].val)); + script->addi(abs(script->str_data[l].val)); if( script->str_data[l].val < 0 ) //Notice that this is negative, from jA (Rayce) - add_scriptc(C_NEG); + script->addc(C_NEG); break; default: // assume C_NAME - add_scriptc(C_NAME); - add_scriptb(l); - add_scriptb(l>>8); - add_scriptb(l>>16); + script->addc(C_NAME); + script->addb(l); + script->addb(l>>8); + script->addb(l>>16); break; } } @@ -659,9 +506,9 @@ void set_label(int l,int pos, const char* script_pos) script->str_data[l].type=(script->str_data[l].type == C_USERFUNC ? C_USERFUNC_POS : C_POS); script->str_data[l].label=pos; for(i=script->str_data[l].backpatch;i>=0 && i!=0x00ffffff;){ - next=GETVALUE(script_buf,i); - script_buf[i-1]=(script->str_data[l].type == C_USERFUNC ? C_USERFUNC_POS : C_POS); - SETVALUE(script_buf,i,pos); + next=GETVALUE(script->buf,i); + script->buf[i-1]=(script->str_data[l].type == C_USERFUNC ? C_USERFUNC_POS : C_POS); + SETVALUE(script->buf,i,pos); i=next; } } @@ -686,7 +533,7 @@ const char* script_skip_space(const char* p) for(;;) { if( *p == '\0' ) { - disp_warning_message("script:script->skip_space: end of file while parsing block comment. expected "CL_BOLD"*/"CL_NORM, p); + script->disp_warning_message("script:script->skip_space: end of file while parsing block comment. expected "CL_BOLD"*/"CL_NORM, p); return p; } if( *p == '*' && p[1] == '/' ) @@ -706,7 +553,7 @@ const char* script_skip_space(const char* p) /// Skips a word. /// A word consists of undercores and/or alphanumeric characters, /// and valid variable prefixes/postfixes. -static const char* skip_word(const char* p) { +const char* skip_word(const char* p) { // prefix switch( *p ) { case '@':// temporary char variable @@ -733,12 +580,12 @@ static const char* skip_word(const char* p) { /// Adds a word to script->str_data. /// @see skip_word /// @see script->add_str -static int add_word(const char* p) { +int add_word(const char* p) { int len; int i; // Check for a word - len = skip_word(p) - p; + len = script->skip_word(p) - p; if( len == 0 ) disp_error_message("script:add_word: invalid word. A word consists of undercores and/or alphanumeric characters, and valid variable prefixes/postfixes.", p); @@ -765,20 +612,20 @@ const char* parse_callfunc(const char* p, int require_paren, int is_custom) char *arg = NULL; int func; - func = add_word(p); + func = script->add_word(p); if( script->str_data[func].type == C_FUNC ){ char argT = 0; // buildin function - add_scriptl(func); - add_scriptc(C_ARG); + script->addl(func); + script->addc(C_ARG); arg = script->buildin[script->str_data[func].val]; if( !arg ) arg = &argT; } else if( script->str_data[func].type == C_USERFUNC || script->str_data[func].type == C_USERFUNC_POS ){ // script defined function - add_scriptl(buildin_callsub_ref); - add_scriptc(C_ARG); - add_scriptl(func); - arg = script->buildin[script->str_data[buildin_callsub_ref].val]; + script->addl(script->buildin_callsub_ref); + script->addc(C_ARG); + script->addl(func); + arg = script->buildin[script->str_data[script->buildin_callsub_ref].val]; if( *arg == 0 ) disp_error_message("parse_callfunc: callsub has no arguments, please review its definition",p); if( *arg != '*' ) @@ -791,45 +638,45 @@ const char* parse_callfunc(const char* p, int require_paren, int is_custom) disp_error_message("parse_line: expect command, missing function name or calling undeclared function",p); #ifdef SCRIPT_CALLFUNC_CHECK } else {; - add_scriptl(buildin_callfunc_ref); - add_scriptc(C_ARG); - add_scriptc(C_STR); - while( *name ) add_scriptb(*name ++); - add_scriptb(0); - arg = script->buildin[script->str_data[buildin_callfunc_ref].val]; + script->addl(script->buildin_callfunc_ref); + script->addc(C_ARG); + script->addc(C_STR); + while( *name ) script->addb(*name ++); + script->addb(0); + arg = script->buildin[script->str_data[script->buildin_callfunc_ref].val]; if( *arg != '*' ) ++ arg; } #endif } - p = skip_word(p); + p = script->skip_word(p); p = script->skip_space(p); - syntax.curly[syntax.curly_count].type = TYPE_ARGLIST; - syntax.curly[syntax.curly_count].count = 0; + script->syntax.curly[script->syntax.curly_count].type = TYPE_ARGLIST; + script->syntax.curly[script->syntax.curly_count].count = 0; if( *p == ';' ) {// <func name> ';' - syntax.curly[syntax.curly_count].flag = ARGLIST_NO_PAREN; + script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_NO_PAREN; } else if( *p == '(' && *(p2=script->skip_space(p+1)) == ')' ) {// <func name> '(' ')' - syntax.curly[syntax.curly_count].flag = ARGLIST_PAREN; + script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_PAREN; p = p2; /* } else if( 0 && require_paren && *p != '(' ) {// <func name> - syntax.curly[syntax.curly_count].flag = ARGLIST_NO_PAREN; + script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_NO_PAREN; */ } else {// <func name> <arg list> if( require_paren ){ if( *p != '(' ) disp_error_message("need '('",p); ++p; // skip '(' - syntax.curly[syntax.curly_count].flag = ARGLIST_PAREN; + script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_PAREN; } else if( *p == '(' ){ - syntax.curly[syntax.curly_count].flag = ARGLIST_UNDEFINED; + script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_UNDEFINED; } else { - syntax.curly[syntax.curly_count].flag = ARGLIST_NO_PAREN; + script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_NO_PAREN; } - ++syntax.curly_count; + ++script->syntax.curly_count; while( *arg ) { p2=script->parse_subexpr(p,-1); if( p == p2 ) @@ -842,30 +689,30 @@ const char* parse_callfunc(const char* p, int require_paren, int is_custom) break; // no more arguments ++p; // skip comma } - --syntax.curly_count; + --script->syntax.curly_count; } if( arg && *arg && *arg != '?' && *arg != '*' ) disp_error_message2("parse_callfunc: not enough arguments, expected ','", p, script->config.warn_func_mismatch_paramnum); - if( syntax.curly[syntax.curly_count].type != TYPE_ARGLIST ) + if( script->syntax.curly[script->syntax.curly_count].type != TYPE_ARGLIST ) disp_error_message("parse_callfunc: DEBUG last curly is not an argument list",p); - if( syntax.curly[syntax.curly_count].flag == ARGLIST_PAREN ){ + if( script->syntax.curly[script->syntax.curly_count].flag == ARGLIST_PAREN ){ if( *p != ')' ) disp_error_message("parse_callfunc: expected ')' to close argument list",p); ++p; } - add_scriptc(C_FUNC); + script->addc(C_FUNC); return p; } /// Processes end of logical script line. /// @param first When true, only fix up scheduling data is initialized /// @param p Script position for error reporting in set_label -static void parse_nextline(bool first, const char* p) +void parse_nextline(bool first, const char* p) { if( !first ) { - add_scriptc(C_EOL); // mark end of line for stack cleanup - set_label(LABEL_NEXTLINE, script_pos, p); // fix up '-' labels + script->addc(C_EOL); // mark end of line for stack cleanup + script->set_label(LABEL_NEXTLINE, script->pos, p); // fix up '-' labels } // initialize data for new '-' label fix up scheduling @@ -884,7 +731,7 @@ const char* parse_variable(const char* p) { const char *var = p; // skip the variable where applicable - p = skip_word(p); + p = script->skip_word(p); p = script->skip_space(p); if( p == NULL ) {// end of the line or invalid buffer @@ -944,19 +791,19 @@ const char* parse_variable(const char* p) { } // push the set function onto the stack - add_scriptl(buildin_set_ref); - add_scriptc(C_ARG); + script->addl(script->buildin_set_ref); + script->addc(C_ARG); // always append parenthesis to avoid errors - syntax.curly[syntax.curly_count].type = TYPE_ARGLIST; - syntax.curly[syntax.curly_count].count = 0; - syntax.curly[syntax.curly_count].flag = ARGLIST_PAREN; + script->syntax.curly[script->syntax.curly_count].type = TYPE_ARGLIST; + script->syntax.curly[script->syntax.curly_count].count = 0; + script->syntax.curly[script->syntax.curly_count].flag = ARGLIST_PAREN; // increment the total curly count for the position in the script - ++ syntax.curly_count; + ++ script->syntax.curly_count; // parse the variable currently being modified - word = add_word(var); + word = script->add_word(var); if( script->str_data[word].type == C_FUNC || script->str_data[word].type == C_USERFUNC || script->str_data[word].type == C_USERFUNC_POS ) {// cannot assign a variable which exists as a function or label @@ -967,9 +814,9 @@ const char* parse_variable(const char* p) { const char* p3 = NULL; // push the getelementofarray method into the stack - add_scriptl(buildin_getelementofarray_ref); - add_scriptc(C_ARG); - add_scriptl(word); + script->addl(script->buildin_getelementofarray_ref); + script->addc(C_ARG); + script->addl(word); // process the sub-expression for this assignment p3 = script->parse_subexpr(p2 + 1, 1); @@ -980,32 +827,32 @@ const char* parse_variable(const char* p) { } // push the closing function stack operator onto the stack - add_scriptc(C_FUNC); + script->addc(C_FUNC); p3 ++; } else {// simply push the variable or value onto the stack - add_scriptl(word); + script->addl(word); } if( type != C_EQ ) - add_scriptc(C_REF); + script->addc(C_REF); if( type == C_ADD_PP || type == C_SUB_PP ) {// incremental operator for the method - add_scripti(1); - add_scriptc(type == C_ADD_PP ? C_ADD : C_SUB); + script->addi(1); + script->addc(type == C_ADD_PP ? C_ADD : C_SUB); } else {// process the value as an expression p = script->parse_subexpr(p, -1); if( type != C_EQ ) {// push the type of modifier onto the stack - add_scriptc(type); + script->addc(type); } } // decrement the curly count for the position within the script - -- syntax.curly_count; + -- script->syntax.curly_count; // close the script by appending the function operator - add_scriptc(C_FUNC); + script->addc(C_FUNC); // push the buffer from the method return p; @@ -1022,18 +869,18 @@ const char* parse_simpleexpr(const char *p) if(*p==';' || *p==',') disp_error_message("parse_simpleexpr: unexpected end of expression",p); if(*p=='('){ - if( (i=syntax.curly_count-1) >= 0 && syntax.curly[i].type == TYPE_ARGLIST ) - ++syntax.curly[i].count; + if( (i=script->syntax.curly_count-1) >= 0 && script->syntax.curly[i].type == TYPE_ARGLIST ) + ++script->syntax.curly[i].count; p=script->parse_subexpr(p+1,-1); p=script->skip_space(p); - if( (i=syntax.curly_count-1) >= 0 && syntax.curly[i].type == TYPE_ARGLIST && - syntax.curly[i].flag == ARGLIST_UNDEFINED && --syntax.curly[i].count == 0 + if( (i=script->syntax.curly_count-1) >= 0 && script->syntax.curly[i].type == TYPE_ARGLIST && + script->syntax.curly[i].flag == ARGLIST_UNDEFINED && --script->syntax.curly[i].count == 0 ){ if( *p == ',' ){ - syntax.curly[i].flag = ARGLIST_PAREN; + script->syntax.curly[i].flag = ARGLIST_PAREN; return p; } else - syntax.curly[i].flag = ARGLIST_NO_PAREN; + script->syntax.curly[i].flag = ARGLIST_NO_PAREN; } if( *p != ')' ) disp_error_message("parse_simpleexpr: unmatched ')'",p); @@ -1044,15 +891,15 @@ const char* parse_simpleexpr(const char *p) i=strtoll(p,&np,0); if( i < INT_MIN ) { i = INT_MIN; - disp_warning_message("parse_simpleexpr: underflow detected, capping value to INT_MIN",p); + script->disp_warning_message("parse_simpleexpr: underflow detected, capping value to INT_MIN",p); } else if( i > INT_MAX ) { i = INT_MAX; - disp_warning_message("parse_simpleexpr: overflow detected, capping value to INT_MAX",p); + script->disp_warning_message("parse_simpleexpr: overflow detected, capping value to INT_MAX",p); } - add_scripti((int)i); + script->addi((int)i); p=np; } else if(*p=='"'){ - add_scriptc(C_STR); + script->addc(C_STR); p++; while( *p && *p != '"' ){ if( (unsigned char)p[-1] <= 0x7e && *p == '\\' ) { @@ -1062,56 +909,56 @@ const char* parse_simpleexpr(const char *p) if( n != 1 ) ShowDebug("parse_simpleexpr: unexpected length %d after unescape (\"%.*s\" -> %.*s)\n", (int)n, (int)len, p, (int)n, buf); p += len; - add_scriptb(*buf); + script->addb(*buf); continue; } else if( *p == '\n' ) disp_error_message("parse_simpleexpr: unexpected newline @ string",p); - add_scriptb(*p++); + script->addb(*p++); } if(!*p) disp_error_message("parse_simpleexpr: unexpected end of file @ string",p); - add_scriptb(0); + script->addb(0); p++; //'"' } else { int l; const char* pv; // label , register , function etc - if(skip_word(p)==p) + if(script->skip_word(p)==p) disp_error_message("parse_simpleexpr: unexpected character",p); - l=add_word(p); + l=script->add_word(p); if( script->str_data[l].type == C_FUNC || script->str_data[l].type == C_USERFUNC || script->str_data[l].type == C_USERFUNC_POS) - return parse_callfunc(p,1,0); + return script->parse_callfunc(p,1,0); #ifdef SCRIPT_CALLFUNC_CHECK else { const char* name = script->get_str(l); if( strdb_get(script->userfunc_db,name) != NULL ) { - return parse_callfunc(p,1,1); + return script->parse_callfunc(p,1,1); } } #endif - if( (pv = parse_variable(p)) ) + if( (pv = script->parse_variable(p)) ) {// successfully processed a variable assignment return pv; } - p=skip_word(p); + p=script->skip_word(p); if( *p == '[' ){ // array(name[i] => getelementofarray(name,i) ) - add_scriptl(buildin_getelementofarray_ref); - add_scriptc(C_ARG); - add_scriptl(l); + script->addl(script->buildin_getelementofarray_ref); + script->addc(C_ARG); + script->addl(l); p=script->parse_subexpr(p+1,-1); p=script->skip_space(p); if( *p != ']' ) disp_error_message("parse_simpleexpr: unmatched ']'",p); ++p; - add_scriptc(C_FUNC); + script->addc(C_FUNC); }else - add_scriptl(l); + script->addl(l); } @@ -1131,7 +978,7 @@ const char* script_parse_subexpr(const char* p,int limit) if( *p == '-' ){ tmpp = script->skip_space(p+1); if( *tmpp == ';' || *tmpp == ',' ){ - add_scriptl(LABEL_NEXTLINE); + script->addl(LABEL_NEXTLINE); p++; return p; } @@ -1139,9 +986,9 @@ const char* script_parse_subexpr(const char* p,int limit) if((op=C_NEG,*p=='-') || (op=C_LNOT,*p=='!') || (op=C_NOT,*p=='~')){ p=script->parse_subexpr(p+1,10); - add_scriptc(op); + script->addc(op); } else - p=parse_simpleexpr(p); + p=script->parse_simpleexpr(p); p=script->skip_space(p); while(( (op=C_OP3,opl=0,len=1,*p=='?') || @@ -1173,7 +1020,7 @@ const char* script_parse_subexpr(const char* p,int limit) } else { p=script->parse_subexpr(p,opl); } - add_scriptc(op); + script->addc(op); p=script->skip_space(p); } @@ -1204,40 +1051,40 @@ const char* parse_line(const char* p) p=script->skip_space(p); if(*p==';') { //Close decision for if(); for(); while(); - p = parse_syntax_close(p + 1); + p = script->parse_syntax_close(p + 1); return p; } - if(*p==')' && parse_syntax_for_flag) + if(*p==')' && script->parse_syntax_for_flag) return p+1; p = script->skip_space(p); if(p[0] == '{') { - syntax.curly[syntax.curly_count].type = TYPE_NULL; - syntax.curly[syntax.curly_count].count = -1; - syntax.curly[syntax.curly_count].index = -1; - syntax.curly_count++; + script->syntax.curly[script->syntax.curly_count].type = TYPE_NULL; + script->syntax.curly[script->syntax.curly_count].count = -1; + script->syntax.curly[script->syntax.curly_count].index = -1; + script->syntax.curly_count++; return p + 1; } else if(p[0] == '}') { - return parse_curly_close(p); + return script->parse_curly_close(p); } // Syntax-related processing - p2 = parse_syntax(p); + p2 = script->parse_syntax(p); if(p2 != NULL) return p2; // attempt to process a variable assignment - p2 = parse_variable(p); + p2 = script->parse_variable(p); if( p2 != NULL ) {// variable assignment processed so leave the method - return parse_syntax_close(p2 + 1); + return script->parse_syntax_close(p2 + 1); } - p = parse_callfunc(p,0,0); + p = script->parse_callfunc(p,0,0); p = script->skip_space(p); - if(parse_syntax_for_flag) { + if(script->parse_syntax_for_flag) { if( *p != ')' ) disp_error_message("parse_line: need ')'",p); } else { @@ -1246,7 +1093,7 @@ const char* parse_line(const char* p) } //Binding decision for if(), for(), while() - p = parse_syntax_close(p+1); + p = script->parse_syntax_close(p+1); return p; } @@ -1254,52 +1101,52 @@ const char* parse_line(const char* p) // { ... } Closing process const char* parse_curly_close(const char* p) { - if(syntax.curly_count <= 0) { + if(script->syntax.curly_count <= 0) { disp_error_message("parse_curly_close: unexpected string",p); return p + 1; - } else if(syntax.curly[syntax.curly_count-1].type == TYPE_NULL) { - syntax.curly_count--; + } else if(script->syntax.curly[script->syntax.curly_count-1].type == TYPE_NULL) { + script->syntax.curly_count--; //Close decision if, for , while - p = parse_syntax_close(p + 1); + p = script->parse_syntax_close(p + 1); return p; - } else if(syntax.curly[syntax.curly_count-1].type == TYPE_SWITCH) { + } else if(script->syntax.curly[script->syntax.curly_count-1].type == TYPE_SWITCH) { //Closing switch() - int pos = syntax.curly_count-1; + int pos = script->syntax.curly_count-1; char label[256]; int l; // Remove temporary variables - sprintf(label,"set $@__SW%x_VAL,0;",syntax.curly[pos].index); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"set $@__SW%x_VAL,0;",script->syntax.curly[pos].index); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // Go to the end pointer unconditionally - sprintf(label,"goto __SW%x_FIN;",syntax.curly[pos].index); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"goto __SW%x_FIN;",script->syntax.curly[pos].index); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // You are here labeled - sprintf(label,"__SW%x_%x",syntax.curly[pos].index,syntax.curly[pos].count); + sprintf(label,"__SW%x_%x",script->syntax.curly[pos].index,script->syntax.curly[pos].count); l=script->add_str(label); - set_label(l,script_pos, p); + script->set_label(l,script->pos, p); - if(syntax.curly[pos].flag) { + if(script->syntax.curly[pos].flag) { //Exists default - sprintf(label,"goto __SW%x_DEF;",syntax.curly[pos].index); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"goto __SW%x_DEF;",script->syntax.curly[pos].index); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; } // Label end - sprintf(label,"__SW%x_FIN",syntax.curly[pos].index); + sprintf(label,"__SW%x_FIN",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos, p); - linkdb_final(&syntax.curly[pos].case_label); // free the list of case label - syntax.curly_count--; + script->set_label(l,script->pos, p); + linkdb_final(&script->syntax.curly[pos].case_label); // free the list of case label + script->syntax.curly_count--; //Closing decision if, for , while - p = parse_syntax_close(p + 1); + p = script->parse_syntax_close(p + 1); return p; } else { disp_error_message("parse_curly_close: unexpected string",p); @@ -1312,7 +1159,7 @@ const char* parse_curly_close(const char* p) // if, switch, while ? will handle this internally. const char* parse_syntax(const char* p) { - const char *p2 = skip_word(p); + const char *p2 = script->skip_word(p); switch(*p) { case 'B': @@ -1320,19 +1167,19 @@ const char* parse_syntax(const char* p) if(p2 - p == 5 && !strncasecmp(p,"break",5)) { // break Processing char label[256]; - int pos = syntax.curly_count - 1; + int pos = script->syntax.curly_count - 1; while(pos >= 0) { - if(syntax.curly[pos].type == TYPE_DO) { - sprintf(label,"goto __DO%x_FIN;",syntax.curly[pos].index); + if(script->syntax.curly[pos].type == TYPE_DO) { + sprintf(label,"goto __DO%x_FIN;",script->syntax.curly[pos].index); break; - } else if(syntax.curly[pos].type == TYPE_FOR) { - sprintf(label,"goto __FR%x_FIN;",syntax.curly[pos].index); + } else if(script->syntax.curly[pos].type == TYPE_FOR) { + sprintf(label,"goto __FR%x_FIN;",script->syntax.curly[pos].index); break; - } else if(syntax.curly[pos].type == TYPE_WHILE) { - sprintf(label,"goto __WL%x_FIN;",syntax.curly[pos].index); + } else if(script->syntax.curly[pos].type == TYPE_WHILE) { + sprintf(label,"goto __WL%x_FIN;",script->syntax.curly[pos].index); break; - } else if(syntax.curly[pos].type == TYPE_SWITCH) { - sprintf(label,"goto __SW%x_FIN;",syntax.curly[pos].index); + } else if(script->syntax.curly[pos].type == TYPE_SWITCH) { + sprintf(label,"goto __SW%x_FIN;",script->syntax.curly[pos].index); break; } pos--; @@ -1340,15 +1187,15 @@ const char* parse_syntax(const char* p) if(pos < 0) { disp_error_message("parse_syntax: unexpected 'break'",p); } else { - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; } p = script->skip_space(p2); if(*p != ';') disp_error_message("parse_syntax: need ';'",p); // Closing decision if, for , while - p = parse_syntax_close(p + 1); + p = script->parse_syntax_close(p + 1); return p; } break; @@ -1356,25 +1203,25 @@ const char* parse_syntax(const char* p) case 'C': if(p2 - p == 4 && !strncasecmp(p,"case",4)) { //Processing case - int pos = syntax.curly_count-1; - if(pos < 0 || syntax.curly[pos].type != TYPE_SWITCH) { + int pos = script->syntax.curly_count-1; + if(pos < 0 || script->syntax.curly[pos].type != TYPE_SWITCH) { disp_error_message("parse_syntax: unexpected 'case' ",p); return p+1; } else { char label[256]; int l,v; char *np; - if(syntax.curly[pos].count != 1) { + if(script->syntax.curly[pos].count != 1) { //Jump for FALLTHRU - sprintf(label,"goto __SW%x_%xJ;",syntax.curly[pos].index,syntax.curly[pos].count); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"goto __SW%x_%xJ;",script->syntax.curly[pos].index,script->syntax.curly[pos].count); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // You are here labeled - sprintf(label,"__SW%x_%x",syntax.curly[pos].index,syntax.curly[pos].count); + sprintf(label,"__SW%x_%x",script->syntax.curly[pos].index,script->syntax.curly[pos].count); l=script->add_str(label); - set_label(l,script_pos, p); + script->set_label(l,script->pos, p); } //Decision statement switch p = script->skip_space(p2); @@ -1384,17 +1231,17 @@ const char* parse_syntax(const char* p) // check whether case label is integer or not v = strtol(p,&np,0); if(np == p) { //Check for constants - p2 = skip_word(p); + p2 = script->skip_word(p); v = p2-p; // length of word at p2 memcpy(label,p,v); label[v]='\0'; if( !script->get_constant(label, &v) ) disp_error_message("parse_syntax: 'case' label is not an integer",p); - p = skip_word(p); + p = script->skip_word(p); } else { //Numeric value if((*p == '-' || *p == '+') && ISDIGIT(p[1])) // pre-skip because '-' can not skip_word p++; - p = skip_word(p); + p = script->skip_word(p); if(np != p) disp_error_message("parse_syntax: 'case' label is not an integer",np); } @@ -1402,45 +1249,45 @@ const char* parse_syntax(const char* p) if(*p != ':') disp_error_message("parse_syntax: expect ':'",p); sprintf(label,"if(%d != $@__SW%x_VAL) goto __SW%x_%x;", - v,syntax.curly[pos].index,syntax.curly[pos].index,syntax.curly[pos].count+1); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; + v,script->syntax.curly[pos].index,script->syntax.curly[pos].index,script->syntax.curly[pos].count+1); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; // Bad I do not parse twice - p2 = parse_line(label); - parse_line(p2); - syntax.curly_count--; - if(syntax.curly[pos].count != 1) { + p2 = script->parse_line(label); + script->parse_line(p2); + script->syntax.curly_count--; + if(script->syntax.curly[pos].count != 1) { // Label after the completion of FALLTHRU - sprintf(label,"__SW%x_%xJ",syntax.curly[pos].index,syntax.curly[pos].count); + sprintf(label,"__SW%x_%xJ",script->syntax.curly[pos].index,script->syntax.curly[pos].count); l=script->add_str(label); - set_label(l,script_pos,p); + script->set_label(l,script->pos,p); } // check duplication of case label [Rayce] - if(linkdb_search(&syntax.curly[pos].case_label, (void*)__64BPTRSIZE(v)) != NULL) + if(linkdb_search(&script->syntax.curly[pos].case_label, (void*)__64BPTRSIZE(v)) != NULL) disp_error_message("parse_syntax: dup 'case'",p); - linkdb_insert(&syntax.curly[pos].case_label, (void*)__64BPTRSIZE(v), (void*)1); + linkdb_insert(&script->syntax.curly[pos].case_label, (void*)__64BPTRSIZE(v), (void*)1); - sprintf(label,"set $@__SW%x_VAL,0;",syntax.curly[pos].index); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; + sprintf(label,"set $@__SW%x_VAL,0;",script->syntax.curly[pos].index); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; - syntax.curly[pos].count++; + script->parse_line(label); + script->syntax.curly_count--; + script->syntax.curly[pos].count++; } return p + 1; } else if(p2 - p == 8 && !strncasecmp(p,"continue",8)) { // Processing continue char label[256]; - int pos = syntax.curly_count - 1; + int pos = script->syntax.curly_count - 1; while(pos >= 0) { - if(syntax.curly[pos].type == TYPE_DO) { - sprintf(label,"goto __DO%x_NXT;",syntax.curly[pos].index); - syntax.curly[pos].flag = 1; //Flag put the link for continue + if(script->syntax.curly[pos].type == TYPE_DO) { + sprintf(label,"goto __DO%x_NXT;",script->syntax.curly[pos].index); + script->syntax.curly[pos].flag = 1; //Flag put the link for continue break; - } else if(syntax.curly[pos].type == TYPE_FOR) { - sprintf(label,"goto __FR%x_NXT;",syntax.curly[pos].index); + } else if(script->syntax.curly[pos].type == TYPE_FOR) { + sprintf(label,"goto __FR%x_NXT;",script->syntax.curly[pos].index); break; - } else if(syntax.curly[pos].type == TYPE_WHILE) { - sprintf(label,"goto __WL%x_NXT;",syntax.curly[pos].index); + } else if(script->syntax.curly[pos].type == TYPE_WHILE) { + sprintf(label,"goto __WL%x_NXT;",script->syntax.curly[pos].index); break; } pos--; @@ -1448,15 +1295,15 @@ const char* parse_syntax(const char* p) if(pos < 0) { disp_error_message("parse_syntax: unexpected 'continue'",p); } else { - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; } p = script->skip_space(p2); if(*p != ';') disp_error_message("parse_syntax: need ';'",p); //Closing decision if, for , while - p = parse_syntax_close(p + 1); + p = script->parse_syntax_close(p + 1); return p; } break; @@ -1464,10 +1311,10 @@ const char* parse_syntax(const char* p) case 'D': if(p2 - p == 7 && !strncasecmp(p,"default",7)) { // Switch - default processing - int pos = syntax.curly_count-1; - if(pos < 0 || syntax.curly[pos].type != TYPE_SWITCH) { + int pos = script->syntax.curly_count-1; + if(pos < 0 || script->syntax.curly[pos].type != TYPE_SWITCH) { disp_error_message("parse_syntax: unexpected 'default'",p); - } else if(syntax.curly[pos].flag) { + } else if(script->syntax.curly[pos].flag) { disp_error_message("parse_syntax: dup 'default'",p); } else { char label[256]; @@ -1477,23 +1324,23 @@ const char* parse_syntax(const char* p) if(*p != ':') { disp_error_message("parse_syntax: need ':'",p); } - sprintf(label,"__SW%x_%x",syntax.curly[pos].index,syntax.curly[pos].count); + sprintf(label,"__SW%x_%x",script->syntax.curly[pos].index,script->syntax.curly[pos].count); l=script->add_str(label); - set_label(l,script_pos,p); + script->set_label(l,script->pos,p); // Skip to the next link w/o condition - sprintf(label,"goto __SW%x_%x;",syntax.curly[pos].index,syntax.curly[pos].count+1); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"goto __SW%x_%x;",script->syntax.curly[pos].index,script->syntax.curly[pos].count+1); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // The default label - sprintf(label,"__SW%x_DEF",syntax.curly[pos].index); + sprintf(label,"__SW%x_DEF",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos,p); + script->set_label(l,script->pos,p); - syntax.curly[syntax.curly_count - 1].flag = 1; - syntax.curly[pos].count++; + script->syntax.curly[script->syntax.curly_count - 1].flag = 1; + script->syntax.curly[pos].count++; } return p + 1; } else if(p2 - p == 2 && !strncasecmp(p,"do",2)) { @@ -1501,15 +1348,15 @@ const char* parse_syntax(const char* p) char label[256]; p=script->skip_space(p2); - syntax.curly[syntax.curly_count].type = TYPE_DO; - syntax.curly[syntax.curly_count].count = 1; - syntax.curly[syntax.curly_count].index = syntax.index++; - syntax.curly[syntax.curly_count].flag = 0; + script->syntax.curly[script->syntax.curly_count].type = TYPE_DO; + script->syntax.curly[script->syntax.curly_count].count = 1; + script->syntax.curly[script->syntax.curly_count].index = script->syntax.index++; + script->syntax.curly[script->syntax.curly_count].flag = 0; // Label of the (do) form here - sprintf(label,"__DO%x_BGN",syntax.curly[syntax.curly_count].index); + sprintf(label,"__DO%x_BGN",script->syntax.curly[script->syntax.curly_count].index); l=script->add_str(label); - set_label(l,script_pos,p); - syntax.curly_count++; + script->set_label(l,script->pos,p); + script->syntax.curly_count++; return p; } break; @@ -1518,12 +1365,12 @@ const char* parse_syntax(const char* p) if(p2 - p == 3 && !strncasecmp(p,"for",3)) { int l; char label[256]; - int pos = syntax.curly_count; - syntax.curly[syntax.curly_count].type = TYPE_FOR; - syntax.curly[syntax.curly_count].count = 1; - syntax.curly[syntax.curly_count].index = syntax.index++; - syntax.curly[syntax.curly_count].flag = 0; - syntax.curly_count++; + int pos = script->syntax.curly_count; + script->syntax.curly[script->syntax.curly_count].type = TYPE_FOR; + script->syntax.curly[script->syntax.curly_count].count = 1; + script->syntax.curly[script->syntax.curly_count].index = script->syntax.index++; + script->syntax.curly[script->syntax.curly_count].flag = 0; + script->syntax.curly_count++; p=script->skip_space(p2); @@ -1532,14 +1379,14 @@ const char* parse_syntax(const char* p) p++; // Execute the initialization statement - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - p=parse_line(p); - syntax.curly_count--; + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + p=script->parse_line(p); + script->syntax.curly_count--; // Form the start of label decision - sprintf(label,"__FR%x_J",syntax.curly[pos].index); + sprintf(label,"__FR%x_J",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos,p); + script->set_label(l,script->pos,p); p=script->skip_space(p); if(*p == ';') { @@ -1547,47 +1394,47 @@ const char* parse_syntax(const char* p) ; } else { // Skip to the end point if the condition is false - sprintf(label,"__FR%x_FIN",syntax.curly[pos].index); - add_scriptl(script->add_str("jump_zero")); - add_scriptc(C_ARG); - p=parse_expr(p); + sprintf(label,"__FR%x_FIN",script->syntax.curly[pos].index); + script->addl(script->add_str("jump_zero")); + script->addc(C_ARG); + p=script->parse_expr(p); p=script->skip_space(p); - add_scriptl(script->add_str(label)); - add_scriptc(C_FUNC); + script->addl(script->add_str(label)); + script->addc(C_FUNC); } if(*p != ';') disp_error_message("parse_syntax: need ';'",p); p++; // Skip to the beginning of the loop - sprintf(label,"goto __FR%x_BGN;",syntax.curly[pos].index); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"goto __FR%x_BGN;",script->syntax.curly[pos].index); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // Labels to form the next loop - sprintf(label,"__FR%x_NXT",syntax.curly[pos].index); + sprintf(label,"__FR%x_NXT",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos,p); + script->set_label(l,script->pos,p); // Process the next time you enter the loop // A ')' last for; flag to be treated as' - parse_syntax_for_flag = 1; - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - p=parse_line(p); - syntax.curly_count--; - parse_syntax_for_flag = 0; + script->parse_syntax_for_flag = 1; + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + p=script->parse_line(p); + script->syntax.curly_count--; + script->parse_syntax_for_flag = 0; // Skip to the determination process conditions - sprintf(label,"goto __FR%x_J;",syntax.curly[pos].index); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"goto __FR%x_J;",script->syntax.curly[pos].index); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // Loop start labeling - sprintf(label,"__FR%x_BGN",syntax.curly[pos].index); + sprintf(label,"__FR%x_BGN",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos,p); + script->set_label(l,script->pos,p); return p; } else if( p2 - p == 8 && strncasecmp(p,"function",8) == 0 ) @@ -1595,7 +1442,7 @@ const char* parse_syntax(const char* p) const char *func_name; func_name = script->skip_space(p2); - p = skip_word(func_name); + p = script->skip_word(func_name); if( p == func_name ) disp_error_message("parse_syntax:function: function name is missing or invalid", p); p2 = script->skip_space(p); @@ -1603,7 +1450,7 @@ const char* parse_syntax(const char* p) {// function <name> ; // function declaration - just register the name int l; - l = add_word(func_name); + l = script->add_word(func_name); if( script->str_data[l].type == C_NOP )// register only, if the name was not used by something else script->str_data[l].type = C_USERFUNC; else if( script->str_data[l].type == C_USERFUNC ) @@ -1612,7 +1459,7 @@ const char* parse_syntax(const char* p) disp_error_message("parse_syntax:function: function name is invalid", func_name); // Close condition of if, for, while - p = parse_syntax_close(p2 + 1); + p = script->parse_syntax_close(p2 + 1); return p; } else if(*p2 == '{') @@ -1620,27 +1467,27 @@ const char* parse_syntax(const char* p) char label[256]; int l; - syntax.curly[syntax.curly_count].type = TYPE_USERFUNC; - syntax.curly[syntax.curly_count].count = 1; - syntax.curly[syntax.curly_count].index = syntax.index++; - syntax.curly[syntax.curly_count].flag = 0; - ++syntax.curly_count; + script->syntax.curly[script->syntax.curly_count].type = TYPE_USERFUNC; + script->syntax.curly[script->syntax.curly_count].count = 1; + script->syntax.curly[script->syntax.curly_count].index = script->syntax.index++; + script->syntax.curly[script->syntax.curly_count].flag = 0; + ++script->syntax.curly_count; // Jump over the function code - sprintf(label, "goto __FN%x_FIN;", syntax.curly[syntax.curly_count-1].index); - syntax.curly[syntax.curly_count].type = TYPE_NULL; - ++syntax.curly_count; - parse_line(label); - --syntax.curly_count; + sprintf(label, "goto __FN%x_FIN;", script->syntax.curly[script->syntax.curly_count-1].index); + script->syntax.curly[script->syntax.curly_count].type = TYPE_NULL; + ++script->syntax.curly_count; + script->parse_line(label); + --script->syntax.curly_count; // Set the position of the function (label) - l=add_word(func_name); + l=script->add_word(func_name); if( script->str_data[l].type == C_NOP || script->str_data[l].type == C_USERFUNC )// register only, if the name was not used by something else { script->str_data[l].type = C_USERFUNC; - set_label(l, script_pos, p); - if( parse_options&SCRIPT_USE_LABEL_DB ) - script->label_add(l,script_pos); + script->set_label(l, script->pos, p); + if( script->parse_options&SCRIPT_USE_LABEL_DB ) + script->label_add(l,script->pos); } else disp_error_message("parse_syntax:function: function name is invalid", func_name); @@ -1659,21 +1506,21 @@ const char* parse_syntax(const char* p) // If process char label[256]; p=script->skip_space(p2); - if(*p != '(') { //Prevent if this {} non-c syntax. from Rayce (jA) + if(*p != '(') { //Prevent if this {} non-c script->syntax. from Rayce (jA) disp_error_message("need '('",p); } - syntax.curly[syntax.curly_count].type = TYPE_IF; - syntax.curly[syntax.curly_count].count = 1; - syntax.curly[syntax.curly_count].index = syntax.index++; - syntax.curly[syntax.curly_count].flag = 0; - sprintf(label,"__IF%x_%x",syntax.curly[syntax.curly_count].index,syntax.curly[syntax.curly_count].count); - syntax.curly_count++; - add_scriptl(script->add_str("jump_zero")); - add_scriptc(C_ARG); - p=parse_expr(p); + script->syntax.curly[script->syntax.curly_count].type = TYPE_IF; + script->syntax.curly[script->syntax.curly_count].count = 1; + script->syntax.curly[script->syntax.curly_count].index = script->syntax.index++; + script->syntax.curly[script->syntax.curly_count].flag = 0; + sprintf(label,"__IF%x_%x",script->syntax.curly[script->syntax.curly_count].index,script->syntax.curly[script->syntax.curly_count].count); + script->syntax.curly_count++; + script->addl(script->add_str("jump_zero")); + script->addc(C_ARG); + p=script->parse_expr(p); p=script->skip_space(p); - add_scriptl(script->add_str(label)); - add_scriptc(C_FUNC); + script->addl(script->add_str(label)); + script->addc(C_FUNC); return p; } break; @@ -1686,21 +1533,21 @@ const char* parse_syntax(const char* p) if(*p != '(') { disp_error_message("need '('",p); } - syntax.curly[syntax.curly_count].type = TYPE_SWITCH; - syntax.curly[syntax.curly_count].count = 1; - syntax.curly[syntax.curly_count].index = syntax.index++; - syntax.curly[syntax.curly_count].flag = 0; - sprintf(label,"$@__SW%x_VAL",syntax.curly[syntax.curly_count].index); - syntax.curly_count++; - add_scriptl(script->add_str("set")); - add_scriptc(C_ARG); - add_scriptl(script->add_str(label)); - p=parse_expr(p); + script->syntax.curly[script->syntax.curly_count].type = TYPE_SWITCH; + script->syntax.curly[script->syntax.curly_count].count = 1; + script->syntax.curly[script->syntax.curly_count].index = script->syntax.index++; + script->syntax.curly[script->syntax.curly_count].flag = 0; + sprintf(label,"$@__SW%x_VAL",script->syntax.curly[script->syntax.curly_count].index); + script->syntax.curly_count++; + script->addl(script->add_str("set")); + script->addc(C_ARG); + script->addl(script->add_str(label)); + p=script->parse_expr(p); p=script->skip_space(p); if(*p != '{') { disp_error_message("parse_syntax: need '{'",p); } - add_scriptc(C_FUNC); + script->addc(C_FUNC); return p + 1; } break; @@ -1713,24 +1560,24 @@ const char* parse_syntax(const char* p) if(*p != '(') { disp_error_message("need '('",p); } - syntax.curly[syntax.curly_count].type = TYPE_WHILE; - syntax.curly[syntax.curly_count].count = 1; - syntax.curly[syntax.curly_count].index = syntax.index++; - syntax.curly[syntax.curly_count].flag = 0; + script->syntax.curly[script->syntax.curly_count].type = TYPE_WHILE; + script->syntax.curly[script->syntax.curly_count].count = 1; + script->syntax.curly[script->syntax.curly_count].index = script->syntax.index++; + script->syntax.curly[script->syntax.curly_count].flag = 0; // Form the start of label decision - sprintf(label,"__WL%x_NXT",syntax.curly[syntax.curly_count].index); + sprintf(label,"__WL%x_NXT",script->syntax.curly[script->syntax.curly_count].index); l=script->add_str(label); - set_label(l,script_pos,p); + script->set_label(l,script->pos,p); // Skip to the end point if the condition is false - sprintf(label,"__WL%x_FIN",syntax.curly[syntax.curly_count].index); - syntax.curly_count++; - add_scriptl(script->add_str("jump_zero")); - add_scriptc(C_ARG); - p=parse_expr(p); + sprintf(label,"__WL%x_FIN",script->syntax.curly[script->syntax.curly_count].index); + script->syntax.curly_count++; + script->addl(script->add_str("jump_zero")); + script->addc(C_ARG); + p=script->parse_expr(p); p=script->skip_space(p); - add_scriptl(script->add_str(label)); - add_scriptc(C_FUNC); + script->addl(script->add_str(label)); + script->addc(C_FUNC); return p; } break; @@ -1743,7 +1590,7 @@ const char* parse_syntax_close(const char *p) { int flag; do { - p = parse_syntax_close_sub(p,&flag); + p = script->parse_syntax_close_sub(p,&flag); } while(flag); return p; } @@ -1754,88 +1601,88 @@ const char* parse_syntax_close(const char *p) { const char* parse_syntax_close_sub(const char* p,int* flag) { char label[256]; - int pos = syntax.curly_count - 1; + int pos = script->syntax.curly_count - 1; int l; *flag = 1; - if(syntax.curly_count <= 0) { + if(script->syntax.curly_count <= 0) { *flag = 0; return p; - } else if(syntax.curly[pos].type == TYPE_IF) { + } else if(script->syntax.curly[pos].type == TYPE_IF) { const char *bp = p; const char *p2; // if-block and else-block end is a new line - parse_nextline(false, p); + script->parse_nextline(false, p); // Skip to the last location if - sprintf(label,"goto __IF%x_FIN;",syntax.curly[pos].index); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"goto __IF%x_FIN;",script->syntax.curly[pos].index); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // Put the label of the location - sprintf(label,"__IF%x_%x",syntax.curly[pos].index,syntax.curly[pos].count); + sprintf(label,"__IF%x_%x",script->syntax.curly[pos].index,script->syntax.curly[pos].count); l=script->add_str(label); - set_label(l,script_pos,p); + script->set_label(l,script->pos,p); - syntax.curly[pos].count++; + script->syntax.curly[pos].count++; p = script->skip_space(p); - p2 = skip_word(p); - if(!syntax.curly[pos].flag && p2 - p == 4 && !strncasecmp(p,"else",4)) { + p2 = script->skip_word(p); + if(!script->syntax.curly[pos].flag && p2 - p == 4 && !strncasecmp(p,"else",4)) { // else or else - if p = script->skip_space(p2); - p2 = skip_word(p); + p2 = script->skip_word(p); if(p2 - p == 2 && !strncasecmp(p,"if",2)) { // else - if p=script->skip_space(p2); if(*p != '(') { disp_error_message("need '('",p); } - sprintf(label,"__IF%x_%x",syntax.curly[pos].index,syntax.curly[pos].count); - add_scriptl(script->add_str("jump_zero")); - add_scriptc(C_ARG); - p=parse_expr(p); + sprintf(label,"__IF%x_%x",script->syntax.curly[pos].index,script->syntax.curly[pos].count); + script->addl(script->add_str("jump_zero")); + script->addc(C_ARG); + p=script->parse_expr(p); p=script->skip_space(p); - add_scriptl(script->add_str(label)); - add_scriptc(C_FUNC); + script->addl(script->add_str(label)); + script->addc(C_FUNC); *flag = 0; return p; } else { // else - if(!syntax.curly[pos].flag) { - syntax.curly[pos].flag = 1; + if(!script->syntax.curly[pos].flag) { + script->syntax.curly[pos].flag = 1; *flag = 0; return p; } } } // Close if - syntax.curly_count--; + script->syntax.curly_count--; // Put the label of the final location - sprintf(label,"__IF%x_FIN",syntax.curly[pos].index); + sprintf(label,"__IF%x_FIN",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos,p); - if(syntax.curly[pos].flag == 1) { + script->set_label(l,script->pos,p); + if(script->syntax.curly[pos].flag == 1) { // Because the position of the pointer is the same if not else for this return bp; } return p; - } else if(syntax.curly[pos].type == TYPE_DO) { + } else if(script->syntax.curly[pos].type == TYPE_DO) { int l; char label[256]; const char *p2; - if(syntax.curly[pos].flag) { + if(script->syntax.curly[pos].flag) { // (Come here continue) to form the label here - sprintf(label,"__DO%x_NXT",syntax.curly[pos].index); + sprintf(label,"__DO%x_NXT",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos,p); + script->set_label(l,script->pos,p); } // Skip to the end point if the condition is false p = script->skip_space(p); - p2 = skip_word(p); + p2 = script->skip_word(p); if(p2 - p != 5 || strncasecmp(p,"while",5)) disp_error_message("parse_syntax: need 'while'",p); @@ -1845,81 +1692,81 @@ const char* parse_syntax_close_sub(const char* p,int* flag) } // do-block end is a new line - parse_nextline(false, p); + script->parse_nextline(false, p); - sprintf(label,"__DO%x_FIN",syntax.curly[pos].index); - add_scriptl(script->add_str("jump_zero")); - add_scriptc(C_ARG); - p=parse_expr(p); + sprintf(label,"__DO%x_FIN",script->syntax.curly[pos].index); + script->addl(script->add_str("jump_zero")); + script->addc(C_ARG); + p=script->parse_expr(p); p=script->skip_space(p); - add_scriptl(script->add_str(label)); - add_scriptc(C_FUNC); + script->addl(script->add_str(label)); + script->addc(C_FUNC); // Skip to the starting point - sprintf(label,"goto __DO%x_BGN;",syntax.curly[pos].index); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"goto __DO%x_BGN;",script->syntax.curly[pos].index); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // Form label of the end point conditions - sprintf(label,"__DO%x_FIN",syntax.curly[pos].index); + sprintf(label,"__DO%x_FIN",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos,p); + script->set_label(l,script->pos,p); p = script->skip_space(p); if(*p != ';') { disp_error_message("parse_syntax: need ';'",p); return p+1; } p++; - syntax.curly_count--; + script->syntax.curly_count--; return p; - } else if(syntax.curly[pos].type == TYPE_FOR) { + } else if(script->syntax.curly[pos].type == TYPE_FOR) { // for-block end is a new line - parse_nextline(false, p); + script->parse_nextline(false, p); // Skip to the next loop - sprintf(label,"goto __FR%x_NXT;",syntax.curly[pos].index); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"goto __FR%x_NXT;",script->syntax.curly[pos].index); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // End for labeling - sprintf(label,"__FR%x_FIN",syntax.curly[pos].index); + sprintf(label,"__FR%x_FIN",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos,p); - syntax.curly_count--; + script->set_label(l,script->pos,p); + script->syntax.curly_count--; return p; - } else if(syntax.curly[pos].type == TYPE_WHILE) { + } else if(script->syntax.curly[pos].type == TYPE_WHILE) { // while-block end is a new line - parse_nextline(false, p); + script->parse_nextline(false, p); // Skip to the decision while - sprintf(label,"goto __WL%x_NXT;",syntax.curly[pos].index); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + sprintf(label,"goto __WL%x_NXT;",script->syntax.curly[pos].index); + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // End while labeling - sprintf(label,"__WL%x_FIN",syntax.curly[pos].index); + sprintf(label,"__WL%x_FIN",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos,p); - syntax.curly_count--; + script->set_label(l,script->pos,p); + script->syntax.curly_count--; return p; - } else if(syntax.curly[syntax.curly_count-1].type == TYPE_USERFUNC) { - int pos = syntax.curly_count-1; + } else if(script->syntax.curly[script->syntax.curly_count-1].type == TYPE_USERFUNC) { + int pos = script->syntax.curly_count-1; char label[256]; int l; // Back sprintf(label,"return;"); - syntax.curly[syntax.curly_count++].type = TYPE_NULL; - parse_line(label); - syntax.curly_count--; + script->syntax.curly[script->syntax.curly_count++].type = TYPE_NULL; + script->parse_line(label); + script->syntax.curly_count--; // Put the label of the location - sprintf(label,"__FN%x_FIN",syntax.curly[pos].index); + sprintf(label,"__FN%x_FIN",script->syntax.curly[pos].index); l=script->add_str(label); - set_label(l,script_pos,p); - syntax.curly_count--; + script->set_label(l,script->pos,p); + script->syntax.curly_count--; return p; } else { *flag = 0; @@ -1951,7 +1798,7 @@ void script_set_constant(const char* name, int value, bool isparameter) { } else if( script->str_data[n].type == C_PARAM || script->str_data[n].type == C_INT ) {// existing parameter or constant ShowError("script_set_constant: Attempted to overwrite existing %s '%s' (old value=%d, new value=%d).\n", ( script->str_data[n].type == C_PARAM ) ? "parameter" : "constant", name, script->str_data[n].val, value); } else {// existing name - ShowError("script_set_constant: Invalid name for %s '%s' (already defined as %s).\n", isparameter ? "parameter" : "constant", name, script_op2name(script->str_data[n].type)); + ShowError("script_set_constant: Invalid name for %s '%s' (already defined as %s).\n", isparameter ? "parameter" : "constant", name, script->op2name(script->str_data[n].type)); } } /* adds data to a existent constant in the database, inserted normally via parse */ @@ -1992,7 +1839,7 @@ void script_set_constant_force(const char *name, int value, bool isparameter) { * Reading constant databases * const.txt *------------------------------------------*/ -static void read_constdb(void) { +void read_constdb(void) { FILE *fp; char line[1024],name[1024],val[1024]; int type; @@ -2010,7 +1857,7 @@ static void read_constdb(void) { type=0; if(sscanf(line,"%[A-Za-z0-9_],%[-0-9xXA-Fa-f],%d",name,val,&type)>=2 || sscanf(line,"%[A-Za-z0-9_] %[-0-9xXA-Fa-f] %d",name,val,&type)>=2){ - script_set_constant(name, (int)strtol(val, NULL, 0), (bool)type); + script->set_constant(name, (int)strtol(val, NULL, 0), (bool)type); } } fclose(fp); @@ -2019,7 +1866,7 @@ static void read_constdb(void) { /*========================================== * Display emplacement line of script *------------------------------------------*/ -static const char* script_print_line(StringBuf* buf, const char* p, const char* mark, int line) +const char* script_print_line(StringBuf* buf, const char* p, const char* mark, int line) { int i; if( p == NULL || !p[0] ) return NULL; @@ -2063,11 +1910,11 @@ void script_errorwarning_sub(StringBuf *buf, const char* src, const char* file, StrBuf->Printf(buf, " %s\n", error_msg); for(j = 0; j < 5; j++ ) { - script_print_line(buf, linestart[j], NULL, line + j - 5); + script->print_line(buf, linestart[j], NULL, line + j - 5); } - p = script_print_line(buf, p, error_pos, -line); + p = script->print_line(buf, p, error_pos, -line); for(j = 0; j < 5; j++) { - p = script_print_line(buf, p, NULL, line + j + 1 ); + p = script->print_line(buf, p, NULL, line + j + 1 ); } } @@ -2077,7 +1924,7 @@ void script_error(const char* src, const char* file, int start_line, const char* StrBuf->Init(&buf); StrBuf->AppendStr(&buf, "\a\n"); - script_errorwarning_sub(&buf, src, file, start_line, error_msg, error_pos); + script->errorwarning_sub(&buf, src, file, start_line, error_msg, error_pos); ShowError("%s", StrBuf->Value(&buf)); StrBuf->Destroy(&buf); @@ -2088,7 +1935,7 @@ void script_warning(const char* src, const char* file, int start_line, const cha StrBuf->Init(&buf); - script_errorwarning_sub(&buf, src, file, start_line, error_msg, error_pos); + script->errorwarning_sub(&buf, src, file, start_line, error_msg, error_pos); ShowWarning("%s", StrBuf->Value(&buf)); StrBuf->Destroy(&buf); @@ -2104,54 +1951,55 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o struct script_code* code = NULL; char end; bool unresolved_names = false; - parser_current_src = src; - parser_current_file = file; - parser_current_line = line; + + script->parser_current_src = src; + script->parser_current_file = file; + script->parser_current_line = line; if( src == NULL ) return NULL;// empty script - memset(&syntax,0,sizeof(syntax)); + memset(&script->syntax,0,sizeof(script->syntax)); - script_buf=(unsigned char *)aMalloc(SCRIPT_BLOCK_SIZE*sizeof(unsigned char)); - script_pos=0; - script_size=SCRIPT_BLOCK_SIZE; - parse_nextline(true, NULL); + script->buf=(unsigned char *)aMalloc(SCRIPT_BLOCK_SIZE*sizeof(unsigned char)); + script->pos=0; + script->size=SCRIPT_BLOCK_SIZE; + script->parse_nextline(true, NULL); // who called parse_script is responsible for clearing the database after using it, but just in case... lets clear it here if( options&SCRIPT_USE_LABEL_DB ) script->label_count = 0; - parse_options = options; + script->parse_options = options; - if( setjmp( error_jump ) != 0 ) { + if( setjmp( script->error_jump ) != 0 ) { //Restore program state when script has problems. [from jA] int i; - const int size = ARRAYLENGTH(syntax.curly); - if( error_report ) - script->error(src,file,line,error_msg,error_pos); - aFree( error_msg ); - aFree( script_buf ); - script_pos = 0; - script_size = 0; - script_buf = NULL; + const int size = ARRAYLENGTH(script->syntax.curly); + if( script->error_report ) + script->error(src,file,line,script->error_msg,script->error_pos); + aFree( script->error_msg ); + aFree( script->buf ); + script->pos = 0; + script->size = 0; + script->buf = NULL; for(i=LABEL_START;i<script->str_num;i++) if(script->str_data[i].type == C_NOP) script->str_data[i].type = C_NAME; for(i=0; i<size; i++) - linkdb_final(&syntax.curly[i].case_label); + linkdb_final(&script->syntax.curly[i].case_label); return NULL; } - parse_syntax_for_flag=0; + script->parse_syntax_for_flag=0; p=src; p=script->skip_space(p); if( options&SCRIPT_IGNORE_EXTERNAL_BRACKETS ) {// does not require brackets around the script if( *p == '\0' && !(options&SCRIPT_RETURN_EMPTY_SCRIPT) ) {// empty script and can return NULL - aFree( script_buf ); - script_pos = 0; - script_size = 0; - script_buf = NULL; + aFree( script->buf ); + script->pos = 0; + script->size = 0; + script->buf = NULL; return NULL; } end = '\0'; @@ -2163,10 +2011,10 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o p = script->skip_space(p+1); if( *p == '}' && !(options&SCRIPT_RETURN_EMPTY_SCRIPT) ) {// empty script and can return NULL - aFree( script_buf ); - script_pos = 0; - script_size = 0; - script_buf = NULL; + aFree( script->buf ); + script->pos = 0; + script->size = 0; + script->buf = NULL; return NULL; } end = '}'; @@ -2184,34 +2032,34 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o } } - while( syntax.curly_count != 0 || *p != end ) + while( script->syntax.curly_count != 0 || *p != end ) { if( *p == '\0' ) disp_error_message("unexpected end of script",p); // Special handling only label - tmpp=script->skip_space(skip_word(p)); + tmpp=script->skip_space(script->skip_word(p)); if(*tmpp==':' && !(!strncasecmp(p,"default:",8) && p + 7 == tmpp)){ - i=add_word(p); - set_label(i,script_pos,p); - if( parse_options&SCRIPT_USE_LABEL_DB ) - script->label_add(i,script_pos); + i=script->add_word(p); + script->set_label(i,script->pos,p); + if( script->parse_options&SCRIPT_USE_LABEL_DB ) + script->label_add(i,script->pos); p=tmpp+1; p=script->skip_space(p); continue; } // All other lumped - p=parse_line(p); + p=script->parse_line(p); p=script->skip_space(p); - parse_nextline(false, p); + script->parse_nextline(false, p); } - add_scriptc(C_NOP); + script->addc(C_NOP); // trim code to size - script_size = script_pos; - RECREATE(script_buf,unsigned char,script_pos); + script->size = script->pos; + RECREATE(script->buf,unsigned char,script->pos); // default unknown references to variables for(i=LABEL_START;i<script->str_num;i++){ @@ -2220,8 +2068,8 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o script->str_data[i].type=C_NAME; script->str_data[i].label=i; for(j=script->str_data[i].backpatch;j>=0 && j!=0x00ffffff;){ - next=GETVALUE(script_buf,j); - SETVALUE(script_buf,j,i); + next=GETVALUE(script->buf,j); + SETVALUE(script->buf,j,i); j=next; } } @@ -2237,38 +2085,38 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o disp_error_message("parse_script: unresolved function references", p); } -#ifdef DEBUG_DISP - for(i=0;i<script_pos;i++){ +#ifdef SCRIPT_DEBUG_DISP + for(i=0;i<script->pos;i++){ if((i&15)==0) ShowMessage("%04x : ",i); - ShowMessage("%02x ",script_buf[i]); + ShowMessage("%02x ",script->buf[i]); if((i&15)==15) ShowMessage("\n"); } ShowMessage("\n"); #endif -#ifdef DEBUG_DISASM +#ifdef SCRIPT_DEBUG_DISASM { int i = 0,j; - while(i < script_pos) { - c_op op = get_com(script_buf,&i); + while(i < script->pos) { + c_op op = script->get_com(script->buf,&i); - ShowMessage("%06x %s", i, script_op2name(op)); + ShowMessage("%06x %s", i, script->op2name(op)); j = i; switch(op) { case C_INT: - ShowMessage(" %d", get_num(script_buf,&i)); + ShowMessage(" %d", script->get_num(script->buf,&i)); break; case C_POS: - ShowMessage(" 0x%06x", *(int*)(script_buf+i)&0xffffff); + ShowMessage(" 0x%06x", *(int*)(script->buf+i)&0xffffff); i += 3; break; case C_NAME: - j = (*(int*)(script_buf+i)&0xffffff); + j = (*(int*)(script->buf+i)&0xffffff); ShowMessage(" %s", ( j == 0xffffff ) ? "?? unknown ??" : script->get_str(j)); i += 3; break; case C_STR: - j = strlen(script_buf + i); - ShowMessage(" %s", script_buf + i); + j = strlen(script->buf + i); + ShowMessage(" %s", script->buf + i); i += j+1; break; } @@ -2278,8 +2126,8 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o #endif CREATE(code,struct script_code,1); - code->script_buf = script_buf; - code->script_size = script_size; + code->script_buf = script->buf; + code->script_size = script->size; code->script_vars = NULL; return code; } @@ -2290,8 +2138,8 @@ TBL_PC *script_rid2sd(struct script_state *st) { TBL_PC *sd; if( !( sd = map->id2sd(st->rid) ) ){ ShowError("script_rid2sd: fatal error ! player not attached!\n"); - script_reportfunc(st); - script_reportsrc(st); + script->reportfunc(st); + script->reportsrc(st); st->state = END; } return sd; @@ -2317,7 +2165,7 @@ void get_val(struct script_state* st, struct script_data* data) //##TODO use reference_tovariable(data) when it's confirmed that it works [FlavioJS] if( !reference_toconstant(data) && not_server_variable(prefix) ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) {// needs player attached if( postfix == '$' ) {// string variable ShowWarning("script_get_val: cannot access player variable '%s', defaulting to \"\"\n", name); @@ -2361,7 +2209,7 @@ void get_val(struct script_state* st, struct script_data* data) break; case '\'': if ( st->instance_id >= 0 ) { - data->u.str = (char*)idb_get(instances[st->instance_id].vars,reference_getuid(data)); + data->u.str = (char*)idb_get(instance->list[st->instance_id].vars,reference_getuid(data)); } else { ShowWarning("script_get_val: cannot access instance variable '%s', defaulting to \"\"\n", name); data->u.str = NULL; @@ -2416,7 +2264,7 @@ void get_val(struct script_state* st, struct script_data* data) break; case '\'': if( st->instance_id >= 0 ) - data->u.num = (int)idb_iget(instances[st->instance_id].vars,reference_getuid(data)); + data->u.num = (int)idb_iget(instance->list[st->instance_id].vars,reference_getuid(data)); else { ShowWarning("script_get_val: cannot access instance variable '%s', defaulting to 0\n", name); data->u.num = 0; @@ -2446,7 +2294,7 @@ void* get_val2(struct script_state* st, int uid, struct DBMap** ref) { * Stores the value of a script variable * Return value is 0 on fail, 1 on success. *------------------------------------------*/ -static int set_reg(struct script_state* st, TBL_PC* sd, int num, const char* name, const void* value, struct DBMap** ref) +int set_reg(struct script_state* st, TBL_PC* sd, int num, const char* name, const void* value, struct DBMap** ref) { char prefix = name[0]; @@ -2474,8 +2322,8 @@ static int set_reg(struct script_state* st, TBL_PC* sd, int num, const char* nam return 1; case '\'': if( st->instance_id >= 0 ) { - idb_remove(instances[st->instance_id].vars, num); - if( str[0] ) idb_put(instances[st->instance_id].vars, num, aStrdup(str)); + idb_remove(instance->list[st->instance_id].vars, num); + if( str[0] ) idb_put(instance->list[st->instance_id].vars, num, aStrdup(str)); } return 1; default: @@ -2492,7 +2340,7 @@ static int set_reg(struct script_state* st, TBL_PC* sd, int num, const char* nam if( st != NULL ) { ShowError("script:set_reg: failed to set param '%s' to %d.\n", name, val); - script_reportsrc(st); + script->reportsrc(st); st->state = END; } return 0; @@ -2522,9 +2370,9 @@ static int set_reg(struct script_state* st, TBL_PC* sd, int num, const char* nam return 1; case '\'': if( st->instance_id >= 0 ) { - idb_remove(instances[st->instance_id].vars, num); + idb_remove(instance->list[st->instance_id].vars, num); if( val != 0 ) - idb_iput(instances[st->instance_id].vars, num, val); + idb_iput(instance->list[st->instance_id].vars, num, val); } return 1; default: @@ -2535,12 +2383,12 @@ static int set_reg(struct script_state* st, TBL_PC* sd, int num, const char* nam int set_var(TBL_PC* sd, char* name, void* val) { - return set_reg(NULL, sd, reference_uid(script->add_str(name),0), name, val, NULL); + return script->set_reg(NULL, sd, reference_uid(script->add_str(name),0), name, val, NULL); } void setd_sub(struct script_state *st, TBL_PC *sd, const char *varname, int elem, void *value, struct DBMap **ref) { - set_reg(st, sd, reference_uid(script->add_str(varname),elem), varname, value, ref); + script->set_reg(st, sd, reference_uid(script->add_str(varname),elem), varname, value, ref); } /// Converts the data to a string @@ -2569,8 +2417,8 @@ const char* conv_str(struct script_state* st, struct script_data* data) else {// unsupported data type ShowError("script:conv_str: cannot convert to string, defaulting to \"\"\n"); - script_reportdata(data); - script_reportsrc(st); + script->reportdata(data); + script->reportsrc(st); data->type = C_CONSTSTR; data->u.str = ""; } @@ -2609,8 +2457,8 @@ int conv_num(struct script_state* st, struct script_data* data) { num = INT_MAX; ShowError("script:conv_num: overflow detected, capping to %ld\n", num); } - script_reportdata(data); - script_reportsrc(st); + script->reportdata(data); + script->reportsrc(st); } if( data->type == C_STR ) aFree(p); @@ -2623,8 +2471,8 @@ int conv_num(struct script_state* st, struct script_data* data) { else {// unsupported data type ShowError("script:conv_num: cannot convert to number, defaulting to 0\n"); - script_reportdata(data); - script_reportsrc(st); + script->reportdata(data); + script->reportsrc(st); data->type = C_INT; data->u.num = 0; } @@ -2648,7 +2496,7 @@ void stack_expand(struct script_stack* stack) { /// Pushes a value into the stack (with reference) struct script_data* push_val(struct script_stack* stack, enum c_op type, int val, struct DBMap** ref) { if( stack->sp >= stack->sp_max ) - stack_expand(stack); + script->stack_expand(stack); stack->stack_data[stack->sp].type = type; stack->stack_data[stack->sp].u.num = val; stack->stack_data[stack->sp].ref = ref; @@ -2660,7 +2508,7 @@ struct script_data* push_val(struct script_stack* stack, enum c_op type, int val struct script_data* push_str(struct script_stack* stack, enum c_op type, char* str) { if( stack->sp >= stack->sp_max ) - stack_expand(stack); + script->stack_expand(stack); stack->stack_data[stack->sp].type = type; stack->stack_data[stack->sp].u.str = str; stack->stack_data[stack->sp].ref = NULL; @@ -2672,7 +2520,7 @@ struct script_data* push_str(struct script_stack* stack, enum c_op type, char* s struct script_data* push_retinfo(struct script_stack* stack, struct script_retinfo* ri, DBMap **ref) { if( stack->sp >= stack->sp_max ) - stack_expand(stack); + script->stack_expand(stack); stack->stack_data[stack->sp].type = C_RETINFO; stack->stack_data[stack->sp].u.ri = ri; stack->stack_data[stack->sp].ref = ref; @@ -2905,8 +2753,8 @@ void op_3(struct script_state* st, int op) else { ShowError("script:op_3: invalid data for the ternary operator test\n"); - script_reportdata(data); - script_reportsrc(st); + script->reportdata(data); + script->reportsrc(st); script_removetop(st, -3, 0); script_pushnil(st); return; @@ -2946,8 +2794,8 @@ void op_2str(struct script_state* st, int op, const char* s1, const char* s2) return; } default: - ShowError("script:op2_str: unexpected string operator %s\n", script_op2name(op)); - script_reportsrc(st); + ShowError("script:op2_str: unexpected string operator %s\n", script->op2name(op)); + script->reportsrc(st); script_pushnil(st); st->state = END; return; @@ -2982,8 +2830,8 @@ void op_2num(struct script_state* st, int op, int i1, int i2) case C_MOD: if( i2 == 0 ) { - ShowError("script:op_2num: division by zero detected op=%s i1=%d i2=%d\n", script_op2name(op), i1, i2); - script_reportsrc(st); + ShowError("script:op_2num: division by zero detected op=%s i1=%d i2=%d\n", script->op2name(op), i1, i2); + script->reportsrc(st); script_pushnil(st); st->state = END; return; @@ -3000,21 +2848,21 @@ void op_2num(struct script_state* st, int op, int i1, int i2) case C_SUB: ret = i1 - i2; ret_double = (double)i1 - (double)i2; break; case C_MUL: ret = i1 * i2; ret_double = (double)i1 * (double)i2; break; default: - ShowError("script:op_2num: unexpected number operator %s i1=%d i2=%d\n", script_op2name(op), i1, i2); - script_reportsrc(st); + ShowError("script:op_2num: unexpected number operator %s i1=%d i2=%d\n", script->op2name(op), i1, i2); + script->reportsrc(st); script_pushnil(st); return; } if( ret_double < (double)INT_MIN ) { - ShowWarning("script:op_2num: underflow detected op=%s i1=%d i2=%d\n", script_op2name(op), i1, i2); - script_reportsrc(st); + ShowWarning("script:op_2num: underflow detected op=%s i1=%d i2=%d\n", script->op2name(op), i1, i2); + script->reportsrc(st); ret = INT_MIN; } else if( ret_double > (double)INT_MAX ) { - ShowWarning("script:op_2num: overflow detected op=%s i1=%d i2=%d\n", script_op2name(op), i1, i2); - script_reportsrc(st); + ShowWarning("script:op_2num: overflow detected op=%s i1=%d i2=%d\n", script->op2name(op), i1, i2); + script->reportsrc(st); ret = INT_MAX; } } @@ -3060,7 +2908,7 @@ void op_2(struct script_state *st, int op) if( data_isstring(left) && data_isstring(right) ) {// ss => op_2str - op_2str(st, op, left->u.str, right->u.str); + script->op_2str(st, op, left->u.str, right->u.str); script_removetop(st, leftref.type == C_NOP ? -3 : -2, -1);// pop the two values before the top one if (leftref.type != C_NOP) @@ -3076,17 +2924,17 @@ void op_2(struct script_state *st, int op) int i2 = right->u.num; script_removetop(st, leftref.type == C_NOP ? -2 : -1, 0); - op_2num(st, op, i1, i2); + script->op_2num(st, op, i1, i2); if (leftref.type != C_NOP) *left = leftref; } else {// invalid argument - ShowError("script:op_2: invalid data for operator %s\n", script_op2name(op)); - script_reportdata(left); - script_reportdata(right); - script_reportsrc(st); + ShowError("script:op_2: invalid data for operator %s\n", script->op2name(op)); + script->reportdata(left); + script->reportdata(right); + script->reportsrc(st); script_removetop(st, -2, 0); script_pushnil(st); st->state = END; @@ -3107,9 +2955,9 @@ void op_1(struct script_state* st, int op) if( !data_isint(data) ) {// not a number - ShowError("script:op_1: argument is not a number (op=%s)\n", script_op2name(op)); - script_reportdata(data); - script_reportsrc(st); + ShowError("script:op_1: argument is not a number (op=%s)\n", script->op2name(op)); + script->reportdata(data); + script->reportsrc(st); script_pushnil(st); st->state = END; return; @@ -3123,8 +2971,8 @@ void op_1(struct script_state* st, int op) case C_NOT: i1 = ~i1; break; case C_LNOT: i1 = !i1; break; default: - ShowError("script:op_1: unexpected operator %s i1=%d\n", script_op2name(op), i1); - script_reportsrc(st); + ShowError("script:op_1: unexpected operator %s i1=%d\n", script->op2name(op), i1); + script->reportsrc(st); script_pushnil(st); st->state = END; return; @@ -3137,7 +2985,7 @@ void op_1(struct script_state* st, int op) /// /// @param st Script state whose stack arguments should be inspected. /// @param func Built-in function for which the arguments are intended. -static void script_check_buildin_argtype(struct script_state* st, int func) +void script_check_buildin_argtype(struct script_state* st, int func) { char type; int idx, invalid = 0; @@ -3151,7 +2999,7 @@ static void script_check_buildin_argtype(struct script_state* st, int func) if( type == '?' || type == '*' ) {// optional argument or unknown number of optional parameters ( no types are after this ) break; } else if( type == 0 ) {// more arguments than necessary ( should not happen, as it is checked before ) - ShowWarning("Found more arguments than necessary. unexpected arg type %s\n",script_op2name(data->type)); + ShowWarning("Found more arguments than necessary. unexpected arg type %s\n",script->op2name(data->type)); invalid++; break; } else { @@ -3167,7 +3015,7 @@ static void script_check_buildin_argtype(struct script_state* st, int func) if( !data_isstring(data) && !data_isint(data) && !data_isreference(data) ) {// variant ShowWarning("Unexpected type for argument %d. Expected string, number or variable.\n", idx-1); - script_reportdata(data); + script->reportdata(data); invalid++; } break; @@ -3175,7 +3023,7 @@ static void script_check_buildin_argtype(struct script_state* st, int func) if( !data_isstring(data) && !( data_isreference(data) && is_string_variable(name) ) ) {// string ShowWarning("Unexpected type for argument %d. Expected string.\n", idx-1); - script_reportdata(data); + script->reportdata(data); invalid++; } break; @@ -3183,23 +3031,23 @@ static void script_check_buildin_argtype(struct script_state* st, int func) if( !data_isint(data) && !( data_isreference(data) && ( reference_toparam(data) || reference_toconstant(data) || !is_string_variable(name) ) ) ) {// int ( params and constants are always int ) ShowWarning("Unexpected type for argument %d. Expected number.\n", idx-1); - script_reportdata(data); + script->reportdata(data); invalid++; } break; case 'r': if( !data_isreference(data) ) {// variables - ShowWarning("Unexpected type for argument %d. Expected variable, got %s.\n", idx-1,script_op2name(data->type)); - script_reportdata(data); + ShowWarning("Unexpected type for argument %d. Expected variable, got %s.\n", idx-1,script->op2name(data->type)); + script->reportdata(data); invalid++; } break; case 'l': if( !data_islabel(data) && !data_isfunclabel(data) ) {// label - ShowWarning("Unexpected type for argument %d. Expected label, got %s\n", idx-1,script_op2name(data->type)); - script_reportdata(data); + ShowWarning("Unexpected type for argument %d. Expected label, got %s\n", idx-1,script->op2name(data->type)); + script->reportdata(data); invalid++; } break; @@ -3209,7 +3057,7 @@ static void script_check_buildin_argtype(struct script_state* st, int func) if(invalid) { ShowDebug("Function: %s\n", script->get_str(func)); - script_reportsrc(st); + script->reportsrc(st); } } @@ -3229,7 +3077,7 @@ int run_func(struct script_state *st) { ShowError("script:run_func: C_ARG not found. please report this!!!\n"); st->state = END; - script_reportsrc(st); + script->reportsrc(st); return 1; } start_sp = i-1;// C_NAME of the command @@ -3242,22 +3090,22 @@ int run_func(struct script_state *st) else { ShowError("script:run_func: not a buildin command.\n"); - script_reportdata(data); - script_reportsrc(st); + script->reportdata(data); + script->reportsrc(st); st->state = END; return 1; } if( script->config.warn_func_mismatch_argtypes ) { - script_check_buildin_argtype(st, func); + script->check_buildin_argtype(st, func); } if(script->str_data[func].func){ if (!(script->str_data[func].func(st))) //Report error - script_reportsrc(st); + script->reportsrc(st); } else { - ShowError("script:run_func: '%s' (id=%d type=%s) has no C function. please report this!!!\n", script->get_str(func), func, script_op2name(script->str_data[func].type)); - script_reportsrc(st); + ShowError("script:run_func: '%s' (id=%d type=%s) has no C function. please report this!!!\n", script->get_str(func), func, script->op2name(script->str_data[func].type)); + script->reportsrc(st); st->state = END; } @@ -3276,7 +3124,7 @@ int run_func(struct script_state *st) if( st->stack->defsp < 1 || st->stack->stack_data[st->stack->defsp-1].type != C_RETINFO ) { ShowWarning("script:run_func: return without callfunc or callsub!\n"); - script_reportsrc(st); + script->reportsrc(st); st->state = END; return 1; } @@ -3357,7 +3205,7 @@ int run_script_timer(int tid, unsigned int tick, int id, intptr_t data) { /// /// @param st Script state to detach. /// @param dequeue_event Whether to schedule any queued events, when there was no previous script. -static void script_detach_state(struct script_state* st, bool dequeue_event) { +void script_detach_state(struct script_state* st, bool dequeue_event) { struct map_session_data* sd; if(st->rid && (sd = map->id2sd(st->rid))!=NULL) { @@ -3385,7 +3233,7 @@ static void script_detach_state(struct script_state* st, bool dequeue_event) { } } else if(st->bk_st) { // rid was set to 0, before detaching the script state ShowError("script_detach_state: Found previous script state without attached player (rid=%d, oid=%d, state=%d, bk_npcid=%d)\n", st->bk_st->rid, st->bk_st->oid, st->bk_st->state, st->bk_npcid); - script_reportsrc(st->bk_st); + script->reportsrc(st->bk_st); script->free_state(st->bk_st); st->bk_st = NULL; @@ -3437,19 +3285,19 @@ void run_script_main(struct script_state *st) { nd = map->id2nd(st->oid); if( nd && nd->bl.m >= 0 ) - st->instance_id = maplist[nd->bl.m].instance_id; + st->instance_id = map->list[nd->bl.m].instance_id; else st->instance_id = -1; if(st->state == RERUNLINE) { - run_func(st); + script->run_func(st); if(st->state == GOTO) st->state = RUN; } else if(st->state != END) st->state = RUN; while( st->state == RUN ){ - enum c_op c = get_com(st->script->script_buf,&st->pos); + enum c_op c = script->get_com(st->script->script_buf,&st->pos); switch(c){ case C_EOL: if( stack->defsp > stack->sp ) @@ -3458,7 +3306,7 @@ void run_script_main(struct script_state *st) { script->pop_stack(st, stack->defsp, stack->sp);// pop unused stack data. (unused return value) break; case C_INT: - script->push_val(stack,C_INT,get_num(st->script->script_buf,&st->pos),NULL); + script->push_val(stack,C_INT,script->get_num(st->script->script_buf,&st->pos),NULL); break; case C_POS: case C_NAME: @@ -3473,12 +3321,12 @@ void run_script_main(struct script_state *st) { while(st->script->script_buf[st->pos++]); break; case C_FUNC: - run_func(st); + script->run_func(st); if(st->state==GOTO){ st->state = RUN; if( !st->freeloop && gotocount>0 && (--gotocount)<=0 ){ ShowError("run_script: infinity loop !\n"); - script_reportsrc(st); + script->reportsrc(st); st->state=END; } } @@ -3491,7 +3339,7 @@ void run_script_main(struct script_state *st) { case C_NEG: case C_NOT: case C_LNOT: - op_1(st ,c); + script->op_1(st ,c); break; case C_ADD: @@ -3512,11 +3360,11 @@ void run_script_main(struct script_state *st) { case C_LOR: case C_R_SHIFT: case C_L_SHIFT: - op_2(st, c); + script->op_2(st, c); break; case C_OP3: - op_3(st, c); + script->op_3(st, c); break; case C_NOP: @@ -3530,14 +3378,14 @@ void run_script_main(struct script_state *st) { } if( !st->freeloop && cmdcount>0 && (--cmdcount)<=0 ){ ShowError("run_script: infinity loop !\n"); - script_reportsrc(st); + script->reportsrc(st); st->state=END; } } if(st->sleep.tick > 0) { //Restore previous script - script_detach_state(st, false); + script->detach_state(st, false); //Delay execution sd = map->id2sd(st->rid); // Get sd since script might have attached someone while running. [Inkfish] st->sleep.charid = sd?sd->status.char_id:0; @@ -3549,9 +3397,9 @@ void run_script_main(struct script_state *st) { ShowWarning("Unable to restore stack! Double continuation!\n"); //Report BOTH scripts to see if that can help somehow. ShowDebug("Previous script (lost):\n"); - script_reportsrc(st->bk_st); + script->reportsrc(st->bk_st); ShowDebug("Current script:\n"); - script_reportsrc(st); + script->reportsrc(st); script->free_state(st->bk_st); st->bk_st = NULL; @@ -3564,7 +3412,7 @@ void run_script_main(struct script_state *st) { sd->state.using_fake_npc = 0; } //Restore previous script if any. - script_detach_state(st, true); + script->detach_state(st, true); if (sd->state.reg_dirty&2) intif->saveregistry(sd,2); if (sd->state.reg_dirty&1) @@ -3625,7 +3473,7 @@ int script_config_read(char *cfgName) { /** * @see DBApply */ -static int db_script_free_code_sub(DBKey key, DBData *data, va_list ap) +int db_script_free_code_sub(DBKey key, DBData *data, va_list ap) { struct script_code *code = DB->data2ptr(data); if (code) @@ -3727,7 +3575,7 @@ void do_final_script(void) { DBIterator *iter; struct script_state *st; -#ifdef DEBUG_HASH +#ifdef SCRIPT_DEBUG_HASH if (battle_config.etc_log) { FILE *fp = fopen("hash_dump.txt","wt"); @@ -3744,7 +3592,7 @@ void do_final_script(void) { fprintf(fp,"num : hash : data_name\n"); fprintf(fp,"---------------------------------------------------------------\n"); for(i=LABEL_START; i<script->str_num; i++) { - unsigned int h = calc_hash(script->get_str(i)); + unsigned int h = script->calc_hash(script->get_str(i)); fprintf(fp,"%04d : %4u : %s\n",i,h, script->get_str(i)); ++count[h]; } @@ -3792,8 +3640,8 @@ void do_final_script(void) { mapreg->final(); - script->userfunc_db->destroy(script->userfunc_db, db_script_free_code_sub); - script->autobonus_db->destroy(script->autobonus_db, db_script_free_code_sub); + script->userfunc_db->destroy(script->userfunc_db, script->db_free_code_sub); + script->autobonus_db->destroy(script->autobonus_db, script->db_free_code_sub); if (script->str_data) aFree(script->str_data); @@ -3858,7 +3706,7 @@ void do_init_script(void) { ers_chunk_size(script->stack_ers, 10); script->parse_builtin(); - read_constdb(); + script->read_constdb(); mapreg->init(); } @@ -3875,7 +3723,7 @@ int script_reload(void) { dbi_destroy(iter); - script->userfunc_db->clear(script->userfunc_db, db_script_free_code_sub); + script->userfunc_db->clear(script->userfunc_db, script->db_free_code_sub); script->label_count = 0; for( i = 0; i < atcommand->binding_count; i++ ) { @@ -3912,7 +3760,7 @@ int script_reload(void) { /// /// mes "<message>"; BUILDIN(mes) { - TBL_PC* sd = script_rid2sd(st); + TBL_PC* sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -3938,7 +3786,7 @@ BUILDIN(next) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; #ifdef SECURE_NPCTIMEOUT @@ -3956,7 +3804,7 @@ BUILDIN(next) BUILDIN(close) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -3972,7 +3820,7 @@ BUILDIN(close) { BUILDIN(close2) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -3980,7 +3828,7 @@ BUILDIN(close2) { st->state = STOP; else { ShowWarning("misuse of 'close2'! trying to use it without prior dialog! skipping...\n"); - script_reportsrc(st); + script->reportsrc(st); } clif->scriptclose(sd, st->oid); @@ -3990,7 +3838,7 @@ BUILDIN(close2) { /// Counts the number of valid and total number of options in 'str' /// If max_count > 0 the counting stops when that valid option is reached /// total is incremented for each option (NULL is supported) -static int menu_countoptions(const char* str, int max_count, int* total) +int menu_countoptions(const char* str, int max_count, int* total) { int count = 0; int bogus_total; @@ -4045,7 +3893,7 @@ BUILDIN(menu) const char* text; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -4079,7 +3927,7 @@ BUILDIN(menu) {// not a label StrBuf->Destroy(&buf); ShowError("script:menu: argument #%d (from 1) is not a label or label not found.\n", i); - script_reportdata(data); + script->reportdata(data); st->state = END; return false; } @@ -4090,7 +3938,7 @@ BUILDIN(menu) if( sd->npc_menu > 0 ) StrBuf->AppendStr(&buf, ":"); StrBuf->AppendStr(&buf, text); - sd->npc_menu += menu_countoptions(text, 0, NULL); + sd->npc_menu += script->menu_countoptions(text, 0, NULL); } st->state = RERUNLINE; sd->state.menu_or_input = 1; @@ -4114,7 +3962,7 @@ BUILDIN(menu) if( sd->npc_menu >= 0xff ) {// client supports only up to 254 entries; 0 is not used and 255 is reserved for cancel; excess entries are displayed but cause 'uint8' overflow ShowWarning("buildin_menu: Too many options specified (current=%d, max=254).\n", sd->npc_menu); - script_reportsrc(st); + script->reportsrc(st); } } else if( sd->npc_menu == 0xff ) @@ -4138,7 +3986,7 @@ BUILDIN(menu) for( i = 2; i < script_lastdata(st); i += 2 ) { text = script_getstr(st, i); - sd->npc_menu -= menu_countoptions(text, sd->npc_menu, &menu); + sd->npc_menu -= script->menu_countoptions(text, sd->npc_menu, &menu); if( sd->npc_menu <= 0 ) break;// entry found } @@ -4151,7 +3999,7 @@ BUILDIN(menu) if( !data_islabel(script_getdata(st, i + 1)) ) {// TODO remove this temporary crash-prevention code (fallback for multiple scripts requesting user input) ShowError("script:menu: unexpected data in label argument\n"); - script_reportdata(script_getdata(st, i + 1)); + script->reportdata(script_getdata(st, i + 1)); st->state = END; return false; } @@ -4174,7 +4022,7 @@ BUILDIN(select) const char* text; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -4194,7 +4042,7 @@ BUILDIN(select) StrBuf->AppendStr(&buf, ":"); StrBuf->AppendStr(&buf, text); - sd->npc_menu += menu_countoptions(text, 0, NULL); + sd->npc_menu += script->menu_countoptions(text, 0, NULL); } st->state = RERUNLINE; @@ -4217,7 +4065,7 @@ BUILDIN(select) if( sd->npc_menu >= 0xff ) { ShowWarning("buildin_select: Too many options specified (current=%d, max=254).\n", sd->npc_menu); - script_reportsrc(st); + script->reportsrc(st); } } else if( sd->npc_menu == 0xff ) {// Cancel was pressed sd->state.menu_or_input = 0; @@ -4228,7 +4076,7 @@ BUILDIN(select) sd->state.menu_or_input = 0; for( i = 2; i <= script_lastdata(st); ++i ) { text = script_getstr(st, i); - sd->npc_menu -= menu_countoptions(text, sd->npc_menu, &menu); + sd->npc_menu -= script->menu_countoptions(text, sd->npc_menu, &menu); if( sd->npc_menu <= 0 ) break;// entry found } @@ -4253,7 +4101,7 @@ BUILDIN(prompt) const char *text; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -4273,7 +4121,7 @@ BUILDIN(prompt) if( sd->npc_menu > 0 ) StrBuf->AppendStr(&buf, ":"); StrBuf->AppendStr(&buf, text); - sd->npc_menu += menu_countoptions(text, 0, NULL); + sd->npc_menu += script->menu_countoptions(text, 0, NULL); } st->state = RERUNLINE; @@ -4297,7 +4145,7 @@ BUILDIN(prompt) if( sd->npc_menu >= 0xff ) { ShowWarning("buildin_prompt: Too many options specified (current=%d, max=254).\n", sd->npc_menu); - script_reportsrc(st); + script->reportsrc(st); } } else if( sd->npc_menu == 0xff ) @@ -4315,7 +4163,7 @@ BUILDIN(prompt) for( i = 2; i <= script_lastdata(st); ++i ) { text = script_getstr(st, i); - sd->npc_menu -= menu_countoptions(text, sd->npc_menu, &menu); + sd->npc_menu -= script->menu_countoptions(text, sd->npc_menu, &menu); if( sd->npc_menu <= 0 ) break;// entry found } @@ -4338,7 +4186,7 @@ BUILDIN(goto) if( !data_islabel(script_getdata(st,2)) ) { ShowError("script:goto: not a label\n"); - script_reportdata(script_getdata(st,2)); + script->reportdata(script_getdata(st,2)); st->state = END; return false; } @@ -4389,7 +4237,7 @@ BUILDIN(callfunc) ri->pos = st->pos;// script location ri->nargs = j;// argument count ri->defsp = st->stack->defsp;// default stack pointer - push_retinfo(st->stack, ri, ref); + script->push_retinfo(st->stack, ri, ref); st->pos = 0; st->script = scr; @@ -4412,7 +4260,7 @@ BUILDIN(callsub) if( !data_islabel(script_getdata(st,2)) && !data_isfunclabel(script_getdata(st,2)) ) { ShowError("script:callsub: argument is not a label\n"); - script_reportdata(script_getdata(st,2)); + script->reportdata(script_getdata(st,2)); st->state = END; return false; } @@ -4439,7 +4287,7 @@ BUILDIN(callsub) ri->pos = st->pos;// script location ri->nargs = j;// argument count ri->defsp = st->stack->defsp;// default stack pointer - push_retinfo(st->stack, ri, ref); + script->push_retinfo(st->stack, ri, ref); st->pos = pos; st->stack->defsp = st->stack->sp; @@ -4558,7 +4406,7 @@ BUILDIN(warp) const char* str; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -4575,7 +4423,7 @@ BUILDIN(warp) if( ret ) { ShowError("buildin_warp: moving player '%s' to \"%s\",%d,%d failed.\n", sd->status.name, str, x, y); - script_reportsrc(st); + script->reportsrc(st); } return true; @@ -4583,7 +4431,7 @@ BUILDIN(warp) /*========================================== * Warp a specified area *------------------------------------------*/ -static int buildin_areawarp_sub(struct block_list *bl,va_list ap) +int buildin_areawarp_sub(struct block_list *bl,va_list ap) { int x2,y2,x3,y3; unsigned int index; @@ -4651,14 +4499,14 @@ BUILDIN(areawarp) else if( !(index=mapindex_name2id(str)) ) return true; - map->foreachinarea(buildin_areawarp_sub, m,x0,y0,x1,y1, BL_PC, index,x2,y2,x3,y3); + map->foreachinarea(script->buildin_areawarp_sub, m,x0,y0,x1,y1, BL_PC, index,x2,y2,x3,y3); return true; } /*========================================== * areapercentheal <map>,<x1>,<y1>,<x2>,<y2>,<hp>,<sp> *------------------------------------------*/ -static int buildin_areapercentheal_sub(struct block_list *bl,va_list ap) +int buildin_areapercentheal_sub(struct block_list *bl,va_list ap) { int hp, sp; hp = va_arg(ap, int); @@ -4682,7 +4530,7 @@ BUILDIN(areapercentheal) { if( (m=map->mapname2mapid(mapname))< 0) return true; - map->foreachinarea(buildin_areapercentheal_sub,m,x0,y0,x1,y1,BL_PC,hp,sp); + map->foreachinarea(script->buildin_areapercentheal_sub,m,x0,y0,x1,y1,BL_PC,hp,sp); return true; } @@ -4764,7 +4612,7 @@ BUILDIN(warpparty) break; case 2: //"SavePoint" uses save point of the currently attached player - if (( sd = script_rid2sd(st) ) == NULL ) + if (( sd = script->rid2sd(st) ) == NULL ) return true; default: mapindex = 0; @@ -4775,7 +4623,7 @@ BUILDIN(warpparty) if( !(pl_sd = p->data[i].sd) || pl_sd->status.party_id != p_id ) continue; - if( str2 && strcmp(str2, maplist[pl_sd->bl.m].name) != 0 ) + if( str2 && strcmp(str2, map->list[pl_sd->bl.m].name) != 0 ) continue; if( pc_isdead(pl_sd) ) @@ -4784,20 +4632,20 @@ BUILDIN(warpparty) switch( type ) { case 0: // Random - if(!maplist[pl_sd->bl.m].flag.nowarp) + if(!map->list[pl_sd->bl.m].flag.nowarp) pc->randomwarp(pl_sd,CLR_TELEPORT); break; case 1: // SavePointAll - if(!maplist[pl_sd->bl.m].flag.noreturn) + if(!map->list[pl_sd->bl.m].flag.noreturn) pc->setpos(pl_sd,pl_sd->status.save_point.map,pl_sd->status.save_point.x,pl_sd->status.save_point.y,CLR_TELEPORT); break; case 2: // SavePoint - if(!maplist[pl_sd->bl.m].flag.noreturn) + if(!map->list[pl_sd->bl.m].flag.noreturn) pc->setpos(pl_sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,CLR_TELEPORT); break; case 3: // Leader case 4: // m,x,y - if(!maplist[pl_sd->bl.m].flag.noreturn && !maplist[pl_sd->bl.m].flag.nowarp) + if(!map->list[pl_sd->bl.m].flag.noreturn && !map->list[pl_sd->bl.m].flag.nowarp) pc->setpos(pl_sd,mapindex,x,y,CLR_TELEPORT); break; } @@ -4831,7 +4679,7 @@ BUILDIN(warpguild) : ( strcmp(str,"SavePoint")==0 ) ? 2 : 3; - if( type == 2 && ( sd = script_rid2sd(st) ) == NULL ) + if( type == 2 && ( sd = script->rid2sd(st) ) == NULL ) {// "SavePoint" uses save point of the currently attached player return true; } @@ -4845,19 +4693,19 @@ BUILDIN(warpguild) switch( type ) { case 0: // Random - if(!maplist[pl_sd->bl.m].flag.nowarp) + if(!map->list[pl_sd->bl.m].flag.nowarp) pc->randomwarp(pl_sd,CLR_TELEPORT); break; case 1: // SavePointAll - if(!maplist[pl_sd->bl.m].flag.noreturn) + if(!map->list[pl_sd->bl.m].flag.noreturn) pc->setpos(pl_sd,pl_sd->status.save_point.map,pl_sd->status.save_point.x,pl_sd->status.save_point.y,CLR_TELEPORT); break; case 2: // SavePoint - if(!maplist[pl_sd->bl.m].flag.noreturn) + if(!map->list[pl_sd->bl.m].flag.noreturn) pc->setpos(pl_sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,CLR_TELEPORT); break; case 3: // m,x,y - if(!maplist[pl_sd->bl.m].flag.noreturn && !maplist[pl_sd->bl.m].flag.nowarp) + if(!map->list[pl_sd->bl.m].flag.noreturn && !map->list[pl_sd->bl.m].flag.nowarp) pc->setpos(pl_sd,mapindex_name2id(str),x,y,CLR_TELEPORT); break; } @@ -4873,7 +4721,7 @@ BUILDIN(heal) { TBL_PC *sd; int hp,sp; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (!sd) return true; hp=script_getnum(st,2); @@ -4898,7 +4746,7 @@ BUILDIN(itemheal) return true; } - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (!sd) return true; pc->itemheal(sd,sd->itemid,hp,sp); return true; @@ -4920,7 +4768,7 @@ BUILDIN(percentheal) return true; } - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; #ifdef RENEWAL @@ -4946,7 +4794,7 @@ BUILDIN(jobchange) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -4982,14 +4830,14 @@ BUILDIN(input) int min; int max; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; data = script_getdata(st,2); if( !data_isreference(data) ){ ShowError("script:input: not a variable\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false; } @@ -5017,13 +4865,13 @@ BUILDIN(input) if( is_string_variable(name) ) { int len = (int)strlen(sd->npc_str); - set_reg(st, sd, uid, name, (void*)sd->npc_str, script_getref(st,2)); + script->set_reg(st, sd, uid, name, (void*)sd->npc_str, script_getref(st,2)); script_pushint(st, (len > max ? 1 : len < min ? -1 : 0)); } else { int amount = sd->npc_amount; - set_reg(st, sd, uid, name, (void*)__64BPTRSIZE(cap_value(amount,min,max)), script_getref(st,2)); + script->set_reg(st, sd, uid, name, (void*)__64BPTRSIZE(cap_value(amount,min,max)), script_getref(st,2)); script_pushint(st, (amount > max ? 1 : amount < min ? -1 : 0)); } st->state = RUN; @@ -5052,7 +4900,7 @@ BUILDIN(set) if( !data_isreference(data) ) { ShowError("script:set: not a variable\n"); - script_reportdata(script_getdata(st,2)); + script->reportdata(script_getdata(st,2)); st->state = END; return false; } @@ -5063,7 +4911,7 @@ BUILDIN(set) if( not_server_variable(prefix) ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) { ShowError("script:set: no player attached for player variable '%s'\n", name); @@ -5078,7 +4926,7 @@ BUILDIN(set) if( !not_array_variable(*namevalue) ) {// array variable being copied into another array variable - if( sd == NULL && not_server_variable(*namevalue) && !(sd = script_rid2sd(st)) ) + if( sd == NULL && not_server_variable(*namevalue) && !(sd = script->rid2sd(st)) ) {// player must be attached in order to copy a player variable ShowError("script:set: no player attached for player variable '%s'\n", namevalue); return true; @@ -5100,9 +4948,9 @@ BUILDIN(set) #endif if( is_string_variable(name) ) - set_reg(st,sd,num,name,(void*)script_getstr(st,3),script_getref(st,2)); + script->set_reg(st,sd,num,name,(void*)script_getstr(st,3),script_getref(st,2)); else - set_reg(st,sd,num,name,(void*)__64BPTRSIZE(script_getnum(st,3)),script_getref(st,2)); + script->set_reg(st,sd,num,name,(void*)__64BPTRSIZE(script_getnum(st,3)),script_getref(st,2)); // return a copy of the variable reference script_pushcopy(st,2); @@ -5115,7 +4963,7 @@ BUILDIN(set) /// /// Returns the size of the specified array -static int32 getarraysize(struct script_state* st, int32 id, int32 idx, int isstring, struct DBMap** ref) +int32 getarraysize(struct script_state* st, int32 id, int32 idx, int isstring, struct DBMap** ref) { int32 ret = idx; @@ -5160,7 +5008,7 @@ BUILDIN(setarray) if( !data_isreference(data) ) { ShowError("script:setarray: not a variable\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not a variable } @@ -5171,14 +5019,14 @@ BUILDIN(setarray) if( not_array_variable(*name) ) { ShowError("script:setarray: illegal scope\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not supported } if( not_server_variable(*name) ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached } @@ -5190,12 +5038,12 @@ BUILDIN(setarray) if( is_string_variable(name) ) {// string array for( i = 3; start < end; ++start, ++i ) - set_reg(st, sd, reference_uid(id, start), name, (void*)script_getstr(st,i), reference_getref(data)); + script->set_reg(st, sd, reference_uid(id, start), name, (void*)script_getstr(st,i), reference_getref(data)); } else {// int array for( i = 3; start < end; ++start, ++i ) - set_reg(st, sd, reference_uid(id, start), name, (void*)__64BPTRSIZE(script_getnum(st,i)), reference_getref(data)); + script->set_reg(st, sd, reference_uid(id, start), name, (void*)__64BPTRSIZE(script_getnum(st,i)), reference_getref(data)); } return true; } @@ -5218,7 +5066,7 @@ BUILDIN(cleararray) if( !data_isreference(data) ) { ShowError("script:cleararray: not a variable\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not a variable } @@ -5229,14 +5077,14 @@ BUILDIN(cleararray) if( not_array_variable(*name) ) { ShowError("script:cleararray: illegal scope\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not supported } if( not_server_variable(*name) ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached } @@ -5251,7 +5099,7 @@ BUILDIN(cleararray) end = SCRIPT_MAX_ARRAYSIZE; for( ; start < end; ++start ) - set_reg(st, sd, reference_uid(id, start), name, v, script_getref(st,2)); + script->set_reg(st, sd, reference_uid(id, start), name, v, script_getref(st,2)); return true; } @@ -5279,8 +5127,8 @@ BUILDIN(copyarray) if( !data_isreference(data1) || !data_isreference(data2) ) { ShowError("script:copyarray: not a variable\n"); - script_reportdata(data1); - script_reportdata(data2); + script->reportdata(data1); + script->reportdata(data2); st->state = END; return false;// not a variable } @@ -5294,8 +5142,8 @@ BUILDIN(copyarray) if( not_array_variable(*name1) || not_array_variable(*name2) ) { ShowError("script:copyarray: illegal scope\n"); - script_reportdata(data1); - script_reportdata(data2); + script->reportdata(data1); + script->reportdata(data2); st->state = END; return false;// not supported } @@ -5303,15 +5151,15 @@ BUILDIN(copyarray) if( is_string_variable(name1) != is_string_variable(name2) ) { ShowError("script:copyarray: type mismatch\n"); - script_reportdata(data1); - script_reportdata(data2); + script->reportdata(data1); + script->reportdata(data2); st->state = END; return false;// data type mismatch } if( not_server_variable(*name1) || not_server_variable(*name2) ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached } @@ -5327,7 +5175,7 @@ BUILDIN(copyarray) for( i = count - 1; i >= 0; --i ) { v = script->get_val2(st, reference_uid(id2, idx2 + i), reference_getref(data2)); - set_reg(st, sd, reference_uid(id1, idx1 + i), name1, v, reference_getref(data1)); + script->set_reg(st, sd, reference_uid(id1, idx1 + i), name1, v, reference_getref(data1)); script_removetop(st, -1, 0); } } @@ -5338,11 +5186,11 @@ BUILDIN(copyarray) if( idx2 + i < SCRIPT_MAX_ARRAYSIZE ) { v = script->get_val2(st, reference_uid(id2, idx2 + i), reference_getref(data2)); - set_reg(st, sd, reference_uid(id1, idx1 + i), name1, v, reference_getref(data1)); + script->set_reg(st, sd, reference_uid(id1, idx1 + i), name1, v, reference_getref(data1)); script_removetop(st, -1, 0); } else// out of range - assume ""/0 - set_reg(st, sd, reference_uid(id1, idx1 + i), name1, (is_string_variable(name1)?(void*)"":(void*)0), reference_getref(data1)); + script->set_reg(st, sd, reference_uid(id1, idx1 + i), name1, (is_string_variable(name1)?(void*)"":(void*)0), reference_getref(data1)); } } return true; @@ -5362,7 +5210,7 @@ BUILDIN(getarraysize) if( !data_isreference(data) ) { ShowError("script:getarraysize: not a variable\n"); - script_reportdata(data); + script->reportdata(data); script_pushnil(st); st->state = END; return false;// not a variable @@ -5372,13 +5220,13 @@ BUILDIN(getarraysize) if( not_array_variable(*name) ) { ShowError("script:getarraysize: illegal scope\n"); - script_reportdata(data); + script->reportdata(data); script_pushnil(st); st->state = END; return false;// not supported } - script_pushint(st, getarraysize(st, reference_getid(data), reference_getindex(data), is_string_variable(name), reference_getref(data))); + script_pushint(st, script->getarraysize(st, reference_getid(data), reference_getindex(data), is_string_variable(name), reference_getref(data))); return true; } @@ -5400,7 +5248,7 @@ BUILDIN(deletearray) if( !data_isreference(data) ) { ShowError("script:deletearray: not a variable\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not a variable } @@ -5411,14 +5259,14 @@ BUILDIN(deletearray) if( not_array_variable(*name) ) { ShowError("script:deletearray: illegal scope\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not supported } if( not_server_variable(*name) ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached } @@ -5440,7 +5288,7 @@ BUILDIN(deletearray) for( ; start + count < end; ++start ) { void* v = script->get_val2(st, reference_uid(id, start + count), reference_getref(data)); - set_reg(st, sd, reference_uid(id, start), name, v, reference_getref(data)); + script->set_reg(st, sd, reference_uid(id, start), name, v, reference_getref(data)); script_removetop(st, -1, 0); } } @@ -5449,12 +5297,12 @@ BUILDIN(deletearray) if( is_string_variable(name) ) { for( ; start < end; ++start ) - set_reg(st, sd, reference_uid(id, start), name, (void *)"", reference_getref(data)); + script->set_reg(st, sd, reference_uid(id, start), name, (void *)"", reference_getref(data)); } else { for( ; start < end; ++start ) - set_reg(st, sd, reference_uid(id, start), name, (void*)0, reference_getref(data)); + script->set_reg(st, sd, reference_uid(id, start), name, (void*)0, reference_getref(data)); } return true; } @@ -5474,7 +5322,7 @@ BUILDIN(getelementofarray) if( !data_isreference(data) ) { ShowError("script:getelementofarray: not a variable\n"); - script_reportdata(data); + script->reportdata(data); script_pushnil(st); st->state = END; return false;// not a variable @@ -5485,7 +5333,7 @@ BUILDIN(getelementofarray) if( not_array_variable(*name) ) { ShowError("script:getelementofarray: illegal scope\n"); - script_reportdata(data); + script->reportdata(data); script_pushnil(st); st->state = END; return false;// not supported @@ -5495,7 +5343,7 @@ BUILDIN(getelementofarray) if( i < 0 || i >= SCRIPT_MAX_ARRAYSIZE ) { ShowWarning("script:getelementofarray: index out of range (%d)\n", i); - script_reportdata(data); + script->reportdata(data); script_pushnil(st); st->state = END; return false;// out of range @@ -5520,7 +5368,7 @@ BUILDIN(setlook) type=script_getnum(st,2); val=script_getnum(st,3); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -5537,7 +5385,7 @@ BUILDIN(changelook) type=script_getnum(st,2); val=script_getnum(st,3); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -5553,7 +5401,7 @@ BUILDIN(cutin) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -5575,7 +5423,7 @@ BUILDIN(viewpoint) id=script_getnum(st,5); color=script_getnum(st,6); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -5594,7 +5442,7 @@ BUILDIN(countitem) struct item_data* id = NULL; struct script_data* data; - TBL_PC* sd = script_rid2sd(st); + TBL_PC* sd = script->rid2sd(st); if (!sd) { script_pushint(st,0); return true; @@ -5641,7 +5489,7 @@ BUILDIN(countitem2) struct item_data* id = NULL; struct script_data* data; - TBL_PC* sd = script_rid2sd(st); + TBL_PC* sd = script->rid2sd(st); if (!sd) { script_pushint(st,0); return true; @@ -5704,7 +5552,7 @@ BUILDIN(checkweight) struct map_session_data* sd; struct script_data* data; - if( ( sd = script_rid2sd(st) ) == NULL ){ + if( ( sd = script->rid2sd(st) ) == NULL ){ return true; } nbargs = script_lastdata(st)+1; @@ -5790,7 +5638,7 @@ BUILDIN(checkweight2) int32 idx_it, idx_nb; int nb_it, nb_nb; //array size - TBL_PC *sd = script_rid2sd(st); + TBL_PC *sd = script->rid2sd(st); nullpo_retr(1,sd); data_it = script_getdata(st, 2); @@ -5820,8 +5668,8 @@ BUILDIN(checkweight2) script_pushint(st,0); return false;// not supported } - nb_it = getarraysize(st, id_it, idx_it, 0, reference_getref(data_it)); - nb_nb = getarraysize(st, id_nb, idx_nb, 0, reference_getref(data_nb)); + nb_it = script->getarraysize(st, id_it, idx_it, 0, reference_getref(data_it)); + nb_nb = script->getarraysize(st, id_nb, idx_nb, 0, reference_getref(data_nb)); if(nb_it != nb_nb){ ShowError("Size mistmatch: nb_it=%d, nb_nb=%d\n",nb_it,nb_nb); fail = 1; @@ -5928,7 +5776,7 @@ BUILDIN(getitem) if( script_hasdata(st,4) ) sd=map->id2sd(script_getnum(st,4)); // <Account ID> else - sd=script_rid2sd(st); // Attached player + sd=script->rid2sd(st); // Attached player if( sd == NULL ) // no target return true; @@ -5968,7 +5816,7 @@ BUILDIN(getitem2) if( script_hasdata(st,11) ) sd=map->id2sd(script_getnum(st,11)); // <Account ID> else - sd=script_rid2sd(st); // Attached player + sd=script->rid2sd(st); // Attached player if( sd == NULL ) // no target return true; @@ -6064,7 +5912,7 @@ BUILDIN(rentitem) data = script_getdata(st,2); script->get_val(st,data); - if( (sd = script_rid2sd(st)) == NULL ) + if( (sd = script->rid2sd(st)) == NULL ) return true; if( data_isstring(data) ) @@ -6121,7 +5969,7 @@ BUILDIN(getnameditem) TBL_PC *sd, *tsd; struct script_data *data; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (sd == NULL) { //Player not attached! script_pushint(st,0); @@ -6242,7 +6090,7 @@ BUILDIN(makeitem) if(strcmp(mapname,"this")==0) { TBL_PC *sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (!sd) return true; //Failed... m=sd->bl.m; } else @@ -6270,7 +6118,7 @@ BUILDIN(makeitem) /// Counts / deletes the current item given by idx. /// Used by buildin_delitem_search /// Relies on all input data being already fully valid. -static void buildin_delitem_delete(struct map_session_data* sd, int idx, int* amount, bool delete_items) +void buildin_delitem_delete(struct map_session_data* sd, int idx, int* amount, bool delete_items) { int delamount; struct item* inv = &sd->status.inventory[idx]; @@ -6295,7 +6143,7 @@ static void buildin_delitem_delete(struct map_session_data* sd, int idx, int* am /// Relies on all input data being already fully valid. /// @param exact_match will also match item attributes and cards, not just name id /// @return true when all items could be deleted, false when there were not enough items to delete -static bool buildin_delitem_search(struct map_session_data* sd, struct item* it, bool exact_match) +bool buildin_delitem_search(struct map_session_data* sd, struct item* it, bool exact_match) { bool delete_items = false; int i, amount, important; @@ -6358,7 +6206,7 @@ static bool buildin_delitem_search(struct map_session_data* sd, struct item* it, } // count / delete item - buildin_delitem_delete(sd, i, &amount, delete_items); + script->buildin_delitem_delete(sd, i, &amount, delete_items); } // 2nd pass -- any matching item @@ -6389,7 +6237,7 @@ static bool buildin_delitem_search(struct map_session_data* sd, struct item* it, } // count / delete item - buildin_delitem_delete(sd, i, &amount, delete_items); + script->buildin_delitem_delete(sd, i, &amount, delete_items); } if( amount ) @@ -6432,7 +6280,7 @@ BUILDIN(delitem) } else { - sd = script_rid2sd(st);// attached player + sd = script->rid2sd(st);// attached player if( sd == NULL ) return true; } @@ -6467,7 +6315,7 @@ BUILDIN(delitem) if( it.amount <= 0 ) return true;// nothing to do - if( buildin_delitem_search(sd, &it, false) ) + if( script->buildin_delitem_search(sd, &it, false) ) {// success return true; } @@ -6498,7 +6346,7 @@ BUILDIN(delitem2) { } else { - sd = script_rid2sd(st);// attached player + sd = script->rid2sd(st);// attached player if( sd == NULL ) return true; } @@ -6540,7 +6388,7 @@ BUILDIN(delitem2) { if( it.amount <= 0 ) return true;// nothing to do - if( buildin_delitem_search(sd, &it, true) ) + if( script->buildin_delitem_search(sd, &it, true) ) {// success return true; } @@ -6557,7 +6405,7 @@ BUILDIN(delitem2) { BUILDIN(enableitemuse) { TBL_PC *sd; - sd=script_rid2sd(st); + sd=script->rid2sd(st); if (sd) st->npc_item_flag = sd->npc_item_flag = 1; return true; @@ -6566,7 +6414,7 @@ BUILDIN(enableitemuse) BUILDIN(disableitemuse) { TBL_PC *sd; - sd=script_rid2sd(st); + sd=script->rid2sd(st); if (sd) st->npc_item_flag = sd->npc_item_flag = 0; return true; @@ -6584,7 +6432,7 @@ BUILDIN(readparam) { if( script_hasdata(st,3) ) sd=map->nick2sd(script_getstr(st,3)); else - sd=script_rid2sd(st); + sd=script->rid2sd(st); if(sd==NULL){ script_pushint(st,-1); @@ -6613,7 +6461,7 @@ BUILDIN(getcharid) { if( script_hasdata(st,3) ) sd=map->nick2sd(script_getstr(st,3)); else - sd=script_rid2sd(st); + sd=script->rid2sd(st); if(sd==NULL){ script_pushint(st,0); //return 0, according docs @@ -6842,7 +6690,7 @@ BUILDIN(strcharinfo) struct guild* g; struct party_data* p; - sd=script_rid2sd(st); + sd=script->rid2sd(st); if (!sd) { //Avoid crashing.... script_pushconststr(st,""); return true; @@ -6867,7 +6715,7 @@ BUILDIN(strcharinfo) } break; case 3: - script_pushconststr(st,maplist[sd->bl.m].name); + script_pushconststr(st,map->list[sd->bl.m].name); break; default: ShowWarning("buildin_strcharinfo: unknown parameter.\n"); @@ -6919,7 +6767,7 @@ BUILDIN(strnpcinfo) { name = aStrdup(nd->exname); break; case 4: // map name - name = aStrdup(maplist[nd->bl.m].name); + name = aStrdup(map->list[nd->bl.m].name); break; } @@ -6931,10 +6779,6 @@ BUILDIN(strnpcinfo) { return true; } - -// aegis->athena slot position conversion table -static unsigned int equip[] = {EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_GARMENT,EQP_SHOES,EQP_ACC_L,EQP_ACC_R,EQP_HEAD_MID,EQP_HEAD_LOW,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_GARMENT}; - /*========================================== * GetEquipID(Pos); Pos: 1-10 *------------------------------------------*/ @@ -6944,19 +6788,19 @@ BUILDIN(getequipid) TBL_PC* sd; struct item_data* item; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; num = script_getnum(st,2) - 1; - if( num < 0 || num >= ARRAYLENGTH(equip) ) + if( num < 0 || num >= ARRAYLENGTH(script->equip) ) { script_pushint(st,-1); return true; } // get inventory position of item - i = pc->checkequip(sd,equip[num]); + i = pc->checkequip(sd,script->equip[num]); if( i < 0 ) { script_pushint(st,-1); @@ -6982,19 +6826,19 @@ BUILDIN(getequipname) TBL_PC* sd; struct item_data* item; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; num = script_getnum(st,2) - 1; - if( num < 0 || num >= ARRAYLENGTH(equip) ) + if( num < 0 || num >= ARRAYLENGTH(script->equip) ) { script_pushconststr(st,""); return true; } // get inventory position of item - i = pc->checkequip(sd,equip[num]); + i = pc->checkequip(sd,script->equip[num]); if( i < 0 ) { script_pushconststr(st,""); @@ -7018,7 +6862,7 @@ BUILDIN(getbrokenid) int i,num,id=0,brokencounter=0; TBL_PC *sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -7047,7 +6891,7 @@ BUILDIN(repair) int repaircounter=0; TBL_PC *sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -7076,7 +6920,7 @@ BUILDIN(repairall) int i, repaircounter = 0; TBL_PC *sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if(sd == NULL) return true; @@ -7108,12 +6952,12 @@ BUILDIN(getequipisequiped) TBL_PC *sd; num = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if(i >= 0) script_pushint(st,1); @@ -7135,12 +6979,12 @@ BUILDIN(getequipisenableref) TBL_PC *sd; num = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - if( num > 0 && num <= ARRAYLENGTH(equip) ) - i = pc->checkequip(sd,equip[num-1]); + if( num > 0 && num <= ARRAYLENGTH(script->equip) ) + i = pc->checkequip(sd,script->equip[num-1]); if( i >= 0 && sd->inventory_data[i] && !sd->inventory_data[i]->flag.no_refine && !sd->status.inventory[i].expire_time ) script_pushint(st,1); else @@ -7161,12 +7005,12 @@ BUILDIN(getequipisidentify) TBL_PC *sd; num = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if(i >= 0) script_pushint(st,sd->status.inventory[i].identify); else @@ -7187,12 +7031,12 @@ BUILDIN(getequiprefinerycnt) TBL_PC *sd; num = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if(i >= 0) script_pushint(st,sd->status.inventory[i].refine); else @@ -7214,12 +7058,12 @@ BUILDIN(getequipweaponlv) TBL_PC *sd; num = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if(i >= 0 && sd->inventory_data[i]) script_pushint(st,sd->inventory_data[i]->wlv); else @@ -7239,12 +7083,12 @@ BUILDIN(getequippercentrefinery) { TBL_PC *sd; num = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if(i >= 0 && sd->status.inventory[i].nameid && sd->status.inventory[i].refine < MAX_REFINE) script_pushint(st,status->get_refine_chance(itemdb_wlv(sd->status.inventory[i].nameid), (int)sd->status.inventory[i].refine)); else @@ -7262,12 +7106,12 @@ BUILDIN(successrefitem) TBL_PC *sd; num = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if(i >= 0) { ep=sd->status.inventory[i].equip; @@ -7319,12 +7163,12 @@ BUILDIN(failedrefitem) TBL_PC *sd; num = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if(i >= 0) { sd->status.inventory[i].refine = 0; pc->unequipitem(sd,i,3); //recalculate bonus @@ -7343,26 +7187,29 @@ BUILDIN(failedrefitem) *------------------------------------------*/ BUILDIN(downrefitem) { - int i = -1,num,ep; + int i = -1,num,ep, down = 1; TBL_PC *sd; - num = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; + num = script_getnum(st,2); + if( script_hasdata(st, 3) ) + down = script_getnum(st, 3); - if (num > 0 && num <= ARRAYLENGTH(equip)) - i = pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i = pc->checkequip(sd,script->equip[num-1]); if(i >= 0) { ep = sd->status.inventory[i].equip; //Logs items, got from (N)PC scripts [Lupus] logs->pick_pc(sd, LOG_TYPE_SCRIPT, -1, &sd->status.inventory[i],sd->inventory_data[i]); - sd->status.inventory[i].refine++; pc->unequipitem(sd,i,2); // status calc will happen in pc->equipitem() below - - clif->refine(sd->fd,2,i,sd->status.inventory[i].refine = sd->status.inventory[i].refine - 2); + sd->status.inventory[i].refine -= down; + sd->status.inventory[i].refine = cap_value( sd->status.inventory[i].refine, 0, MAX_REFINE); + + clif->refine(sd->fd,2,i,sd->status.inventory[i].refine); clif->delitem(sd,i,1,3); //Logs items, got from (N)PC scripts [Lupus] @@ -7385,12 +7232,12 @@ BUILDIN(delequip) TBL_PC *sd; num = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if(i >= 0) { pc->unequipitem(sd,i,3); //recalculate bonus pc->delitem(sd,i,1,0,2,LOG_TYPE_SCRIPT); @@ -7408,7 +7255,7 @@ BUILDIN(statusup) TBL_PC *sd; type=script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -7426,7 +7273,7 @@ BUILDIN(statusup2) type=script_getnum(st,2); val=script_getnum(st,3); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -7452,7 +7299,7 @@ BUILDIN(bonus) int val5 = 0; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; // no player attached @@ -7531,7 +7378,7 @@ BUILDIN(autobonus) { TBL_PC* sd; const char *bonus_script, *other_script = NULL; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; // no player attached @@ -7552,9 +7399,9 @@ BUILDIN(autobonus) { if( pc->addautobonus(sd->autobonus,ARRAYLENGTH(sd->autobonus),bonus_script,rate,dur,atk_type,other_script, sd->status.inventory[status->current_equip_item_index].equip,false) ) { - script_add_autobonus(bonus_script); + script->add_autobonus(bonus_script); if( other_script ) - script_add_autobonus(other_script); + script->add_autobonus(other_script); } return true; @@ -7567,7 +7414,7 @@ BUILDIN(autobonus2) { TBL_PC* sd; const char *bonus_script, *other_script = NULL; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; // no player attached @@ -7588,9 +7435,9 @@ BUILDIN(autobonus2) { if( pc->addautobonus(sd->autobonus2,ARRAYLENGTH(sd->autobonus2),bonus_script,rate,dur,atk_type,other_script, sd->status.inventory[status->current_equip_item_index].equip,false) ) { - script_add_autobonus(bonus_script); + script->add_autobonus(bonus_script); if( other_script ) - script_add_autobonus(other_script); + script->add_autobonus(other_script); } return true; @@ -7602,7 +7449,7 @@ BUILDIN(autobonus3) { TBL_PC* sd; const char *bonus_script, *other_script = NULL; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; // no player attached @@ -7622,9 +7469,9 @@ BUILDIN(autobonus3) { if( pc->addautobonus(sd->autobonus3,ARRAYLENGTH(sd->autobonus3),bonus_script,rate,dur,atk_type,other_script, sd->status.inventory[status->current_equip_item_index].equip,true) ) { - script_add_autobonus(bonus_script); + script->add_autobonus(bonus_script); if( other_script ) - script_add_autobonus(other_script); + script->add_autobonus(other_script); } return true; @@ -7647,7 +7494,7 @@ BUILDIN(skill) int flag = 1; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7676,7 +7523,7 @@ BUILDIN(addtoskill) int flag = 2; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7700,7 +7547,7 @@ BUILDIN(guildskill) TBL_PC* sd; int i; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7721,7 +7568,7 @@ BUILDIN(getskilllv) int id; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7770,7 +7617,7 @@ BUILDIN(getgmlevel) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7786,7 +7633,7 @@ BUILDIN(getgroupid) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (sd == NULL) return false; // no player attached, report source script_pushint(st, pc_get_group_id(sd)); @@ -7810,7 +7657,7 @@ BUILDIN(checkoption) int option; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7831,7 +7678,7 @@ BUILDIN(checkoption1) int opt1; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7852,7 +7699,7 @@ BUILDIN(checkoption2) int opt2; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7878,7 +7725,7 @@ BUILDIN(setoption) int flag = 1; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7911,7 +7758,7 @@ BUILDIN(checkcart) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7939,7 +7786,7 @@ BUILDIN(setcart) int type = 1; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7959,7 +7806,7 @@ BUILDIN(checkfalcon) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -7981,7 +7828,7 @@ BUILDIN(setfalcon) int flag = 1; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -8002,7 +7849,7 @@ BUILDIN(checkriding) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -8024,7 +7871,7 @@ BUILDIN(setriding) int flag = 1; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -8043,7 +7890,7 @@ BUILDIN(checkwug) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -8063,7 +7910,7 @@ BUILDIN(checkmadogear) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -8085,7 +7932,7 @@ BUILDIN(setmadogear) int flag = 1; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -8107,7 +7954,7 @@ BUILDIN(savepoint) { const char* str; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached, report source @@ -8226,7 +8073,7 @@ BUILDIN(gettimestr) BUILDIN(openstorage) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -8238,7 +8085,7 @@ BUILDIN(guildopenstorage) { TBL_PC* sd; int ret; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -8257,7 +8104,7 @@ BUILDIN(itemskill) { int lv; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL || sd->ud.skilltimer != INVALID_TIMER ) return true; @@ -8283,7 +8130,7 @@ BUILDIN(produce) int trigger; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -8299,7 +8146,7 @@ BUILDIN(cooking) int trigger; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -8316,7 +8163,7 @@ BUILDIN(makepet) int id,pet_id; id=script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -8344,7 +8191,7 @@ BUILDIN(getexp) int base=0,job=0; double bonus; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -8371,7 +8218,7 @@ BUILDIN(guildgetexp) TBL_PC* sd; int exp; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -8431,7 +8278,7 @@ BUILDIN(monster) if (script_hasdata(st, 8)) { event = script_getstr(st, 8); - check_event(st, event); + script->check_event(st, event); } if (script_hasdata(st, 9)) @@ -8470,7 +8317,7 @@ BUILDIN(monster) return false; } - if (maplist[m].flag.src4instance && st->instance_id >= 0) { // Try to redirect to the instance map, not the src map + if (map->list[m].flag.src4instance && st->instance_id >= 0) { // Try to redirect to the instance map, not the src map if ((m = instance->mapid2imapid(m, st->instance_id)) < 0) { ShowError("buildin_monster: Trying to spawn monster (%d) on instance map (%s) without instance attached.\n", class_, mapn); return false; @@ -8540,7 +8387,7 @@ BUILDIN(areamonster) if (script_hasdata(st,10)) { event = script_getstr(st, 10); - check_event(st, event); + script->check_event(st, event); } if (script_hasdata(st, 11)) { @@ -8568,7 +8415,7 @@ BUILDIN(areamonster) ShowWarning("buildin_areamonster: Attempted to spawn monster class %d on non-existing map '%s'\n",class_, mapn); return false; } - if (maplist[m].flag.src4instance && st->instance_id >= 0) { // Try to redirect to the instance map, not the src map + if (map->list[m].flag.src4instance && st->instance_id >= 0) { // Try to redirect to the instance map, not the src map if ((m = instance->mapid2imapid(m, st->instance_id)) < 0) { ShowError("buildin_areamonster: Trying to spawn monster (%d) on instance map (%s) without instance attached.\n", class_, mapn); return false; @@ -8584,7 +8431,7 @@ BUILDIN(areamonster) /*========================================== * KillMonster subcheck, verify if mob to kill ain't got an even to handle, could be force kill by allflag *------------------------------------------*/ -static int buildin_killmonster_sub_strip(struct block_list *bl,va_list ap) +int buildin_killmonster_sub_strip(struct block_list *bl,va_list ap) { //same fix but with killmonster instead - stripping events from mobs. TBL_MOB* md = (TBL_MOB*)bl; char *event=va_arg(ap,char *); @@ -8602,7 +8449,7 @@ static int buildin_killmonster_sub_strip(struct block_list *bl,va_list ap) md->state.npc_killmonster = 0; return 0; } -static int buildin_killmonster_sub(struct block_list *bl,va_list ap) +int buildin_killmonster_sub(struct block_list *bl,va_list ap) { TBL_MOB* md = (TBL_MOB*)bl; char *event=va_arg(ap,char *); @@ -8625,28 +8472,28 @@ BUILDIN(killmonster) { if(strcmp(event,"All")==0) allflag = 1; else - check_event(st, event); + script->check_event(st, event); if( (m=map->mapname2mapid(mapname))<0 ) return true; - if( maplist[m].flag.src4instance && st->instance_id >= 0 && (m = instance->mapid2imapid(m, st->instance_id)) < 0 ) + if( map->list[m].flag.src4instance && st->instance_id >= 0 && (m = instance->mapid2imapid(m, st->instance_id)) < 0 ) return true; if( script_hasdata(st,4) ) { if ( script_getnum(st,4) == 1 ) { - map->foreachinmap(buildin_killmonster_sub, m, BL_MOB, event ,allflag); + map->foreachinmap(script->buildin_killmonster_sub, m, BL_MOB, event ,allflag); return true; } } map->freeblock_lock(); - map->foreachinmap(buildin_killmonster_sub_strip, m, BL_MOB, event ,allflag); + map->foreachinmap(script->buildin_killmonster_sub_strip, m, BL_MOB, event ,allflag); map->freeblock_unlock(); return true; } -static int buildin_killmonsterall_sub_strip(struct block_list *bl,va_list ap) +int buildin_killmonsterall_sub_strip(struct block_list *bl,va_list ap) { //Strips the event from the mob if it's killed the old method. struct mob_data *md; @@ -8657,7 +8504,7 @@ static int buildin_killmonsterall_sub_strip(struct block_list *bl,va_list ap) status_kill(bl); return 0; } -static int buildin_killmonsterall_sub(struct block_list *bl,va_list ap) +int buildin_killmonsterall_sub(struct block_list *bl,va_list ap) { status_kill(bl); return 0; @@ -8670,17 +8517,17 @@ BUILDIN(killmonsterall) { if( (m = map->mapname2mapid(mapname))<0 ) return true; - if( maplist[m].flag.src4instance && st->instance_id >= 0 && (m = instance->mapid2imapid(m, st->instance_id)) < 0 ) + if( map->list[m].flag.src4instance && st->instance_id >= 0 && (m = instance->mapid2imapid(m, st->instance_id)) < 0 ) return true; if( script_hasdata(st,3) ) { if ( script_getnum(st,3) == 1 ) { - map->foreachinmap(buildin_killmonsterall_sub,m,BL_MOB); + map->foreachinmap(script->buildin_killmonsterall_sub,m,BL_MOB); return true; } } - map->foreachinmap(buildin_killmonsterall_sub_strip,m,BL_MOB); + map->foreachinmap(script->buildin_killmonsterall_sub_strip,m,BL_MOB); return true; } @@ -8712,7 +8559,7 @@ BUILDIN(clone) { if( script_hasdata(st,10) ) duration=script_getnum(st,10); - check_event(st, event); + script->check_event(st, event); m = map->mapname2mapid(mapname); if (m < 0) return true; @@ -8740,12 +8587,12 @@ BUILDIN(doevent) const char* event = script_getstr(st,2); struct map_session_data* sd; - if( ( sd = script_rid2sd(st) ) == NULL ) + if( ( sd = script->rid2sd(st) ) == NULL ) { return true; } - check_event(st, event); + script->check_event(st, event); npc->event(sd, event, 0); return true; } @@ -8754,7 +8601,7 @@ BUILDIN(doevent) BUILDIN(donpcevent) { const char* event = script_getstr(st,2); - check_event(st, event); + script->check_event(st, event); if( !npc->event_do(event) ) { struct npc_data * nd = map->id2nd(st->oid); ShowDebug("NPCEvent '%s' not found! (source: %s)\n",event,nd?nd->name:"Unknown"); @@ -8772,7 +8619,7 @@ BUILDIN(cmdothernpc) // Added by RoVeRT const char* command = script_getstr(st,3); char event[EVENT_NAME_LENGTH]; snprintf(event, sizeof(event), "%s::OnCommand%s", npc_name, command); - check_event(st, event); + script->check_event(st, event); npc->event_do(event); return true; } @@ -8785,8 +8632,8 @@ BUILDIN(addtimer) const char* event = script_getstr(st, 3); TBL_PC* sd; - check_event(st, event); - sd = script_rid2sd(st); + script->check_event(st, event); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -8801,11 +8648,11 @@ BUILDIN(deltimer) TBL_PC* sd; event=script_getstr(st, 2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - check_event(st, event); + script->check_event(st, event); pc->deleventtimer(sd,event); return true; } @@ -8819,11 +8666,11 @@ BUILDIN(addtimercount) event=script_getstr(st, 2); tick=script_getnum(st,3); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; - check_event(st, event); + script->check_event(st, event); pc->addeventtimercount(sd,event,tick); return true; } @@ -8862,7 +8709,7 @@ BUILDIN(initnpctimer) return true; if( flag ) //Attach { - TBL_PC* sd = script_rid2sd(st); + TBL_PC* sd = script->rid2sd(st); if( sd == NULL ) return true; nd->u.scr.rid = sd->bl.id; @@ -8907,7 +8754,7 @@ BUILDIN(startnpctimer) return true; if( flag ) //Attach { - TBL_PC* sd = script_rid2sd(st); + TBL_PC* sd = script->rid2sd(st); if( sd == NULL ) return true; nd->u.scr.rid = sd->bl.id; @@ -9034,7 +8881,7 @@ BUILDIN(attachnpctimer) { if( script_hasdata(st,2) ) sd = map->nick2sd(script_getstr(st,2)); else - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( !sd ) { @@ -9098,7 +8945,7 @@ BUILDIN(announce) { if( flag&(BC_TARGET_MASK|BC_SOURCE_MASK) ) { // Broadcast source or broadcast region defined send_target target; - struct block_list *bl = (flag&BC_NPC) ? map->id2bl(st->oid) : (struct block_list *)script_rid2sd(st); // If bc_npc flag is set, use NPC as broadcast source + struct block_list *bl = (flag&BC_NPC) ? map->id2bl(st->oid) : (struct block_list *)script->rid2sd(st); // If bc_npc flag is set, use NPC as broadcast source if (bl == NULL) return true; @@ -9123,7 +8970,7 @@ BUILDIN(announce) { } /*========================================== *------------------------------------------*/ -static int buildin_announce_sub(struct block_list *bl, va_list ap) +int buildin_announce_sub(struct block_list *bl, va_list ap) { char *mes = va_arg(ap, char *); int len = va_arg(ap, int); @@ -9148,7 +8995,7 @@ BUILDIN(itemeffect) { struct script_data *data; struct item_data *item_data; - nullpo_retr( 1, ( sd = script_rid2sd( st ) ) ); + nullpo_retr( 1, ( sd = script->rid2sd( st ) ) ); nullpo_retr( 1, ( nd = (TBL_NPC *)map->id2bl( sd->npc_id ) ) ); data = script_getdata( st, 2 ); @@ -9192,7 +9039,7 @@ BUILDIN(mapannounce) { if ((m = map->mapname2mapid(mapname)) < 0) return true; - map->foreachinmap(buildin_announce_sub, m, BL_PC, + map->foreachinmap(script->buildin_announce_sub, m, BL_PC, mes, strlen(mes)+1, flag&BC_COLOR_MASK, fontColor, fontType, fontSize, fontAlign, fontY); return true; } @@ -9216,7 +9063,7 @@ BUILDIN(areaannounce) { if ((m = map->mapname2mapid(mapname)) < 0) return true; - map->foreachinarea(buildin_announce_sub, m, x0, y0, x1, y1, BL_PC, + map->foreachinarea(script->buildin_announce_sub, m, x0, y0, x1, y1, BL_PC, mes, strlen(mes)+1, flag&BC_COLOR_MASK, fontColor, fontType, fontSize, fontAlign, fontY); return true; } @@ -9235,13 +9082,13 @@ BUILDIN(getusers) { if(flag&0x8) { // npc bl = map->id2bl(st->oid); - } else if((sd = script_rid2sd(st))!=NULL) { + } else if((sd = script->rid2sd(st))!=NULL) { // pc bl = &sd->bl; } if(bl) { - val = maplist[bl->m].users; + val = map->list[bl->m].users; } break; case 1: @@ -9265,7 +9112,7 @@ BUILDIN(getusersname) int /*disp_num=1,*/ group_level = 0; struct s_mapiterator* iter; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (!sd) return true; group_level = pc->get_group_level(sd); @@ -9324,12 +9171,12 @@ BUILDIN(getmapusers) { script_pushint(st,-1); return true; } - script_pushint(st,maplist[m].users); + script_pushint(st,map->list[m].users); return true; } /*========================================== *------------------------------------------*/ -static int buildin_getareausers_sub(struct block_list *bl,va_list ap) +int buildin_getareausers_sub(struct block_list *bl,va_list ap) { int *users=va_arg(ap,int *); (*users)++; @@ -9348,7 +9195,7 @@ BUILDIN(getareausers) script_pushint(st,-1); return true; } - map->foreachinarea(buildin_getareausers_sub, + map->foreachinarea(script->buildin_getareausers_sub, m,x0,y0,x1,y1,BL_PC,&users); script_pushint(st,users); return true; @@ -9356,7 +9203,7 @@ BUILDIN(getareausers) /*========================================== *------------------------------------------*/ -static int buildin_getareadropitem_sub(struct block_list *bl,va_list ap) +int buildin_getareadropitem_sub(struct block_list *bl,va_list ap) { int item=va_arg(ap,int); int *amount=va_arg(ap,int *); @@ -9395,7 +9242,7 @@ BUILDIN(getareadropitem) script_pushint(st,-1); return true; } - map->foreachinarea(buildin_getareadropitem_sub, + map->foreachinarea(script->buildin_getareadropitem_sub, m,x0,y0,x1,y1,BL_ITEM,item,&amount); script_pushint(st,amount); return true; @@ -9625,7 +9472,7 @@ BUILDIN(getscrate) { BUILDIN(getstatus) { int id, type; - struct map_session_data* sd = script_rid2sd(st); + struct map_session_data* sd = script->rid2sd(st); if( sd == NULL ) {// no player attached @@ -9687,7 +9534,7 @@ BUILDIN(catchpet) TBL_PC *sd; pet_id= script_getnum(st,2); - sd=script_rid2sd(st); + sd=script->rid2sd(st); if( sd == NULL ) return true; @@ -9702,7 +9549,7 @@ BUILDIN(homunculus_evolution) { TBL_PC *sd; - sd=script_rid2sd(st); + sd=script->rid2sd(st); if( sd == NULL ) return true; @@ -9723,7 +9570,7 @@ BUILDIN(homunculus_mutate) { enum homun_type m_class, m_id; TBL_PC *sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL || sd->hd == NULL ) return true; @@ -9748,7 +9595,7 @@ BUILDIN(homunculus_mutate) { BUILDIN(homunculus_shuffle) { TBL_PC *sd; - sd=script_rid2sd(st); + sd=script->rid2sd(st); if( sd == NULL ) return true; @@ -9767,7 +9614,7 @@ BUILDIN(homunculus_shuffle) { *------------------------------------------*/ BUILDIN(checkhomcall) { - TBL_PC *sd = script_rid2sd(st); + TBL_PC *sd = script->rid2sd(st); TBL_HOM *hd; if( sd == NULL ) @@ -9791,7 +9638,7 @@ BUILDIN(eaclass) class_ = script_getnum(st,2); else { TBL_PC *sd; - sd=script_rid2sd(st); + sd=script->rid2sd(st); if (!sd) { script_pushint(st,-1); return true; @@ -9810,7 +9657,7 @@ BUILDIN(roclass) sex = script_getnum(st,3); else { TBL_PC *sd; - if (st->rid && (sd=script_rid2sd(st))) + if (st->rid && (sd=script->rid2sd(st))) sex = sd->status.sex; else sex = 1; //Just use male when not found. @@ -9825,7 +9672,7 @@ BUILDIN(roclass) BUILDIN(birthpet) { TBL_PC *sd; - sd=script_rid2sd(st); + sd=script->rid2sd(st); if( sd == NULL ) return true; @@ -9852,7 +9699,7 @@ BUILDIN(resetlvl) int type=script_getnum(st,2); - sd=script_rid2sd(st); + sd=script->rid2sd(st); if( sd == NULL ) return true; @@ -9865,7 +9712,7 @@ BUILDIN(resetlvl) BUILDIN(resetstatus) { TBL_PC *sd; - sd=script_rid2sd(st); + sd=script->rid2sd(st); pc->resetstate(sd); return true; } @@ -9876,7 +9723,7 @@ BUILDIN(resetstatus) BUILDIN(resetskill) { TBL_PC *sd; - sd=script_rid2sd(st); + sd=script->rid2sd(st); pc->resetskill(sd,1); return true; } @@ -9887,7 +9734,7 @@ BUILDIN(resetskill) BUILDIN(skillpointcount) { TBL_PC *sd; - sd=script_rid2sd(st); + sd=script->rid2sd(st); script_pushint(st,sd->status.skill_point + pc->resetskill(sd,2)); return true; } @@ -9902,7 +9749,7 @@ BUILDIN(changebase) { if( script_hasdata(st,3) ) sd=map->id2sd(script_getnum(st,3)); else - sd=script_rid2sd(st); + sd=script->rid2sd(st); if(sd == NULL) return true; @@ -9936,7 +9783,7 @@ BUILDIN(changesex) { int i; TBL_PC *sd = NULL; - sd = script_rid2sd(st); + sd = script->rid2sd(st); pc->resetskill(sd,4); // to avoid any problem with equipment and invalid sex, equipment is unequiped. @@ -10144,7 +9991,7 @@ BUILDIN(warpwaitingpc) { for( i = 0; i < n && cd->users > 0; i++ ) { sd = cd->usersd[0]; - if( strcmp(map_name,"SavePoint") == 0 && maplist[sd->bl.m].flag.noteleport ) { + if( strcmp(map_name,"SavePoint") == 0 && map->list[sd->bl.m].flag.noteleport ) { // can't teleport on this map break; } @@ -10180,7 +10027,7 @@ BUILDIN(warpwaitingpc) { /// @param st Script state to detach the character from. void script_detach_rid(struct script_state* st) { if(st->rid) { - script_detach_state(st, false); + script->detach_state(st, false); st->rid = 0; } } @@ -10192,7 +10039,7 @@ BUILDIN(attachrid) { int rid = script_getnum(st,2); if (map->id2sd(rid) != NULL) { - script_detach_rid(st); + script->detach_rid(st); st->rid = rid; script->attach_state(st); @@ -10206,7 +10053,7 @@ BUILDIN(attachrid) { *------------------------------------------*/ BUILDIN(detachrid) { - script_detach_rid(st); + script->detach_rid(st); return true; } /*========================================== @@ -10238,10 +10085,10 @@ BUILDIN(setmapflagnosave) { mapindex = mapindex_name2id(str2); if(m >= 0 && mapindex) { - maplist[m].flag.nosave=1; - maplist[m].save.map=mapindex; - maplist[m].save.x=x; - maplist[m].save.y=y; + map->list[m].flag.nosave=1; + map->list[m].save.map=mapindex; + map->list[m].save.x=x; + map->list[m].save.y=y; } return true; @@ -10258,63 +10105,63 @@ BUILDIN(getmapflag) m = map->mapname2mapid(str); if(m >= 0) { switch(i) { - case MF_NOMEMO: script_pushint(st,maplist[m].flag.nomemo); break; - case MF_NOTELEPORT: script_pushint(st,maplist[m].flag.noteleport); break; - case MF_NOSAVE: script_pushint(st,maplist[m].flag.nosave); break; - case MF_NOBRANCH: script_pushint(st,maplist[m].flag.nobranch); break; - case MF_NOPENALTY: script_pushint(st,maplist[m].flag.noexppenalty); break; - case MF_NOZENYPENALTY: script_pushint(st,maplist[m].flag.nozenypenalty); break; - case MF_PVP: script_pushint(st,maplist[m].flag.pvp); break; - case MF_PVP_NOPARTY: script_pushint(st,maplist[m].flag.pvp_noparty); break; - case MF_PVP_NOGUILD: script_pushint(st,maplist[m].flag.pvp_noguild); break; - case MF_GVG: script_pushint(st,maplist[m].flag.gvg); break; - case MF_GVG_NOPARTY: script_pushint(st,maplist[m].flag.gvg_noparty); break; - case MF_NOTRADE: script_pushint(st,maplist[m].flag.notrade); break; - case MF_NOSKILL: script_pushint(st,maplist[m].flag.noskill); break; - case MF_NOWARP: script_pushint(st,maplist[m].flag.nowarp); break; - case MF_PARTYLOCK: script_pushint(st,maplist[m].flag.partylock); break; - case MF_NOICEWALL: script_pushint(st,maplist[m].flag.noicewall); break; - case MF_SNOW: script_pushint(st,maplist[m].flag.snow); break; - case MF_FOG: script_pushint(st,maplist[m].flag.fog); break; - case MF_SAKURA: script_pushint(st,maplist[m].flag.sakura); break; - case MF_LEAVES: script_pushint(st,maplist[m].flag.leaves); break; - case MF_CLOUDS: script_pushint(st,maplist[m].flag.clouds); break; - case MF_CLOUDS2: script_pushint(st,maplist[m].flag.clouds2); break; - case MF_FIREWORKS: script_pushint(st,maplist[m].flag.fireworks); break; - case MF_GVG_CASTLE: script_pushint(st,maplist[m].flag.gvg_castle); break; - case MF_GVG_DUNGEON: script_pushint(st,maplist[m].flag.gvg_dungeon); break; - case MF_NIGHTENABLED: script_pushint(st,maplist[m].flag.nightenabled); break; - case MF_NOBASEEXP: script_pushint(st,maplist[m].flag.nobaseexp); break; - case MF_NOJOBEXP: script_pushint(st,maplist[m].flag.nojobexp); break; - case MF_NOMOBLOOT: script_pushint(st,maplist[m].flag.nomobloot); break; - case MF_NOMVPLOOT: script_pushint(st,maplist[m].flag.nomvploot); break; - case MF_NORETURN: script_pushint(st,maplist[m].flag.noreturn); break; - case MF_NOWARPTO: script_pushint(st,maplist[m].flag.nowarpto); break; - case MF_NIGHTMAREDROP: script_pushint(st,maplist[m].flag.pvp_nightmaredrop); break; - case MF_NOCOMMAND: script_pushint(st,maplist[m].nocommand); break; - case MF_NODROP: script_pushint(st,maplist[m].flag.nodrop); break; - case MF_JEXP: script_pushint(st,maplist[m].jexp); break; - case MF_BEXP: script_pushint(st,maplist[m].bexp); break; - case MF_NOVENDING: script_pushint(st,maplist[m].flag.novending); break; - case MF_LOADEVENT: script_pushint(st,maplist[m].flag.loadevent); break; - case MF_NOCHAT: script_pushint(st,maplist[m].flag.nochat); break; - case MF_NOEXPPENALTY: script_pushint(st,maplist[m].flag.noexppenalty ); break; - case MF_GUILDLOCK: script_pushint(st,maplist[m].flag.guildlock); break; - case MF_TOWN: script_pushint(st,maplist[m].flag.town); break; - case MF_AUTOTRADE: script_pushint(st,maplist[m].flag.autotrade); break; - case MF_ALLOWKS: script_pushint(st,maplist[m].flag.allowks); break; - case MF_MONSTER_NOTELEPORT: script_pushint(st,maplist[m].flag.monster_noteleport); break; - case MF_PVP_NOCALCRANK: script_pushint(st,maplist[m].flag.pvp_nocalcrank); break; - case MF_BATTLEGROUND: script_pushint(st,maplist[m].flag.battleground); break; - case MF_RESET: script_pushint(st,maplist[m].flag.reset); break; - case MF_NOTOMB: script_pushint(st,maplist[m].flag.notomb); break; + case MF_NOMEMO: script_pushint(st,map->list[m].flag.nomemo); break; + case MF_NOTELEPORT: script_pushint(st,map->list[m].flag.noteleport); break; + case MF_NOSAVE: script_pushint(st,map->list[m].flag.nosave); break; + case MF_NOBRANCH: script_pushint(st,map->list[m].flag.nobranch); break; + case MF_NOPENALTY: script_pushint(st,map->list[m].flag.noexppenalty); break; + case MF_NOZENYPENALTY: script_pushint(st,map->list[m].flag.nozenypenalty); break; + case MF_PVP: script_pushint(st,map->list[m].flag.pvp); break; + case MF_PVP_NOPARTY: script_pushint(st,map->list[m].flag.pvp_noparty); break; + case MF_PVP_NOGUILD: script_pushint(st,map->list[m].flag.pvp_noguild); break; + case MF_GVG: script_pushint(st,map->list[m].flag.gvg); break; + case MF_GVG_NOPARTY: script_pushint(st,map->list[m].flag.gvg_noparty); break; + case MF_NOTRADE: script_pushint(st,map->list[m].flag.notrade); break; + case MF_NOSKILL: script_pushint(st,map->list[m].flag.noskill); break; + case MF_NOWARP: script_pushint(st,map->list[m].flag.nowarp); break; + case MF_PARTYLOCK: script_pushint(st,map->list[m].flag.partylock); break; + case MF_NOICEWALL: script_pushint(st,map->list[m].flag.noicewall); break; + case MF_SNOW: script_pushint(st,map->list[m].flag.snow); break; + case MF_FOG: script_pushint(st,map->list[m].flag.fog); break; + case MF_SAKURA: script_pushint(st,map->list[m].flag.sakura); break; + case MF_LEAVES: script_pushint(st,map->list[m].flag.leaves); break; + case MF_CLOUDS: script_pushint(st,map->list[m].flag.clouds); break; + case MF_CLOUDS2: script_pushint(st,map->list[m].flag.clouds2); break; + case MF_FIREWORKS: script_pushint(st,map->list[m].flag.fireworks); break; + case MF_GVG_CASTLE: script_pushint(st,map->list[m].flag.gvg_castle); break; + case MF_GVG_DUNGEON: script_pushint(st,map->list[m].flag.gvg_dungeon); break; + case MF_NIGHTENABLED: script_pushint(st,map->list[m].flag.nightenabled); break; + case MF_NOBASEEXP: script_pushint(st,map->list[m].flag.nobaseexp); break; + case MF_NOJOBEXP: script_pushint(st,map->list[m].flag.nojobexp); break; + case MF_NOMOBLOOT: script_pushint(st,map->list[m].flag.nomobloot); break; + case MF_NOMVPLOOT: script_pushint(st,map->list[m].flag.nomvploot); break; + case MF_NORETURN: script_pushint(st,map->list[m].flag.noreturn); break; + case MF_NOWARPTO: script_pushint(st,map->list[m].flag.nowarpto); break; + case MF_NIGHTMAREDROP: script_pushint(st,map->list[m].flag.pvp_nightmaredrop); break; + case MF_NOCOMMAND: script_pushint(st,map->list[m].nocommand); break; + case MF_NODROP: script_pushint(st,map->list[m].flag.nodrop); break; + case MF_JEXP: script_pushint(st,map->list[m].jexp); break; + case MF_BEXP: script_pushint(st,map->list[m].bexp); break; + case MF_NOVENDING: script_pushint(st,map->list[m].flag.novending); break; + case MF_LOADEVENT: script_pushint(st,map->list[m].flag.loadevent); break; + case MF_NOCHAT: script_pushint(st,map->list[m].flag.nochat); break; + case MF_NOEXPPENALTY: script_pushint(st,map->list[m].flag.noexppenalty ); break; + case MF_GUILDLOCK: script_pushint(st,map->list[m].flag.guildlock); break; + case MF_TOWN: script_pushint(st,map->list[m].flag.town); break; + case MF_AUTOTRADE: script_pushint(st,map->list[m].flag.autotrade); break; + case MF_ALLOWKS: script_pushint(st,map->list[m].flag.allowks); break; + case MF_MONSTER_NOTELEPORT: script_pushint(st,map->list[m].flag.monster_noteleport); break; + case MF_PVP_NOCALCRANK: script_pushint(st,map->list[m].flag.pvp_nocalcrank); break; + case MF_BATTLEGROUND: script_pushint(st,map->list[m].flag.battleground); break; + case MF_RESET: script_pushint(st,map->list[m].flag.reset); break; + case MF_NOTOMB: script_pushint(st,map->list[m].flag.notomb); break; } } return true; } /* pvp timer handling */ -static int script_mapflag_pvp_sub(struct block_list *bl,va_list ap) { +int script_mapflag_pvp_sub(struct block_list *bl,va_list ap) { TBL_PC* sd = (TBL_PC*)bl; if (sd->pvp_timer == INVALID_TIMER) { sd->pvp_timer = timer->add(timer->gettick() + 200, pc->calc_pvprank_timer, sd->bl.id, 0); @@ -10353,77 +10200,77 @@ BUILDIN(setmapflag) { if(m >= 0) { switch(i) { - case MF_NOMEMO: maplist[m].flag.nomemo = 1; break; - case MF_NOTELEPORT: maplist[m].flag.noteleport = 1; break; - case MF_NOSAVE: maplist[m].flag.nosave = 1; break; - case MF_NOBRANCH: maplist[m].flag.nobranch = 1; break; - case MF_NOPENALTY: maplist[m].flag.noexppenalty = 1; maplist[m].flag.nozenypenalty = 1; break; - case MF_NOZENYPENALTY: maplist[m].flag.nozenypenalty = 1; break; + case MF_NOMEMO: map->list[m].flag.nomemo = 1; break; + case MF_NOTELEPORT: map->list[m].flag.noteleport = 1; break; + case MF_NOSAVE: map->list[m].flag.nosave = 1; break; + case MF_NOBRANCH: map->list[m].flag.nobranch = 1; break; + case MF_NOPENALTY: map->list[m].flag.noexppenalty = 1; map->list[m].flag.nozenypenalty = 1; break; + case MF_NOZENYPENALTY: map->list[m].flag.nozenypenalty = 1; break; case MF_PVP: - maplist[m].flag.pvp = 1; + map->list[m].flag.pvp = 1; if( !battle_config.pk_mode ) { - map->foreachinmap(script_mapflag_pvp_sub,m,BL_PC); + map->foreachinmap(script->mapflag_pvp_sub,m,BL_PC); } break; - case MF_PVP_NOPARTY: maplist[m].flag.pvp_noparty = 1; break; - case MF_PVP_NOGUILD: maplist[m].flag.pvp_noguild = 1; break; + case MF_PVP_NOPARTY: map->list[m].flag.pvp_noparty = 1; break; + case MF_PVP_NOGUILD: map->list[m].flag.pvp_noguild = 1; break; case MF_GVG: { struct block_list bl; - maplist[m].flag.gvg = 1; + map->list[m].flag.gvg = 1; clif->map_property_mapall(m, MAPPROPERTY_AGITZONE); bl.type = BL_NUL; bl.m = m; clif->maptypeproperty2(&bl,ALL_SAMEMAP); } break; - case MF_GVG_NOPARTY: maplist[m].flag.gvg_noparty = 1; break; - case MF_NOTRADE: maplist[m].flag.notrade = 1; break; - case MF_NOSKILL: maplist[m].flag.noskill = 1; break; - case MF_NOWARP: maplist[m].flag.nowarp = 1; break; - case MF_PARTYLOCK: maplist[m].flag.partylock = 1; break; - case MF_NOICEWALL: maplist[m].flag.noicewall = 1; break; - case MF_SNOW: maplist[m].flag.snow = 1; break; - case MF_FOG: maplist[m].flag.fog = 1; break; - case MF_SAKURA: maplist[m].flag.sakura = 1; break; - case MF_LEAVES: maplist[m].flag.leaves = 1; break; - case MF_CLOUDS: maplist[m].flag.clouds = 1; break; - case MF_CLOUDS2: maplist[m].flag.clouds2 = 1; break; - case MF_FIREWORKS: maplist[m].flag.fireworks = 1; break; - case MF_GVG_CASTLE: maplist[m].flag.gvg_castle = 1; break; - case MF_GVG_DUNGEON: maplist[m].flag.gvg_dungeon = 1; break; - case MF_NIGHTENABLED: maplist[m].flag.nightenabled = 1; break; - case MF_NOBASEEXP: maplist[m].flag.nobaseexp = 1; break; - case MF_NOJOBEXP: maplist[m].flag.nojobexp = 1; break; - case MF_NOMOBLOOT: maplist[m].flag.nomobloot = 1; break; - case MF_NOMVPLOOT: maplist[m].flag.nomvploot = 1; break; - case MF_NORETURN: maplist[m].flag.noreturn = 1; break; - case MF_NOWARPTO: maplist[m].flag.nowarpto = 1; break; - case MF_NIGHTMAREDROP: maplist[m].flag.pvp_nightmaredrop = 1; break; + case MF_GVG_NOPARTY: map->list[m].flag.gvg_noparty = 1; break; + case MF_NOTRADE: map->list[m].flag.notrade = 1; break; + case MF_NOSKILL: map->list[m].flag.noskill = 1; break; + case MF_NOWARP: map->list[m].flag.nowarp = 1; break; + case MF_PARTYLOCK: map->list[m].flag.partylock = 1; break; + case MF_NOICEWALL: map->list[m].flag.noicewall = 1; break; + case MF_SNOW: map->list[m].flag.snow = 1; break; + case MF_FOG: map->list[m].flag.fog = 1; break; + case MF_SAKURA: map->list[m].flag.sakura = 1; break; + case MF_LEAVES: map->list[m].flag.leaves = 1; break; + case MF_CLOUDS: map->list[m].flag.clouds = 1; break; + case MF_CLOUDS2: map->list[m].flag.clouds2 = 1; break; + case MF_FIREWORKS: map->list[m].flag.fireworks = 1; break; + case MF_GVG_CASTLE: map->list[m].flag.gvg_castle = 1; break; + case MF_GVG_DUNGEON: map->list[m].flag.gvg_dungeon = 1; break; + case MF_NIGHTENABLED: map->list[m].flag.nightenabled = 1; break; + case MF_NOBASEEXP: map->list[m].flag.nobaseexp = 1; break; + case MF_NOJOBEXP: map->list[m].flag.nojobexp = 1; break; + case MF_NOMOBLOOT: map->list[m].flag.nomobloot = 1; break; + case MF_NOMVPLOOT: map->list[m].flag.nomvploot = 1; break; + case MF_NORETURN: map->list[m].flag.noreturn = 1; break; + case MF_NOWARPTO: map->list[m].flag.nowarpto = 1; break; + case MF_NIGHTMAREDROP: map->list[m].flag.pvp_nightmaredrop = 1; break; case MF_ZONE: { char zone[6] = "zone\0"; char empty[1] = "\0"; char params[MAP_ZONE_MAPFLAG_LENGTH]; memcpy(params, val2, MAP_ZONE_MAPFLAG_LENGTH); - npc->parse_mapflag(maplist[m].name, empty, zone, params, empty, empty, empty); + npc->parse_mapflag(map->list[m].name, empty, zone, params, empty, empty, empty); } break; - case MF_NOCOMMAND: maplist[m].nocommand = (val <= 0) ? 100 : val; break; - case MF_NODROP: maplist[m].flag.nodrop = 1; break; - case MF_JEXP: maplist[m].jexp = (val <= 0) ? 100 : val; break; - case MF_BEXP: maplist[m].bexp = (val <= 0) ? 100 : val; break; - case MF_NOVENDING: maplist[m].flag.novending = 1; break; - case MF_LOADEVENT: maplist[m].flag.loadevent = 1; break; - case MF_NOCHAT: maplist[m].flag.nochat = 1; break; - case MF_NOEXPPENALTY: maplist[m].flag.noexppenalty = 1; break; - case MF_GUILDLOCK: maplist[m].flag.guildlock = 1; break; - case MF_TOWN: maplist[m].flag.town = 1; break; - case MF_AUTOTRADE: maplist[m].flag.autotrade = 1; break; - case MF_ALLOWKS: maplist[m].flag.allowks = 1; break; - case MF_MONSTER_NOTELEPORT: maplist[m].flag.monster_noteleport = 1; break; - case MF_PVP_NOCALCRANK: maplist[m].flag.pvp_nocalcrank = 1; break; - case MF_BATTLEGROUND: maplist[m].flag.battleground = (val <= 0 || val > 2) ? 1 : val; break; - case MF_RESET: maplist[m].flag.reset = 1; break; - case MF_NOTOMB: maplist[m].flag.notomb = 1; break; + case MF_NOCOMMAND: map->list[m].nocommand = (val <= 0) ? 100 : val; break; + case MF_NODROP: map->list[m].flag.nodrop = 1; break; + case MF_JEXP: map->list[m].jexp = (val <= 0) ? 100 : val; break; + case MF_BEXP: map->list[m].bexp = (val <= 0) ? 100 : val; break; + case MF_NOVENDING: map->list[m].flag.novending = 1; break; + case MF_LOADEVENT: map->list[m].flag.loadevent = 1; break; + case MF_NOCHAT: map->list[m].flag.nochat = 1; break; + case MF_NOEXPPENALTY: map->list[m].flag.noexppenalty = 1; break; + case MF_GUILDLOCK: map->list[m].flag.guildlock = 1; break; + case MF_TOWN: map->list[m].flag.town = 1; break; + case MF_AUTOTRADE: map->list[m].flag.autotrade = 1; break; + case MF_ALLOWKS: map->list[m].flag.allowks = 1; break; + case MF_MONSTER_NOTELEPORT: map->list[m].flag.monster_noteleport = 1; break; + case MF_PVP_NOCALCRANK: map->list[m].flag.pvp_nocalcrank = 1; break; + case MF_BATTLEGROUND: map->list[m].flag.battleground = (val <= 0 || val > 2) ? 1 : val; break; + case MF_RESET: map->list[m].flag.reset = 1; break; + case MF_NOTOMB: map->list[m].flag.notomb = 1; break; } } @@ -10440,75 +10287,75 @@ BUILDIN(removemapflag) { m = map->mapname2mapid(str); if(m >= 0) { switch(i) { - case MF_NOMEMO: maplist[m].flag.nomemo = 0; break; - case MF_NOTELEPORT: maplist[m].flag.noteleport = 0; break; - case MF_NOSAVE: maplist[m].flag.nosave = 0; break; - case MF_NOBRANCH: maplist[m].flag.nobranch = 0; break; - case MF_NOPENALTY: maplist[m].flag.noexppenalty = 0; maplist[m].flag.nozenypenalty = 0; break; - case MF_NOZENYPENALTY: maplist[m].flag.nozenypenalty = 0; break; + case MF_NOMEMO: map->list[m].flag.nomemo = 0; break; + case MF_NOTELEPORT: map->list[m].flag.noteleport = 0; break; + case MF_NOSAVE: map->list[m].flag.nosave = 0; break; + case MF_NOBRANCH: map->list[m].flag.nobranch = 0; break; + case MF_NOPENALTY: map->list[m].flag.noexppenalty = 0; map->list[m].flag.nozenypenalty = 0; break; + case MF_NOZENYPENALTY: map->list[m].flag.nozenypenalty = 0; break; case MF_PVP: { struct block_list bl; bl.type = BL_NUL; bl.m = m; - maplist[m].flag.pvp = 0; + map->list[m].flag.pvp = 0; clif->map_property_mapall(m, MAPPROPERTY_NOTHING); clif->maptypeproperty2(&bl,ALL_SAMEMAP); } break; - case MF_PVP_NOPARTY: maplist[m].flag.pvp_noparty = 0; break; - case MF_PVP_NOGUILD: maplist[m].flag.pvp_noguild = 0; break; + case MF_PVP_NOPARTY: map->list[m].flag.pvp_noparty = 0; break; + case MF_PVP_NOGUILD: map->list[m].flag.pvp_noguild = 0; break; case MF_GVG: { struct block_list bl; bl.type = BL_NUL; bl.m = m; - maplist[m].flag.gvg = 0; + map->list[m].flag.gvg = 0; clif->map_property_mapall(m, MAPPROPERTY_NOTHING); clif->maptypeproperty2(&bl,ALL_SAMEMAP); } break; - case MF_GVG_NOPARTY: maplist[m].flag.gvg_noparty = 0; break; - case MF_NOTRADE: maplist[m].flag.notrade = 0; break; - case MF_NOSKILL: maplist[m].flag.noskill = 0; break; - case MF_NOWARP: maplist[m].flag.nowarp = 0; break; - case MF_PARTYLOCK: maplist[m].flag.partylock = 0; break; - case MF_NOICEWALL: maplist[m].flag.noicewall = 0; break; - case MF_SNOW: maplist[m].flag.snow = 0; break; - case MF_FOG: maplist[m].flag.fog = 0; break; - case MF_SAKURA: maplist[m].flag.sakura = 0; break; - case MF_LEAVES: maplist[m].flag.leaves = 0; break; - case MF_CLOUDS: maplist[m].flag.clouds = 0; break; - case MF_CLOUDS2: maplist[m].flag.clouds2 = 0; break; - case MF_FIREWORKS: maplist[m].flag.fireworks = 0; break; - case MF_GVG_CASTLE: maplist[m].flag.gvg_castle = 0; break; - case MF_GVG_DUNGEON: maplist[m].flag.gvg_dungeon = 0; break; - case MF_NIGHTENABLED: maplist[m].flag.nightenabled = 0; break; - case MF_NOBASEEXP: maplist[m].flag.nobaseexp = 0; break; - case MF_NOJOBEXP: maplist[m].flag.nojobexp = 0; break; - case MF_NOMOBLOOT: maplist[m].flag.nomobloot = 0; break; - case MF_NOMVPLOOT: maplist[m].flag.nomvploot = 0; break; - case MF_NORETURN: maplist[m].flag.noreturn = 0; break; - case MF_NOWARPTO: maplist[m].flag.nowarpto = 0; break; - case MF_NIGHTMAREDROP: maplist[m].flag.pvp_nightmaredrop = 0; break; + case MF_GVG_NOPARTY: map->list[m].flag.gvg_noparty = 0; break; + case MF_NOTRADE: map->list[m].flag.notrade = 0; break; + case MF_NOSKILL: map->list[m].flag.noskill = 0; break; + case MF_NOWARP: map->list[m].flag.nowarp = 0; break; + case MF_PARTYLOCK: map->list[m].flag.partylock = 0; break; + case MF_NOICEWALL: map->list[m].flag.noicewall = 0; break; + case MF_SNOW: map->list[m].flag.snow = 0; break; + case MF_FOG: map->list[m].flag.fog = 0; break; + case MF_SAKURA: map->list[m].flag.sakura = 0; break; + case MF_LEAVES: map->list[m].flag.leaves = 0; break; + case MF_CLOUDS: map->list[m].flag.clouds = 0; break; + case MF_CLOUDS2: map->list[m].flag.clouds2 = 0; break; + case MF_FIREWORKS: map->list[m].flag.fireworks = 0; break; + case MF_GVG_CASTLE: map->list[m].flag.gvg_castle = 0; break; + case MF_GVG_DUNGEON: map->list[m].flag.gvg_dungeon = 0; break; + case MF_NIGHTENABLED: map->list[m].flag.nightenabled = 0; break; + case MF_NOBASEEXP: map->list[m].flag.nobaseexp = 0; break; + case MF_NOJOBEXP: map->list[m].flag.nojobexp = 0; break; + case MF_NOMOBLOOT: map->list[m].flag.nomobloot = 0; break; + case MF_NOMVPLOOT: map->list[m].flag.nomvploot = 0; break; + case MF_NORETURN: map->list[m].flag.noreturn = 0; break; + case MF_NOWARPTO: map->list[m].flag.nowarpto = 0; break; + case MF_NIGHTMAREDROP: map->list[m].flag.pvp_nightmaredrop = 0; break; case MF_ZONE: - map->zone_change2(m, maplist[m].prev_zone); + map->zone_change2(m, map->list[m].prev_zone); break; - case MF_NOCOMMAND: maplist[m].nocommand = 0; break; - case MF_NODROP: maplist[m].flag.nodrop = 0; break; - case MF_JEXP: maplist[m].jexp = 0; break; - case MF_BEXP: maplist[m].bexp = 0; break; - case MF_NOVENDING: maplist[m].flag.novending = 0; break; - case MF_LOADEVENT: maplist[m].flag.loadevent = 0; break; - case MF_NOCHAT: maplist[m].flag.nochat = 0; break; - case MF_NOEXPPENALTY: maplist[m].flag.noexppenalty = 0; break; - case MF_GUILDLOCK: maplist[m].flag.guildlock = 0; break; - case MF_TOWN: maplist[m].flag.town = 0; break; - case MF_AUTOTRADE: maplist[m].flag.autotrade = 0; break; - case MF_ALLOWKS: maplist[m].flag.allowks = 0; break; - case MF_MONSTER_NOTELEPORT: maplist[m].flag.monster_noteleport = 0; break; - case MF_PVP_NOCALCRANK: maplist[m].flag.pvp_nocalcrank = 0; break; - case MF_BATTLEGROUND: maplist[m].flag.battleground = 0; break; - case MF_RESET: maplist[m].flag.reset = 0; break; - case MF_NOTOMB: maplist[m].flag.notomb = 0; break; + case MF_NOCOMMAND: map->list[m].nocommand = 0; break; + case MF_NODROP: map->list[m].flag.nodrop = 0; break; + case MF_JEXP: map->list[m].jexp = 0; break; + case MF_BEXP: map->list[m].bexp = 0; break; + case MF_NOVENDING: map->list[m].flag.novending = 0; break; + case MF_LOADEVENT: map->list[m].flag.loadevent = 0; break; + case MF_NOCHAT: map->list[m].flag.nochat = 0; break; + case MF_NOEXPPENALTY: map->list[m].flag.noexppenalty = 0; break; + case MF_GUILDLOCK: map->list[m].flag.guildlock = 0; break; + case MF_TOWN: map->list[m].flag.town = 0; break; + case MF_AUTOTRADE: map->list[m].flag.autotrade = 0; break; + case MF_ALLOWKS: map->list[m].flag.allowks = 0; break; + case MF_MONSTER_NOTELEPORT: map->list[m].flag.monster_noteleport = 0; break; + case MF_PVP_NOCALCRANK: map->list[m].flag.pvp_nocalcrank = 0; break; + case MF_BATTLEGROUND: map->list[m].flag.battleground = 0; break; + case MF_RESET: map->list[m].flag.reset = 0; break; + case MF_NOTOMB: map->list[m].flag.notomb = 0; break; } } @@ -10524,11 +10371,16 @@ BUILDIN(pvpon) { str = script_getstr(st,2); m = map->mapname2mapid(str); - if( m < 0 || maplist[m].flag.pvp ) + if( m < 0 || map->list[m].flag.pvp ) return true; // nothing to do - map->zone_change2(m, strdb_get(zone_db, MAP_ZONE_PVP_NAME)); - maplist[m].flag.pvp = 1; + if( !strdb_exists(map->zone_db,MAP_ZONE_PVP_NAME) ) { + ShowError("buildin_pvpon: zone_db missing '%s'\n",MAP_ZONE_PVP_NAME); + return true; + } + + map->zone_change2(m, strdb_get(map->zone_db, MAP_ZONE_PVP_NAME)); + map->list[m].flag.pvp = 1; clif->map_property_mapall(m, MAPPROPERTY_FREEPVPZONE); bl.type = BL_NUL; bl.m = m; @@ -10556,7 +10408,7 @@ BUILDIN(pvpon) { return true; } -static int buildin_pvpoff_sub(struct block_list *bl,va_list ap) +int buildin_pvpoff_sub(struct block_list *bl,va_list ap) { TBL_PC* sd = (TBL_PC*)bl; clif->pvpset(sd, 0, 0, 2); @@ -10574,11 +10426,11 @@ BUILDIN(pvpoff) { str=script_getstr(st,2); m = map->mapname2mapid(str); - if(m < 0 || !maplist[m].flag.pvp) + if(m < 0 || !map->list[m].flag.pvp) return true; //fixed Lupus - map->zone_change2(m, maplist[m].prev_zone); - maplist[m].flag.pvp = 0; + map->zone_change2(m, map->list[m].prev_zone); + map->list[m].flag.pvp = 0; clif->map_property_mapall(m, MAPPROPERTY_NOTHING); bl.type = BL_NUL; bl.m = m; @@ -10587,7 +10439,7 @@ BUILDIN(pvpoff) { if(battle_config.pk_mode) // disable ranking options if pk_mode is on [Valaris] return true; - map->foreachinmap(buildin_pvpoff_sub, m, BL_PC); + map->foreachinmap(script->buildin_pvpoff_sub, m, BL_PC); return true; } @@ -10597,10 +10449,16 @@ BUILDIN(gvgon) { str=script_getstr(st,2); m = map->mapname2mapid(str); - if(m >= 0 && !maplist[m].flag.gvg) { + if(m >= 0 && !map->list[m].flag.gvg) { struct block_list bl; - map->zone_change2(m, strdb_get(zone_db, MAP_ZONE_GVG_NAME)); - maplist[m].flag.gvg = 1; + + if( !strdb_exists(map->zone_db,MAP_ZONE_GVG_NAME) ) { + ShowError("buildin_gvgon: zone_db missing '%s'\n",MAP_ZONE_GVG_NAME); + return true; + } + + map->zone_change2(m, strdb_get(map->zone_db, MAP_ZONE_GVG_NAME)); + map->list[m].flag.gvg = 1; clif->map_property_mapall(m, MAPPROPERTY_AGITZONE); bl.type = BL_NUL; bl.m = m; @@ -10615,10 +10473,10 @@ BUILDIN(gvgoff) { str=script_getstr(st,2); m = map->mapname2mapid(str); - if(m >= 0 && maplist[m].flag.gvg) { + if(m >= 0 && map->list[m].flag.gvg) { struct block_list bl; - map->zone_change2(m, maplist[m].prev_zone); - maplist[m].flag.gvg = 0; + map->zone_change2(m, map->list[m].prev_zone); + map->list[m].flag.gvg = 0; clif->map_property_mapall(m, MAPPROPERTY_NOTHING); bl.type = BL_NUL; bl.m = m; @@ -10648,7 +10506,7 @@ BUILDIN(emotion) { if( script_hasdata(st,4) ) sd = map->nick2sd(script_getstr(st,4)); else - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (sd) clif->emotion(&sd->bl,type); } else if( script_hasdata(st,4) ) { @@ -10660,7 +10518,7 @@ BUILDIN(emotion) { return true; } -static int buildin_maprespawnguildid_sub_pc(struct map_session_data* sd, va_list ap) +int buildin_maprespawnguildid_sub_pc(struct map_session_data* sd, va_list ap) { int16 m=va_arg(ap,int); int g_id=va_arg(ap,int); @@ -10677,7 +10535,7 @@ static int buildin_maprespawnguildid_sub_pc(struct map_session_data* sd, va_list return 1; } -static int buildin_maprespawnguildid_sub_mob(struct block_list *bl,va_list ap) +int buildin_maprespawnguildid_sub_mob(struct block_list *bl,va_list ap) { struct mob_data *md=(struct mob_data *)bl; @@ -10698,9 +10556,9 @@ BUILDIN(maprespawnguildid) { return true; //Catch ALL players (in case some are 'between maps' on execution time) - map->map_foreachpc(buildin_maprespawnguildid_sub_pc,m,g_id,flag); + map->foreachpc(script->buildin_maprespawnguildid_sub_pc,m,g_id,flag); if (flag&4) //Remove script mobs. - map->foreachinmap(buildin_maprespawnguildid_sub_mob,m,BL_MOB); + map->foreachinmap(script->buildin_maprespawnguildid_sub_mob,m,BL_MOB); return true; } @@ -10857,7 +10715,7 @@ BUILDIN(requestguildinfo) if( script_hasdata(st,3) ){ event=script_getstr(st,3); - check_event(st, event); + script->check_event(st, event); } if(guild_id>0) @@ -10874,9 +10732,9 @@ BUILDIN(getequipcardcnt) int count; num=script_getnum(st,2); - sd=script_rid2sd(st); - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + sd=script->rid2sd(st); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if (i < 0 || !sd->inventory_data[i]) { script_pushint(st,0); @@ -10904,11 +10762,11 @@ BUILDIN(getequipcardcnt) BUILDIN(successremovecards) { int i=-1,j,c,cardflag=0; - TBL_PC* sd = script_rid2sd(st); + TBL_PC* sd = script->rid2sd(st); int num = script_getnum(st,2); - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if (i < 0 || !sd->inventory_data[i]) { return true; @@ -10967,12 +10825,12 @@ BUILDIN(successremovecards) { BUILDIN(failedremovecards) { int i=-1,j,c,cardflag=0; - TBL_PC* sd = script_rid2sd(st); + TBL_PC* sd = script->rid2sd(st); int num = script_getnum(st,2); int typefail = script_getnum(st,3); - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if (i < 0 || !sd->inventory_data[i]) return true; @@ -11084,14 +10942,14 @@ BUILDIN(mapwarp) { } break; default: - map->foreachinmap(buildin_areawarp_sub,m,BL_PC,index,x,y,0,0); + map->foreachinmap(script->buildin_areawarp_sub,m,BL_PC,index,x,y,0,0); break; } return true; } -static int buildin_mobcount_sub(struct block_list *bl,va_list ap) // Added by RoVeRT +int buildin_mobcount_sub(struct block_list *bl,va_list ap) // Added by RoVeRT { char *event=va_arg(ap,char *); struct mob_data *md = ((struct mob_data *)bl); @@ -11110,10 +10968,10 @@ BUILDIN(mobcount) { if( strcmp(event, "all") == 0 ) event = NULL; else - check_event(st, event); + script->check_event(st, event); if( strcmp(mapname, "this") == 0 ) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); if( sd ) m = sd->bl.m; else { @@ -11125,19 +10983,19 @@ BUILDIN(mobcount) { return true; } - if( maplist[m].flag.src4instance && maplist[m].instance_id == -1 && st->instance_id >= 0 && (m = instance->mapid2imapid(m, st->instance_id)) < 0 ) { + if( map->list[m].flag.src4instance && map->list[m].instance_id == -1 && st->instance_id >= 0 && (m = instance->mapid2imapid(m, st->instance_id)) < 0 ) { script_pushint(st,-1); return true; } - script_pushint(st,map->foreachinmap(buildin_mobcount_sub, m, BL_MOB, event)); + script_pushint(st,map->foreachinmap(script->buildin_mobcount_sub, m, BL_MOB, event)); return true; } BUILDIN(marriage) { const char *partner=script_getstr(st,2); - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); TBL_PC *p_sd=map->nick2sd(partner); if(sd==NULL || p_sd==NULL || pc->marriage(sd,p_sd) < 0){ @@ -11148,7 +11006,7 @@ BUILDIN(marriage) { return true; } BUILDIN(wedding_effect) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); struct block_list *bl; if(sd==NULL) { @@ -11160,7 +11018,7 @@ BUILDIN(wedding_effect) { } BUILDIN(divorce) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd==NULL || pc->divorce(sd) < 0){ script_pushint(st,0); return true; @@ -11170,7 +11028,7 @@ BUILDIN(divorce) } BUILDIN(ispartneron) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd==NULL || !pc->ismarried(sd) || map->charid2sd(sd->status.partner_id) == NULL) { @@ -11184,7 +11042,7 @@ BUILDIN(ispartneron) { BUILDIN(getpartnerid) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if (sd == NULL) { script_pushint(st,0); return true; @@ -11196,7 +11054,7 @@ BUILDIN(getpartnerid) BUILDIN(getchildid) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if (sd == NULL) { script_pushint(st,0); return true; @@ -11208,7 +11066,7 @@ BUILDIN(getchildid) BUILDIN(getmotherid) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if (sd == NULL) { script_pushint(st,0); return true; @@ -11220,7 +11078,7 @@ BUILDIN(getmotherid) BUILDIN(getfatherid) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if (sd == NULL) { script_pushint(st,0); return true; @@ -11235,7 +11093,7 @@ BUILDIN(warppartner) int x,y; unsigned short mapindex; const char *str; - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); TBL_PC *p_sd=NULL; if(sd==NULL || !pc->ismarried(sd) || @@ -11323,12 +11181,12 @@ BUILDIN(guardian) { has_index = true; } else { ShowError("script:guardian: invalid data type for argument #6 (from 1)\n"); - script_reportdata(data); + script->reportdata(data); return false; } } - check_event(st, evt); + script->check_event(st, evt); script_pushint(st, mob->spawn_guardian(mapname,x,y,str,class_,evt,guardian,has_index)); return true; @@ -11554,9 +11412,9 @@ BUILDIN(getequipcardid) num=script_getnum(st,2); slot=script_getnum(st,3); - sd=script_rid2sd(st); - if (num > 0 && num <= ARRAYLENGTH(equip)) - i=pc->checkequip(sd,equip[num-1]); + sd=script->rid2sd(st); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) + i=pc->checkequip(sd,script->equip[num-1]); if(i >= 0 && slot>=0 && slot<4) script_pushint(st,sd->status.inventory[i].card[slot]); else @@ -11572,7 +11430,7 @@ BUILDIN(petskillbonus) { struct pet_data *pd; - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd==NULL || sd->pd==NULL) return true; @@ -11609,7 +11467,7 @@ BUILDIN(petloot) { int max; struct pet_data *pd; - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd==NULL || sd->pd==NULL) return true; @@ -11647,7 +11505,7 @@ BUILDIN(petloot) *------------------------------------------*/ BUILDIN(getinventorylist) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); char card_var[NAME_LENGTH]; int i,j=0,k; @@ -11675,7 +11533,7 @@ BUILDIN(getinventorylist) BUILDIN(getskilllist) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); int i,j=0; if(!sd) return true; for(i=0;i<MAX_SKILL;i++){ @@ -11692,7 +11550,7 @@ BUILDIN(getskilllist) BUILDIN(clearitem) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); int i; if(sd==NULL) return true; for (i=0; i<MAX_INVENTORY; i++) { @@ -11709,7 +11567,7 @@ BUILDIN(clearitem) BUILDIN(disguise) { int id; - TBL_PC* sd = script_rid2sd(st); + TBL_PC* sd = script->rid2sd(st); if (sd == NULL) return true; id = script_getnum(st,2); @@ -11728,7 +11586,7 @@ BUILDIN(disguise) *------------------------------------------*/ BUILDIN(undisguise) { - TBL_PC* sd = script_rid2sd(st); + TBL_PC* sd = script->rid2sd(st); if (sd == NULL) return true; if (sd->disguise != -1) { @@ -11769,7 +11627,7 @@ BUILDIN(misceffect) if (bl) clif->specialeffect(bl,type,AREA); } else{ - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd) clif->specialeffect(&sd->bl,type,AREA); } @@ -11783,7 +11641,7 @@ BUILDIN(playBGM) const char* name; struct map_session_data* sd; - if( ( sd = script_rid2sd(st) ) != NULL ) + if( ( sd = script->rid2sd(st) ) != NULL ) { name = script_getstr(st,2); @@ -11793,7 +11651,7 @@ BUILDIN(playBGM) return true; } -static int playBGM_sub(struct block_list* bl,va_list ap) +int playBGM_sub(struct block_list* bl,va_list ap) { const char* name = va_arg(ap,const char*); @@ -11802,7 +11660,7 @@ static int playBGM_sub(struct block_list* bl,va_list ap) return 0; } -static int playBGM_foreachpc_sub(struct map_session_data* sd, va_list args) +int playBGM_foreachpc_sub(struct map_session_data* sd, va_list args) { const char* name = va_arg(args, const char*); @@ -11832,7 +11690,7 @@ BUILDIN(playBGMall) { return true; } - map->foreachinarea(playBGM_sub, m, x0, y0, x1, y1, BL_PC, name); + map->foreachinarea(script->playBGM_sub, m, x0, y0, x1, y1, BL_PC, name); } else if( script_hasdata(st,3) ) { // entire map const char* mapname = script_getstr(st,3); @@ -11843,10 +11701,10 @@ BUILDIN(playBGMall) { return true; } - map->foreachinmap(playBGM_sub, m, BL_PC, name); + map->foreachinmap(script->playBGM_sub, m, BL_PC, name); } else { // entire server - map->map_foreachpc(&playBGM_foreachpc_sub, name); + map->foreachpc(script->playBGM_foreachpc_sub, name); } return true; @@ -11857,7 +11715,7 @@ BUILDIN(playBGMall) { *------------------------------------------*/ BUILDIN(soundeffect) { - TBL_PC* sd = script_rid2sd(st); + TBL_PC* sd = script->rid2sd(st); const char* name = script_getstr(st,2); int type = script_getnum(st,3); @@ -11887,7 +11745,7 @@ BUILDIN(soundeffectall) { const char* name; int type; - bl = (st->rid) ? &(script_rid2sd(st)->bl) : map->id2bl(st->oid); + bl = (st->rid) ? &(script->rid2sd(st)->bl) : map->id2bl(st->oid); if (!bl) return true; @@ -11908,7 +11766,7 @@ BUILDIN(soundeffectall) { return true; } - map->foreachinmap(soundeffect_sub, m, BL_PC, name, type); + map->foreachinmap(script->soundeffect_sub, m, BL_PC, name, type); } else if(script_hasdata(st,8)) { // specified part of map const char *mapname = script_getstr(st,4); int x0 = script_getnum(st,5); @@ -11922,7 +11780,7 @@ BUILDIN(soundeffectall) { return true; } - map->foreachinarea(soundeffect_sub, m, x0, y0, x1, y1, BL_PC, name, type); + map->foreachinarea(script->soundeffect_sub, m, x0, y0, x1, y1, BL_PC, name, type); } else { ShowError("buildin_soundeffectall: insufficient arguments for specific area broadcast.\n"); } @@ -11936,7 +11794,7 @@ BUILDIN(soundeffectall) { BUILDIN(petrecovery) { struct pet_data *pd; - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd==NULL || sd->pd==NULL) return true; @@ -11963,7 +11821,7 @@ BUILDIN(petrecovery) BUILDIN(petheal) { struct pet_data *pd; - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd==NULL || sd->pd==NULL) return true; @@ -12005,7 +11863,7 @@ BUILDIN(petheal) BUILDIN(petskillattack) { struct pet_data *pd; - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd==NULL || sd->pd==NULL) return true; @@ -12031,7 +11889,7 @@ BUILDIN(petskillattack) BUILDIN(petskillattack2) { struct pet_data *pd; - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd==NULL || sd->pd==NULL) return true; @@ -12057,7 +11915,7 @@ BUILDIN(petskillattack2) BUILDIN(petskillsupport) { struct pet_data *pd; - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd==NULL || sd->pd==NULL) return true; @@ -12101,7 +11959,7 @@ BUILDIN(skilleffect) uint16 skill_id=( script_isstring(st,2) ? skill->name2id(script_getstr(st,2)) : script_getnum(st,2) ); uint16 skill_lv=script_getnum(st,3); - sd=script_rid2sd(st); + sd=script->rid2sd(st); clif->skill_nodamage(&sd->bl,&sd->bl,skill_id,skill_lv,1); @@ -12147,7 +12005,7 @@ BUILDIN(specialeffect) { else { if (target == SELF) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if (sd) clif->specialeffect_single(bl,type,sd->fd); } else { @@ -12159,7 +12017,7 @@ BUILDIN(specialeffect) { } BUILDIN(specialeffect2) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); int type = script_getnum(st,2); enum send_target target = script_hasdata(st,3) ? (send_target)script_getnum(st,3) : AREA; @@ -12177,7 +12035,7 @@ BUILDIN(specialeffect2) { *------------------------------------------*/ BUILDIN(nude) { - TBL_PC *sd = script_rid2sd(st); + TBL_PC *sd = script->rid2sd(st); int i, calcflag = 0; if( sd == NULL ) @@ -12209,7 +12067,7 @@ BUILDIN(atcommand) { cmd = script_getstr(st,2); if (st->rid) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); fd = sd->fd; } else { //Use a dummy character. sd = dummy_sd = pc->get_dummy_sd(); @@ -12225,7 +12083,7 @@ BUILDIN(atcommand) { if (!atcommand->parse(fd, sd, cmd, 0)) { ShowWarning("script: buildin_atcommand: failed to execute command '%s'\n", cmd); - script_reportsrc(st); + script->reportsrc(st); ret = false; } if (dummy_sd) aFree(dummy_sd); @@ -12237,7 +12095,7 @@ BUILDIN(atcommand) { *------------------------------------------*/ BUILDIN(dispbottom) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); const char *message; message=script_getstr(st,2); if(sd) @@ -12273,7 +12131,7 @@ BUILDIN(recovery) *------------------------------------------*/ BUILDIN(getpetinfo) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); TBL_PET *pd; int type=script_getnum(st,2); @@ -12307,7 +12165,7 @@ BUILDIN(getpetinfo) *------------------------------------------*/ BUILDIN(gethominfo) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); TBL_HOM *hd; int type=script_getnum(st,2); @@ -12354,7 +12212,7 @@ BUILDIN(getmercinfo) { return false; } } else { - if( ( sd = script_rid2sd(st) ) == NULL ) { + if( ( sd = script->rid2sd(st) ) == NULL ) { script_pushnil(st); return true; } @@ -12393,7 +12251,7 @@ BUILDIN(getmercinfo) { *------------------------------------------*/ BUILDIN(checkequipedcard) { - TBL_PC *sd=script_rid2sd(st); + TBL_PC *sd=script->rid2sd(st); if(sd){ int n,i,c=0; @@ -12550,7 +12408,7 @@ BUILDIN(getlook) { int type,val; TBL_PC *sd; - sd=script_rid2sd(st); + sd=script->rid2sd(st); type=script_getnum(st,2); val=-1; @@ -12579,7 +12437,7 @@ BUILDIN(getsavepoint) TBL_PC* sd; int type; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (sd == NULL) { script_pushint(st,0); return true; @@ -12656,7 +12514,7 @@ BUILDIN(getmapxy) if( script_hasdata(st,6) ) sd=map->nick2sd(script_getstr(st,6)); else - sd=script_rid2sd(st); + sd=script->rid2sd(st); if (sd) bl = &sd->bl; @@ -12675,7 +12533,7 @@ BUILDIN(getmapxy) if(script_hasdata(st,6)) sd=map->nick2sd(script_getstr(st,6)); else - sd=script_rid2sd(st); + sd=script->rid2sd(st); if (sd && sd->pd) bl = &sd->pd->bl; @@ -12686,7 +12544,7 @@ BUILDIN(getmapxy) if(script_hasdata(st,6)) sd=map->nick2sd(script_getstr(st,6)); else - sd=script_rid2sd(st); + sd=script->rid2sd(st); if (sd && sd->hd) bl = &sd->hd->bl; @@ -12695,7 +12553,7 @@ BUILDIN(getmapxy) if(script_hasdata(st,6)) sd=map->nick2sd(script_getstr(st,6)); else - sd=script_rid2sd(st); + sd=script->rid2sd(st); if (sd && sd->md) bl = &sd->md->bl; @@ -12704,7 +12562,7 @@ BUILDIN(getmapxy) if(script_hasdata(st,6)) sd=map->nick2sd(script_getstr(st,6)); else - sd=script_rid2sd(st); + sd=script->rid2sd(st); if (sd && sd->ed) bl = &sd->ed->bl; @@ -12721,7 +12579,7 @@ BUILDIN(getmapxy) x= bl->x; y= bl->y; - safestrncpy(mapname, maplist[bl->m].name, MAP_NAME_LENGTH); + safestrncpy(mapname, map->list[bl->m].name, MAP_NAME_LENGTH); //Set MapName$ num=st->stack->stack_data[st->start+2].u.num; @@ -12729,10 +12587,10 @@ BUILDIN(getmapxy) prefix=*name; if(not_server_variable(prefix)) - sd=script_rid2sd(st); + sd=script->rid2sd(st); else sd=NULL; - set_reg(st,sd,num,name,(void*)mapname,script_getref(st,2)); + script->set_reg(st,sd,num,name,(void*)mapname,script_getref(st,2)); //Set MapX num=st->stack->stack_data[st->start+3].u.num; @@ -12740,10 +12598,10 @@ BUILDIN(getmapxy) prefix=*name; if(not_server_variable(prefix)) - sd=script_rid2sd(st); + sd=script->rid2sd(st); else sd=NULL; - set_reg(st,sd,num,name,(void*)__64BPTRSIZE(x),script_getref(st,3)); + script->set_reg(st,sd,num,name,(void*)__64BPTRSIZE(x),script_getref(st,3)); //Set MapY num=st->stack->stack_data[st->start+4].u.num; @@ -12751,10 +12609,10 @@ BUILDIN(getmapxy) prefix=*name; if(not_server_variable(prefix)) - sd=script_rid2sd(st); + sd=script->rid2sd(st); else sd=NULL; - set_reg(st,sd,num,name,(void*)__64BPTRSIZE(y),script_getref(st,4)); + script->set_reg(st,sd,num,name,(void*)__64BPTRSIZE(y),script_getref(st,4)); //Return Success value script_pushint(st,0); @@ -12769,7 +12627,7 @@ BUILDIN(logmes) const char *str; TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return false; @@ -12786,7 +12644,7 @@ BUILDIN(summon) struct mob_data *md; int tick = timer->gettick(); - sd=script_rid2sd(st); + sd=script->rid2sd(st); if (!sd) return true; str =script_getstr(st,2); @@ -12795,7 +12653,7 @@ BUILDIN(summon) timeout=script_getnum(st,4); if( script_hasdata(st,5) ){ event=script_getstr(st,5); - check_event(st, event); + script->check_event(st, event); } clif->skill_poseffect(&sd->bl,AM_CALLHOMUN,1,sd->bl.x,sd->bl.y,tick); @@ -12837,14 +12695,14 @@ BUILDIN(isequippedcnt) int i, j, k, id = 1; int ret = 0; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (!sd) { //If the player is not attached it is a script error anyway... but better prevent the map server from crashing... script_pushint(st,0); return true; } for (i=0; id!=0; i++) { - FETCH (i+2, id) else id = 0; + script_fetch(st,i+2, id) else id = 0; if (id <= 0) continue; @@ -12892,7 +12750,7 @@ BUILDIN(isequipped) //Original hash to reverse it when full check fails. unsigned int setitem_hash = 0, setitem_hash2 = 0; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (!sd) { //If the player is not attached it is a script error anyway... but better prevent the map server from crashing... script_pushint(st,0); @@ -12902,7 +12760,7 @@ BUILDIN(isequipped) setitem_hash = sd->bonus.setitem_hash; setitem_hash2 = sd->bonus.setitem_hash2; for (i=0; id!=0; i++) { - FETCH (i+2, id) else id = 0; + script_fetch(st,i+2, id) else id = 0; if (id <= 0) continue; flag = 0; @@ -12973,10 +12831,10 @@ BUILDIN(cardscnt) { int ret = 0; int index; - sd = script_rid2sd(st); + sd = script->rid2sd(st); for (i=0; id!=0; i++) { - FETCH (i+2, id) else id = 0; + script_fetch(st,i+2, id) else id = 0; if (id <= 0) continue; @@ -13009,7 +12867,7 @@ BUILDIN(cardscnt) { *-------------------------------------------------------*/ BUILDIN(getrefine) { TBL_PC *sd; - if ((sd = script_rid2sd(st))!= NULL) + if ((sd = script->rid2sd(st))!= NULL) script_pushint(st,sd->status.inventory[status->current_equip_item_index].refine); else script_pushint(st,0); @@ -13038,10 +12896,10 @@ BUILDIN(unequip) TBL_PC *sd; num = script_getnum(st,2); - sd = script_rid2sd(st); - if( sd != NULL && num >= 1 && num <= ARRAYLENGTH(equip) ) + sd = script->rid2sd(st); + if( sd != NULL && num >= 1 && num <= ARRAYLENGTH(script->equip) ) { - i = pc->checkequip(sd,equip[num-1]); + i = pc->checkequip(sd,script->equip[num-1]); if (i >= 0) pc->unequipitem(sd,i,1|2); } @@ -13054,7 +12912,7 @@ BUILDIN(equip) TBL_PC *sd; struct item_data *item_data; - sd = script_rid2sd(st); + sd = script->rid2sd(st); nameid=script_getnum(st,2); if((item_data = itemdb->exists(nameid)) == NULL) @@ -13343,7 +13201,7 @@ BUILDIN(explode) if( !data_isreference(data) ) { ShowError("script:explode: not a variable\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not a variable } @@ -13355,7 +13213,7 @@ BUILDIN(explode) if( not_array_variable(*name) ) { ShowError("script:explode: illegal scope\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not supported } @@ -13363,14 +13221,14 @@ BUILDIN(explode) if( !is_string_variable(name) ) { ShowError("script:explode: not string array\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// data type mismatch } if( not_server_variable(*name) ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached } @@ -13378,7 +13236,7 @@ BUILDIN(explode) while(str[i] != '\0') { if(str[i] == delimiter && start < SCRIPT_MAX_ARRAYSIZE-1) { //break at delimiter but ignore after reaching last array index temp[j] = '\0'; - set_reg(st, sd, reference_uid(id, start++), name, (void*)temp, reference_getref(data)); + script->set_reg(st, sd, reference_uid(id, start++), name, (void*)temp, reference_getref(data)); j = 0; ++i; } else { @@ -13387,7 +13245,7 @@ BUILDIN(explode) } //set last string temp[j] = '\0'; - set_reg(st, sd, reference_uid(id, start), name, (void*)temp, reference_getref(data)); + script->set_reg(st, sd, reference_uid(id, start), name, (void*)temp, reference_getref(data)); aFree(temp); return true; @@ -13412,7 +13270,7 @@ BUILDIN(implode) if( !data_isreference(data) ) { ShowError("script:implode: not a variable\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not a variable } @@ -13423,7 +13281,7 @@ BUILDIN(implode) if( not_array_variable(*name) ) { ShowError("script:implode: illegal scope\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not supported } @@ -13431,20 +13289,20 @@ BUILDIN(implode) if( !is_string_variable(name) ) { ShowError("script:implode: not string array\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// data type mismatch } if( not_server_variable(*name) ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached } //count chars - array_size = getarraysize(st, id, reference_getindex(data), is_string_variable(name), reference_getref(data)) - 1; + array_size = script->getarraysize(st, id, reference_getindex(data), is_string_variable(name), reference_getref(data)) - 1; if(array_size == -1) //empty array check (AmsTaff) { @@ -13553,7 +13411,7 @@ BUILDIN(sprintf) } if(*p=='n'){ // %n ShowWarning("buildin_sprintf: Format %%n not supported! Skipping...\n"); - script_reportsrc(st); + script->reportsrc(st); q+=2; continue; } @@ -13612,7 +13470,7 @@ BUILDIN(sprintf) // Passed more, than needed if(arg<argc){ ShowWarning("buildin_sprintf: Unused arguments passed.\n"); - script_reportsrc(st); + script->reportsrc(st); } script_pushstrcopy(st, StrBuf->Value(&final_buf)); @@ -13687,7 +13545,7 @@ BUILDIN(sscanf){ return false; } buf_p = reference_getname(data); - if(not_server_variable(*buf_p) && (sd = script_rid2sd(st))==NULL){ + if(not_server_variable(*buf_p) && (sd = script->rid2sd(st))==NULL){ script_pushint(st, -1); if(buf) aFree(buf); if(ref_str) aFree(ref_str); @@ -13702,12 +13560,12 @@ BUILDIN(sscanf){ if(sscanf(str, buf, ref_str)==0){ break; } - set_reg(st, sd, reference_uid( reference_getid(data), reference_getindex(data) ), buf_p, (void *)(ref_str), reference_getref(data)); + script->set_reg(st, sd, reference_uid( reference_getid(data), reference_getindex(data) ), buf_p, (void *)(ref_str), reference_getref(data)); } else { // Number if(sscanf(str, buf, &ref_int)==0){ break; } - set_reg(st, sd, reference_uid( reference_getid(data), reference_getindex(data) ), buf_p, (void *)__64BPTRSIZE(ref_int), reference_getref(data)); + script->set_reg(st, sd, reference_uid( reference_getid(data), reference_getindex(data) ), buf_p, (void *)__64BPTRSIZE(ref_int), reference_getref(data)); } arg++; @@ -13941,7 +13799,7 @@ BUILDIN(setnpcdisplay) else { ShowError("script:setnpcdisplay: expected string or number\n"); - script_reportdata(data); + script->reportdata(data); return false; } @@ -14054,7 +13912,7 @@ BUILDIN(setd) if( not_server_variable(*varname) ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) { ShowError("script:setd: no player attached for player variable '%s'\n", buffer); @@ -14088,9 +13946,9 @@ int buildin_query_sql_sub(struct script_state* st, Sql* handle) if( data_isreference(data) ) { // it's a variable name = reference_getname(data); if( not_server_variable(*name) && sd == NULL ) { // requires a player - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) { // no player attached - script_reportdata(data); + script->reportdata(data); st->state = END; return false; } @@ -14099,7 +13957,7 @@ int buildin_query_sql_sub(struct script_state* st, Sql* handle) max_rows = 1;// not an array, limit to one row } else { ShowError("script:query_sql: not a variable\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false; } @@ -14125,10 +13983,10 @@ int buildin_query_sql_sub(struct script_state* st, Sql* handle) num_cols = SQL->NumColumns(handle); if( num_vars < num_cols ) { ShowWarning("script:query_sql: Too many columns, discarding last %u columns.\n", (unsigned int)(num_cols-num_vars)); - script_reportsrc(st); + script->reportsrc(st); } else if( num_vars > num_cols ) { ShowWarning("script:query_sql: Too many variables (%u extra).\n", (unsigned int)(num_vars-num_cols)); - script_reportsrc(st); + script->reportsrc(st); } // Store data @@ -14149,7 +14007,7 @@ int buildin_query_sql_sub(struct script_state* st, Sql* handle) } if( i == max_rows && max_rows < SQL->NumRows(handle) ) { ShowWarning("script:query_sql: Only %d/%u rows have been stored.\n", max_rows, (unsigned int)SQL->NumRows(handle)); - script_reportsrc(st); + script->reportsrc(st); } // Free data @@ -14159,16 +14017,16 @@ int buildin_query_sql_sub(struct script_state* st, Sql* handle) return true; } BUILDIN(query_sql) { - return buildin_query_sql_sub(st, mmysql_handle); + return script->buildin_query_sql_sub(st, map->mysql_handle); } BUILDIN(query_logsql) { - if( !logs->config.sql_logs ) {// logmysql_handle == NULL + if( !logs->config.sql_logs ) {// logs->mysql_handle == NULL ShowWarning("buildin_query_logsql: SQL logs are disabled, query '%s' will not be executed.\n", script_getstr(st,2)); script_pushint(st,-1); return false; } - return buildin_query_sql_sub(st, logmysql_handle); + return script->buildin_query_sql_sub(st, logs->mysql_handle); } //Allows escaping of a given string. @@ -14181,7 +14039,7 @@ BUILDIN(escape_sql) str = script_getstr(st,2); len = strlen(str); esc_str = (char*)aMalloc(len*2+1); - SQL->EscapeStringLen(mmysql_handle, esc_str, str, len); + SQL->EscapeStringLen(map->mysql_handle, esc_str, str, len); script_pushstr(st, esc_str); return true; } @@ -14210,7 +14068,7 @@ BUILDIN(petstat) TBL_PC *sd = NULL; struct pet_data *pd; int flag = script_getnum(st,2); - sd = script_rid2sd(st); + sd = script->rid2sd(st); if(!sd || !sd->status.pet_id || !sd->pd){ if(flag == 2) script_pushconststr(st, ""); @@ -14238,7 +14096,7 @@ BUILDIN(callshop) struct npc_data *nd; const char *shopname; int flag = 0; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (!sd) { script_pushint(st,0); return true; @@ -14522,7 +14380,7 @@ BUILDIN(checkvending) // check vending [Nab4] if(script_hasdata(st,2)) sd = map->nick2sd(script_getstr(st,2)); else - sd = script_rid2sd(st); + sd = script->rid2sd(st); if(sd) script_pushint(st, sd->state.autotrade ? 2 : sd->state.vending); @@ -14540,7 +14398,7 @@ BUILDIN(checkchatting) { if(script_hasdata(st,2)) sd = map->nick2sd(script_getstr(st,2)); else - sd = script_rid2sd(st); + sd = script->rid2sd(st); if(sd) script_pushint(st,(sd->chatID != 0)); @@ -14556,7 +14414,7 @@ BUILDIN(checkidle) { if (script_hasdata(st, 2)) sd = map->nick2sd(script_getstr(st, 2)); else - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (sd) script_pushint(st, DIFF_TICK(last_tick, sd->idletime)); @@ -14594,7 +14452,7 @@ BUILDIN(searchitem) if( !data_isreference(data) ) { ShowError("script:searchitem: not a variable\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not a variable } @@ -14605,14 +14463,14 @@ BUILDIN(searchitem) if( not_array_variable(*name) ) { ShowError("script:searchitem: illegal scope\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not supported } if( not_server_variable(*name) ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true;// no player attached } @@ -14620,7 +14478,7 @@ BUILDIN(searchitem) if( is_string_variable(name) ) {// string array ShowError("script:searchitem: not an integer array reference\n"); - script_reportdata(data); + script->reportdata(data); st->state = END; return false;// not supported } @@ -14628,7 +14486,7 @@ BUILDIN(searchitem) for( i = 0; i < count; ++start, ++i ) {// Set array void* v = (void*)__64BPTRSIZE((int)items[i]->nameid); - set_reg(st, sd, reference_uid(id, start), name, v, reference_getref(data)); + script->set_reg(st, sd, reference_uid(id, start), name, v, reference_getref(data)); } script_pushint(st, count); @@ -14672,7 +14530,7 @@ int axtoi(const char *hexStg) BUILDIN(axtoi) { const char *hex = script_getstr(st,2); - script_pushint(st,axtoi(hex)); + script_pushint(st,script->axtoi(hex)); return true; } @@ -14710,7 +14568,7 @@ BUILDIN(pcblockmove) { if(id) sd = map->id2sd(id); else - sd = script_rid2sd(st); + sd = script->rid2sd(st); if(sd) sd->state.blockedmove = flag > 0; @@ -14729,7 +14587,7 @@ BUILDIN(pcfollow) { if(id) sd = map->id2sd(id); else - sd = script_rid2sd(st); + sd = script->rid2sd(st); if(sd) pc->follow(sd, targetid); @@ -14748,7 +14606,7 @@ BUILDIN(pcstopfollow) if(id) sd = map->id2sd(id); else - sd = script_rid2sd(st); + sd = script->rid2sd(st); if(sd) pc->stop_following(sd); @@ -15040,7 +14898,7 @@ BUILDIN(sleep) ticks = script_getnum(st,2); // detach the player - script_detach_rid(st); + script->detach_rid(st); if( ticks <= 0 ) {// do nothing @@ -15138,7 +14996,7 @@ BUILDIN(getvariableofnpc) if( !data_isreference(data) ) {// Not a reference (aka varaible name) ShowError("script:getvariableofnpc: not a variable\n"); - script_reportdata(data); + script->reportdata(data); script_pushnil(st); st->state = END; return false; @@ -15148,7 +15006,7 @@ BUILDIN(getvariableofnpc) if( *name != '.' || name[1] == '@' ) {// not a npc variable ShowError("script:getvariableofnpc: invalid scope (not npc variable)\n"); - script_reportdata(data); + script->reportdata(data); script_pushnil(st); st->state = END; return false; @@ -15212,7 +15070,7 @@ BUILDIN(openmail) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -15225,7 +15083,7 @@ BUILDIN(openauction) { TBL_PC* sd; - sd = script_rid2sd(st); + sd = script->rid2sd(st); if( sd == NULL ) return true; @@ -15281,7 +15139,7 @@ BUILDIN(setcell) { for( y = y1; y <= y2; ++y ) for( x = x1; x <= x2; ++x ) - maplist[m].setcell(m, x, y, type, flag); + map->list[m].setcell(m, x, y, type, flag); return true; } @@ -15294,7 +15152,7 @@ BUILDIN(mercenary_create) struct map_session_data *sd; int class_, contract_time; - if( (sd = script_rid2sd(st)) == NULL || sd->md || sd->status.mer_id != 0 ) + if( (sd = script->rid2sd(st)) == NULL || sd->md || sd->status.mer_id != 0 ) return true; class_ = script_getnum(st,2); @@ -15308,7 +15166,7 @@ BUILDIN(mercenary_create) } BUILDIN(mercenary_heal) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); int hp, sp; if( sd == NULL || sd->md == NULL ) @@ -15321,7 +15179,7 @@ BUILDIN(mercenary_heal) { } BUILDIN(mercenary_sc_start) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); enum sc_type type; int tick, val1; @@ -15337,7 +15195,7 @@ BUILDIN(mercenary_sc_start) { } BUILDIN(mercenary_get_calls) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); int guild_id; if( sd == NULL ) @@ -15363,7 +15221,7 @@ BUILDIN(mercenary_get_calls) { } BUILDIN(mercenary_set_calls) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); int guild_id, value, *calls; if( sd == NULL ) @@ -15393,7 +15251,7 @@ BUILDIN(mercenary_set_calls) { } BUILDIN(mercenary_get_faith) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); int guild_id; if( sd == NULL ) @@ -15419,7 +15277,7 @@ BUILDIN(mercenary_get_faith) { } BUILDIN(mercenary_set_faith) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); int guild_id, value, *calls; if( sd == NULL ) @@ -15458,7 +15316,7 @@ BUILDIN(readbook) struct map_session_data *sd; int book_id, page; - if( (sd = script_rid2sd(st)) == NULL ) + if( (sd = script->rid2sd(st)) == NULL ) return true; book_id = script_getnum(st,2); @@ -15474,7 +15332,7 @@ BUILDIN(readbook) BUILDIN(setquest) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); nullpo_ret(sd); quest->add(sd, script_getnum(st, 2)); @@ -15483,7 +15341,7 @@ BUILDIN(setquest) BUILDIN(erasequest) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); nullpo_ret(sd); quest->delete(sd, script_getnum(st, 2)); @@ -15492,7 +15350,7 @@ BUILDIN(erasequest) BUILDIN(completequest) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); nullpo_ret(sd); quest->update_status(sd, script_getnum(st, 2), Q_COMPLETE); @@ -15501,7 +15359,7 @@ BUILDIN(completequest) BUILDIN(changequest) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); nullpo_ret(sd); quest->change(sd, script_getnum(st, 2),script_getnum(st, 3)); @@ -15510,7 +15368,7 @@ BUILDIN(changequest) BUILDIN(checkquest) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); quest_check_type type = HAVEQUEST; nullpo_ret(sd); @@ -15524,7 +15382,7 @@ BUILDIN(checkquest) } BUILDIN(showevent) { - TBL_PC *sd = script_rid2sd(st); + TBL_PC *sd = script->rid2sd(st); struct npc_data *nd = map->id2nd(st->oid); int state, color; @@ -15670,7 +15528,7 @@ BUILDIN(bg_monster) str = script_getstr(st,6); class_ = script_getnum(st,7); if( script_hasdata(st,8) ) evt = script_getstr(st,8); - check_event(st, evt); + script->check_event(st, evt); script_pushint(st, mob->spawn_bg(mapname,x,y,str,class_,evt,bg_id)); return true; } @@ -15696,7 +15554,7 @@ BUILDIN(bg_monster_set_team) { BUILDIN(bg_leave) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); if( sd == NULL || !sd->bg_id ) return true; @@ -15753,8 +15611,8 @@ BUILDIN(bg_updatescore) { if( (m = map->mapname2mapid(str)) < 0 ) return true; - maplist[m].bgscore_lion = script_getnum(st,3); - maplist[m].bgscore_eagle = script_getnum(st,4); + map->list[m].bgscore_lion = script_getnum(st,3); + map->list[m].bgscore_eagle = script_getnum(st,4); clif->bg_updatescore(m); return true; @@ -15860,7 +15718,7 @@ BUILDIN(instance_attachmap) { script_pushconststr(st, ""); return true; } - script_pushconststr(st, maplist[m].name); + script_pushconststr(st, map->list[m].name); return true; } @@ -15930,7 +15788,7 @@ BUILDIN(instance_init) { return true; } - if( instances[instance_id].state != INSTANCE_IDLE ) { + if( instance->list[instance_id].state != INSTANCE_IDLE ) { ShowError("instance_init: instance already initialized.\n"); return true; } @@ -15961,8 +15819,8 @@ BUILDIN(instance_announce) { if( !instance->valid(instance_id) ) return true; - for( i = 0; i < instances[instance_id].num_map; i++ ) - map->foreachinmap(buildin_announce_sub, instances[instance_id].map[i], BL_PC, + for( i = 0; i < instance->list[instance_id].num_map; i++ ) + map->foreachinmap(script->buildin_announce_sub, instance->list[instance_id].map[i], BL_PC, mes, strlen(mes)+1, flag&BC_COLOR_MASK, fontColor, fontType, fontSize, fontAlign, fontY); return true; @@ -16009,14 +15867,14 @@ BUILDIN(has_instance) { instance_id = script_getnum(st, 3); else if( st->instance_id >= 0 ) instance_id = st->instance_id; - else if( (sd = script_rid2sd(st)) != NULL ) { + else if( (sd = script->rid2sd(st)) != NULL ) { struct party_data *p; int i = 0, j = 0; if( sd->instances ) { for( i = 0; i < sd->instances; i++ ) { if( sd->instance[i] >= 0 ) { - ARR_FIND(0, instances[sd->instance[i]].num_map, j, maplist[instances[sd->instance[i]].map[j]].instance_src_map == m); - if( j != instances[sd->instance[i]].num_map ) + ARR_FIND(0, instance->list[sd->instance[i]].num_map, j, map->list[instance->list[sd->instance[i]].map[j]].instance_src_map == m); + if( j != instance->list[sd->instance[i]].num_map ) break; } } @@ -16026,8 +15884,8 @@ BUILDIN(has_instance) { if( instance_id == -1 && sd->status.party_id && (p = party->search(sd->status.party_id)) && p->instances ) { for( i = 0; i < p->instances; i++ ) { if( p->instance[i] >= 0 ) { - ARR_FIND(0, instances[p->instance[i]].num_map, j, maplist[instances[p->instance[i]].map[j]].instance_src_map == m); - if( j != instances[p->instance[i]].num_map ) + ARR_FIND(0, instance->list[p->instance[i]].num_map, j, map->list[instance->list[p->instance[i]].map[j]].instance_src_map == m); + if( j != instance->list[p->instance[i]].num_map ) break; } } @@ -16037,8 +15895,8 @@ BUILDIN(has_instance) { if( instance_id == -1 && sd->guild && sd->guild->instances ) { for( i = 0; i < sd->guild->instances; i++ ) { if( sd->guild->instance[i] >= 0 ) { - ARR_FIND(0, instances[sd->guild->instance[i]].num_map, j, maplist[instances[sd->guild->instance[i]].map[j]].instance_src_map == m); - if( j != instances[sd->guild->instance[i]].num_map ) + ARR_FIND(0, instance->list[sd->guild->instance[i]].num_map, j, map->list[instance->list[sd->guild->instance[i]].map[j]].instance_src_map == m); + if( j != instance->list[sd->guild->instance[i]].num_map ) break; } } @@ -16052,10 +15910,10 @@ BUILDIN(has_instance) { return true; } - script_pushconststr(st, maplist[m].name); + script_pushconststr(st, map->list[m].name); return true; } -static int buildin_instance_warpall_sub(struct block_list *bl,va_list ap) { +int buildin_instance_warpall_sub(struct block_list *bl,va_list ap) { struct map_session_data *sd = ((TBL_PC*)bl); int mapindex = va_arg(ap,int); int x = va_arg(ap,int); @@ -16083,12 +15941,12 @@ BUILDIN(instance_warpall) { else return true; - if( (m = map->mapname2mapid(mapn)) < 0 || (maplist[m].flag.src4instance && (m = instance->mapid2imapid(m, instance_id)) < 0) ) + if( (m = map->mapname2mapid(mapn)) < 0 || (map->list[m].flag.src4instance && (m = instance->mapid2imapid(m, instance_id)) < 0) ) return true; mapindex = map_id2index(m); - map->foreachininstance(buildin_instance_warpall_sub, instance_id, BL_PC,mapindex,x,y); + map->foreachininstance(script->buildin_instance_warpall_sub, instance_id, BL_PC,mapindex,x,y); return true; } @@ -16155,7 +16013,7 @@ BUILDIN(instance_check_party) { *------------------------------------------*/ BUILDIN(setfont) { - struct map_session_data *sd = script_rid2sd(st); + struct map_session_data *sd = script->rid2sd(st); int font = script_getnum(st,2); if( sd == NULL ) return true; @@ -16169,7 +16027,7 @@ BUILDIN(setfont) return true; } -static int buildin_mobuseskill_sub(struct block_list *bl,va_list ap) +int buildin_mobuseskill_sub(struct block_list *bl,va_list ap) { TBL_MOB* md = (TBL_MOB*)bl; struct block_list *tbl; @@ -16221,7 +16079,7 @@ BUILDIN(areamobuseskill) { return true; } - if( maplist[m].flag.src4instance && st->instance_id >= 0 && (m = instance->mapid2imapid(m, st->instance_id)) < 0 ) + if( map->list[m].flag.src4instance && st->instance_id >= 0 && (m = instance->mapid2imapid(m, st->instance_id)) < 0 ) return true; center.m = m; @@ -16236,14 +16094,14 @@ BUILDIN(areamobuseskill) { emotion = script_getnum(st,11); target = script_getnum(st,12); - map->foreachinrange(buildin_mobuseskill_sub, ¢er, range, BL_MOB, mobid, skill_id, skill_lv, casttime, cancel, emotion, target); + map->foreachinrange(script->buildin_mobuseskill_sub, ¢er, range, BL_MOB, mobid, skill_id, skill_lv, casttime, cancel, emotion, target); return true; } BUILDIN(progressbar) { - struct map_session_data * sd = script_rid2sd(st); + struct map_session_data * sd = script->rid2sd(st); const char * color; unsigned int second; @@ -16269,7 +16127,7 @@ BUILDIN(pushpc) int cells, dx, dy; struct map_session_data* sd; - if((sd = script_rid2sd(st))==NULL) + if((sd = script->rid2sd(st))==NULL) { return true; } @@ -16280,7 +16138,7 @@ BUILDIN(pushpc) if(dir>7) { ShowWarning("buildin_pushpc: Invalid direction %d specified.\n", dir); - script_reportsrc(st); + script->reportsrc(st); dir%= 8; // trim spin-over } @@ -16309,7 +16167,7 @@ BUILDIN(buyingstore) { struct map_session_data* sd; - if( ( sd = script_rid2sd(st) ) == NULL ) { + if( ( sd = script->rid2sd(st) ) == NULL ) { return true; } @@ -16326,7 +16184,7 @@ BUILDIN(searchstores) unsigned int uses; struct map_session_data* sd; - if( ( sd = script_rid2sd(st) ) == NULL ) + if( ( sd = script->rid2sd(st) ) == NULL ) { return true; } @@ -16357,7 +16215,7 @@ BUILDIN(showdigit) int value; struct map_session_data* sd; - if( ( sd = script_rid2sd(st) ) == NULL ) + if( ( sd = script->rid2sd(st) ) == NULL ) { return true; } @@ -16383,7 +16241,7 @@ BUILDIN(showdigit) **/ BUILDIN(makerune) { TBL_PC* sd; - if( (sd = script_rid2sd(st)) == NULL ) + if( (sd = script->rid2sd(st)) == NULL ) return true; clif->skill_produce_mix_list(sd,RK_RUNEMASTERY,24); sd->itemid = script_getnum(st,2); @@ -16394,7 +16252,7 @@ BUILDIN(makerune) { **/ BUILDIN(checkdragon) { TBL_PC* sd; - if( (sd = script_rid2sd(st)) == NULL ) + if( (sd = script->rid2sd(st)) == NULL ) return true; if( pc_isridingdragon(sd) ) script_pushint(st,1); @@ -16416,7 +16274,7 @@ BUILDIN(setdragon) { TBL_PC* sd; int color = script_hasdata(st,2) ? script_getnum(st,2) : 0; - if( (sd = script_rid2sd(st)) == NULL ) + if( (sd = script->rid2sd(st)) == NULL ) return true; if( !pc->checkskill(sd,RK_DRAGONTRAINING) || (sd->class_&MAPID_THIRDMASK) != MAPID_RUNE_KNIGHT ) script_pushint(st,0);//Doesn't have the skill or it's not a Rune Knight @@ -16447,7 +16305,7 @@ BUILDIN(setdragon) { **/ BUILDIN(ismounting) { TBL_PC* sd; - if( (sd = script_rid2sd(st)) == NULL ) + if( (sd = script->rid2sd(st)) == NULL ) return true; if( sd->sc.data[SC_ALL_RIDING] ) script_pushint(st,1); @@ -16464,7 +16322,7 @@ BUILDIN(ismounting) { **/ BUILDIN(setmounting) { TBL_PC* sd; - if( (sd = script_rid2sd(st)) == NULL ) + if( (sd = script->rid2sd(st)) == NULL ) return true; if( sd->sc.option&(OPTION_WUGRIDER|OPTION_RIDING|OPTION_DRAGON|OPTION_MADOGEAR) ){ clif->msgtable(sd->fd, 0X78b); @@ -16513,7 +16371,7 @@ BUILDIN(getcharip) { } } else - sd = script_rid2sd(st); + sd = script->rid2sd(st); /* check for sd and IP */ if (!sd || !session[sd->fd]->client_addr) @@ -16585,7 +16443,7 @@ BUILDIN(sit) { sd = map->nick2sd(script_getstr(st, 2)); if (sd == NULL) - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (!pc_issit(sd)) { @@ -16603,7 +16461,7 @@ BUILDIN(stand) { sd = map->nick2sd(script_getstr(st, 2)); if (sd == NULL) - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (pc_issit(sd)) { @@ -16621,7 +16479,7 @@ BUILDIN(issit) { sd = map->nick2sd(script_getstr(st, 2)); if (sd == NULL) - sd = script_rid2sd(st); + sd = script->rid2sd(st); if (pc_issit(sd)) script_pushint(st, 1); @@ -16733,7 +16591,7 @@ BUILDIN(useatcmd) { cmd = script_getstr(st,2); if( st->rid ) { - sd = script_rid2sd(st); + sd = script->rid2sd(st); fd = sd->fd; } else { // Use a dummy character. @@ -16876,7 +16734,7 @@ BUILDIN(getrandgroupitem) { /* cleanmap <map_name>; * cleanarea <map_name>, <x0>, <y0>, <x1>, <y1>; */ -static int atcommand_cleanfloor_sub(struct block_list *bl, va_list ap) { +int script_cleanfloor_sub(struct block_list *bl, va_list ap) { nullpo_ret(bl); map->clearflooritem(bl); @@ -16894,14 +16752,14 @@ BUILDIN(cleanmap) { return false; if ((script_lastdata(st) - 2) < 4) { - map->foreachinmap(atcommand_cleanfloor_sub, m, BL_ITEM); + map->foreachinmap(script->cleanfloor_sub, m, BL_ITEM); } else { x0 = script_getnum(st, 3); y0 = script_getnum(st, 4); x1 = script_getnum(st, 5); y1 = script_getnum(st, 6); if (x0 > 0 && y0 > 0 && x1 > 0 && y1 > 0) { - map->foreachinarea(atcommand_cleanfloor_sub, m, x0, y0, x1, y1, BL_ITEM); + map->foreachinarea(script->cleanfloor_sub, m, x0, y0, x1, y1, BL_ITEM); } else { ShowError("cleanarea: invalid coordinate defined!\n"); return false; @@ -16925,7 +16783,7 @@ BUILDIN(npcskill) { skill_level = script_getnum(st, 3); stat_point = script_getnum(st, 4); npc_level = script_getnum(st, 5); - sd = script_rid2sd(st); + sd = script->rid2sd(st); nd = (struct npc_data *)map->id2bl(sd->npc_id); if (stat_point > battle_config.max_third_parameter) { @@ -17520,7 +17378,7 @@ void script_parse_builtin(void) { BUILDIN_DEF(getequippercentrefinery,"i"), BUILDIN_DEF(successrefitem,"i"), BUILDIN_DEF(failedrefitem,"i"), - BUILDIN_DEF(downrefitem,"i"), + BUILDIN_DEF(downrefitem,"i?"), BUILDIN_DEF(statusup,"i"), BUILDIN_DEF(statusup2,"ii"), BUILDIN_DEF(bonus,"iv"), @@ -17938,17 +17796,17 @@ void script_parse_builtin(void) { while( *p == '?' ) ++p; if( *p == '*' ) ++p; if( *p != 0 ){ - ShowWarning("script_parse_builtin: ignoring function \"%s\" with invalid arg \"%s\".\n", BUILDIN[i].name, BUILDIN[i].arg); - } else if( *skip_word(BUILDIN[i].name) != 0 ){ - ShowWarning("script_parse_builtin: ignoring function with invalid name \"%s\" (must be a word).\n", BUILDIN[i].name); + ShowWarning("parse_builtin: ignoring function \"%s\" with invalid arg \"%s\".\n", BUILDIN[i].name, BUILDIN[i].arg); + } else if( *script->skip_word(BUILDIN[i].name) != 0 ){ + ShowWarning("parse_builtin: ignoring function with invalid name \"%s\" (must be a word).\n", BUILDIN[i].name); } else { int slen = strlen(BUILDIN[i].arg), offset = start + i; n = script->add_str(BUILDIN[i].name); - if (!strcmp(BUILDIN[i].name, "set")) buildin_set_ref = n; - else if (!strcmp(BUILDIN[i].name, "callsub")) buildin_callsub_ref = n; - else if (!strcmp(BUILDIN[i].name, "callfunc")) buildin_callfunc_ref = n; - else if (!strcmp(BUILDIN[i].name, "getelementofarray") ) buildin_getelementofarray_ref = n; + if (!strcmp(BUILDIN[i].name, "set")) script->buildin_set_ref = n; + else if (!strcmp(BUILDIN[i].name, "callsub")) script->buildin_callsub_ref = n; + else if (!strcmp(BUILDIN[i].name, "callfunc")) script->buildin_callfunc_ref = n; + else if (!strcmp(BUILDIN[i].name, "getelementofarray") ) script->buildin_getelementofarray_ref = n; if( script->str_data[n].func && script->str_data[n].func != BUILDIN[i].func ) continue;/* something replaced it, skip. */ @@ -17984,6 +17842,9 @@ void script_label_add(int key, int pos) { } void script_defaults(void) { + // aegis->athena slot position conversion table + unsigned int equip[SCRIPT_EQUIP_TABLE_SIZE] = {EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_GARMENT,EQP_SHOES,EQP_ACC_L,EQP_ACC_R,EQP_HEAD_MID,EQP_HEAD_LOW,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_GARMENT}; + script = &script_s; script->st_db = NULL; @@ -18006,6 +17867,7 @@ void script_defaults(void) { script->str_buf = NULL; script->str_size = 0; script->str_pos = 0; + memset(script->str_hash, 0, sizeof(script->str_hash)); script->word_buf = NULL; script->word_size = 0; @@ -18016,6 +17878,29 @@ void script_defaults(void) { script->label_count = 0; script->labels_size = 0; + script->buf = NULL; + script->pos = 0, script->size = 0; + + script->parse_options = 0; + script->buildin_set_ref = 0; + script->buildin_callsub_ref = 0; + script->buildin_callfunc_ref = 0; + script->buildin_getelementofarray_ref = 0; + + memset(script->error_jump,0,sizeof(script->error_jump)); + script->error_msg = NULL; + script->error_pos = NULL; + script->error_report = 0; + script->parser_current_src = NULL; + script->parser_current_file = NULL; + script->parser_current_line = 0; + + memset(&script->syntax,0,sizeof(script->syntax)); + + script->parse_syntax_for_flag = 0; + + memcpy(script->equip, &equip, sizeof(script->equip)); + memset(&script->config, 0, sizeof(script->config)); script->autobonus_db = NULL; @@ -18078,6 +17963,77 @@ void script_defaults(void) { script->queue_create = script_hqueue_create; script->queue_clear = script_hqueue_clear; + script->parse_curly_close = parse_curly_close; + script->parse_syntax_close = parse_syntax_close; + script->parse_syntax_close_sub = parse_syntax_close_sub; + script->parse_syntax = parse_syntax; + script->get_com = get_com; + script->get_num = get_num; + script->op2name = script_op2name; + script->reportsrc = script_reportsrc; + script->reportdata = script_reportdata; + script->reportfunc = script_reportfunc; + script->disp_error_message2 = disp_error_message2; + script->disp_warning_message = disp_warning_message; + script->check_event = check_event; + script->calc_hash = calc_hash; + script->addb = add_scriptb; + script->addc = add_scriptc; + script->addi = add_scripti; + script->addl = add_scriptl; + script->set_label = set_label; + script->skip_word = skip_word; + script->add_word = add_word; + script->parse_callfunc = parse_callfunc; + script->parse_nextline = parse_nextline; + script->parse_variable = parse_variable; + script->parse_simpleexpr = parse_simpleexpr; + script->parse_expr = parse_expr; + script->parse_line = parse_line; + script->read_constdb = read_constdb; + script->print_line = script_print_line; + script->errorwarning_sub = script_errorwarning_sub; + script->set_reg = set_reg; + script->stack_expand = stack_expand; + script->push_retinfo = push_retinfo; + script->pop_val = pop_val; + script->op_3 = op_3; + script->op_2str = op_2str; + script->op_2num = op_2num; + script->op_2 = op_2; + script->op_1 = op_1; + script->check_buildin_argtype = script_check_buildin_argtype; + script->detach_state = script_detach_state; + script->db_free_code_sub = db_script_free_code_sub; + script->add_autobonus = script_add_autobonus; + script->menu_countoptions = menu_countoptions; + script->buildin_areawarp_sub = buildin_areawarp_sub; + script->buildin_areapercentheal_sub = buildin_areapercentheal_sub; + script->getarraysize = getarraysize; + script->buildin_delitem_delete = buildin_delitem_delete; + script->buildin_delitem_search = buildin_delitem_search; + script->buildin_killmonster_sub_strip = buildin_killmonster_sub_strip; + script->buildin_killmonster_sub = buildin_killmonster_sub; + script->buildin_killmonsterall_sub_strip = buildin_killmonsterall_sub_strip; + script->buildin_killmonsterall_sub = buildin_killmonsterall_sub; + script->buildin_announce_sub = buildin_announce_sub; + script->buildin_getareausers_sub = buildin_getareausers_sub; + script->buildin_getareadropitem_sub = buildin_getareadropitem_sub; + script->mapflag_pvp_sub = script_mapflag_pvp_sub; + script->buildin_pvpoff_sub = buildin_pvpoff_sub; + script->buildin_maprespawnguildid_sub_pc = buildin_maprespawnguildid_sub_pc; + script->buildin_maprespawnguildid_sub_mob = buildin_maprespawnguildid_sub_mob; + script->buildin_mobcount_sub = buildin_mobcount_sub; + script->playBGM_sub = playBGM_sub; + script->playBGM_foreachpc_sub = playBGM_foreachpc_sub; + script->soundeffect_sub = soundeffect_sub; + script->buildin_query_sql_sub = buildin_query_sql_sub; + script->axtoi = axtoi; + script->buildin_instance_warpall_sub = buildin_instance_warpall_sub; + script->buildin_mobuseskill_sub = buildin_mobuseskill_sub; + script->cleanfloor_sub = script_cleanfloor_sub; + script->run_func = run_func; + /* script_config base */ script->config.warn_func_mismatch_argtypes = 1; script->config.warn_func_mismatch_paramnum = 1; diff --git a/src/map/script.h b/src/map/script.h index 97f9bdb8c..c00086ef9 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -1,11 +1,16 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Portions Copyright (c) Athena Dev Teams #ifndef _SCRIPT_H_ #define _SCRIPT_H_ +#include "../common/strlib.h" //StringBuf #include "map.h" //EVENT_NAME_LENGTH +#include <setjmp.h> +#include <errno.h> + /** * Declarations **/ @@ -17,6 +22,130 @@ struct eri; **/ #define NUM_WHISPER_VAR 10 +/// Maximum amount of elements in script arrays (soon getting ducked) +#define SCRIPT_MAX_ARRAYSIZE 128 + +#define SCRIPT_BLOCK_SIZE 512 + +// Using a prime number for SCRIPT_HASH_SIZE should give better distributions +#define SCRIPT_HASH_SIZE 1021 + +// Specifies which string hashing method to use +//#define SCRIPT_HASH_DJB2 +//#define SCRIPT_HASH_SDBM +#define SCRIPT_HASH_ELF + +#define SCRIPT_EQUIP_TABLE_SIZE 14 + +//#define SCRIPT_DEBUG_DISP +//#define SCRIPT_DEBUG_DISASM +//#define SCRIPT_DEBUG_HASH +//#define SCRIPT_DEBUG_DUMP_STACK + +/////////////////////////////////////////////////////////////////////////////// +//## TODO possible enhancements: [FlavioJS] +// - 'callfunc' supporting labels in the current npc "::LabelName" +// - 'callfunc' supporting labels in other npcs "NpcName::LabelName" +// - 'function FuncName;' function declarations reverting to global functions +// if local label isn't found +// - join callfunc and callsub's functionality +// - remove dynamic allocation in add_word() +// - remove GETVALUE / SETVALUE +// - clean up the set_reg / set_val / setd_sub mess +// - detect invalid label references at parse-time + +// +// struct script_state* st; +// + +/// Returns the script_data at the target index +#define script_getdata(st,i) ( &((st)->stack->stack_data[(st)->start + (i)]) ) +/// Returns if the stack contains data at the target index +#define script_hasdata(st,i) ( (st)->end > (st)->start + (i) ) +/// Returns the index of the last data in the stack +#define script_lastdata(st) ( (st)->end - (st)->start - 1 ) +/// Pushes an int into the stack +#define script_pushint(st,val) script->push_val((st)->stack, C_INT, (val),NULL) +/// Pushes a string into the stack (script engine frees it automatically) +#define script_pushstr(st,val) script->push_str((st)->stack, C_STR, (val)) +/// Pushes a copy of a string into the stack +#define script_pushstrcopy(st,val) script->push_str((st)->stack, C_STR, aStrdup(val)) +/// Pushes a constant string into the stack (must never change or be freed) +#define script_pushconststr(st,val) script->push_str((st)->stack, C_CONSTSTR, (val)) +/// Pushes a nil into the stack +#define script_pushnil(st) script->push_val((st)->stack, C_NOP, 0,NULL) +/// Pushes a copy of the data in the target index +#define script_pushcopy(st,i) script->push_copy((st)->stack, (st)->start + (i)) + +#define script_isstring(st,i) data_isstring(script_getdata(st,i)) +#define script_isint(st,i) data_isint(script_getdata(st,i)) + +#define script_getnum(st,val) script->conv_num(st, script_getdata(st,val)) +#define script_getstr(st,val) script->conv_str(st, script_getdata(st,val)) +#define script_getref(st,val) ( script_getdata(st,val)->ref ) + +// Note: "top" functions/defines use indexes relative to the top of the stack +// -1 is the index of the data at the top + +/// Returns the script_data at the target index relative to the top of the stack +#define script_getdatatop(st,i) ( &((st)->stack->stack_data[(st)->stack->sp + (i)]) ) +/// Pushes a copy of the data in the target index relative to the top of the stack +#define script_pushcopytop(st,i) script->push_copy((st)->stack, (st)->stack->sp + (i)) +/// Removes the range of values [start,end[ relative to the top of the stack +#define script_removetop(st,start,end) ( script->pop_stack((st), ((st)->stack->sp + (start)), (st)->stack->sp + (end)) ) + +// +// struct script_data* data; +// + +/// Returns if the script data is a string +#define data_isstring(data) ( (data)->type == C_STR || (data)->type == C_CONSTSTR ) +/// Returns if the script data is an int +#define data_isint(data) ( (data)->type == C_INT ) +/// Returns if the script data is a reference +#define data_isreference(data) ( (data)->type == C_NAME ) +/// Returns if the script data is a label +#define data_islabel(data) ( (data)->type == C_POS ) +/// Returns if the script data is an internal script function label +#define data_isfunclabel(data) ( (data)->type == C_USERFUNC_POS ) + +/// Returns if this is a reference to a constant +#define reference_toconstant(data) ( script->str_data[reference_getid(data)].type == C_INT ) +/// Returns if this a reference to a param +#define reference_toparam(data) ( script->str_data[reference_getid(data)].type == C_PARAM ) +/// Returns if this a reference to a variable +//##TODO confirm it's C_NAME [FlavioJS] +#define reference_tovariable(data) ( script->str_data[reference_getid(data)].type == C_NAME ) +/// Returns the unique id of the reference (id and index) +#define reference_getuid(data) ( (data)->u.num ) +/// Returns the id of the reference +#define reference_getid(data) ( (int32)(reference_getuid(data) & 0x00ffffff) ) +/// Returns the array index of the reference +#define reference_getindex(data) ( (int32)(((uint32)(reference_getuid(data) & 0xff000000)) >> 24) ) +/// Returns the name of the reference +#define reference_getname(data) ( script->str_buf + script->str_data[reference_getid(data)].str ) +/// Returns the linked list of uid-value pairs of the reference (can be NULL) +#define reference_getref(data) ( (data)->ref ) +/// Returns the value of the constant +#define reference_getconstant(data) ( script->str_data[reference_getid(data)].val ) +/// Returns the type of param +#define reference_getparamtype(data) ( script->str_data[reference_getid(data)].val ) + +/// Composes the uid of a reference from the id and the index +#define reference_uid(id,idx) ( (int32)((((uint32)(id)) & 0x00ffffff) | (((uint32)(idx)) << 24)) ) + +#define not_server_variable(prefix) ( (prefix) != '$' && (prefix) != '.' && (prefix) != '\'') +#define not_array_variable(prefix) ( (prefix) != '$' && (prefix) != '@' && (prefix) != '.' && (prefix) != '\'' ) +#define is_string_variable(name) ( (name)[strlen(name) - 1] == '$' ) + +#define BUILDIN(x) bool buildin_ ## x (struct script_state* st) +#define BUILDIN_A(x) buildin_ ## x + +#define script_fetch(st, n, t) \ + if( script_hasdata(st,n) ) \ + (t)=script_getnum(st,n); + + /** * Enumerations **/ @@ -79,6 +208,88 @@ enum script_parse_options { SCRIPT_RETURN_EMPTY_SCRIPT = 0x4// returns the script object instead of NULL for empty scripts }; +enum { LABEL_NEXTLINE=1,LABEL_START }; + +// for advanced scripting support ( nested if, switch, while, for, do-while, function, etc ) +// [Eoe / jA 1080, 1081, 1094, 1164] +enum curly_type { + TYPE_NULL = 0, + TYPE_IF, + TYPE_SWITCH, + TYPE_WHILE, + TYPE_FOR, + TYPE_DO, + TYPE_USERFUNC, + TYPE_ARGLIST // function argument list +}; + +enum e_arglist { + ARGLIST_UNDEFINED = 0, + ARGLIST_NO_PAREN = 1, + ARGLIST_PAREN = 2, +}; + +/*========================================== + * (Only those needed) local declaration prototype + * - those could be used server-wide so that the scans are done once during processing and never again, + * - doing so would also improve map zone processing and storage [Ind] + *------------------------------------------*/ + +enum { + MF_NOMEMO, //0 + MF_NOTELEPORT, + MF_NOSAVE, + MF_NOBRANCH, + MF_NOPENALTY, + MF_NOZENYPENALTY, + MF_PVP, + MF_PVP_NOPARTY, + MF_PVP_NOGUILD, + MF_GVG, + MF_GVG_NOPARTY, //10 + MF_NOTRADE, + MF_NOSKILL, + MF_NOWARP, + MF_PARTYLOCK, + MF_NOICEWALL, + MF_SNOW, + MF_FOG, + MF_SAKURA, + MF_LEAVES, + /* 21 - 22 free */ + MF_CLOUDS = 23, + MF_CLOUDS2, + MF_FIREWORKS, + MF_GVG_CASTLE, + MF_GVG_DUNGEON, + MF_NIGHTENABLED, + MF_NOBASEEXP, + MF_NOJOBEXP, //30 + MF_NOMOBLOOT, + MF_NOMVPLOOT, + MF_NORETURN, + MF_NOWARPTO, + MF_NIGHTMAREDROP, + MF_ZONE, + MF_NOCOMMAND, + MF_NODROP, + MF_JEXP, + MF_BEXP, //40 + MF_NOVENDING, + MF_LOADEVENT, + MF_NOCHAT, + MF_NOEXPPENALTY, + MF_GUILDLOCK, + MF_TOWN, + MF_AUTOTRADE, + MF_ALLOWKS, + MF_MONSTER_NOTELEPORT, + MF_PVP_NOCALCRANK, //50 + MF_BATTLEGROUND, + MF_RESET, + MF_NOTOMB +}; + /** * Structures **/ @@ -209,106 +420,21 @@ struct script_label_entry { int key,pos; }; -/////////////////////////////////////////////////////////////////////////////// -//## TODO possible enhancements: [FlavioJS] -// - 'callfunc' supporting labels in the current npc "::LabelName" -// - 'callfunc' supporting labels in other npcs "NpcName::LabelName" -// - 'function FuncName;' function declarations reverting to global functions -// if local label isn't found -// - join callfunc and callsub's functionality -// - remove dynamic allocation in add_word() -// - remove GETVALUE / SETVALUE -// - clean up the set_reg / set_val / setd_sub mess -// - detect invalid label references at parse-time - -// -// struct script_state* st; -// - -/// Returns the script_data at the target index -#define script_getdata(st,i) ( &((st)->stack->stack_data[(st)->start + (i)]) ) -/// Returns if the stack contains data at the target index -#define script_hasdata(st,i) ( (st)->end > (st)->start + (i) ) -/// Returns the index of the last data in the stack -#define script_lastdata(st) ( (st)->end - (st)->start - 1 ) -/// Pushes an int into the stack -#define script_pushint(st,val) script->push_val((st)->stack, C_INT, (val),NULL) -/// Pushes a string into the stack (script engine frees it automatically) -#define script_pushstr(st,val) script->push_str((st)->stack, C_STR, (val)) -/// Pushes a copy of a string into the stack -#define script_pushstrcopy(st,val) script->push_str((st)->stack, C_STR, aStrdup(val)) -/// Pushes a constant string into the stack (must never change or be freed) -#define script_pushconststr(st,val) script->push_str((st)->stack, C_CONSTSTR, (val)) -/// Pushes a nil into the stack -#define script_pushnil(st) script->push_val((st)->stack, C_NOP, 0,NULL) -/// Pushes a copy of the data in the target index -#define script_pushcopy(st,i) script->push_copy((st)->stack, (st)->start + (i)) - -#define script_isstring(st,i) data_isstring(script_getdata(st,i)) -#define script_isint(st,i) data_isint(script_getdata(st,i)) - -#define script_getnum(st,val) script->conv_num(st, script_getdata(st,val)) -#define script_getstr(st,val) script->conv_str(st, script_getdata(st,val)) -#define script_getref(st,val) ( script_getdata(st,val)->ref ) - -// Note: "top" functions/defines use indexes relative to the top of the stack -// -1 is the index of the data at the top - -/// Returns the script_data at the target index relative to the top of the stack -#define script_getdatatop(st,i) ( &((st)->stack->stack_data[(st)->stack->sp + (i)]) ) -/// Pushes a copy of the data in the target index relative to the top of the stack -#define script_pushcopytop(st,i) script->push_copy((st)->stack, (st)->stack->sp + (i)) -/// Removes the range of values [start,end[ relative to the top of the stack -#define script_removetop(st,start,end) ( script->pop_stack((st), ((st)->stack->sp + (start)), (st)->stack->sp + (end)) ) - -// -// struct script_data* data; -// - -/// Returns if the script data is a string -#define data_isstring(data) ( (data)->type == C_STR || (data)->type == C_CONSTSTR ) -/// Returns if the script data is an int -#define data_isint(data) ( (data)->type == C_INT ) -/// Returns if the script data is a reference -#define data_isreference(data) ( (data)->type == C_NAME ) -/// Returns if the script data is a label -#define data_islabel(data) ( (data)->type == C_POS ) -/// Returns if the script data is an internal script function label -#define data_isfunclabel(data) ( (data)->type == C_USERFUNC_POS ) - -/// Returns if this is a reference to a constant -#define reference_toconstant(data) ( script->str_data[reference_getid(data)].type == C_INT ) -/// Returns if this a reference to a param -#define reference_toparam(data) ( script->str_data[reference_getid(data)].type == C_PARAM ) -/// Returns if this a reference to a variable -//##TODO confirm it's C_NAME [FlavioJS] -#define reference_tovariable(data) ( script->str_data[reference_getid(data)].type == C_NAME ) -/// Returns the unique id of the reference (id and index) -#define reference_getuid(data) ( (data)->u.num ) -/// Returns the id of the reference -#define reference_getid(data) ( (int32)(reference_getuid(data) & 0x00ffffff) ) -/// Returns the array index of the reference -#define reference_getindex(data) ( (int32)(((uint32)(reference_getuid(data) & 0xff000000)) >> 24) ) -/// Returns the name of the reference -#define reference_getname(data) ( script->str_buf + script->str_data[reference_getid(data)].str ) -/// Returns the linked list of uid-value pairs of the reference (can be NULL) -#define reference_getref(data) ( (data)->ref ) -/// Returns the value of the constant -#define reference_getconstant(data) ( script->str_data[reference_getid(data)].val ) -/// Returns the type of param -#define reference_getparamtype(data) ( script->str_data[reference_getid(data)].val ) - -/// Composes the uid of a reference from the id and the index -#define reference_uid(id,idx) ( (int32)((((uint32)(id)) & 0x00ffffff) | (((uint32)(idx)) << 24)) ) - -#define not_server_variable(prefix) ( (prefix) != '$' && (prefix) != '.' && (prefix) != '\'') -#define not_array_variable(prefix) ( (prefix) != '$' && (prefix) != '@' && (prefix) != '.' && (prefix) != '\'' ) -#define is_string_variable(name) ( (name)[strlen(name) - 1] == '$' ) - -#define BUILDIN(x) bool buildin_ ## x (struct script_state* st) -#define BUILDIN_A(x) buildin_ ## x +struct script_syntax_data { + struct { + enum curly_type type; + int index; + int count; + int flag; + struct linkdb_node *case_label; + } curly[256]; // Information right parenthesis + int curly_count; // The number of right brackets + int index; // Number of the syntax used in the script +}; -/* script.c interface (incomplete) */ +/** + * Interface + **/ struct script_interface { /* */ DBMap *st_db; @@ -332,6 +458,7 @@ struct script_interface { char *str_buf; int str_size; // size of the buffer int str_pos; // next position to be assigned + int str_hash[SCRIPT_HASH_SIZE]; /* */ char *word_buf; int word_size; @@ -344,6 +471,32 @@ struct script_interface { /* */ struct Script_Config config; /* */ + /// temporary buffer for passing around compiled bytecode + /// @see add_scriptb, set_label, parse_script + unsigned char* buf; + int pos, size; + /* */ + struct script_syntax_data syntax; + /* */ + int parse_options; + // important buildin function references for usage in scripts + int buildin_set_ref; + int buildin_callsub_ref; + int buildin_callfunc_ref; + int buildin_getelementofarray_ref; + /* */ + jmp_buf error_jump; + char* error_msg; + const char* error_pos; + int error_report; // if the error should produce output + // Used by disp_warning_message + const char* parser_current_src; + const char* parser_current_file; + int parser_current_line; + int parse_syntax_for_flag; + // aegis->athena slot position conversion table + unsigned int equip[SCRIPT_EQUIP_TABLE_SIZE]; + /* */ /* Caches compiled autoscript item code. */ /* Note: This is not cleared when reloading itemdb. */ DBMap* autobonus_db; // char* script -> char* bytecode @@ -405,6 +558,77 @@ struct script_interface { bool (*queue_remove) (int idx, int var); int (*queue_create) (void); void (*queue_clear) (int idx); + /* */ + const char * (*parse_curly_close) (const char *p); + const char * (*parse_syntax_close) (const char *p); + const char * (*parse_syntax_close_sub) (const char *p, int *flag); + const char * (*parse_syntax) (const char *p); + c_op (*get_com) (unsigned char *scriptbuf, int *pos); + int (*get_num) (unsigned char *scriptbuf, int *pos); + const char* (*op2name) (int op); + void (*reportsrc) (struct script_state *st); + void (*reportdata) (struct script_data *data); + void (*reportfunc) (struct script_state *st); + void (*disp_error_message2) (const char *mes, const char *pos, int report); + void (*disp_warning_message) (const char *mes, const char *pos); + void (*check_event) (struct script_state *st, const char *evt); + unsigned int (*calc_hash) (const char *p); + void (*addb) (int a); + void (*addc) (int a); + void (*addi) (int a); + void (*addl) (int l); + void (*set_label) (int l, int pos, const char *script_pos); + const char* (*skip_word) (const char *p); + int (*add_word) (const char *p); + const char* (*parse_callfunc) (const char *p, int require_paren, int is_custom); + void (*parse_nextline) (bool first, const char *p); + const char* (*parse_variable) (const char *p); + const char* (*parse_simpleexpr) (const char *p); + const char* (*parse_expr) (const char *p); + const char* (*parse_line) (const char *p); + void (*read_constdb) (void); + const char* (*print_line) (StringBuf *buf, const char *p, const char *mark, int line); + void (*errorwarning_sub) (StringBuf *buf, const char *src, const char *file, int start_line, const char *error_msg, const char *error_pos); + int (*set_reg) (struct script_state *st, TBL_PC *sd, int num, const char *name, const void *value, struct DBMap **ref); + void (*stack_expand) (struct script_stack *stack); + struct script_data* (*push_retinfo) (struct script_stack *stack, struct script_retinfo *ri, DBMap **ref); + int (*pop_val) (struct script_state *st); + void (*op_3) (struct script_state *st, int op); + void (*op_2str) (struct script_state *st, int op, const char *s1, const char *s2); + void (*op_2num) (struct script_state *st, int op, int i1, int i2); + void (*op_2) (struct script_state *st, int op); + void (*op_1) (struct script_state *st, int op); + void (*check_buildin_argtype) (struct script_state *st, int func); + void (*detach_state) (struct script_state *st, bool dequeue_event); + int (*db_free_code_sub) (DBKey key, DBData *data, va_list ap); + void (*add_autobonus) (const char *autobonus); + int (*menu_countoptions) (const char *str, int max_count, int *total); + int (*buildin_areawarp_sub) (struct block_list *bl, va_list ap); + int (*buildin_areapercentheal_sub) (struct block_list *bl, va_list ap); + int32 (*getarraysize) (struct script_state *st, int32 id, int32 idx, int isstring, struct DBMap **ref); + void (*buildin_delitem_delete) (struct map_session_data *sd, int idx, int *amount, bool delete_items); + bool (*buildin_delitem_search) (struct map_session_data *sd, struct item *it, bool exact_match); + int (*buildin_killmonster_sub_strip) (struct block_list *bl, va_list ap); + int (*buildin_killmonster_sub) (struct block_list *bl, va_list ap); + int (*buildin_killmonsterall_sub_strip) (struct block_list *bl, va_list ap); + int (*buildin_killmonsterall_sub) (struct block_list *bl, va_list ap); + int (*buildin_announce_sub) (struct block_list *bl, va_list ap); + int (*buildin_getareausers_sub) (struct block_list *bl, va_list ap); + int (*buildin_getareadropitem_sub) (struct block_list *bl, va_list ap); + int (*mapflag_pvp_sub) (struct block_list *bl, va_list ap); + int (*buildin_pvpoff_sub) (struct block_list *bl, va_list ap); + int (*buildin_maprespawnguildid_sub_pc) (struct map_session_data *sd, va_list ap); + int (*buildin_maprespawnguildid_sub_mob) (struct block_list *bl, va_list ap); + int (*buildin_mobcount_sub) (struct block_list *bl, va_list ap); + int (*playBGM_sub) (struct block_list *bl, va_list ap); + int (*playBGM_foreachpc_sub) (struct map_session_data *sd, va_list args); + int (*soundeffect_sub) (struct block_list *bl, va_list ap); + int (*buildin_query_sql_sub) (struct script_state *st, Sql *handle); + int (*axtoi) (const char *hexStg); + int (*buildin_instance_warpall_sub) (struct block_list *bl, va_list ap); + int (*buildin_mobuseskill_sub) (struct block_list *bl, va_list ap); + int (*cleanfloor_sub) (struct block_list *bl, va_list ap); + int (*run_func) (struct script_state *st); }; struct script_interface *script; diff --git a/src/map/searchstore.c b/src/map/searchstore.c index 6fd6f6aad..0144aea93 100644 --- a/src/map/searchstore.c +++ b/src/map/searchstore.c @@ -11,34 +11,6 @@ #include "pc.h" // struct map_session_data #include "searchstore.h" // struct s_search_store_info - -/// failure constants for clif functions -enum e_searchstore_failure { - SSI_FAILED_NOTHING_SEARCH_ITEM = 0, // "No matching stores were found." - SSI_FAILED_OVER_MAXCOUNT = 1, // "There are too many results. Please enter more detailed search term." - SSI_FAILED_SEARCH_CNT = 2, // "You cannot search anymore." - SSI_FAILED_LIMIT_SEARCH_TIME = 3, // "You cannot search yet." - SSI_FAILED_SSILIST_CLICK_TO_OPEN_STORE = 4, // "No sale (purchase) information available." -}; - - -enum e_searchstore_searchtype { - SEARCHTYPE_VENDING = 0, - SEARCHTYPE_BUYING_STORE = 1, -}; - - -enum e_searchstore_effecttype { - EFFECTTYPE_NORMAL = 0, - EFFECTTYPE_CASH = 1, - EFFECTTYPE_MAX -}; - - -/// type for shop search function -typedef bool (*searchstore_search_t)(struct map_session_data* sd, unsigned short nameid); -typedef bool (*searchstore_searchall_t)(struct map_session_data* sd, const struct s_search_store_search* s); - struct searchstore_interface searchstore_s; /// retrieves search function by type diff --git a/src/map/searchstore.h b/src/map/searchstore.h index 42d47c7c0..d7a327181 100644 --- a/src/map/searchstore.h +++ b/src/map/searchstore.h @@ -5,8 +5,36 @@ #ifndef _SEARCHSTORE_H_ #define _SEARCHSTORE_H_ +/** + * Defines + **/ #define SEARCHSTORE_RESULTS_PER_PAGE 10 +/** + * Enumerations + **/ +enum e_searchstore_searchtype { + SEARCHTYPE_VENDING = 0, + SEARCHTYPE_BUYING_STORE = 1, +}; + +enum e_searchstore_effecttype { + EFFECTTYPE_NORMAL = 0, + EFFECTTYPE_CASH = 1, + EFFECTTYPE_MAX +}; +/// failure constants for clif functions +enum e_searchstore_failure { + SSI_FAILED_NOTHING_SEARCH_ITEM = 0, // "No matching stores were found." + SSI_FAILED_OVER_MAXCOUNT = 1, // "There are too many results. Please enter more detailed search term." + SSI_FAILED_SEARCH_CNT = 2, // "You cannot search anymore." + SSI_FAILED_LIMIT_SEARCH_TIME = 3, // "You cannot search yet." + SSI_FAILED_SSILIST_CLICK_TO_OPEN_STORE = 4, // "No sale (purchase) information available." +}; + +/** + * Structures + **/ /// information about the search being performed struct s_search_store_search { struct map_session_data* search_sd; // sd of the searching player @@ -41,6 +69,13 @@ struct s_search_store_info { bool open; }; +/// type for shop search function +typedef bool (*searchstore_search_t)(struct map_session_data* sd, unsigned short nameid); +typedef bool (*searchstore_searchall_t)(struct map_session_data* sd, const struct s_search_store_search* s); + +/** + * Interface + **/ struct searchstore_interface { bool (*open) (struct map_session_data* sd, unsigned int uses, unsigned short effect); void (*query) (struct map_session_data* sd, unsigned char type, unsigned int min_price, unsigned int max_price, const unsigned short* itemlist, unsigned int item_count, const unsigned short* cardlist, unsigned int card_count); diff --git a/src/map/skill.c b/src/map/skill.c index fac465df6..b90be3c2a 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -185,17 +185,21 @@ int skill_get_unit_bl_target( uint16 skill_id ) { skill_get (skill->db[skill_ int skill_get_unit_flag( uint16 skill_id ) { skill_get (skill->db[skill_id].unit_flag, skill_id); } int skill_get_unit_layout_type( uint16 skill_id ,uint16 skill_lv ){ skill_get2 (skill->db[skill_id].unit_layout_type[skill_glv(skill_lv-1)], skill_id, skill_lv); } int skill_get_cooldown( uint16 skill_id, uint16 skill_lv ) { skill_get2 (skill->db[skill_id].cooldown[skill_glv(skill_lv-1)], skill_id, skill_lv); } +int skill_get_fixed_cast( uint16 skill_id ,uint16 skill_lv ) { #ifdef RENEWAL_CAST -int skill_get_fixed_cast( uint16 skill_id ,uint16 skill_lv ){ skill_get2 (skill->db[skill_id].fixed_cast[skill_glv(skill_lv-1)], skill_id, skill_lv); } + skill_get2 (skill->db[skill_id].fixed_cast[skill_glv(skill_lv-1)], skill_id, skill_lv); +#else + return 0; #endif +} int skill_tree_get_max(uint16 skill_id, int b_class) { int i; b_class = pc->class2idx(b_class); - ARR_FIND( 0, MAX_SKILL_TREE, i, skill_tree[b_class][i].id == 0 || skill_tree[b_class][i].id == skill_id ); - if( i < MAX_SKILL_TREE && skill_tree[b_class][i].id == skill_id ) - return skill_tree[b_class][i].max; + ARR_FIND( 0, MAX_SKILL_TREE, i, pc->skill_tree[b_class][i].id == 0 || pc->skill_tree[b_class][i].id == skill_id ); + if( i < MAX_SKILL_TREE && pc->skill_tree[b_class][i].id == skill_id ) + return pc->skill_tree[b_class][i].max; else return skill->get_max(skill_id); } @@ -475,7 +479,7 @@ int skillnotok (uint16 skill_id, struct map_session_data *sd) case AL_WARP: case RETURN_TO_ELDICASTES: case ALL_GUARDIAN_RECALL: - if(maplist[m].flag.nowarp) { + if(map->list[m].flag.nowarp) { clif->skill_mapinfomessage(sd,0); return 1; } @@ -483,7 +487,7 @@ int skillnotok (uint16 skill_id, struct map_session_data *sd) case AL_TELEPORT: case SC_FATALMENACE: case SC_DIMENSIONDOOR: - if(maplist[m].flag.noteleport) { + if(map->list[m].flag.noteleport) { clif->skill_mapinfomessage(sd,0); return 1; } @@ -491,7 +495,7 @@ int skillnotok (uint16 skill_id, struct map_session_data *sd) case WE_CALLPARTNER: case WE_CALLPARENT: case WE_CALLBABY: - if (maplist[m].flag.nomemo) { + if (map->list[m].flag.nomemo) { clif->skill_mapinfomessage(sd,1); return 1; } @@ -510,7 +514,7 @@ int skillnotok (uint16 skill_id, struct map_session_data *sd) return 0; // always allowed case WZ_ICEWALL: // noicewall flag [Valaris] - if (maplist[m].flag.noicewall) { + if (map->list[m].flag.noicewall) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; } @@ -523,8 +527,8 @@ int skillnotok (uint16 skill_id, struct map_session_data *sd) break; case GD_EMERGENCYCALL: if( !(battle_config.emergency_call&((map->agit_flag || map->agit2_flag)?2:1)) - || !(battle_config.emergency_call&(maplist[m].flag.gvg || maplist[m].flag.gvg_castle?8:4)) - || (battle_config.emergency_call&16 && maplist[m].flag.nowarpto && !maplist[m].flag.gvg_castle) + || !(battle_config.emergency_call&(map->list[m].flag.gvg || map->list[m].flag.gvg_castle?8:4)) + || (battle_config.emergency_call&16 && map->list[m].flag.nowarpto && !map->list[m].flag.gvg_castle) ) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; @@ -560,7 +564,7 @@ int skillnotok (uint16 skill_id, struct map_session_data *sd) break; } - return (maplist[m].flag.noskill); + return (map->list[m].flag.noskill); } int skillnotok_hom(uint16 skill_id, struct homun_data *hd) @@ -2015,7 +2019,7 @@ int skill_blown(struct block_list* src, struct block_list* target, int count, in nullpo_ret(src); - if (src != target && maplist[src->m].flag.noknockback) + if (src != target && map->list[src->m].flag.noknockback) return 0; //No knocking if (count == 0) return 0; //Actual knockback distance is 0. @@ -3526,7 +3530,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint uint8 dir = map->calc_dir(bl, src->x, src->y); // teleport to target (if not on WoE grounds) - if( !map_flag_gvg2(src->m) && !maplist[src->m].flag.battleground && unit->movepos(src, bl->x, bl->y, 0, 1) ) + if( !map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground && unit->movepos(src, bl->x, bl->y, 0, 1) ) clif->slide(src, bl->x, bl->y); // cause damage and knockback if the path to target was a straight one @@ -3634,7 +3638,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint if( dir > 2 && dir < 6 ) y = -i; else if( dir == 7 || dir < 2 ) y = i; else y = 0; - if( (mbl == src || (!map_flag_gvg2(src->m) && !maplist[src->m].flag.battleground) ) // only NJ_ISSEN don't have slide effect in GVG + if( (mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground) ) // only NJ_ISSEN don't have slide effect in GVG && unit->movepos(src, mbl->x+x, mbl->y+y, 1, 1) ) { clif->slide(src, src->x, src->y); @@ -4011,7 +4015,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint sc_start(src,SC_HIDING,100,skill_lv,skill->get_time(skill_id,skill_lv)); break; case NJ_KIRIKAGE: - if( !map_flag_gvg2(src->m) && !maplist[src->m].flag.battleground ) { + if( !map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground ) { //You don't move on GVG grounds. short x, y; map->search_freecell(bl, 0, &x, &y, 1, 1, 0); @@ -4284,7 +4288,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint } break; case LG_PINPOINTATTACK: - if( !map_flag_gvg2(src->m) && !maplist[src->m].flag.battleground && unit->movepos(src, bl->x, bl->y, 1, 1) ) + if( !map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground && unit->movepos(src, bl->x, bl->y, 1, 1) ) clif->slide(src,bl->x,bl->y); skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; @@ -4309,7 +4313,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint break; case SR_KNUCKLEARROW: - if( !map_flag_gvg2(src->m) && !maplist[src->m].flag.battleground && unit->movepos(src, bl->x, bl->y, 1, 1) ) { + if( !map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground && unit->movepos(src, bl->x, bl->y, 1, 1) ) { clif->slide(src,bl->x,bl->y); clif->fixpos(src); // Aegis send this packet too. } @@ -5035,7 +5039,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; } skill->area_temp[0] = 0; - party_foreachsamemap(skill->area_sub, + party->foreachsamemap(skill->area_sub, sd,skill->get_splash(skill_id, skill_lv), src,skill_id,skill_lv,tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); @@ -5044,7 +5048,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; } skill->area_temp[0] = 5 - skill->area_temp[0]; // The actual penalty... - if (skill->area_temp[0] > 0 && !maplist[src->m].flag.noexppenalty) { //Apply penalty + if (skill->area_temp[0] > 0 && !map->list[src->m].flag.noexppenalty) { //Apply penalty sd->status.base_exp -= min(sd->status.base_exp, pc->nextbaseexp(sd) * skill->area_temp[0] * 2/1000); //0.2% penalty per each. sd->status.job_exp -= min(sd->status.job_exp, pc->nextjobexp(sd) * skill->area_temp[0] * 2/1000); clif->updatestatus(sd,SP_BASEEXP); @@ -5060,7 +5064,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; case ALL_RESURRECTION: - if(sd && (map_flag_gvg2(bl->m) || maplist[bl->m].flag.battleground)) { + if(sd && (map_flag_gvg2(bl->m) || map->list[bl->m].flag.battleground)) { //No reviving in WoE grounds! clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; @@ -5072,7 +5076,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui if (tsc && tsc->data[SC_HELLPOWER]) break; - if (maplist[bl->m].flag.pvp && dstsd && dstsd->pvp_point < 0) + if (map->list[bl->m].flag.pvp && dstsd && dstsd->pvp_point < 0) break; switch(skill_lv){ @@ -5743,7 +5747,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; case MO_KITRANSLATION: - if(dstsd && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER) { + if(dstsd && ((dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER || (dstsd->class_&MAPID_UPPERMASK)!=MAPID_REBELLION)) { pc->addspiritball(dstsd,skill->get_time(skill_id,skill_lv),5); } break; @@ -5758,7 +5762,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case MO_ABSORBSPIRITS: i = 0; - if (dstsd && dstsd->spiritball && (sd == dstsd || map_flag_vs(src->m)) && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER) + if (dstsd && dstsd->spiritball && (sd == dstsd || map_flag_vs(src->m)) && ((dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER || (dstsd->class_&MAPID_UPPERMASK)!=MAPID_REBELLION)) { // split the if for readability, and included gunslingers in the check so that their coins cannot be removed [Reddozen] i = dstsd->spiritball * 7; pc->delspiritball(dstsd,dstsd->spiritball,0); @@ -5893,14 +5897,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui if( sd == NULL || sd->status.party_id == 0 || (flag & 1) ) clif->skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv))); else if( sd ) - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); break; case MER_MAGNIFICAT: if( mer != NULL ) { clif->skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv))); if( mer->master && mer->master->status.party_id != 0 && !(flag&1) ) - party_foreachsamemap(skill->area_sub, mer->master, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub, mer->master, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); else if( mer->master && !(flag&1) ) clif->skill_nodamage(src, &mer->master->bl, skill_id, skill_lv, sc_start(bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv))); } @@ -5914,7 +5918,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui clif->skill_nodamage(bl,bl,skill_id,skill_lv, sc_start2(bl,type,100,skill_lv,(src == bl)? 1:0,skill->get_time(skill_id,skill_lv))); } else if (sd) { - party_foreachsamemap(skill->area_sub, + party->foreachsamemap(skill->area_sub, sd,skill->get_splash(skill_id, skill_lv), src,skill_id,skill_lv,tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); @@ -6258,7 +6262,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case AL_TELEPORT: if(sd) { - if (maplist[bl->m].flag.noteleport && skill_lv <= 2) { + if (map->list[bl->m].flag.noteleport && skill_lv <= 2) { clif->skill_mapinfomessage(sd,0); break; } @@ -6631,8 +6635,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui int x,y, dir = unit->getdir(src); //Fails on noteleport maps, except for GvG and BG maps [Skotlex] - if( maplist[src->m].flag.noteleport - && !(maplist[src->m].flag.battleground || map_flag_gvg2(src->m)) + if( map->list[src->m].flag.noteleport + && !(map->list[src->m].flag.battleground || map_flag_gvg2(src->m)) ) { x = src->x; y = src->y; @@ -7448,7 +7452,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui for(i = 0; i < g->max_member; i++, j++) { if (j>8) j=0; if ((dstsd = g->member[i].sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { - if (maplist[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) + if (map->list[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) continue; if(map->getcell(src->m,src->x+dx[j],src->y+dy[j],CELL_CHKNOREACH)) dx[j] = dy[j] = 0; @@ -7645,7 +7649,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); } else clif->skill_nodamage(src,bl,skill_id,skill_lv,sc_start(bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv))); @@ -7725,9 +7729,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui sc_start(bl,type,100,skill->area_temp[5]/4,skill->get_time(skill_id,skill_lv)); } else if( sd ) { if( sd->status.party_id ) { - i = party_foreachsamemap(skill->area_sub,sd,skill->get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,BCT_PARTY,skill->area_sub_count); + i = party->foreachsamemap(skill->area_sub,sd,skill->get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,BCT_PARTY,skill->area_sub_count); skill->area_temp[5] = 7 * i; // ATK - party_foreachsamemap(skill->area_sub,sd,skill->get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub,sd,skill->get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill->castend_nodamage_id); } else sc_start2(bl,type,100,7,5,skill->get_time(skill_id,skill_lv)); } @@ -7791,7 +7795,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui skill->area_temp[5] |= 0x200; } clif->skill_nodamage(src, bl, skill_id, skill_lv, 1); - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); } break; /** @@ -7893,7 +7897,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui if( !i ) clif->skill_fail(sd,skill_id,USESKILL_FAIL,0); else - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); } break; @@ -7901,7 +7905,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui if( sd == NULL || sd->status.party_id == 0 || flag&1 ) clif->skill_nodamage(bl, bl, skill_id, skill_lv, sc_start4(bl, type, 100, skill_lv, 0, 0, 1, skill->get_time(skill_id, skill_lv))); else if( sd ) - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); break; case AB_CHEAL: @@ -7919,7 +7923,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui } } else if( sd ) - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); break; case AB_ORATIO: @@ -7948,7 +7952,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui clif->skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(bl, type, 100, skill_lv, skill->get_time(skill_id, skill_lv))); } else if( sd ) - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); break; @@ -7965,7 +7969,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui clif->skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(bl, type, 100, skill_lv, skill->get_time(skill_id, skill_lv))); } else if( sd ) - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); break; @@ -8068,7 +8072,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui int rate = 45 + 5 * skill_lv; if( rnd()%100 < rate ){ clif->skill_nodamage(src, bl, skill_id, skill_lv, 1); - map->foreachinrange(skill->area_sub,bl,skill->get_splash(skill_id,skill_lv),BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_nodamage_id); + map->foreachinrange(skill->area_sub,bl,skill->get_splash(skill_id,skill_lv),BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill->castend_nodamage_id); }else if( sd ) // Failure on Rate clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } @@ -8458,7 +8462,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui } break; case LG_INSPIRATION: - if( sd && !maplist[sd->bl.m].flag.noexppenalty && sd->status.base_level != MAX_LEVEL ) { + if( sd && !map->list[sd->bl.m].flag.noexppenalty && sd->status.base_level != MAX_LEVEL ) { sd->status.base_exp -= min(sd->status.base_exp, pc->nextbaseexp(sd) * 1 / 100); // 1% penalty. sd->status.job_exp -= min(sd->status.job_exp, pc->nextjobexp(sd) * 1 / 100); clif->updatestatus(sd,SP_BASEEXP); @@ -8570,7 +8574,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui sc_start(bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)); else if( sd ) { // Only shows effects on caster. clif->skill_nodamage(src,bl,skill_id,skill_lv,1); - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); } break; @@ -8581,7 +8585,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui sc_start4(bl,type,100,skill_lv,6*skill_lv,(sd?pc->checkskill(sd,WM_LESSON):0),(sd?sd->status.job_level:0),skill->get_time(skill_id,skill_lv)); else if( sd ) { // Only shows effects on caster. clif->skill_nodamage(src,bl,skill_id,skill_lv,1); - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); } break; @@ -8673,7 +8677,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui uint16 lv = skill_lv; int count = skill->check_pc_partner(sd,skill_id,&lv,skill->get_splash(skill_id,skill_lv),1); if( sc_start2(bl,type,100,skill_lv,count,skill->get_time(skill_id,skill_lv)) ) - party_foreachsamemap(skill->area_sub,sd,skill->get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub,sd,skill->get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill->castend_nodamage_id); clif->skill_nodamage(src,bl,skill_id,skill_lv,1); } @@ -8889,7 +8893,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui if( sd->status.party_id == 0 || flag&1 ) skill->unitsetting(src,MG_SAFETYWALL,skill_lv,bl->x,bl->y,0); else - party_foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); + party->foreachsamemap(skill->area_sub, sd, skill->get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill->castend_nodamage_id); break; case GN_CHANGEMATERIAL: @@ -8921,12 +8925,17 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case GN_MANDRAGORA: if( flag&1 ) { - if ( clif->skill_nodamage(bl, src, skill_id, skill_lv, - sc_start(bl, type, 25 + 10 * skill_lv, skill_lv, skill->get_time(skill_id, skill_lv))) ) - status_zap(bl, 0, status_get_max_sp(bl) * (25 + 5 * skill_lv) / 100); - } else - map->foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), BL_CHAR, - src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill->castend_nodamage_id); + int chance = 25 + 10 * skill_lv - (status_get_vit(bl) + status_get_luk(bl)) / 5; + if ( chance < 10 ) + chance = 10;//Minimal chance is 10%. + if ( rand()%100 < chance ) {//Coded to both inflect the status and drain the target's SP only when successful. [Rytech] + sc_start(bl, type, 100, skill_lv, skill->get_time(skill_id, skill_lv)); + status_zap(bl, 0, status_get_max_sp(bl) * (25 + 5 * skill_lv) / 100); + } + } else if ( sd ) { + map->foreachinrange(skill->area_sub, bl, skill->get_splash(skill_id, skill_lv), BL_CHAR,src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill->castend_nodamage_id); + clif->skill_nodamage(bl, src, skill_id, skill_lv, 1); + } break; case GN_SLINGITEM: @@ -9893,7 +9902,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui } break; case NJ_SHADOWJUMP: - if( !map_flag_gvg2(src->m) && !maplist[src->m].flag.battleground ) { //You don't move on GVG grounds. + if( !map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground ) { //You don't move on GVG grounds. unit->movepos(src, x, y, 1, 0); clif->slide(src,x,y); } @@ -10428,11 +10437,11 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_ unit_flag = skill->get_unit_flag(skill_id); layout = skill->get_unit_layout(skill_id,skill_lv,src,x,y); - if( maplist[src->m].unit_count ) { - ARR_FIND(0, maplist[src->m].unit_count, i, maplist[src->m].units[i]->skill_id == skill_id ); + if( map->list[src->m].unit_count ) { + ARR_FIND(0, map->list[src->m].unit_count, i, map->list[src->m].units[i]->skill_id == skill_id ); - if( i < maplist[src->m].unit_count ) { - limit = limit * maplist[src->m].units[i]->modifier / 100; + if( i < map->list[src->m].unit_count ) { + limit = limit * map->list[src->m].units[i]->modifier / 100; } } @@ -10529,7 +10538,7 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_ ARR_FIND(0, MAX_SKILL_ITEM_REQUIRE, i, req.itemid[i] && (req.itemid[i] == ITEMID_TRAP || req.itemid[i] == ITEMID_TRAP_ALLOY)); if( req.itemid[i] ) req_item = req.itemid[i]; - if( map_flag_gvg2(src->m) || maplist[src->m].flag.battleground ) + if( map_flag_gvg2(src->m) || map->list[src->m].flag.battleground ) limit *= 4; // longer trap times in WOE [celest] if( battle_config.vs_traps_bctall && map_flag_vs(src->m) && (src->type&battle_config.vs_traps_bctall) ) target = BCT_ALL; @@ -11619,7 +11628,7 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns break; case UNT_DIMENSIONDOOR: - if( tsd && !maplist[bl->m].flag.noteleport ) + if( tsd && !map->list[bl->m].flag.noteleport ) pc->randomwarp(tsd,3); else if( bl->type == BL_MOB && battle_config.mob_warp&8 ) unit->warp(bl,-1,-1,-1,3); @@ -12193,7 +12202,7 @@ int skill_check_pc_partner (struct map_session_data *sd, uint16 skill_id, uint16 c = 0; memset (p_sd, 0, sizeof(p_sd)); if( is_chorus ) - i = party_foreachsamemap(skill->check_condition_char_sub,sd,AREA_SIZE,&sd->bl, &c, &p_sd, skill_id, *skill_lv); + i = party->foreachsamemap(skill->check_condition_char_sub,sd,AREA_SIZE,&sd->bl, &c, &p_sd, skill_id, *skill_lv); else i = map->foreachinrange(skill->check_condition_char_sub, &sd->bl, range, BL_PC, &sd->bl, &c, &p_sd, skill_id); @@ -12625,7 +12634,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id break; i = skill_id-SG_SUN_COMFORT; if (sd->bl.m == sd->feel_map[i].m && - (battle_config.allow_skill_without_day || sg_info[i].day_func())) + (battle_config.allow_skill_without_day || pc->sg_info[i].day_func())) break; clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 0; @@ -13590,16 +13599,18 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16 if( itemid_isgemstone(req.itemid[i]) && skill_id != HW_GANBANTEIN ) { if( sd->special_state.no_gemstone ) - { //Make it substract 1 gem rather than skipping the cost. - if( --req.amount[i] < 1 ) - req.itemid[i] = 0; + { // All gem skills except Hocus Pocus and Ganbantein can cast for free with Mistress card -helvetica + if( skill_id != SA_ABRACADABRA ) + req.itemid[i] = req.amount[i] = 0; + else if( --req.amount[i] < 1 ) + req.amount[i] = 1; // Hocus Pocus always use at least 1 gem } if(sc && sc->data[SC_INTOABYSS]) { if( skill_id != SA_ABRACADABRA ) req.itemid[i] = req.amount[i] = 0; else if( --req.amount[i] < 1 ) - req.amount[i] = 1; // Hocus Pocus allways use at least 1 gem + req.amount[i] = 1; // Hocus Pocus always use at least 1 gem } } if( skill_id >= HT_SKIDTRAP && skill_id <= HT_TALKIEBOX && pc->checkskill(sd, RA_RESEARCHTRAP) > 0){ @@ -13798,8 +13809,8 @@ int skill_castfix_sc (struct block_list *bl, int time) { //ShowInfo("Castime castfix_sc = %d\n",time); return time; } -#ifdef RENEWAL_CAST int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16 skill_lv) { +#ifdef RENEWAL_CAST struct status_change *sc = status->get_sc(bl); struct map_session_data *sd = BL_CAST(BL_PC,bl); int fixed = skill->get_fixed_cast(skill_id, skill_lv), fixcast_r = 0, varcast_r = 0, i = 0; @@ -13913,10 +13924,9 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16 time = (1 - sqrt( ((float)(status_get_dex(bl)*2 + status_get_int(bl)) / battle_config.vcast_stat_scale) )) * time; // underflow checking/capping time = max(time, 0) + (1 - (float)min(fixcast_r, 100) / 100) * max(fixed,0); - +#endif return (int)time; } -#endif /*========================================== * Does delay reductions based on dex/agi, sc data, item bonuses, ... @@ -13980,7 +13990,7 @@ int skill_delay_fix (struct block_list *bl, uint16 skill_id, uint16 skill_lv) { time /= 2; break; case AS_SONICBLOW: - if (!map_flag_gvg2(bl->m) && !maplist[bl->m].flag.battleground && sc->data[SC_SOULLINK]->val2 == SL_ASSASIN) + if (!map_flag_gvg2(bl->m) && !map->list[bl->m].flag.battleground && sc->data[SC_SOULLINK]->val2 == SL_ASSASIN) time /= 2; break; } @@ -14508,7 +14518,7 @@ void skill_unitsetmapcell (struct skill_unit *src, uint16 skill_id, uint16 skill for( y = src->bl.y - range; y <= src->bl.y + range; ++y ) for( x = src->bl.x - range; x <= src->bl.x + range; ++x ) - maplist[src->bl.m].setcell(src->bl.m, x, y, cell, flag); + map->list[src->bl.m].setcell(src->bl.m, x, y, cell, flag); } /*========================================== @@ -15062,7 +15072,7 @@ struct skill_unit *skill_initunit (struct skill_unit_group *group, int idx, int map->setgatcell(su->bl.m,su->bl.x,su->bl.y,5); clif->changemapcell(0,su->bl.m,su->bl.x,su->bl.y,5,AREA); skill->unitsetmapcell(su,WZ_ICEWALL,group->skill_lv,CELL_ICEWALL,true); - maplist[su->bl.m].icewall_num++; + map->list[su->bl.m].icewall_num++; break; case SA_LANDPROTECTOR: skill->unitsetmapcell(su,SA_LANDPROTECTOR,group->skill_lv,CELL_LANDPROTECTOR,true); @@ -15117,7 +15127,7 @@ int skill_delunit (struct skill_unit* su) { map->setgatcell(su->bl.m,su->bl.x,su->bl.y,su->val2); clif->changemapcell(0,su->bl.m,su->bl.x,su->bl.y,su->val2,ALL_SAMEMAP); // hack to avoid clientside cell bug skill->unitsetmapcell(su,WZ_ICEWALL,group->skill_lv,CELL_ICEWALL,false); - maplist[su->bl.m].icewall_num--; + map->list[su->bl.m].icewall_num--; break; case SA_LANDPROTECTOR: skill->unitsetmapcell(su,SA_LANDPROTECTOR,group->skill_lv,CELL_LANDPROTECTOR,false); @@ -15542,13 +15552,13 @@ int skill_unit_timer_sub(DBKey key, DBData *data, va_list ap) { if(group->val1) { sd = map->charid2sd(group->val1); group->val1 = 0; - if (sd && !maplist[sd->bl.m].flag.nowarp) + if (sd && !map->list[sd->bl.m].flag.nowarp) pc->setpos(sd,map_id2index(su->bl.m),su->bl.x,su->bl.y,CLR_TELEPORT); } if(group->val2) { sd = map->charid2sd(group->val2); group->val2 = 0; - if (sd && !maplist[sd->bl.m].flag.nowarp) + if (sd && !map->list[sd->bl.m].flag.nowarp) pc->setpos(sd,map_id2index(su->bl.m),su->bl.x,su->bl.y,CLR_TELEPORT); } skill->delunit(su); @@ -17986,11 +17996,11 @@ void skill_reload (void) { //[Ind/Hercules] refresh index cache for(c = 0; c < CLASS_COUNT; c++) { for( i = 0; i < MAX_SKILL_TREE; i++ ) { - if( skill_tree[c][i].id ) { - skill_tree[c][i].idx = skill->get_index(skill_tree[c][i].id); + if( pc->skill_tree[c][i].id ) { + pc->skill_tree[c][i].idx = skill->get_index(pc->skill_tree[c][i].id); for(k = 0; k < MAX_PC_SKILL_REQUIRE; k++) { - if( skill_tree[c][i].need[k].id ) - skill_tree[c][i].need[k].idx = skill->get_index(skill_tree[c][i].need[k].id); + if( pc->skill_tree[c][i].need[k].id ) + pc->skill_tree[c][i].need[k].idx = skill->get_index(pc->skill_tree[c][i].need[k].id); } } } @@ -18162,9 +18172,7 @@ void skill_defaults(void) { skill->unit_ondamaged = skill_unit_ondamaged; skill->cast_fix = skill_castfix; skill->cast_fix_sc = skill_castfix_sc; -#ifdef RENEWAL_CAST skill->vf_cast_fix = skill_vfcastfix; -#endif skill->delay_fix = skill_delay_fix; skill->check_condition_castbegin = skill_check_condition_castbegin; skill->check_condition_castend = skill_check_condition_castend; @@ -18228,9 +18236,7 @@ void skill_defaults(void) { skill->check_condition_mob_master_sub = skill_check_condition_mob_master_sub; skill->brandishspear_first = skill_brandishspear_first; skill->brandishspear_dir = skill_brandishspear_dir; -#ifdef RENEWAL_CAST skill->get_fixed_cast = skill_get_fixed_cast; -#endif skill->sit_count = skill_sit_count; skill->sit_in = skill_sit_in; skill->sit_out = skill_sit_out; diff --git a/src/map/skill.h b/src/map/skill.h index 1609802f9..592721f1e 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -1247,6 +1247,31 @@ enum e_skill { ALL_RAY_OF_PROTECTION, MC_CARTDECORATE, + RL_GLITTERING_GREED = 2551, + RL_RICHS_COIN, + RL_MASS_SPIRAL, + RL_BANISHING_BUSTER, + RL_B_TRAP, + RL_FLICKER, + RL_S_STORM, + RL_E_CHAIN, + RL_QD_SHOT, + RL_C_MARKER, + RL_FIREDANCE, + RL_H_MINE, + RL_P_ALTER, + RL_FALLEN_ANGEL, + RL_R_TRIP, + RL_D_TAIL, + RL_FIRE_RAIN, + RL_HEAT_BARREL, + RL_AM_BLAST, + RL_SLUGSHOT, + RL_HAMMER_OF_GOD, + RL_R_TRIP_PLUSATK, + RL_B_FLICKER_ATK, + RL_GLITTERING_GREED_ATK, + KO_YAMIKUMO = 3001, KO_RIGHT, KO_LEFT, @@ -1868,9 +1893,7 @@ struct skill_interface { int (*unit_ondamaged) (struct skill_unit *src,struct block_list *bl,int64 damage,unsigned int tick); int (*cast_fix) ( struct block_list *bl, uint16 skill_id, uint16 skill_lv); int (*cast_fix_sc) ( struct block_list *bl, int time); -#ifdef RENEWAL_CAST int (*vf_cast_fix) ( struct block_list *bl, double time, uint16 skill_id, uint16 skill_lv); -#endif int (*delay_fix) ( struct block_list *bl, uint16 skill_id, uint16 skill_lv); int (*check_condition_castbegin) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); int (*check_condition_castend) (struct map_session_data *sd, uint16 skill_id, uint16 skill_lv); @@ -1934,9 +1957,7 @@ struct skill_interface { int (*check_condition_mob_master_sub) (struct block_list *bl, va_list ap); void (*brandishspear_first) (struct square *tc, uint8 dir, int16 x, int16 y); void (*brandishspear_dir) (struct square* tc, uint8 dir, int are); -#ifdef RENEWAL_CAST int (*get_fixed_cast) ( uint16 skill_id ,uint16 skill_lv ); -#endif int (*sit_count) (struct block_list *bl, va_list ap); int (*sit_in) (struct block_list *bl, va_list ap); int (*sit_out) (struct block_list *bl, va_list ap); diff --git a/src/map/status.c b/src/map/status.c index d8356264c..497d02bbf 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -40,39 +40,7 @@ #include <string.h> #include <math.h> -//Regen related flags. -enum e_regen -{ - RGN_HP = 0x01, - RGN_SP = 0x02, - RGN_SHP = 0x04, - RGN_SSP = 0x08, -}; - -static int max_weight_base[CLASS_COUNT]; -static int hp_coefficient[CLASS_COUNT]; -static int hp_coefficient2[CLASS_COUNT]; -static int hp_sigma_val[CLASS_COUNT][MAX_LEVEL+1]; -static int sp_coefficient[CLASS_COUNT]; -#ifdef RENEWAL_ASPD -static int aspd_base[CLASS_COUNT][MAX_WEAPON_TYPE+1]; -#else -static int aspd_base[CLASS_COUNT][MAX_WEAPON_TYPE]; //[blackhole89] -#endif - -// bonus values and upgrade chances for refining equipment -static struct { - int chance[MAX_REFINE]; // success chance - int bonus[MAX_REFINE]; // cumulative fixed bonus damage - int randombonus_max[MAX_REFINE]; // cumulative maximum random bonus damage -} refine_info[REFINE_TYPE_MAX]; - -static int atkmods[3][MAX_WEAPON_TYPE]; //ATK weapon modification for size (size_fix.txt) -static char job_bonus[CLASS_COUNT][MAX_LEVEL]; -static sc_conf_type sc_conf[SC_MAX]; - -static struct eri *sc_data_ers; //For sc_data entries -static struct status_data dummy_status; +struct status_interface status_s; /** * Returns the status change associated with a skill. @@ -85,7 +53,7 @@ sc_type status_skill2sc(int skill_id) { ShowError("status_skill2sc: Unsupported skill id %d\n", skill_id); return SC_NONE; } - return SkillStatusChangeTable[idx]; + return status->Skill2SCTable[idx]; } /** @@ -101,7 +69,7 @@ int status_sc2skill(sc_type sc) return 0; } - return StatusSkillChangeTable[sc]; + return status->SkillChangeTable[sc]; } /** @@ -116,7 +84,7 @@ unsigned int status_sc2scb_flag(sc_type sc) return SCB_NONE; } - return StatusChangeFlagTable[sc]; + return status->ChangeFlagTable[sc]; } /** @@ -131,12 +99,12 @@ int status_type2relevant_bl_types(int type) return SI_BLANK; } - return StatusRelevantBLTypes[type]; + return status->RelevantBLTypes[type]; } #define add_sc(skill,sc) set_sc(skill,sc,SI_BLANK,SCB_NONE) // indicates that the status displays a visual effect for the affected unit, and should be sent to the client for all supported units -#define set_sc_with_vfx(skill, sc, icon, flag) set_sc((skill), (sc), (icon), (flag)); if((icon) < SI_MAX) StatusRelevantBLTypes[(icon)] |= BL_SCEFFECT +#define set_sc_with_vfx(skill, sc, icon, flag) set_sc((skill), (sc), (icon), (flag)); if((icon) < SI_MAX) status->RelevantBLTypes[(icon)] |= BL_SCEFFECT static void set_sc(uint16 skill_id, sc_type sc, int icon, unsigned int flag) { uint16 idx; @@ -149,31 +117,31 @@ static void set_sc(uint16 skill_id, sc_type sc, int icon, unsigned int flag) { return; } - if( StatusSkillChangeTable[sc] == 0 ) - StatusSkillChangeTable[sc] = skill_id; - if( StatusIconChangeTable[sc] == SI_BLANK ) - StatusIconChangeTable[sc] = icon; - StatusChangeFlagTable[sc] |= flag; + if( status->SkillChangeTable[sc] == 0 ) + status->SkillChangeTable[sc] = skill_id; + if( status->IconChangeTable[sc] == SI_BLANK ) + status->IconChangeTable[sc] = icon; + status->ChangeFlagTable[sc] |= flag; - if( SkillStatusChangeTable[idx] == SC_NONE ) - SkillStatusChangeTable[idx] = sc; + if( status->Skill2SCTable[idx] == SC_NONE ) + status->Skill2SCTable[idx] = sc; } void initChangeTables(void) { int i; for (i = 0; i < SC_MAX; i++) - StatusIconChangeTable[i] = SI_BLANK; + status->IconChangeTable[i] = SI_BLANK; for (i = 0; i < MAX_SKILL; i++) - SkillStatusChangeTable[i] = SC_NONE; + status->Skill2SCTable[i] = SC_NONE; for (i = 0; i < SI_MAX; i++) - StatusRelevantBLTypes[i] = BL_PC; + status->RelevantBLTypes[i] = BL_PC; - memset(StatusSkillChangeTable, 0, sizeof(StatusSkillChangeTable)); - memset(StatusChangeFlagTable, 0, sizeof(StatusChangeFlagTable)); - memset(StatusDisplayType, 0, sizeof(StatusDisplayType)); + memset(status->SkillChangeTable, 0, sizeof(status->SkillChangeTable)); + memset(status->ChangeFlagTable, 0, sizeof(status->ChangeFlagTable)); + memset(status->DisplayType, 0, sizeof(status->DisplayType)); //First we define the skill for common ailments. These are used in skill_additional_effect through sc cards. [Skotlex] set_sc( NPC_PETRIFYATTACK , SC_STONE , SI_BLANK , SCB_DEF_ELE|SCB_DEF|SCB_MDEF ); @@ -780,303 +748,303 @@ void initChangeTables(void) { set_sc_with_vfx( GN_ILLUSIONDOPING , SC_ILLUSIONDOPING , SI_ILLUSIONDOPING , SCB_HIT ); // Storing the target job rather than simply SC_SOULLINK simplifies code later on. - SkillStatusChangeTable[SL_ALCHEMIST] = (sc_type)MAPID_ALCHEMIST, - SkillStatusChangeTable[SL_MONK] = (sc_type)MAPID_MONK, - SkillStatusChangeTable[SL_STAR] = (sc_type)MAPID_STAR_GLADIATOR, - SkillStatusChangeTable[SL_SAGE] = (sc_type)MAPID_SAGE, - SkillStatusChangeTable[SL_CRUSADER] = (sc_type)MAPID_CRUSADER, - SkillStatusChangeTable[SL_SUPERNOVICE] = (sc_type)MAPID_SUPER_NOVICE, - SkillStatusChangeTable[SL_KNIGHT] = (sc_type)MAPID_KNIGHT, - SkillStatusChangeTable[SL_WIZARD] = (sc_type)MAPID_WIZARD, - SkillStatusChangeTable[SL_PRIEST] = (sc_type)MAPID_PRIEST, - SkillStatusChangeTable[SL_BARDDANCER] = (sc_type)MAPID_BARDDANCER, - SkillStatusChangeTable[SL_ROGUE] = (sc_type)MAPID_ROGUE, - SkillStatusChangeTable[SL_ASSASIN] = (sc_type)MAPID_ASSASSIN, - SkillStatusChangeTable[SL_BLACKSMITH] = (sc_type)MAPID_BLACKSMITH, - SkillStatusChangeTable[SL_HUNTER] = (sc_type)MAPID_HUNTER, - SkillStatusChangeTable[SL_SOULLINKER] = (sc_type)MAPID_SOUL_LINKER, - - //Status that don't have a skill associated. - StatusIconChangeTable[SC_WEIGHTOVER50] = SI_WEIGHTOVER50; - StatusIconChangeTable[SC_WEIGHTOVER90] = SI_WEIGHTOVER90; - StatusIconChangeTable[SC_ATTHASTE_POTION1] = SI_ATTHASTE_POTION1; - StatusIconChangeTable[SC_ATTHASTE_POTION2] = SI_ATTHASTE_POTION2; - StatusIconChangeTable[SC_ATTHASTE_POTION3] = SI_ATTHASTE_POTION3; - StatusIconChangeTable[SC_ATTHASTE_INFINITY] = SI_ATTHASTE_INFINITY; - StatusIconChangeTable[SC_MOVHASTE_HORSE] = SI_MOVHASTE_HORSE; - StatusIconChangeTable[SC_MOVHASTE_INFINITY] = SI_MOVHASTE_INFINITY; - StatusIconChangeTable[SC_CHASEWALK2] = SI_INCSTR; - StatusIconChangeTable[SC_MIRACLE] = SI_SOULLINK; - StatusIconChangeTable[SC_CLAIRVOYANCE] = SI_CLAIRVOYANCE; - StatusIconChangeTable[SC_FOOD_STR] = SI_FOOD_STR; - StatusIconChangeTable[SC_FOOD_AGI] = SI_FOOD_AGI; - StatusIconChangeTable[SC_FOOD_VIT] = SI_FOOD_VIT; - StatusIconChangeTable[SC_FOOD_INT] = SI_FOOD_INT; - StatusIconChangeTable[SC_FOOD_DEX] = SI_FOOD_DEX; - StatusIconChangeTable[SC_FOOD_LUK] = SI_FOOD_LUK; - StatusIconChangeTable[SC_FOOD_BASICAVOIDANCE]= SI_FOOD_BASICAVOIDANCE; - StatusIconChangeTable[SC_FOOD_BASICHIT] = SI_FOOD_BASICHIT; - StatusIconChangeTable[SC_MANU_ATK] = SI_MANU_ATK; - StatusIconChangeTable[SC_MANU_DEF] = SI_MANU_DEF; - StatusIconChangeTable[SC_SPL_ATK] = SI_SPL_ATK; - StatusIconChangeTable[SC_SPL_DEF] = SI_SPL_DEF; - StatusIconChangeTable[SC_MANU_MATK] = SI_MANU_MATK; - StatusIconChangeTable[SC_SPL_MATK] = SI_SPL_MATK; - StatusIconChangeTable[SC_PLUSATTACKPOWER] = SI_PLUSATTACKPOWER; - StatusIconChangeTable[SC_PLUSMAGICPOWER] = SI_PLUSMAGICPOWER; + status->Skill2SCTable[SL_ALCHEMIST] = (sc_type)MAPID_ALCHEMIST, + status->Skill2SCTable[SL_MONK] = (sc_type)MAPID_MONK, + status->Skill2SCTable[SL_STAR] = (sc_type)MAPID_STAR_GLADIATOR, + status->Skill2SCTable[SL_SAGE] = (sc_type)MAPID_SAGE, + status->Skill2SCTable[SL_CRUSADER] = (sc_type)MAPID_CRUSADER, + status->Skill2SCTable[SL_SUPERNOVICE] = (sc_type)MAPID_SUPER_NOVICE, + status->Skill2SCTable[SL_KNIGHT] = (sc_type)MAPID_KNIGHT, + status->Skill2SCTable[SL_WIZARD] = (sc_type)MAPID_WIZARD, + status->Skill2SCTable[SL_PRIEST] = (sc_type)MAPID_PRIEST, + status->Skill2SCTable[SL_BARDDANCER] = (sc_type)MAPID_BARDDANCER, + status->Skill2SCTable[SL_ROGUE] = (sc_type)MAPID_ROGUE, + status->Skill2SCTable[SL_ASSASIN] = (sc_type)MAPID_ASSASSIN, + status->Skill2SCTable[SL_BLACKSMITH] = (sc_type)MAPID_BLACKSMITH, + status->Skill2SCTable[SL_HUNTER] = (sc_type)MAPID_HUNTER, + status->Skill2SCTable[SL_SOULLINKER] = (sc_type)MAPID_SOUL_LINKER, + + //Status that don't have a skill associated. + status->IconChangeTable[SC_WEIGHTOVER50] = SI_WEIGHTOVER50; + status->IconChangeTable[SC_WEIGHTOVER90] = SI_WEIGHTOVER90; + status->IconChangeTable[SC_ATTHASTE_POTION1] = SI_ATTHASTE_POTION1; + status->IconChangeTable[SC_ATTHASTE_POTION2] = SI_ATTHASTE_POTION2; + status->IconChangeTable[SC_ATTHASTE_POTION3] = SI_ATTHASTE_POTION3; + status->IconChangeTable[SC_ATTHASTE_INFINITY] = SI_ATTHASTE_INFINITY; + status->IconChangeTable[SC_MOVHASTE_HORSE] = SI_MOVHASTE_HORSE; + status->IconChangeTable[SC_MOVHASTE_INFINITY] = SI_MOVHASTE_INFINITY; + status->IconChangeTable[SC_CHASEWALK2] = SI_INCSTR; + status->IconChangeTable[SC_MIRACLE] = SI_SOULLINK; + status->IconChangeTable[SC_CLAIRVOYANCE] = SI_CLAIRVOYANCE; + status->IconChangeTable[SC_FOOD_STR] = SI_FOOD_STR; + status->IconChangeTable[SC_FOOD_AGI] = SI_FOOD_AGI; + status->IconChangeTable[SC_FOOD_VIT] = SI_FOOD_VIT; + status->IconChangeTable[SC_FOOD_INT] = SI_FOOD_INT; + status->IconChangeTable[SC_FOOD_DEX] = SI_FOOD_DEX; + status->IconChangeTable[SC_FOOD_LUK] = SI_FOOD_LUK; + status->IconChangeTable[SC_FOOD_BASICAVOIDANCE]= SI_FOOD_BASICAVOIDANCE; + status->IconChangeTable[SC_FOOD_BASICHIT] = SI_FOOD_BASICHIT; + status->IconChangeTable[SC_MANU_ATK] = SI_MANU_ATK; + status->IconChangeTable[SC_MANU_DEF] = SI_MANU_DEF; + status->IconChangeTable[SC_SPL_ATK] = SI_SPL_ATK; + status->IconChangeTable[SC_SPL_DEF] = SI_SPL_DEF; + status->IconChangeTable[SC_MANU_MATK] = SI_MANU_MATK; + status->IconChangeTable[SC_SPL_MATK] = SI_SPL_MATK; + status->IconChangeTable[SC_PLUSATTACKPOWER] = SI_PLUSATTACKPOWER; + status->IconChangeTable[SC_PLUSMAGICPOWER] = SI_PLUSMAGICPOWER; //Cash Items - StatusIconChangeTable[SC_FOOD_STR_CASH] = SI_FOOD_STR_CASH; - StatusIconChangeTable[SC_FOOD_AGI_CASH] = SI_FOOD_AGI_CASH; - StatusIconChangeTable[SC_FOOD_VIT_CASH] = SI_FOOD_VIT_CASH; - StatusIconChangeTable[SC_FOOD_DEX_CASH] = SI_FOOD_DEX_CASH; - StatusIconChangeTable[SC_FOOD_INT_CASH] = SI_FOOD_INT_CASH; - StatusIconChangeTable[SC_FOOD_LUK_CASH] = SI_FOOD_LUK_CASH; - StatusIconChangeTable[SC_CASH_PLUSEXP] = SI_CASH_PLUSEXP; - StatusIconChangeTable[SC_CASH_RECEIVEITEM] = SI_CASH_RECEIVEITEM; - StatusIconChangeTable[SC_CASH_PLUSONLYJOBEXP] = SI_CASH_PLUSONLYJOBEXP; - StatusIconChangeTable[SC_CASH_DEATHPENALTY] = SI_CASH_DEATHPENALTY; - StatusIconChangeTable[SC_CASH_BOSS_ALARM] = SI_CASH_BOSS_ALARM; - StatusIconChangeTable[SC_PROTECT_DEF] = SI_PROTECT_DEF; - StatusIconChangeTable[SC_PROTECT_MDEF] = SI_PROTECT_MDEF; - StatusIconChangeTable[SC_CRITICALPERCENT] = SI_CRITICALPERCENT; - StatusIconChangeTable[SC_PLUSAVOIDVALUE] = SI_PLUSAVOIDVALUE; - StatusIconChangeTable[SC_HEALPLUS] = SI_HEALPLUS; - StatusIconChangeTable[SC_S_LIFEPOTION] = SI_S_LIFEPOTION; - StatusIconChangeTable[SC_L_LIFEPOTION] = SI_L_LIFEPOTION; - StatusIconChangeTable[SC_ATKER_BLOOD] = SI_ATKER_BLOOD; - StatusIconChangeTable[SC_TARGET_BLOOD] = SI_TARGET_BLOOD; + status->IconChangeTable[SC_FOOD_STR_CASH] = SI_FOOD_STR_CASH; + status->IconChangeTable[SC_FOOD_AGI_CASH] = SI_FOOD_AGI_CASH; + status->IconChangeTable[SC_FOOD_VIT_CASH] = SI_FOOD_VIT_CASH; + status->IconChangeTable[SC_FOOD_DEX_CASH] = SI_FOOD_DEX_CASH; + status->IconChangeTable[SC_FOOD_INT_CASH] = SI_FOOD_INT_CASH; + status->IconChangeTable[SC_FOOD_LUK_CASH] = SI_FOOD_LUK_CASH; + status->IconChangeTable[SC_CASH_PLUSEXP] = SI_CASH_PLUSEXP; + status->IconChangeTable[SC_CASH_RECEIVEITEM] = SI_CASH_RECEIVEITEM; + status->IconChangeTable[SC_CASH_PLUSONLYJOBEXP] = SI_CASH_PLUSONLYJOBEXP; + status->IconChangeTable[SC_CASH_DEATHPENALTY] = SI_CASH_DEATHPENALTY; + status->IconChangeTable[SC_CASH_BOSS_ALARM] = SI_CASH_BOSS_ALARM; + status->IconChangeTable[SC_PROTECT_DEF] = SI_PROTECT_DEF; + status->IconChangeTable[SC_PROTECT_MDEF] = SI_PROTECT_MDEF; + status->IconChangeTable[SC_CRITICALPERCENT] = SI_CRITICALPERCENT; + status->IconChangeTable[SC_PLUSAVOIDVALUE] = SI_PLUSAVOIDVALUE; + status->IconChangeTable[SC_HEALPLUS] = SI_HEALPLUS; + status->IconChangeTable[SC_S_LIFEPOTION] = SI_S_LIFEPOTION; + status->IconChangeTable[SC_L_LIFEPOTION] = SI_L_LIFEPOTION; + status->IconChangeTable[SC_ATKER_BLOOD] = SI_ATKER_BLOOD; + status->IconChangeTable[SC_TARGET_BLOOD] = SI_TARGET_BLOOD; // Mercenary Bonus Effects - StatusIconChangeTable[SC_MER_FLEE] = SI_MER_FLEE; - StatusIconChangeTable[SC_MER_ATK] = SI_MER_ATK; - StatusIconChangeTable[SC_MER_HP] = SI_MER_HP; - StatusIconChangeTable[SC_MER_SP] = SI_MER_SP; - StatusIconChangeTable[SC_MER_HIT] = SI_MER_HIT; + status->IconChangeTable[SC_MER_FLEE] = SI_MER_FLEE; + status->IconChangeTable[SC_MER_ATK] = SI_MER_ATK; + status->IconChangeTable[SC_MER_HP] = SI_MER_HP; + status->IconChangeTable[SC_MER_SP] = SI_MER_SP; + status->IconChangeTable[SC_MER_HIT] = SI_MER_HIT; // Warlock Spheres - StatusIconChangeTable[SC_SUMMON1] = SI_SPHERE_1; - StatusIconChangeTable[SC_SUMMON2] = SI_SPHERE_2; - StatusIconChangeTable[SC_SUMMON3] = SI_SPHERE_3; - StatusIconChangeTable[SC_SUMMON4] = SI_SPHERE_4; - StatusIconChangeTable[SC_SUMMON5] = SI_SPHERE_5; + status->IconChangeTable[SC_SUMMON1] = SI_SPHERE_1; + status->IconChangeTable[SC_SUMMON2] = SI_SPHERE_2; + status->IconChangeTable[SC_SUMMON3] = SI_SPHERE_3; + status->IconChangeTable[SC_SUMMON4] = SI_SPHERE_4; + status->IconChangeTable[SC_SUMMON5] = SI_SPHERE_5; // Warlock Preserved spells - StatusIconChangeTable[SC_SPELLBOOK1] = SI_SPELLBOOK1; - StatusIconChangeTable[SC_SPELLBOOK2] = SI_SPELLBOOK2; - StatusIconChangeTable[SC_SPELLBOOK3] = SI_SPELLBOOK3; - StatusIconChangeTable[SC_SPELLBOOK4] = SI_SPELLBOOK4; - StatusIconChangeTable[SC_SPELLBOOK5] = SI_SPELLBOOK5; - StatusIconChangeTable[SC_SPELLBOOK6] = SI_SPELLBOOK6; - StatusIconChangeTable[SC_SPELLBOOK7] = SI_SPELLBOOK7; - - StatusIconChangeTable[SC_NEUTRALBARRIER_MASTER] = SI_NEUTRALBARRIER_MASTER; - StatusIconChangeTable[SC_STEALTHFIELD_MASTER] = SI_STEALTHFIELD_MASTER; - StatusIconChangeTable[SC_OVERHEAT] = SI_OVERHEAT; - StatusIconChangeTable[SC_OVERHEAT_LIMITPOINT] = SI_OVERHEAT_LIMITPOINT; - - StatusIconChangeTable[SC_HALLUCINATIONWALK_POSTDELAY] = SI_HALLUCINATIONWALK_POSTDELAY; - StatusIconChangeTable[SC_TOXIN] = SI_TOXIN; - StatusIconChangeTable[SC_PARALYSE] = SI_PARALYSE; - StatusIconChangeTable[SC_VENOMBLEED] = SI_VENOMBLEED; - StatusIconChangeTable[SC_MAGICMUSHROOM] = SI_MAGICMUSHROOM; - StatusIconChangeTable[SC_DEATHHURT] = SI_DEATHHURT; - StatusIconChangeTable[SC_PYREXIA] = SI_PYREXIA; - StatusIconChangeTable[SC_OBLIVIONCURSE] = SI_OBLIVIONCURSE; - StatusIconChangeTable[SC_LEECHESEND] = SI_LEECHESEND; - - StatusIconChangeTable[SC_SHIELDSPELL_DEF] = SI_SHIELDSPELL_DEF; - StatusIconChangeTable[SC_SHIELDSPELL_MDEF] = SI_SHIELDSPELL_MDEF; - StatusIconChangeTable[SC_SHIELDSPELL_REF] = SI_SHIELDSPELL_REF; - StatusIconChangeTable[SC_BANDING_DEFENCE] = SI_BANDING_DEFENCE; - - StatusIconChangeTable[SC_GLOOMYDAY_SK] = SI_GLOOMYDAY; - - StatusIconChangeTable[SC_CURSEDCIRCLE_ATKER] = SI_CURSEDCIRCLE_ATKER; - - StatusIconChangeTable[SC_STOMACHACHE] = SI_STOMACHACHE; - StatusIconChangeTable[SC_MYSTERIOUS_POWDER] = SI_MYSTERIOUS_POWDER; - StatusIconChangeTable[SC_MELON_BOMB] = SI_MELON_BOMB; - StatusIconChangeTable[SC_BANANA_BOMB] = SI_BANANA_BOMB; - StatusIconChangeTable[SC_BANANA_BOMB_SITDOWN_POSTDELAY] = SI_BANANA_BOMB_SITDOWN_POSTDELAY; + status->IconChangeTable[SC_SPELLBOOK1] = SI_SPELLBOOK1; + status->IconChangeTable[SC_SPELLBOOK2] = SI_SPELLBOOK2; + status->IconChangeTable[SC_SPELLBOOK3] = SI_SPELLBOOK3; + status->IconChangeTable[SC_SPELLBOOK4] = SI_SPELLBOOK4; + status->IconChangeTable[SC_SPELLBOOK5] = SI_SPELLBOOK5; + status->IconChangeTable[SC_SPELLBOOK6] = SI_SPELLBOOK6; + status->IconChangeTable[SC_SPELLBOOK7] = SI_SPELLBOOK7; + + status->IconChangeTable[SC_NEUTRALBARRIER_MASTER] = SI_NEUTRALBARRIER_MASTER; + status->IconChangeTable[SC_STEALTHFIELD_MASTER] = SI_STEALTHFIELD_MASTER; + status->IconChangeTable[SC_OVERHEAT] = SI_OVERHEAT; + status->IconChangeTable[SC_OVERHEAT_LIMITPOINT] = SI_OVERHEAT_LIMITPOINT; + + status->IconChangeTable[SC_HALLUCINATIONWALK_POSTDELAY] = SI_HALLUCINATIONWALK_POSTDELAY; + status->IconChangeTable[SC_TOXIN] = SI_TOXIN; + status->IconChangeTable[SC_PARALYSE] = SI_PARALYSE; + status->IconChangeTable[SC_VENOMBLEED] = SI_VENOMBLEED; + status->IconChangeTable[SC_MAGICMUSHROOM] = SI_MAGICMUSHROOM; + status->IconChangeTable[SC_DEATHHURT] = SI_DEATHHURT; + status->IconChangeTable[SC_PYREXIA] = SI_PYREXIA; + status->IconChangeTable[SC_OBLIVIONCURSE] = SI_OBLIVIONCURSE; + status->IconChangeTable[SC_LEECHESEND] = SI_LEECHESEND; + + status->IconChangeTable[SC_SHIELDSPELL_DEF] = SI_SHIELDSPELL_DEF; + status->IconChangeTable[SC_SHIELDSPELL_MDEF] = SI_SHIELDSPELL_MDEF; + status->IconChangeTable[SC_SHIELDSPELL_REF] = SI_SHIELDSPELL_REF; + status->IconChangeTable[SC_BANDING_DEFENCE] = SI_BANDING_DEFENCE; + + status->IconChangeTable[SC_GLOOMYDAY_SK] = SI_GLOOMYDAY; + + status->IconChangeTable[SC_CURSEDCIRCLE_ATKER] = SI_CURSEDCIRCLE_ATKER; + + status->IconChangeTable[SC_STOMACHACHE] = SI_STOMACHACHE; + status->IconChangeTable[SC_MYSTERIOUS_POWDER] = SI_MYSTERIOUS_POWDER; + status->IconChangeTable[SC_MELON_BOMB] = SI_MELON_BOMB; + status->IconChangeTable[SC_BANANA_BOMB] = SI_BANANA_BOMB; + status->IconChangeTable[SC_BANANA_BOMB_SITDOWN_POSTDELAY] = SI_BANANA_BOMB_SITDOWN_POSTDELAY; //Genetics New Food Items Status Icons - StatusIconChangeTable[SC_SAVAGE_STEAK] = SI_SAVAGE_STEAK; - StatusIconChangeTable[SC_COCKTAIL_WARG_BLOOD] = SI_COCKTAIL_WARG_BLOOD; - StatusIconChangeTable[SC_MINOR_BBQ] = SI_MINOR_BBQ; - StatusIconChangeTable[SC_SIROMA_ICE_TEA] = SI_SIROMA_ICE_TEA; - StatusIconChangeTable[SC_DROCERA_HERB_STEAMED] = SI_DROCERA_HERB_STEAMED; - StatusIconChangeTable[SC_PUTTI_TAILS_NOODLES] = SI_PUTTI_TAILS_NOODLES; - - StatusIconChangeTable[SC_BOOST500] |= SI_BOOST500; - StatusIconChangeTable[SC_FULL_SWING_K] |= SI_FULL_SWING_K; - StatusIconChangeTable[SC_MANA_PLUS] |= SI_MANA_PLUS; - StatusIconChangeTable[SC_MUSTLE_M] |= SI_MUSTLE_M; - StatusIconChangeTable[SC_LIFE_FORCE_F] |= SI_LIFE_FORCE_F; - StatusIconChangeTable[SC_EXTRACT_WHITE_POTION_Z] |= SI_EXTRACT_WHITE_POTION_Z; - StatusIconChangeTable[SC_VITATA_500] |= SI_VITATA_500; - StatusIconChangeTable[SC_EXTRACT_SALAMINE_JUICE] |= SI_EXTRACT_SALAMINE_JUICE; + status->IconChangeTable[SC_SAVAGE_STEAK] = SI_SAVAGE_STEAK; + status->IconChangeTable[SC_COCKTAIL_WARG_BLOOD] = SI_COCKTAIL_WARG_BLOOD; + status->IconChangeTable[SC_MINOR_BBQ] = SI_MINOR_BBQ; + status->IconChangeTable[SC_SIROMA_ICE_TEA] = SI_SIROMA_ICE_TEA; + status->IconChangeTable[SC_DROCERA_HERB_STEAMED] = SI_DROCERA_HERB_STEAMED; + status->IconChangeTable[SC_PUTTI_TAILS_NOODLES] = SI_PUTTI_TAILS_NOODLES; + + status->IconChangeTable[SC_BOOST500] |= SI_BOOST500; + status->IconChangeTable[SC_FULL_SWING_K] |= SI_FULL_SWING_K; + status->IconChangeTable[SC_MANA_PLUS] |= SI_MANA_PLUS; + status->IconChangeTable[SC_MUSTLE_M] |= SI_MUSTLE_M; + status->IconChangeTable[SC_LIFE_FORCE_F] |= SI_LIFE_FORCE_F; + status->IconChangeTable[SC_EXTRACT_WHITE_POTION_Z] |= SI_EXTRACT_WHITE_POTION_Z; + status->IconChangeTable[SC_VITATA_500] |= SI_VITATA_500; + status->IconChangeTable[SC_EXTRACT_SALAMINE_JUICE] |= SI_EXTRACT_SALAMINE_JUICE; // Elemental Spirit's 'side' status change icons. - StatusIconChangeTable[SC_CIRCLE_OF_FIRE] = SI_CIRCLE_OF_FIRE; - StatusIconChangeTable[SC_FIRE_CLOAK] = SI_FIRE_CLOAK; - StatusIconChangeTable[SC_WATER_SCREEN] = SI_WATER_SCREEN; - StatusIconChangeTable[SC_WATER_DROP] = SI_WATER_DROP; - StatusIconChangeTable[SC_WIND_STEP] = SI_WIND_STEP; - StatusIconChangeTable[SC_WIND_CURTAIN] = SI_WIND_CURTAIN; - StatusIconChangeTable[SC_SOLID_SKIN] = SI_SOLID_SKIN; - StatusIconChangeTable[SC_STONE_SHIELD] = SI_STONE_SHIELD; - StatusIconChangeTable[SC_PYROTECHNIC] = SI_PYROTECHNIC; - StatusIconChangeTable[SC_HEATER] = SI_HEATER; - StatusIconChangeTable[SC_TROPIC] = SI_TROPIC; - StatusIconChangeTable[SC_AQUAPLAY] = SI_AQUAPLAY; - StatusIconChangeTable[SC_COOLER] = SI_COOLER; - StatusIconChangeTable[SC_CHILLY_AIR] = SI_CHILLY_AIR; - StatusIconChangeTable[SC_GUST] = SI_GUST; - StatusIconChangeTable[SC_BLAST] = SI_BLAST; - StatusIconChangeTable[SC_WILD_STORM] = SI_WILD_STORM; - StatusIconChangeTable[SC_PETROLOGY] = SI_PETROLOGY; - StatusIconChangeTable[SC_CURSED_SOIL] = SI_CURSED_SOIL; - StatusIconChangeTable[SC_UPHEAVAL] = SI_UPHEAVAL; - StatusIconChangeTable[SC_PUSH_CART] = SI_ON_PUSH_CART; - StatusIconChangeTable[SC_REBOUND] = SI_REBOUND; - StatusIconChangeTable[SC_ALL_RIDING] = SI_ALL_RIDING; - StatusIconChangeTable[SC_MONSTER_TRANSFORM] = SI_MONSTER_TRANSFORM; + status->IconChangeTable[SC_CIRCLE_OF_FIRE] = SI_CIRCLE_OF_FIRE; + status->IconChangeTable[SC_FIRE_CLOAK] = SI_FIRE_CLOAK; + status->IconChangeTable[SC_WATER_SCREEN] = SI_WATER_SCREEN; + status->IconChangeTable[SC_WATER_DROP] = SI_WATER_DROP; + status->IconChangeTable[SC_WIND_STEP] = SI_WIND_STEP; + status->IconChangeTable[SC_WIND_CURTAIN] = SI_WIND_CURTAIN; + status->IconChangeTable[SC_SOLID_SKIN] = SI_SOLID_SKIN; + status->IconChangeTable[SC_STONE_SHIELD] = SI_STONE_SHIELD; + status->IconChangeTable[SC_PYROTECHNIC] = SI_PYROTECHNIC; + status->IconChangeTable[SC_HEATER] = SI_HEATER; + status->IconChangeTable[SC_TROPIC] = SI_TROPIC; + status->IconChangeTable[SC_AQUAPLAY] = SI_AQUAPLAY; + status->IconChangeTable[SC_COOLER] = SI_COOLER; + status->IconChangeTable[SC_CHILLY_AIR] = SI_CHILLY_AIR; + status->IconChangeTable[SC_GUST] = SI_GUST; + status->IconChangeTable[SC_BLAST] = SI_BLAST; + status->IconChangeTable[SC_WILD_STORM] = SI_WILD_STORM; + status->IconChangeTable[SC_PETROLOGY] = SI_PETROLOGY; + status->IconChangeTable[SC_CURSED_SOIL] = SI_CURSED_SOIL; + status->IconChangeTable[SC_UPHEAVAL] = SI_UPHEAVAL; + status->IconChangeTable[SC_PUSH_CART] = SI_ON_PUSH_CART; + status->IconChangeTable[SC_REBOUND] = SI_REBOUND; + status->IconChangeTable[SC_ALL_RIDING] = SI_ALL_RIDING; + status->IconChangeTable[SC_MONSTER_TRANSFORM] = SI_MONSTER_TRANSFORM; //Other SC which are not necessarily associated to skills. - StatusChangeFlagTable[SC_ATTHASTE_POTION1] = SCB_ASPD; - StatusChangeFlagTable[SC_ATTHASTE_POTION2] = SCB_ASPD; - StatusChangeFlagTable[SC_ATTHASTE_POTION3] = SCB_ASPD; - StatusChangeFlagTable[SC_ATTHASTE_INFINITY] = SCB_ASPD; - StatusChangeFlagTable[SC_MOVHASTE_HORSE] = SCB_SPEED; - StatusChangeFlagTable[SC_MOVHASTE_INFINITY] = SCB_SPEED; - StatusChangeFlagTable[SC_PLUSATTACKPOWER] = SCB_BATK; - StatusChangeFlagTable[SC_PLUSMAGICPOWER] = SCB_MATK; - StatusChangeFlagTable[SC_INCALLSTATUS] |= SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK; - StatusChangeFlagTable[SC_CHASEWALK2] |= SCB_STR; - StatusChangeFlagTable[SC_INCAGI] |= SCB_AGI; - StatusChangeFlagTable[SC_INCVIT] |= SCB_VIT; - StatusChangeFlagTable[SC_INCINT] |= SCB_INT; - StatusChangeFlagTable[SC_INCDEX] |= SCB_DEX; - StatusChangeFlagTable[SC_INCLUK] |= SCB_LUK; - StatusChangeFlagTable[SC_INCHIT] |= SCB_HIT; - StatusChangeFlagTable[SC_INCHITRATE] |= SCB_HIT; - StatusChangeFlagTable[SC_INCFLEE] |= SCB_FLEE; - StatusChangeFlagTable[SC_INCFLEERATE] |= SCB_FLEE; - StatusChangeFlagTable[SC_CRITICALPERCENT] |= SCB_CRI; - StatusChangeFlagTable[SC_INCASPDRATE] |= SCB_ASPD; - StatusChangeFlagTable[SC_PLUSAVOIDVALUE] |= SCB_FLEE2; - StatusChangeFlagTable[SC_INCMHPRATE] |= SCB_MAXHP; - StatusChangeFlagTable[SC_INCMSPRATE] |= SCB_MAXSP; - StatusChangeFlagTable[SC_INCMHP] |= SCB_MAXHP; - StatusChangeFlagTable[SC_INCMSP] |= SCB_MAXSP; - StatusChangeFlagTable[SC_INCATKRATE] |= SCB_BATK|SCB_WATK; - StatusChangeFlagTable[SC_INCMATKRATE] |= SCB_MATK; - StatusChangeFlagTable[SC_INCDEFRATE] |= SCB_DEF; - StatusChangeFlagTable[SC_FOOD_STR] |= SCB_STR; - StatusChangeFlagTable[SC_FOOD_AGI] |= SCB_AGI; - StatusChangeFlagTable[SC_FOOD_VIT] |= SCB_VIT; - StatusChangeFlagTable[SC_FOOD_INT] |= SCB_INT; - StatusChangeFlagTable[SC_FOOD_DEX] |= SCB_DEX; - StatusChangeFlagTable[SC_FOOD_LUK] |= SCB_LUK; - StatusChangeFlagTable[SC_FOOD_BASICHIT] |= SCB_HIT; - StatusChangeFlagTable[SC_FOOD_BASICAVOIDANCE] |= SCB_FLEE; - StatusChangeFlagTable[SC_BATKFOOD] |= SCB_BATK; - StatusChangeFlagTable[SC_WATKFOOD] |= SCB_WATK; - StatusChangeFlagTable[SC_MATKFOOD] |= SCB_MATK; - StatusChangeFlagTable[SC_ARMORPROPERTY] |= SCB_ALL; - StatusChangeFlagTable[SC_ARMOR_RESIST] |= SCB_ALL; - StatusChangeFlagTable[SC_ATKER_BLOOD] |= SCB_ALL; - StatusChangeFlagTable[SC_WALKSPEED] |= SCB_SPEED; - StatusChangeFlagTable[SC_ITEMSCRIPT] |= SCB_ALL; + status->ChangeFlagTable[SC_ATTHASTE_POTION1] = SCB_ASPD; + status->ChangeFlagTable[SC_ATTHASTE_POTION2] = SCB_ASPD; + status->ChangeFlagTable[SC_ATTHASTE_POTION3] = SCB_ASPD; + status->ChangeFlagTable[SC_ATTHASTE_INFINITY] = SCB_ASPD; + status->ChangeFlagTable[SC_MOVHASTE_HORSE] = SCB_SPEED; + status->ChangeFlagTable[SC_MOVHASTE_INFINITY] = SCB_SPEED; + status->ChangeFlagTable[SC_PLUSATTACKPOWER] = SCB_BATK; + status->ChangeFlagTable[SC_PLUSMAGICPOWER] = SCB_MATK; + status->ChangeFlagTable[SC_INCALLSTATUS] |= SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK; + status->ChangeFlagTable[SC_CHASEWALK2] |= SCB_STR; + status->ChangeFlagTable[SC_INCAGI] |= SCB_AGI; + status->ChangeFlagTable[SC_INCVIT] |= SCB_VIT; + status->ChangeFlagTable[SC_INCINT] |= SCB_INT; + status->ChangeFlagTable[SC_INCDEX] |= SCB_DEX; + status->ChangeFlagTable[SC_INCLUK] |= SCB_LUK; + status->ChangeFlagTable[SC_INCHIT] |= SCB_HIT; + status->ChangeFlagTable[SC_INCHITRATE] |= SCB_HIT; + status->ChangeFlagTable[SC_INCFLEE] |= SCB_FLEE; + status->ChangeFlagTable[SC_INCFLEERATE] |= SCB_FLEE; + status->ChangeFlagTable[SC_CRITICALPERCENT] |= SCB_CRI; + status->ChangeFlagTable[SC_INCASPDRATE] |= SCB_ASPD; + status->ChangeFlagTable[SC_PLUSAVOIDVALUE] |= SCB_FLEE2; + status->ChangeFlagTable[SC_INCMHPRATE] |= SCB_MAXHP; + status->ChangeFlagTable[SC_INCMSPRATE] |= SCB_MAXSP; + status->ChangeFlagTable[SC_INCMHP] |= SCB_MAXHP; + status->ChangeFlagTable[SC_INCMSP] |= SCB_MAXSP; + status->ChangeFlagTable[SC_INCATKRATE] |= SCB_BATK|SCB_WATK; + status->ChangeFlagTable[SC_INCMATKRATE] |= SCB_MATK; + status->ChangeFlagTable[SC_INCDEFRATE] |= SCB_DEF; + status->ChangeFlagTable[SC_FOOD_STR] |= SCB_STR; + status->ChangeFlagTable[SC_FOOD_AGI] |= SCB_AGI; + status->ChangeFlagTable[SC_FOOD_VIT] |= SCB_VIT; + status->ChangeFlagTable[SC_FOOD_INT] |= SCB_INT; + status->ChangeFlagTable[SC_FOOD_DEX] |= SCB_DEX; + status->ChangeFlagTable[SC_FOOD_LUK] |= SCB_LUK; + status->ChangeFlagTable[SC_FOOD_BASICHIT] |= SCB_HIT; + status->ChangeFlagTable[SC_FOOD_BASICAVOIDANCE] |= SCB_FLEE; + status->ChangeFlagTable[SC_BATKFOOD] |= SCB_BATK; + status->ChangeFlagTable[SC_WATKFOOD] |= SCB_WATK; + status->ChangeFlagTable[SC_MATKFOOD] |= SCB_MATK; + status->ChangeFlagTable[SC_ARMORPROPERTY] |= SCB_ALL; + status->ChangeFlagTable[SC_ARMOR_RESIST] |= SCB_ALL; + status->ChangeFlagTable[SC_ATKER_BLOOD] |= SCB_ALL; + status->ChangeFlagTable[SC_WALKSPEED] |= SCB_SPEED; + status->ChangeFlagTable[SC_ITEMSCRIPT] |= SCB_ALL; // Cash Items - StatusChangeFlagTable[SC_FOOD_STR_CASH] = SCB_STR; - StatusChangeFlagTable[SC_FOOD_AGI_CASH] = SCB_AGI; - StatusChangeFlagTable[SC_FOOD_VIT_CASH] = SCB_VIT; - StatusChangeFlagTable[SC_FOOD_DEX_CASH] = SCB_DEX; - StatusChangeFlagTable[SC_FOOD_INT_CASH] = SCB_INT; - StatusChangeFlagTable[SC_FOOD_LUK_CASH] = SCB_LUK; + status->ChangeFlagTable[SC_FOOD_STR_CASH] = SCB_STR; + status->ChangeFlagTable[SC_FOOD_AGI_CASH] = SCB_AGI; + status->ChangeFlagTable[SC_FOOD_VIT_CASH] = SCB_VIT; + status->ChangeFlagTable[SC_FOOD_DEX_CASH] = SCB_DEX; + status->ChangeFlagTable[SC_FOOD_INT_CASH] = SCB_INT; + status->ChangeFlagTable[SC_FOOD_LUK_CASH] = SCB_LUK; // Mercenary Bonus Effects - StatusChangeFlagTable[SC_MER_FLEE] |= SCB_FLEE; - StatusChangeFlagTable[SC_MER_ATK] |= SCB_WATK; - StatusChangeFlagTable[SC_MER_HP] |= SCB_MAXHP; - StatusChangeFlagTable[SC_MER_SP] |= SCB_MAXSP; - StatusChangeFlagTable[SC_MER_HIT] |= SCB_HIT; + status->ChangeFlagTable[SC_MER_FLEE] |= SCB_FLEE; + status->ChangeFlagTable[SC_MER_ATK] |= SCB_WATK; + status->ChangeFlagTable[SC_MER_HP] |= SCB_MAXHP; + status->ChangeFlagTable[SC_MER_SP] |= SCB_MAXSP; + status->ChangeFlagTable[SC_MER_HIT] |= SCB_HIT; // Guillotine Cross Poison Effects - StatusChangeFlagTable[SC_PARALYSE] |= SCB_ASPD|SCB_FLEE|SCB_SPEED; - StatusChangeFlagTable[SC_DEATHHURT] |= SCB_REGEN; - StatusChangeFlagTable[SC_VENOMBLEED] |= SCB_MAXHP; - StatusChangeFlagTable[SC_OBLIVIONCURSE] |= SCB_REGEN; - - StatusChangeFlagTable[SC_SAVAGE_STEAK] |= SCB_STR; - StatusChangeFlagTable[SC_COCKTAIL_WARG_BLOOD] |= SCB_INT; - StatusChangeFlagTable[SC_MINOR_BBQ] |= SCB_VIT; - StatusChangeFlagTable[SC_SIROMA_ICE_TEA] |= SCB_DEX; - StatusChangeFlagTable[SC_DROCERA_HERB_STEAMED] |= SCB_AGI; - StatusChangeFlagTable[SC_PUTTI_TAILS_NOODLES] |= SCB_LUK; - StatusChangeFlagTable[SC_BOOST500] |= SCB_ASPD; - StatusChangeFlagTable[SC_FULL_SWING_K] |= SCB_BATK; - StatusChangeFlagTable[SC_MANA_PLUS] |= SCB_MATK; - StatusChangeFlagTable[SC_MUSTLE_M] |= SCB_MAXHP; - StatusChangeFlagTable[SC_LIFE_FORCE_F] |= SCB_MAXSP; - StatusChangeFlagTable[SC_EXTRACT_WHITE_POTION_Z] |= SCB_REGEN; - StatusChangeFlagTable[SC_VITATA_500] |= SCB_REGEN; - StatusChangeFlagTable[SC_EXTRACT_SALAMINE_JUICE] |= SCB_ASPD; - StatusChangeFlagTable[SC_REBOUND] |= SCB_SPEED|SCB_REGEN; - - StatusChangeFlagTable[SC_ALL_RIDING] = SCB_SPEED; - StatusChangeFlagTable[SC_WEDDING] = SCB_SPEED; - - - /* StatusDisplayType Table [Ind/Hercules] */ - StatusDisplayType[SC_ALL_RIDING] = true; - StatusDisplayType[SC_PUSH_CART] = true; - StatusDisplayType[SC_SUMMON1] = true; - StatusDisplayType[SC_SUMMON2] = true; - StatusDisplayType[SC_SUMMON3] = true; - StatusDisplayType[SC_SUMMON4] = true; - StatusDisplayType[SC_SUMMON5] = true; - StatusDisplayType[SC_CAMOUFLAGE] = true; - StatusDisplayType[SC_DUPLELIGHT] = true; - StatusDisplayType[SC_ORATIO] = true; - StatusDisplayType[SC_FROSTMISTY] = true; - StatusDisplayType[SC_VENOMIMPRESS] = true; - StatusDisplayType[SC_HALLUCINATIONWALK] = true; - StatusDisplayType[SC_ROLLINGCUTTER] = true; - StatusDisplayType[SC_BANDING] = true; - StatusDisplayType[SC_COLD] = true; - StatusDisplayType[SC_DEEP_SLEEP] = true; - StatusDisplayType[SC_CURSEDCIRCLE_ATKER]= true; - StatusDisplayType[SC_CURSEDCIRCLE_TARGET]= true; - StatusDisplayType[SC_BLOOD_SUCKER] = true; - StatusDisplayType[SC__SHADOWFORM] = true; - StatusDisplayType[SC__MANHOLE] = true; - StatusDisplayType[SC_MONSTER_TRANSFORM] = true; + status->ChangeFlagTable[SC_PARALYSE] |= SCB_ASPD|SCB_FLEE|SCB_SPEED; + status->ChangeFlagTable[SC_DEATHHURT] |= SCB_REGEN; + status->ChangeFlagTable[SC_VENOMBLEED] |= SCB_MAXHP; + status->ChangeFlagTable[SC_OBLIVIONCURSE] |= SCB_REGEN; + + status->ChangeFlagTable[SC_SAVAGE_STEAK] |= SCB_STR; + status->ChangeFlagTable[SC_COCKTAIL_WARG_BLOOD] |= SCB_INT; + status->ChangeFlagTable[SC_MINOR_BBQ] |= SCB_VIT; + status->ChangeFlagTable[SC_SIROMA_ICE_TEA] |= SCB_DEX; + status->ChangeFlagTable[SC_DROCERA_HERB_STEAMED] |= SCB_AGI; + status->ChangeFlagTable[SC_PUTTI_TAILS_NOODLES] |= SCB_LUK; + status->ChangeFlagTable[SC_BOOST500] |= SCB_ASPD; + status->ChangeFlagTable[SC_FULL_SWING_K] |= SCB_BATK; + status->ChangeFlagTable[SC_MANA_PLUS] |= SCB_MATK; + status->ChangeFlagTable[SC_MUSTLE_M] |= SCB_MAXHP; + status->ChangeFlagTable[SC_LIFE_FORCE_F] |= SCB_MAXSP; + status->ChangeFlagTable[SC_EXTRACT_WHITE_POTION_Z] |= SCB_REGEN; + status->ChangeFlagTable[SC_VITATA_500] |= SCB_REGEN; + status->ChangeFlagTable[SC_EXTRACT_SALAMINE_JUICE] |= SCB_ASPD; + status->ChangeFlagTable[SC_REBOUND] |= SCB_SPEED|SCB_REGEN; + + status->ChangeFlagTable[SC_ALL_RIDING] = SCB_SPEED; + status->ChangeFlagTable[SC_WEDDING] = SCB_SPEED; + + + /* status->DisplayType Table [Ind/Hercules] */ + status->DisplayType[SC_ALL_RIDING] = true; + status->DisplayType[SC_PUSH_CART] = true; + status->DisplayType[SC_SUMMON1] = true; + status->DisplayType[SC_SUMMON2] = true; + status->DisplayType[SC_SUMMON3] = true; + status->DisplayType[SC_SUMMON4] = true; + status->DisplayType[SC_SUMMON5] = true; + status->DisplayType[SC_CAMOUFLAGE] = true; + status->DisplayType[SC_DUPLELIGHT] = true; + status->DisplayType[SC_ORATIO] = true; + status->DisplayType[SC_FROSTMISTY] = true; + status->DisplayType[SC_VENOMIMPRESS] = true; + status->DisplayType[SC_HALLUCINATIONWALK] = true; + status->DisplayType[SC_ROLLINGCUTTER] = true; + status->DisplayType[SC_BANDING] = true; + status->DisplayType[SC_COLD] = true; + status->DisplayType[SC_DEEP_SLEEP] = true; + status->DisplayType[SC_CURSEDCIRCLE_ATKER]= true; + status->DisplayType[SC_CURSEDCIRCLE_TARGET]= true; + status->DisplayType[SC_BLOOD_SUCKER] = true; + status->DisplayType[SC__SHADOWFORM] = true; + status->DisplayType[SC__MANHOLE] = true; + status->DisplayType[SC_MONSTER_TRANSFORM] = true; #ifdef RENEWAL_EDP // renewal EDP increases your weapon atk - StatusChangeFlagTable[SC_EDP] |= SCB_WATK; + status->ChangeFlagTable[SC_EDP] |= SCB_WATK; #endif if( !battle_config.display_hallucination ) //Disable Hallucination. - StatusIconChangeTable[SC_ILLUSION] = SI_BLANK; + status->IconChangeTable[SC_ILLUSION] = SI_BLANK; } -static void initDummyData(void) +void initDummyData(void) { - memset(&dummy_status, 0, sizeof(dummy_status)); - dummy_status.hp = - dummy_status.max_hp = - dummy_status.max_sp = - dummy_status.str = - dummy_status.agi = - dummy_status.vit = - dummy_status.int_ = - dummy_status.dex = - dummy_status.luk = - dummy_status.hit = 1; - dummy_status.speed = 2000; - dummy_status.adelay = 4000; - dummy_status.amotion = 2000; - dummy_status.dmotion = 2000; - dummy_status.ele_lv = 1; //Min elemental level. - dummy_status.mode = MD_CANMOVE; + memset(&status->dummy, 0, sizeof(status->dummy)); + status->dummy.hp = + status->dummy.max_hp = + status->dummy.max_sp = + status->dummy.str = + status->dummy.agi = + status->dummy.vit = + status->dummy.int_ = + status->dummy.dex = + status->dummy.luk = + status->dummy.hit = 1; + status->dummy.speed = 2000; + status->dummy.adelay = 4000; + status->dummy.amotion = 2000; + status->dummy.dmotion = 2000; + status->dummy.ele_lv = 1; //Min elemental level. + status->dummy.mode = MD_CANMOVE; } @@ -1093,7 +1061,7 @@ int status_set_hp(struct block_list *bl, unsigned int hp, int flag) { struct status_data *st; if (hp < 1) return 0; st = status->get_status_data(bl); - if (st == &dummy_status) + if (st == &status->dummy) return 0; if (hp > st->max_hp) hp = st->max_hp; @@ -1110,7 +1078,7 @@ int status_set_sp(struct block_list *bl, unsigned int sp, int flag) { struct status_data *st; st = status->get_status_data(bl); - if (st == &dummy_status) + if (st == &status->dummy) return 0; if (sp > st->max_sp) sp = st->max_sp; @@ -1157,7 +1125,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp, return skill->unit_ondamaged((struct skill_unit *)target, src, hp, timer->gettick()); st = status->get_status_data(target); - if( st == &dummy_status ) + if( st == &status->dummy ) return 0; if ((unsigned int)hp >= st->hp) { @@ -1204,7 +1172,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp, if ((sce=sc->data[SC_ENDURE]) && !sce->val4 && !sc->data[SC_LKCONCENTRATION]) { //Endure count is only reduced by non-players on non-gvg maps. //val4 signals infinite endure. [Skotlex] - if (src && src->type != BL_PC && !map_flag_gvg2(target->m) && !maplist[target->m].flag.battleground && --(sce->val2) < 0) + if (src && src->type != BL_PC && !map_flag_gvg2(target->m) && !map->list[target->m].flag.battleground && --(sce->val2) < 0) status_change_end(target, SC_ENDURE, INVALID_TIMER); } if ((sce=sc->data[SC_GRAVITATION]) && sce->val3 == BCT_SELF) { @@ -1361,7 +1329,7 @@ int status_heal(struct block_list *bl,int64 in_hp,int64 in_sp, int flag) { st = status->get_status_data(bl); - if (st == &dummy_status || !st->hp) + if (st == &status->dummy || !st->hp) return 0; /* here onwards we consider it a 32-type, the client does not support higher and from here onwards the value doesn't get thru percentage modifiers */ @@ -1496,7 +1464,7 @@ int status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per if (!status->isdead(bl)) return 0; st = status->get_status_data(bl); - if (st == &dummy_status) + if (st == &status->dummy) return 0; //Invalid target. hp = (int64)st->max_hp * per_hp/100; @@ -1543,7 +1511,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin struct status_change *sc=NULL, *tsc; int hide_flag; - st = src ? status->get_status_data(src) : &dummy_status; + st = src ? status->get_status_data(src) : &status->dummy; if (src && src->type != BL_PC && status->isdead(src)) return 0; @@ -1564,12 +1532,12 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin if( src && !(src->type == BL_PC && ((TBL_PC*)src)->skillitem)) { // Items that cast skills using 'itemskill' will not be handled by map_zone_db. int i; - for(i = 0; i < maplist[src->m].zone->disabled_skills_count; i++) { - if( skill_id == maplist[src->m].zone->disabled_skills[i]->nameid && (maplist[src->m].zone->disabled_skills[i]->type&src->type) ) { + for(i = 0; i < map->list[src->m].zone->disabled_skills_count; i++) { + if( skill_id == map->list[src->m].zone->disabled_skills[i]->nameid && (map->list[src->m].zone->disabled_skills[i]->type&src->type) ) { if( src->type == BL_PC ) clif->msg((TBL_PC*)src, SKILL_CANT_USE_AREA); // This skill cannot be used within this area - else if( src->type == BL_MOB && maplist[src->m].zone->disabled_skills[i]->subtype != MZS_NONE ) { - if( (st->mode&MD_BOSS) && !(maplist[src->m].zone->disabled_skills[i]->subtype&MZS_BOSS) ) + else if( src->type == BL_MOB && map->list[src->m].zone->disabled_skills[i]->subtype != MZS_NONE ) { + if( (st->mode&MD_BOSS) && !(map->list[src->m].zone->disabled_skills[i]->subtype&MZS_BOSS) ) break; } return 0; @@ -1864,21 +1832,21 @@ int status_base_amotion_pc(struct map_session_data *sd, struct status_data *st) } amotion = ( sd->status.weapon < MAX_WEAPON_TYPE && mod < 0 ) - ? (aspd_base[pc->class2idx(sd->status.class_)][sd->status.weapon]) // single weapon - : ((aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2] // dual-wield - + aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2]) * 6 / 10 + 10 * mod - - aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2] - + aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype1]); + ? (status->aspd_base[pc->class2idx(sd->status.class_)][sd->status.weapon]) // single weapon + : ((status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2] // dual-wield + + status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2]) * 6 / 10 + 10 * mod + - status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2] + + status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype1]); if ( sd->status.shield ) - amotion += ( 2000 - aspd_base[pc->class2idx(sd->status.class_)][W_FIST] ) + - ( aspd_base[pc->class2idx(sd->status.class_)][MAX_WEAPON_TYPE] - 2000 ); + amotion += ( 2000 - status->aspd_base[pc->class2idx(sd->status.class_)][W_FIST] ) + + ( status->aspd_base[pc->class2idx(sd->status.class_)][MAX_WEAPON_TYPE] - 2000 ); #else // base weapon delay amotion = (sd->status.weapon < MAX_WEAPON_TYPE) - ? (aspd_base[pc->class2idx(sd->status.class_)][sd->status.weapon]) // single weapon - : (aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype1] + aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2])*7/10; // dual-wield + ? (status->aspd_base[pc->class2idx(sd->status.class_)][sd->status.weapon]) // single weapon + : (status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype1] + status->aspd_base[pc->class2idx(sd->status.class_)][sd->weapontype2])*7/10; // dual-wield // percentual delay reduction from stats amotion -= amotion * (4*st->agi + st->dex)/1000; @@ -1889,7 +1857,7 @@ int status_base_amotion_pc(struct map_session_data *sd, struct status_data *st) return amotion; } -static unsigned short status_base_atk(const struct block_list *bl, const struct status_data *st) { +unsigned short status_base_atk(const struct block_list *bl, const struct status_data *st) { int flag = 0, str, dex, #ifdef RENEWAL rstr, @@ -1943,9 +1911,14 @@ static unsigned short status_base_atk(const struct block_list *bl, const struct static inline unsigned short status_base_matk_min(const struct status_data *st){ return st->int_+(st->int_/7)*(st->int_/7); } static inline unsigned short status_base_matk_max(const struct status_data *st){ return st->int_+(st->int_/5)*(st->int_/5); } + +unsigned short status_base_matk(const struct status_data *st, int level) { #ifdef RENEWAL -unsigned short status_base_matk(const struct status_data *st, int level){ return st->int_+(st->int_/2)+(st->dex/5)+(st->luk/3)+(level/4); } + return st->int_+(st->int_/2)+(st->dex/5)+(st->luk/3)+(level/4); +#else + return 0; #endif +} //Fills in the misc data that can be calculated from the other status info (except for level) void status_calc_misc(struct block_list *bl, struct status_data *st, int level) { @@ -1982,10 +1955,10 @@ void status_calc_misc(struct block_list *bl, struct status_data *st, int level) st->flee2 = 0; if (st->batk) { - int temp = st->batk + status_base_atk(bl, st); + int temp = st->batk + status->base_atk(bl, st); st->batk = cap_value(temp, 0, USHRT_MAX); } else - st->batk = status_base_atk(bl, st); + st->batk = status->base_atk(bl, st); if (st->cri) switch (bl->type) { case BL_MOB: @@ -2152,9 +2125,9 @@ int status_calc_mob_(struct mob_data* md, bool first) { if(flag&4) { // Strengthen Guardians - custom value +10% / lv struct guild_castle *gc; - gc=guild->mapname2gc(maplist[md->bl.m].name); + gc=guild->mapname2gc(map->list[md->bl.m].name); if (!gc) - ShowError("status_calc_mob: No castle set at map %s\n", maplist[md->bl.m].name); + ShowError("status_calc_mob: No castle set at map %s\n", map->list[md->bl.m].name); else if(gc->castle_id < 24 || md->class_ == MOBID_EMPERIUM) { #ifdef RENEWAL @@ -2249,23 +2222,23 @@ int status_calc_pet_(struct pet_data *pd, bool first) } /// Helper function for status_base_pc_maxhp(), used to pre-calculate the hp_sigma_val[] array -static void status_calc_sigma(void) +void status_calc_sigma(void) { int i,j; for(i = 0; i < CLASS_COUNT; i++) { unsigned int k = 0; - hp_sigma_val[i][0] = hp_sigma_val[i][1] = 0; + status->hp_sigma_val[i][0] = status->hp_sigma_val[i][1] = 0; for(j = 2; j <= MAX_LEVEL; j++) { - k += (hp_coefficient[i]*j + 50) / 100; - hp_sigma_val[i][j] = k; + k += (status->hp_coefficient[i]*j + 50) / 100; + status->hp_sigma_val[i][j] = k; if (k >= INT_MAX) break; //Overflow protection. [Skotlex] } for(; j <= MAX_LEVEL; j++) - hp_sigma_val[i][j] = INT_MAX; + status->hp_sigma_val[i][j] = INT_MAX; } } @@ -2274,11 +2247,11 @@ static void status_calc_sigma(void) /// f(0) = 35 | f(x+1) = f(x) + A + (x + B)*C/D /// which reduces to something close to /// f(x) = 35 + x*(A + B*C/D) + sum(i=2..x){ i*C/D } -static unsigned int status_base_pc_maxhp(struct map_session_data *sd, struct status_data *st) { +unsigned int status_base_pc_maxhp(struct map_session_data *sd, struct status_data *st) { uint64 val = pc->class2idx(sd->status.class_); - val = 35 + sd->status.base_level*(int64)hp_coefficient2[val]/100 + hp_sigma_val[val][sd->status.base_level]; + val = 35 + sd->status.base_level*(int64)status->hp_coefficient2[val]/100 + status->hp_sigma_val[val][sd->status.base_level]; - if((sd->class_&MAPID_UPPERMASK) == MAPID_NINJA || (sd->class_&MAPID_UPPERMASK) == MAPID_GUNSLINGER) + if((sd->class_&MAPID_UPPERMASK) == MAPID_NINJA || (sd->class_&MAPID_UPPERMASK) == MAPID_GUNSLINGER || (sd->class_&MAPID_UPPERMASK) == MAPID_REBELLION) val += 100; //Since their HP can't be approximated well enough without this. if((sd->class_&MAPID_UPPERMASK) == MAPID_TAEKWON && sd->status.base_level >= 90 && pc->famerank(sd->status.char_id, MAPID_TAEKWON)) val *= 3; //Triple max HP for top ranking Taekwons over level 90. @@ -2291,13 +2264,13 @@ static unsigned int status_base_pc_maxhp(struct map_session_data *sd, struct sta val += val * 25/100; //Trans classes get a 25% hp bonus else if (sd->class_&JOBL_BABY) val -= val * 30/100; //Baby classes get a 30% hp penalty - return (unsigned int)val; + return (unsigned int)cap_value(val,0,UINT_MAX); } -static unsigned int status_base_pc_maxsp(struct map_session_data* sd, struct status_data *st) { +unsigned int status_base_pc_maxsp(struct map_session_data* sd, struct status_data *st) { uint64 val; - val = 10 + sd->status.base_level*(int64)sp_coefficient[pc->class2idx(sd->status.class_)]/100; + val = 10 + sd->status.base_level*(int64)status->sp_coefficient[pc->class2idx(sd->status.class_)]/100; val += val * st->int_/100; if (sd->class_&JOBL_UPPER) @@ -2307,7 +2280,7 @@ static unsigned int status_base_pc_maxsp(struct map_session_data* sd, struct sta if ((sd->class_&MAPID_UPPERMASK) == MAPID_TAEKWON && sd->status.base_level >= 90 && pc->famerank(sd->status.char_id, MAPID_TAEKWON)) val *= 3; //Triple max SP for top ranking Taekwons over level 90. - return (unsigned int)val; + return (unsigned int)cap_value(val,0,UINT_MAX); } //Calculates player data from scratch without counting SC adjustments. @@ -2332,7 +2305,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first) { pc->calc_skilltree(sd); // SkillTree calculation - sd->max_weight = max_weight_base[pc->class2idx(sd->status.class_)]+sd->status.str*300; + sd->max_weight = status->max_weight_base[pc->class2idx(sd->status.class_)]+sd->status.str*300; if(first) { //Load Hp/SP from char-received data. @@ -2482,13 +2455,13 @@ int status_calc_pc_(struct map_session_data* sd, bool first) { if(!sd->inventory_data[index]) continue; - for(k = 0; k < maplist[sd->bl.m].zone->disabled_items_count; k++) { - if( maplist[sd->bl.m].zone->disabled_items[k] == sd->inventory_data[index]->nameid ) { + for(k = 0; k < map->list[sd->bl.m].zone->disabled_items_count; k++) { + if( map->list[sd->bl.m].zone->disabled_items[k] == sd->inventory_data[index]->nameid ) { break; } } - if( k < maplist[sd->bl.m].zone->disabled_items_count ) + if( k < map->list[sd->bl.m].zone->disabled_items_count ) continue; bstatus->def += sd->inventory_data[index]->def; @@ -2519,18 +2492,18 @@ int status_calc_pc_(struct map_session_data* sd, bool first) { } wa->atk += sd->inventory_data[index]->atk; if ( (r = sd->status.inventory[index].refine) ) - wa->atk2 = refine_info[wlv].bonus[r-1] / 100; + wa->atk2 = status->refine_info[wlv].bonus[r-1] / 100; #ifdef RENEWAL wa->matk += sd->inventory_data[index]->matk; wa->wlv = wlv; if( r && sd->weapontype1 != W_BOW ) // renewal magic attack refine bonus - wa->matk += refine_info[wlv].bonus[r-1] / 100; + wa->matk += status->refine_info[wlv].bonus[r-1] / 100; #endif //Overrefine bonus. if (r) - wd->overrefine = refine_info[wlv].randombonus_max[r-1] / 100; + wd->overrefine = status->refine_info[wlv].randombonus_max[r-1] / 100; wa->range += sd->inventory_data[index]->range; if(sd->inventory_data[index]->script) { @@ -2558,7 +2531,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first) { else if(sd->inventory_data[index]->type == IT_ARMOR) { int r; if ( (r = sd->status.inventory[index].refine) ) - refinedef += refine_info[REFINE_TYPE_ARMOR].bonus[r-1]; + refinedef += status->refine_info[REFINE_TYPE_ARMOR].bonus[r-1]; if(sd->inventory_data[index]->script) { if( i == EQI_HAND_L ) //Shield sd->state.lr_flag = 3; @@ -2627,13 +2600,13 @@ int status_calc_pc_(struct map_session_data* sd, bool first) { if(!data) continue; - for(k = 0; k < maplist[sd->bl.m].zone->disabled_items_count; k++) { - if( maplist[sd->bl.m].zone->disabled_items[k] == data->nameid ) { + for(k = 0; k < map->list[sd->bl.m].zone->disabled_items_count; k++) { + if( map->list[sd->bl.m].zone->disabled_items[k] == data->nameid ) { break; } } - if( k < maplist[sd->bl.m].zone->disabled_items_count ) + if( k < map->list[sd->bl.m].zone->disabled_items_count ) continue; if(first && data->equip_script) {//Execute equip-script on login @@ -2682,12 +2655,12 @@ int status_calc_pc_(struct map_session_data* sd, bool first) { sd->bonus.splash_range += sd->bonus.splash_add_range; // Damage modifiers from weapon type - sd->right_weapon.atkmods[0] = atkmods[0][sd->weapontype1]; - sd->right_weapon.atkmods[1] = atkmods[1][sd->weapontype1]; - sd->right_weapon.atkmods[2] = atkmods[2][sd->weapontype1]; - sd->left_weapon.atkmods[0] = atkmods[0][sd->weapontype2]; - sd->left_weapon.atkmods[1] = atkmods[1][sd->weapontype2]; - sd->left_weapon.atkmods[2] = atkmods[2][sd->weapontype2]; + sd->right_weapon.atkmods[0] = status->atkmods[0][sd->weapontype1]; + sd->right_weapon.atkmods[1] = status->atkmods[1][sd->weapontype1]; + sd->right_weapon.atkmods[2] = status->atkmods[2][sd->weapontype1]; + sd->left_weapon.atkmods[0] = status->atkmods[0][sd->weapontype2]; + sd->left_weapon.atkmods[1] = status->atkmods[1][sd->weapontype2]; + sd->left_weapon.atkmods[2] = status->atkmods[2][sd->weapontype2]; if( (pc_isriding(sd) || pc_isridingdragon(sd)) && (sd->status.weapon==W_1HSPEAR || sd->status.weapon==W_2HSPEAR)) @@ -2702,15 +2675,15 @@ int status_calc_pc_(struct map_session_data* sd, bool first) { // Job bonuses index = pc->class2idx(sd->status.class_); for(i=0;i<(int)sd->status.job_level && i<MAX_LEVEL;i++){ - if(!job_bonus[index][i]) + if(!status->job_bonus[index][i]) continue; - switch(job_bonus[index][i]) { - case 1: bstatus->str++; break; - case 2: bstatus->agi++; break; - case 3: bstatus->vit++; break; - case 4: bstatus->int_++; break; - case 5: bstatus->dex++; break; - case 6: bstatus->luk++; break; + switch(status->job_bonus[index][i]) { + case 1: bstatus->str++; break; + case 2: bstatus->agi++; break; + case 3: bstatus->vit++; break; + case 4: bstatus->int_++; break; + case 5: bstatus->dex++; break; + case 6: bstatus->luk++; break; } } @@ -2764,7 +2737,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first) { // Basic MaxHP value //We hold the standard Max HP here to make it faster to recalculate on vit changes. - sd->status.max_hp = status_base_pc_maxhp(sd,bstatus); + sd->status.max_hp = status->base_pc_maxhp(sd,bstatus); //This is done to handle underflows from negative Max HP bonuses i64 = sd->status.max_hp + (int)bstatus->max_hp; bstatus->max_hp = (unsigned int)cap_value(i64, 0, INT_MAX); @@ -2789,7 +2762,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first) { // ----- SP MAX CALCULATION ----- // Basic MaxSP value - sd->status.max_sp = status_base_pc_maxsp(sd,bstatus); + sd->status.max_sp = status->base_pc_maxsp(sd,bstatus); //This is done to handle underflows from negative Max SP bonuses i64 = sd->status.max_sp + (int)bstatus->max_sp; bstatus->max_sp = (unsigned int)cap_value(i64, 0, INT_MAX); @@ -2952,7 +2925,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first) { // Unlike other stats, ASPD rate modifiers from skills/SCs/items/etc are first all added together, then the final modifier is applied // Basic ASPD value - i = status_base_amotion_pc(sd,bstatus); + i = status->base_amotion_pc(sd,bstatus); bstatus->amotion = cap_value(i,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000); // Relative modifiers from passive skills @@ -3313,35 +3286,6 @@ int status_calc_npc_(struct npc_data *nd, bool first) { return 0; } -static unsigned short status_calc_str(struct block_list *,struct status_change *,int); -static unsigned short status_calc_agi(struct block_list *,struct status_change *,int); -static unsigned short status_calc_vit(struct block_list *,struct status_change *,int); -static unsigned short status_calc_int(struct block_list *,struct status_change *,int); -static unsigned short status_calc_dex(struct block_list *,struct status_change *,int); -static unsigned short status_calc_luk(struct block_list *,struct status_change *,int); -static unsigned short status_calc_watk(struct block_list *,struct status_change *,int,bool); -static unsigned short status_calc_matk(struct block_list *,struct status_change *,int,bool); -static signed short status_calc_hit(struct block_list *,struct status_change *,int,bool); -static signed short status_calc_critical(struct block_list *,struct status_change *,int,bool); -static signed short status_calc_flee(struct block_list *,struct status_change *,int,bool); -static signed short status_calc_flee2(struct block_list *,struct status_change *,int,bool); -static unsigned short status_calc_speed(struct block_list *,struct status_change *,int); -static short status_calc_aspd_rate(struct block_list *,struct status_change *,int); -static unsigned short status_calc_dmotion(struct block_list *bl, struct status_change *sc, int dmotion); -#ifdef RENEWAL_ASPD -static short status_calc_aspd(struct block_list *bl, struct status_change *sc, short flag); -#endif -static short status_calc_fix_aspd(struct block_list *bl, struct status_change *sc, int); -static unsigned int status_calc_maxhp(struct block_list *,struct status_change *, uint64); -static unsigned int status_calc_maxsp(struct block_list *,struct status_change *,unsigned int); -static unsigned char status_calc_element(struct block_list *bl, struct status_change *sc, int element); -static unsigned char status_calc_element_lv(struct block_list *bl, struct status_change *sc, int lv); -static unsigned short status_calc_mode(struct block_list *bl, struct status_change *sc, int mode); -#ifdef RENEWAL -static unsigned short status_calc_ematk(struct block_list *,struct status_change *,int); -#else -static unsigned short status_calc_batk(struct block_list *,struct status_change *,int,bool); -#endif //Calculates base regen values. void status_calc_regen(struct block_list *bl, struct status_data *st, struct regen_data *regen) { @@ -3543,14 +3487,14 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { } if(flag&SCB_STR) { - st->str = status_calc_str(bl, sc, bst->str); + st->str = status->calc_str(bl, sc, bst->str); flag|=SCB_BATK; if( bl->type&BL_HOM ) flag |= SCB_WATK; } if(flag&SCB_AGI) { - st->agi = status_calc_agi(bl, sc, bst->agi); + st->agi = status->calc_agi(bl, sc, bst->agi); flag|=SCB_FLEE #ifdef RENEWAL |SCB_DEF2 @@ -3561,7 +3505,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { } if(flag&SCB_VIT) { - st->vit = status_calc_vit(bl, sc, bst->vit); + st->vit = status->calc_vit(bl, sc, bst->vit); flag|=SCB_DEF2|SCB_MDEF2; if( bl->type&(BL_PC|BL_HOM|BL_MER|BL_ELEM) ) flag |= SCB_MAXHP; @@ -3570,7 +3514,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { } if(flag&SCB_INT) { - st->int_ = status_calc_int(bl, sc, bst->int_); + st->int_ = status->calc_int(bl, sc, bst->int_); flag|=SCB_MATK|SCB_MDEF2; if( bl->type&(BL_PC|BL_HOM|BL_MER|BL_ELEM) ) flag |= SCB_MAXSP; @@ -3579,7 +3523,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { } if(flag&SCB_DEX) { - st->dex = status_calc_dex(bl, sc, bst->dex); + st->dex = status->calc_dex(bl, sc, bst->dex); flag|=SCB_BATK|SCB_HIT #ifdef RENEWAL |SCB_MATK|SCB_MDEF2 @@ -3592,7 +3536,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { } if(flag&SCB_LUK) { - st->luk = status_calc_luk(bl, sc, bst->luk); + st->luk = status->calc_luk(bl, sc, bst->luk); flag|=SCB_BATK|SCB_CRI|SCB_FLEE2 #ifdef RENEWAL |SCB_MATK|SCB_HIT|SCB_FLEE @@ -3601,8 +3545,8 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { } if(flag&SCB_BATK && bst->batk) { - st->batk = status_base_atk(bl,st); - temp = bst->batk - status_base_atk(bl,bst); + st->batk = status->base_atk(bl,st); + temp = bst->batk - status->base_atk(bl,bst); if (temp) { temp += st->batk; st->batk = cap_value(temp, 0, USHRT_MAX); @@ -3611,18 +3555,18 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { } if(flag&SCB_WATK) { - st->rhw.atk = status_calc_watk(bl, sc, bst->rhw.atk, true); + st->rhw.atk = status->calc_watk(bl, sc, bst->rhw.atk, true); if (!sd) //Should not affect weapon refine bonus - st->rhw.atk2 = status_calc_watk(bl, sc, bst->rhw.atk2, true); + st->rhw.atk2 = status->calc_watk(bl, sc, bst->rhw.atk2, true); if(bst->lhw.atk) { if (sd) { sd->state.lr_flag = 1; - st->lhw.atk = status_calc_watk(bl, sc, bst->lhw.atk, true); + st->lhw.atk = status->calc_watk(bl, sc, bst->lhw.atk, true); sd->state.lr_flag = 0; } else { - st->lhw.atk = status_calc_watk(bl, sc, bst->lhw.atk, true); - st->lhw.atk2 = status_calc_watk(bl, sc, bst->lhw.atk2, true); + st->lhw.atk = status->calc_watk(bl, sc, bst->lhw.atk, true); + st->lhw.atk2 = status->calc_watk(bl, sc, bst->lhw.atk2, true); } } @@ -3640,9 +3584,9 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { && st->luk == bst->luk #endif ) - st->hit = status_calc_hit(bl, sc, bst->hit, true); + st->hit = status->calc_hit(bl, sc, bst->hit, true); else - st->hit = status_calc_hit(bl, sc, bst->hit + (st->dex - bst->dex) + st->hit = status->calc_hit(bl, sc, bst->hit + (st->dex - bst->dex) #ifdef RENEWAL + (st->luk/3 - bst->luk/3) #endif @@ -3655,9 +3599,9 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { && st->luk == bst->luk #endif ) - st->flee = status_calc_flee(bl, sc, bst->flee, true); + st->flee = status->calc_flee(bl, sc, bst->flee, true); else - st->flee = status_calc_flee(bl, sc, bst->flee +(st->agi - bst->agi) + st->flee = status->calc_flee(bl, sc, bst->flee +(st->agi - bst->agi) #ifdef RENEWAL + (st->luk/5 - bst->luk/5) #endif @@ -3714,7 +3658,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { if(flag&SCB_SPEED) { struct unit_data *ud = unit->bl2ud(bl); - st->speed = status_calc_speed(bl, sc, bst->speed); + st->speed = status->calc_speed(bl, sc, bst->speed); //Re-walk to adjust speed (we do not check if walktimer != INVALID_TIMER //because if you step on something while walking, the moment this @@ -3733,9 +3677,9 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { if(flag&SCB_CRI && bst->cri) { if (st->luk == bst->luk) - st->cri = status_calc_critical(bl, sc, bst->cri, true); + st->cri = status->calc_critical(bl, sc, bst->cri, true); else - st->cri = status_calc_critical(bl, sc, bst->cri + 3*(st->luk - bst->luk), true); + st->cri = status->calc_critical(bl, sc, bst->cri + 3*(st->luk - bst->luk), true); /** * after status_calc_critical so the bonus is applied despite if you have or not a sc bugreport:5240 **/ @@ -3746,9 +3690,9 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { if(flag&SCB_FLEE2 && bst->flee2) { if (st->luk == bst->luk) - st->flee2 = status_calc_flee2(bl, sc, bst->flee2, true); + st->flee2 = status->calc_flee2(bl, sc, bst->flee2, true); else - st->flee2 = status_calc_flee2(bl, sc, bst->flee2 +(st->luk - bst->luk), true); + st->flee2 = status->calc_flee2(bl, sc, bst->flee2 +(st->luk - bst->luk), true); } if(flag&SCB_ATK_ELE) { @@ -3759,12 +3703,12 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { } if(flag&SCB_DEF_ELE) { - st->def_ele = status_calc_element(bl, sc, bst->def_ele); - st->ele_lv = status_calc_element_lv(bl, sc, bst->ele_lv); + st->def_ele = status->calc_element(bl, sc, bst->def_ele); + st->ele_lv = status->calc_element_lv(bl, sc, bst->ele_lv); } if(flag&SCB_MODE) { - st->mode = status_calc_mode(bl, sc, bst->mode); + st->mode = status->calc_mode(bl, sc, bst->mode); //Since mode changed, reset their state. if (!(st->mode&MD_CANATTACK)) unit->stop_attack(bl); @@ -3779,15 +3723,15 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { if(flag&SCB_MAXHP) { if( bl->type&BL_PC ) { - st->max_hp = status_base_pc_maxhp(sd,st); + st->max_hp = status->base_pc_maxhp(sd,st); st->max_hp += bst->max_hp - sd->status.max_hp; - st->max_hp = status_calc_maxhp(bl, sc, st->max_hp); + st->max_hp = status->calc_maxhp(bl, sc, st->max_hp); if( st->max_hp > (unsigned int)battle_config.max_hp ) st->max_hp = (unsigned int)battle_config.max_hp; } else { - st->max_hp = status_calc_maxhp(bl, sc, bst->max_hp); + st->max_hp = status->calc_maxhp(bl, sc, bst->max_hp); } if( st->hp > st->max_hp ) { @@ -3799,15 +3743,15 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { if(flag&SCB_MAXSP) { if( bl->type&BL_PC ) { - st->max_sp = status_base_pc_maxsp(sd,st); + st->max_sp = status->base_pc_maxsp(sd,st); st->max_sp += bst->max_sp - sd->status.max_sp; - st->max_sp = status_calc_maxsp(&sd->bl, &sd->sc, st->max_sp); + st->max_sp = status->calc_maxsp(&sd->bl, &sd->sc, st->max_sp); if( st->max_sp > (unsigned int)battle_config.max_sp ) st->max_sp = (unsigned int)battle_config.max_sp; } else { - st->max_sp = status_calc_maxsp(bl, sc, bst->max_sp); + st->max_sp = status->calc_maxsp(bl, sc, bst->max_sp); } if( st->sp > st->max_sp ) { @@ -3823,46 +3767,46 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { if(flag&SCB_ASPD) { int amotion; if( bl->type&BL_PC ) { - amotion = status_base_amotion_pc(sd,st); + amotion = status->base_amotion_pc(sd,st); #ifndef RENEWAL_ASPD - st->aspd_rate = status_calc_aspd_rate(bl, sc, bst->aspd_rate); + st->aspd_rate = status->calc_aspd_rate(bl, sc, bst->aspd_rate); if(st->aspd_rate != 1000) amotion = amotion*st->aspd_rate/1000; #else // aspd = baseaspd + floor(sqrt((agi^2/2) + (dex^2/5))/4 + (potskillbonus*agi/200)) - amotion -= (int)(sqrt( (pow(st->agi, 2) / 2) + (pow(st->dex, 2) / 5) ) / 4 + ((float)status_calc_aspd(bl, sc, 1) * st->agi / 200)) * 10; + amotion -= (int)(sqrt( (pow(st->agi, 2) / 2) + (pow(st->dex, 2) / 5) ) / 4 + ((float)status->calc_aspd(bl, sc, 1) * st->agi / 200)) * 10; - if( (status_calc_aspd(bl, sc, 2) + st->aspd_rate2) != 0 ) // RE ASPD percertage modifier + if( (status->calc_aspd(bl, sc, 2) + st->aspd_rate2) != 0 ) // RE ASPD percertage modifier amotion -= (( amotion - ((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd) ) - * (status_calc_aspd(bl, sc, 2) + st->aspd_rate2) / 10 + 5) / 10; + * (status->calc_aspd(bl, sc, 2) + st->aspd_rate2) / 10 + 5) / 10; if(st->aspd_rate != 1000) // absolute percentage modifier amotion = ( 200 - (200-amotion/10) * st->aspd_rate / 1000 ) * 10; #endif - amotion = status_calc_fix_aspd(bl, sc, amotion); + amotion = status->calc_fix_aspd(bl, sc, amotion); st->amotion = cap_value(amotion,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000); st->adelay = 2*st->amotion; } else if( bl->type&BL_HOM ) { amotion = (1000 - 4*st->agi - st->dex) * ((TBL_HOM*)bl)->homunculusDB->baseASPD/1000; - st->aspd_rate = status_calc_aspd_rate(bl, sc, bst->aspd_rate); + st->aspd_rate = status->calc_aspd_rate(bl, sc, bst->aspd_rate); if(st->aspd_rate != 1000) amotion = amotion*st->aspd_rate/1000; - amotion = status_calc_fix_aspd(bl, sc, amotion); + amotion = status->calc_fix_aspd(bl, sc, amotion); st->amotion = cap_value(amotion,battle_config.max_aspd,2000); st->adelay = st->amotion; } else { // mercenary and mobs amotion = bst->amotion; - st->aspd_rate = status_calc_aspd_rate(bl, sc, bst->aspd_rate); + st->aspd_rate = status->calc_aspd_rate(bl, sc, bst->aspd_rate); if(st->aspd_rate != 1000) amotion = amotion*st->aspd_rate/1000; - amotion = status_calc_fix_aspd(bl, sc, amotion); + amotion = status->calc_fix_aspd(bl, sc, amotion); st->amotion = cap_value(amotion, battle_config.monster_max_aspd, 2000); temp = bst->adelay*st->aspd_rate/1000; @@ -3874,21 +3818,21 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { int dmotion; if( bl->type&BL_PC ) { if (bst->agi == st->agi) - st->dmotion = status_calc_dmotion(bl, sc, bst->dmotion); + st->dmotion = status->calc_dmotion(bl, sc, bst->dmotion); else { dmotion = 800-st->agi*4; st->dmotion = cap_value(dmotion, 400, 800); if(battle_config.pc_damage_delay_rate != 100) st->dmotion = st->dmotion*battle_config.pc_damage_delay_rate/100; //It's safe to ignore bst->dmotion since no bonus affects it. - st->dmotion = status_calc_dmotion(bl, sc, st->dmotion); + st->dmotion = status->calc_dmotion(bl, sc, st->dmotion); } } else if( bl->type&BL_HOM ) { dmotion = 800-st->agi*4; st->dmotion = cap_value(dmotion, 400, 800); - st->dmotion = status_calc_dmotion(bl, sc, bst->dmotion); + st->dmotion = status->calc_dmotion(bl, sc, bst->dmotion); } else { // mercenary and mobs - st->dmotion = status_calc_dmotion(bl, sc, bst->dmotion); + st->dmotion = status->calc_dmotion(bl, sc, bst->dmotion); } } @@ -3923,7 +3867,7 @@ void status_calc_bl_(struct block_list *bl, enum scb_flag flag, bool first) { case BL_HOM: status->calc_homunculus_(BL_CAST(BL_HOM,bl), first); break; case BL_MER: status->calc_mercenary_(BL_CAST(BL_MER,bl), first); break; case BL_ELEM: status->calc_elemental_(BL_CAST(BL_ELEM,bl), first); break; - case BL_NPC: status_calc_npc_(BL_CAST(BL_NPC,bl), first); break; + case BL_NPC: status->calc_npc_(BL_CAST(BL_NPC,bl), first); break; } } @@ -3933,7 +3877,7 @@ void status_calc_bl_(struct block_list *bl, enum scb_flag flag, bool first) { if( first && bl->type == BL_MOB ) return; // assume there will be no statuses active - status_calc_bl_main(bl, flag); + status->calc_bl_main(bl, flag); if( first && bl->type == BL_HOM ) return; // client update handled by caller @@ -4076,7 +4020,7 @@ void status_calc_bl_(struct block_list *bl, enum scb_flag flag, bool first) { /*========================================== * Apply shared stat mods from status changes [DracoRPG] *------------------------------------------*/ -static unsigned short status_calc_str(struct block_list *bl, struct status_change *sc, int str) +unsigned short status_calc_str(struct block_list *bl, struct status_change *sc, int str) { if(!sc || !sc->count) return cap_value(str,0,USHRT_MAX); @@ -4133,7 +4077,7 @@ static unsigned short status_calc_str(struct block_list *bl, struct status_chang return (unsigned short)cap_value(str,0,USHRT_MAX); } -static unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc, int agi) +unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc, int agi) { if(!sc || !sc->count) return cap_value(agi,0,USHRT_MAX); @@ -4191,7 +4135,7 @@ static unsigned short status_calc_agi(struct block_list *bl, struct status_chang return (unsigned short)cap_value(agi,0,USHRT_MAX); } -static unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc, int vit) +unsigned short status_calc_vit(struct block_list *bl, struct status_change *sc, int vit) { if(!sc || !sc->count) return cap_value(vit,0,USHRT_MAX); @@ -4239,7 +4183,7 @@ static unsigned short status_calc_vit(struct block_list *bl, struct status_chang return (unsigned short)cap_value(vit,0,USHRT_MAX); } -static unsigned short status_calc_int(struct block_list *bl, struct status_change *sc, int int_) +unsigned short status_calc_int(struct block_list *bl, struct status_change *sc, int int_) { if(!sc || !sc->count) return cap_value(int_,0,USHRT_MAX); @@ -4277,7 +4221,7 @@ static unsigned short status_calc_int(struct block_list *bl, struct status_chang if(sc->data[SC_MARIONETTE]) int_ += ((sc->data[SC_MARIONETTE]->val4)>>16)&0xFF; if(sc->data[SC_MANDRAGORA]) - int_ -= 5 + 5 * sc->data[SC_MANDRAGORA]->val1; + int_ -= 4 * sc->data[SC_MANDRAGORA]->val1; if(sc->data[SC_COCKTAIL_WARG_BLOOD]) int_ += sc->data[SC_COCKTAIL_WARG_BLOOD]->val1; if(sc->data[SC_INSPIRATION]) @@ -4297,7 +4241,7 @@ static unsigned short status_calc_int(struct block_list *bl, struct status_chang return (unsigned short)cap_value(int_,0,USHRT_MAX); } -static unsigned short status_calc_dex(struct block_list *bl, struct status_change *sc, int dex) +unsigned short status_calc_dex(struct block_list *bl, struct status_change *sc, int dex) { if(!sc || !sc->count) return cap_value(dex,0,USHRT_MAX); @@ -4357,7 +4301,7 @@ static unsigned short status_calc_dex(struct block_list *bl, struct status_chang return (unsigned short)cap_value(dex,0,USHRT_MAX); } -static unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc, int luk) +unsigned short status_calc_luk(struct block_list *bl, struct status_change *sc, int luk) { if(!sc || !sc->count) return cap_value(luk,0,USHRT_MAX); @@ -4406,11 +4350,7 @@ static unsigned short status_calc_luk(struct block_list *bl, struct status_chang return (unsigned short)cap_value(luk,0,USHRT_MAX); } -#ifdef RENEWAL unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc, int batk, bool viewable) -#else -static unsigned short status_calc_batk(struct block_list *bl, struct status_change *sc, int batk, bool viewable) -#endif { if(!sc || !sc->count) return cap_value(batk,0,USHRT_MAX); @@ -4490,7 +4430,7 @@ static unsigned short status_calc_batk(struct block_list *bl, struct status_chan return (unsigned short)cap_value(batk,0,USHRT_MAX); } -static unsigned short status_calc_watk(struct block_list *bl, struct status_change *sc, int watk, bool viewable) +unsigned short status_calc_watk(struct block_list *bl, struct status_change *sc, int watk, bool viewable) { if(!sc || !sc->count) return cap_value(watk,0,USHRT_MAX); @@ -4579,9 +4519,8 @@ static unsigned short status_calc_watk(struct block_list *bl, struct status_chan return (unsigned short)cap_value(watk,0,USHRT_MAX); } +unsigned short status_calc_ematk(struct block_list *bl, struct status_change *sc, int matk) { #ifdef RENEWAL -static unsigned short status_calc_ematk(struct block_list *bl, struct status_change *sc, int matk) -{ if (!sc || !sc->count) return cap_value(matk,0,USHRT_MAX); @@ -4604,9 +4543,11 @@ static unsigned short status_calc_ematk(struct block_list *bl, struct status_cha if(sc->data[SC_IZAYOI]) matk += 25 * sc->data[SC_IZAYOI]->val1; return (unsigned short)cap_value(matk,0,USHRT_MAX); -} +#else + return 0; #endif -static unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, int matk, bool viewable) +} +unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, int matk, bool viewable) { if(!sc || !sc->count) return cap_value(matk,0,USHRT_MAX); @@ -4655,7 +4596,7 @@ static unsigned short status_calc_matk(struct block_list *bl, struct status_chan return (unsigned short)cap_value(matk,0,USHRT_MAX); } -static signed short status_calc_critical(struct block_list *bl, struct status_change *sc, int critical, bool viewable) { +signed short status_calc_critical(struct block_list *bl, struct status_change *sc, int critical, bool viewable) { if(!sc || !sc->count) return cap_value(critical,10,SHRT_MAX); @@ -4690,7 +4631,7 @@ static signed short status_calc_critical(struct block_list *bl, struct status_ch return (short)cap_value(critical,10,SHRT_MAX); } -static signed short status_calc_hit(struct block_list *bl, struct status_change *sc, int hit, bool viewable) +signed short status_calc_hit(struct block_list *bl, struct status_change *sc, int hit, bool viewable) { if(!sc || !sc->count) @@ -4736,11 +4677,11 @@ static signed short status_calc_hit(struct block_list *bl, struct status_change return (short)cap_value(hit,1,SHRT_MAX); } -static signed short status_calc_flee(struct block_list *bl, struct status_change *sc, int flee, bool viewable) { +signed short status_calc_flee(struct block_list *bl, struct status_change *sc, int flee, bool viewable) { if( bl->type == BL_PC ) { if( map_flag_gvg2(bl->m) ) flee -= flee * battle_config.gvg_flee_penalty/100; - else if( maplist[bl->m].flag.battleground ) + else if( map->list[bl->m].flag.battleground ) flee -= flee * battle_config.bg_flee_penalty/100; } @@ -4821,7 +4762,7 @@ static signed short status_calc_flee(struct block_list *bl, struct status_change return (short)cap_value(flee,1,SHRT_MAX); } -static signed short status_calc_flee2(struct block_list *bl, struct status_change *sc, int flee2, bool viewable) +signed short status_calc_flee2(struct block_list *bl, struct status_change *sc, int flee2, bool viewable) { if(!sc || !sc->count) return cap_value(flee2,10,SHRT_MAX); @@ -5082,7 +5023,7 @@ signed short status_calc_mdef2(struct block_list *bl, struct status_change *sc, #endif } -static unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc, int speed) +unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc, int speed) { TBL_PC* sd = BL_CAST(BL_PC, bl); int speed_rate; @@ -5267,11 +5208,10 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha return (short)cap_value(speed,10,USHRT_MAX); } -#ifdef RENEWAL_ASPD // flag&1 - fixed value [malufett] // flag&2 - percentage value -static short status_calc_aspd(struct block_list *bl, struct status_change *sc, short flag) -{ +short status_calc_aspd(struct block_list *bl, struct status_change *sc, short flag) { +#ifdef RENEWAL_ASPD int i, pots = 0, skills1 = 0, skills2 = 0; if(!sc || !sc->count) @@ -5383,10 +5323,12 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, s } } return ( flag&1? (skills1 + pots) : skills2 ); -} +#else + return 0; #endif +} -static short status_calc_fix_aspd(struct block_list *bl, struct status_change *sc, int aspd) { +short status_calc_fix_aspd(struct block_list *bl, struct status_change *sc, int aspd) { if (!sc || !sc->count) return cap_value(aspd, 0, 2000); @@ -5406,7 +5348,7 @@ static short status_calc_fix_aspd(struct block_list *bl, struct status_change *s /// Calculates an object's ASPD modifier (alters the base amotion value). /// Note that the scale of aspd_rate is 1000 = 100%. -static short status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int aspd_rate) +short status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int aspd_rate) { int i; @@ -5543,8 +5485,8 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change * return (short)cap_value(aspd_rate,0,SHRT_MAX); } -static unsigned short status_calc_dmotion(struct block_list *bl, struct status_change *sc, int dmotion) { - if( !sc || !sc->count || map_flag_gvg2(bl->m) || maplist[bl->m].flag.battleground ) +unsigned short status_calc_dmotion(struct block_list *bl, struct status_change *sc, int dmotion) { + if( !sc || !sc->count || map_flag_gvg2(bl->m) || map->list[bl->m].flag.battleground ) return cap_value(dmotion,0,USHRT_MAX); /** * It has been confirmed on official servers that MvP mobs have no dmotion even without endure @@ -5557,7 +5499,7 @@ static unsigned short status_calc_dmotion(struct block_list *bl, struct status_c return (unsigned short)cap_value(dmotion,0,USHRT_MAX); } -static unsigned int status_calc_maxhp(struct block_list *bl, struct status_change *sc, uint64 maxhp) +unsigned int status_calc_maxhp(struct block_list *bl, struct status_change *sc, uint64 maxhp) { if(!sc || !sc->count) return (unsigned int)cap_value(maxhp,1,UINT_MAX); @@ -5618,7 +5560,7 @@ static unsigned int status_calc_maxhp(struct block_list *bl, struct status_chang return (unsigned int)cap_value(maxhp,1,UINT_MAX); } -static unsigned int status_calc_maxsp(struct block_list *bl, struct status_change *sc, unsigned int maxsp) +unsigned int status_calc_maxsp(struct block_list *bl, struct status_change *sc, unsigned int maxsp) { if(!sc || !sc->count) return cap_value(maxsp,1,UINT_MAX); @@ -5641,7 +5583,7 @@ static unsigned int status_calc_maxsp(struct block_list *bl, struct status_chang return cap_value(maxsp,1,UINT_MAX); } -static unsigned char status_calc_element(struct block_list *bl, struct status_change *sc, int element) +unsigned char status_calc_element(struct block_list *bl, struct status_change *sc, int element) { if(!sc || !sc->count) return element; @@ -5662,7 +5604,7 @@ static unsigned char status_calc_element(struct block_list *bl, struct status_ch return (unsigned char)cap_value(element,0,UCHAR_MAX); } -static unsigned char status_calc_element_lv(struct block_list *bl, struct status_change *sc, int lv) +unsigned char status_calc_element_lv(struct block_list *bl, struct status_change *sc, int lv) { if(!sc || !sc->count) return lv; @@ -5719,7 +5661,7 @@ unsigned char status_calc_attack_element(struct block_list *bl, struct status_ch return (unsigned char)cap_value(element,0,UCHAR_MAX); } -static unsigned short status_calc_mode(struct block_list *bl, struct status_change *sc, int mode) +unsigned short status_calc_mode(struct block_list *bl, struct status_change *sc, int mode) { if(!sc || !sc->count) return mode; @@ -5737,11 +5679,11 @@ static unsigned short status_calc_mode(struct block_list *bl, struct status_chan const char* status_get_name(struct block_list *bl) { nullpo_ret(bl); switch (bl->type) { - case BL_PC: return ((TBL_PC *)bl)->fakename[0] != '\0' ? ((TBL_PC*)bl)->fakename : ((TBL_PC*)bl)->status.name; - case BL_MOB: return ((TBL_MOB*)bl)->name; - case BL_PET: return ((TBL_PET*)bl)->pet.name; - case BL_HOM: return ((TBL_HOM*)bl)->homunculus.name; - case BL_NPC: return ((TBL_NPC*)bl)->name; + case BL_PC: return ((TBL_PC *)bl)->fakename[0] != '\0' ? ((TBL_PC*)bl)->fakename : ((TBL_PC*)bl)->status.name; + case BL_MOB: return ((TBL_MOB*)bl)->name; + case BL_PET: return ((TBL_PET*)bl)->pet.name; + case BL_HOM: return ((TBL_HOM*)bl)->homunculus.name; + case BL_NPC: return ((TBL_NPC*)bl)->name; } return "Unknown"; } @@ -5755,13 +5697,13 @@ const char* status_get_name(struct block_list *bl) { int status_get_class(struct block_list *bl) { nullpo_ret(bl); switch( bl->type ) { - case BL_PC: return ((TBL_PC*)bl)->status.class_; - case BL_MOB: return ((TBL_MOB*)bl)->vd->class_; //Class used on all code should be the view class of the mob. - case BL_PET: return ((TBL_PET*)bl)->pet.class_; - case BL_HOM: return ((TBL_HOM*)bl)->homunculus.class_; - case BL_MER: return ((TBL_MER*)bl)->mercenary.class_; - case BL_NPC: return ((TBL_NPC*)bl)->class_; - case BL_ELEM: return ((TBL_ELEM*)bl)->elemental.class_; + case BL_PC: return ((TBL_PC*)bl)->status.class_; + case BL_MOB: return ((TBL_MOB*)bl)->vd->class_; //Class used on all code should be the view class of the mob. + case BL_PET: return ((TBL_PET*)bl)->pet.class_; + case BL_HOM: return ((TBL_HOM*)bl)->homunculus.class_; + case BL_MER: return ((TBL_MER*)bl)->mercenary.class_; + case BL_NPC: return ((TBL_NPC*)bl)->class_; + case BL_ELEM: return ((TBL_ELEM*)bl)->elemental.class_; } return 0; } @@ -5774,13 +5716,13 @@ int status_get_class(struct block_list *bl) { int status_get_lv(struct block_list *bl) { nullpo_ret(bl); switch (bl->type) { - case BL_PC: return ((TBL_PC*)bl)->status.base_level; - case BL_MOB: return ((TBL_MOB*)bl)->level; - case BL_PET: return ((TBL_PET*)bl)->pet.level; - case BL_HOM: return ((TBL_HOM*)bl)->homunculus.level; - case BL_MER: return ((TBL_MER*)bl)->db->lv; - case BL_ELEM: return ((TBL_ELEM*)bl)->db->lv; - case BL_NPC: return ((TBL_NPC*)bl)->level; + case BL_PC: return ((TBL_PC*)bl)->status.base_level; + case BL_MOB: return ((TBL_MOB*)bl)->level; + case BL_PET: return ((TBL_PET*)bl)->pet.level; + case BL_HOM: return ((TBL_HOM*)bl)->homunculus.level; + case BL_MER: return ((TBL_MER*)bl)->db->lv; + case BL_ELEM: return ((TBL_ELEM*)bl)->db->lv; + case BL_NPC: return ((TBL_NPC*)bl)->level; } return 1; } @@ -5789,29 +5731,29 @@ struct regen_data *status_get_regen_data(struct block_list *bl) { nullpo_retr(NULL, bl); switch (bl->type) { - case BL_PC: return &((TBL_PC*)bl)->regen; - case BL_HOM: return &((TBL_HOM*)bl)->regen; - case BL_MER: return &((TBL_MER*)bl)->regen; - case BL_ELEM: return &((TBL_ELEM*)bl)->regen; - default: - return NULL; + case BL_PC: return &((TBL_PC*)bl)->regen; + case BL_HOM: return &((TBL_HOM*)bl)->regen; + case BL_MER: return &((TBL_MER*)bl)->regen; + case BL_ELEM: return &((TBL_ELEM*)bl)->regen; + default: + return NULL; } } struct status_data *status_get_status_data(struct block_list *bl) { - nullpo_retr(&dummy_status, bl); + nullpo_retr(&status->dummy, bl); switch (bl->type) { - case BL_PC: return &((TBL_PC*)bl)->battle_status; - case BL_MOB: return &((TBL_MOB*)bl)->status; - case BL_PET: return &((TBL_PET*)bl)->status; - case BL_HOM: return &((TBL_HOM*)bl)->battle_status; - case BL_MER: return &((TBL_MER*)bl)->battle_status; - case BL_ELEM: return &((TBL_ELEM*)bl)->battle_status; - case BL_NPC: return ((mob->db_checkid(((TBL_NPC*)bl)->class_) == 0) ? &((TBL_NPC*)bl)->status : &dummy_status); - default: - return &dummy_status; + case BL_PC: return &((TBL_PC*)bl)->battle_status; + case BL_MOB: return &((TBL_MOB*)bl)->status; + case BL_PET: return &((TBL_PET*)bl)->status; + case BL_HOM: return &((TBL_HOM*)bl)->battle_status; + case BL_MER: return &((TBL_MER*)bl)->battle_status; + case BL_ELEM: return &((TBL_ELEM*)bl)->battle_status; + case BL_NPC: return ((mob->db_checkid(((TBL_NPC*)bl)->class_) == 0) ? &((TBL_NPC*)bl)->status : &status->dummy); + default: + return &status->dummy; } } @@ -5819,15 +5761,15 @@ struct status_data *status_get_base_status(struct block_list *bl) { nullpo_retr(NULL, bl); switch (bl->type) { - case BL_PC: return &((TBL_PC*)bl)->base_status; - case BL_MOB: return ((TBL_MOB*)bl)->base_status ? ((TBL_MOB*)bl)->base_status : &((TBL_MOB*)bl)->db->status; - case BL_PET: return &((TBL_PET*)bl)->db->status; - case BL_HOM: return &((TBL_HOM*)bl)->base_status; - case BL_MER: return &((TBL_MER*)bl)->base_status; - case BL_ELEM: return &((TBL_ELEM*)bl)->base_status; - case BL_NPC: return ((mob->db_checkid(((TBL_NPC*)bl)->class_) == 0) ? &((TBL_NPC*)bl)->status : NULL); - default: - return NULL; + case BL_PC: return &((TBL_PC*)bl)->base_status; + case BL_MOB: return ((TBL_MOB*)bl)->base_status ? ((TBL_MOB*)bl)->base_status : &((TBL_MOB*)bl)->db->status; + case BL_PET: return &((TBL_PET*)bl)->db->status; + case BL_HOM: return &((TBL_HOM*)bl)->base_status; + case BL_MER: return &((TBL_MER*)bl)->base_status; + case BL_ELEM: return &((TBL_ELEM*)bl)->base_status; + case BL_NPC: return ((mob->db_checkid(((TBL_NPC*)bl)->class_) == 0) ? &((TBL_NPC*)bl)->status : NULL); + default: + return NULL; } } defType status_get_def(struct block_list *bl) { @@ -6004,13 +5946,13 @@ struct view_data* status_get_viewdata(struct block_list *bl) { nullpo_retr(NULL, bl); switch (bl->type) { - case BL_PC: return &((TBL_PC*)bl)->vd; - case BL_MOB: return ((TBL_MOB*)bl)->vd; - case BL_PET: return &((TBL_PET*)bl)->vd; - case BL_NPC: return ((TBL_NPC*)bl)->vd; - case BL_HOM: return ((TBL_HOM*)bl)->vd; - case BL_MER: return ((TBL_MER*)bl)->vd; - case BL_ELEM: return ((TBL_ELEM*)bl)->vd; + case BL_PC: return &((TBL_PC*)bl)->vd; + case BL_MOB: return ((TBL_MOB*)bl)->vd; + case BL_PET: return &((TBL_PET*)bl)->vd; + case BL_NPC: return ((TBL_NPC*)bl)->vd; + case BL_HOM: return ((TBL_HOM*)bl)->vd; + case BL_MER: return ((TBL_MER*)bl)->vd; + case BL_ELEM: return ((TBL_ELEM*)bl)->vd; } return NULL; } @@ -6039,24 +5981,24 @@ void status_set_viewdata(struct block_list *bl, int class_) if (pcdb_checkid(class_)) { if (sd->sc.option&OPTION_RIDING) { switch (class_) { //Adapt class to a Mounted one. - case JOB_KNIGHT: - class_ = JOB_KNIGHT2; - break; - case JOB_CRUSADER: - class_ = JOB_CRUSADER2; - break; - case JOB_LORD_KNIGHT: - class_ = JOB_LORD_KNIGHT2; - break; - case JOB_PALADIN: - class_ = JOB_PALADIN2; - break; - case JOB_BABY_KNIGHT: - class_ = JOB_BABY_KNIGHT2; - break; - case JOB_BABY_CRUSADER: - class_ = JOB_BABY_CRUSADER2; - break; + case JOB_KNIGHT: + class_ = JOB_KNIGHT2; + break; + case JOB_CRUSADER: + class_ = JOB_CRUSADER2; + break; + case JOB_LORD_KNIGHT: + class_ = JOB_LORD_KNIGHT2; + break; + case JOB_PALADIN: + class_ = JOB_PALADIN2; + break; + case JOB_BABY_KNIGHT: + class_ = JOB_BABY_KNIGHT2; + break; + case JOB_BABY_CRUSADER: + class_ = JOB_BABY_CRUSADER2; + break; } } sd->vd.class_ = class_; @@ -6328,9 +6270,6 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti tick -= 1000 * ((status->get_lv(bl) / 10) + ((sd?sd->status.job_level:0) / 5)); tick = max(tick,10000); break; - case SC_MANDRAGORA: - sc_def = (st->vit+st->luk)/5; - break; case SC_KYOUGAKU: tick -= 1000 * status_get_int(bl) / 20; break; @@ -6458,7 +6397,7 @@ void status_display_add(struct map_session_data *sd, enum sc_type type, int dval return; } - entry = ers_alloc(pc_sc_display_ers, struct sc_display_entry); + entry = ers_alloc(pc->sc_display_ers, struct sc_display_entry); entry->type = type; entry->val1 = dval1; @@ -6479,7 +6418,7 @@ void status_display_remove(struct map_session_data *sd, enum sc_type type) { if( i != sd->sc_display_count ) { int cursor; - ers_free(pc_sc_display_ers, sd->sc_display[i]); + ers_free(pc->sc_display_ers, sd->sc_display[i]); sd->sc_display[i] = NULL; /* the all-mighty compact-o-matic */ @@ -7277,7 +7216,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val } vd = status->get_viewdata(bl); - calc_flag = StatusChangeFlagTable[type]; + calc_flag = status->ChangeFlagTable[type]; if(!(flag&4)) { //&4 - Do not parse val settings when loading SCs switch(type) { case SC_DEC_AGI: @@ -7286,7 +7225,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val break; case SC_ENDURE: val2 = 7; // Hit-count [Celest] - if( !(flag&1) && (bl->type&(BL_PC|BL_MER)) && !map_flag_gvg(bl->m) && !maplist[bl->m].flag.battleground && !val4 ) { + if( !(flag&1) && (bl->type&(BL_PC|BL_MER)) && !map_flag_gvg(bl->m) && !map->list[bl->m].flag.battleground && !val4 ) { struct map_session_data *tsd; if( sd ) { int i; @@ -7581,7 +7520,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val if (sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_ROGUE) val3 -= 40; val4 = 10+val1*2; //SP cost. - if (map_flag_gvg(bl->m) || maplist[bl->m].flag.battleground) val4 *= 5; + if (map_flag_gvg(bl->m) || map->list[bl->m].flag.battleground) val4 *= 5; break; case SC_CLOAKING: if (!sd) //Monsters should be able to walk with no penalties. [Skotlex] @@ -7779,7 +7718,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val // Inherits Status From Source const enum sc_type types[] = { SC_AUTOGUARD, SC_DEFENDER, SC_REFLECTSHIELD, SC_ENDURE }; enum sc_type type2; - int i = (map_flag_gvg(bl->m) || maplist[bl->m].flag.battleground)?2:3; + int i = (map_flag_gvg(bl->m) || map->list[bl->m].flag.battleground)?2:3; while( i >= 0 ) { type2 = types[i]; if( d_sc->data[type2] ) @@ -8732,7 +8671,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val val_flag |= 1; break; default: - if( calc_flag == SCB_NONE && StatusSkillChangeTable[type] == 0 && StatusIconChangeTable[type] == 0 ) + if( calc_flag == SCB_NONE && status->SkillChangeTable[type] == 0 && status->IconChangeTable[type] == 0 ) { //Status change with no calc, no icon, and no skill associated...? ShowError("UnknownStatusChange [%d]\n", type); return 0; @@ -8768,7 +8707,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val } /* [Ind/Hercules] */ - if( sd && StatusDisplayType[type] ) { + if( sd && status->DisplayType[type] ) { int dval1 = 0, dval2 = 0, dval3 = 0; switch( type ) { case SC_ALL_RIDING: @@ -8778,7 +8717,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val dval1 = val1; break; } - status_display_add(sd,type,dval1,dval2,dval3); + status->display_add(sd,type,dval1,dval2,dval3); } //Those that make you stop attacking/walking.... @@ -9036,8 +8975,8 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val calc_flag&=~SCB_DYE; } - if( !(flag&4 && StatusDisplayType[type]) ) - clif->status_change(bl,StatusIconChangeTable[type],1,tick,(val_flag&1)?val1:1,(val_flag&2)?val2:0,(val_flag&4)?val3:0); + if( !(flag&4 && status->DisplayType[type]) ) + clif->status_change(bl,status->IconChangeTable[type],1,tick,(val_flag&1)?val1:1,(val_flag&2)?val2:0,(val_flag&4)?val3:0); /** * used as temporary storage for scs with interval ticks, so that the actual duration is sent to the client first. @@ -9051,7 +8990,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val timer->delete(sce->timer, status->change_timer); } else {// new sc ++(sc->count); - sce = sc->data[type] = ers_alloc(sc_data_ers, struct status_change_entry); + sce = sc->data[type] = ers_alloc(status->data_ers, struct status_change_entry); } sce->val1 = val1; sce->val2 = val2; @@ -9204,7 +9143,7 @@ int status_change_clear(struct block_list* bl, int type) { (sc->count)--; if (sc->data[i]->timer != INVALID_TIMER) timer->delete(sc->data[i]->timer, status->change_timer); - ers_free(sc_data_ers, sc->data[i]); + ers_free(status->data_ers, sc->data[i]); sc->data[i] = NULL; } } @@ -9278,12 +9217,12 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const sc->data[type] = NULL; - if( sd && StatusDisplayType[type] ) { - status_display_remove(sd,type); + if( sd && status->DisplayType[type] ) { + status->display_remove(sd,type); } vd = status->get_viewdata(bl); - calc_flag = StatusChangeFlagTable[type]; + calc_flag = status->ChangeFlagTable[type]; switch(type) { case SC_GRANITIC_ARMOR: { @@ -9886,7 +9825,7 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const } //On Aegis, when turning off a status change, first goes the sc packet, then the option packet. - clif->sc_end(bl,bl->id,AREA,StatusIconChangeTable[type]); + clif->sc_end(bl,bl->id,AREA,status->IconChangeTable[type]); if( opt_flag&8 ) //bugreport:681 clif->changeoption2(bl); @@ -9910,7 +9849,7 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const if(opt_flag&2 && sd && map->getcell(bl->m,bl->x,bl->y,CELL_CHKNPC)) npc->touch_areanpc(sd,bl->m,bl->x,bl->y); //Trigger on-touch event. - ers_free(sc_data_ers, sce); + ers_free(status->data_ers, sce); return 1; } @@ -10059,7 +9998,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data) { sc->opt1 = OPT1_STONE; clif->changeoption(bl); sc_timer_next(1000+tick, status->change_timer, bl->id, data ); - status_calc_bl(bl, StatusChangeFlagTable[type]); + status_calc_bl(bl, status->ChangeFlagTable[type]); return 0; } if(--(sce->val3) > 0) { @@ -10833,8 +10772,8 @@ int status_change_timer_sub(struct block_list* bl, va_list ap) { int status_get_total_def(struct block_list *src) { return status->get_status_data(src)->def2 + (short)status->get_def(src); } int status_get_total_mdef(struct block_list *src) { return status->get_status_data(src)->mdef2 + (short)status_get_mdef(src); } -#ifdef RENEWAL int status_get_weapon_atk(struct block_list *bl, struct weapon_atk *watk, int flag) { +#ifdef RENEWAL int min = 0, max = 0, dstr; float strdex_bonus, variance; struct status_change *sc = status->get_sc(bl); @@ -10865,11 +10804,13 @@ int status_get_weapon_atk(struct block_list *bl, struct weapon_atk *watk, int fl if( bl->type == BL_PC && ((TBL_PC*)bl)->right_weapon.overrefine > 0 && !(flag&2) ) max += rnd()%((TBL_PC*)bl)->right_weapon.overrefine + 1; - max = status_calc_watk(bl, sc, max, false); + max = status->calc_watk(bl, sc, max, false); return max; -} +#else + return 0; #endif +} #define GETRANDMATK(st) do {\ if( (st)->matk_max > (st)->matk_min ) \ @@ -10911,7 +10852,7 @@ int status_get_matk(struct block_list *bl, int flag) { if( sd && sd->bonus.ematk > 0 && flag != 3 ) st->matk_min += sd->bonus.ematk; if( flag != 3 ) - st->matk_min = status_calc_ematk(bl, sc, st->matk_min); + st->matk_min = status->calc_ematk(bl, sc, st->matk_min); st->matk_max = st->matk_min; @@ -10949,8 +10890,8 @@ int status_get_matk(struct block_list *bl, int flag) { if( flag ) // get unmodified from sc matk GETRANDMATK(st); - st->matk_min = status_calc_matk(bl, sc, st->matk_min, true); - st->matk_max = status_calc_matk(bl, sc, st->matk_max, true); + st->matk_min = status->calc_matk(bl, sc, st->matk_min, true); + st->matk_max = status->calc_matk(bl, sc, st->matk_max, true); return 0; } @@ -11106,8 +11047,7 @@ int status_change_spread( struct block_list *src, struct block_list *bl ) { } //Natural regen related stuff. -static unsigned int natural_heal_prev_tick,natural_heal_diff_tick; -static int status_natural_heal(struct block_list* bl, va_list args) { +int status_natural_heal(struct block_list* bl, va_list args) { struct regen_data *regen; struct status_data *st; struct status_change *sc; @@ -11140,9 +11080,9 @@ static int status_natural_heal(struct block_list* bl, va_list args) { if (sd) { if (sd->hp_loss.value || sd->sp_loss.value) - pc->bleeding(sd, natural_heal_diff_tick); + pc->bleeding(sd, status->natural_heal_diff_tick); if (sd->hp_regen.value || sd->sp_regen.value) - pc->regen(sd, natural_heal_diff_tick); + pc->regen(sd, status->natural_heal_diff_tick); } if (flag&(RGN_SHP|RGN_SSP) @@ -11154,7 +11094,7 @@ static int status_natural_heal(struct block_list* bl, va_list args) { sregen = regen->ssregen; if(flag&(RGN_SHP)) { //Sitting HP regen - val = natural_heal_diff_tick * sregen->rate.hp; + val = status->natural_heal_diff_tick * sregen->rate.hp; if (regen->state.overweight) val>>=1; //Half as fast when overweight. sregen->tick.hp += val; @@ -11169,7 +11109,7 @@ static int status_natural_heal(struct block_list* bl, va_list args) { } if(flag&(RGN_SSP)) { //Sitting SP regen - val = natural_heal_diff_tick * sregen->rate.sp; + val = status->natural_heal_diff_tick * sregen->rate.sp; if (regen->state.overweight) val>>=1; //Half as fast when overweight. sregen->tick.sp += val; @@ -11208,7 +11148,7 @@ static int status_natural_heal(struct block_list* bl, va_list args) { //Natural Hp regen if (flag&RGN_HP) { - rate = natural_heal_diff_tick*(regen->rate.hp+bonus); + rate = status->natural_heal_diff_tick*(regen->rate.hp+bonus); if (ud && ud->walktimer != INVALID_TIMER) rate/=2; // Homun HP regen fix (they should regen as if they were sitting (twice as fast) @@ -11229,7 +11169,7 @@ static int status_natural_heal(struct block_list* bl, va_list args) { //Natural SP regen if(flag&RGN_SP) { - rate = natural_heal_diff_tick*(regen->rate.sp+bonus); + rate = status->natural_heal_diff_tick*(regen->rate.sp+bonus); // Homun SP regen fix (they should regen as if they were sitting (twice as fast) if(bl->type==BL_HOM) rate *=2; @@ -11254,7 +11194,7 @@ static int status_natural_heal(struct block_list* bl, va_list args) { if(flag&RGN_SHP) { //Skill HP regen - sregen->tick.hp += natural_heal_diff_tick * sregen->rate.hp; + sregen->tick.hp += status->natural_heal_diff_tick * sregen->rate.hp; while(sregen->tick.hp >= (unsigned int)battle_config.natural_heal_skill_interval) { sregen->tick.hp -= battle_config.natural_heal_skill_interval; @@ -11264,7 +11204,7 @@ static int status_natural_heal(struct block_list* bl, va_list args) { } if(flag&RGN_SSP) { //Skill SP regen - sregen->tick.sp += natural_heal_diff_tick * sregen->rate.sp; + sregen->tick.sp += status->natural_heal_diff_tick * sregen->rate.sp; while(sregen->tick.sp >= (unsigned int)battle_config.natural_heal_skill_interval) { val = sregen->sp; if (sd && sd->state.doridori) { @@ -11291,10 +11231,10 @@ static int status_natural_heal(struct block_list* bl, va_list args) { } //Natural heal main timer. -static int status_natural_heal_timer(int tid, unsigned int tick, int id, intptr_t data) { - natural_heal_diff_tick = DIFF_TICK(tick,natural_heal_prev_tick); - map->map_foreachregen(status_natural_heal); - natural_heal_prev_tick = tick; +int status_natural_heal_timer(int tid, unsigned int tick, int id, intptr_t data) { + status->natural_heal_diff_tick = DIFF_TICK(tick,status->natural_heal_prev_tick); + map->foreachregen(status->natural_heal); + status->natural_heal_prev_tick = tick; return 0; } @@ -11309,7 +11249,7 @@ int status_get_refine_chance(enum refine_type wlv, int refine) { if ( refine < 0 || refine >= MAX_REFINE) return 0; - return refine_info[wlv].chance[refine]; + return status->refine_info[wlv].chance[refine]; } int status_get_sc_type(sc_type type) { @@ -11317,7 +11257,7 @@ int status_get_sc_type(sc_type type) { if( type <= SC_NONE || type >= SC_MAX ) return 0; - return sc_conf[type]; + return status->sc_conf[type]; } /*------------------------------------------ @@ -11327,7 +11267,7 @@ int status_get_sc_type(sc_type type) { * size_fix.txt - size adjustment table for weapons * refine_db.txt - refining data table *------------------------------------------*/ -static bool status_readdb_job1(char* fields[], int columns, int current) +bool status_readdb_job1(char* fields[], int columns, int current) {// Job-specific values (weight, HP, SP, ASPD) int idx, class_; unsigned int i; @@ -11341,22 +11281,22 @@ static bool status_readdb_job1(char* fields[], int columns, int current) } idx = pc->class2idx(class_); - max_weight_base[idx] = atoi(fields[1]); - hp_coefficient[idx] = atoi(fields[2]); - hp_coefficient2[idx] = atoi(fields[3]); - sp_coefficient[idx] = atoi(fields[4]); + status->max_weight_base[idx] = atoi(fields[1]); + status->hp_coefficient[idx] = atoi(fields[2]); + status->hp_coefficient2[idx] = atoi(fields[3]); + status->sp_coefficient[idx] = atoi(fields[4]); #ifdef RENEWAL_ASPD for(i = 0; i <= MAX_WEAPON_TYPE; i++) #else for(i = 0; i < MAX_WEAPON_TYPE; i++) #endif { - aspd_base[idx][i] = atoi(fields[i+5]); + status->aspd_base[idx][i] = atoi(fields[i+5]); } return true; } -static bool status_readdb_job2(char* fields[], int columns, int current) +bool status_readdb_job2(char* fields[], int columns, int current) { int idx, class_, i; @@ -11371,23 +11311,23 @@ static bool status_readdb_job2(char* fields[], int columns, int current) for(i = 1; i < columns; i++) { - job_bonus[idx][i-1] = atoi(fields[i]); + status->job_bonus[idx][i-1] = atoi(fields[i]); } return true; } -static bool status_readdb_sizefix(char* fields[], int columns, int current) +bool status_readdb_sizefix(char* fields[], int columns, int current) { unsigned int i; for(i = 0; i < MAX_WEAPON_TYPE; i++) { - atkmods[current][i] = atoi(fields[i]); + status->atkmods[current][i] = atoi(fields[i]); } return true; } -static bool status_readdb_refine(char* fields[], int columns, int current) +bool status_readdb_refine(char* fields[], int columns, int current) { int i, bonus_per_level, random_bonus, random_bonus_start_level; @@ -11409,19 +11349,19 @@ static bool status_readdb_refine(char* fields[], int columns, int current) *delim = '\0'; - refine_info[current].chance[i] = atoi(fields[4+i]); + status->refine_info[current].chance[i] = atoi(fields[4+i]); if (i >= random_bonus_start_level - 1) - refine_info[current].randombonus_max[i] = random_bonus * (i - random_bonus_start_level + 2); + status->refine_info[current].randombonus_max[i] = random_bonus * (i - random_bonus_start_level + 2); - refine_info[current].bonus[i] = bonus_per_level + atoi(delim+1); + status->refine_info[current].bonus[i] = bonus_per_level + atoi(delim+1); if (i > 0) - refine_info[current].bonus[i] += refine_info[current].bonus[i-1]; + status->refine_info[current].bonus[i] += status->refine_info[current].bonus[i-1]; } return true; } -static bool status_readdb_scconfig(char* fields[], int columns, int current) { +bool status_readdb_scconfig(char* fields[], int columns, int current) { int val = 0; char* type = fields[0]; @@ -11430,46 +11370,44 @@ static bool status_readdb_scconfig(char* fields[], int columns, int current) { return false; } - sc_conf[val] = (int)strtol(fields[1], NULL, 0); + status->sc_conf[val] = (int)strtol(fields[1], NULL, 0); return true; } -/* -* Read status db -* job1.txt -* job2.txt -* size_fixe.txt -* refine_db.txt -*/ +/** + * Read status db + * job1.txt + * job2.txt + * size_fixe.txt + * refine_db.txt + **/ int status_readdb(void) { int i, j; // initialize databases to default // - - // reset job_db1.txt data - memset(max_weight_base, 0, sizeof(max_weight_base)); - memset(hp_coefficient, 0, sizeof(hp_coefficient)); - memset(hp_coefficient2, 0, sizeof(hp_coefficient2)); - memset(sp_coefficient, 0, sizeof(sp_coefficient)); - memset(aspd_base, 0, sizeof(aspd_base)); - // reset job_db2.txt data - memset(job_bonus,0,sizeof(job_bonus)); // Job-specific stats bonus - + if( runflag == MAPSERVER_ST_RUNNING ) {//not necessary during boot + // reset job_db1.txt data + memset(status->max_weight_base, 0, sizeof(status->max_weight_base)); + memset(status->hp_coefficient, 0, sizeof(status->hp_coefficient)); + memset(status->hp_coefficient2, 0, sizeof(status->hp_coefficient2)); + memset(status->sp_coefficient, 0, sizeof(status->sp_coefficient)); + memset(status->aspd_base, 0, sizeof(status->aspd_base)); + // reset job_db2.txt data + memset(status->job_bonus,0,sizeof(status->job_bonus)); // Job-specific stats bonus + } // size_fix.txt - for(i=0;i<ARRAYLENGTH(atkmods);i++) - for(j=0;j<MAX_WEAPON_TYPE;j++) - atkmods[i][j]=100; + for(i = 0; i < ARRAYLENGTH(status->atkmods); i++) + for(j = 0; j < MAX_WEAPON_TYPE; j++) + status->atkmods[i][j] = 100; // refine_db.txt - for(i=0;i<ARRAYLENGTH(refine_info);i++) - { - for(j=0;j<MAX_REFINE; j++) - { - refine_info[i].chance[j] = 100; - refine_info[i].bonus[j] = 0; - refine_info[i].randombonus_max[j] = 0; + for(i=0;i<ARRAYLENGTH(status->refine_info);i++) { + for(j=0;j<MAX_REFINE; j++) { + status->refine_info[i].chance[j] = 100; + status->refine_info[i].bonus[j] = 0; + status->refine_info[i].randombonus_max[j] = 0; } } @@ -11478,14 +11416,14 @@ int status_readdb(void) #ifdef RENEWAL_ASPD - sv->readdb(map->db_path, "re/job_db1.txt", ',', 6+MAX_WEAPON_TYPE, 6+MAX_WEAPON_TYPE, -1, &status_readdb_job1); + sv->readdb(map->db_path, "re/job_db1.txt", ',', 6+MAX_WEAPON_TYPE, 6+MAX_WEAPON_TYPE, -1, status->readdb_job1); #else - sv->readdb(map->db_path, "pre-re/job_db1.txt", ',', 5+MAX_WEAPON_TYPE, 5+MAX_WEAPON_TYPE, -1, &status_readdb_job1); + sv->readdb(map->db_path, "pre-re/job_db1.txt", ',', 5+MAX_WEAPON_TYPE, 5+MAX_WEAPON_TYPE, -1, status->readdb_job1); #endif - sv->readdb(map->db_path, "job_db2.txt", ',', 1, 1+MAX_LEVEL, -1, &status_readdb_job2); - sv->readdb(map->db_path, "size_fix.txt", ',', MAX_WEAPON_TYPE, MAX_WEAPON_TYPE, ARRAYLENGTH(atkmods), &status_readdb_sizefix); - sv->readdb(map->db_path, DBPATH"refine_db.txt", ',', 4+MAX_REFINE, 4+MAX_REFINE, ARRAYLENGTH(refine_info), &status_readdb_refine); - sv->readdb(map->db_path, "sc_config.txt", ',', 2, 2, SC_MAX, &status_readdb_scconfig); + sv->readdb(map->db_path, "job_db2.txt", ',', 1, 1+MAX_LEVEL, -1, status->readdb_job2); + sv->readdb(map->db_path, "size_fix.txt", ',', MAX_WEAPON_TYPE, MAX_WEAPON_TYPE, ARRAYLENGTH(status->atkmods), status->readdb_sizefix); + sv->readdb(map->db_path, DBPATH"refine_db.txt", ',', 4+MAX_REFINE, 4+MAX_REFINE, ARRAYLENGTH(status->refine_info), status->readdb_refine); + sv->readdb(map->db_path, "sc_config.txt", ',', 2, 2, SC_MAX, status->readdb_scconfig); return 0; } @@ -11495,19 +11433,19 @@ int status_readdb(void) *------------------------------------------*/ int do_init_status(void) { timer->add_func_list(status->change_timer,"status_change_timer"); - timer->add_func_list(kaahi_heal_timer,"kaahi_heal_timer"); - timer->add_func_list(status_natural_heal_timer,"status_natural_heal_timer"); - initChangeTables(); - initDummyData(); + timer->add_func_list(status->kaahi_heal_timer,"status_kaahi_heal_timer"); + timer->add_func_list(status->natural_heal_timer,"status_natural_heal_timer"); + status->initChangeTables(); + status->initDummyData(); status->readdb(); - status_calc_sigma(); - natural_heal_prev_tick = timer->gettick(); - sc_data_ers = ers_new(sizeof(struct status_change_entry),"status.c::sc_data_ers",ERS_OPT_NONE); - timer->add_interval(natural_heal_prev_tick + NATURAL_HEAL_INTERVAL, status_natural_heal_timer, 0, 0, NATURAL_HEAL_INTERVAL); + status->calc_sigma(); + status->natural_heal_prev_tick = timer->gettick(); + status->data_ers = ers_new(sizeof(struct status_change_entry),"status.c::data_ers",ERS_OPT_NONE); + timer->add_interval(status->natural_heal_prev_tick + NATURAL_HEAL_INTERVAL, status->natural_heal_timer, 0, 0, NATURAL_HEAL_INTERVAL); return 0; } void do_final_status(void) { - ers_destroy(sc_data_ers); + ers_destroy(status->data_ers); } /*===================================== @@ -11519,14 +11457,34 @@ void status_defaults(void) { status = &status_s; /* vars */ - - status->current_equip_item_index = 0; //Contains inventory index of an equipped item. To pass it into the EQUP_SCRIPT [Lupus] - status->current_equip_card_id = 0; //To prevent card-stacking (from jA) [Skotlex] //we need it for new cards 15 Feb 2005, to check if the combo cards are insrerted into the CURRENT weapon only //to avoid cards exploits + status->current_equip_item_index = 0; //Contains inventory index of an equipped item. To pass it into the EQUP_SCRIPT [Lupus] + status->current_equip_card_id = 0; //To prevent card-stacking (from jA) [Skotlex] + memset(status->max_weight_base,0,sizeof(status->max_weight_base) + + sizeof(status->hp_coefficient) + + sizeof(status->hp_coefficient2) + + sizeof(status->hp_sigma_val) + + sizeof(status->sp_coefficient) + + sizeof(status->aspd_base) + + sizeof(status->Skill2SCTable) + + sizeof(status->IconChangeTable) + + sizeof(status->ChangeFlagTable) + + sizeof(status->SkillChangeTable) + + sizeof(status->RelevantBLTypes) + + sizeof(status->DisplayType) + + sizeof(status->refine_info) + + sizeof(status->atkmods) + + sizeof(status->job_bonus) + + sizeof(status->sc_conf) + ); + + status->data_ers = NULL; + memset(&status->dummy, 0, sizeof(status->dummy)); + status->natural_heal_prev_tick = 0; + status->natural_heal_diff_tick = 0; /* funcs */ - status->get_refine_chance = status_get_refine_chance; // for looking up associated data status->skill2sc = status_skill2sc; @@ -11600,10 +11558,8 @@ void status_defaults(void) { status->calc_mdef = status_calc_mdef; status->calc_mdef2 = status_calc_mdef2; status->calc_batk = status_calc_batk; -#ifdef RENEWAL status->base_matk = status_base_matk; status->get_weapon_atk = status_get_weapon_atk; -#endif status->get_total_mdef = status_get_total_mdef; status->get_total_def = status_get_total_def; @@ -11612,4 +11568,46 @@ void status_defaults(void) { status->readdb = status_readdb; status->init = do_init_status; status->final = do_final_status; + + status->initChangeTables = initChangeTables; + status->initDummyData = initDummyData; + status->base_amotion_pc = status_base_amotion_pc; + status->base_atk = status_base_atk; + status->calc_sigma = status_calc_sigma; + status->base_pc_maxhp = status_base_pc_maxhp; + status->base_pc_maxsp = status_base_pc_maxsp; + status->calc_npc_ = status_calc_npc_; + status->calc_str = status_calc_str; + status->calc_agi = status_calc_agi; + status->calc_vit = status_calc_vit; + status->calc_int = status_calc_int; + status->calc_dex = status_calc_dex; + status->calc_luk = status_calc_luk; + status->calc_watk = status_calc_watk; + status->calc_matk = status_calc_matk; + status->calc_hit = status_calc_hit; + status->calc_critical = status_calc_critical; + status->calc_flee = status_calc_flee; + status->calc_flee2 = status_calc_flee2; + status->calc_speed = status_calc_speed; + status->calc_aspd_rate = status_calc_aspd_rate; + status->calc_dmotion = status_calc_dmotion; + status->calc_aspd = status_calc_aspd; + status->calc_fix_aspd = status_calc_fix_aspd; + status->calc_maxhp = status_calc_maxhp; + status->calc_maxsp = status_calc_maxsp; + status->calc_element = status_calc_element; + status->calc_element_lv = status_calc_element_lv; + status->calc_mode = status_calc_mode; + status->calc_ematk = status_calc_ematk; + status->calc_bl_main = status_calc_bl_main; + status->display_add = status_display_add; + status->display_remove = status_display_remove; + status->natural_heal = status_natural_heal; + status->natural_heal_timer = status_natural_heal_timer; + status->readdb_job1 = status_readdb_job1; + status->readdb_job2 = status_readdb_job2; + status->readdb_sizefix = status_readdb_sizefix; + status->readdb_refine = status_readdb_refine; + status->readdb_scconfig = status_readdb_scconfig; } diff --git a/src/map/status.h b/src/map/status.h index 16a9be081..c7518a213 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -1,8 +1,12 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Portions Copyright (c) Athena Dev Teams + #ifndef _STATUS_H_ #define _STATUS_H_ +#include "../common/mmo.h" + struct block_list; struct mob_data; struct pet_data; @@ -1580,6 +1584,14 @@ enum scb_flag SCB_ALL = 0x3FFFFFFF }; +//Regen related flags. +enum e_regen { + RGN_HP = 0x01, + RGN_SP = 0x02, + RGN_SHP = 0x04, + RGN_SSP = 0x08, +}; + //Define to determine who gets HP/SP consumed on doing skills/etc. [Skotlex] #define BL_CONSUME (BL_PC|BL_HOM|BL_MER|BL_ELEM) //Define to determine who has regen @@ -1598,15 +1610,7 @@ typedef struct weapon_atk { unsigned short matk; unsigned char wlv; #endif -}weapon_atk; - -sc_type SkillStatusChangeTable[MAX_SKILL]; // skill -> status -int StatusIconChangeTable[SC_MAX]; // status -> "icon" (icon is a bit of a misnomer, since there exist values with no icon associated) -unsigned int StatusChangeFlagTable[SC_MAX]; // status -> flags -int StatusSkillChangeTable[SC_MAX]; // status -> skill -int StatusRelevantBLTypes[SI_MAX]; // "icon" -> enum bl_type (for clif->status_change to identify for which bl types to send packets) -bool StatusDisplayType[SC_MAX]; - +} weapon_atk; //For holding basic status (which can be modified by status changes) struct status_data { @@ -1780,6 +1784,13 @@ struct status_change { #define status_calc_elemental(ed, first) status->calc_bl_(&(ed)->bl, SCB_ALL, first) #define status_calc_npc(nd, first) status->calc_bl_(&(nd)->bl, SCB_ALL, first) +// bonus values and upgrade chances for refining equipment +struct s_refine_info { + int chance[MAX_REFINE]; // success chance + int bonus[MAX_REFINE]; // cumulative fixed bonus damage + int randombonus_max[MAX_REFINE]; // cumulative maximum random bonus damage +}; + /*===================================== * Interface : status.h * Generated by HerculesInterfaceMaker @@ -1788,12 +1799,38 @@ struct status_change { struct status_interface { /* vars */ - int current_equip_item_index; int current_equip_card_id; - + /* */ + int max_weight_base[CLASS_COUNT]; + int hp_coefficient[CLASS_COUNT]; + int hp_coefficient2[CLASS_COUNT]; + int hp_sigma_val[CLASS_COUNT][MAX_LEVEL+1]; + int sp_coefficient[CLASS_COUNT]; +#ifdef RENEWAL_ASPD + int aspd_base[CLASS_COUNT][MAX_WEAPON_TYPE+1]; +#else + int aspd_base[CLASS_COUNT][MAX_WEAPON_TYPE]; //[blackhole89] +#endif + sc_type Skill2SCTable[MAX_SKILL]; // skill -> status + int IconChangeTable[SC_MAX]; // status -> "icon" (icon is a bit of a misnomer, since there exist values with no icon associated) + unsigned int ChangeFlagTable[SC_MAX]; // status -> flags + int SkillChangeTable[SC_MAX]; // status -> skill + int RelevantBLTypes[SI_MAX]; // "icon" -> enum bl_type (for clif->status_change to identify for which bl types to send packets) + bool DisplayType[SC_MAX]; + /* */ + struct s_refine_info refine_info[REFINE_TYPE_MAX]; + /* */ + int atkmods[3][MAX_WEAPON_TYPE];//ATK weapon modification for size (size_fix.txt) + char job_bonus[CLASS_COUNT][MAX_LEVEL]; + sc_conf_type sc_conf[SC_MAX]; + struct eri *data_ers; //For sc_data entries + struct status_data dummy; + unsigned int natural_heal_prev_tick,natural_heal_diff_tick; + /* */ + int (*init) (void); + void (*final) (void); /* funcs */ - int (*get_refine_chance) (enum refine_type wlv, int refine); // for looking up associated data sc_type (*skill2sc) (int skill_id); @@ -1801,7 +1838,6 @@ struct status_interface { unsigned int (*sc2scb_flag) (sc_type sc); int (*type2relevant_bl_types) (int type); int (*get_sc_type) (sc_type idx); - int (*damage) (struct block_list *src,struct block_list *target,int64 hp,int64 sp, int walkdelay, int flag); //Define for standard HP/SP skill-related cost triggers (mobs require no HP/SP to use skills) int (*charge) (struct block_list* bl, int64 hp, int64 sp); @@ -1811,7 +1847,6 @@ struct status_interface { int (*set_sp) (struct block_list *bl, unsigned int sp, int flag); int (*heal) (struct block_list *bl,int64 hp,int64 sp, int flag); int (*revive) (struct block_list *bl, unsigned char per_hp, unsigned char per_sp); - struct regen_data * (*get_regen_data) (struct block_list *bl); struct status_data * (*get_status_data) (struct block_list *bl); struct status_data * (*get_base_status) (struct block_list *bl); @@ -1826,17 +1861,13 @@ struct status_interface { int (*get_emblem_id) (struct block_list *bl); int (*get_mexp) (struct block_list *bl); int (*get_race2) (struct block_list *bl); - struct view_data * (*get_viewdata) (struct block_list *bl); void (*set_viewdata) (struct block_list *bl, int class_); void (*change_init) (struct block_list *bl); struct status_change * (*get_sc) (struct block_list *bl); - int (*isdead) (struct block_list *bl); int (*isimmune) (struct block_list *bl); - int (*get_sc_def) (struct block_list *bl, enum sc_type type, int rate, int tick, int flag); - int (*change_start) (struct block_list* bl,enum sc_type type,int rate,int val1,int val2,int val3,int val4,int tick,int flag); int (*change_end_) (struct block_list* bl, enum sc_type type, int tid, const char* file, int line); int (*kaahi_heal_timer) (int tid, unsigned int tick, int id, intptr_t data); @@ -1844,7 +1875,6 @@ struct status_interface { int (*change_timer_sub) (struct block_list* bl, va_list ap); int (*change_clear) (struct block_list* bl, int type); int (*change_clear_buffs) (struct block_list* bl, int type); - void (*calc_bl_) (struct block_list *bl, enum scb_flag flag, bool first); int (*calc_mob_) (struct mob_data* md, bool first); int (*calc_pet_) (struct pet_data* pd, bool first); @@ -1852,35 +1882,66 @@ struct status_interface { int (*calc_homunculus_) (struct homun_data *hd, bool first); int (*calc_mercenary_) (struct mercenary_data *md, bool first); int (*calc_elemental_) (struct elemental_data *ed, bool first); - void (*calc_misc) (struct block_list *bl, struct status_data *status, int level); void (*calc_regen) (struct block_list *bl, struct status_data *st, struct regen_data *regen); void (*calc_regen_rate) (struct block_list *bl, struct regen_data *regen, struct status_change *sc); - int (*check_skilluse) (struct block_list *src, struct block_list *target, uint16 skill_id, int flag); // [Skotlex] int (*check_visibility) (struct block_list *src, struct block_list *target); //[Skotlex] - int (*change_spread) (struct block_list *src, struct block_list *bl); - - defType (*calc_def) (struct block_list *bl, struct status_change *sc, int, bool); - short (*calc_def2) (struct block_list *, struct status_change *, int, bool); - defType (*calc_mdef) (struct block_list *bl, struct status_change *sc, int, bool); - short (*calc_mdef2) (struct block_list *, struct status_change *, int, bool); - unsigned short (*calc_batk) (struct block_list *, struct status_change *, int, bool); - -#ifdef RENEWAL + defType (*calc_def) (struct block_list *bl, struct status_change *sc, int def, bool viewable); + short (*calc_def2) (struct block_list *bl, struct status_change *sc, int def2, bool viewable); + defType (*calc_mdef) (struct block_list *bl, struct status_change *sc, int mdef, bool viewable); + short (*calc_mdef2) (struct block_list *bl, struct status_change *sc, int mdef2, bool viewable); + unsigned short (*calc_batk)(struct block_list *bl, struct status_change *sc, int batk, bool viewable); unsigned short (*base_matk) (const struct status_data *st, int level); int (*get_weapon_atk) (struct block_list *src, struct weapon_atk *watk, int flag); -#endif int (*get_total_mdef) (struct block_list *src); int (*get_total_def) (struct block_list *src); - int (*get_matk) (struct block_list *src, int flag); - int (*readdb) (void); - int (*init) (void); - void (*final) (void); -} status_s; + + void (*initChangeTables) (void); + void (*initDummyData) (void); + int (*base_amotion_pc) (struct map_session_data *sd, struct status_data *st); + unsigned short (*base_atk) (const struct block_list *bl, const struct status_data *st); + void (*calc_sigma) (void); + unsigned int (*base_pc_maxhp) (struct map_session_data *sd, struct status_data *st); + unsigned int (*base_pc_maxsp) (struct map_session_data *sd, struct status_data *st); + int (*calc_npc_) (struct npc_data *nd, bool first); + unsigned short (*calc_str) (struct block_list *bl, struct status_change *sc, int str); + unsigned short (*calc_agi) (struct block_list *bl, struct status_change *sc, int agi); + unsigned short (*calc_vit) (struct block_list *bl, struct status_change *sc, int vit); + unsigned short (*calc_int) (struct block_list *bl, struct status_change *sc, int int_); + unsigned short (*calc_dex) (struct block_list *bl, struct status_change *sc, int dex); + unsigned short (*calc_luk) (struct block_list *bl, struct status_change *sc, int luk); + unsigned short (*calc_watk) (struct block_list *bl, struct status_change *sc, int watk, bool viewable); + unsigned short (*calc_matk) (struct block_list *bl, struct status_change *sc, int matk, bool viewable); + signed short (*calc_hit) (struct block_list *bl, struct status_change *sc, int hit, bool viewable); + signed short (*calc_critical) (struct block_list *bl, struct status_change *sc, int critical, bool viewable); + signed short (*calc_flee) (struct block_list *bl, struct status_change *sc, int flee, bool viewable); + signed short (*calc_flee2) (struct block_list *bl, struct status_change *sc, int flee2, bool viewable); + unsigned short (*calc_speed) (struct block_list *bl, struct status_change *sc, int speed); + short (*calc_aspd_rate) (struct block_list *bl, struct status_change *sc, int aspd_rate); + unsigned short (*calc_dmotion) (struct block_list *bl, struct status_change *sc, int dmotion); + short (*calc_aspd) (struct block_list *bl, struct status_change *sc, short flag); + short (*calc_fix_aspd) (struct block_list *bl, struct status_change *sc, int aspd); + unsigned int (*calc_maxhp) (struct block_list *bl, struct status_change *sc, uint64 maxhp); + unsigned int (*calc_maxsp) (struct block_list *bl, struct status_change *sc, unsigned int maxsp); + unsigned char (*calc_element) (struct block_list *bl, struct status_change *sc, int element); + unsigned char (*calc_element_lv) (struct block_list *bl, struct status_change *sc, int lv); + unsigned short (*calc_mode) (struct block_list *bl, struct status_change *sc, int mode); + unsigned short (*calc_ematk) (struct block_list *bl, struct status_change *sc, int matk); + void (*calc_bl_main) (struct block_list *bl, int flag); + void (*display_add) (struct map_session_data *sd, enum sc_type type, int dval1, int dval2, int dval3); + void (*display_remove) (struct map_session_data *sd, enum sc_type type); + int (*natural_heal) (struct block_list *bl, va_list args); + int (*natural_heal_timer) (int tid, unsigned int tick, int id, intptr_t data); + bool (*readdb_job1) (char *fields[], int columns, int current); + bool (*readdb_job2) (char *fields[], int columns, int current); + bool (*readdb_sizefix) (char *fields[], int columns, int current); + bool (*readdb_refine) (char *fields[], int columns, int current); + bool (*readdb_scconfig) (char *fields[], int columns, int current); +}; struct status_interface *status; diff --git a/src/map/storage.c b/src/map/storage.c index 041c2cd72..cc1100d28 100644 --- a/src/map/storage.c +++ b/src/map/storage.c @@ -30,7 +30,7 @@ struct guild_storage_interface gstorage_s; /*========================================== * Sort items in the warehouse *------------------------------------------*/ -static int storage_comp_item(const void *_i1, const void *_i2) +int storage_comp_item(const void *_i1, const void *_i2) { struct item *i1 = (struct item *)_i1; struct item *i2 = (struct item *)_i2; @@ -45,33 +45,21 @@ static int storage_comp_item(const void *_i1, const void *_i2) } //Sort item by storage_comp_item (nameid) -static void storage_sortitem(struct item* items, unsigned int size) +void storage_sortitem(struct item* items, unsigned int size) { nullpo_retv(items); if( battle_config.client_sort_storage ) { - qsort(items, size, sizeof(struct item), storage_comp_item); + qsort(items, size, sizeof(struct item), storage->comp_item); } } -/*========================================== - * Init/Terminate - *------------------------------------------*/ -/* ##TODO not really init_storage but init_gstorage, should rename/move */ -int do_init_storage(void) { // Called from map.c::do_init() - gstorage->db = idb_alloc(DB_OPT_RELEASE_DATA); - return 1; -} -void do_final_storage(void) { // by [MC Cameri] - gstorage->db->destroy(gstorage->db,NULL); -} - /** * Parses storage and saves 'dirty' ones upon reconnect. [Skotlex] * @see DBApply */ -static int storage_reconnect_sub(DBKey key, DBData *data, va_list ap) +int storage_reconnect_sub(DBKey key, DBData *data, va_list ap) { struct guild_storage *stor = DB->data2ptr(data); if (stor->dirty && stor->storage_status == 0) //Save closed storages. @@ -82,7 +70,7 @@ static int storage_reconnect_sub(DBKey key, DBData *data, va_list ap) //Function to be invoked upon server reconnection to char. To save all 'dirty' storages [Skotlex] void do_reconnect_storage(void) { - gstorage->db->foreach(gstorage->db, storage_reconnect_sub); + gstorage->db->foreach(gstorage->db, storage->reconnect_sub); } /*========================================== @@ -104,7 +92,7 @@ int storage_storageopen(struct map_session_data *sd) } sd->state.storage_flag = 1; - storage_sortitem(sd->status.storage.items, ARRAYLENGTH(sd->status.storage.items)); + storage->sortitem(sd->status.storage.items, ARRAYLENGTH(sd->status.storage.items)); clif->storagelist(sd, sd->status.storage.items, ARRAYLENGTH(sd->status.storage.items)); clif->updatestorageamount(sd, sd->status.storage.storage_amount, MAX_STORAGE); return 0; @@ -208,8 +196,7 @@ int storage_delitem(struct map_session_data* sd, int n, int amount) * 0 : fail * 1 : success *------------------------------------------*/ -int storage_storageadd(struct map_session_data* sd, int index, int amount) -{ +int storage_storageadd(struct map_session_data* sd, int index, int amount) { nullpo_ret(sd); if( sd->status.storage.storage_amount > MAX_STORAGE ) @@ -226,6 +213,8 @@ int storage_storageadd(struct map_session_data* sd, int index, int amount) if( storage->additem(sd,&sd->status.inventory[index],amount) == 0 ) pc->delitem(sd,index,amount,0,4,LOG_TYPE_STORAGE); + else + clif->dropitem(sd, index,0); return 1; } @@ -347,7 +336,7 @@ void storage_storage_quit(struct map_session_data* sd, int flag) { /** * @see DBCreateData */ -static DBData create_guildstorage(DBKey key, va_list args) +DBData create_guildstorage(DBKey key, va_list args) { struct guild_storage *gs = NULL; gs = (struct guild_storage *) aCalloc(sizeof(struct guild_storage), 1); @@ -359,7 +348,7 @@ struct guild_storage *guild2storage(int guild_id) { struct guild_storage *gs = NULL; if(guild->search(guild_id) != NULL) - gs = idb_ensure(gstorage->db,guild_id,create_guildstorage); + gs = idb_ensure(gstorage->db,guild_id,gstorage->create); return gs; } @@ -409,7 +398,7 @@ int storage_guild_storageopen(struct map_session_data* sd) gstor->storage_status = 1; sd->state.storage_flag = 2; - storage_sortitem(gstor->items, ARRAYLENGTH(gstor->items)); + storage->sortitem(gstor->items, ARRAYLENGTH(gstor->items)); clif->storagelist(sd, gstor->items, ARRAYLENGTH(gstor->items)); clif->updatestorageamount(sd, gstor->storage_amount, MAX_GUILD_STORAGE); return 0; @@ -728,13 +717,16 @@ int storage_guild_storage_quit(struct map_session_data* sd, int flag) { return 0; } +void do_init_gstorage(void) { + gstorage->db = idb_alloc(DB_OPT_RELEASE_DATA); +} +void do_final_gstorage(void) { + db_destroy(gstorage->db); +} void storage_defaults(void) { storage = &storage_s; /* */ - storage->init = do_init_storage; - storage->final = do_final_storage; - /* */ storage->reconnect = do_reconnect_storage; /* */ storage->delitem = storage_delitem; @@ -746,10 +738,17 @@ void storage_defaults(void) { storage->gettocart = storage_storagegettocart; storage->close = storage_storageclose; storage->pc_quit = storage_storage_quit; + storage->comp_item = storage_comp_item; + storage->sortitem = storage_sortitem; + storage->reconnect_sub = storage_reconnect_sub; } void gstorage_defaults(void) { gstorage = &gstorage_s; + /* */ + gstorage->init = do_init_gstorage; + gstorage->final = do_final_gstorage; + /* */ gstorage->id2storage = guild2storage; gstorage->id2storage2 = guild2storage2; gstorage->delete = guild_storage_delete; @@ -764,4 +763,5 @@ void gstorage_defaults(void) { gstorage->pc_quit = storage_guild_storage_quit; gstorage->save = storage_guild_storagesave; gstorage->saved = storage_guild_storagesaved; + gstorage->create = create_guildstorage; } diff --git a/src/map/storage.h b/src/map/storage.h index 83243a622..9258e0265 100644 --- a/src/map/storage.h +++ b/src/map/storage.h @@ -12,8 +12,6 @@ struct map_session_data; struct DBMap; struct storage_interface { - int (*init) (void); - void (*final) (void); /* */ void (*reconnect) (void); /* */ @@ -26,6 +24,9 @@ struct storage_interface { int (*gettocart) (struct map_session_data *sd,int index,int amount); void (*close) (struct map_session_data *sd); void (*pc_quit) (struct map_session_data *sd, int flag); + int (*comp_item) (const void *_i1, const void *_i2); + void (*sortitem) (struct item* items, unsigned int size); + int (*reconnect_sub) (DBKey key, DBData *data, va_list ap); }; struct storage_interface *storage; @@ -34,6 +35,10 @@ struct guild_storage_interface { /* */ struct guild_storage *(*id2storage) (int guild_id); struct guild_storage *(*id2storage2) (int guild_id); + /* */ + void (*init) (void); + void (*final) (void); + /* */ int (*delete) (int guild_id); int (*open) (struct map_session_data *sd); int (*additem) (struct map_session_data *sd,struct guild_storage *stor,struct item *item_data,int amount); @@ -46,6 +51,7 @@ struct guild_storage_interface { int (*pc_quit) (struct map_session_data *sd,int flag); int (*save) (int account_id, int guild_id, int flag); int (*saved) (int guild_id); //Ack from char server that guild store was saved. + DBData (*create) (DBKey key, va_list args); }; struct guild_storage_interface *gstorage; diff --git a/src/map/trade.c b/src/map/trade.c index e137f7105..8dd30371b 100644 --- a/src/map/trade.c +++ b/src/map/trade.c @@ -1,13 +1,15 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Portions Copyright (c) Athena Dev Teams #include "../common/nullpo.h" #include "../common/socket.h" + +#include "trade.h" #include "clif.h" #include "itemdb.h" #include "map.h" #include "path.h" -#include "trade.h" #include "pc.h" #include "npc.h" #include "battle.h" @@ -20,10 +22,6 @@ #include <stdio.h> #include <string.h> - -//Max distance from traders to enable a trade to take place. -#define TRADE_DISTANCE 2 - struct trade_interface trade_s; /*========================================== @@ -33,7 +31,7 @@ void trade_traderequest(struct map_session_data *sd, struct map_session_data *ta { nullpo_retv(sd); - if (maplist[sd->bl.m].flag.notrade) { + if (map->list[sd->bl.m].flag.notrade) { clif->message (sd->fd, msg_txt(272)); return; //Can't trade in notrade mapflag maps. } @@ -517,7 +515,7 @@ void trade_tradecommit(struct map_session_data *sd) { return; if ((tsd = map->id2sd(sd->trade_partner)) == NULL) { - trade_tradecancel(sd); + trade->cancel(sd); return; } diff --git a/src/map/trade.h b/src/map/trade.h index e8ac4a8c4..d0b900504 100644 --- a/src/map/trade.h +++ b/src/map/trade.h @@ -5,6 +5,9 @@ #ifndef _TRADE_H_ #define _TRADE_H_ +//Max distance from traders to enable a trade to take place. +#define TRADE_DISTANCE 2 + struct map_session_data; struct trade_interface { diff --git a/src/map/unit.c b/src/map/unit.c index 9d6f107e3..a7aca10b9 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -792,13 +792,13 @@ int unit_warp(struct block_list *bl,short m,short x,short y,clr_type type) switch (bl->type) { case BL_MOB: - if (maplist[bl->m].flag.monster_noteleport && ((TBL_MOB*)bl)->master_id == 0) + if (map->list[bl->m].flag.monster_noteleport && ((TBL_MOB*)bl)->master_id == 0) return 1; - if (m != bl->m && maplist[m].flag.nobranch && battle_config.mob_warp&4 && !(((TBL_MOB *)bl)->master_id)) + if (m != bl->m && map->list[m].flag.nobranch && battle_config.mob_warp&4 && !(((TBL_MOB *)bl)->master_id)) return 1; break; case BL_PC: - if (maplist[bl->m].flag.noteleport) + if (map->list[bl->m].flag.noteleport) return 1; break; } @@ -806,17 +806,17 @@ int unit_warp(struct block_list *bl,short m,short x,short y,clr_type type) if (x<0 || y<0) { //Random map position. if (!map->search_freecell(NULL, m, &x, &y, -1, -1, 1)) { - ShowWarning("unit_warp failed. Unit Id:%d/Type:%d, target position map %d (%s) at [%d,%d]\n", bl->id, bl->type, m, maplist[m].name, x, y); + ShowWarning("unit_warp failed. Unit Id:%d/Type:%d, target position map %d (%s) at [%d,%d]\n", bl->id, bl->type, m, map->list[m].name, x, y); return 2; } } else if (map->getcell(m,x,y,CELL_CHKNOREACH)) { //Invalid target cell - ShowWarning("unit_warp: Specified non-walkable target cell: %d (%s) at [%d,%d]\n", m, maplist[m].name, x,y); + ShowWarning("unit_warp: Specified non-walkable target cell: %d (%s) at [%d,%d]\n", m, map->list[m].name, x,y); if (!map->search_freecell(NULL, m, &x, &y, 4, 4, 1)) { //Can't find a nearby cell - ShowWarning("unit_warp failed. Unit Id:%d/Type:%d, target position map %d (%s) at [%d,%d]\n", bl->id, bl->type, m, maplist[m].name, x, y); + ShowWarning("unit_warp failed. Unit Id:%d/Type:%d, target position map %d (%s) at [%d,%d]\n", bl->id, bl->type, m, map->list[m].name, x, y); return 2; } } @@ -1955,7 +1955,7 @@ int unit_skillcastcancel(struct block_list *bl,int type) return 0; if (sd && (sd->special_state.no_castcancel2 || - ((sd->sc.data[SC_UNLIMITED_HUMMING_VOICE] || sd->special_state.no_castcancel) && !map_flag_gvg(bl->m) && !maplist[bl->m].flag.battleground))) //fixed flags being read the wrong way around [blackhole89] + ((sd->sc.data[SC_UNLIMITED_HUMMING_VOICE] || sd->special_state.no_castcancel) && !map_flag_gvg(bl->m) && !map->list[bl->m].flag.battleground))) //fixed flags being read the wrong way around [blackhole89] return 0; } @@ -2174,7 +2174,7 @@ int unit_remove_map(struct block_list *bl, clr_type clrtype, const char* file, i guild->send_dot_remove(sd); bg->send_dot_remove(sd); - if( maplist[bl->m].users <= 0 || sd->state.debug_remove_map ) { + if( map->list[bl->m].users <= 0 || sd->state.debug_remove_map ) { // this is only place where map users is decreased, if the mobs were removed too soon then this function was executed too many times [FlavioJS] if( sd->debug_file == NULL || !(sd->state.debug_remove_map) ) { sd->debug_file = ""; @@ -2188,17 +2188,17 @@ int unit_remove_map(struct block_list *bl, clr_type clrtype, const char* file, i " Please report this!!!\n", sd->status.account_id, sd->status.char_id, sd->state.active, sd->state.connect_new, sd->state.rewarp, sd->state.changemap, sd->state.debug_remove_map, - maplist[bl->m].name, maplist[bl->m].users, + map->list[bl->m].name, map->list[bl->m].users, sd->debug_file, sd->debug_line, sd->debug_func, file, line, func); - } else if (--maplist[bl->m].users == 0 && battle_config.dynamic_mobs) //[Skotlex] + } else if (--map->list[bl->m].users == 0 && battle_config.dynamic_mobs) //[Skotlex] map->removemobs(bl->m); if( !(sd->sc.option&OPTION_INVISIBLE) ) { // decrement the number of active pvp players on the map - --maplist[bl->m].users_pvp; + --map->list[bl->m].users_pvp; } - if( maplist[bl->m].instance_id >= 0 ) { - instances[maplist[bl->m].instance_id].users--; - instance->check_idle(maplist[bl->m].instance_id); + if( map->list[bl->m].instance_id >= 0 ) { + instance->list[map->list[bl->m].instance_id].users--; + instance->check_idle(map->list[bl->m].instance_id); } sd->state.debug_remove_map = 1; // temporary state to track double remove_map's [FlavioJS] sd->debug_file = file; @@ -2340,7 +2340,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) { duel->reject(sd->duel_invite, sd); // Notify friends that this char logged out. [Skotlex] - map->map_foreachpc(clif->friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 0); + map->foreachpc(clif->friendslist_toggle_sub, sd->status.account_id, sd->status.char_id, 0); party->send_logout(sd); guild->send_memberinfoshort(sd,0); pc->cleareventtimer(sd); @@ -2375,7 +2375,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) { /* [Ind/Hercules] */ if( sd->sc_display_count ) { for(i = 0; i < sd->sc_display_count; i++) { - ers_free(pc_sc_display_ers, sd->sc_display[i]); + ers_free(pc->sc_display_ers, sd->sc_display[i]); } sd->sc_display_count = 0; } diff --git a/src/plugins/HPMHooking.c b/src/plugins/HPMHooking.c new file mode 100644 index 000000000..8b4f06ae0 --- /dev/null +++ b/src/plugins/HPMHooking.c @@ -0,0 +1,173 @@ +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file +// Sample Hercules Plugin + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +#include "../common/HPMi.h" +#include "../common/mmo.h" +#include "../common/socket.h" +#include "../common/malloc.h" +#include "../common/db.h" + +#include "../map/map.h" +#include "../map/path.h" +#include "../map/chrif.h" +#include "../map/clif.h" +#include "../map/duel.h" +#include "../map/intif.h" +#include "../map/npc.h" +#include "../map/pc.h" +#include "../map/status.h" +#include "../map/mob.h" +#include "../map/npc.h" +#include "../map/chat.h" +#include "../map/itemdb.h" +#include "../map/storage.h" +#include "../map/skill.h" +#include "../map/trade.h" +#include "../map/party.h" +#include "../map/unit.h" +#include "../map/battle.h" +#include "../map/battleground.h" +#include "../map/quest.h" +#include "../map/script.h" +#include "../map/mapreg.h" +#include "../map/guild.h" +#include "../map/pet.h" +#include "../map/homunculus.h" +#include "../map/instance.h" +#include "../map/mercenary.h" +#include "../map/elemental.h" +#include "../map/atcommand.h" +#include "../map/log.h" +#include "../map/mail.h" +#include "../map/irc-bot.h" + +HPExport struct hplugin_info pinfo = { + "HPMHooking", // Plugin name + SERVER_TYPE_MAP,// Which server types this plugin works with? + "0.1", // Plugin version + HPM_VERSION, // HPM Version (don't change, macro is automatically updated) +}; + +#define HP_POP(x) #x , (void**)(&x) +#define HP_POP2(x) (void*)x +DBMap *hp_db;/* hooking points db -- for quick lookup */ + +struct HookingPointData { + char* name; + void **sref; + void *tref; + int idx; +}; + +struct HPMHookPoint { + void *func; + unsigned int pID; +}; + +struct HPMHooksCore { + #include "../plugins/HPMHooking/HPMHooking.HPMHooksCore.inc" + struct { + int total; + } data; +} HPMHooks; + +bool *HPMforce_return; + +void HPM_HP_final(void); +void HPM_HP_load(void); + +HPExport void server_post_final (void) { + HPM_HP_final(); +} + +HPExport bool Hooked (bool *fr) { + HPMforce_return = fr; + DB = GET_SYMBOL("DB"); + iMalloc = GET_SYMBOL("iMalloc"); +#include "../plugins/HPMHooking/HPMHooking.GetSymbol.inc" + HPM_HP_load(); + return true; +} + + +HPExport bool HPM_Plugin_AddHook(enum HPluginHookType type, const char *target, void *hook, unsigned int pID) { + struct HookingPointData *hpd; + + if( hp_db && (hpd = strdb_get(hp_db,target)) ) { + struct HPMHookPoint **hp = NULL; + int *count = NULL; + + if( type == HOOK_TYPE_PRE ) { + hp = (struct HPMHookPoint **)((char *)&HPMHooks.list + (sizeof(struct HPMHookPoint *)*hpd->idx)); + count = (int *)((char *)&HPMHooks.count + (sizeof(int)*hpd->idx)); + } else { + hp = (struct HPMHookPoint **)((char *)&HPMHooks.list + (sizeof(struct HPMHookPoint *)*(hpd->idx+1))); + count = (int *)((char *)&HPMHooks.count + (sizeof(int)*(hpd->idx+1))); + } + + if( hp ) { + *count += 1; + + RECREATE(*hp, struct HPMHookPoint, *count); + + (*hp)[*count - 1].func = hook; + (*hp)[*count - 1].pID = pID; + + *(hpd->sref) = hpd->tref; + + return true; + } + } + + return false; +} + +#include "../plugins/HPMHooking/HPMHooking.Hooks.inc" + +void HPM_HP_final(void) { + int i, len = HPMHooks.data.total * 2; + + if( hp_db ) + db_destroy(hp_db); + + for(i = 0; i < len; i++) { + int *count = (int *)((char *)&HPMHooks.count + (sizeof(int)*(i))); + + if( count && *count ) { + struct HPMHookPoint **hp = (struct HPMHookPoint **)((char *)&HPMHooks.list + (sizeof(struct HPMHookPoint *)*(i))); + + if( hp && *hp ) + aFree(*hp); + } + } + +} + +void HPM_HP_load(void) { + #include "../plugins/HPMHooking/HPMHooking.HookingPoints.inc" + int i, len = ARRAYLENGTH(HookingPoints); + + memset(&HPMHooks,0,sizeof(struct HPMHooksCore)); + + hp_db = strdb_alloc(DB_OPT_BASE|DB_OPT_DUP_KEY|DB_OPT_RELEASE_DATA, HookingPointsLenMax); + + for(i = 0; i < len; i++) { + struct HookingPointData *hpd = NULL; + + CREATE(hpd, struct HookingPointData, 1); + + memcpy(hpd, &HookingPoints[i], sizeof(struct HookingPointData)); + + strdb_put(hp_db, HookingPoints[i].name, hpd); + + HPMHooks.data.total++; + } + + #include "../plugins/HPMHooking/HPMHooking.sources.inc" +} + diff --git a/src/plugins/HPMHooking/HPMHooking.GetSymbol.inc b/src/plugins/HPMHooking/HPMHooking.GetSymbol.inc new file mode 100644 index 000000000..5caceb75a --- /dev/null +++ b/src/plugins/HPMHooking/HPMHooking.GetSymbol.inc @@ -0,0 +1,37 @@ +if( !(atcommand = GET_SYMBOL("atcommand") ) ) return false; +if( !(battle = GET_SYMBOL("battle") ) ) return false; +if( !(bg = GET_SYMBOL("battlegrounds") ) ) return false; +if( !(buyingstore = GET_SYMBOL("buyingstore") ) ) return false; +if( !(chat = GET_SYMBOL("chat") ) ) return false; +if( !(chrif = GET_SYMBOL("chrif") ) ) return false; +if( !(clif = GET_SYMBOL("clif") ) ) return false; +if( !(duel = GET_SYMBOL("duel") ) ) return false; +if( !(elemental = GET_SYMBOL("elemental") ) ) return false; +if( !(guild = GET_SYMBOL("guild") ) ) return false; +if( !(gstorage = GET_SYMBOL("gstorage") ) ) return false; +if( !(homun = GET_SYMBOL("homun") ) ) return false; +if( !(instance = GET_SYMBOL("instance") ) ) return false; +if( !(intif = GET_SYMBOL("intif") ) ) return false; +if( !(ircbot = GET_SYMBOL("ircbot") ) ) return false; +if( !(itemdb = GET_SYMBOL("itemdb") ) ) return false; +if( !(logs = GET_SYMBOL("logs") ) ) return false; +if( !(mail = GET_SYMBOL("mail") ) ) return false; +if( !(map = GET_SYMBOL("map") ) ) return false; +if( !(mapit = GET_SYMBOL("mapit") ) ) return false; +if( !(mapreg = GET_SYMBOL("mapreg") ) ) return false; +if( !(mercenary = GET_SYMBOL("mercenary") ) ) return false; +if( !(mob = GET_SYMBOL("mob") ) ) return false; +if( !(npc = GET_SYMBOL("npc") ) ) return false; +if( !(party = GET_SYMBOL("party") ) ) return false; +if( !(path = GET_SYMBOL("path") ) ) return false; +if( !(pc = GET_SYMBOL("pc") ) ) return false; +if( !(pet = GET_SYMBOL("pet") ) ) return false; +if( !(quest = GET_SYMBOL("quest") ) ) return false; +if( !(script = GET_SYMBOL("script") ) ) return false; +if( !(searchstore = GET_SYMBOL("searchstore") ) ) return false; +if( !(skill = GET_SYMBOL("skill") ) ) return false; +if( !(status = GET_SYMBOL("status") ) ) return false; +if( !(storage = GET_SYMBOL("storage") ) ) return false; +if( !(trade = GET_SYMBOL("trade") ) ) return false; +if( !(unit = GET_SYMBOL("unit") ) ) return false; +if( !(vending = GET_SYMBOL("vending") ) ) return false; diff --git a/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc new file mode 100644 index 000000000..c682e4e58 --- /dev/null +++ b/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc @@ -0,0 +1,9751 @@ +struct { +struct HPMHookPoint *HP_atcommand_init_pre; +struct HPMHookPoint *HP_atcommand_init_post; +struct HPMHookPoint *HP_atcommand_final_pre; +struct HPMHookPoint *HP_atcommand_final_post; +struct HPMHookPoint *HP_atcommand_parse_pre; +struct HPMHookPoint *HP_atcommand_parse_post; +struct HPMHookPoint *HP_atcommand_create_pre; +struct HPMHookPoint *HP_atcommand_create_post; +struct HPMHookPoint *HP_atcommand_can_use_pre; +struct HPMHookPoint *HP_atcommand_can_use_post; +struct HPMHookPoint *HP_atcommand_can_use2_pre; +struct HPMHookPoint *HP_atcommand_can_use2_post; +struct HPMHookPoint *HP_atcommand_load_groups_pre; +struct HPMHookPoint *HP_atcommand_load_groups_post; +struct HPMHookPoint *HP_atcommand_exists_pre; +struct HPMHookPoint *HP_atcommand_exists_post; +struct HPMHookPoint *HP_atcommand_msg_read_pre; +struct HPMHookPoint *HP_atcommand_msg_read_post; +struct HPMHookPoint *HP_atcommand_final_msg_pre; +struct HPMHookPoint *HP_atcommand_final_msg_post; +struct HPMHookPoint *HP_atcommand_get_bind_byname_pre; +struct HPMHookPoint *HP_atcommand_get_bind_byname_post; +struct HPMHookPoint *HP_atcommand_get_info_byname_pre; +struct HPMHookPoint *HP_atcommand_get_info_byname_post; +struct HPMHookPoint *HP_atcommand_check_alias_pre; +struct HPMHookPoint *HP_atcommand_check_alias_post; +struct HPMHookPoint *HP_atcommand_get_suggestions_pre; +struct HPMHookPoint *HP_atcommand_get_suggestions_post; +struct HPMHookPoint *HP_atcommand_config_read_pre; +struct HPMHookPoint *HP_atcommand_config_read_post; +struct HPMHookPoint *HP_atcommand_stopattack_pre; +struct HPMHookPoint *HP_atcommand_stopattack_post; +struct HPMHookPoint *HP_atcommand_pvpoff_sub_pre; +struct HPMHookPoint *HP_atcommand_pvpoff_sub_post; +struct HPMHookPoint *HP_atcommand_pvpon_sub_pre; +struct HPMHookPoint *HP_atcommand_pvpon_sub_post; +struct HPMHookPoint *HP_atcommand_atkillmonster_sub_pre; +struct HPMHookPoint *HP_atcommand_atkillmonster_sub_post; +struct HPMHookPoint *HP_atcommand_raise_sub_pre; +struct HPMHookPoint *HP_atcommand_raise_sub_post; +struct HPMHookPoint *HP_atcommand_get_jail_time_pre; +struct HPMHookPoint *HP_atcommand_get_jail_time_post; +struct HPMHookPoint *HP_atcommand_cleanfloor_sub_pre; +struct HPMHookPoint *HP_atcommand_cleanfloor_sub_post; +struct HPMHookPoint *HP_atcommand_mutearea_sub_pre; +struct HPMHookPoint *HP_atcommand_mutearea_sub_post; +struct HPMHookPoint *HP_atcommand_commands_sub_pre; +struct HPMHookPoint *HP_atcommand_commands_sub_post; +struct HPMHookPoint *HP_atcommand_cmd_db_clear_pre; +struct HPMHookPoint *HP_atcommand_cmd_db_clear_post; +struct HPMHookPoint *HP_atcommand_cmd_db_clear_sub_pre; +struct HPMHookPoint *HP_atcommand_cmd_db_clear_sub_post; +struct HPMHookPoint *HP_atcommand_doload_pre; +struct HPMHookPoint *HP_atcommand_doload_post; +struct HPMHookPoint *HP_atcommand_base_commands_pre; +struct HPMHookPoint *HP_atcommand_base_commands_post; +struct HPMHookPoint *HP_battle_init_pre; +struct HPMHookPoint *HP_battle_init_post; +struct HPMHookPoint *HP_battle_final_pre; +struct HPMHookPoint *HP_battle_final_post; +struct HPMHookPoint *HP_battle_calc_attack_pre; +struct HPMHookPoint *HP_battle_calc_attack_post; +struct HPMHookPoint *HP_battle_calc_damage_pre; +struct HPMHookPoint *HP_battle_calc_damage_post; +struct HPMHookPoint *HP_battle_calc_gvg_damage_pre; +struct HPMHookPoint *HP_battle_calc_gvg_damage_post; +struct HPMHookPoint *HP_battle_calc_bg_damage_pre; +struct HPMHookPoint *HP_battle_calc_bg_damage_post; +struct HPMHookPoint *HP_battle_weapon_attack_pre; +struct HPMHookPoint *HP_battle_weapon_attack_post; +struct HPMHookPoint *HP_battle_calc_weapon_attack_pre; +struct HPMHookPoint *HP_battle_calc_weapon_attack_post; +struct HPMHookPoint *HP_battle_delay_damage_pre; +struct HPMHookPoint *HP_battle_delay_damage_post; +struct HPMHookPoint *HP_battle_drain_pre; +struct HPMHookPoint *HP_battle_drain_post; +struct HPMHookPoint *HP_battle_calc_return_damage_pre; +struct HPMHookPoint *HP_battle_calc_return_damage_post; +struct HPMHookPoint *HP_battle_attr_ratio_pre; +struct HPMHookPoint *HP_battle_attr_ratio_post; +struct HPMHookPoint *HP_battle_attr_fix_pre; +struct HPMHookPoint *HP_battle_attr_fix_post; +struct HPMHookPoint *HP_battle_calc_cardfix_pre; +struct HPMHookPoint *HP_battle_calc_cardfix_post; +struct HPMHookPoint *HP_battle_calc_elefix_pre; +struct HPMHookPoint *HP_battle_calc_elefix_post; +struct HPMHookPoint *HP_battle_calc_masteryfix_pre; +struct HPMHookPoint *HP_battle_calc_masteryfix_post; +struct HPMHookPoint *HP_battle_calc_skillratio_pre; +struct HPMHookPoint *HP_battle_calc_skillratio_post; +struct HPMHookPoint *HP_battle_calc_sizefix_pre; +struct HPMHookPoint *HP_battle_calc_sizefix_post; +struct HPMHookPoint *HP_battle_calc_weapon_damage_pre; +struct HPMHookPoint *HP_battle_calc_weapon_damage_post; +struct HPMHookPoint *HP_battle_calc_defense_pre; +struct HPMHookPoint *HP_battle_calc_defense_post; +struct HPMHookPoint *HP_battle_get_master_pre; +struct HPMHookPoint *HP_battle_get_master_post; +struct HPMHookPoint *HP_battle_get_targeted_pre; +struct HPMHookPoint *HP_battle_get_targeted_post; +struct HPMHookPoint *HP_battle_get_enemy_pre; +struct HPMHookPoint *HP_battle_get_enemy_post; +struct HPMHookPoint *HP_battle_get_target_pre; +struct HPMHookPoint *HP_battle_get_target_post; +struct HPMHookPoint *HP_battle_get_current_skill_pre; +struct HPMHookPoint *HP_battle_get_current_skill_post; +struct HPMHookPoint *HP_battle_check_undead_pre; +struct HPMHookPoint *HP_battle_check_undead_post; +struct HPMHookPoint *HP_battle_check_target_pre; +struct HPMHookPoint *HP_battle_check_target_post; +struct HPMHookPoint *HP_battle_check_range_pre; +struct HPMHookPoint *HP_battle_check_range_post; +struct HPMHookPoint *HP_battle_consume_ammo_pre; +struct HPMHookPoint *HP_battle_consume_ammo_post; +struct HPMHookPoint *HP_battle_get_targeted_sub_pre; +struct HPMHookPoint *HP_battle_get_targeted_sub_post; +struct HPMHookPoint *HP_battle_get_enemy_sub_pre; +struct HPMHookPoint *HP_battle_get_enemy_sub_post; +struct HPMHookPoint *HP_battle_get_enemy_area_sub_pre; +struct HPMHookPoint *HP_battle_get_enemy_area_sub_post; +struct HPMHookPoint *HP_battle_delay_damage_sub_pre; +struct HPMHookPoint *HP_battle_delay_damage_sub_post; +struct HPMHookPoint *HP_battle_blewcount_bonus_pre; +struct HPMHookPoint *HP_battle_blewcount_bonus_post; +struct HPMHookPoint *HP_battle_range_type_pre; +struct HPMHookPoint *HP_battle_range_type_post; +struct HPMHookPoint *HP_battle_calc_base_damage_pre; +struct HPMHookPoint *HP_battle_calc_base_damage_post; +struct HPMHookPoint *HP_battle_calc_base_damage2_pre; +struct HPMHookPoint *HP_battle_calc_base_damage2_post; +struct HPMHookPoint *HP_battle_calc_misc_attack_pre; +struct HPMHookPoint *HP_battle_calc_misc_attack_post; +struct HPMHookPoint *HP_battle_calc_magic_attack_pre; +struct HPMHookPoint *HP_battle_calc_magic_attack_post; +struct HPMHookPoint *HP_battle_adjust_skill_damage_pre; +struct HPMHookPoint *HP_battle_adjust_skill_damage_post; +struct HPMHookPoint *HP_battle_add_mastery_pre; +struct HPMHookPoint *HP_battle_add_mastery_post; +struct HPMHookPoint *HP_battle_calc_drain_pre; +struct HPMHookPoint *HP_battle_calc_drain_post; +struct HPMHookPoint *HP_battle_config_read_pre; +struct HPMHookPoint *HP_battle_config_read_post; +struct HPMHookPoint *HP_battle_config_set_defaults_pre; +struct HPMHookPoint *HP_battle_config_set_defaults_post; +struct HPMHookPoint *HP_battle_config_set_value_pre; +struct HPMHookPoint *HP_battle_config_set_value_post; +struct HPMHookPoint *HP_battle_config_get_value_pre; +struct HPMHookPoint *HP_battle_config_get_value_post; +struct HPMHookPoint *HP_battle_config_adjust_pre; +struct HPMHookPoint *HP_battle_config_adjust_post; +struct HPMHookPoint *HP_battle_get_enemy_area_pre; +struct HPMHookPoint *HP_battle_get_enemy_area_post; +struct HPMHookPoint *HP_battle_damage_area_pre; +struct HPMHookPoint *HP_battle_damage_area_post; +struct HPMHookPoint *HP_bg_init_pre; +struct HPMHookPoint *HP_bg_init_post; +struct HPMHookPoint *HP_bg_final_pre; +struct HPMHookPoint *HP_bg_final_post; +struct HPMHookPoint *HP_bg_name2arena_pre; +struct HPMHookPoint *HP_bg_name2arena_post; +struct HPMHookPoint *HP_bg_queue_add_pre; +struct HPMHookPoint *HP_bg_queue_add_post; +struct HPMHookPoint *HP_bg_can_queue_pre; +struct HPMHookPoint *HP_bg_can_queue_post; +struct HPMHookPoint *HP_bg_id2pos_pre; +struct HPMHookPoint *HP_bg_id2pos_post; +struct HPMHookPoint *HP_bg_queue_pc_cleanup_pre; +struct HPMHookPoint *HP_bg_queue_pc_cleanup_post; +struct HPMHookPoint *HP_bg_begin_pre; +struct HPMHookPoint *HP_bg_begin_post; +struct HPMHookPoint *HP_bg_begin_timer_pre; +struct HPMHookPoint *HP_bg_begin_timer_post; +struct HPMHookPoint *HP_bg_queue_pregame_pre; +struct HPMHookPoint *HP_bg_queue_pregame_post; +struct HPMHookPoint *HP_bg_fillup_timer_pre; +struct HPMHookPoint *HP_bg_fillup_timer_post; +struct HPMHookPoint *HP_bg_queue_ready_ack_pre; +struct HPMHookPoint *HP_bg_queue_ready_ack_post; +struct HPMHookPoint *HP_bg_match_over_pre; +struct HPMHookPoint *HP_bg_match_over_post; +struct HPMHookPoint *HP_bg_queue_check_pre; +struct HPMHookPoint *HP_bg_queue_check_post; +struct HPMHookPoint *HP_bg_team_search_pre; +struct HPMHookPoint *HP_bg_team_search_post; +struct HPMHookPoint *HP_bg_getavailablesd_pre; +struct HPMHookPoint *HP_bg_getavailablesd_post; +struct HPMHookPoint *HP_bg_team_delete_pre; +struct HPMHookPoint *HP_bg_team_delete_post; +struct HPMHookPoint *HP_bg_team_warp_pre; +struct HPMHookPoint *HP_bg_team_warp_post; +struct HPMHookPoint *HP_bg_send_dot_remove_pre; +struct HPMHookPoint *HP_bg_send_dot_remove_post; +struct HPMHookPoint *HP_bg_team_join_pre; +struct HPMHookPoint *HP_bg_team_join_post; +struct HPMHookPoint *HP_bg_team_leave_pre; +struct HPMHookPoint *HP_bg_team_leave_post; +struct HPMHookPoint *HP_bg_member_respawn_pre; +struct HPMHookPoint *HP_bg_member_respawn_post; +struct HPMHookPoint *HP_bg_create_pre; +struct HPMHookPoint *HP_bg_create_post; +struct HPMHookPoint *HP_bg_team_get_id_pre; +struct HPMHookPoint *HP_bg_team_get_id_post; +struct HPMHookPoint *HP_bg_send_message_pre; +struct HPMHookPoint *HP_bg_send_message_post; +struct HPMHookPoint *HP_bg_send_xy_timer_sub_pre; +struct HPMHookPoint *HP_bg_send_xy_timer_sub_post; +struct HPMHookPoint *HP_bg_send_xy_timer_pre; +struct HPMHookPoint *HP_bg_send_xy_timer_post; +struct HPMHookPoint *HP_bg_config_read_pre; +struct HPMHookPoint *HP_bg_config_read_post; +struct HPMHookPoint *HP_buyingstore_setup_pre; +struct HPMHookPoint *HP_buyingstore_setup_post; +struct HPMHookPoint *HP_buyingstore_create_pre; +struct HPMHookPoint *HP_buyingstore_create_post; +struct HPMHookPoint *HP_buyingstore_close_pre; +struct HPMHookPoint *HP_buyingstore_close_post; +struct HPMHookPoint *HP_buyingstore_open_pre; +struct HPMHookPoint *HP_buyingstore_open_post; +struct HPMHookPoint *HP_buyingstore_trade_pre; +struct HPMHookPoint *HP_buyingstore_trade_post; +struct HPMHookPoint *HP_buyingstore_search_pre; +struct HPMHookPoint *HP_buyingstore_search_post; +struct HPMHookPoint *HP_buyingstore_searchall_pre; +struct HPMHookPoint *HP_buyingstore_searchall_post; +struct HPMHookPoint *HP_buyingstore_getuid_pre; +struct HPMHookPoint *HP_buyingstore_getuid_post; +struct HPMHookPoint *HP_chat_create_pc_chat_pre; +struct HPMHookPoint *HP_chat_create_pc_chat_post; +struct HPMHookPoint *HP_chat_join_pre; +struct HPMHookPoint *HP_chat_join_post; +struct HPMHookPoint *HP_chat_leave_pre; +struct HPMHookPoint *HP_chat_leave_post; +struct HPMHookPoint *HP_chat_change_owner_pre; +struct HPMHookPoint *HP_chat_change_owner_post; +struct HPMHookPoint *HP_chat_change_status_pre; +struct HPMHookPoint *HP_chat_change_status_post; +struct HPMHookPoint *HP_chat_kick_pre; +struct HPMHookPoint *HP_chat_kick_post; +struct HPMHookPoint *HP_chat_create_npc_chat_pre; +struct HPMHookPoint *HP_chat_create_npc_chat_post; +struct HPMHookPoint *HP_chat_delete_npc_chat_pre; +struct HPMHookPoint *HP_chat_delete_npc_chat_post; +struct HPMHookPoint *HP_chat_enable_event_pre; +struct HPMHookPoint *HP_chat_enable_event_post; +struct HPMHookPoint *HP_chat_disable_event_pre; +struct HPMHookPoint *HP_chat_disable_event_post; +struct HPMHookPoint *HP_chat_npc_kick_all_pre; +struct HPMHookPoint *HP_chat_npc_kick_all_post; +struct HPMHookPoint *HP_chat_trigger_event_pre; +struct HPMHookPoint *HP_chat_trigger_event_post; +struct HPMHookPoint *HP_chat_create_pre; +struct HPMHookPoint *HP_chat_create_post; +struct HPMHookPoint *HP_chrif_final_pre; +struct HPMHookPoint *HP_chrif_final_post; +struct HPMHookPoint *HP_chrif_init_pre; +struct HPMHookPoint *HP_chrif_init_post; +struct HPMHookPoint *HP_chrif_setuserid_pre; +struct HPMHookPoint *HP_chrif_setuserid_post; +struct HPMHookPoint *HP_chrif_setpasswd_pre; +struct HPMHookPoint *HP_chrif_setpasswd_post; +struct HPMHookPoint *HP_chrif_checkdefaultlogin_pre; +struct HPMHookPoint *HP_chrif_checkdefaultlogin_post; +struct HPMHookPoint *HP_chrif_setip_pre; +struct HPMHookPoint *HP_chrif_setip_post; +struct HPMHookPoint *HP_chrif_setport_pre; +struct HPMHookPoint *HP_chrif_setport_post; +struct HPMHookPoint *HP_chrif_isconnected_pre; +struct HPMHookPoint *HP_chrif_isconnected_post; +struct HPMHookPoint *HP_chrif_check_shutdown_pre; +struct HPMHookPoint *HP_chrif_check_shutdown_post; +struct HPMHookPoint *HP_chrif_search_pre; +struct HPMHookPoint *HP_chrif_search_post; +struct HPMHookPoint *HP_chrif_auth_check_pre; +struct HPMHookPoint *HP_chrif_auth_check_post; +struct HPMHookPoint *HP_chrif_auth_delete_pre; +struct HPMHookPoint *HP_chrif_auth_delete_post; +struct HPMHookPoint *HP_chrif_auth_finished_pre; +struct HPMHookPoint *HP_chrif_auth_finished_post; +struct HPMHookPoint *HP_chrif_authreq_pre; +struct HPMHookPoint *HP_chrif_authreq_post; +struct HPMHookPoint *HP_chrif_authok_pre; +struct HPMHookPoint *HP_chrif_authok_post; +struct HPMHookPoint *HP_chrif_scdata_request_pre; +struct HPMHookPoint *HP_chrif_scdata_request_post; +struct HPMHookPoint *HP_chrif_save_pre; +struct HPMHookPoint *HP_chrif_save_post; +struct HPMHookPoint *HP_chrif_charselectreq_pre; +struct HPMHookPoint *HP_chrif_charselectreq_post; +struct HPMHookPoint *HP_chrif_changemapserver_pre; +struct HPMHookPoint *HP_chrif_changemapserver_post; +struct HPMHookPoint *HP_chrif_searchcharid_pre; +struct HPMHookPoint *HP_chrif_searchcharid_post; +struct HPMHookPoint *HP_chrif_changeemail_pre; +struct HPMHookPoint *HP_chrif_changeemail_post; +struct HPMHookPoint *HP_chrif_char_ask_name_pre; +struct HPMHookPoint *HP_chrif_char_ask_name_post; +struct HPMHookPoint *HP_chrif_updatefamelist_pre; +struct HPMHookPoint *HP_chrif_updatefamelist_post; +struct HPMHookPoint *HP_chrif_buildfamelist_pre; +struct HPMHookPoint *HP_chrif_buildfamelist_post; +struct HPMHookPoint *HP_chrif_save_scdata_pre; +struct HPMHookPoint *HP_chrif_save_scdata_post; +struct HPMHookPoint *HP_chrif_ragsrvinfo_pre; +struct HPMHookPoint *HP_chrif_ragsrvinfo_post; +struct HPMHookPoint *HP_chrif_char_offline_pre; +struct HPMHookPoint *HP_chrif_char_offline_post; +struct HPMHookPoint *HP_chrif_char_offline_nsd_pre; +struct HPMHookPoint *HP_chrif_char_offline_nsd_post; +struct HPMHookPoint *HP_chrif_char_reset_offline_pre; +struct HPMHookPoint *HP_chrif_char_reset_offline_post; +struct HPMHookPoint *HP_chrif_send_users_tochar_pre; +struct HPMHookPoint *HP_chrif_send_users_tochar_post; +struct HPMHookPoint *HP_chrif_char_online_pre; +struct HPMHookPoint *HP_chrif_char_online_post; +struct HPMHookPoint *HP_chrif_changesex_pre; +struct HPMHookPoint *HP_chrif_changesex_post; +struct HPMHookPoint *HP_chrif_divorce_pre; +struct HPMHookPoint *HP_chrif_divorce_post; +struct HPMHookPoint *HP_chrif_removefriend_pre; +struct HPMHookPoint *HP_chrif_removefriend_post; +struct HPMHookPoint *HP_chrif_send_report_pre; +struct HPMHookPoint *HP_chrif_send_report_post; +struct HPMHookPoint *HP_chrif_flush_fifo_pre; +struct HPMHookPoint *HP_chrif_flush_fifo_post; +struct HPMHookPoint *HP_chrif_skillid2idx_pre; +struct HPMHookPoint *HP_chrif_skillid2idx_post; +struct HPMHookPoint *HP_chrif_sd_to_auth_pre; +struct HPMHookPoint *HP_chrif_sd_to_auth_post; +struct HPMHookPoint *HP_chrif_check_connect_char_server_pre; +struct HPMHookPoint *HP_chrif_check_connect_char_server_post; +struct HPMHookPoint *HP_chrif_auth_logout_pre; +struct HPMHookPoint *HP_chrif_auth_logout_post; +struct HPMHookPoint *HP_chrif_save_ack_pre; +struct HPMHookPoint *HP_chrif_save_ack_post; +struct HPMHookPoint *HP_chrif_reconnect_pre; +struct HPMHookPoint *HP_chrif_reconnect_post; +struct HPMHookPoint *HP_chrif_auth_db_cleanup_sub_pre; +struct HPMHookPoint *HP_chrif_auth_db_cleanup_sub_post; +struct HPMHookPoint *HP_chrif_char_ask_name_answer_pre; +struct HPMHookPoint *HP_chrif_char_ask_name_answer_post; +struct HPMHookPoint *HP_chrif_auth_db_final_pre; +struct HPMHookPoint *HP_chrif_auth_db_final_post; +struct HPMHookPoint *HP_chrif_send_usercount_tochar_pre; +struct HPMHookPoint *HP_chrif_send_usercount_tochar_post; +struct HPMHookPoint *HP_chrif_auth_db_cleanup_pre; +struct HPMHookPoint *HP_chrif_auth_db_cleanup_post; +struct HPMHookPoint *HP_chrif_connect_pre; +struct HPMHookPoint *HP_chrif_connect_post; +struct HPMHookPoint *HP_chrif_connectack_pre; +struct HPMHookPoint *HP_chrif_connectack_post; +struct HPMHookPoint *HP_chrif_sendmap_pre; +struct HPMHookPoint *HP_chrif_sendmap_post; +struct HPMHookPoint *HP_chrif_sendmapack_pre; +struct HPMHookPoint *HP_chrif_sendmapack_post; +struct HPMHookPoint *HP_chrif_recvmap_pre; +struct HPMHookPoint *HP_chrif_recvmap_post; +struct HPMHookPoint *HP_chrif_changemapserverack_pre; +struct HPMHookPoint *HP_chrif_changemapserverack_post; +struct HPMHookPoint *HP_chrif_changedsex_pre; +struct HPMHookPoint *HP_chrif_changedsex_post; +struct HPMHookPoint *HP_chrif_divorceack_pre; +struct HPMHookPoint *HP_chrif_divorceack_post; +struct HPMHookPoint *HP_chrif_accountban_pre; +struct HPMHookPoint *HP_chrif_accountban_post; +struct HPMHookPoint *HP_chrif_recvfamelist_pre; +struct HPMHookPoint *HP_chrif_recvfamelist_post; +struct HPMHookPoint *HP_chrif_load_scdata_pre; +struct HPMHookPoint *HP_chrif_load_scdata_post; +struct HPMHookPoint *HP_chrif_update_ip_pre; +struct HPMHookPoint *HP_chrif_update_ip_post; +struct HPMHookPoint *HP_chrif_disconnectplayer_pre; +struct HPMHookPoint *HP_chrif_disconnectplayer_post; +struct HPMHookPoint *HP_chrif_removemap_pre; +struct HPMHookPoint *HP_chrif_removemap_post; +struct HPMHookPoint *HP_chrif_updatefamelist_ack_pre; +struct HPMHookPoint *HP_chrif_updatefamelist_ack_post; +struct HPMHookPoint *HP_chrif_keepalive_pre; +struct HPMHookPoint *HP_chrif_keepalive_post; +struct HPMHookPoint *HP_chrif_keepalive_ack_pre; +struct HPMHookPoint *HP_chrif_keepalive_ack_post; +struct HPMHookPoint *HP_chrif_deadopt_pre; +struct HPMHookPoint *HP_chrif_deadopt_post; +struct HPMHookPoint *HP_chrif_authfail_pre; +struct HPMHookPoint *HP_chrif_authfail_post; +struct HPMHookPoint *HP_chrif_on_ready_pre; +struct HPMHookPoint *HP_chrif_on_ready_post; +struct HPMHookPoint *HP_chrif_on_disconnect_pre; +struct HPMHookPoint *HP_chrif_on_disconnect_post; +struct HPMHookPoint *HP_chrif_parse_pre; +struct HPMHookPoint *HP_chrif_parse_post; +struct HPMHookPoint *HP_clif_init_pre; +struct HPMHookPoint *HP_clif_init_post; +struct HPMHookPoint *HP_clif_final_pre; +struct HPMHookPoint *HP_clif_final_post; +struct HPMHookPoint *HP_clif_setip_pre; +struct HPMHookPoint *HP_clif_setip_post; +struct HPMHookPoint *HP_clif_setbindip_pre; +struct HPMHookPoint *HP_clif_setbindip_post; +struct HPMHookPoint *HP_clif_setport_pre; +struct HPMHookPoint *HP_clif_setport_post; +struct HPMHookPoint *HP_clif_refresh_ip_pre; +struct HPMHookPoint *HP_clif_refresh_ip_post; +struct HPMHookPoint *HP_clif_send_pre; +struct HPMHookPoint *HP_clif_send_post; +struct HPMHookPoint *HP_clif_send_sub_pre; +struct HPMHookPoint *HP_clif_send_sub_post; +struct HPMHookPoint *HP_clif_parse_pre; +struct HPMHookPoint *HP_clif_parse_post; +struct HPMHookPoint *HP_clif_parse_cmd_pre; +struct HPMHookPoint *HP_clif_parse_cmd_post; +struct HPMHookPoint *HP_clif_decrypt_cmd_pre; +struct HPMHookPoint *HP_clif_decrypt_cmd_post; +struct HPMHookPoint *HP_clif_authok_pre; +struct HPMHookPoint *HP_clif_authok_post; +struct HPMHookPoint *HP_clif_authrefuse_pre; +struct HPMHookPoint *HP_clif_authrefuse_post; +struct HPMHookPoint *HP_clif_authfail_fd_pre; +struct HPMHookPoint *HP_clif_authfail_fd_post; +struct HPMHookPoint *HP_clif_charselectok_pre; +struct HPMHookPoint *HP_clif_charselectok_post; +struct HPMHookPoint *HP_clif_dropflooritem_pre; +struct HPMHookPoint *HP_clif_dropflooritem_post; +struct HPMHookPoint *HP_clif_clearflooritem_pre; +struct HPMHookPoint *HP_clif_clearflooritem_post; +struct HPMHookPoint *HP_clif_additem_pre; +struct HPMHookPoint *HP_clif_additem_post; +struct HPMHookPoint *HP_clif_dropitem_pre; +struct HPMHookPoint *HP_clif_dropitem_post; +struct HPMHookPoint *HP_clif_delitem_pre; +struct HPMHookPoint *HP_clif_delitem_post; +struct HPMHookPoint *HP_clif_takeitem_pre; +struct HPMHookPoint *HP_clif_takeitem_post; +struct HPMHookPoint *HP_clif_arrowequip_pre; +struct HPMHookPoint *HP_clif_arrowequip_post; +struct HPMHookPoint *HP_clif_arrow_fail_pre; +struct HPMHookPoint *HP_clif_arrow_fail_post; +struct HPMHookPoint *HP_clif_use_card_pre; +struct HPMHookPoint *HP_clif_use_card_post; +struct HPMHookPoint *HP_clif_cart_additem_pre; +struct HPMHookPoint *HP_clif_cart_additem_post; +struct HPMHookPoint *HP_clif_cart_delitem_pre; +struct HPMHookPoint *HP_clif_cart_delitem_post; +struct HPMHookPoint *HP_clif_equipitemack_pre; +struct HPMHookPoint *HP_clif_equipitemack_post; +struct HPMHookPoint *HP_clif_unequipitemack_pre; +struct HPMHookPoint *HP_clif_unequipitemack_post; +struct HPMHookPoint *HP_clif_useitemack_pre; +struct HPMHookPoint *HP_clif_useitemack_post; +struct HPMHookPoint *HP_clif_addcards_pre; +struct HPMHookPoint *HP_clif_addcards_post; +struct HPMHookPoint *HP_clif_addcards2_pre; +struct HPMHookPoint *HP_clif_addcards2_post; +struct HPMHookPoint *HP_clif_item_sub_pre; +struct HPMHookPoint *HP_clif_item_sub_post; +struct HPMHookPoint *HP_clif_getareachar_item_pre; +struct HPMHookPoint *HP_clif_getareachar_item_post; +struct HPMHookPoint *HP_clif_cart_additem_ack_pre; +struct HPMHookPoint *HP_clif_cart_additem_ack_post; +struct HPMHookPoint *HP_clif_cashshop_load_pre; +struct HPMHookPoint *HP_clif_cashshop_load_post; +struct HPMHookPoint *HP_clif_package_announce_pre; +struct HPMHookPoint *HP_clif_package_announce_post; +struct HPMHookPoint *HP_clif_clearunit_single_pre; +struct HPMHookPoint *HP_clif_clearunit_single_post; +struct HPMHookPoint *HP_clif_clearunit_area_pre; +struct HPMHookPoint *HP_clif_clearunit_area_post; +struct HPMHookPoint *HP_clif_clearunit_delayed_pre; +struct HPMHookPoint *HP_clif_clearunit_delayed_post; +struct HPMHookPoint *HP_clif_walkok_pre; +struct HPMHookPoint *HP_clif_walkok_post; +struct HPMHookPoint *HP_clif_move_pre; +struct HPMHookPoint *HP_clif_move_post; +struct HPMHookPoint *HP_clif_move2_pre; +struct HPMHookPoint *HP_clif_move2_post; +struct HPMHookPoint *HP_clif_blown_pre; +struct HPMHookPoint *HP_clif_blown_post; +struct HPMHookPoint *HP_clif_slide_pre; +struct HPMHookPoint *HP_clif_slide_post; +struct HPMHookPoint *HP_clif_fixpos_pre; +struct HPMHookPoint *HP_clif_fixpos_post; +struct HPMHookPoint *HP_clif_changelook_pre; +struct HPMHookPoint *HP_clif_changelook_post; +struct HPMHookPoint *HP_clif_changetraplook_pre; +struct HPMHookPoint *HP_clif_changetraplook_post; +struct HPMHookPoint *HP_clif_refreshlook_pre; +struct HPMHookPoint *HP_clif_refreshlook_post; +struct HPMHookPoint *HP_clif_class_change_pre; +struct HPMHookPoint *HP_clif_class_change_post; +struct HPMHookPoint *HP_clif_skill_setunit_pre; +struct HPMHookPoint *HP_clif_skill_setunit_post; +struct HPMHookPoint *HP_clif_skill_delunit_pre; +struct HPMHookPoint *HP_clif_skill_delunit_post; +struct HPMHookPoint *HP_clif_skillunit_update_pre; +struct HPMHookPoint *HP_clif_skillunit_update_post; +struct HPMHookPoint *HP_clif_clearunit_delayed_sub_pre; +struct HPMHookPoint *HP_clif_clearunit_delayed_sub_post; +struct HPMHookPoint *HP_clif_set_unit_idle_pre; +struct HPMHookPoint *HP_clif_set_unit_idle_post; +struct HPMHookPoint *HP_clif_spawn_unit_pre; +struct HPMHookPoint *HP_clif_spawn_unit_post; +struct HPMHookPoint *HP_clif_spawn_unit2_pre; +struct HPMHookPoint *HP_clif_spawn_unit2_post; +struct HPMHookPoint *HP_clif_set_unit_idle2_pre; +struct HPMHookPoint *HP_clif_set_unit_idle2_post; +struct HPMHookPoint *HP_clif_set_unit_walking_pre; +struct HPMHookPoint *HP_clif_set_unit_walking_post; +struct HPMHookPoint *HP_clif_calc_walkdelay_pre; +struct HPMHookPoint *HP_clif_calc_walkdelay_post; +struct HPMHookPoint *HP_clif_getareachar_skillunit_pre; +struct HPMHookPoint *HP_clif_getareachar_skillunit_post; +struct HPMHookPoint *HP_clif_getareachar_unit_pre; +struct HPMHookPoint *HP_clif_getareachar_unit_post; +struct HPMHookPoint *HP_clif_clearchar_skillunit_pre; +struct HPMHookPoint *HP_clif_clearchar_skillunit_post; +struct HPMHookPoint *HP_clif_getareachar_pre; +struct HPMHookPoint *HP_clif_getareachar_post; +struct HPMHookPoint *HP_clif_spawn_pre; +struct HPMHookPoint *HP_clif_spawn_post; +struct HPMHookPoint *HP_clif_changemap_pre; +struct HPMHookPoint *HP_clif_changemap_post; +struct HPMHookPoint *HP_clif_changemapcell_pre; +struct HPMHookPoint *HP_clif_changemapcell_post; +struct HPMHookPoint *HP_clif_map_property_pre; +struct HPMHookPoint *HP_clif_map_property_post; +struct HPMHookPoint *HP_clif_pvpset_pre; +struct HPMHookPoint *HP_clif_pvpset_post; +struct HPMHookPoint *HP_clif_map_property_mapall_pre; +struct HPMHookPoint *HP_clif_map_property_mapall_post; +struct HPMHookPoint *HP_clif_bossmapinfo_pre; +struct HPMHookPoint *HP_clif_bossmapinfo_post; +struct HPMHookPoint *HP_clif_map_type_pre; +struct HPMHookPoint *HP_clif_map_type_post; +struct HPMHookPoint *HP_clif_maptypeproperty2_pre; +struct HPMHookPoint *HP_clif_maptypeproperty2_post; +struct HPMHookPoint *HP_clif_changemapserver_pre; +struct HPMHookPoint *HP_clif_changemapserver_post; +struct HPMHookPoint *HP_clif_npcbuysell_pre; +struct HPMHookPoint *HP_clif_npcbuysell_post; +struct HPMHookPoint *HP_clif_buylist_pre; +struct HPMHookPoint *HP_clif_buylist_post; +struct HPMHookPoint *HP_clif_selllist_pre; +struct HPMHookPoint *HP_clif_selllist_post; +struct HPMHookPoint *HP_clif_cashshop_show_pre; +struct HPMHookPoint *HP_clif_cashshop_show_post; +struct HPMHookPoint *HP_clif_npc_buy_result_pre; +struct HPMHookPoint *HP_clif_npc_buy_result_post; +struct HPMHookPoint *HP_clif_npc_sell_result_pre; +struct HPMHookPoint *HP_clif_npc_sell_result_post; +struct HPMHookPoint *HP_clif_cashshop_ack_pre; +struct HPMHookPoint *HP_clif_cashshop_ack_post; +struct HPMHookPoint *HP_clif_scriptmes_pre; +struct HPMHookPoint *HP_clif_scriptmes_post; +struct HPMHookPoint *HP_clif_scriptnext_pre; +struct HPMHookPoint *HP_clif_scriptnext_post; +struct HPMHookPoint *HP_clif_scriptclose_pre; +struct HPMHookPoint *HP_clif_scriptclose_post; +struct HPMHookPoint *HP_clif_scriptmenu_pre; +struct HPMHookPoint *HP_clif_scriptmenu_post; +struct HPMHookPoint *HP_clif_scriptinput_pre; +struct HPMHookPoint *HP_clif_scriptinput_post; +struct HPMHookPoint *HP_clif_scriptinputstr_pre; +struct HPMHookPoint *HP_clif_scriptinputstr_post; +struct HPMHookPoint *HP_clif_cutin_pre; +struct HPMHookPoint *HP_clif_cutin_post; +struct HPMHookPoint *HP_clif_sendfakenpc_pre; +struct HPMHookPoint *HP_clif_sendfakenpc_post; +struct HPMHookPoint *HP_clif_scriptclear_pre; +struct HPMHookPoint *HP_clif_scriptclear_post; +struct HPMHookPoint *HP_clif_viewpoint_pre; +struct HPMHookPoint *HP_clif_viewpoint_post; +struct HPMHookPoint *HP_clif_damage_pre; +struct HPMHookPoint *HP_clif_damage_post; +struct HPMHookPoint *HP_clif_sitting_pre; +struct HPMHookPoint *HP_clif_sitting_post; +struct HPMHookPoint *HP_clif_standing_pre; +struct HPMHookPoint *HP_clif_standing_post; +struct HPMHookPoint *HP_clif_arrow_create_list_pre; +struct HPMHookPoint *HP_clif_arrow_create_list_post; +struct HPMHookPoint *HP_clif_refresh_pre; +struct HPMHookPoint *HP_clif_refresh_post; +struct HPMHookPoint *HP_clif_fame_blacksmith_pre; +struct HPMHookPoint *HP_clif_fame_blacksmith_post; +struct HPMHookPoint *HP_clif_fame_alchemist_pre; +struct HPMHookPoint *HP_clif_fame_alchemist_post; +struct HPMHookPoint *HP_clif_fame_taekwon_pre; +struct HPMHookPoint *HP_clif_fame_taekwon_post; +struct HPMHookPoint *HP_clif_ranklist_pre; +struct HPMHookPoint *HP_clif_ranklist_post; +struct HPMHookPoint *HP_clif_update_rankingpoint_pre; +struct HPMHookPoint *HP_clif_update_rankingpoint_post; +struct HPMHookPoint *HP_clif_pRanklist_pre; +struct HPMHookPoint *HP_clif_pRanklist_post; +struct HPMHookPoint *HP_clif_hotkeys_pre; +struct HPMHookPoint *HP_clif_hotkeys_post; +struct HPMHookPoint *HP_clif_insight_pre; +struct HPMHookPoint *HP_clif_insight_post; +struct HPMHookPoint *HP_clif_outsight_pre; +struct HPMHookPoint *HP_clif_outsight_post; +struct HPMHookPoint *HP_clif_skillcastcancel_pre; +struct HPMHookPoint *HP_clif_skillcastcancel_post; +struct HPMHookPoint *HP_clif_skill_fail_pre; +struct HPMHookPoint *HP_clif_skill_fail_post; +struct HPMHookPoint *HP_clif_skill_cooldown_pre; +struct HPMHookPoint *HP_clif_skill_cooldown_post; +struct HPMHookPoint *HP_clif_skill_memomessage_pre; +struct HPMHookPoint *HP_clif_skill_memomessage_post; +struct HPMHookPoint *HP_clif_skill_mapinfomessage_pre; +struct HPMHookPoint *HP_clif_skill_mapinfomessage_post; +struct HPMHookPoint *HP_clif_skill_produce_mix_list_pre; +struct HPMHookPoint *HP_clif_skill_produce_mix_list_post; +struct HPMHookPoint *HP_clif_cooking_list_pre; +struct HPMHookPoint *HP_clif_cooking_list_post; +struct HPMHookPoint *HP_clif_autospell_pre; +struct HPMHookPoint *HP_clif_autospell_post; +struct HPMHookPoint *HP_clif_combo_delay_pre; +struct HPMHookPoint *HP_clif_combo_delay_post; +struct HPMHookPoint *HP_clif_status_change_pre; +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_favorite_item_pre; +struct HPMHookPoint *HP_clif_favorite_item_post; +struct HPMHookPoint *HP_clif_clearcart_pre; +struct HPMHookPoint *HP_clif_clearcart_post; +struct HPMHookPoint *HP_clif_item_identify_list_pre; +struct HPMHookPoint *HP_clif_item_identify_list_post; +struct HPMHookPoint *HP_clif_item_identified_pre; +struct HPMHookPoint *HP_clif_item_identified_post; +struct HPMHookPoint *HP_clif_item_repair_list_pre; +struct HPMHookPoint *HP_clif_item_repair_list_post; +struct HPMHookPoint *HP_clif_item_repaireffect_pre; +struct HPMHookPoint *HP_clif_item_repaireffect_post; +struct HPMHookPoint *HP_clif_item_damaged_pre; +struct HPMHookPoint *HP_clif_item_damaged_post; +struct HPMHookPoint *HP_clif_item_refine_list_pre; +struct HPMHookPoint *HP_clif_item_refine_list_post; +struct HPMHookPoint *HP_clif_item_skill_pre; +struct HPMHookPoint *HP_clif_item_skill_post; +struct HPMHookPoint *HP_clif_mvp_item_pre; +struct HPMHookPoint *HP_clif_mvp_item_post; +struct HPMHookPoint *HP_clif_mvp_exp_pre; +struct HPMHookPoint *HP_clif_mvp_exp_post; +struct HPMHookPoint *HP_clif_mvp_noitem_pre; +struct HPMHookPoint *HP_clif_mvp_noitem_post; +struct HPMHookPoint *HP_clif_changed_dir_pre; +struct HPMHookPoint *HP_clif_changed_dir_post; +struct HPMHookPoint *HP_clif_charnameack_pre; +struct HPMHookPoint *HP_clif_charnameack_post; +struct HPMHookPoint *HP_clif_monster_hp_bar_pre; +struct HPMHookPoint *HP_clif_monster_hp_bar_post; +struct HPMHookPoint *HP_clif_hpmeter_pre; +struct HPMHookPoint *HP_clif_hpmeter_post; +struct HPMHookPoint *HP_clif_hpmeter_single_pre; +struct HPMHookPoint *HP_clif_hpmeter_single_post; +struct HPMHookPoint *HP_clif_hpmeter_sub_pre; +struct HPMHookPoint *HP_clif_hpmeter_sub_post; +struct HPMHookPoint *HP_clif_upgrademessage_pre; +struct HPMHookPoint *HP_clif_upgrademessage_post; +struct HPMHookPoint *HP_clif_get_weapon_view_pre; +struct HPMHookPoint *HP_clif_get_weapon_view_post; +struct HPMHookPoint *HP_clif_gospel_info_pre; +struct HPMHookPoint *HP_clif_gospel_info_post; +struct HPMHookPoint *HP_clif_feel_req_pre; +struct HPMHookPoint *HP_clif_feel_req_post; +struct HPMHookPoint *HP_clif_starskill_pre; +struct HPMHookPoint *HP_clif_starskill_post; +struct HPMHookPoint *HP_clif_feel_info_pre; +struct HPMHookPoint *HP_clif_feel_info_post; +struct HPMHookPoint *HP_clif_hate_info_pre; +struct HPMHookPoint *HP_clif_hate_info_post; +struct HPMHookPoint *HP_clif_mission_info_pre; +struct HPMHookPoint *HP_clif_mission_info_post; +struct HPMHookPoint *HP_clif_feel_hate_reset_pre; +struct HPMHookPoint *HP_clif_feel_hate_reset_post; +struct HPMHookPoint *HP_clif_partytickack_pre; +struct HPMHookPoint *HP_clif_partytickack_post; +struct HPMHookPoint *HP_clif_equiptickack_pre; +struct HPMHookPoint *HP_clif_equiptickack_post; +struct HPMHookPoint *HP_clif_viewequip_ack_pre; +struct HPMHookPoint *HP_clif_viewequip_ack_post; +struct HPMHookPoint *HP_clif_viewequip_fail_pre; +struct HPMHookPoint *HP_clif_viewequip_fail_post; +struct HPMHookPoint *HP_clif_equpcheckbox_pre; +struct HPMHookPoint *HP_clif_equpcheckbox_post; +struct HPMHookPoint *HP_clif_displayexp_pre; +struct HPMHookPoint *HP_clif_displayexp_post; +struct HPMHookPoint *HP_clif_font_pre; +struct HPMHookPoint *HP_clif_font_post; +struct HPMHookPoint *HP_clif_progressbar_pre; +struct HPMHookPoint *HP_clif_progressbar_post; +struct HPMHookPoint *HP_clif_progressbar_abort_pre; +struct HPMHookPoint *HP_clif_progressbar_abort_post; +struct HPMHookPoint *HP_clif_showdigit_pre; +struct HPMHookPoint *HP_clif_showdigit_post; +struct HPMHookPoint *HP_clif_elementalconverter_list_pre; +struct HPMHookPoint *HP_clif_elementalconverter_list_post; +struct HPMHookPoint *HP_clif_spellbook_list_pre; +struct HPMHookPoint *HP_clif_spellbook_list_post; +struct HPMHookPoint *HP_clif_magicdecoy_list_pre; +struct HPMHookPoint *HP_clif_magicdecoy_list_post; +struct HPMHookPoint *HP_clif_poison_list_pre; +struct HPMHookPoint *HP_clif_poison_list_post; +struct HPMHookPoint *HP_clif_autoshadowspell_list_pre; +struct HPMHookPoint *HP_clif_autoshadowspell_list_post; +struct HPMHookPoint *HP_clif_skill_itemlistwindow_pre; +struct HPMHookPoint *HP_clif_skill_itemlistwindow_post; +struct HPMHookPoint *HP_clif_sc_load_pre; +struct HPMHookPoint *HP_clif_sc_load_post; +struct HPMHookPoint *HP_clif_sc_end_pre; +struct HPMHookPoint *HP_clif_sc_end_post; +struct HPMHookPoint *HP_clif_initialstatus_pre; +struct HPMHookPoint *HP_clif_initialstatus_post; +struct HPMHookPoint *HP_clif_cooldown_list_pre; +struct HPMHookPoint *HP_clif_cooldown_list_post; +struct HPMHookPoint *HP_clif_updatestatus_pre; +struct HPMHookPoint *HP_clif_updatestatus_post; +struct HPMHookPoint *HP_clif_changestatus_pre; +struct HPMHookPoint *HP_clif_changestatus_post; +struct HPMHookPoint *HP_clif_statusupack_pre; +struct HPMHookPoint *HP_clif_statusupack_post; +struct HPMHookPoint *HP_clif_movetoattack_pre; +struct HPMHookPoint *HP_clif_movetoattack_post; +struct HPMHookPoint *HP_clif_solved_charname_pre; +struct HPMHookPoint *HP_clif_solved_charname_post; +struct HPMHookPoint *HP_clif_charnameupdate_pre; +struct HPMHookPoint *HP_clif_charnameupdate_post; +struct HPMHookPoint *HP_clif_delayquit_pre; +struct HPMHookPoint *HP_clif_delayquit_post; +struct HPMHookPoint *HP_clif_getareachar_pc_pre; +struct HPMHookPoint *HP_clif_getareachar_pc_post; +struct HPMHookPoint *HP_clif_disconnect_ack_pre; +struct HPMHookPoint *HP_clif_disconnect_ack_post; +struct HPMHookPoint *HP_clif_PVPInfo_pre; +struct HPMHookPoint *HP_clif_PVPInfo_post; +struct HPMHookPoint *HP_clif_blacksmith_pre; +struct HPMHookPoint *HP_clif_blacksmith_post; +struct HPMHookPoint *HP_clif_alchemist_pre; +struct HPMHookPoint *HP_clif_alchemist_post; +struct HPMHookPoint *HP_clif_taekwon_pre; +struct HPMHookPoint *HP_clif_taekwon_post; +struct HPMHookPoint *HP_clif_ranking_pk_pre; +struct HPMHookPoint *HP_clif_ranking_pk_post; +struct HPMHookPoint *HP_clif_quitsave_pre; +struct HPMHookPoint *HP_clif_quitsave_post; +struct HPMHookPoint *HP_clif_misceffect_pre; +struct HPMHookPoint *HP_clif_misceffect_post; +struct HPMHookPoint *HP_clif_changeoption_pre; +struct HPMHookPoint *HP_clif_changeoption_post; +struct HPMHookPoint *HP_clif_changeoption2_pre; +struct HPMHookPoint *HP_clif_changeoption2_post; +struct HPMHookPoint *HP_clif_emotion_pre; +struct HPMHookPoint *HP_clif_emotion_post; +struct HPMHookPoint *HP_clif_talkiebox_pre; +struct HPMHookPoint *HP_clif_talkiebox_post; +struct HPMHookPoint *HP_clif_wedding_effect_pre; +struct HPMHookPoint *HP_clif_wedding_effect_post; +struct HPMHookPoint *HP_clif_divorced_pre; +struct HPMHookPoint *HP_clif_divorced_post; +struct HPMHookPoint *HP_clif_callpartner_pre; +struct HPMHookPoint *HP_clif_callpartner_post; +struct HPMHookPoint *HP_clif_skill_damage_pre; +struct HPMHookPoint *HP_clif_skill_damage_post; +struct HPMHookPoint *HP_clif_skill_nodamage_pre; +struct HPMHookPoint *HP_clif_skill_nodamage_post; +struct HPMHookPoint *HP_clif_skill_poseffect_pre; +struct HPMHookPoint *HP_clif_skill_poseffect_post; +struct HPMHookPoint *HP_clif_skill_estimation_pre; +struct HPMHookPoint *HP_clif_skill_estimation_post; +struct HPMHookPoint *HP_clif_skill_warppoint_pre; +struct HPMHookPoint *HP_clif_skill_warppoint_post; +struct HPMHookPoint *HP_clif_skillcasting_pre; +struct HPMHookPoint *HP_clif_skillcasting_post; +struct HPMHookPoint *HP_clif_produce_effect_pre; +struct HPMHookPoint *HP_clif_produce_effect_post; +struct HPMHookPoint *HP_clif_devotion_pre; +struct HPMHookPoint *HP_clif_devotion_post; +struct HPMHookPoint *HP_clif_spiritball_pre; +struct HPMHookPoint *HP_clif_spiritball_post; +struct HPMHookPoint *HP_clif_spiritball_single_pre; +struct HPMHookPoint *HP_clif_spiritball_single_post; +struct HPMHookPoint *HP_clif_bladestop_pre; +struct HPMHookPoint *HP_clif_bladestop_post; +struct HPMHookPoint *HP_clif_mvp_effect_pre; +struct HPMHookPoint *HP_clif_mvp_effect_post; +struct HPMHookPoint *HP_clif_heal_pre; +struct HPMHookPoint *HP_clif_heal_post; +struct HPMHookPoint *HP_clif_resurrection_pre; +struct HPMHookPoint *HP_clif_resurrection_post; +struct HPMHookPoint *HP_clif_refine_pre; +struct HPMHookPoint *HP_clif_refine_post; +struct HPMHookPoint *HP_clif_weather_pre; +struct HPMHookPoint *HP_clif_weather_post; +struct HPMHookPoint *HP_clif_specialeffect_pre; +struct HPMHookPoint *HP_clif_specialeffect_post; +struct HPMHookPoint *HP_clif_specialeffect_single_pre; +struct HPMHookPoint *HP_clif_specialeffect_single_post; +struct HPMHookPoint *HP_clif_specialeffect_value_pre; +struct HPMHookPoint *HP_clif_specialeffect_value_post; +struct HPMHookPoint *HP_clif_millenniumshield_pre; +struct HPMHookPoint *HP_clif_millenniumshield_post; +struct HPMHookPoint *HP_clif_charm_pre; +struct HPMHookPoint *HP_clif_charm_post; +struct HPMHookPoint *HP_clif_charm_single_pre; +struct HPMHookPoint *HP_clif_charm_single_post; +struct HPMHookPoint *HP_clif_snap_pre; +struct HPMHookPoint *HP_clif_snap_post; +struct HPMHookPoint *HP_clif_weather_check_pre; +struct HPMHookPoint *HP_clif_weather_check_post; +struct HPMHookPoint *HP_clif_playBGM_pre; +struct HPMHookPoint *HP_clif_playBGM_post; +struct HPMHookPoint *HP_clif_soundeffect_pre; +struct HPMHookPoint *HP_clif_soundeffect_post; +struct HPMHookPoint *HP_clif_soundeffectall_pre; +struct HPMHookPoint *HP_clif_soundeffectall_post; +struct HPMHookPoint *HP_clif_GlobalMessage_pre; +struct HPMHookPoint *HP_clif_GlobalMessage_post; +struct HPMHookPoint *HP_clif_createchat_pre; +struct HPMHookPoint *HP_clif_createchat_post; +struct HPMHookPoint *HP_clif_dispchat_pre; +struct HPMHookPoint *HP_clif_dispchat_post; +struct HPMHookPoint *HP_clif_joinchatfail_pre; +struct HPMHookPoint *HP_clif_joinchatfail_post; +struct HPMHookPoint *HP_clif_joinchatok_pre; +struct HPMHookPoint *HP_clif_joinchatok_post; +struct HPMHookPoint *HP_clif_addchat_pre; +struct HPMHookPoint *HP_clif_addchat_post; +struct HPMHookPoint *HP_clif_changechatowner_pre; +struct HPMHookPoint *HP_clif_changechatowner_post; +struct HPMHookPoint *HP_clif_clearchat_pre; +struct HPMHookPoint *HP_clif_clearchat_post; +struct HPMHookPoint *HP_clif_leavechat_pre; +struct HPMHookPoint *HP_clif_leavechat_post; +struct HPMHookPoint *HP_clif_changechatstatus_pre; +struct HPMHookPoint *HP_clif_changechatstatus_post; +struct HPMHookPoint *HP_clif_wis_message_pre; +struct HPMHookPoint *HP_clif_wis_message_post; +struct HPMHookPoint *HP_clif_wis_end_pre; +struct HPMHookPoint *HP_clif_wis_end_post; +struct HPMHookPoint *HP_clif_disp_onlyself_pre; +struct HPMHookPoint *HP_clif_disp_onlyself_post; +struct HPMHookPoint *HP_clif_disp_message_pre; +struct HPMHookPoint *HP_clif_disp_message_post; +struct HPMHookPoint *HP_clif_broadcast_pre; +struct HPMHookPoint *HP_clif_broadcast_post; +struct HPMHookPoint *HP_clif_broadcast2_pre; +struct HPMHookPoint *HP_clif_broadcast2_post; +struct HPMHookPoint *HP_clif_messagecolor_pre; +struct HPMHookPoint *HP_clif_messagecolor_post; +struct HPMHookPoint *HP_clif_disp_overhead_pre; +struct HPMHookPoint *HP_clif_disp_overhead_post; +struct HPMHookPoint *HP_clif_msg_pre; +struct HPMHookPoint *HP_clif_msg_post; +struct HPMHookPoint *HP_clif_msg_value_pre; +struct HPMHookPoint *HP_clif_msg_value_post; +struct HPMHookPoint *HP_clif_msg_skill_pre; +struct HPMHookPoint *HP_clif_msg_skill_post; +struct HPMHookPoint *HP_clif_msgtable_pre; +struct HPMHookPoint *HP_clif_msgtable_post; +struct HPMHookPoint *HP_clif_msgtable_num_pre; +struct HPMHookPoint *HP_clif_msgtable_num_post; +struct HPMHookPoint *HP_clif_message_pre; +struct HPMHookPoint *HP_clif_message_post; +struct HPMHookPoint *HP_clif_messageln_pre; +struct HPMHookPoint *HP_clif_messageln_post; +struct HPMHookPoint *HP_clif_colormes_pre; +struct HPMHookPoint *HP_clif_colormes_post; +struct HPMHookPoint *HP_clif_process_message_pre; +struct HPMHookPoint *HP_clif_process_message_post; +struct HPMHookPoint *HP_clif_wisexin_pre; +struct HPMHookPoint *HP_clif_wisexin_post; +struct HPMHookPoint *HP_clif_wisall_pre; +struct HPMHookPoint *HP_clif_wisall_post; +struct HPMHookPoint *HP_clif_PMIgnoreList_pre; +struct HPMHookPoint *HP_clif_PMIgnoreList_post; +struct HPMHookPoint *HP_clif_traderequest_pre; +struct HPMHookPoint *HP_clif_traderequest_post; +struct HPMHookPoint *HP_clif_tradestart_pre; +struct HPMHookPoint *HP_clif_tradestart_post; +struct HPMHookPoint *HP_clif_tradeadditem_pre; +struct HPMHookPoint *HP_clif_tradeadditem_post; +struct HPMHookPoint *HP_clif_tradeitemok_pre; +struct HPMHookPoint *HP_clif_tradeitemok_post; +struct HPMHookPoint *HP_clif_tradedeal_lock_pre; +struct HPMHookPoint *HP_clif_tradedeal_lock_post; +struct HPMHookPoint *HP_clif_tradecancelled_pre; +struct HPMHookPoint *HP_clif_tradecancelled_post; +struct HPMHookPoint *HP_clif_tradecompleted_pre; +struct HPMHookPoint *HP_clif_tradecompleted_post; +struct HPMHookPoint *HP_clif_tradeundo_pre; +struct HPMHookPoint *HP_clif_tradeundo_post; +struct HPMHookPoint *HP_clif_openvendingreq_pre; +struct HPMHookPoint *HP_clif_openvendingreq_post; +struct HPMHookPoint *HP_clif_showvendingboard_pre; +struct HPMHookPoint *HP_clif_showvendingboard_post; +struct HPMHookPoint *HP_clif_closevendingboard_pre; +struct HPMHookPoint *HP_clif_closevendingboard_post; +struct HPMHookPoint *HP_clif_vendinglist_pre; +struct HPMHookPoint *HP_clif_vendinglist_post; +struct HPMHookPoint *HP_clif_buyvending_pre; +struct HPMHookPoint *HP_clif_buyvending_post; +struct HPMHookPoint *HP_clif_openvending_pre; +struct HPMHookPoint *HP_clif_openvending_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_updatestorageamount_pre; +struct HPMHookPoint *HP_clif_updatestorageamount_post; +struct HPMHookPoint *HP_clif_storageitemadded_pre; +struct HPMHookPoint *HP_clif_storageitemadded_post; +struct HPMHookPoint *HP_clif_storageitemremoved_pre; +struct HPMHookPoint *HP_clif_storageitemremoved_post; +struct HPMHookPoint *HP_clif_storageclose_pre; +struct HPMHookPoint *HP_clif_storageclose_post; +struct HPMHookPoint *HP_clif_skillinfoblock_pre; +struct HPMHookPoint *HP_clif_skillinfoblock_post; +struct HPMHookPoint *HP_clif_skillup_pre; +struct HPMHookPoint *HP_clif_skillup_post; +struct HPMHookPoint *HP_clif_skillinfo_pre; +struct HPMHookPoint *HP_clif_skillinfo_post; +struct HPMHookPoint *HP_clif_addskill_pre; +struct HPMHookPoint *HP_clif_addskill_post; +struct HPMHookPoint *HP_clif_deleteskill_pre; +struct HPMHookPoint *HP_clif_deleteskill_post; +struct HPMHookPoint *HP_clif_party_created_pre; +struct HPMHookPoint *HP_clif_party_created_post; +struct HPMHookPoint *HP_clif_party_member_info_pre; +struct HPMHookPoint *HP_clif_party_member_info_post; +struct HPMHookPoint *HP_clif_party_info_pre; +struct HPMHookPoint *HP_clif_party_info_post; +struct HPMHookPoint *HP_clif_party_invite_pre; +struct HPMHookPoint *HP_clif_party_invite_post; +struct HPMHookPoint *HP_clif_party_inviteack_pre; +struct HPMHookPoint *HP_clif_party_inviteack_post; +struct HPMHookPoint *HP_clif_party_option_pre; +struct HPMHookPoint *HP_clif_party_option_post; +struct HPMHookPoint *HP_clif_party_withdraw_pre; +struct HPMHookPoint *HP_clif_party_withdraw_post; +struct HPMHookPoint *HP_clif_party_message_pre; +struct HPMHookPoint *HP_clif_party_message_post; +struct HPMHookPoint *HP_clif_party_xy_pre; +struct HPMHookPoint *HP_clif_party_xy_post; +struct HPMHookPoint *HP_clif_party_xy_single_pre; +struct HPMHookPoint *HP_clif_party_xy_single_post; +struct HPMHookPoint *HP_clif_party_hp_pre; +struct HPMHookPoint *HP_clif_party_hp_post; +struct HPMHookPoint *HP_clif_party_xy_remove_pre; +struct HPMHookPoint *HP_clif_party_xy_remove_post; +struct HPMHookPoint *HP_clif_party_show_picker_pre; +struct HPMHookPoint *HP_clif_party_show_picker_post; +struct HPMHookPoint *HP_clif_partyinvitationstate_pre; +struct HPMHookPoint *HP_clif_partyinvitationstate_post; +struct HPMHookPoint *HP_clif_guild_created_pre; +struct HPMHookPoint *HP_clif_guild_created_post; +struct HPMHookPoint *HP_clif_guild_belonginfo_pre; +struct HPMHookPoint *HP_clif_guild_belonginfo_post; +struct HPMHookPoint *HP_clif_guild_masterormember_pre; +struct HPMHookPoint *HP_clif_guild_masterormember_post; +struct HPMHookPoint *HP_clif_guild_basicinfo_pre; +struct HPMHookPoint *HP_clif_guild_basicinfo_post; +struct HPMHookPoint *HP_clif_guild_allianceinfo_pre; +struct HPMHookPoint *HP_clif_guild_allianceinfo_post; +struct HPMHookPoint *HP_clif_guild_memberlist_pre; +struct HPMHookPoint *HP_clif_guild_memberlist_post; +struct HPMHookPoint *HP_clif_guild_skillinfo_pre; +struct HPMHookPoint *HP_clif_guild_skillinfo_post; +struct HPMHookPoint *HP_clif_guild_send_onlineinfo_pre; +struct HPMHookPoint *HP_clif_guild_send_onlineinfo_post; +struct HPMHookPoint *HP_clif_guild_memberlogin_notice_pre; +struct HPMHookPoint *HP_clif_guild_memberlogin_notice_post; +struct HPMHookPoint *HP_clif_guild_invite_pre; +struct HPMHookPoint *HP_clif_guild_invite_post; +struct HPMHookPoint *HP_clif_guild_inviteack_pre; +struct HPMHookPoint *HP_clif_guild_inviteack_post; +struct HPMHookPoint *HP_clif_guild_leave_pre; +struct HPMHookPoint *HP_clif_guild_leave_post; +struct HPMHookPoint *HP_clif_guild_expulsion_pre; +struct HPMHookPoint *HP_clif_guild_expulsion_post; +struct HPMHookPoint *HP_clif_guild_positionchanged_pre; +struct HPMHookPoint *HP_clif_guild_positionchanged_post; +struct HPMHookPoint *HP_clif_guild_memberpositionchanged_pre; +struct HPMHookPoint *HP_clif_guild_memberpositionchanged_post; +struct HPMHookPoint *HP_clif_guild_emblem_pre; +struct HPMHookPoint *HP_clif_guild_emblem_post; +struct HPMHookPoint *HP_clif_guild_emblem_area_pre; +struct HPMHookPoint *HP_clif_guild_emblem_area_post; +struct HPMHookPoint *HP_clif_guild_notice_pre; +struct HPMHookPoint *HP_clif_guild_notice_post; +struct HPMHookPoint *HP_clif_guild_message_pre; +struct HPMHookPoint *HP_clif_guild_message_post; +struct HPMHookPoint *HP_clif_guild_skillup_pre; +struct HPMHookPoint *HP_clif_guild_skillup_post; +struct HPMHookPoint *HP_clif_guild_reqalliance_pre; +struct HPMHookPoint *HP_clif_guild_reqalliance_post; +struct HPMHookPoint *HP_clif_guild_allianceack_pre; +struct HPMHookPoint *HP_clif_guild_allianceack_post; +struct HPMHookPoint *HP_clif_guild_delalliance_pre; +struct HPMHookPoint *HP_clif_guild_delalliance_post; +struct HPMHookPoint *HP_clif_guild_oppositionack_pre; +struct HPMHookPoint *HP_clif_guild_oppositionack_post; +struct HPMHookPoint *HP_clif_guild_broken_pre; +struct HPMHookPoint *HP_clif_guild_broken_post; +struct HPMHookPoint *HP_clif_guild_xy_pre; +struct HPMHookPoint *HP_clif_guild_xy_post; +struct HPMHookPoint *HP_clif_guild_xy_single_pre; +struct HPMHookPoint *HP_clif_guild_xy_single_post; +struct HPMHookPoint *HP_clif_guild_xy_remove_pre; +struct HPMHookPoint *HP_clif_guild_xy_remove_post; +struct HPMHookPoint *HP_clif_guild_positionnamelist_pre; +struct HPMHookPoint *HP_clif_guild_positionnamelist_post; +struct HPMHookPoint *HP_clif_guild_positioninfolist_pre; +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_validate_emblem_pre; +struct HPMHookPoint *HP_clif_validate_emblem_post; +struct HPMHookPoint *HP_clif_bg_hp_pre; +struct HPMHookPoint *HP_clif_bg_hp_post; +struct HPMHookPoint *HP_clif_bg_xy_pre; +struct HPMHookPoint *HP_clif_bg_xy_post; +struct HPMHookPoint *HP_clif_bg_xy_remove_pre; +struct HPMHookPoint *HP_clif_bg_xy_remove_post; +struct HPMHookPoint *HP_clif_bg_message_pre; +struct HPMHookPoint *HP_clif_bg_message_post; +struct HPMHookPoint *HP_clif_bg_updatescore_pre; +struct HPMHookPoint *HP_clif_bg_updatescore_post; +struct HPMHookPoint *HP_clif_bg_updatescore_single_pre; +struct HPMHookPoint *HP_clif_bg_updatescore_single_post; +struct HPMHookPoint *HP_clif_sendbgemblem_area_pre; +struct HPMHookPoint *HP_clif_sendbgemblem_area_post; +struct HPMHookPoint *HP_clif_sendbgemblem_single_pre; +struct HPMHookPoint *HP_clif_sendbgemblem_single_post; +struct HPMHookPoint *HP_clif_instance_pre; +struct HPMHookPoint *HP_clif_instance_post; +struct HPMHookPoint *HP_clif_instance_join_pre; +struct HPMHookPoint *HP_clif_instance_join_post; +struct HPMHookPoint *HP_clif_instance_leave_pre; +struct HPMHookPoint *HP_clif_instance_leave_post; +struct HPMHookPoint *HP_clif_catch_process_pre; +struct HPMHookPoint *HP_clif_catch_process_post; +struct HPMHookPoint *HP_clif_pet_roulette_pre; +struct HPMHookPoint *HP_clif_pet_roulette_post; +struct HPMHookPoint *HP_clif_sendegg_pre; +struct HPMHookPoint *HP_clif_sendegg_post; +struct HPMHookPoint *HP_clif_send_petstatus_pre; +struct HPMHookPoint *HP_clif_send_petstatus_post; +struct HPMHookPoint *HP_clif_send_petdata_pre; +struct HPMHookPoint *HP_clif_send_petdata_post; +struct HPMHookPoint *HP_clif_pet_emotion_pre; +struct HPMHookPoint *HP_clif_pet_emotion_post; +struct HPMHookPoint *HP_clif_pet_food_pre; +struct HPMHookPoint *HP_clif_pet_food_post; +struct HPMHookPoint *HP_clif_friendslist_toggle_sub_pre; +struct HPMHookPoint *HP_clif_friendslist_toggle_sub_post; +struct HPMHookPoint *HP_clif_friendslist_send_pre; +struct HPMHookPoint *HP_clif_friendslist_send_post; +struct HPMHookPoint *HP_clif_friendslist_reqack_pre; +struct HPMHookPoint *HP_clif_friendslist_reqack_post; +struct HPMHookPoint *HP_clif_friendslist_toggle_pre; +struct HPMHookPoint *HP_clif_friendslist_toggle_post; +struct HPMHookPoint *HP_clif_friendlist_req_pre; +struct HPMHookPoint *HP_clif_friendlist_req_post; +struct HPMHookPoint *HP_clif_GM_kickack_pre; +struct HPMHookPoint *HP_clif_GM_kickack_post; +struct HPMHookPoint *HP_clif_GM_kick_pre; +struct HPMHookPoint *HP_clif_GM_kick_post; +struct HPMHookPoint *HP_clif_manner_message_pre; +struct HPMHookPoint *HP_clif_manner_message_post; +struct HPMHookPoint *HP_clif_GM_silence_pre; +struct HPMHookPoint *HP_clif_GM_silence_post; +struct HPMHookPoint *HP_clif_account_name_pre; +struct HPMHookPoint *HP_clif_account_name_post; +struct HPMHookPoint *HP_clif_check_pre; +struct HPMHookPoint *HP_clif_check_post; +struct HPMHookPoint *HP_clif_hominfo_pre; +struct HPMHookPoint *HP_clif_hominfo_post; +struct HPMHookPoint *HP_clif_homskillinfoblock_pre; +struct HPMHookPoint *HP_clif_homskillinfoblock_post; +struct HPMHookPoint *HP_clif_homskillup_pre; +struct HPMHookPoint *HP_clif_homskillup_post; +struct HPMHookPoint *HP_clif_hom_food_pre; +struct HPMHookPoint *HP_clif_hom_food_post; +struct HPMHookPoint *HP_clif_send_homdata_pre; +struct HPMHookPoint *HP_clif_send_homdata_post; +struct HPMHookPoint *HP_clif_quest_send_list_pre; +struct HPMHookPoint *HP_clif_quest_send_list_post; +struct HPMHookPoint *HP_clif_quest_send_mission_pre; +struct HPMHookPoint *HP_clif_quest_send_mission_post; +struct HPMHookPoint *HP_clif_quest_add_pre; +struct HPMHookPoint *HP_clif_quest_add_post; +struct HPMHookPoint *HP_clif_quest_delete_pre; +struct HPMHookPoint *HP_clif_quest_delete_post; +struct HPMHookPoint *HP_clif_quest_update_status_pre; +struct HPMHookPoint *HP_clif_quest_update_status_post; +struct HPMHookPoint *HP_clif_quest_update_objective_pre; +struct HPMHookPoint *HP_clif_quest_update_objective_post; +struct HPMHookPoint *HP_clif_quest_show_event_pre; +struct HPMHookPoint *HP_clif_quest_show_event_post; +struct HPMHookPoint *HP_clif_mail_window_pre; +struct HPMHookPoint *HP_clif_mail_window_post; +struct HPMHookPoint *HP_clif_mail_read_pre; +struct HPMHookPoint *HP_clif_mail_read_post; +struct HPMHookPoint *HP_clif_mail_delete_pre; +struct HPMHookPoint *HP_clif_mail_delete_post; +struct HPMHookPoint *HP_clif_mail_return_pre; +struct HPMHookPoint *HP_clif_mail_return_post; +struct HPMHookPoint *HP_clif_mail_send_pre; +struct HPMHookPoint *HP_clif_mail_send_post; +struct HPMHookPoint *HP_clif_mail_new_pre; +struct HPMHookPoint *HP_clif_mail_new_post; +struct HPMHookPoint *HP_clif_mail_refreshinbox_pre; +struct HPMHookPoint *HP_clif_mail_refreshinbox_post; +struct HPMHookPoint *HP_clif_mail_getattachment_pre; +struct HPMHookPoint *HP_clif_mail_getattachment_post; +struct HPMHookPoint *HP_clif_mail_setattachment_pre; +struct HPMHookPoint *HP_clif_mail_setattachment_post; +struct HPMHookPoint *HP_clif_auction_openwindow_pre; +struct HPMHookPoint *HP_clif_auction_openwindow_post; +struct HPMHookPoint *HP_clif_auction_results_pre; +struct HPMHookPoint *HP_clif_auction_results_post; +struct HPMHookPoint *HP_clif_auction_message_pre; +struct HPMHookPoint *HP_clif_auction_message_post; +struct HPMHookPoint *HP_clif_auction_close_pre; +struct HPMHookPoint *HP_clif_auction_close_post; +struct HPMHookPoint *HP_clif_auction_setitem_pre; +struct HPMHookPoint *HP_clif_auction_setitem_post; +struct HPMHookPoint *HP_clif_mercenary_info_pre; +struct HPMHookPoint *HP_clif_mercenary_info_post; +struct HPMHookPoint *HP_clif_mercenary_skillblock_pre; +struct HPMHookPoint *HP_clif_mercenary_skillblock_post; +struct HPMHookPoint *HP_clif_mercenary_message_pre; +struct HPMHookPoint *HP_clif_mercenary_message_post; +struct HPMHookPoint *HP_clif_mercenary_updatestatus_pre; +struct HPMHookPoint *HP_clif_mercenary_updatestatus_post; +struct HPMHookPoint *HP_clif_rental_time_pre; +struct HPMHookPoint *HP_clif_rental_time_post; +struct HPMHookPoint *HP_clif_rental_expired_pre; +struct HPMHookPoint *HP_clif_rental_expired_post; +struct HPMHookPoint *HP_clif_PartyBookingRegisterAck_pre; +struct HPMHookPoint *HP_clif_PartyBookingRegisterAck_post; +struct HPMHookPoint *HP_clif_PartyBookingDeleteAck_pre; +struct HPMHookPoint *HP_clif_PartyBookingDeleteAck_post; +struct HPMHookPoint *HP_clif_PartyBookingSearchAck_pre; +struct HPMHookPoint *HP_clif_PartyBookingSearchAck_post; +struct HPMHookPoint *HP_clif_PartyBookingUpdateNotify_pre; +struct HPMHookPoint *HP_clif_PartyBookingUpdateNotify_post; +struct HPMHookPoint *HP_clif_PartyBookingDeleteNotify_pre; +struct HPMHookPoint *HP_clif_PartyBookingDeleteNotify_post; +struct HPMHookPoint *HP_clif_PartyBookingInsertNotify_pre; +struct HPMHookPoint *HP_clif_PartyBookingInsertNotify_post; +struct HPMHookPoint *HP_clif_PartyRecruitRegisterAck_pre; +struct HPMHookPoint *HP_clif_PartyRecruitRegisterAck_post; +struct HPMHookPoint *HP_clif_PartyRecruitDeleteAck_pre; +struct HPMHookPoint *HP_clif_PartyRecruitDeleteAck_post; +struct HPMHookPoint *HP_clif_PartyRecruitSearchAck_pre; +struct HPMHookPoint *HP_clif_PartyRecruitSearchAck_post; +struct HPMHookPoint *HP_clif_PartyRecruitUpdateNotify_pre; +struct HPMHookPoint *HP_clif_PartyRecruitUpdateNotify_post; +struct HPMHookPoint *HP_clif_PartyRecruitDeleteNotify_pre; +struct HPMHookPoint *HP_clif_PartyRecruitDeleteNotify_post; +struct HPMHookPoint *HP_clif_PartyRecruitInsertNotify_pre; +struct HPMHookPoint *HP_clif_PartyRecruitInsertNotify_post; +struct HPMHookPoint *HP_clif_PartyBookingVolunteerInfo_pre; +struct HPMHookPoint *HP_clif_PartyBookingVolunteerInfo_post; +struct HPMHookPoint *HP_clif_PartyBookingRefuseVolunteer_pre; +struct HPMHookPoint *HP_clif_PartyBookingRefuseVolunteer_post; +struct HPMHookPoint *HP_clif_PartyBookingCancelVolunteer_pre; +struct HPMHookPoint *HP_clif_PartyBookingCancelVolunteer_post; +struct HPMHookPoint *HP_clif_PartyBookingAddFilteringList_pre; +struct HPMHookPoint *HP_clif_PartyBookingAddFilteringList_post; +struct HPMHookPoint *HP_clif_PartyBookingSubFilteringList_pre; +struct HPMHookPoint *HP_clif_PartyBookingSubFilteringList_post; +struct HPMHookPoint *HP_clif_buyingstore_open_pre; +struct HPMHookPoint *HP_clif_buyingstore_open_post; +struct HPMHookPoint *HP_clif_buyingstore_open_failed_pre; +struct HPMHookPoint *HP_clif_buyingstore_open_failed_post; +struct HPMHookPoint *HP_clif_buyingstore_myitemlist_pre; +struct HPMHookPoint *HP_clif_buyingstore_myitemlist_post; +struct HPMHookPoint *HP_clif_buyingstore_entry_pre; +struct HPMHookPoint *HP_clif_buyingstore_entry_post; +struct HPMHookPoint *HP_clif_buyingstore_entry_single_pre; +struct HPMHookPoint *HP_clif_buyingstore_entry_single_post; +struct HPMHookPoint *HP_clif_buyingstore_disappear_entry_pre; +struct HPMHookPoint *HP_clif_buyingstore_disappear_entry_post; +struct HPMHookPoint *HP_clif_buyingstore_disappear_entry_single_pre; +struct HPMHookPoint *HP_clif_buyingstore_disappear_entry_single_post; +struct HPMHookPoint *HP_clif_buyingstore_itemlist_pre; +struct HPMHookPoint *HP_clif_buyingstore_itemlist_post; +struct HPMHookPoint *HP_clif_buyingstore_trade_failed_buyer_pre; +struct HPMHookPoint *HP_clif_buyingstore_trade_failed_buyer_post; +struct HPMHookPoint *HP_clif_buyingstore_update_item_pre; +struct HPMHookPoint *HP_clif_buyingstore_update_item_post; +struct HPMHookPoint *HP_clif_buyingstore_delete_item_pre; +struct HPMHookPoint *HP_clif_buyingstore_delete_item_post; +struct HPMHookPoint *HP_clif_buyingstore_trade_failed_seller_pre; +struct HPMHookPoint *HP_clif_buyingstore_trade_failed_seller_post; +struct HPMHookPoint *HP_clif_search_store_info_ack_pre; +struct HPMHookPoint *HP_clif_search_store_info_ack_post; +struct HPMHookPoint *HP_clif_search_store_info_failed_pre; +struct HPMHookPoint *HP_clif_search_store_info_failed_post; +struct HPMHookPoint *HP_clif_open_search_store_info_pre; +struct HPMHookPoint *HP_clif_open_search_store_info_post; +struct HPMHookPoint *HP_clif_search_store_info_click_ack_pre; +struct HPMHookPoint *HP_clif_search_store_info_click_ack_post; +struct HPMHookPoint *HP_clif_elemental_info_pre; +struct HPMHookPoint *HP_clif_elemental_info_post; +struct HPMHookPoint *HP_clif_elemental_updatestatus_pre; +struct HPMHookPoint *HP_clif_elemental_updatestatus_post; +struct HPMHookPoint *HP_clif_bgqueue_ack_pre; +struct HPMHookPoint *HP_clif_bgqueue_ack_post; +struct HPMHookPoint *HP_clif_bgqueue_notice_delete_pre; +struct HPMHookPoint *HP_clif_bgqueue_notice_delete_post; +struct HPMHookPoint *HP_clif_bgqueue_update_info_pre; +struct HPMHookPoint *HP_clif_bgqueue_update_info_post; +struct HPMHookPoint *HP_clif_bgqueue_joined_pre; +struct HPMHookPoint *HP_clif_bgqueue_joined_post; +struct HPMHookPoint *HP_clif_bgqueue_pcleft_pre; +struct HPMHookPoint *HP_clif_bgqueue_pcleft_post; +struct HPMHookPoint *HP_clif_bgqueue_battlebegins_pre; +struct HPMHookPoint *HP_clif_bgqueue_battlebegins_post; +struct HPMHookPoint *HP_clif_adopt_reply_pre; +struct HPMHookPoint *HP_clif_adopt_reply_post; +struct HPMHookPoint *HP_clif_adopt_request_pre; +struct HPMHookPoint *HP_clif_adopt_request_post; +struct HPMHookPoint *HP_clif_readbook_pre; +struct HPMHookPoint *HP_clif_readbook_post; +struct HPMHookPoint *HP_clif_notify_time_pre; +struct HPMHookPoint *HP_clif_notify_time_post; +struct HPMHookPoint *HP_clif_user_count_pre; +struct HPMHookPoint *HP_clif_user_count_post; +struct HPMHookPoint *HP_clif_noask_sub_pre; +struct HPMHookPoint *HP_clif_noask_sub_post; +struct HPMHookPoint *HP_clif_bc_ready_pre; +struct HPMHookPoint *HP_clif_bc_ready_post; +struct HPMHookPoint *HP_clif_undisguise_timer_pre; +struct HPMHookPoint *HP_clif_undisguise_timer_post; +struct HPMHookPoint *HP_clif_chsys_create_pre; +struct HPMHookPoint *HP_clif_chsys_create_post; +struct HPMHookPoint *HP_clif_chsys_msg_pre; +struct HPMHookPoint *HP_clif_chsys_msg_post; +struct HPMHookPoint *HP_clif_chsys_msg2_pre; +struct HPMHookPoint *HP_clif_chsys_msg2_post; +struct HPMHookPoint *HP_clif_chsys_send_pre; +struct HPMHookPoint *HP_clif_chsys_send_post; +struct HPMHookPoint *HP_clif_chsys_join_pre; +struct HPMHookPoint *HP_clif_chsys_join_post; +struct HPMHookPoint *HP_clif_chsys_left_pre; +struct HPMHookPoint *HP_clif_chsys_left_post; +struct HPMHookPoint *HP_clif_chsys_delete_pre; +struct HPMHookPoint *HP_clif_chsys_delete_post; +struct HPMHookPoint *HP_clif_chsys_mjoin_pre; +struct HPMHookPoint *HP_clif_chsys_mjoin_post; +struct HPMHookPoint *HP_clif_chsys_quit_pre; +struct HPMHookPoint *HP_clif_chsys_quit_post; +struct HPMHookPoint *HP_clif_chsys_quitg_pre; +struct HPMHookPoint *HP_clif_chsys_quitg_post; +struct HPMHookPoint *HP_clif_chsys_gjoin_pre; +struct HPMHookPoint *HP_clif_chsys_gjoin_post; +struct HPMHookPoint *HP_clif_chsys_gleave_pre; +struct HPMHookPoint *HP_clif_chsys_gleave_post; +struct HPMHookPoint *HP_clif_pWantToConnection_pre; +struct HPMHookPoint *HP_clif_pWantToConnection_post; +struct HPMHookPoint *HP_clif_pLoadEndAck_pre; +struct HPMHookPoint *HP_clif_pLoadEndAck_post; +struct HPMHookPoint *HP_clif_pTickSend_pre; +struct HPMHookPoint *HP_clif_pTickSend_post; +struct HPMHookPoint *HP_clif_pHotkey_pre; +struct HPMHookPoint *HP_clif_pHotkey_post; +struct HPMHookPoint *HP_clif_pProgressbar_pre; +struct HPMHookPoint *HP_clif_pProgressbar_post; +struct HPMHookPoint *HP_clif_pWalkToXY_pre; +struct HPMHookPoint *HP_clif_pWalkToXY_post; +struct HPMHookPoint *HP_clif_pQuitGame_pre; +struct HPMHookPoint *HP_clif_pQuitGame_post; +struct HPMHookPoint *HP_clif_pGetCharNameRequest_pre; +struct HPMHookPoint *HP_clif_pGetCharNameRequest_post; +struct HPMHookPoint *HP_clif_pGlobalMessage_pre; +struct HPMHookPoint *HP_clif_pGlobalMessage_post; +struct HPMHookPoint *HP_clif_pMapMove_pre; +struct HPMHookPoint *HP_clif_pMapMove_post; +struct HPMHookPoint *HP_clif_pChangeDir_pre; +struct HPMHookPoint *HP_clif_pChangeDir_post; +struct HPMHookPoint *HP_clif_pEmotion_pre; +struct HPMHookPoint *HP_clif_pEmotion_post; +struct HPMHookPoint *HP_clif_pHowManyConnections_pre; +struct HPMHookPoint *HP_clif_pHowManyConnections_post; +struct HPMHookPoint *HP_clif_pActionRequest_pre; +struct HPMHookPoint *HP_clif_pActionRequest_post; +struct HPMHookPoint *HP_clif_pActionRequest_sub_pre; +struct HPMHookPoint *HP_clif_pActionRequest_sub_post; +struct HPMHookPoint *HP_clif_pRestart_pre; +struct HPMHookPoint *HP_clif_pRestart_post; +struct HPMHookPoint *HP_clif_pWisMessage_pre; +struct HPMHookPoint *HP_clif_pWisMessage_post; +struct HPMHookPoint *HP_clif_pBroadcast_pre; +struct HPMHookPoint *HP_clif_pBroadcast_post; +struct HPMHookPoint *HP_clif_pTakeItem_pre; +struct HPMHookPoint *HP_clif_pTakeItem_post; +struct HPMHookPoint *HP_clif_pDropItem_pre; +struct HPMHookPoint *HP_clif_pDropItem_post; +struct HPMHookPoint *HP_clif_pUseItem_pre; +struct HPMHookPoint *HP_clif_pUseItem_post; +struct HPMHookPoint *HP_clif_pEquipItem_pre; +struct HPMHookPoint *HP_clif_pEquipItem_post; +struct HPMHookPoint *HP_clif_pUnequipItem_pre; +struct HPMHookPoint *HP_clif_pUnequipItem_post; +struct HPMHookPoint *HP_clif_pNpcClicked_pre; +struct HPMHookPoint *HP_clif_pNpcClicked_post; +struct HPMHookPoint *HP_clif_pNpcBuySellSelected_pre; +struct HPMHookPoint *HP_clif_pNpcBuySellSelected_post; +struct HPMHookPoint *HP_clif_pNpcBuyListSend_pre; +struct HPMHookPoint *HP_clif_pNpcBuyListSend_post; +struct HPMHookPoint *HP_clif_pNpcSellListSend_pre; +struct HPMHookPoint *HP_clif_pNpcSellListSend_post; +struct HPMHookPoint *HP_clif_pCreateChatRoom_pre; +struct HPMHookPoint *HP_clif_pCreateChatRoom_post; +struct HPMHookPoint *HP_clif_pChatAddMember_pre; +struct HPMHookPoint *HP_clif_pChatAddMember_post; +struct HPMHookPoint *HP_clif_pChatRoomStatusChange_pre; +struct HPMHookPoint *HP_clif_pChatRoomStatusChange_post; +struct HPMHookPoint *HP_clif_pChangeChatOwner_pre; +struct HPMHookPoint *HP_clif_pChangeChatOwner_post; +struct HPMHookPoint *HP_clif_pKickFromChat_pre; +struct HPMHookPoint *HP_clif_pKickFromChat_post; +struct HPMHookPoint *HP_clif_pChatLeave_pre; +struct HPMHookPoint *HP_clif_pChatLeave_post; +struct HPMHookPoint *HP_clif_pTradeRequest_pre; +struct HPMHookPoint *HP_clif_pTradeRequest_post; +struct HPMHookPoint *HP_clif_chann_config_read_pre; +struct HPMHookPoint *HP_clif_chann_config_read_post; +struct HPMHookPoint *HP_clif_pTradeAck_pre; +struct HPMHookPoint *HP_clif_pTradeAck_post; +struct HPMHookPoint *HP_clif_pTradeAddItem_pre; +struct HPMHookPoint *HP_clif_pTradeAddItem_post; +struct HPMHookPoint *HP_clif_pTradeOk_pre; +struct HPMHookPoint *HP_clif_pTradeOk_post; +struct HPMHookPoint *HP_clif_pTradeCancel_pre; +struct HPMHookPoint *HP_clif_pTradeCancel_post; +struct HPMHookPoint *HP_clif_pTradeCommit_pre; +struct HPMHookPoint *HP_clif_pTradeCommit_post; +struct HPMHookPoint *HP_clif_pStopAttack_pre; +struct HPMHookPoint *HP_clif_pStopAttack_post; +struct HPMHookPoint *HP_clif_pPutItemToCart_pre; +struct HPMHookPoint *HP_clif_pPutItemToCart_post; +struct HPMHookPoint *HP_clif_pGetItemFromCart_pre; +struct HPMHookPoint *HP_clif_pGetItemFromCart_post; +struct HPMHookPoint *HP_clif_pRemoveOption_pre; +struct HPMHookPoint *HP_clif_pRemoveOption_post; +struct HPMHookPoint *HP_clif_pChangeCart_pre; +struct HPMHookPoint *HP_clif_pChangeCart_post; +struct HPMHookPoint *HP_clif_pStatusUp_pre; +struct HPMHookPoint *HP_clif_pStatusUp_post; +struct HPMHookPoint *HP_clif_pSkillUp_pre; +struct HPMHookPoint *HP_clif_pSkillUp_post; +struct HPMHookPoint *HP_clif_pUseSkillToId_pre; +struct HPMHookPoint *HP_clif_pUseSkillToId_post; +struct HPMHookPoint *HP_clif_pUseSkillToId_homun_pre; +struct HPMHookPoint *HP_clif_pUseSkillToId_homun_post; +struct HPMHookPoint *HP_clif_pUseSkillToId_mercenary_pre; +struct HPMHookPoint *HP_clif_pUseSkillToId_mercenary_post; +struct HPMHookPoint *HP_clif_pUseSkillToPos_pre; +struct HPMHookPoint *HP_clif_pUseSkillToPos_post; +struct HPMHookPoint *HP_clif_pUseSkillToPosSub_pre; +struct HPMHookPoint *HP_clif_pUseSkillToPosSub_post; +struct HPMHookPoint *HP_clif_pUseSkillToPos_homun_pre; +struct HPMHookPoint *HP_clif_pUseSkillToPos_homun_post; +struct HPMHookPoint *HP_clif_pUseSkillToPos_mercenary_pre; +struct HPMHookPoint *HP_clif_pUseSkillToPos_mercenary_post; +struct HPMHookPoint *HP_clif_pUseSkillToPosMoreInfo_pre; +struct HPMHookPoint *HP_clif_pUseSkillToPosMoreInfo_post; +struct HPMHookPoint *HP_clif_pUseSkillMap_pre; +struct HPMHookPoint *HP_clif_pUseSkillMap_post; +struct HPMHookPoint *HP_clif_pRequestMemo_pre; +struct HPMHookPoint *HP_clif_pRequestMemo_post; +struct HPMHookPoint *HP_clif_pProduceMix_pre; +struct HPMHookPoint *HP_clif_pProduceMix_post; +struct HPMHookPoint *HP_clif_pCooking_pre; +struct HPMHookPoint *HP_clif_pCooking_post; +struct HPMHookPoint *HP_clif_pRepairItem_pre; +struct HPMHookPoint *HP_clif_pRepairItem_post; +struct HPMHookPoint *HP_clif_pWeaponRefine_pre; +struct HPMHookPoint *HP_clif_pWeaponRefine_post; +struct HPMHookPoint *HP_clif_pNpcSelectMenu_pre; +struct HPMHookPoint *HP_clif_pNpcSelectMenu_post; +struct HPMHookPoint *HP_clif_pNpcNextClicked_pre; +struct HPMHookPoint *HP_clif_pNpcNextClicked_post; +struct HPMHookPoint *HP_clif_pNpcAmountInput_pre; +struct HPMHookPoint *HP_clif_pNpcAmountInput_post; +struct HPMHookPoint *HP_clif_pNpcStringInput_pre; +struct HPMHookPoint *HP_clif_pNpcStringInput_post; +struct HPMHookPoint *HP_clif_pNpcCloseClicked_pre; +struct HPMHookPoint *HP_clif_pNpcCloseClicked_post; +struct HPMHookPoint *HP_clif_pItemIdentify_pre; +struct HPMHookPoint *HP_clif_pItemIdentify_post; +struct HPMHookPoint *HP_clif_pSelectArrow_pre; +struct HPMHookPoint *HP_clif_pSelectArrow_post; +struct HPMHookPoint *HP_clif_pAutoSpell_pre; +struct HPMHookPoint *HP_clif_pAutoSpell_post; +struct HPMHookPoint *HP_clif_pUseCard_pre; +struct HPMHookPoint *HP_clif_pUseCard_post; +struct HPMHookPoint *HP_clif_pInsertCard_pre; +struct HPMHookPoint *HP_clif_pInsertCard_post; +struct HPMHookPoint *HP_clif_pSolveCharName_pre; +struct HPMHookPoint *HP_clif_pSolveCharName_post; +struct HPMHookPoint *HP_clif_pResetChar_pre; +struct HPMHookPoint *HP_clif_pResetChar_post; +struct HPMHookPoint *HP_clif_pLocalBroadcast_pre; +struct HPMHookPoint *HP_clif_pLocalBroadcast_post; +struct HPMHookPoint *HP_clif_pMoveToKafra_pre; +struct HPMHookPoint *HP_clif_pMoveToKafra_post; +struct HPMHookPoint *HP_clif_pMoveFromKafra_pre; +struct HPMHookPoint *HP_clif_pMoveFromKafra_post; +struct HPMHookPoint *HP_clif_pMoveToKafraFromCart_pre; +struct HPMHookPoint *HP_clif_pMoveToKafraFromCart_post; +struct HPMHookPoint *HP_clif_pMoveFromKafraToCart_pre; +struct HPMHookPoint *HP_clif_pMoveFromKafraToCart_post; +struct HPMHookPoint *HP_clif_pCloseKafra_pre; +struct HPMHookPoint *HP_clif_pCloseKafra_post; +struct HPMHookPoint *HP_clif_pStoragePassword_pre; +struct HPMHookPoint *HP_clif_pStoragePassword_post; +struct HPMHookPoint *HP_clif_pCreateParty_pre; +struct HPMHookPoint *HP_clif_pCreateParty_post; +struct HPMHookPoint *HP_clif_pCreateParty2_pre; +struct HPMHookPoint *HP_clif_pCreateParty2_post; +struct HPMHookPoint *HP_clif_pPartyInvite_pre; +struct HPMHookPoint *HP_clif_pPartyInvite_post; +struct HPMHookPoint *HP_clif_pPartyInvite2_pre; +struct HPMHookPoint *HP_clif_pPartyInvite2_post; +struct HPMHookPoint *HP_clif_pReplyPartyInvite_pre; +struct HPMHookPoint *HP_clif_pReplyPartyInvite_post; +struct HPMHookPoint *HP_clif_pReplyPartyInvite2_pre; +struct HPMHookPoint *HP_clif_pReplyPartyInvite2_post; +struct HPMHookPoint *HP_clif_pLeaveParty_pre; +struct HPMHookPoint *HP_clif_pLeaveParty_post; +struct HPMHookPoint *HP_clif_pRemovePartyMember_pre; +struct HPMHookPoint *HP_clif_pRemovePartyMember_post; +struct HPMHookPoint *HP_clif_pPartyChangeOption_pre; +struct HPMHookPoint *HP_clif_pPartyChangeOption_post; +struct HPMHookPoint *HP_clif_pPartyMessage_pre; +struct HPMHookPoint *HP_clif_pPartyMessage_post; +struct HPMHookPoint *HP_clif_pPartyChangeLeader_pre; +struct HPMHookPoint *HP_clif_pPartyChangeLeader_post; +struct HPMHookPoint *HP_clif_pPartyBookingRegisterReq_pre; +struct HPMHookPoint *HP_clif_pPartyBookingRegisterReq_post; +struct HPMHookPoint *HP_clif_pPartyBookingSearchReq_pre; +struct HPMHookPoint *HP_clif_pPartyBookingSearchReq_post; +struct HPMHookPoint *HP_clif_pPartyBookingDeleteReq_pre; +struct HPMHookPoint *HP_clif_pPartyBookingDeleteReq_post; +struct HPMHookPoint *HP_clif_pPartyBookingUpdateReq_pre; +struct HPMHookPoint *HP_clif_pPartyBookingUpdateReq_post; +struct HPMHookPoint *HP_clif_pPartyRecruitRegisterReq_pre; +struct HPMHookPoint *HP_clif_pPartyRecruitRegisterReq_post; +struct HPMHookPoint *HP_clif_pPartyRecruitSearchReq_pre; +struct HPMHookPoint *HP_clif_pPartyRecruitSearchReq_post; +struct HPMHookPoint *HP_clif_pPartyRecruitDeleteReq_pre; +struct HPMHookPoint *HP_clif_pPartyRecruitDeleteReq_post; +struct HPMHookPoint *HP_clif_pPartyRecruitUpdateReq_pre; +struct HPMHookPoint *HP_clif_pPartyRecruitUpdateReq_post; +struct HPMHookPoint *HP_clif_pCloseVending_pre; +struct HPMHookPoint *HP_clif_pCloseVending_post; +struct HPMHookPoint *HP_clif_pVendingListReq_pre; +struct HPMHookPoint *HP_clif_pVendingListReq_post; +struct HPMHookPoint *HP_clif_pPurchaseReq_pre; +struct HPMHookPoint *HP_clif_pPurchaseReq_post; +struct HPMHookPoint *HP_clif_pPurchaseReq2_pre; +struct HPMHookPoint *HP_clif_pPurchaseReq2_post; +struct HPMHookPoint *HP_clif_pOpenVending_pre; +struct HPMHookPoint *HP_clif_pOpenVending_post; +struct HPMHookPoint *HP_clif_pCreateGuild_pre; +struct HPMHookPoint *HP_clif_pCreateGuild_post; +struct HPMHookPoint *HP_clif_pGuildCheckMaster_pre; +struct HPMHookPoint *HP_clif_pGuildCheckMaster_post; +struct HPMHookPoint *HP_clif_pGuildRequestInfo_pre; +struct HPMHookPoint *HP_clif_pGuildRequestInfo_post; +struct HPMHookPoint *HP_clif_pGuildChangePositionInfo_pre; +struct HPMHookPoint *HP_clif_pGuildChangePositionInfo_post; +struct HPMHookPoint *HP_clif_pGuildChangeMemberPosition_pre; +struct HPMHookPoint *HP_clif_pGuildChangeMemberPosition_post; +struct HPMHookPoint *HP_clif_pGuildRequestEmblem_pre; +struct HPMHookPoint *HP_clif_pGuildRequestEmblem_post; +struct HPMHookPoint *HP_clif_pGuildChangeEmblem_pre; +struct HPMHookPoint *HP_clif_pGuildChangeEmblem_post; +struct HPMHookPoint *HP_clif_pGuildChangeNotice_pre; +struct HPMHookPoint *HP_clif_pGuildChangeNotice_post; +struct HPMHookPoint *HP_clif_pGuildInvite_pre; +struct HPMHookPoint *HP_clif_pGuildInvite_post; +struct HPMHookPoint *HP_clif_pGuildReplyInvite_pre; +struct HPMHookPoint *HP_clif_pGuildReplyInvite_post; +struct HPMHookPoint *HP_clif_pGuildLeave_pre; +struct HPMHookPoint *HP_clif_pGuildLeave_post; +struct HPMHookPoint *HP_clif_pGuildExpulsion_pre; +struct HPMHookPoint *HP_clif_pGuildExpulsion_post; +struct HPMHookPoint *HP_clif_pGuildMessage_pre; +struct HPMHookPoint *HP_clif_pGuildMessage_post; +struct HPMHookPoint *HP_clif_pGuildRequestAlliance_pre; +struct HPMHookPoint *HP_clif_pGuildRequestAlliance_post; +struct HPMHookPoint *HP_clif_pGuildReplyAlliance_pre; +struct HPMHookPoint *HP_clif_pGuildReplyAlliance_post; +struct HPMHookPoint *HP_clif_pGuildDelAlliance_pre; +struct HPMHookPoint *HP_clif_pGuildDelAlliance_post; +struct HPMHookPoint *HP_clif_pGuildOpposition_pre; +struct HPMHookPoint *HP_clif_pGuildOpposition_post; +struct HPMHookPoint *HP_clif_pGuildBreak_pre; +struct HPMHookPoint *HP_clif_pGuildBreak_post; +struct HPMHookPoint *HP_clif_pPetMenu_pre; +struct HPMHookPoint *HP_clif_pPetMenu_post; +struct HPMHookPoint *HP_clif_pCatchPet_pre; +struct HPMHookPoint *HP_clif_pCatchPet_post; +struct HPMHookPoint *HP_clif_pSelectEgg_pre; +struct HPMHookPoint *HP_clif_pSelectEgg_post; +struct HPMHookPoint *HP_clif_pSendEmotion_pre; +struct HPMHookPoint *HP_clif_pSendEmotion_post; +struct HPMHookPoint *HP_clif_pChangePetName_pre; +struct HPMHookPoint *HP_clif_pChangePetName_post; +struct HPMHookPoint *HP_clif_pGMKick_pre; +struct HPMHookPoint *HP_clif_pGMKick_post; +struct HPMHookPoint *HP_clif_pGMKickAll_pre; +struct HPMHookPoint *HP_clif_pGMKickAll_post; +struct HPMHookPoint *HP_clif_pGMShift_pre; +struct HPMHookPoint *HP_clif_pGMShift_post; +struct HPMHookPoint *HP_clif_pGMRemove2_pre; +struct HPMHookPoint *HP_clif_pGMRemove2_post; +struct HPMHookPoint *HP_clif_pGMRecall_pre; +struct HPMHookPoint *HP_clif_pGMRecall_post; +struct HPMHookPoint *HP_clif_pGMRecall2_pre; +struct HPMHookPoint *HP_clif_pGMRecall2_post; +struct HPMHookPoint *HP_clif_pGM_Monster_Item_pre; +struct HPMHookPoint *HP_clif_pGM_Monster_Item_post; +struct HPMHookPoint *HP_clif_pGMHide_pre; +struct HPMHookPoint *HP_clif_pGMHide_post; +struct HPMHookPoint *HP_clif_pGMReqNoChat_pre; +struct HPMHookPoint *HP_clif_pGMReqNoChat_post; +struct HPMHookPoint *HP_clif_pGMRc_pre; +struct HPMHookPoint *HP_clif_pGMRc_post; +struct HPMHookPoint *HP_clif_pGMReqAccountName_pre; +struct HPMHookPoint *HP_clif_pGMReqAccountName_post; +struct HPMHookPoint *HP_clif_pGMChangeMapType_pre; +struct HPMHookPoint *HP_clif_pGMChangeMapType_post; +struct HPMHookPoint *HP_clif_pPMIgnore_pre; +struct HPMHookPoint *HP_clif_pPMIgnore_post; +struct HPMHookPoint *HP_clif_pPMIgnoreAll_pre; +struct HPMHookPoint *HP_clif_pPMIgnoreAll_post; +struct HPMHookPoint *HP_clif_pPMIgnoreList_pre; +struct HPMHookPoint *HP_clif_pPMIgnoreList_post; +struct HPMHookPoint *HP_clif_pNoviceDoriDori_pre; +struct HPMHookPoint *HP_clif_pNoviceDoriDori_post; +struct HPMHookPoint *HP_clif_pNoviceExplosionSpirits_pre; +struct HPMHookPoint *HP_clif_pNoviceExplosionSpirits_post; +struct HPMHookPoint *HP_clif_pFriendsListAdd_pre; +struct HPMHookPoint *HP_clif_pFriendsListAdd_post; +struct HPMHookPoint *HP_clif_pFriendsListReply_pre; +struct HPMHookPoint *HP_clif_pFriendsListReply_post; +struct HPMHookPoint *HP_clif_pFriendsListRemove_pre; +struct HPMHookPoint *HP_clif_pFriendsListRemove_post; +struct HPMHookPoint *HP_clif_pPVPInfo_pre; +struct HPMHookPoint *HP_clif_pPVPInfo_post; +struct HPMHookPoint *HP_clif_pBlacksmith_pre; +struct HPMHookPoint *HP_clif_pBlacksmith_post; +struct HPMHookPoint *HP_clif_pAlchemist_pre; +struct HPMHookPoint *HP_clif_pAlchemist_post; +struct HPMHookPoint *HP_clif_pTaekwon_pre; +struct HPMHookPoint *HP_clif_pTaekwon_post; +struct HPMHookPoint *HP_clif_pRankingPk_pre; +struct HPMHookPoint *HP_clif_pRankingPk_post; +struct HPMHookPoint *HP_clif_pFeelSaveOk_pre; +struct HPMHookPoint *HP_clif_pFeelSaveOk_post; +struct HPMHookPoint *HP_clif_pChangeHomunculusName_pre; +struct HPMHookPoint *HP_clif_pChangeHomunculusName_post; +struct HPMHookPoint *HP_clif_pHomMoveToMaster_pre; +struct HPMHookPoint *HP_clif_pHomMoveToMaster_post; +struct HPMHookPoint *HP_clif_pHomMoveTo_pre; +struct HPMHookPoint *HP_clif_pHomMoveTo_post; +struct HPMHookPoint *HP_clif_pHomAttack_pre; +struct HPMHookPoint *HP_clif_pHomAttack_post; +struct HPMHookPoint *HP_clif_pHomMenu_pre; +struct HPMHookPoint *HP_clif_pHomMenu_post; +struct HPMHookPoint *HP_clif_pAutoRevive_pre; +struct HPMHookPoint *HP_clif_pAutoRevive_post; +struct HPMHookPoint *HP_clif_pCheck_pre; +struct HPMHookPoint *HP_clif_pCheck_post; +struct HPMHookPoint *HP_clif_pMail_refreshinbox_pre; +struct HPMHookPoint *HP_clif_pMail_refreshinbox_post; +struct HPMHookPoint *HP_clif_pMail_read_pre; +struct HPMHookPoint *HP_clif_pMail_read_post; +struct HPMHookPoint *HP_clif_pMail_getattach_pre; +struct HPMHookPoint *HP_clif_pMail_getattach_post; +struct HPMHookPoint *HP_clif_pMail_delete_pre; +struct HPMHookPoint *HP_clif_pMail_delete_post; +struct HPMHookPoint *HP_clif_pMail_return_pre; +struct HPMHookPoint *HP_clif_pMail_return_post; +struct HPMHookPoint *HP_clif_pMail_setattach_pre; +struct HPMHookPoint *HP_clif_pMail_setattach_post; +struct HPMHookPoint *HP_clif_pMail_winopen_pre; +struct HPMHookPoint *HP_clif_pMail_winopen_post; +struct HPMHookPoint *HP_clif_pMail_send_pre; +struct HPMHookPoint *HP_clif_pMail_send_post; +struct HPMHookPoint *HP_clif_pAuction_cancelreg_pre; +struct HPMHookPoint *HP_clif_pAuction_cancelreg_post; +struct HPMHookPoint *HP_clif_pAuction_setitem_pre; +struct HPMHookPoint *HP_clif_pAuction_setitem_post; +struct HPMHookPoint *HP_clif_pAuction_register_pre; +struct HPMHookPoint *HP_clif_pAuction_register_post; +struct HPMHookPoint *HP_clif_pAuction_cancel_pre; +struct HPMHookPoint *HP_clif_pAuction_cancel_post; +struct HPMHookPoint *HP_clif_pAuction_close_pre; +struct HPMHookPoint *HP_clif_pAuction_close_post; +struct HPMHookPoint *HP_clif_pAuction_bid_pre; +struct HPMHookPoint *HP_clif_pAuction_bid_post; +struct HPMHookPoint *HP_clif_pAuction_search_pre; +struct HPMHookPoint *HP_clif_pAuction_search_post; +struct HPMHookPoint *HP_clif_pAuction_buysell_pre; +struct HPMHookPoint *HP_clif_pAuction_buysell_post; +struct HPMHookPoint *HP_clif_pcashshop_buy_pre; +struct HPMHookPoint *HP_clif_pcashshop_buy_post; +struct HPMHookPoint *HP_clif_pAdopt_request_pre; +struct HPMHookPoint *HP_clif_pAdopt_request_post; +struct HPMHookPoint *HP_clif_pAdopt_reply_pre; +struct HPMHookPoint *HP_clif_pAdopt_reply_post; +struct HPMHookPoint *HP_clif_pViewPlayerEquip_pre; +struct HPMHookPoint *HP_clif_pViewPlayerEquip_post; +struct HPMHookPoint *HP_clif_pEquipTick_pre; +struct HPMHookPoint *HP_clif_pEquipTick_post; +struct HPMHookPoint *HP_clif_pquestStateAck_pre; +struct HPMHookPoint *HP_clif_pquestStateAck_post; +struct HPMHookPoint *HP_clif_pmercenary_action_pre; +struct HPMHookPoint *HP_clif_pmercenary_action_post; +struct HPMHookPoint *HP_clif_pBattleChat_pre; +struct HPMHookPoint *HP_clif_pBattleChat_post; +struct HPMHookPoint *HP_clif_pLessEffect_pre; +struct HPMHookPoint *HP_clif_pLessEffect_post; +struct HPMHookPoint *HP_clif_pItemListWindowSelected_pre; +struct HPMHookPoint *HP_clif_pItemListWindowSelected_post; +struct HPMHookPoint *HP_clif_pReqOpenBuyingStore_pre; +struct HPMHookPoint *HP_clif_pReqOpenBuyingStore_post; +struct HPMHookPoint *HP_clif_pReqCloseBuyingStore_pre; +struct HPMHookPoint *HP_clif_pReqCloseBuyingStore_post; +struct HPMHookPoint *HP_clif_pReqClickBuyingStore_pre; +struct HPMHookPoint *HP_clif_pReqClickBuyingStore_post; +struct HPMHookPoint *HP_clif_pReqTradeBuyingStore_pre; +struct HPMHookPoint *HP_clif_pReqTradeBuyingStore_post; +struct HPMHookPoint *HP_clif_pSearchStoreInfo_pre; +struct HPMHookPoint *HP_clif_pSearchStoreInfo_post; +struct HPMHookPoint *HP_clif_pSearchStoreInfoNextPage_pre; +struct HPMHookPoint *HP_clif_pSearchStoreInfoNextPage_post; +struct HPMHookPoint *HP_clif_pCloseSearchStoreInfo_pre; +struct HPMHookPoint *HP_clif_pCloseSearchStoreInfo_post; +struct HPMHookPoint *HP_clif_pSearchStoreInfoListItemClick_pre; +struct HPMHookPoint *HP_clif_pSearchStoreInfoListItemClick_post; +struct HPMHookPoint *HP_clif_pDebug_pre; +struct HPMHookPoint *HP_clif_pDebug_post; +struct HPMHookPoint *HP_clif_pSkillSelectMenu_pre; +struct HPMHookPoint *HP_clif_pSkillSelectMenu_post; +struct HPMHookPoint *HP_clif_pMoveItem_pre; +struct HPMHookPoint *HP_clif_pMoveItem_post; +struct HPMHookPoint *HP_clif_pDull_pre; +struct HPMHookPoint *HP_clif_pDull_post; +struct HPMHookPoint *HP_clif_pBGQueueRegister_pre; +struct HPMHookPoint *HP_clif_pBGQueueRegister_post; +struct HPMHookPoint *HP_clif_pBGQueueCheckState_pre; +struct HPMHookPoint *HP_clif_pBGQueueCheckState_post; +struct HPMHookPoint *HP_clif_pBGQueueRevokeReq_pre; +struct HPMHookPoint *HP_clif_pBGQueueRevokeReq_post; +struct HPMHookPoint *HP_clif_pBGQueueBattleBeginAck_pre; +struct HPMHookPoint *HP_clif_pBGQueueBattleBeginAck_post; +struct HPMHookPoint *HP_clif_pCashShopOpen_pre; +struct HPMHookPoint *HP_clif_pCashShopOpen_post; +struct HPMHookPoint *HP_clif_pCashShopClose_pre; +struct HPMHookPoint *HP_clif_pCashShopClose_post; +struct HPMHookPoint *HP_clif_pCashShopReqTab_pre; +struct HPMHookPoint *HP_clif_pCashShopReqTab_post; +struct HPMHookPoint *HP_clif_pCashShopSchedule_pre; +struct HPMHookPoint *HP_clif_pCashShopSchedule_post; +struct HPMHookPoint *HP_clif_pCashShopBuy_pre; +struct HPMHookPoint *HP_clif_pCashShopBuy_post; +struct HPMHookPoint *HP_clif_pPartyTick_pre; +struct HPMHookPoint *HP_clif_pPartyTick_post; +struct HPMHookPoint *HP_clif_pGuildInvite2_pre; +struct HPMHookPoint *HP_clif_pGuildInvite2_post; +struct HPMHookPoint *HP_clif_pPartyBookingAddFilter_pre; +struct HPMHookPoint *HP_clif_pPartyBookingAddFilter_post; +struct HPMHookPoint *HP_clif_pPartyBookingSubFilter_pre; +struct HPMHookPoint *HP_clif_pPartyBookingSubFilter_post; +struct HPMHookPoint *HP_clif_pPartyBookingReqVolunteer_pre; +struct HPMHookPoint *HP_clif_pPartyBookingReqVolunteer_post; +struct HPMHookPoint *HP_clif_pPartyBookingRefuseVolunteer_pre; +struct HPMHookPoint *HP_clif_pPartyBookingRefuseVolunteer_post; +struct HPMHookPoint *HP_clif_pPartyBookingCancelVolunteer_pre; +struct HPMHookPoint *HP_clif_pPartyBookingCancelVolunteer_post; +struct HPMHookPoint *HP_duel_create_pre; +struct HPMHookPoint *HP_duel_create_post; +struct HPMHookPoint *HP_duel_invite_pre; +struct HPMHookPoint *HP_duel_invite_post; +struct HPMHookPoint *HP_duel_accept_pre; +struct HPMHookPoint *HP_duel_accept_post; +struct HPMHookPoint *HP_duel_reject_pre; +struct HPMHookPoint *HP_duel_reject_post; +struct HPMHookPoint *HP_duel_leave_pre; +struct HPMHookPoint *HP_duel_leave_post; +struct HPMHookPoint *HP_duel_showinfo_pre; +struct HPMHookPoint *HP_duel_showinfo_post; +struct HPMHookPoint *HP_duel_checktime_pre; +struct HPMHookPoint *HP_duel_checktime_post; +struct HPMHookPoint *HP_duel_init_pre; +struct HPMHookPoint *HP_duel_init_post; +struct HPMHookPoint *HP_duel_final_pre; +struct HPMHookPoint *HP_duel_final_post; +struct HPMHookPoint *HP_elemental_init_pre; +struct HPMHookPoint *HP_elemental_init_post; +struct HPMHookPoint *HP_elemental_final_pre; +struct HPMHookPoint *HP_elemental_final_post; +struct HPMHookPoint *HP_elemental_class_pre; +struct HPMHookPoint *HP_elemental_class_post; +struct HPMHookPoint *HP_elemental_get_viewdata_pre; +struct HPMHookPoint *HP_elemental_get_viewdata_post; +struct HPMHookPoint *HP_elemental_create_pre; +struct HPMHookPoint *HP_elemental_create_post; +struct HPMHookPoint *HP_elemental_data_received_pre; +struct HPMHookPoint *HP_elemental_data_received_post; +struct HPMHookPoint *HP_elemental_save_pre; +struct HPMHookPoint *HP_elemental_save_post; +struct HPMHookPoint *HP_elemental_change_mode_ack_pre; +struct HPMHookPoint *HP_elemental_change_mode_ack_post; +struct HPMHookPoint *HP_elemental_change_mode_pre; +struct HPMHookPoint *HP_elemental_change_mode_post; +struct HPMHookPoint *HP_elemental_heal_pre; +struct HPMHookPoint *HP_elemental_heal_post; +struct HPMHookPoint *HP_elemental_dead_pre; +struct HPMHookPoint *HP_elemental_dead_post; +struct HPMHookPoint *HP_elemental_delete_pre; +struct HPMHookPoint *HP_elemental_delete_post; +struct HPMHookPoint *HP_elemental_summon_stop_pre; +struct HPMHookPoint *HP_elemental_summon_stop_post; +struct HPMHookPoint *HP_elemental_get_lifetime_pre; +struct HPMHookPoint *HP_elemental_get_lifetime_post; +struct HPMHookPoint *HP_elemental_unlocktarget_pre; +struct HPMHookPoint *HP_elemental_unlocktarget_post; +struct HPMHookPoint *HP_elemental_skillnotok_pre; +struct HPMHookPoint *HP_elemental_skillnotok_post; +struct HPMHookPoint *HP_elemental_set_target_pre; +struct HPMHookPoint *HP_elemental_set_target_post; +struct HPMHookPoint *HP_elemental_clean_single_effect_pre; +struct HPMHookPoint *HP_elemental_clean_single_effect_post; +struct HPMHookPoint *HP_elemental_clean_effect_pre; +struct HPMHookPoint *HP_elemental_clean_effect_post; +struct HPMHookPoint *HP_elemental_action_pre; +struct HPMHookPoint *HP_elemental_action_post; +struct HPMHookPoint *HP_elemental_skill_get_requirements_pre; +struct HPMHookPoint *HP_elemental_skill_get_requirements_post; +struct HPMHookPoint *HP_elemental_read_skilldb_pre; +struct HPMHookPoint *HP_elemental_read_skilldb_post; +struct HPMHookPoint *HP_elemental_reload_db_pre; +struct HPMHookPoint *HP_elemental_reload_db_post; +struct HPMHookPoint *HP_elemental_reload_skilldb_pre; +struct HPMHookPoint *HP_elemental_reload_skilldb_post; +struct HPMHookPoint *HP_elemental_search_index_pre; +struct HPMHookPoint *HP_elemental_search_index_post; +struct HPMHookPoint *HP_elemental_summon_init_pre; +struct HPMHookPoint *HP_elemental_summon_init_post; +struct HPMHookPoint *HP_elemental_summon_end_timer_pre; +struct HPMHookPoint *HP_elemental_summon_end_timer_post; +struct HPMHookPoint *HP_elemental_ai_sub_timer_activesearch_pre; +struct HPMHookPoint *HP_elemental_ai_sub_timer_activesearch_post; +struct HPMHookPoint *HP_elemental_ai_sub_timer_pre; +struct HPMHookPoint *HP_elemental_ai_sub_timer_post; +struct HPMHookPoint *HP_elemental_ai_sub_foreachclient_pre; +struct HPMHookPoint *HP_elemental_ai_sub_foreachclient_post; +struct HPMHookPoint *HP_elemental_ai_timer_pre; +struct HPMHookPoint *HP_elemental_ai_timer_post; +struct HPMHookPoint *HP_elemental_read_db_pre; +struct HPMHookPoint *HP_elemental_read_db_post; +struct HPMHookPoint *HP_guild_init_pre; +struct HPMHookPoint *HP_guild_init_post; +struct HPMHookPoint *HP_guild_final_pre; +struct HPMHookPoint *HP_guild_final_post; +struct HPMHookPoint *HP_guild_skill_get_max_pre; +struct HPMHookPoint *HP_guild_skill_get_max_post; +struct HPMHookPoint *HP_guild_checkskill_pre; +struct HPMHookPoint *HP_guild_checkskill_post; +struct HPMHookPoint *HP_guild_check_skill_require_pre; +struct HPMHookPoint *HP_guild_check_skill_require_post; +struct HPMHookPoint *HP_guild_checkcastles_pre; +struct HPMHookPoint *HP_guild_checkcastles_post; +struct HPMHookPoint *HP_guild_isallied_pre; +struct HPMHookPoint *HP_guild_isallied_post; +struct HPMHookPoint *HP_guild_search_pre; +struct HPMHookPoint *HP_guild_search_post; +struct HPMHookPoint *HP_guild_searchname_pre; +struct HPMHookPoint *HP_guild_searchname_post; +struct HPMHookPoint *HP_guild_castle_search_pre; +struct HPMHookPoint *HP_guild_castle_search_post; +struct HPMHookPoint *HP_guild_mapname2gc_pre; +struct HPMHookPoint *HP_guild_mapname2gc_post; +struct HPMHookPoint *HP_guild_mapindex2gc_pre; +struct HPMHookPoint *HP_guild_mapindex2gc_post; +struct HPMHookPoint *HP_guild_getavailablesd_pre; +struct HPMHookPoint *HP_guild_getavailablesd_post; +struct HPMHookPoint *HP_guild_getindex_pre; +struct HPMHookPoint *HP_guild_getindex_post; +struct HPMHookPoint *HP_guild_getposition_pre; +struct HPMHookPoint *HP_guild_getposition_post; +struct HPMHookPoint *HP_guild_payexp_pre; +struct HPMHookPoint *HP_guild_payexp_post; +struct HPMHookPoint *HP_guild_getexp_pre; +struct HPMHookPoint *HP_guild_getexp_post; +struct HPMHookPoint *HP_guild_create_pre; +struct HPMHookPoint *HP_guild_create_post; +struct HPMHookPoint *HP_guild_created_pre; +struct HPMHookPoint *HP_guild_created_post; +struct HPMHookPoint *HP_guild_request_info_pre; +struct HPMHookPoint *HP_guild_request_info_post; +struct HPMHookPoint *HP_guild_recv_noinfo_pre; +struct HPMHookPoint *HP_guild_recv_noinfo_post; +struct HPMHookPoint *HP_guild_recv_info_pre; +struct HPMHookPoint *HP_guild_recv_info_post; +struct HPMHookPoint *HP_guild_npc_request_info_pre; +struct HPMHookPoint *HP_guild_npc_request_info_post; +struct HPMHookPoint *HP_guild_invite_pre; +struct HPMHookPoint *HP_guild_invite_post; +struct HPMHookPoint *HP_guild_reply_invite_pre; +struct HPMHookPoint *HP_guild_reply_invite_post; +struct HPMHookPoint *HP_guild_member_joined_pre; +struct HPMHookPoint *HP_guild_member_joined_post; +struct HPMHookPoint *HP_guild_member_added_pre; +struct HPMHookPoint *HP_guild_member_added_post; +struct HPMHookPoint *HP_guild_leave_pre; +struct HPMHookPoint *HP_guild_leave_post; +struct HPMHookPoint *HP_guild_member_withdraw_pre; +struct HPMHookPoint *HP_guild_member_withdraw_post; +struct HPMHookPoint *HP_guild_expulsion_pre; +struct HPMHookPoint *HP_guild_expulsion_post; +struct HPMHookPoint *HP_guild_skillup_pre; +struct HPMHookPoint *HP_guild_skillup_post; +struct HPMHookPoint *HP_guild_block_skill_pre; +struct HPMHookPoint *HP_guild_block_skill_post; +struct HPMHookPoint *HP_guild_reqalliance_pre; +struct HPMHookPoint *HP_guild_reqalliance_post; +struct HPMHookPoint *HP_guild_reply_reqalliance_pre; +struct HPMHookPoint *HP_guild_reply_reqalliance_post; +struct HPMHookPoint *HP_guild_allianceack_pre; +struct HPMHookPoint *HP_guild_allianceack_post; +struct HPMHookPoint *HP_guild_delalliance_pre; +struct HPMHookPoint *HP_guild_delalliance_post; +struct HPMHookPoint *HP_guild_opposition_pre; +struct HPMHookPoint *HP_guild_opposition_post; +struct HPMHookPoint *HP_guild_check_alliance_pre; +struct HPMHookPoint *HP_guild_check_alliance_post; +struct HPMHookPoint *HP_guild_send_memberinfoshort_pre; +struct HPMHookPoint *HP_guild_send_memberinfoshort_post; +struct HPMHookPoint *HP_guild_recv_memberinfoshort_pre; +struct HPMHookPoint *HP_guild_recv_memberinfoshort_post; +struct HPMHookPoint *HP_guild_change_memberposition_pre; +struct HPMHookPoint *HP_guild_change_memberposition_post; +struct HPMHookPoint *HP_guild_memberposition_changed_pre; +struct HPMHookPoint *HP_guild_memberposition_changed_post; +struct HPMHookPoint *HP_guild_change_position_pre; +struct HPMHookPoint *HP_guild_change_position_post; +struct HPMHookPoint *HP_guild_position_changed_pre; +struct HPMHookPoint *HP_guild_position_changed_post; +struct HPMHookPoint *HP_guild_change_notice_pre; +struct HPMHookPoint *HP_guild_change_notice_post; +struct HPMHookPoint *HP_guild_notice_changed_pre; +struct HPMHookPoint *HP_guild_notice_changed_post; +struct HPMHookPoint *HP_guild_change_emblem_pre; +struct HPMHookPoint *HP_guild_change_emblem_post; +struct HPMHookPoint *HP_guild_emblem_changed_pre; +struct HPMHookPoint *HP_guild_emblem_changed_post; +struct HPMHookPoint *HP_guild_send_message_pre; +struct HPMHookPoint *HP_guild_send_message_post; +struct HPMHookPoint *HP_guild_recv_message_pre; +struct HPMHookPoint *HP_guild_recv_message_post; +struct HPMHookPoint *HP_guild_send_dot_remove_pre; +struct HPMHookPoint *HP_guild_send_dot_remove_post; +struct HPMHookPoint *HP_guild_skillupack_pre; +struct HPMHookPoint *HP_guild_skillupack_post; +struct HPMHookPoint *HP_guild_dobreak_pre; +struct HPMHookPoint *HP_guild_dobreak_post; +struct HPMHookPoint *HP_guild_broken_pre; +struct HPMHookPoint *HP_guild_broken_post; +struct HPMHookPoint *HP_guild_gm_change_pre; +struct HPMHookPoint *HP_guild_gm_change_post; +struct HPMHookPoint *HP_guild_gm_changed_pre; +struct HPMHookPoint *HP_guild_gm_changed_post; +struct HPMHookPoint *HP_guild_castle_map_init_pre; +struct HPMHookPoint *HP_guild_castle_map_init_post; +struct HPMHookPoint *HP_guild_castledatasave_pre; +struct HPMHookPoint *HP_guild_castledatasave_post; +struct HPMHookPoint *HP_guild_castledataloadack_pre; +struct HPMHookPoint *HP_guild_castledataloadack_post; +struct HPMHookPoint *HP_guild_castle_reconnect_pre; +struct HPMHookPoint *HP_guild_castle_reconnect_post; +struct HPMHookPoint *HP_guild_agit_start_pre; +struct HPMHookPoint *HP_guild_agit_start_post; +struct HPMHookPoint *HP_guild_agit_end_pre; +struct HPMHookPoint *HP_guild_agit_end_post; +struct HPMHookPoint *HP_guild_agit2_start_pre; +struct HPMHookPoint *HP_guild_agit2_start_post; +struct HPMHookPoint *HP_guild_agit2_end_pre; +struct HPMHookPoint *HP_guild_agit2_end_post; +struct HPMHookPoint *HP_guild_flag_add_pre; +struct HPMHookPoint *HP_guild_flag_add_post; +struct HPMHookPoint *HP_guild_flag_remove_pre; +struct HPMHookPoint *HP_guild_flag_remove_post; +struct HPMHookPoint *HP_guild_flags_clear_pre; +struct HPMHookPoint *HP_guild_flags_clear_post; +struct HPMHookPoint *HP_guild_aura_refresh_pre; +struct HPMHookPoint *HP_guild_aura_refresh_post; +struct HPMHookPoint *HP_guild_payexp_timer_pre; +struct HPMHookPoint *HP_guild_payexp_timer_post; +struct HPMHookPoint *HP_guild_sd_check_pre; +struct HPMHookPoint *HP_guild_sd_check_post; +struct HPMHookPoint *HP_guild_read_guildskill_tree_db_pre; +struct HPMHookPoint *HP_guild_read_guildskill_tree_db_post; +struct HPMHookPoint *HP_guild_read_castledb_pre; +struct HPMHookPoint *HP_guild_read_castledb_post; +struct HPMHookPoint *HP_guild_payexp_timer_sub_pre; +struct HPMHookPoint *HP_guild_payexp_timer_sub_post; +struct HPMHookPoint *HP_guild_send_xy_timer_sub_pre; +struct HPMHookPoint *HP_guild_send_xy_timer_sub_post; +struct HPMHookPoint *HP_guild_send_xy_timer_pre; +struct HPMHookPoint *HP_guild_send_xy_timer_post; +struct HPMHookPoint *HP_guild_create_expcache_pre; +struct HPMHookPoint *HP_guild_create_expcache_post; +struct HPMHookPoint *HP_guild_eventlist_db_final_pre; +struct HPMHookPoint *HP_guild_eventlist_db_final_post; +struct HPMHookPoint *HP_guild_expcache_db_final_pre; +struct HPMHookPoint *HP_guild_expcache_db_final_post; +struct HPMHookPoint *HP_guild_castle_db_final_pre; +struct HPMHookPoint *HP_guild_castle_db_final_post; +struct HPMHookPoint *HP_guild_broken_sub_pre; +struct HPMHookPoint *HP_guild_broken_sub_post; +struct HPMHookPoint *HP_guild_castle_broken_sub_pre; +struct HPMHookPoint *HP_guild_castle_broken_sub_post; +struct HPMHookPoint *HP_guild_makemember_pre; +struct HPMHookPoint *HP_guild_makemember_post; +struct HPMHookPoint *HP_guild_check_member_pre; +struct HPMHookPoint *HP_guild_check_member_post; +struct HPMHookPoint *HP_guild_get_alliance_count_pre; +struct HPMHookPoint *HP_guild_get_alliance_count_post; +struct HPMHookPoint *HP_guild_castle_reconnect_sub_pre; +struct HPMHookPoint *HP_guild_castle_reconnect_sub_post; +struct HPMHookPoint *HP_gstorage_id2storage_pre; +struct HPMHookPoint *HP_gstorage_id2storage_post; +struct HPMHookPoint *HP_gstorage_id2storage2_pre; +struct HPMHookPoint *HP_gstorage_id2storage2_post; +struct HPMHookPoint *HP_gstorage_init_pre; +struct HPMHookPoint *HP_gstorage_init_post; +struct HPMHookPoint *HP_gstorage_final_pre; +struct HPMHookPoint *HP_gstorage_final_post; +struct HPMHookPoint *HP_gstorage_delete_pre; +struct HPMHookPoint *HP_gstorage_delete_post; +struct HPMHookPoint *HP_gstorage_open_pre; +struct HPMHookPoint *HP_gstorage_open_post; +struct HPMHookPoint *HP_gstorage_additem_pre; +struct HPMHookPoint *HP_gstorage_additem_post; +struct HPMHookPoint *HP_gstorage_delitem_pre; +struct HPMHookPoint *HP_gstorage_delitem_post; +struct HPMHookPoint *HP_gstorage_add_pre; +struct HPMHookPoint *HP_gstorage_add_post; +struct HPMHookPoint *HP_gstorage_get_pre; +struct HPMHookPoint *HP_gstorage_get_post; +struct HPMHookPoint *HP_gstorage_addfromcart_pre; +struct HPMHookPoint *HP_gstorage_addfromcart_post; +struct HPMHookPoint *HP_gstorage_gettocart_pre; +struct HPMHookPoint *HP_gstorage_gettocart_post; +struct HPMHookPoint *HP_gstorage_close_pre; +struct HPMHookPoint *HP_gstorage_close_post; +struct HPMHookPoint *HP_gstorage_pc_quit_pre; +struct HPMHookPoint *HP_gstorage_pc_quit_post; +struct HPMHookPoint *HP_gstorage_save_pre; +struct HPMHookPoint *HP_gstorage_save_post; +struct HPMHookPoint *HP_gstorage_saved_pre; +struct HPMHookPoint *HP_gstorage_saved_post; +struct HPMHookPoint *HP_gstorage_create_pre; +struct HPMHookPoint *HP_gstorage_create_post; +struct HPMHookPoint *HP_homun_init_pre; +struct HPMHookPoint *HP_homun_init_post; +struct HPMHookPoint *HP_homun_final_pre; +struct HPMHookPoint *HP_homun_final_post; +struct HPMHookPoint *HP_homun_reload_pre; +struct HPMHookPoint *HP_homun_reload_post; +struct HPMHookPoint *HP_homun_reload_skill_pre; +struct HPMHookPoint *HP_homun_reload_skill_post; +struct HPMHookPoint *HP_homun_get_viewdata_pre; +struct HPMHookPoint *HP_homun_get_viewdata_post; +struct HPMHookPoint *HP_homun_class2type_pre; +struct HPMHookPoint *HP_homun_class2type_post; +struct HPMHookPoint *HP_homun_damaged_pre; +struct HPMHookPoint *HP_homun_damaged_post; +struct HPMHookPoint *HP_homun_dead_pre; +struct HPMHookPoint *HP_homun_dead_post; +struct HPMHookPoint *HP_homun_vaporize_pre; +struct HPMHookPoint *HP_homun_vaporize_post; +struct HPMHookPoint *HP_homun_delete_pre; +struct HPMHookPoint *HP_homun_delete_post; +struct HPMHookPoint *HP_homun_checkskill_pre; +struct HPMHookPoint *HP_homun_checkskill_post; +struct HPMHookPoint *HP_homun_calc_skilltree_pre; +struct HPMHookPoint *HP_homun_calc_skilltree_post; +struct HPMHookPoint *HP_homun_skill_tree_get_max_pre; +struct HPMHookPoint *HP_homun_skill_tree_get_max_post; +struct HPMHookPoint *HP_homun_skillup_pre; +struct HPMHookPoint *HP_homun_skillup_post; +struct HPMHookPoint *HP_homun_levelup_pre; +struct HPMHookPoint *HP_homun_levelup_post; +struct HPMHookPoint *HP_homun_change_class_pre; +struct HPMHookPoint *HP_homun_change_class_post; +struct HPMHookPoint *HP_homun_evolve_pre; +struct HPMHookPoint *HP_homun_evolve_post; +struct HPMHookPoint *HP_homun_mutate_pre; +struct HPMHookPoint *HP_homun_mutate_post; +struct HPMHookPoint *HP_homun_gainexp_pre; +struct HPMHookPoint *HP_homun_gainexp_post; +struct HPMHookPoint *HP_homun_add_intimacy_pre; +struct HPMHookPoint *HP_homun_add_intimacy_post; +struct HPMHookPoint *HP_homun_consume_intimacy_pre; +struct HPMHookPoint *HP_homun_consume_intimacy_post; +struct HPMHookPoint *HP_homun_healed_pre; +struct HPMHookPoint *HP_homun_healed_post; +struct HPMHookPoint *HP_homun_save_pre; +struct HPMHookPoint *HP_homun_save_post; +struct HPMHookPoint *HP_homun_menu_pre; +struct HPMHookPoint *HP_homun_menu_post; +struct HPMHookPoint *HP_homun_feed_pre; +struct HPMHookPoint *HP_homun_feed_post; +struct HPMHookPoint *HP_homun_hunger_timer_pre; +struct HPMHookPoint *HP_homun_hunger_timer_post; +struct HPMHookPoint *HP_homun_hunger_timer_delete_pre; +struct HPMHookPoint *HP_homun_hunger_timer_delete_post; +struct HPMHookPoint *HP_homun_change_name_pre; +struct HPMHookPoint *HP_homun_change_name_post; +struct HPMHookPoint *HP_homun_change_name_ack_pre; +struct HPMHookPoint *HP_homun_change_name_ack_post; +struct HPMHookPoint *HP_homun_db_search_pre; +struct HPMHookPoint *HP_homun_db_search_post; +struct HPMHookPoint *HP_homun_create_pre; +struct HPMHookPoint *HP_homun_create_post; +struct HPMHookPoint *HP_homun_init_timers_pre; +struct HPMHookPoint *HP_homun_init_timers_post; +struct HPMHookPoint *HP_homun_call_pre; +struct HPMHookPoint *HP_homun_call_post; +struct HPMHookPoint *HP_homun_recv_data_pre; +struct HPMHookPoint *HP_homun_recv_data_post; +struct HPMHookPoint *HP_homun_creation_request_pre; +struct HPMHookPoint *HP_homun_creation_request_post; +struct HPMHookPoint *HP_homun_ressurect_pre; +struct HPMHookPoint *HP_homun_ressurect_post; +struct HPMHookPoint *HP_homun_revive_pre; +struct HPMHookPoint *HP_homun_revive_post; +struct HPMHookPoint *HP_homun_stat_reset_pre; +struct HPMHookPoint *HP_homun_stat_reset_post; +struct HPMHookPoint *HP_homun_shuffle_pre; +struct HPMHookPoint *HP_homun_shuffle_post; +struct HPMHookPoint *HP_homun_read_db_sub_pre; +struct HPMHookPoint *HP_homun_read_db_sub_post; +struct HPMHookPoint *HP_homun_read_db_pre; +struct HPMHookPoint *HP_homun_read_db_post; +struct HPMHookPoint *HP_homun_read_skill_db_sub_pre; +struct HPMHookPoint *HP_homun_read_skill_db_sub_post; +struct HPMHookPoint *HP_homun_skill_db_read_pre; +struct HPMHookPoint *HP_homun_skill_db_read_post; +struct HPMHookPoint *HP_homun_exp_db_read_pre; +struct HPMHookPoint *HP_homun_exp_db_read_post; +struct HPMHookPoint *HP_homun_addspiritball_pre; +struct HPMHookPoint *HP_homun_addspiritball_post; +struct HPMHookPoint *HP_homun_delspiritball_pre; +struct HPMHookPoint *HP_homun_delspiritball_post; +struct HPMHookPoint *HP_instance_init_pre; +struct HPMHookPoint *HP_instance_init_post; +struct HPMHookPoint *HP_instance_final_pre; +struct HPMHookPoint *HP_instance_final_post; +struct HPMHookPoint *HP_instance_create_pre; +struct HPMHookPoint *HP_instance_create_post; +struct HPMHookPoint *HP_instance_add_map_pre; +struct HPMHookPoint *HP_instance_add_map_post; +struct HPMHookPoint *HP_instance_del_map_pre; +struct HPMHookPoint *HP_instance_del_map_post; +struct HPMHookPoint *HP_instance_map2imap_pre; +struct HPMHookPoint *HP_instance_map2imap_post; +struct HPMHookPoint *HP_instance_mapid2imapid_pre; +struct HPMHookPoint *HP_instance_mapid2imapid_post; +struct HPMHookPoint *HP_instance_destroy_pre; +struct HPMHookPoint *HP_instance_destroy_post; +struct HPMHookPoint *HP_instance_start_pre; +struct HPMHookPoint *HP_instance_start_post; +struct HPMHookPoint *HP_instance_check_idle_pre; +struct HPMHookPoint *HP_instance_check_idle_post; +struct HPMHookPoint *HP_instance_check_kick_pre; +struct HPMHookPoint *HP_instance_check_kick_post; +struct HPMHookPoint *HP_instance_set_timeout_pre; +struct HPMHookPoint *HP_instance_set_timeout_post; +struct HPMHookPoint *HP_instance_valid_pre; +struct HPMHookPoint *HP_instance_valid_post; +struct HPMHookPoint *HP_instance_destroy_timer_pre; +struct HPMHookPoint *HP_instance_destroy_timer_post; +struct HPMHookPoint *HP_intif_parse_pre; +struct HPMHookPoint *HP_intif_parse_post; +struct HPMHookPoint *HP_intif_create_pet_pre; +struct HPMHookPoint *HP_intif_create_pet_post; +struct HPMHookPoint *HP_intif_broadcast_pre; +struct HPMHookPoint *HP_intif_broadcast_post; +struct HPMHookPoint *HP_intif_broadcast2_pre; +struct HPMHookPoint *HP_intif_broadcast2_post; +struct HPMHookPoint *HP_intif_main_message_pre; +struct HPMHookPoint *HP_intif_main_message_post; +struct HPMHookPoint *HP_intif_wis_message_pre; +struct HPMHookPoint *HP_intif_wis_message_post; +struct HPMHookPoint *HP_intif_wis_message_to_gm_pre; +struct HPMHookPoint *HP_intif_wis_message_to_gm_post; +struct HPMHookPoint *HP_intif_saveregistry_pre; +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_guild_storage_pre; +struct HPMHookPoint *HP_intif_request_guild_storage_post; +struct HPMHookPoint *HP_intif_send_guild_storage_pre; +struct HPMHookPoint *HP_intif_send_guild_storage_post; +struct HPMHookPoint *HP_intif_create_party_pre; +struct HPMHookPoint *HP_intif_create_party_post; +struct HPMHookPoint *HP_intif_request_partyinfo_pre; +struct HPMHookPoint *HP_intif_request_partyinfo_post; +struct HPMHookPoint *HP_intif_party_addmember_pre; +struct HPMHookPoint *HP_intif_party_addmember_post; +struct HPMHookPoint *HP_intif_party_changeoption_pre; +struct HPMHookPoint *HP_intif_party_changeoption_post; +struct HPMHookPoint *HP_intif_party_leave_pre; +struct HPMHookPoint *HP_intif_party_leave_post; +struct HPMHookPoint *HP_intif_party_changemap_pre; +struct HPMHookPoint *HP_intif_party_changemap_post; +struct HPMHookPoint *HP_intif_break_party_pre; +struct HPMHookPoint *HP_intif_break_party_post; +struct HPMHookPoint *HP_intif_party_message_pre; +struct HPMHookPoint *HP_intif_party_message_post; +struct HPMHookPoint *HP_intif_party_leaderchange_pre; +struct HPMHookPoint *HP_intif_party_leaderchange_post; +struct HPMHookPoint *HP_intif_guild_create_pre; +struct HPMHookPoint *HP_intif_guild_create_post; +struct HPMHookPoint *HP_intif_guild_request_info_pre; +struct HPMHookPoint *HP_intif_guild_request_info_post; +struct HPMHookPoint *HP_intif_guild_addmember_pre; +struct HPMHookPoint *HP_intif_guild_addmember_post; +struct HPMHookPoint *HP_intif_guild_leave_pre; +struct HPMHookPoint *HP_intif_guild_leave_post; +struct HPMHookPoint *HP_intif_guild_memberinfoshort_pre; +struct HPMHookPoint *HP_intif_guild_memberinfoshort_post; +struct HPMHookPoint *HP_intif_guild_break_pre; +struct HPMHookPoint *HP_intif_guild_break_post; +struct HPMHookPoint *HP_intif_guild_message_pre; +struct HPMHookPoint *HP_intif_guild_message_post; +struct HPMHookPoint *HP_intif_guild_change_gm_pre; +struct HPMHookPoint *HP_intif_guild_change_gm_post; +struct HPMHookPoint *HP_intif_guild_change_basicinfo_pre; +struct HPMHookPoint *HP_intif_guild_change_basicinfo_post; +struct HPMHookPoint *HP_intif_guild_change_memberinfo_pre; +struct HPMHookPoint *HP_intif_guild_change_memberinfo_post; +struct HPMHookPoint *HP_intif_guild_position_pre; +struct HPMHookPoint *HP_intif_guild_position_post; +struct HPMHookPoint *HP_intif_guild_skillup_pre; +struct HPMHookPoint *HP_intif_guild_skillup_post; +struct HPMHookPoint *HP_intif_guild_alliance_pre; +struct HPMHookPoint *HP_intif_guild_alliance_post; +struct HPMHookPoint *HP_intif_guild_notice_pre; +struct HPMHookPoint *HP_intif_guild_notice_post; +struct HPMHookPoint *HP_intif_guild_emblem_pre; +struct HPMHookPoint *HP_intif_guild_emblem_post; +struct HPMHookPoint *HP_intif_guild_castle_dataload_pre; +struct HPMHookPoint *HP_intif_guild_castle_dataload_post; +struct HPMHookPoint *HP_intif_guild_castle_datasave_pre; +struct HPMHookPoint *HP_intif_guild_castle_datasave_post; +struct HPMHookPoint *HP_intif_request_petdata_pre; +struct HPMHookPoint *HP_intif_request_petdata_post; +struct HPMHookPoint *HP_intif_save_petdata_pre; +struct HPMHookPoint *HP_intif_save_petdata_post; +struct HPMHookPoint *HP_intif_delete_petdata_pre; +struct HPMHookPoint *HP_intif_delete_petdata_post; +struct HPMHookPoint *HP_intif_rename_pre; +struct HPMHookPoint *HP_intif_rename_post; +struct HPMHookPoint *HP_intif_homunculus_create_pre; +struct HPMHookPoint *HP_intif_homunculus_create_post; +struct HPMHookPoint *HP_intif_homunculus_requestload_pre; +struct HPMHookPoint *HP_intif_homunculus_requestload_post; +struct HPMHookPoint *HP_intif_homunculus_requestsave_pre; +struct HPMHookPoint *HP_intif_homunculus_requestsave_post; +struct HPMHookPoint *HP_intif_homunculus_requestdelete_pre; +struct HPMHookPoint *HP_intif_homunculus_requestdelete_post; +struct HPMHookPoint *HP_intif_request_questlog_pre; +struct HPMHookPoint *HP_intif_request_questlog_post; +struct HPMHookPoint *HP_intif_quest_save_pre; +struct HPMHookPoint *HP_intif_quest_save_post; +struct HPMHookPoint *HP_intif_mercenary_create_pre; +struct HPMHookPoint *HP_intif_mercenary_create_post; +struct HPMHookPoint *HP_intif_mercenary_request_pre; +struct HPMHookPoint *HP_intif_mercenary_request_post; +struct HPMHookPoint *HP_intif_mercenary_delete_pre; +struct HPMHookPoint *HP_intif_mercenary_delete_post; +struct HPMHookPoint *HP_intif_mercenary_save_pre; +struct HPMHookPoint *HP_intif_mercenary_save_post; +struct HPMHookPoint *HP_intif_Mail_requestinbox_pre; +struct HPMHookPoint *HP_intif_Mail_requestinbox_post; +struct HPMHookPoint *HP_intif_Mail_read_pre; +struct HPMHookPoint *HP_intif_Mail_read_post; +struct HPMHookPoint *HP_intif_Mail_getattach_pre; +struct HPMHookPoint *HP_intif_Mail_getattach_post; +struct HPMHookPoint *HP_intif_Mail_delete_pre; +struct HPMHookPoint *HP_intif_Mail_delete_post; +struct HPMHookPoint *HP_intif_Mail_return_pre; +struct HPMHookPoint *HP_intif_Mail_return_post; +struct HPMHookPoint *HP_intif_Mail_send_pre; +struct HPMHookPoint *HP_intif_Mail_send_post; +struct HPMHookPoint *HP_intif_Auction_requestlist_pre; +struct HPMHookPoint *HP_intif_Auction_requestlist_post; +struct HPMHookPoint *HP_intif_Auction_register_pre; +struct HPMHookPoint *HP_intif_Auction_register_post; +struct HPMHookPoint *HP_intif_Auction_cancel_pre; +struct HPMHookPoint *HP_intif_Auction_cancel_post; +struct HPMHookPoint *HP_intif_Auction_close_pre; +struct HPMHookPoint *HP_intif_Auction_close_post; +struct HPMHookPoint *HP_intif_Auction_bid_pre; +struct HPMHookPoint *HP_intif_Auction_bid_post; +struct HPMHookPoint *HP_intif_elemental_create_pre; +struct HPMHookPoint *HP_intif_elemental_create_post; +struct HPMHookPoint *HP_intif_elemental_request_pre; +struct HPMHookPoint *HP_intif_elemental_request_post; +struct HPMHookPoint *HP_intif_elemental_delete_pre; +struct HPMHookPoint *HP_intif_elemental_delete_post; +struct HPMHookPoint *HP_intif_elemental_save_pre; +struct HPMHookPoint *HP_intif_elemental_save_post; +struct HPMHookPoint *HP_intif_request_accinfo_pre; +struct HPMHookPoint *HP_intif_request_accinfo_post; +struct HPMHookPoint *HP_intif_CheckForCharServer_pre; +struct HPMHookPoint *HP_intif_CheckForCharServer_post; +struct HPMHookPoint *HP_intif_pWisMessage_pre; +struct HPMHookPoint *HP_intif_pWisMessage_post; +struct HPMHookPoint *HP_intif_pWisEnd_pre; +struct HPMHookPoint *HP_intif_pWisEnd_post; +struct HPMHookPoint *HP_intif_pWisToGM_sub_pre; +struct HPMHookPoint *HP_intif_pWisToGM_sub_post; +struct HPMHookPoint *HP_intif_pWisToGM_pre; +struct HPMHookPoint *HP_intif_pWisToGM_post; +struct HPMHookPoint *HP_intif_pRegisters_pre; +struct HPMHookPoint *HP_intif_pRegisters_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_pLoadGuildStorage_pre; +struct HPMHookPoint *HP_intif_pLoadGuildStorage_post; +struct HPMHookPoint *HP_intif_pSaveGuildStorage_pre; +struct HPMHookPoint *HP_intif_pSaveGuildStorage_post; +struct HPMHookPoint *HP_intif_pPartyCreated_pre; +struct HPMHookPoint *HP_intif_pPartyCreated_post; +struct HPMHookPoint *HP_intif_pPartyInfo_pre; +struct HPMHookPoint *HP_intif_pPartyInfo_post; +struct HPMHookPoint *HP_intif_pPartyMemberAdded_pre; +struct HPMHookPoint *HP_intif_pPartyMemberAdded_post; +struct HPMHookPoint *HP_intif_pPartyOptionChanged_pre; +struct HPMHookPoint *HP_intif_pPartyOptionChanged_post; +struct HPMHookPoint *HP_intif_pPartyMemberWithdraw_pre; +struct HPMHookPoint *HP_intif_pPartyMemberWithdraw_post; +struct HPMHookPoint *HP_intif_pPartyMove_pre; +struct HPMHookPoint *HP_intif_pPartyMove_post; +struct HPMHookPoint *HP_intif_pPartyBroken_pre; +struct HPMHookPoint *HP_intif_pPartyBroken_post; +struct HPMHookPoint *HP_intif_pPartyMessage_pre; +struct HPMHookPoint *HP_intif_pPartyMessage_post; +struct HPMHookPoint *HP_intif_pGuildCreated_pre; +struct HPMHookPoint *HP_intif_pGuildCreated_post; +struct HPMHookPoint *HP_intif_pGuildInfo_pre; +struct HPMHookPoint *HP_intif_pGuildInfo_post; +struct HPMHookPoint *HP_intif_pGuildMemberAdded_pre; +struct HPMHookPoint *HP_intif_pGuildMemberAdded_post; +struct HPMHookPoint *HP_intif_pGuildMemberWithdraw_pre; +struct HPMHookPoint *HP_intif_pGuildMemberWithdraw_post; +struct HPMHookPoint *HP_intif_pGuildMemberInfoShort_pre; +struct HPMHookPoint *HP_intif_pGuildMemberInfoShort_post; +struct HPMHookPoint *HP_intif_pGuildBroken_pre; +struct HPMHookPoint *HP_intif_pGuildBroken_post; +struct HPMHookPoint *HP_intif_pGuildMessage_pre; +struct HPMHookPoint *HP_intif_pGuildMessage_post; +struct HPMHookPoint *HP_intif_pGuildBasicInfoChanged_pre; +struct HPMHookPoint *HP_intif_pGuildBasicInfoChanged_post; +struct HPMHookPoint *HP_intif_pGuildMemberInfoChanged_pre; +struct HPMHookPoint *HP_intif_pGuildMemberInfoChanged_post; +struct HPMHookPoint *HP_intif_pGuildPosition_pre; +struct HPMHookPoint *HP_intif_pGuildPosition_post; +struct HPMHookPoint *HP_intif_pGuildSkillUp_pre; +struct HPMHookPoint *HP_intif_pGuildSkillUp_post; +struct HPMHookPoint *HP_intif_pGuildAlliance_pre; +struct HPMHookPoint *HP_intif_pGuildAlliance_post; +struct HPMHookPoint *HP_intif_pGuildNotice_pre; +struct HPMHookPoint *HP_intif_pGuildNotice_post; +struct HPMHookPoint *HP_intif_pGuildEmblem_pre; +struct HPMHookPoint *HP_intif_pGuildEmblem_post; +struct HPMHookPoint *HP_intif_pGuildCastleDataLoad_pre; +struct HPMHookPoint *HP_intif_pGuildCastleDataLoad_post; +struct HPMHookPoint *HP_intif_pGuildMasterChanged_pre; +struct HPMHookPoint *HP_intif_pGuildMasterChanged_post; +struct HPMHookPoint *HP_intif_pQuestLog_pre; +struct HPMHookPoint *HP_intif_pQuestLog_post; +struct HPMHookPoint *HP_intif_pQuestSave_pre; +struct HPMHookPoint *HP_intif_pQuestSave_post; +struct HPMHookPoint *HP_intif_pMailInboxReceived_pre; +struct HPMHookPoint *HP_intif_pMailInboxReceived_post; +struct HPMHookPoint *HP_intif_pMailNew_pre; +struct HPMHookPoint *HP_intif_pMailNew_post; +struct HPMHookPoint *HP_intif_pMailGetAttach_pre; +struct HPMHookPoint *HP_intif_pMailGetAttach_post; +struct HPMHookPoint *HP_intif_pMailDelete_pre; +struct HPMHookPoint *HP_intif_pMailDelete_post; +struct HPMHookPoint *HP_intif_pMailReturn_pre; +struct HPMHookPoint *HP_intif_pMailReturn_post; +struct HPMHookPoint *HP_intif_pMailSend_pre; +struct HPMHookPoint *HP_intif_pMailSend_post; +struct HPMHookPoint *HP_intif_pAuctionResults_pre; +struct HPMHookPoint *HP_intif_pAuctionResults_post; +struct HPMHookPoint *HP_intif_pAuctionRegister_pre; +struct HPMHookPoint *HP_intif_pAuctionRegister_post; +struct HPMHookPoint *HP_intif_pAuctionCancel_pre; +struct HPMHookPoint *HP_intif_pAuctionCancel_post; +struct HPMHookPoint *HP_intif_pAuctionClose_pre; +struct HPMHookPoint *HP_intif_pAuctionClose_post; +struct HPMHookPoint *HP_intif_pAuctionMessage_pre; +struct HPMHookPoint *HP_intif_pAuctionMessage_post; +struct HPMHookPoint *HP_intif_pAuctionBid_pre; +struct HPMHookPoint *HP_intif_pAuctionBid_post; +struct HPMHookPoint *HP_intif_pMercenaryReceived_pre; +struct HPMHookPoint *HP_intif_pMercenaryReceived_post; +struct HPMHookPoint *HP_intif_pMercenaryDeleted_pre; +struct HPMHookPoint *HP_intif_pMercenaryDeleted_post; +struct HPMHookPoint *HP_intif_pMercenarySaved_pre; +struct HPMHookPoint *HP_intif_pMercenarySaved_post; +struct HPMHookPoint *HP_intif_pElementalReceived_pre; +struct HPMHookPoint *HP_intif_pElementalReceived_post; +struct HPMHookPoint *HP_intif_pElementalDeleted_pre; +struct HPMHookPoint *HP_intif_pElementalDeleted_post; +struct HPMHookPoint *HP_intif_pElementalSaved_pre; +struct HPMHookPoint *HP_intif_pElementalSaved_post; +struct HPMHookPoint *HP_intif_pCreatePet_pre; +struct HPMHookPoint *HP_intif_pCreatePet_post; +struct HPMHookPoint *HP_intif_pRecvPetData_pre; +struct HPMHookPoint *HP_intif_pRecvPetData_post; +struct HPMHookPoint *HP_intif_pSavePetOk_pre; +struct HPMHookPoint *HP_intif_pSavePetOk_post; +struct HPMHookPoint *HP_intif_pDeletePetOk_pre; +struct HPMHookPoint *HP_intif_pDeletePetOk_post; +struct HPMHookPoint *HP_intif_pCreateHomunculus_pre; +struct HPMHookPoint *HP_intif_pCreateHomunculus_post; +struct HPMHookPoint *HP_intif_pRecvHomunculusData_pre; +struct HPMHookPoint *HP_intif_pRecvHomunculusData_post; +struct HPMHookPoint *HP_intif_pSaveHomunculusOk_pre; +struct HPMHookPoint *HP_intif_pSaveHomunculusOk_post; +struct HPMHookPoint *HP_intif_pDeleteHomunculusOk_pre; +struct HPMHookPoint *HP_intif_pDeleteHomunculusOk_post; +struct HPMHookPoint *HP_ircbot_init_pre; +struct HPMHookPoint *HP_ircbot_init_post; +struct HPMHookPoint *HP_ircbot_final_pre; +struct HPMHookPoint *HP_ircbot_final_post; +struct HPMHookPoint *HP_ircbot_parse_pre; +struct HPMHookPoint *HP_ircbot_parse_post; +struct HPMHookPoint *HP_ircbot_parse_sub_pre; +struct HPMHookPoint *HP_ircbot_parse_sub_post; +struct HPMHookPoint *HP_ircbot_parse_source_pre; +struct HPMHookPoint *HP_ircbot_parse_source_post; +struct HPMHookPoint *HP_ircbot_func_search_pre; +struct HPMHookPoint *HP_ircbot_func_search_post; +struct HPMHookPoint *HP_ircbot_connect_timer_pre; +struct HPMHookPoint *HP_ircbot_connect_timer_post; +struct HPMHookPoint *HP_ircbot_identify_timer_pre; +struct HPMHookPoint *HP_ircbot_identify_timer_post; +struct HPMHookPoint *HP_ircbot_join_timer_pre; +struct HPMHookPoint *HP_ircbot_join_timer_post; +struct HPMHookPoint *HP_ircbot_send_pre; +struct HPMHookPoint *HP_ircbot_send_post; +struct HPMHookPoint *HP_ircbot_relay_pre; +struct HPMHookPoint *HP_ircbot_relay_post; +struct HPMHookPoint *HP_ircbot_pong_pre; +struct HPMHookPoint *HP_ircbot_pong_post; +struct HPMHookPoint *HP_ircbot_privmsg_pre; +struct HPMHookPoint *HP_ircbot_privmsg_post; +struct HPMHookPoint *HP_ircbot_userjoin_pre; +struct HPMHookPoint *HP_ircbot_userjoin_post; +struct HPMHookPoint *HP_ircbot_userleave_pre; +struct HPMHookPoint *HP_ircbot_userleave_post; +struct HPMHookPoint *HP_ircbot_usernick_pre; +struct HPMHookPoint *HP_ircbot_usernick_post; +struct HPMHookPoint *HP_itemdb_init_pre; +struct HPMHookPoint *HP_itemdb_init_post; +struct HPMHookPoint *HP_itemdb_final_pre; +struct HPMHookPoint *HP_itemdb_final_post; +struct HPMHookPoint *HP_itemdb_reload_pre; +struct HPMHookPoint *HP_itemdb_reload_post; +struct HPMHookPoint *HP_itemdb_name_constants_pre; +struct HPMHookPoint *HP_itemdb_name_constants_post; +struct HPMHookPoint *HP_itemdb_force_name_constants_pre; +struct HPMHookPoint *HP_itemdb_force_name_constants_post; +struct HPMHookPoint *HP_itemdb_read_groups_pre; +struct HPMHookPoint *HP_itemdb_read_groups_post; +struct HPMHookPoint *HP_itemdb_read_chains_pre; +struct HPMHookPoint *HP_itemdb_read_chains_post; +struct HPMHookPoint *HP_itemdb_read_packages_pre; +struct HPMHookPoint *HP_itemdb_read_packages_post; +struct HPMHookPoint *HP_itemdb_write_cached_packages_pre; +struct HPMHookPoint *HP_itemdb_write_cached_packages_post; +struct HPMHookPoint *HP_itemdb_read_cached_packages_pre; +struct HPMHookPoint *HP_itemdb_read_cached_packages_post; +struct HPMHookPoint *HP_itemdb_name2id_pre; +struct HPMHookPoint *HP_itemdb_name2id_post; +struct HPMHookPoint *HP_itemdb_search_name_pre; +struct HPMHookPoint *HP_itemdb_search_name_post; +struct HPMHookPoint *HP_itemdb_search_name_array_pre; +struct HPMHookPoint *HP_itemdb_search_name_array_post; +struct HPMHookPoint *HP_itemdb_load_pre; +struct HPMHookPoint *HP_itemdb_load_post; +struct HPMHookPoint *HP_itemdb_search_pre; +struct HPMHookPoint *HP_itemdb_search_post; +struct HPMHookPoint *HP_itemdb_parse_dbrow_pre; +struct HPMHookPoint *HP_itemdb_parse_dbrow_post; +struct HPMHookPoint *HP_itemdb_exists_pre; +struct HPMHookPoint *HP_itemdb_exists_post; +struct HPMHookPoint *HP_itemdb_in_group_pre; +struct HPMHookPoint *HP_itemdb_in_group_post; +struct HPMHookPoint *HP_itemdb_group_item_pre; +struct HPMHookPoint *HP_itemdb_group_item_post; +struct HPMHookPoint *HP_itemdb_chain_item_pre; +struct HPMHookPoint *HP_itemdb_chain_item_post; +struct HPMHookPoint *HP_itemdb_package_item_pre; +struct HPMHookPoint *HP_itemdb_package_item_post; +struct HPMHookPoint *HP_itemdb_searchname_sub_pre; +struct HPMHookPoint *HP_itemdb_searchname_sub_post; +struct HPMHookPoint *HP_itemdb_searchname_array_sub_pre; +struct HPMHookPoint *HP_itemdb_searchname_array_sub_post; +struct HPMHookPoint *HP_itemdb_searchrandomid_pre; +struct HPMHookPoint *HP_itemdb_searchrandomid_post; +struct HPMHookPoint *HP_itemdb_typename_pre; +struct HPMHookPoint *HP_itemdb_typename_post; +struct HPMHookPoint *HP_itemdb_jobid2mapid_pre; +struct HPMHookPoint *HP_itemdb_jobid2mapid_post; +struct HPMHookPoint *HP_itemdb_create_dummy_data_pre; +struct HPMHookPoint *HP_itemdb_create_dummy_data_post; +struct HPMHookPoint *HP_itemdb_create_item_data_pre; +struct HPMHookPoint *HP_itemdb_create_item_data_post; +struct HPMHookPoint *HP_itemdb_isequip_pre; +struct HPMHookPoint *HP_itemdb_isequip_post; +struct HPMHookPoint *HP_itemdb_isequip2_pre; +struct HPMHookPoint *HP_itemdb_isequip2_post; +struct HPMHookPoint *HP_itemdb_isstackable_pre; +struct HPMHookPoint *HP_itemdb_isstackable_post; +struct HPMHookPoint *HP_itemdb_isstackable2_pre; +struct HPMHookPoint *HP_itemdb_isstackable2_post; +struct HPMHookPoint *HP_itemdb_isdropable_sub_pre; +struct HPMHookPoint *HP_itemdb_isdropable_sub_post; +struct HPMHookPoint *HP_itemdb_cantrade_sub_pre; +struct HPMHookPoint *HP_itemdb_cantrade_sub_post; +struct HPMHookPoint *HP_itemdb_canpartnertrade_sub_pre; +struct HPMHookPoint *HP_itemdb_canpartnertrade_sub_post; +struct HPMHookPoint *HP_itemdb_cansell_sub_pre; +struct HPMHookPoint *HP_itemdb_cansell_sub_post; +struct HPMHookPoint *HP_itemdb_cancartstore_sub_pre; +struct HPMHookPoint *HP_itemdb_cancartstore_sub_post; +struct HPMHookPoint *HP_itemdb_canstore_sub_pre; +struct HPMHookPoint *HP_itemdb_canstore_sub_post; +struct HPMHookPoint *HP_itemdb_canguildstore_sub_pre; +struct HPMHookPoint *HP_itemdb_canguildstore_sub_post; +struct HPMHookPoint *HP_itemdb_canmail_sub_pre; +struct HPMHookPoint *HP_itemdb_canmail_sub_post; +struct HPMHookPoint *HP_itemdb_canauction_sub_pre; +struct HPMHookPoint *HP_itemdb_canauction_sub_post; +struct HPMHookPoint *HP_itemdb_isrestricted_pre; +struct HPMHookPoint *HP_itemdb_isrestricted_post; +struct HPMHookPoint *HP_itemdb_isidentified_pre; +struct HPMHookPoint *HP_itemdb_isidentified_post; +struct HPMHookPoint *HP_itemdb_isidentified2_pre; +struct HPMHookPoint *HP_itemdb_isidentified2_post; +struct HPMHookPoint *HP_itemdb_read_itemavail_pre; +struct HPMHookPoint *HP_itemdb_read_itemavail_post; +struct HPMHookPoint *HP_itemdb_read_itemtrade_pre; +struct HPMHookPoint *HP_itemdb_read_itemtrade_post; +struct HPMHookPoint *HP_itemdb_read_itemdelay_pre; +struct HPMHookPoint *HP_itemdb_read_itemdelay_post; +struct HPMHookPoint *HP_itemdb_read_stack_pre; +struct HPMHookPoint *HP_itemdb_read_stack_post; +struct HPMHookPoint *HP_itemdb_read_buyingstore_pre; +struct HPMHookPoint *HP_itemdb_read_buyingstore_post; +struct HPMHookPoint *HP_itemdb_read_nouse_pre; +struct HPMHookPoint *HP_itemdb_read_nouse_post; +struct HPMHookPoint *HP_itemdb_combo_split_atoi_pre; +struct HPMHookPoint *HP_itemdb_combo_split_atoi_post; +struct HPMHookPoint *HP_itemdb_read_combos_pre; +struct HPMHookPoint *HP_itemdb_read_combos_post; +struct HPMHookPoint *HP_itemdb_gendercheck_pre; +struct HPMHookPoint *HP_itemdb_gendercheck_post; +struct HPMHookPoint *HP_itemdb_re_split_atoi_pre; +struct HPMHookPoint *HP_itemdb_re_split_atoi_post; +struct HPMHookPoint *HP_itemdb_readdb_pre; +struct HPMHookPoint *HP_itemdb_readdb_post; +struct HPMHookPoint *HP_itemdb_read_sqldb_pre; +struct HPMHookPoint *HP_itemdb_read_sqldb_post; +struct HPMHookPoint *HP_itemdb_unique_id_pre; +struct HPMHookPoint *HP_itemdb_unique_id_post; +struct HPMHookPoint *HP_itemdb_uid_load_pre; +struct HPMHookPoint *HP_itemdb_uid_load_post; +struct HPMHookPoint *HP_itemdb_read_pre; +struct HPMHookPoint *HP_itemdb_read_post; +struct HPMHookPoint *HP_itemdb_destroy_item_data_pre; +struct HPMHookPoint *HP_itemdb_destroy_item_data_post; +struct HPMHookPoint *HP_itemdb_final_sub_pre; +struct HPMHookPoint *HP_itemdb_final_sub_post; +struct HPMHookPoint *HP_logs_pick_pc_pre; +struct HPMHookPoint *HP_logs_pick_pc_post; +struct HPMHookPoint *HP_logs_pick_mob_pre; +struct HPMHookPoint *HP_logs_pick_mob_post; +struct HPMHookPoint *HP_logs_zeny_pre; +struct HPMHookPoint *HP_logs_zeny_post; +struct HPMHookPoint *HP_logs_npc_pre; +struct HPMHookPoint *HP_logs_npc_post; +struct HPMHookPoint *HP_logs_chat_pre; +struct HPMHookPoint *HP_logs_chat_post; +struct HPMHookPoint *HP_logs_atcommand_pre; +struct HPMHookPoint *HP_logs_atcommand_post; +struct HPMHookPoint *HP_logs_branch_pre; +struct HPMHookPoint *HP_logs_branch_post; +struct HPMHookPoint *HP_logs_mvpdrop_pre; +struct HPMHookPoint *HP_logs_mvpdrop_post; +struct HPMHookPoint *HP_logs_pick_sub_pre; +struct HPMHookPoint *HP_logs_pick_sub_post; +struct HPMHookPoint *HP_logs_zeny_sub_pre; +struct HPMHookPoint *HP_logs_zeny_sub_post; +struct HPMHookPoint *HP_logs_npc_sub_pre; +struct HPMHookPoint *HP_logs_npc_sub_post; +struct HPMHookPoint *HP_logs_chat_sub_pre; +struct HPMHookPoint *HP_logs_chat_sub_post; +struct HPMHookPoint *HP_logs_atcommand_sub_pre; +struct HPMHookPoint *HP_logs_atcommand_sub_post; +struct HPMHookPoint *HP_logs_branch_sub_pre; +struct HPMHookPoint *HP_logs_branch_sub_post; +struct HPMHookPoint *HP_logs_mvpdrop_sub_pre; +struct HPMHookPoint *HP_logs_mvpdrop_sub_post; +struct HPMHookPoint *HP_logs_config_read_pre; +struct HPMHookPoint *HP_logs_config_read_post; +struct HPMHookPoint *HP_logs_config_done_pre; +struct HPMHookPoint *HP_logs_config_done_post; +struct HPMHookPoint *HP_logs_sql_init_pre; +struct HPMHookPoint *HP_logs_sql_init_post; +struct HPMHookPoint *HP_logs_sql_final_pre; +struct HPMHookPoint *HP_logs_sql_final_post; +struct HPMHookPoint *HP_logs_picktype2char_pre; +struct HPMHookPoint *HP_logs_picktype2char_post; +struct HPMHookPoint *HP_logs_chattype2char_pre; +struct HPMHookPoint *HP_logs_chattype2char_post; +struct HPMHookPoint *HP_logs_should_log_item_pre; +struct HPMHookPoint *HP_logs_should_log_item_post; +struct HPMHookPoint *HP_mail_clear_pre; +struct HPMHookPoint *HP_mail_clear_post; +struct HPMHookPoint *HP_mail_removeitem_pre; +struct HPMHookPoint *HP_mail_removeitem_post; +struct HPMHookPoint *HP_mail_removezeny_pre; +struct HPMHookPoint *HP_mail_removezeny_post; +struct HPMHookPoint *HP_mail_setitem_pre; +struct HPMHookPoint *HP_mail_setitem_post; +struct HPMHookPoint *HP_mail_setattachment_pre; +struct HPMHookPoint *HP_mail_setattachment_post; +struct HPMHookPoint *HP_mail_getattachment_pre; +struct HPMHookPoint *HP_mail_getattachment_post; +struct HPMHookPoint *HP_mail_openmail_pre; +struct HPMHookPoint *HP_mail_openmail_post; +struct HPMHookPoint *HP_mail_deliveryfail_pre; +struct HPMHookPoint *HP_mail_deliveryfail_post; +struct HPMHookPoint *HP_mail_invalid_operation_pre; +struct HPMHookPoint *HP_mail_invalid_operation_post; +struct HPMHookPoint *HP_map_zone_init_pre; +struct HPMHookPoint *HP_map_zone_init_post; +struct HPMHookPoint *HP_map_zone_remove_pre; +struct HPMHookPoint *HP_map_zone_remove_post; +struct HPMHookPoint *HP_map_zone_apply_pre; +struct HPMHookPoint *HP_map_zone_apply_post; +struct HPMHookPoint *HP_map_zone_change_pre; +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_getcell_pre; +struct HPMHookPoint *HP_map_getcell_post; +struct HPMHookPoint *HP_map_setgatcell_pre; +struct HPMHookPoint *HP_map_setgatcell_post; +struct HPMHookPoint *HP_map_cellfromcache_pre; +struct HPMHookPoint *HP_map_cellfromcache_post; +struct HPMHookPoint *HP_map_setusers_pre; +struct HPMHookPoint *HP_map_setusers_post; +struct HPMHookPoint *HP_map_getusers_pre; +struct HPMHookPoint *HP_map_getusers_post; +struct HPMHookPoint *HP_map_usercount_pre; +struct HPMHookPoint *HP_map_usercount_post; +struct HPMHookPoint *HP_map_freeblock_pre; +struct HPMHookPoint *HP_map_freeblock_post; +struct HPMHookPoint *HP_map_freeblock_lock_pre; +struct HPMHookPoint *HP_map_freeblock_lock_post; +struct HPMHookPoint *HP_map_freeblock_unlock_pre; +struct HPMHookPoint *HP_map_freeblock_unlock_post; +struct HPMHookPoint *HP_map_addblock_pre; +struct HPMHookPoint *HP_map_addblock_post; +struct HPMHookPoint *HP_map_delblock_pre; +struct HPMHookPoint *HP_map_delblock_post; +struct HPMHookPoint *HP_map_moveblock_pre; +struct HPMHookPoint *HP_map_moveblock_post; +struct HPMHookPoint *HP_map_count_oncell_pre; +struct HPMHookPoint *HP_map_count_oncell_post; +struct HPMHookPoint *HP_map_find_skill_unit_oncell_pre; +struct HPMHookPoint *HP_map_find_skill_unit_oncell_post; +struct HPMHookPoint *HP_map_get_new_object_id_pre; +struct HPMHookPoint *HP_map_get_new_object_id_post; +struct HPMHookPoint *HP_map_search_freecell_pre; +struct HPMHookPoint *HP_map_search_freecell_post; +struct HPMHookPoint *HP_map_quit_pre; +struct HPMHookPoint *HP_map_quit_post; +struct HPMHookPoint *HP_map_addnpc_pre; +struct HPMHookPoint *HP_map_addnpc_post; +struct HPMHookPoint *HP_map_clearflooritem_timer_pre; +struct HPMHookPoint *HP_map_clearflooritem_timer_post; +struct HPMHookPoint *HP_map_removemobs_timer_pre; +struct HPMHookPoint *HP_map_removemobs_timer_post; +struct HPMHookPoint *HP_map_clearflooritem_pre; +struct HPMHookPoint *HP_map_clearflooritem_post; +struct HPMHookPoint *HP_map_addflooritem_pre; +struct HPMHookPoint *HP_map_addflooritem_post; +struct HPMHookPoint *HP_map_addnickdb_pre; +struct HPMHookPoint *HP_map_addnickdb_post; +struct HPMHookPoint *HP_map_delnickdb_pre; +struct HPMHookPoint *HP_map_delnickdb_post; +struct HPMHookPoint *HP_map_reqnickdb_pre; +struct HPMHookPoint *HP_map_reqnickdb_post; +struct HPMHookPoint *HP_map_charid2nick_pre; +struct HPMHookPoint *HP_map_charid2nick_post; +struct HPMHookPoint *HP_map_charid2sd_pre; +struct HPMHookPoint *HP_map_charid2sd_post; +struct HPMHookPoint *HP_map_vforeachpc_pre; +struct HPMHookPoint *HP_map_vforeachpc_post; +struct HPMHookPoint *HP_map_vforeachmob_pre; +struct HPMHookPoint *HP_map_vforeachmob_post; +struct HPMHookPoint *HP_map_vforeachnpc_pre; +struct HPMHookPoint *HP_map_vforeachnpc_post; +struct HPMHookPoint *HP_map_vforeachregen_pre; +struct HPMHookPoint *HP_map_vforeachregen_post; +struct HPMHookPoint *HP_map_vforeachiddb_pre; +struct HPMHookPoint *HP_map_vforeachiddb_post; +struct HPMHookPoint *HP_map_vforeachinrange_pre; +struct HPMHookPoint *HP_map_vforeachinrange_post; +struct HPMHookPoint *HP_map_vforeachinshootrange_pre; +struct HPMHookPoint *HP_map_vforeachinshootrange_post; +struct HPMHookPoint *HP_map_vforeachinarea_pre; +struct HPMHookPoint *HP_map_vforeachinarea_post; +struct HPMHookPoint *HP_map_vforcountinrange_pre; +struct HPMHookPoint *HP_map_vforcountinrange_post; +struct HPMHookPoint *HP_map_vforcountinarea_pre; +struct HPMHookPoint *HP_map_vforcountinarea_post; +struct HPMHookPoint *HP_map_vforeachinmovearea_pre; +struct HPMHookPoint *HP_map_vforeachinmovearea_post; +struct HPMHookPoint *HP_map_vforeachincell_pre; +struct HPMHookPoint *HP_map_vforeachincell_post; +struct HPMHookPoint *HP_map_vforeachinpath_pre; +struct HPMHookPoint *HP_map_vforeachinpath_post; +struct HPMHookPoint *HP_map_vforeachinmap_pre; +struct HPMHookPoint *HP_map_vforeachinmap_post; +struct HPMHookPoint *HP_map_vforeachininstance_pre; +struct HPMHookPoint *HP_map_vforeachininstance_post; +struct HPMHookPoint *HP_map_id2sd_pre; +struct HPMHookPoint *HP_map_id2sd_post; +struct HPMHookPoint *HP_map_id2md_pre; +struct HPMHookPoint *HP_map_id2md_post; +struct HPMHookPoint *HP_map_id2nd_pre; +struct HPMHookPoint *HP_map_id2nd_post; +struct HPMHookPoint *HP_map_id2hd_pre; +struct HPMHookPoint *HP_map_id2hd_post; +struct HPMHookPoint *HP_map_id2mc_pre; +struct HPMHookPoint *HP_map_id2mc_post; +struct HPMHookPoint *HP_map_id2cd_pre; +struct HPMHookPoint *HP_map_id2cd_post; +struct HPMHookPoint *HP_map_id2bl_pre; +struct HPMHookPoint *HP_map_id2bl_post; +struct HPMHookPoint *HP_map_blid_exists_pre; +struct HPMHookPoint *HP_map_blid_exists_post; +struct HPMHookPoint *HP_map_mapindex2mapid_pre; +struct HPMHookPoint *HP_map_mapindex2mapid_post; +struct HPMHookPoint *HP_map_mapname2mapid_pre; +struct HPMHookPoint *HP_map_mapname2mapid_post; +struct HPMHookPoint *HP_map_mapname2ipport_pre; +struct HPMHookPoint *HP_map_mapname2ipport_post; +struct HPMHookPoint *HP_map_setipport_pre; +struct HPMHookPoint *HP_map_setipport_post; +struct HPMHookPoint *HP_map_eraseipport_pre; +struct HPMHookPoint *HP_map_eraseipport_post; +struct HPMHookPoint *HP_map_eraseallipport_pre; +struct HPMHookPoint *HP_map_eraseallipport_post; +struct HPMHookPoint *HP_map_addiddb_pre; +struct HPMHookPoint *HP_map_addiddb_post; +struct HPMHookPoint *HP_map_deliddb_pre; +struct HPMHookPoint *HP_map_deliddb_post; +struct HPMHookPoint *HP_map_nick2sd_pre; +struct HPMHookPoint *HP_map_nick2sd_post; +struct HPMHookPoint *HP_map_getmob_boss_pre; +struct HPMHookPoint *HP_map_getmob_boss_post; +struct HPMHookPoint *HP_map_id2boss_pre; +struct HPMHookPoint *HP_map_id2boss_post; +struct HPMHookPoint *HP_map_reloadnpc_pre; +struct HPMHookPoint *HP_map_reloadnpc_post; +struct HPMHookPoint *HP_map_check_dir_pre; +struct HPMHookPoint *HP_map_check_dir_post; +struct HPMHookPoint *HP_map_calc_dir_pre; +struct HPMHookPoint *HP_map_calc_dir_post; +struct HPMHookPoint *HP_map_random_dir_pre; +struct HPMHookPoint *HP_map_random_dir_post; +struct HPMHookPoint *HP_map_cleanup_sub_pre; +struct HPMHookPoint *HP_map_cleanup_sub_post; +struct HPMHookPoint *HP_map_delmap_pre; +struct HPMHookPoint *HP_map_delmap_post; +struct HPMHookPoint *HP_map_flags_init_pre; +struct HPMHookPoint *HP_map_flags_init_post; +struct HPMHookPoint *HP_map_iwall_set_pre; +struct HPMHookPoint *HP_map_iwall_set_post; +struct HPMHookPoint *HP_map_iwall_get_pre; +struct HPMHookPoint *HP_map_iwall_get_post; +struct HPMHookPoint *HP_map_iwall_remove_pre; +struct HPMHookPoint *HP_map_iwall_remove_post; +struct HPMHookPoint *HP_map_addmobtolist_pre; +struct HPMHookPoint *HP_map_addmobtolist_post; +struct HPMHookPoint *HP_map_spawnmobs_pre; +struct HPMHookPoint *HP_map_spawnmobs_post; +struct HPMHookPoint *HP_map_removemobs_pre; +struct HPMHookPoint *HP_map_removemobs_post; +struct HPMHookPoint *HP_map_addmap2db_pre; +struct HPMHookPoint *HP_map_addmap2db_post; +struct HPMHookPoint *HP_map_removemapdb_pre; +struct HPMHookPoint *HP_map_removemapdb_post; +struct HPMHookPoint *HP_map_clean_pre; +struct HPMHookPoint *HP_map_clean_post; +struct HPMHookPoint *HP_map_do_shutdown_pre; +struct HPMHookPoint *HP_map_do_shutdown_post; +struct HPMHookPoint *HP_map_freeblock_timer_pre; +struct HPMHookPoint *HP_map_freeblock_timer_post; +struct HPMHookPoint *HP_map_searchrandfreecell_pre; +struct HPMHookPoint *HP_map_searchrandfreecell_post; +struct HPMHookPoint *HP_map_count_sub_pre; +struct HPMHookPoint *HP_map_count_sub_post; +struct HPMHookPoint *HP_map_create_charid2nick_pre; +struct HPMHookPoint *HP_map_create_charid2nick_post; +struct HPMHookPoint *HP_map_removemobs_sub_pre; +struct HPMHookPoint *HP_map_removemobs_sub_post; +struct HPMHookPoint *HP_map_gat2cell_pre; +struct HPMHookPoint *HP_map_gat2cell_post; +struct HPMHookPoint *HP_map_cell2gat_pre; +struct HPMHookPoint *HP_map_cell2gat_post; +struct HPMHookPoint *HP_map_getcellp_pre; +struct HPMHookPoint *HP_map_getcellp_post; +struct HPMHookPoint *HP_map_setcell_pre; +struct HPMHookPoint *HP_map_setcell_post; +struct HPMHookPoint *HP_map_sub_getcellp_pre; +struct HPMHookPoint *HP_map_sub_getcellp_post; +struct HPMHookPoint *HP_map_sub_setcell_pre; +struct HPMHookPoint *HP_map_sub_setcell_post; +struct HPMHookPoint *HP_map_iwall_nextxy_pre; +struct HPMHookPoint *HP_map_iwall_nextxy_post; +struct HPMHookPoint *HP_map_create_map_data_other_server_pre; +struct HPMHookPoint *HP_map_create_map_data_other_server_post; +struct HPMHookPoint *HP_map_eraseallipport_sub_pre; +struct HPMHookPoint *HP_map_eraseallipport_sub_post; +struct HPMHookPoint *HP_map_init_mapcache_pre; +struct HPMHookPoint *HP_map_init_mapcache_post; +struct HPMHookPoint *HP_map_readfromcache_pre; +struct HPMHookPoint *HP_map_readfromcache_post; +struct HPMHookPoint *HP_map_addmap_pre; +struct HPMHookPoint *HP_map_addmap_post; +struct HPMHookPoint *HP_map_delmapid_pre; +struct HPMHookPoint *HP_map_delmapid_post; +struct HPMHookPoint *HP_map_zone_db_clear_pre; +struct HPMHookPoint *HP_map_zone_db_clear_post; +struct HPMHookPoint *HP_map_list_final_pre; +struct HPMHookPoint *HP_map_list_final_post; +struct HPMHookPoint *HP_map_waterheight_pre; +struct HPMHookPoint *HP_map_waterheight_post; +struct HPMHookPoint *HP_map_readgat_pre; +struct HPMHookPoint *HP_map_readgat_post; +struct HPMHookPoint *HP_map_readallmaps_pre; +struct HPMHookPoint *HP_map_readallmaps_post; +struct HPMHookPoint *HP_map_config_read_pre; +struct HPMHookPoint *HP_map_config_read_post; +struct HPMHookPoint *HP_map_config_read_sub_pre; +struct HPMHookPoint *HP_map_config_read_sub_post; +struct HPMHookPoint *HP_map_reloadnpc_sub_pre; +struct HPMHookPoint *HP_map_reloadnpc_sub_post; +struct HPMHookPoint *HP_map_inter_config_read_pre; +struct HPMHookPoint *HP_map_inter_config_read_post; +struct HPMHookPoint *HP_map_sql_init_pre; +struct HPMHookPoint *HP_map_sql_init_post; +struct HPMHookPoint *HP_map_sql_close_pre; +struct HPMHookPoint *HP_map_sql_close_post; +struct HPMHookPoint *HP_map_zone_mf_cache_pre; +struct HPMHookPoint *HP_map_zone_mf_cache_post; +struct HPMHookPoint *HP_map_zone_str2itemid_pre; +struct HPMHookPoint *HP_map_zone_str2itemid_post; +struct HPMHookPoint *HP_map_zone_str2skillid_pre; +struct HPMHookPoint *HP_map_zone_str2skillid_post; +struct HPMHookPoint *HP_map_zone_bl_type_pre; +struct HPMHookPoint *HP_map_zone_bl_type_post; +struct HPMHookPoint *HP_map_read_zone_db_pre; +struct HPMHookPoint *HP_map_read_zone_db_post; +struct HPMHookPoint *HP_map_db_final_pre; +struct HPMHookPoint *HP_map_db_final_post; +struct HPMHookPoint *HP_map_nick_db_final_pre; +struct HPMHookPoint *HP_map_nick_db_final_post; +struct HPMHookPoint *HP_map_cleanup_db_sub_pre; +struct HPMHookPoint *HP_map_cleanup_db_sub_post; +struct HPMHookPoint *HP_map_abort_sub_pre; +struct HPMHookPoint *HP_map_abort_sub_post; +struct HPMHookPoint *HP_map_helpscreen_pre; +struct HPMHookPoint *HP_map_helpscreen_post; +struct HPMHookPoint *HP_map_versionscreen_pre; +struct HPMHookPoint *HP_map_versionscreen_post; +struct HPMHookPoint *HP_map_arg_next_value_pre; +struct HPMHookPoint *HP_map_arg_next_value_post; +struct HPMHookPoint *HP_map_addblcell_pre; +struct HPMHookPoint *HP_map_addblcell_post; +struct HPMHookPoint *HP_map_delblcell_pre; +struct HPMHookPoint *HP_map_delblcell_post; +struct HPMHookPoint *HP_mapit_alloc_pre; +struct HPMHookPoint *HP_mapit_alloc_post; +struct HPMHookPoint *HP_mapit_free_pre; +struct HPMHookPoint *HP_mapit_free_post; +struct HPMHookPoint *HP_mapit_first_pre; +struct HPMHookPoint *HP_mapit_first_post; +struct HPMHookPoint *HP_mapit_last_pre; +struct HPMHookPoint *HP_mapit_last_post; +struct HPMHookPoint *HP_mapit_next_pre; +struct HPMHookPoint *HP_mapit_next_post; +struct HPMHookPoint *HP_mapit_prev_pre; +struct HPMHookPoint *HP_mapit_prev_post; +struct HPMHookPoint *HP_mapit_exists_pre; +struct HPMHookPoint *HP_mapit_exists_post; +struct HPMHookPoint *HP_mapreg_init_pre; +struct HPMHookPoint *HP_mapreg_init_post; +struct HPMHookPoint *HP_mapreg_final_pre; +struct HPMHookPoint *HP_mapreg_final_post; +struct HPMHookPoint *HP_mapreg_readreg_pre; +struct HPMHookPoint *HP_mapreg_readreg_post; +struct HPMHookPoint *HP_mapreg_readregstr_pre; +struct HPMHookPoint *HP_mapreg_readregstr_post; +struct HPMHookPoint *HP_mapreg_setreg_pre; +struct HPMHookPoint *HP_mapreg_setreg_post; +struct HPMHookPoint *HP_mapreg_setregstr_pre; +struct HPMHookPoint *HP_mapreg_setregstr_post; +struct HPMHookPoint *HP_mapreg_load_pre; +struct HPMHookPoint *HP_mapreg_load_post; +struct HPMHookPoint *HP_mapreg_save_pre; +struct HPMHookPoint *HP_mapreg_save_post; +struct HPMHookPoint *HP_mapreg_save_timer_pre; +struct HPMHookPoint *HP_mapreg_save_timer_post; +struct HPMHookPoint *HP_mapreg_reload_pre; +struct HPMHookPoint *HP_mapreg_reload_post; +struct HPMHookPoint *HP_mapreg_config_read_pre; +struct HPMHookPoint *HP_mapreg_config_read_post; +struct HPMHookPoint *HP_mercenary_init_pre; +struct HPMHookPoint *HP_mercenary_init_post; +struct HPMHookPoint *HP_mercenary_class_pre; +struct HPMHookPoint *HP_mercenary_class_post; +struct HPMHookPoint *HP_mercenary_get_viewdata_pre; +struct HPMHookPoint *HP_mercenary_get_viewdata_post; +struct HPMHookPoint *HP_mercenary_create_pre; +struct HPMHookPoint *HP_mercenary_create_post; +struct HPMHookPoint *HP_mercenary_data_received_pre; +struct HPMHookPoint *HP_mercenary_data_received_post; +struct HPMHookPoint *HP_mercenary_save_pre; +struct HPMHookPoint *HP_mercenary_save_post; +struct HPMHookPoint *HP_mercenary_heal_pre; +struct HPMHookPoint *HP_mercenary_heal_post; +struct HPMHookPoint *HP_mercenary_dead_pre; +struct HPMHookPoint *HP_mercenary_dead_post; +struct HPMHookPoint *HP_mercenary_delete_pre; +struct HPMHookPoint *HP_mercenary_delete_post; +struct HPMHookPoint *HP_mercenary_contract_stop_pre; +struct HPMHookPoint *HP_mercenary_contract_stop_post; +struct HPMHookPoint *HP_mercenary_get_lifetime_pre; +struct HPMHookPoint *HP_mercenary_get_lifetime_post; +struct HPMHookPoint *HP_mercenary_get_guild_pre; +struct HPMHookPoint *HP_mercenary_get_guild_post; +struct HPMHookPoint *HP_mercenary_get_faith_pre; +struct HPMHookPoint *HP_mercenary_get_faith_post; +struct HPMHookPoint *HP_mercenary_set_faith_pre; +struct HPMHookPoint *HP_mercenary_set_faith_post; +struct HPMHookPoint *HP_mercenary_get_calls_pre; +struct HPMHookPoint *HP_mercenary_get_calls_post; +struct HPMHookPoint *HP_mercenary_set_calls_pre; +struct HPMHookPoint *HP_mercenary_set_calls_post; +struct HPMHookPoint *HP_mercenary_kills_pre; +struct HPMHookPoint *HP_mercenary_kills_post; +struct HPMHookPoint *HP_mercenary_checkskill_pre; +struct HPMHookPoint *HP_mercenary_checkskill_post; +struct HPMHookPoint *HP_mercenary_read_db_pre; +struct HPMHookPoint *HP_mercenary_read_db_post; +struct HPMHookPoint *HP_mercenary_read_skilldb_pre; +struct HPMHookPoint *HP_mercenary_read_skilldb_post; +struct HPMHookPoint *HP_mercenary_killbonus_pre; +struct HPMHookPoint *HP_mercenary_killbonus_post; +struct HPMHookPoint *HP_mercenary_search_index_pre; +struct HPMHookPoint *HP_mercenary_search_index_post; +struct HPMHookPoint *HP_mercenary_contract_end_timer_pre; +struct HPMHookPoint *HP_mercenary_contract_end_timer_post; +struct HPMHookPoint *HP_mercenary_read_db_sub_pre; +struct HPMHookPoint *HP_mercenary_read_db_sub_post; +struct HPMHookPoint *HP_mercenary_read_skill_db_sub_pre; +struct HPMHookPoint *HP_mercenary_read_skill_db_sub_post; +struct HPMHookPoint *HP_mob_init_pre; +struct HPMHookPoint *HP_mob_init_post; +struct HPMHookPoint *HP_mob_final_pre; +struct HPMHookPoint *HP_mob_final_post; +struct HPMHookPoint *HP_mob_reload_pre; +struct HPMHookPoint *HP_mob_reload_post; +struct HPMHookPoint *HP_mob_db_pre; +struct HPMHookPoint *HP_mob_db_post; +struct HPMHookPoint *HP_mob_chat_pre; +struct HPMHookPoint *HP_mob_chat_post; +struct HPMHookPoint *HP_mob_makedummymobdb_pre; +struct HPMHookPoint *HP_mob_makedummymobdb_post; +struct HPMHookPoint *HP_mob_spawn_guardian_sub_pre; +struct HPMHookPoint *HP_mob_spawn_guardian_sub_post; +struct HPMHookPoint *HP_mob_skill_id2skill_idx_pre; +struct HPMHookPoint *HP_mob_skill_id2skill_idx_post; +struct HPMHookPoint *HP_mob_db_searchname_pre; +struct HPMHookPoint *HP_mob_db_searchname_post; +struct HPMHookPoint *HP_mob_db_searchname_array_sub_pre; +struct HPMHookPoint *HP_mob_db_searchname_array_sub_post; +struct HPMHookPoint *HP_mob_mvptomb_create_pre; +struct HPMHookPoint *HP_mob_mvptomb_create_post; +struct HPMHookPoint *HP_mob_mvptomb_destroy_pre; +struct HPMHookPoint *HP_mob_mvptomb_destroy_post; +struct HPMHookPoint *HP_mob_db_searchname_array_pre; +struct HPMHookPoint *HP_mob_db_searchname_array_post; +struct HPMHookPoint *HP_mob_db_checkid_pre; +struct HPMHookPoint *HP_mob_db_checkid_post; +struct HPMHookPoint *HP_mob_get_viewdata_pre; +struct HPMHookPoint *HP_mob_get_viewdata_post; +struct HPMHookPoint *HP_mob_parse_dataset_pre; +struct HPMHookPoint *HP_mob_parse_dataset_post; +struct HPMHookPoint *HP_mob_spawn_dataset_pre; +struct HPMHookPoint *HP_mob_spawn_dataset_post; +struct HPMHookPoint *HP_mob_get_random_id_pre; +struct HPMHookPoint *HP_mob_get_random_id_post; +struct HPMHookPoint *HP_mob_ksprotected_pre; +struct HPMHookPoint *HP_mob_ksprotected_post; +struct HPMHookPoint *HP_mob_once_spawn_sub_pre; +struct HPMHookPoint *HP_mob_once_spawn_sub_post; +struct HPMHookPoint *HP_mob_once_spawn_pre; +struct HPMHookPoint *HP_mob_once_spawn_post; +struct HPMHookPoint *HP_mob_once_spawn_area_pre; +struct HPMHookPoint *HP_mob_once_spawn_area_post; +struct HPMHookPoint *HP_mob_spawn_guardian_pre; +struct HPMHookPoint *HP_mob_spawn_guardian_post; +struct HPMHookPoint *HP_mob_spawn_bg_pre; +struct HPMHookPoint *HP_mob_spawn_bg_post; +struct HPMHookPoint *HP_mob_can_reach_pre; +struct HPMHookPoint *HP_mob_can_reach_post; +struct HPMHookPoint *HP_mob_linksearch_pre; +struct HPMHookPoint *HP_mob_linksearch_post; +struct HPMHookPoint *HP_mob_delayspawn_pre; +struct HPMHookPoint *HP_mob_delayspawn_post; +struct HPMHookPoint *HP_mob_setdelayspawn_pre; +struct HPMHookPoint *HP_mob_setdelayspawn_post; +struct HPMHookPoint *HP_mob_count_sub_pre; +struct HPMHookPoint *HP_mob_count_sub_post; +struct HPMHookPoint *HP_mob_spawn_pre; +struct HPMHookPoint *HP_mob_spawn_post; +struct HPMHookPoint *HP_mob_can_changetarget_pre; +struct HPMHookPoint *HP_mob_can_changetarget_post; +struct HPMHookPoint *HP_mob_target_pre; +struct HPMHookPoint *HP_mob_target_post; +struct HPMHookPoint *HP_mob_ai_sub_hard_activesearch_pre; +struct HPMHookPoint *HP_mob_ai_sub_hard_activesearch_post; +struct HPMHookPoint *HP_mob_ai_sub_hard_changechase_pre; +struct HPMHookPoint *HP_mob_ai_sub_hard_changechase_post; +struct HPMHookPoint *HP_mob_ai_sub_hard_bg_ally_pre; +struct HPMHookPoint *HP_mob_ai_sub_hard_bg_ally_post; +struct HPMHookPoint *HP_mob_ai_sub_hard_lootsearch_pre; +struct HPMHookPoint *HP_mob_ai_sub_hard_lootsearch_post; +struct HPMHookPoint *HP_mob_warpchase_sub_pre; +struct HPMHookPoint *HP_mob_warpchase_sub_post; +struct HPMHookPoint *HP_mob_ai_sub_hard_slavemob_pre; +struct HPMHookPoint *HP_mob_ai_sub_hard_slavemob_post; +struct HPMHookPoint *HP_mob_unlocktarget_pre; +struct HPMHookPoint *HP_mob_unlocktarget_post; +struct HPMHookPoint *HP_mob_randomwalk_pre; +struct HPMHookPoint *HP_mob_randomwalk_post; +struct HPMHookPoint *HP_mob_warpchase_pre; +struct HPMHookPoint *HP_mob_warpchase_post; +struct HPMHookPoint *HP_mob_ai_sub_hard_pre; +struct HPMHookPoint *HP_mob_ai_sub_hard_post; +struct HPMHookPoint *HP_mob_ai_sub_hard_timer_pre; +struct HPMHookPoint *HP_mob_ai_sub_hard_timer_post; +struct HPMHookPoint *HP_mob_ai_sub_foreachclient_pre; +struct HPMHookPoint *HP_mob_ai_sub_foreachclient_post; +struct HPMHookPoint *HP_mob_ai_sub_lazy_pre; +struct HPMHookPoint *HP_mob_ai_sub_lazy_post; +struct HPMHookPoint *HP_mob_ai_lazy_pre; +struct HPMHookPoint *HP_mob_ai_lazy_post; +struct HPMHookPoint *HP_mob_ai_hard_pre; +struct HPMHookPoint *HP_mob_ai_hard_post; +struct HPMHookPoint *HP_mob_setdropitem_pre; +struct HPMHookPoint *HP_mob_setdropitem_post; +struct HPMHookPoint *HP_mob_setlootitem_pre; +struct HPMHookPoint *HP_mob_setlootitem_post; +struct HPMHookPoint *HP_mob_delay_item_drop_pre; +struct HPMHookPoint *HP_mob_delay_item_drop_post; +struct HPMHookPoint *HP_mob_item_drop_pre; +struct HPMHookPoint *HP_mob_item_drop_post; +struct HPMHookPoint *HP_mob_timer_delete_pre; +struct HPMHookPoint *HP_mob_timer_delete_post; +struct HPMHookPoint *HP_mob_deleteslave_sub_pre; +struct HPMHookPoint *HP_mob_deleteslave_sub_post; +struct HPMHookPoint *HP_mob_deleteslave_pre; +struct HPMHookPoint *HP_mob_deleteslave_post; +struct HPMHookPoint *HP_mob_respawn_pre; +struct HPMHookPoint *HP_mob_respawn_post; +struct HPMHookPoint *HP_mob_log_damage_pre; +struct HPMHookPoint *HP_mob_log_damage_post; +struct HPMHookPoint *HP_mob_damage_pre; +struct HPMHookPoint *HP_mob_damage_post; +struct HPMHookPoint *HP_mob_dead_pre; +struct HPMHookPoint *HP_mob_dead_post; +struct HPMHookPoint *HP_mob_revive_pre; +struct HPMHookPoint *HP_mob_revive_post; +struct HPMHookPoint *HP_mob_guardian_guildchange_pre; +struct HPMHookPoint *HP_mob_guardian_guildchange_post; +struct HPMHookPoint *HP_mob_random_class_pre; +struct HPMHookPoint *HP_mob_random_class_post; +struct HPMHookPoint *HP_mob_class_change_pre; +struct HPMHookPoint *HP_mob_class_change_post; +struct HPMHookPoint *HP_mob_heal_pre; +struct HPMHookPoint *HP_mob_heal_post; +struct HPMHookPoint *HP_mob_warpslave_sub_pre; +struct HPMHookPoint *HP_mob_warpslave_sub_post; +struct HPMHookPoint *HP_mob_warpslave_pre; +struct HPMHookPoint *HP_mob_warpslave_post; +struct HPMHookPoint *HP_mob_countslave_sub_pre; +struct HPMHookPoint *HP_mob_countslave_sub_post; +struct HPMHookPoint *HP_mob_countslave_pre; +struct HPMHookPoint *HP_mob_countslave_post; +struct HPMHookPoint *HP_mob_summonslave_pre; +struct HPMHookPoint *HP_mob_summonslave_post; +struct HPMHookPoint *HP_mob_getfriendhprate_sub_pre; +struct HPMHookPoint *HP_mob_getfriendhprate_sub_post; +struct HPMHookPoint *HP_mob_getfriendhprate_pre; +struct HPMHookPoint *HP_mob_getfriendhprate_post; +struct HPMHookPoint *HP_mob_getmasterhpltmaxrate_pre; +struct HPMHookPoint *HP_mob_getmasterhpltmaxrate_post; +struct HPMHookPoint *HP_mob_getfriendstatus_sub_pre; +struct HPMHookPoint *HP_mob_getfriendstatus_sub_post; +struct HPMHookPoint *HP_mob_getfriendstatus_pre; +struct HPMHookPoint *HP_mob_getfriendstatus_post; +struct HPMHookPoint *HP_mob_skill_use_pre; +struct HPMHookPoint *HP_mob_skill_use_post; +struct HPMHookPoint *HP_mob_skill_event_pre; +struct HPMHookPoint *HP_mob_skill_event_post; +struct HPMHookPoint *HP_mob_is_clone_pre; +struct HPMHookPoint *HP_mob_is_clone_post; +struct HPMHookPoint *HP_mob_clone_spawn_pre; +struct HPMHookPoint *HP_mob_clone_spawn_post; +struct HPMHookPoint *HP_mob_clone_delete_pre; +struct HPMHookPoint *HP_mob_clone_delete_post; +struct HPMHookPoint *HP_mob_drop_adjust_pre; +struct HPMHookPoint *HP_mob_drop_adjust_post; +struct HPMHookPoint *HP_mob_item_dropratio_adjust_pre; +struct HPMHookPoint *HP_mob_item_dropratio_adjust_post; +struct HPMHookPoint *HP_mob_parse_dbrow_pre; +struct HPMHookPoint *HP_mob_parse_dbrow_post; +struct HPMHookPoint *HP_mob_readdb_sub_pre; +struct HPMHookPoint *HP_mob_readdb_sub_post; +struct HPMHookPoint *HP_mob_readdb_pre; +struct HPMHookPoint *HP_mob_readdb_post; +struct HPMHookPoint *HP_mob_read_sqldb_pre; +struct HPMHookPoint *HP_mob_read_sqldb_post; +struct HPMHookPoint *HP_mob_readdb_mobavail_pre; +struct HPMHookPoint *HP_mob_readdb_mobavail_post; +struct HPMHookPoint *HP_mob_read_randommonster_pre; +struct HPMHookPoint *HP_mob_read_randommonster_post; +struct HPMHookPoint *HP_mob_parse_row_chatdb_pre; +struct HPMHookPoint *HP_mob_parse_row_chatdb_post; +struct HPMHookPoint *HP_mob_readchatdb_pre; +struct HPMHookPoint *HP_mob_readchatdb_post; +struct HPMHookPoint *HP_mob_parse_row_mobskilldb_pre; +struct HPMHookPoint *HP_mob_parse_row_mobskilldb_post; +struct HPMHookPoint *HP_mob_readskilldb_pre; +struct HPMHookPoint *HP_mob_readskilldb_post; +struct HPMHookPoint *HP_mob_read_sqlskilldb_pre; +struct HPMHookPoint *HP_mob_read_sqlskilldb_post; +struct HPMHookPoint *HP_mob_readdb_race2_pre; +struct HPMHookPoint *HP_mob_readdb_race2_post; +struct HPMHookPoint *HP_mob_readdb_itemratio_pre; +struct HPMHookPoint *HP_mob_readdb_itemratio_post; +struct HPMHookPoint *HP_mob_load_pre; +struct HPMHookPoint *HP_mob_load_post; +struct HPMHookPoint *HP_mob_clear_spawninfo_pre; +struct HPMHookPoint *HP_mob_clear_spawninfo_post; +struct HPMHookPoint *HP_npc_init_pre; +struct HPMHookPoint *HP_npc_init_post; +struct HPMHookPoint *HP_npc_final_pre; +struct HPMHookPoint *HP_npc_final_post; +struct HPMHookPoint *HP_npc_get_new_npc_id_pre; +struct HPMHookPoint *HP_npc_get_new_npc_id_post; +struct HPMHookPoint *HP_npc_get_viewdata_pre; +struct HPMHookPoint *HP_npc_get_viewdata_post; +struct HPMHookPoint *HP_npc_isnear_sub_pre; +struct HPMHookPoint *HP_npc_isnear_sub_post; +struct HPMHookPoint *HP_npc_isnear_pre; +struct HPMHookPoint *HP_npc_isnear_post; +struct HPMHookPoint *HP_npc_ontouch_event_pre; +struct HPMHookPoint *HP_npc_ontouch_event_post; +struct HPMHookPoint *HP_npc_ontouch2_event_pre; +struct HPMHookPoint *HP_npc_ontouch2_event_post; +struct HPMHookPoint *HP_npc_enable_sub_pre; +struct HPMHookPoint *HP_npc_enable_sub_post; +struct HPMHookPoint *HP_npc_enable_pre; +struct HPMHookPoint *HP_npc_enable_post; +struct HPMHookPoint *HP_npc_name2id_pre; +struct HPMHookPoint *HP_npc_name2id_post; +struct HPMHookPoint *HP_npc_event_dequeue_pre; +struct HPMHookPoint *HP_npc_event_dequeue_post; +struct HPMHookPoint *HP_npc_event_export_create_pre; +struct HPMHookPoint *HP_npc_event_export_create_post; +struct HPMHookPoint *HP_npc_event_export_pre; +struct HPMHookPoint *HP_npc_event_export_post; +struct HPMHookPoint *HP_npc_event_sub_pre; +struct HPMHookPoint *HP_npc_event_sub_post; +struct HPMHookPoint *HP_npc_event_doall_sub_pre; +struct HPMHookPoint *HP_npc_event_doall_sub_post; +struct HPMHookPoint *HP_npc_event_do_pre; +struct HPMHookPoint *HP_npc_event_do_post; +struct HPMHookPoint *HP_npc_event_doall_id_pre; +struct HPMHookPoint *HP_npc_event_doall_id_post; +struct HPMHookPoint *HP_npc_event_doall_pre; +struct HPMHookPoint *HP_npc_event_doall_post; +struct HPMHookPoint *HP_npc_event_do_clock_pre; +struct HPMHookPoint *HP_npc_event_do_clock_post; +struct HPMHookPoint *HP_npc_event_do_oninit_pre; +struct HPMHookPoint *HP_npc_event_do_oninit_post; +struct HPMHookPoint *HP_npc_timerevent_export_pre; +struct HPMHookPoint *HP_npc_timerevent_export_post; +struct HPMHookPoint *HP_npc_timerevent_pre; +struct HPMHookPoint *HP_npc_timerevent_post; +struct HPMHookPoint *HP_npc_timerevent_start_pre; +struct HPMHookPoint *HP_npc_timerevent_start_post; +struct HPMHookPoint *HP_npc_timerevent_stop_pre; +struct HPMHookPoint *HP_npc_timerevent_stop_post; +struct HPMHookPoint *HP_npc_timerevent_quit_pre; +struct HPMHookPoint *HP_npc_timerevent_quit_post; +struct HPMHookPoint *HP_npc_gettimerevent_tick_pre; +struct HPMHookPoint *HP_npc_gettimerevent_tick_post; +struct HPMHookPoint *HP_npc_settimerevent_tick_pre; +struct HPMHookPoint *HP_npc_settimerevent_tick_post; +struct HPMHookPoint *HP_npc_event_pre; +struct HPMHookPoint *HP_npc_event_post; +struct HPMHookPoint *HP_npc_touch_areanpc_sub_pre; +struct HPMHookPoint *HP_npc_touch_areanpc_sub_post; +struct HPMHookPoint *HP_npc_touchnext_areanpc_pre; +struct HPMHookPoint *HP_npc_touchnext_areanpc_post; +struct HPMHookPoint *HP_npc_touch_areanpc_pre; +struct HPMHookPoint *HP_npc_touch_areanpc_post; +struct HPMHookPoint *HP_npc_touch_areanpc2_pre; +struct HPMHookPoint *HP_npc_touch_areanpc2_post; +struct HPMHookPoint *HP_npc_check_areanpc_pre; +struct HPMHookPoint *HP_npc_check_areanpc_post; +struct HPMHookPoint *HP_npc_checknear_pre; +struct HPMHookPoint *HP_npc_checknear_post; +struct HPMHookPoint *HP_npc_globalmessage_pre; +struct HPMHookPoint *HP_npc_globalmessage_post; +struct HPMHookPoint *HP_npc_run_tomb_pre; +struct HPMHookPoint *HP_npc_run_tomb_post; +struct HPMHookPoint *HP_npc_click_pre; +struct HPMHookPoint *HP_npc_click_post; +struct HPMHookPoint *HP_npc_scriptcont_pre; +struct HPMHookPoint *HP_npc_scriptcont_post; +struct HPMHookPoint *HP_npc_buysellsel_pre; +struct HPMHookPoint *HP_npc_buysellsel_post; +struct HPMHookPoint *HP_npc_cashshop_buylist_pre; +struct HPMHookPoint *HP_npc_cashshop_buylist_post; +struct HPMHookPoint *HP_npc_buylist_sub_pre; +struct HPMHookPoint *HP_npc_buylist_sub_post; +struct HPMHookPoint *HP_npc_cashshop_buy_pre; +struct HPMHookPoint *HP_npc_cashshop_buy_post; +struct HPMHookPoint *HP_npc_buylist_pre; +struct HPMHookPoint *HP_npc_buylist_post; +struct HPMHookPoint *HP_npc_selllist_sub_pre; +struct HPMHookPoint *HP_npc_selllist_sub_post; +struct HPMHookPoint *HP_npc_selllist_pre; +struct HPMHookPoint *HP_npc_selllist_post; +struct HPMHookPoint *HP_npc_remove_map_pre; +struct HPMHookPoint *HP_npc_remove_map_post; +struct HPMHookPoint *HP_npc_unload_ev_pre; +struct HPMHookPoint *HP_npc_unload_ev_post; +struct HPMHookPoint *HP_npc_unload_ev_label_pre; +struct HPMHookPoint *HP_npc_unload_ev_label_post; +struct HPMHookPoint *HP_npc_unload_dup_sub_pre; +struct HPMHookPoint *HP_npc_unload_dup_sub_post; +struct HPMHookPoint *HP_npc_unload_duplicates_pre; +struct HPMHookPoint *HP_npc_unload_duplicates_post; +struct HPMHookPoint *HP_npc_unload_pre; +struct HPMHookPoint *HP_npc_unload_post; +struct HPMHookPoint *HP_npc_clearsrcfile_pre; +struct HPMHookPoint *HP_npc_clearsrcfile_post; +struct HPMHookPoint *HP_npc_addsrcfile_pre; +struct HPMHookPoint *HP_npc_addsrcfile_post; +struct HPMHookPoint *HP_npc_delsrcfile_pre; +struct HPMHookPoint *HP_npc_delsrcfile_post; +struct HPMHookPoint *HP_npc_parsename_pre; +struct HPMHookPoint *HP_npc_parsename_post; +struct HPMHookPoint *HP_npc_add_warp_pre; +struct HPMHookPoint *HP_npc_add_warp_post; +struct HPMHookPoint *HP_npc_parse_warp_pre; +struct HPMHookPoint *HP_npc_parse_warp_post; +struct HPMHookPoint *HP_npc_parse_shop_pre; +struct HPMHookPoint *HP_npc_parse_shop_post; +struct HPMHookPoint *HP_npc_convertlabel_db_pre; +struct HPMHookPoint *HP_npc_convertlabel_db_post; +struct HPMHookPoint *HP_npc_skip_script_pre; +struct HPMHookPoint *HP_npc_skip_script_post; +struct HPMHookPoint *HP_npc_parse_script_pre; +struct HPMHookPoint *HP_npc_parse_script_post; +struct HPMHookPoint *HP_npc_parse_duplicate_pre; +struct HPMHookPoint *HP_npc_parse_duplicate_post; +struct HPMHookPoint *HP_npc_duplicate4instance_pre; +struct HPMHookPoint *HP_npc_duplicate4instance_post; +struct HPMHookPoint *HP_npc_setcells_pre; +struct HPMHookPoint *HP_npc_setcells_post; +struct HPMHookPoint *HP_npc_unsetcells_sub_pre; +struct HPMHookPoint *HP_npc_unsetcells_sub_post; +struct HPMHookPoint *HP_npc_unsetcells_pre; +struct HPMHookPoint *HP_npc_unsetcells_post; +struct HPMHookPoint *HP_npc_movenpc_pre; +struct HPMHookPoint *HP_npc_movenpc_post; +struct HPMHookPoint *HP_npc_setdisplayname_pre; +struct HPMHookPoint *HP_npc_setdisplayname_post; +struct HPMHookPoint *HP_npc_setclass_pre; +struct HPMHookPoint *HP_npc_setclass_post; +struct HPMHookPoint *HP_npc_do_atcmd_event_pre; +struct HPMHookPoint *HP_npc_do_atcmd_event_post; +struct HPMHookPoint *HP_npc_parse_function_pre; +struct HPMHookPoint *HP_npc_parse_function_post; +struct HPMHookPoint *HP_npc_parse_mob2_pre; +struct HPMHookPoint *HP_npc_parse_mob2_post; +struct HPMHookPoint *HP_npc_parse_mob_pre; +struct HPMHookPoint *HP_npc_parse_mob_post; +struct HPMHookPoint *HP_npc_parse_mapflag_pre; +struct HPMHookPoint *HP_npc_parse_mapflag_post; +struct HPMHookPoint *HP_npc_parsesrcfile_pre; +struct HPMHookPoint *HP_npc_parsesrcfile_post; +struct HPMHookPoint *HP_npc_script_event_pre; +struct HPMHookPoint *HP_npc_script_event_post; +struct HPMHookPoint *HP_npc_read_event_script_pre; +struct HPMHookPoint *HP_npc_read_event_script_post; +struct HPMHookPoint *HP_npc_path_db_clear_sub_pre; +struct HPMHookPoint *HP_npc_path_db_clear_sub_post; +struct HPMHookPoint *HP_npc_ev_label_db_clear_sub_pre; +struct HPMHookPoint *HP_npc_ev_label_db_clear_sub_post; +struct HPMHookPoint *HP_npc_reload_pre; +struct HPMHookPoint *HP_npc_reload_post; +struct HPMHookPoint *HP_npc_unloadfile_pre; +struct HPMHookPoint *HP_npc_unloadfile_post; +struct HPMHookPoint *HP_npc_do_clear_npc_pre; +struct HPMHookPoint *HP_npc_do_clear_npc_post; +struct HPMHookPoint *HP_npc_debug_warps_sub_pre; +struct HPMHookPoint *HP_npc_debug_warps_sub_post; +struct HPMHookPoint *HP_npc_debug_warps_pre; +struct HPMHookPoint *HP_npc_debug_warps_post; +struct HPMHookPoint *HP_npc_secure_timeout_timer_pre; +struct HPMHookPoint *HP_npc_secure_timeout_timer_post; +struct HPMHookPoint *HP_party_init_pre; +struct HPMHookPoint *HP_party_init_post; +struct HPMHookPoint *HP_party_final_pre; +struct HPMHookPoint *HP_party_final_post; +struct HPMHookPoint *HP_party_search_pre; +struct HPMHookPoint *HP_party_search_post; +struct HPMHookPoint *HP_party_searchname_pre; +struct HPMHookPoint *HP_party_searchname_post; +struct HPMHookPoint *HP_party_getmemberid_pre; +struct HPMHookPoint *HP_party_getmemberid_post; +struct HPMHookPoint *HP_party_getavailablesd_pre; +struct HPMHookPoint *HP_party_getavailablesd_post; +struct HPMHookPoint *HP_party_create_pre; +struct HPMHookPoint *HP_party_create_post; +struct HPMHookPoint *HP_party_created_pre; +struct HPMHookPoint *HP_party_created_post; +struct HPMHookPoint *HP_party_request_info_pre; +struct HPMHookPoint *HP_party_request_info_post; +struct HPMHookPoint *HP_party_invite_pre; +struct HPMHookPoint *HP_party_invite_post; +struct HPMHookPoint *HP_party_member_joined_pre; +struct HPMHookPoint *HP_party_member_joined_post; +struct HPMHookPoint *HP_party_member_added_pre; +struct HPMHookPoint *HP_party_member_added_post; +struct HPMHookPoint *HP_party_leave_pre; +struct HPMHookPoint *HP_party_leave_post; +struct HPMHookPoint *HP_party_removemember_pre; +struct HPMHookPoint *HP_party_removemember_post; +struct HPMHookPoint *HP_party_member_withdraw_pre; +struct HPMHookPoint *HP_party_member_withdraw_post; +struct HPMHookPoint *HP_party_reply_invite_pre; +struct HPMHookPoint *HP_party_reply_invite_post; +struct HPMHookPoint *HP_party_recv_noinfo_pre; +struct HPMHookPoint *HP_party_recv_noinfo_post; +struct HPMHookPoint *HP_party_recv_info_pre; +struct HPMHookPoint *HP_party_recv_info_post; +struct HPMHookPoint *HP_party_recv_movemap_pre; +struct HPMHookPoint *HP_party_recv_movemap_post; +struct HPMHookPoint *HP_party_broken_pre; +struct HPMHookPoint *HP_party_broken_post; +struct HPMHookPoint *HP_party_optionchanged_pre; +struct HPMHookPoint *HP_party_optionchanged_post; +struct HPMHookPoint *HP_party_changeoption_pre; +struct HPMHookPoint *HP_party_changeoption_post; +struct HPMHookPoint *HP_party_changeleader_pre; +struct HPMHookPoint *HP_party_changeleader_post; +struct HPMHookPoint *HP_party_send_movemap_pre; +struct HPMHookPoint *HP_party_send_movemap_post; +struct HPMHookPoint *HP_party_send_levelup_pre; +struct HPMHookPoint *HP_party_send_levelup_post; +struct HPMHookPoint *HP_party_send_logout_pre; +struct HPMHookPoint *HP_party_send_logout_post; +struct HPMHookPoint *HP_party_send_message_pre; +struct HPMHookPoint *HP_party_send_message_post; +struct HPMHookPoint *HP_party_recv_message_pre; +struct HPMHookPoint *HP_party_recv_message_post; +struct HPMHookPoint *HP_party_skill_check_pre; +struct HPMHookPoint *HP_party_skill_check_post; +struct HPMHookPoint *HP_party_send_xy_clear_pre; +struct HPMHookPoint *HP_party_send_xy_clear_post; +struct HPMHookPoint *HP_party_exp_share_pre; +struct HPMHookPoint *HP_party_exp_share_post; +struct HPMHookPoint *HP_party_share_loot_pre; +struct HPMHookPoint *HP_party_share_loot_post; +struct HPMHookPoint *HP_party_send_dot_remove_pre; +struct HPMHookPoint *HP_party_send_dot_remove_post; +struct HPMHookPoint *HP_party_sub_count_pre; +struct HPMHookPoint *HP_party_sub_count_post; +struct HPMHookPoint *HP_party_booking_register_pre; +struct HPMHookPoint *HP_party_booking_register_post; +struct HPMHookPoint *HP_party_booking_update_pre; +struct HPMHookPoint *HP_party_booking_update_post; +struct HPMHookPoint *HP_party_booking_search_pre; +struct HPMHookPoint *HP_party_booking_search_post; +struct HPMHookPoint *HP_party_recruit_register_pre; +struct HPMHookPoint *HP_party_recruit_register_post; +struct HPMHookPoint *HP_party_recruit_update_pre; +struct HPMHookPoint *HP_party_recruit_update_post; +struct HPMHookPoint *HP_party_recruit_search_pre; +struct HPMHookPoint *HP_party_recruit_search_post; +struct HPMHookPoint *HP_party_booking_delete_pre; +struct HPMHookPoint *HP_party_booking_delete_post; +struct HPMHookPoint *HP_party_vforeachsamemap_pre; +struct HPMHookPoint *HP_party_vforeachsamemap_post; +struct HPMHookPoint *HP_party_send_xy_timer_pre; +struct HPMHookPoint *HP_party_send_xy_timer_post; +struct HPMHookPoint *HP_party_fill_member_pre; +struct HPMHookPoint *HP_party_fill_member_post; +struct HPMHookPoint *HP_party_sd_check_pre; +struct HPMHookPoint *HP_party_sd_check_post; +struct HPMHookPoint *HP_party_check_state_pre; +struct HPMHookPoint *HP_party_check_state_post; +struct HPMHookPoint *HP_party_create_booking_data_pre; +struct HPMHookPoint *HP_party_create_booking_data_post; +struct HPMHookPoint *HP_party_db_final_pre; +struct HPMHookPoint *HP_party_db_final_post; +struct HPMHookPoint *HP_path_blownpos_pre; +struct HPMHookPoint *HP_path_blownpos_post; +struct HPMHookPoint *HP_path_search_pre; +struct HPMHookPoint *HP_path_search_post; +struct HPMHookPoint *HP_path_search_long_pre; +struct HPMHookPoint *HP_path_search_long_post; +struct HPMHookPoint *HP_path_check_distance_pre; +struct HPMHookPoint *HP_path_check_distance_post; +struct HPMHookPoint *HP_path_distance_pre; +struct HPMHookPoint *HP_path_distance_post; +struct HPMHookPoint *HP_pc_init_pre; +struct HPMHookPoint *HP_pc_init_post; +struct HPMHookPoint *HP_pc_final_pre; +struct HPMHookPoint *HP_pc_final_post; +struct HPMHookPoint *HP_pc_get_dummy_sd_pre; +struct HPMHookPoint *HP_pc_get_dummy_sd_post; +struct HPMHookPoint *HP_pc_class2idx_pre; +struct HPMHookPoint *HP_pc_class2idx_post; +struct HPMHookPoint *HP_pc_get_group_level_pre; +struct HPMHookPoint *HP_pc_get_group_level_post; +struct HPMHookPoint *HP_pc_can_give_items_pre; +struct HPMHookPoint *HP_pc_can_give_items_post; +struct HPMHookPoint *HP_pc_can_use_command_pre; +struct HPMHookPoint *HP_pc_can_use_command_post; +struct HPMHookPoint *HP_pc_has_permission_pre; +struct HPMHookPoint *HP_pc_has_permission_post; +struct HPMHookPoint *HP_pc_set_group_pre; +struct HPMHookPoint *HP_pc_set_group_post; +struct HPMHookPoint *HP_pc_should_log_commands_pre; +struct HPMHookPoint *HP_pc_should_log_commands_post; +struct HPMHookPoint *HP_pc_setrestartvalue_pre; +struct HPMHookPoint *HP_pc_setrestartvalue_post; +struct HPMHookPoint *HP_pc_makesavestatus_pre; +struct HPMHookPoint *HP_pc_makesavestatus_post; +struct HPMHookPoint *HP_pc_respawn_pre; +struct HPMHookPoint *HP_pc_respawn_post; +struct HPMHookPoint *HP_pc_setnewpc_pre; +struct HPMHookPoint *HP_pc_setnewpc_post; +struct HPMHookPoint *HP_pc_authok_pre; +struct HPMHookPoint *HP_pc_authok_post; +struct HPMHookPoint *HP_pc_authfail_pre; +struct HPMHookPoint *HP_pc_authfail_post; +struct HPMHookPoint *HP_pc_reg_received_pre; +struct HPMHookPoint *HP_pc_reg_received_post; +struct HPMHookPoint *HP_pc_isequip_pre; +struct HPMHookPoint *HP_pc_isequip_post; +struct HPMHookPoint *HP_pc_equippoint_pre; +struct HPMHookPoint *HP_pc_equippoint_post; +struct HPMHookPoint *HP_pc_setinventorydata_pre; +struct HPMHookPoint *HP_pc_setinventorydata_post; +struct HPMHookPoint *HP_pc_checkskill_pre; +struct HPMHookPoint *HP_pc_checkskill_post; +struct HPMHookPoint *HP_pc_checkskill2_pre; +struct HPMHookPoint *HP_pc_checkskill2_post; +struct HPMHookPoint *HP_pc_checkallowskill_pre; +struct HPMHookPoint *HP_pc_checkallowskill_post; +struct HPMHookPoint *HP_pc_checkequip_pre; +struct HPMHookPoint *HP_pc_checkequip_post; +struct HPMHookPoint *HP_pc_calc_skilltree_pre; +struct HPMHookPoint *HP_pc_calc_skilltree_post; +struct HPMHookPoint *HP_pc_calc_skilltree_normalize_job_pre; +struct HPMHookPoint *HP_pc_calc_skilltree_normalize_job_post; +struct HPMHookPoint *HP_pc_clean_skilltree_pre; +struct HPMHookPoint *HP_pc_clean_skilltree_post; +struct HPMHookPoint *HP_pc_setpos_pre; +struct HPMHookPoint *HP_pc_setpos_post; +struct HPMHookPoint *HP_pc_setsavepoint_pre; +struct HPMHookPoint *HP_pc_setsavepoint_post; +struct HPMHookPoint *HP_pc_randomwarp_pre; +struct HPMHookPoint *HP_pc_randomwarp_post; +struct HPMHookPoint *HP_pc_memo_pre; +struct HPMHookPoint *HP_pc_memo_post; +struct HPMHookPoint *HP_pc_checkadditem_pre; +struct HPMHookPoint *HP_pc_checkadditem_post; +struct HPMHookPoint *HP_pc_inventoryblank_pre; +struct HPMHookPoint *HP_pc_inventoryblank_post; +struct HPMHookPoint *HP_pc_search_inventory_pre; +struct HPMHookPoint *HP_pc_search_inventory_post; +struct HPMHookPoint *HP_pc_payzeny_pre; +struct HPMHookPoint *HP_pc_payzeny_post; +struct HPMHookPoint *HP_pc_additem_pre; +struct HPMHookPoint *HP_pc_additem_post; +struct HPMHookPoint *HP_pc_getzeny_pre; +struct HPMHookPoint *HP_pc_getzeny_post; +struct HPMHookPoint *HP_pc_delitem_pre; +struct HPMHookPoint *HP_pc_delitem_post; +struct HPMHookPoint *HP_pc_paycash_pre; +struct HPMHookPoint *HP_pc_paycash_post; +struct HPMHookPoint *HP_pc_getcash_pre; +struct HPMHookPoint *HP_pc_getcash_post; +struct HPMHookPoint *HP_pc_cart_additem_pre; +struct HPMHookPoint *HP_pc_cart_additem_post; +struct HPMHookPoint *HP_pc_cart_delitem_pre; +struct HPMHookPoint *HP_pc_cart_delitem_post; +struct HPMHookPoint *HP_pc_putitemtocart_pre; +struct HPMHookPoint *HP_pc_putitemtocart_post; +struct HPMHookPoint *HP_pc_getitemfromcart_pre; +struct HPMHookPoint *HP_pc_getitemfromcart_post; +struct HPMHookPoint *HP_pc_cartitem_amount_pre; +struct HPMHookPoint *HP_pc_cartitem_amount_post; +struct HPMHookPoint *HP_pc_takeitem_pre; +struct HPMHookPoint *HP_pc_takeitem_post; +struct HPMHookPoint *HP_pc_dropitem_pre; +struct HPMHookPoint *HP_pc_dropitem_post; +struct HPMHookPoint *HP_pc_isequipped_pre; +struct HPMHookPoint *HP_pc_isequipped_post; +struct HPMHookPoint *HP_pc_can_Adopt_pre; +struct HPMHookPoint *HP_pc_can_Adopt_post; +struct HPMHookPoint *HP_pc_adoption_pre; +struct HPMHookPoint *HP_pc_adoption_post; +struct HPMHookPoint *HP_pc_updateweightstatus_pre; +struct HPMHookPoint *HP_pc_updateweightstatus_post; +struct HPMHookPoint *HP_pc_addautobonus_pre; +struct HPMHookPoint *HP_pc_addautobonus_post; +struct HPMHookPoint *HP_pc_exeautobonus_pre; +struct HPMHookPoint *HP_pc_exeautobonus_post; +struct HPMHookPoint *HP_pc_endautobonus_pre; +struct HPMHookPoint *HP_pc_endautobonus_post; +struct HPMHookPoint *HP_pc_delautobonus_pre; +struct HPMHookPoint *HP_pc_delautobonus_post; +struct HPMHookPoint *HP_pc_bonus_pre; +struct HPMHookPoint *HP_pc_bonus_post; +struct HPMHookPoint *HP_pc_bonus2_pre; +struct HPMHookPoint *HP_pc_bonus2_post; +struct HPMHookPoint *HP_pc_bonus3_pre; +struct HPMHookPoint *HP_pc_bonus3_post; +struct HPMHookPoint *HP_pc_bonus4_pre; +struct HPMHookPoint *HP_pc_bonus4_post; +struct HPMHookPoint *HP_pc_bonus5_pre; +struct HPMHookPoint *HP_pc_bonus5_post; +struct HPMHookPoint *HP_pc_skill_pre; +struct HPMHookPoint *HP_pc_skill_post; +struct HPMHookPoint *HP_pc_insert_card_pre; +struct HPMHookPoint *HP_pc_insert_card_post; +struct HPMHookPoint *HP_pc_steal_item_pre; +struct HPMHookPoint *HP_pc_steal_item_post; +struct HPMHookPoint *HP_pc_steal_coin_pre; +struct HPMHookPoint *HP_pc_steal_coin_post; +struct HPMHookPoint *HP_pc_modifybuyvalue_pre; +struct HPMHookPoint *HP_pc_modifybuyvalue_post; +struct HPMHookPoint *HP_pc_modifysellvalue_pre; +struct HPMHookPoint *HP_pc_modifysellvalue_post; +struct HPMHookPoint *HP_pc_follow_pre; +struct HPMHookPoint *HP_pc_follow_post; +struct HPMHookPoint *HP_pc_stop_following_pre; +struct HPMHookPoint *HP_pc_stop_following_post; +struct HPMHookPoint *HP_pc_maxbaselv_pre; +struct HPMHookPoint *HP_pc_maxbaselv_post; +struct HPMHookPoint *HP_pc_maxjoblv_pre; +struct HPMHookPoint *HP_pc_maxjoblv_post; +struct HPMHookPoint *HP_pc_checkbaselevelup_pre; +struct HPMHookPoint *HP_pc_checkbaselevelup_post; +struct HPMHookPoint *HP_pc_checkjoblevelup_pre; +struct HPMHookPoint *HP_pc_checkjoblevelup_post; +struct HPMHookPoint *HP_pc_gainexp_pre; +struct HPMHookPoint *HP_pc_gainexp_post; +struct HPMHookPoint *HP_pc_nextbaseexp_pre; +struct HPMHookPoint *HP_pc_nextbaseexp_post; +struct HPMHookPoint *HP_pc_thisbaseexp_pre; +struct HPMHookPoint *HP_pc_thisbaseexp_post; +struct HPMHookPoint *HP_pc_nextjobexp_pre; +struct HPMHookPoint *HP_pc_nextjobexp_post; +struct HPMHookPoint *HP_pc_thisjobexp_pre; +struct HPMHookPoint *HP_pc_thisjobexp_post; +struct HPMHookPoint *HP_pc_gets_status_point_pre; +struct HPMHookPoint *HP_pc_gets_status_point_post; +struct HPMHookPoint *HP_pc_need_status_point_pre; +struct HPMHookPoint *HP_pc_need_status_point_post; +struct HPMHookPoint *HP_pc_statusup_pre; +struct HPMHookPoint *HP_pc_statusup_post; +struct HPMHookPoint *HP_pc_statusup2_pre; +struct HPMHookPoint *HP_pc_statusup2_post; +struct HPMHookPoint *HP_pc_skillup_pre; +struct HPMHookPoint *HP_pc_skillup_post; +struct HPMHookPoint *HP_pc_allskillup_pre; +struct HPMHookPoint *HP_pc_allskillup_post; +struct HPMHookPoint *HP_pc_resetlvl_pre; +struct HPMHookPoint *HP_pc_resetlvl_post; +struct HPMHookPoint *HP_pc_resetstate_pre; +struct HPMHookPoint *HP_pc_resetstate_post; +struct HPMHookPoint *HP_pc_resetskill_pre; +struct HPMHookPoint *HP_pc_resetskill_post; +struct HPMHookPoint *HP_pc_resetfeel_pre; +struct HPMHookPoint *HP_pc_resetfeel_post; +struct HPMHookPoint *HP_pc_resethate_pre; +struct HPMHookPoint *HP_pc_resethate_post; +struct HPMHookPoint *HP_pc_equipitem_pre; +struct HPMHookPoint *HP_pc_equipitem_post; +struct HPMHookPoint *HP_pc_unequipitem_pre; +struct HPMHookPoint *HP_pc_unequipitem_post; +struct HPMHookPoint *HP_pc_checkitem_pre; +struct HPMHookPoint *HP_pc_checkitem_post; +struct HPMHookPoint *HP_pc_useitem_pre; +struct HPMHookPoint *HP_pc_useitem_post; +struct HPMHookPoint *HP_pc_skillatk_bonus_pre; +struct HPMHookPoint *HP_pc_skillatk_bonus_post; +struct HPMHookPoint *HP_pc_skillheal_bonus_pre; +struct HPMHookPoint *HP_pc_skillheal_bonus_post; +struct HPMHookPoint *HP_pc_skillheal2_bonus_pre; +struct HPMHookPoint *HP_pc_skillheal2_bonus_post; +struct HPMHookPoint *HP_pc_damage_pre; +struct HPMHookPoint *HP_pc_damage_post; +struct HPMHookPoint *HP_pc_dead_pre; +struct HPMHookPoint *HP_pc_dead_post; +struct HPMHookPoint *HP_pc_revive_pre; +struct HPMHookPoint *HP_pc_revive_post; +struct HPMHookPoint *HP_pc_heal_pre; +struct HPMHookPoint *HP_pc_heal_post; +struct HPMHookPoint *HP_pc_itemheal_pre; +struct HPMHookPoint *HP_pc_itemheal_post; +struct HPMHookPoint *HP_pc_percentheal_pre; +struct HPMHookPoint *HP_pc_percentheal_post; +struct HPMHookPoint *HP_pc_jobchange_pre; +struct HPMHookPoint *HP_pc_jobchange_post; +struct HPMHookPoint *HP_pc_setoption_pre; +struct HPMHookPoint *HP_pc_setoption_post; +struct HPMHookPoint *HP_pc_setcart_pre; +struct HPMHookPoint *HP_pc_setcart_post; +struct HPMHookPoint *HP_pc_setfalcon_pre; +struct HPMHookPoint *HP_pc_setfalcon_post; +struct HPMHookPoint *HP_pc_setriding_pre; +struct HPMHookPoint *HP_pc_setriding_post; +struct HPMHookPoint *HP_pc_setmadogear_pre; +struct HPMHookPoint *HP_pc_setmadogear_post; +struct HPMHookPoint *HP_pc_changelook_pre; +struct HPMHookPoint *HP_pc_changelook_post; +struct HPMHookPoint *HP_pc_equiplookall_pre; +struct HPMHookPoint *HP_pc_equiplookall_post; +struct HPMHookPoint *HP_pc_readparam_pre; +struct HPMHookPoint *HP_pc_readparam_post; +struct HPMHookPoint *HP_pc_setparam_pre; +struct HPMHookPoint *HP_pc_setparam_post; +struct HPMHookPoint *HP_pc_readreg_pre; +struct HPMHookPoint *HP_pc_readreg_post; +struct HPMHookPoint *HP_pc_setreg_pre; +struct HPMHookPoint *HP_pc_setreg_post; +struct HPMHookPoint *HP_pc_readregstr_pre; +struct HPMHookPoint *HP_pc_readregstr_post; +struct HPMHookPoint *HP_pc_setregstr_pre; +struct HPMHookPoint *HP_pc_setregstr_post; +struct HPMHookPoint *HP_pc_readregistry_pre; +struct HPMHookPoint *HP_pc_readregistry_post; +struct HPMHookPoint *HP_pc_setregistry_pre; +struct HPMHookPoint *HP_pc_setregistry_post; +struct HPMHookPoint *HP_pc_readregistry_str_pre; +struct HPMHookPoint *HP_pc_readregistry_str_post; +struct HPMHookPoint *HP_pc_setregistry_str_pre; +struct HPMHookPoint *HP_pc_setregistry_str_post; +struct HPMHookPoint *HP_pc_addeventtimer_pre; +struct HPMHookPoint *HP_pc_addeventtimer_post; +struct HPMHookPoint *HP_pc_deleventtimer_pre; +struct HPMHookPoint *HP_pc_deleventtimer_post; +struct HPMHookPoint *HP_pc_cleareventtimer_pre; +struct HPMHookPoint *HP_pc_cleareventtimer_post; +struct HPMHookPoint *HP_pc_addeventtimercount_pre; +struct HPMHookPoint *HP_pc_addeventtimercount_post; +struct HPMHookPoint *HP_pc_calc_pvprank_pre; +struct HPMHookPoint *HP_pc_calc_pvprank_post; +struct HPMHookPoint *HP_pc_calc_pvprank_timer_pre; +struct HPMHookPoint *HP_pc_calc_pvprank_timer_post; +struct HPMHookPoint *HP_pc_ismarried_pre; +struct HPMHookPoint *HP_pc_ismarried_post; +struct HPMHookPoint *HP_pc_marriage_pre; +struct HPMHookPoint *HP_pc_marriage_post; +struct HPMHookPoint *HP_pc_divorce_pre; +struct HPMHookPoint *HP_pc_divorce_post; +struct HPMHookPoint *HP_pc_get_partner_pre; +struct HPMHookPoint *HP_pc_get_partner_post; +struct HPMHookPoint *HP_pc_get_father_pre; +struct HPMHookPoint *HP_pc_get_father_post; +struct HPMHookPoint *HP_pc_get_mother_pre; +struct HPMHookPoint *HP_pc_get_mother_post; +struct HPMHookPoint *HP_pc_get_child_pre; +struct HPMHookPoint *HP_pc_get_child_post; +struct HPMHookPoint *HP_pc_bleeding_pre; +struct HPMHookPoint *HP_pc_bleeding_post; +struct HPMHookPoint *HP_pc_regen_pre; +struct HPMHookPoint *HP_pc_regen_post; +struct HPMHookPoint *HP_pc_setstand_pre; +struct HPMHookPoint *HP_pc_setstand_post; +struct HPMHookPoint *HP_pc_candrop_pre; +struct HPMHookPoint *HP_pc_candrop_post; +struct HPMHookPoint *HP_pc_jobid2mapid_pre; +struct HPMHookPoint *HP_pc_jobid2mapid_post; +struct HPMHookPoint *HP_pc_mapid2jobid_pre; +struct HPMHookPoint *HP_pc_mapid2jobid_post; +struct HPMHookPoint *HP_pc_job_name_pre; +struct HPMHookPoint *HP_pc_job_name_post; +struct HPMHookPoint *HP_pc_setinvincibletimer_pre; +struct HPMHookPoint *HP_pc_setinvincibletimer_post; +struct HPMHookPoint *HP_pc_delinvincibletimer_pre; +struct HPMHookPoint *HP_pc_delinvincibletimer_post; +struct HPMHookPoint *HP_pc_addspiritball_pre; +struct HPMHookPoint *HP_pc_addspiritball_post; +struct HPMHookPoint *HP_pc_delspiritball_pre; +struct HPMHookPoint *HP_pc_delspiritball_post; +struct HPMHookPoint *HP_pc_addfame_pre; +struct HPMHookPoint *HP_pc_addfame_post; +struct HPMHookPoint *HP_pc_famerank_pre; +struct HPMHookPoint *HP_pc_famerank_post; +struct HPMHookPoint *HP_pc_set_hate_mob_pre; +struct HPMHookPoint *HP_pc_set_hate_mob_post; +struct HPMHookPoint *HP_pc_readdb_pre; +struct HPMHookPoint *HP_pc_readdb_post; +struct HPMHookPoint *HP_pc_map_day_timer_pre; +struct HPMHookPoint *HP_pc_map_day_timer_post; +struct HPMHookPoint *HP_pc_map_night_timer_pre; +struct HPMHookPoint *HP_pc_map_night_timer_post; +struct HPMHookPoint *HP_pc_inventory_rentals_pre; +struct HPMHookPoint *HP_pc_inventory_rentals_post; +struct HPMHookPoint *HP_pc_inventory_rental_clear_pre; +struct HPMHookPoint *HP_pc_inventory_rental_clear_post; +struct HPMHookPoint *HP_pc_inventory_rental_add_pre; +struct HPMHookPoint *HP_pc_inventory_rental_add_post; +struct HPMHookPoint *HP_pc_disguise_pre; +struct HPMHookPoint *HP_pc_disguise_post; +struct HPMHookPoint *HP_pc_isautolooting_pre; +struct HPMHookPoint *HP_pc_isautolooting_post; +struct HPMHookPoint *HP_pc_overheat_pre; +struct HPMHookPoint *HP_pc_overheat_post; +struct HPMHookPoint *HP_pc_banding_pre; +struct HPMHookPoint *HP_pc_banding_post; +struct HPMHookPoint *HP_pc_itemcd_do_pre; +struct HPMHookPoint *HP_pc_itemcd_do_post; +struct HPMHookPoint *HP_pc_load_combo_pre; +struct HPMHookPoint *HP_pc_load_combo_post; +struct HPMHookPoint *HP_pc_add_charm_pre; +struct HPMHookPoint *HP_pc_add_charm_post; +struct HPMHookPoint *HP_pc_del_charm_pre; +struct HPMHookPoint *HP_pc_del_charm_post; +struct HPMHookPoint *HP_pc_baselevelchanged_pre; +struct HPMHookPoint *HP_pc_baselevelchanged_post; +struct HPMHookPoint *HP_pc_level_penalty_mod_pre; +struct HPMHookPoint *HP_pc_level_penalty_mod_post; +struct HPMHookPoint *HP_pc_calc_skillpoint_pre; +struct HPMHookPoint *HP_pc_calc_skillpoint_post; +struct HPMHookPoint *HP_pc_invincible_timer_pre; +struct HPMHookPoint *HP_pc_invincible_timer_post; +struct HPMHookPoint *HP_pc_spiritball_timer_pre; +struct HPMHookPoint *HP_pc_spiritball_timer_post; +struct HPMHookPoint *HP_pc_check_banding_pre; +struct HPMHookPoint *HP_pc_check_banding_post; +struct HPMHookPoint *HP_pc_inventory_rental_end_pre; +struct HPMHookPoint *HP_pc_inventory_rental_end_post; +struct HPMHookPoint *HP_pc_check_skilltree_pre; +struct HPMHookPoint *HP_pc_check_skilltree_post; +struct HPMHookPoint *HP_pc_bonus_autospell_pre; +struct HPMHookPoint *HP_pc_bonus_autospell_post; +struct HPMHookPoint *HP_pc_bonus_autospell_onskill_pre; +struct HPMHookPoint *HP_pc_bonus_autospell_onskill_post; +struct HPMHookPoint *HP_pc_bonus_addeff_pre; +struct HPMHookPoint *HP_pc_bonus_addeff_post; +struct HPMHookPoint *HP_pc_bonus_addeff_onskill_pre; +struct HPMHookPoint *HP_pc_bonus_addeff_onskill_post; +struct HPMHookPoint *HP_pc_bonus_item_drop_pre; +struct HPMHookPoint *HP_pc_bonus_item_drop_post; +struct HPMHookPoint *HP_pc_calcexp_pre; +struct HPMHookPoint *HP_pc_calcexp_post; +struct HPMHookPoint *HP_pc_respawn_timer_pre; +struct HPMHookPoint *HP_pc_respawn_timer_post; +struct HPMHookPoint *HP_pc_jobchange_killclone_pre; +struct HPMHookPoint *HP_pc_jobchange_killclone_post; +struct HPMHookPoint *HP_pc_getstat_pre; +struct HPMHookPoint *HP_pc_getstat_post; +struct HPMHookPoint *HP_pc_setstat_pre; +struct HPMHookPoint *HP_pc_setstat_post; +struct HPMHookPoint *HP_pc_eventtimer_pre; +struct HPMHookPoint *HP_pc_eventtimer_post; +struct HPMHookPoint *HP_pc_daynight_timer_sub_pre; +struct HPMHookPoint *HP_pc_daynight_timer_sub_post; +struct HPMHookPoint *HP_pc_charm_timer_pre; +struct HPMHookPoint *HP_pc_charm_timer_post; +struct HPMHookPoint *HP_pc_readdb_levelpenalty_pre; +struct HPMHookPoint *HP_pc_readdb_levelpenalty_post; +struct HPMHookPoint *HP_pc_autosave_pre; +struct HPMHookPoint *HP_pc_autosave_post; +struct HPMHookPoint *HP_pc_follow_timer_pre; +struct HPMHookPoint *HP_pc_follow_timer_post; +struct HPMHookPoint *HP_pc_read_skill_tree_pre; +struct HPMHookPoint *HP_pc_read_skill_tree_post; +struct HPMHookPoint *HP_pc_isUseitem_pre; +struct HPMHookPoint *HP_pc_isUseitem_post; +struct HPMHookPoint *HP_pc_show_steal_pre; +struct HPMHookPoint *HP_pc_show_steal_post; +struct HPMHookPoint *HP_pc_checkcombo_pre; +struct HPMHookPoint *HP_pc_checkcombo_post; +struct HPMHookPoint *HP_pc_calcweapontype_pre; +struct HPMHookPoint *HP_pc_calcweapontype_post; +struct HPMHookPoint *HP_pc_removecombo_pre; +struct HPMHookPoint *HP_pc_removecombo_post; +struct HPMHookPoint *HP_pet_init_pre; +struct HPMHookPoint *HP_pet_init_post; +struct HPMHookPoint *HP_pet_final_pre; +struct HPMHookPoint *HP_pet_final_post; +struct HPMHookPoint *HP_pet_hungry_val_pre; +struct HPMHookPoint *HP_pet_hungry_val_post; +struct HPMHookPoint *HP_pet_set_intimate_pre; +struct HPMHookPoint *HP_pet_set_intimate_post; +struct HPMHookPoint *HP_pet_create_egg_pre; +struct HPMHookPoint *HP_pet_create_egg_post; +struct HPMHookPoint *HP_pet_unlocktarget_pre; +struct HPMHookPoint *HP_pet_unlocktarget_post; +struct HPMHookPoint *HP_pet_attackskill_pre; +struct HPMHookPoint *HP_pet_attackskill_post; +struct HPMHookPoint *HP_pet_target_check_pre; +struct HPMHookPoint *HP_pet_target_check_post; +struct HPMHookPoint *HP_pet_sc_check_pre; +struct HPMHookPoint *HP_pet_sc_check_post; +struct HPMHookPoint *HP_pet_hungry_pre; +struct HPMHookPoint *HP_pet_hungry_post; +struct HPMHookPoint *HP_pet_search_petDB_index_pre; +struct HPMHookPoint *HP_pet_search_petDB_index_post; +struct HPMHookPoint *HP_pet_hungry_timer_delete_pre; +struct HPMHookPoint *HP_pet_hungry_timer_delete_post; +struct HPMHookPoint *HP_pet_performance_pre; +struct HPMHookPoint *HP_pet_performance_post; +struct HPMHookPoint *HP_pet_return_egg_pre; +struct HPMHookPoint *HP_pet_return_egg_post; +struct HPMHookPoint *HP_pet_data_init_pre; +struct HPMHookPoint *HP_pet_data_init_post; +struct HPMHookPoint *HP_pet_birth_process_pre; +struct HPMHookPoint *HP_pet_birth_process_post; +struct HPMHookPoint *HP_pet_recv_petdata_pre; +struct HPMHookPoint *HP_pet_recv_petdata_post; +struct HPMHookPoint *HP_pet_select_egg_pre; +struct HPMHookPoint *HP_pet_select_egg_post; +struct HPMHookPoint *HP_pet_catch_process1_pre; +struct HPMHookPoint *HP_pet_catch_process1_post; +struct HPMHookPoint *HP_pet_catch_process2_pre; +struct HPMHookPoint *HP_pet_catch_process2_post; +struct HPMHookPoint *HP_pet_get_egg_pre; +struct HPMHookPoint *HP_pet_get_egg_post; +struct HPMHookPoint *HP_pet_unequipitem_pre; +struct HPMHookPoint *HP_pet_unequipitem_post; +struct HPMHookPoint *HP_pet_food_pre; +struct HPMHookPoint *HP_pet_food_post; +struct HPMHookPoint *HP_pet_ai_sub_hard_lootsearch_pre; +struct HPMHookPoint *HP_pet_ai_sub_hard_lootsearch_post; +struct HPMHookPoint *HP_pet_menu_pre; +struct HPMHookPoint *HP_pet_menu_post; +struct HPMHookPoint *HP_pet_change_name_pre; +struct HPMHookPoint *HP_pet_change_name_post; +struct HPMHookPoint *HP_pet_change_name_ack_pre; +struct HPMHookPoint *HP_pet_change_name_ack_post; +struct HPMHookPoint *HP_pet_equipitem_pre; +struct HPMHookPoint *HP_pet_equipitem_post; +struct HPMHookPoint *HP_pet_randomwalk_pre; +struct HPMHookPoint *HP_pet_randomwalk_post; +struct HPMHookPoint *HP_pet_ai_sub_hard_pre; +struct HPMHookPoint *HP_pet_ai_sub_hard_post; +struct HPMHookPoint *HP_pet_ai_sub_foreachclient_pre; +struct HPMHookPoint *HP_pet_ai_sub_foreachclient_post; +struct HPMHookPoint *HP_pet_ai_hard_pre; +struct HPMHookPoint *HP_pet_ai_hard_post; +struct HPMHookPoint *HP_pet_delay_item_drop_pre; +struct HPMHookPoint *HP_pet_delay_item_drop_post; +struct HPMHookPoint *HP_pet_lootitem_drop_pre; +struct HPMHookPoint *HP_pet_lootitem_drop_post; +struct HPMHookPoint *HP_pet_skill_bonus_timer_pre; +struct HPMHookPoint *HP_pet_skill_bonus_timer_post; +struct HPMHookPoint *HP_pet_recovery_timer_pre; +struct HPMHookPoint *HP_pet_recovery_timer_post; +struct HPMHookPoint *HP_pet_heal_timer_pre; +struct HPMHookPoint *HP_pet_heal_timer_post; +struct HPMHookPoint *HP_pet_skill_support_timer_pre; +struct HPMHookPoint *HP_pet_skill_support_timer_post; +struct HPMHookPoint *HP_pet_read_db_pre; +struct HPMHookPoint *HP_pet_read_db_post; +struct HPMHookPoint *HP_quest_init_pre; +struct HPMHookPoint *HP_quest_init_post; +struct HPMHookPoint *HP_quest_reload_pre; +struct HPMHookPoint *HP_quest_reload_post; +struct HPMHookPoint *HP_quest_search_db_pre; +struct HPMHookPoint *HP_quest_search_db_post; +struct HPMHookPoint *HP_quest_pc_login_pre; +struct HPMHookPoint *HP_quest_pc_login_post; +struct HPMHookPoint *HP_quest_add_pre; +struct HPMHookPoint *HP_quest_add_post; +struct HPMHookPoint *HP_quest_change_pre; +struct HPMHookPoint *HP_quest_change_post; +struct HPMHookPoint *HP_quest_delete_pre; +struct HPMHookPoint *HP_quest_delete_post; +struct HPMHookPoint *HP_quest_update_objective_sub_pre; +struct HPMHookPoint *HP_quest_update_objective_sub_post; +struct HPMHookPoint *HP_quest_update_objective_pre; +struct HPMHookPoint *HP_quest_update_objective_post; +struct HPMHookPoint *HP_quest_update_status_pre; +struct HPMHookPoint *HP_quest_update_status_post; +struct HPMHookPoint *HP_quest_check_pre; +struct HPMHookPoint *HP_quest_check_post; +struct HPMHookPoint *HP_quest_read_db_pre; +struct HPMHookPoint *HP_quest_read_db_post; +struct HPMHookPoint *HP_script_init_pre; +struct HPMHookPoint *HP_script_init_post; +struct HPMHookPoint *HP_script_final_pre; +struct HPMHookPoint *HP_script_final_post; +struct HPMHookPoint *HP_script_reload_pre; +struct HPMHookPoint *HP_script_reload_post; +struct HPMHookPoint *HP_script_parse_pre; +struct HPMHookPoint *HP_script_parse_post; +struct HPMHookPoint *HP_script_parse_builtin_pre; +struct HPMHookPoint *HP_script_parse_builtin_post; +struct HPMHookPoint *HP_script_parse_subexpr_pre; +struct HPMHookPoint *HP_script_parse_subexpr_post; +struct HPMHookPoint *HP_script_skip_space_pre; +struct HPMHookPoint *HP_script_skip_space_post; +struct HPMHookPoint *HP_script_error_pre; +struct HPMHookPoint *HP_script_error_post; +struct HPMHookPoint *HP_script_warning_pre; +struct HPMHookPoint *HP_script_warning_post; +struct HPMHookPoint *HP_script_addScript_pre; +struct HPMHookPoint *HP_script_addScript_post; +struct HPMHookPoint *HP_script_conv_num_pre; +struct HPMHookPoint *HP_script_conv_num_post; +struct HPMHookPoint *HP_script_conv_str_pre; +struct HPMHookPoint *HP_script_conv_str_post; +struct HPMHookPoint *HP_script_rid2sd_pre; +struct HPMHookPoint *HP_script_rid2sd_post; +struct HPMHookPoint *HP_script_detach_rid_pre; +struct HPMHookPoint *HP_script_detach_rid_post; +struct HPMHookPoint *HP_script_push_val_pre; +struct HPMHookPoint *HP_script_push_val_post; +struct HPMHookPoint *HP_script_get_val_pre; +struct HPMHookPoint *HP_script_get_val_post; +struct HPMHookPoint *HP_script_get_val2_pre; +struct HPMHookPoint *HP_script_get_val2_post; +struct HPMHookPoint *HP_script_push_str_pre; +struct HPMHookPoint *HP_script_push_str_post; +struct HPMHookPoint *HP_script_push_copy_pre; +struct HPMHookPoint *HP_script_push_copy_post; +struct HPMHookPoint *HP_script_pop_stack_pre; +struct HPMHookPoint *HP_script_pop_stack_post; +struct HPMHookPoint *HP_script_set_constant_pre; +struct HPMHookPoint *HP_script_set_constant_post; +struct HPMHookPoint *HP_script_set_constant2_pre; +struct HPMHookPoint *HP_script_set_constant2_post; +struct HPMHookPoint *HP_script_set_constant_force_pre; +struct HPMHookPoint *HP_script_set_constant_force_post; +struct HPMHookPoint *HP_script_get_constant_pre; +struct HPMHookPoint *HP_script_get_constant_post; +struct HPMHookPoint *HP_script_label_add_pre; +struct HPMHookPoint *HP_script_label_add_post; +struct HPMHookPoint *HP_script_run_pre; +struct HPMHookPoint *HP_script_run_post; +struct HPMHookPoint *HP_script_run_main_pre; +struct HPMHookPoint *HP_script_run_main_post; +struct HPMHookPoint *HP_script_run_timer_pre; +struct HPMHookPoint *HP_script_run_timer_post; +struct HPMHookPoint *HP_script_set_var_pre; +struct HPMHookPoint *HP_script_set_var_post; +struct HPMHookPoint *HP_script_stop_instances_pre; +struct HPMHookPoint *HP_script_stop_instances_post; +struct HPMHookPoint *HP_script_free_code_pre; +struct HPMHookPoint *HP_script_free_code_post; +struct HPMHookPoint *HP_script_free_vars_pre; +struct HPMHookPoint *HP_script_free_vars_post; +struct HPMHookPoint *HP_script_alloc_state_pre; +struct HPMHookPoint *HP_script_alloc_state_post; +struct HPMHookPoint *HP_script_free_state_pre; +struct HPMHookPoint *HP_script_free_state_post; +struct HPMHookPoint *HP_script_run_autobonus_pre; +struct HPMHookPoint *HP_script_run_autobonus_post; +struct HPMHookPoint *HP_script_cleararray_pc_pre; +struct HPMHookPoint *HP_script_cleararray_pc_post; +struct HPMHookPoint *HP_script_setarray_pc_pre; +struct HPMHookPoint *HP_script_setarray_pc_post; +struct HPMHookPoint *HP_script_config_read_pre; +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_get_str_pre; +struct HPMHookPoint *HP_script_get_str_post; +struct HPMHookPoint *HP_script_search_str_pre; +struct HPMHookPoint *HP_script_search_str_post; +struct HPMHookPoint *HP_script_setd_sub_pre; +struct HPMHookPoint *HP_script_setd_sub_post; +struct HPMHookPoint *HP_script_attach_state_pre; +struct HPMHookPoint *HP_script_attach_state_post; +struct HPMHookPoint *HP_script_queue_pre; +struct HPMHookPoint *HP_script_queue_post; +struct HPMHookPoint *HP_script_queue_add_pre; +struct HPMHookPoint *HP_script_queue_add_post; +struct HPMHookPoint *HP_script_queue_del_pre; +struct HPMHookPoint *HP_script_queue_del_post; +struct HPMHookPoint *HP_script_queue_remove_pre; +struct HPMHookPoint *HP_script_queue_remove_post; +struct HPMHookPoint *HP_script_queue_create_pre; +struct HPMHookPoint *HP_script_queue_create_post; +struct HPMHookPoint *HP_script_queue_clear_pre; +struct HPMHookPoint *HP_script_queue_clear_post; +struct HPMHookPoint *HP_script_parse_curly_close_pre; +struct HPMHookPoint *HP_script_parse_curly_close_post; +struct HPMHookPoint *HP_script_parse_syntax_close_pre; +struct HPMHookPoint *HP_script_parse_syntax_close_post; +struct HPMHookPoint *HP_script_parse_syntax_close_sub_pre; +struct HPMHookPoint *HP_script_parse_syntax_close_sub_post; +struct HPMHookPoint *HP_script_parse_syntax_pre; +struct HPMHookPoint *HP_script_parse_syntax_post; +struct HPMHookPoint *HP_script_get_com_pre; +struct HPMHookPoint *HP_script_get_com_post; +struct HPMHookPoint *HP_script_get_num_pre; +struct HPMHookPoint *HP_script_get_num_post; +struct HPMHookPoint *HP_script_op2name_pre; +struct HPMHookPoint *HP_script_op2name_post; +struct HPMHookPoint *HP_script_reportsrc_pre; +struct HPMHookPoint *HP_script_reportsrc_post; +struct HPMHookPoint *HP_script_reportdata_pre; +struct HPMHookPoint *HP_script_reportdata_post; +struct HPMHookPoint *HP_script_reportfunc_pre; +struct HPMHookPoint *HP_script_reportfunc_post; +struct HPMHookPoint *HP_script_disp_error_message2_pre; +struct HPMHookPoint *HP_script_disp_error_message2_post; +struct HPMHookPoint *HP_script_disp_warning_message_pre; +struct HPMHookPoint *HP_script_disp_warning_message_post; +struct HPMHookPoint *HP_script_check_event_pre; +struct HPMHookPoint *HP_script_check_event_post; +struct HPMHookPoint *HP_script_calc_hash_pre; +struct HPMHookPoint *HP_script_calc_hash_post; +struct HPMHookPoint *HP_script_addb_pre; +struct HPMHookPoint *HP_script_addb_post; +struct HPMHookPoint *HP_script_addc_pre; +struct HPMHookPoint *HP_script_addc_post; +struct HPMHookPoint *HP_script_addi_pre; +struct HPMHookPoint *HP_script_addi_post; +struct HPMHookPoint *HP_script_addl_pre; +struct HPMHookPoint *HP_script_addl_post; +struct HPMHookPoint *HP_script_set_label_pre; +struct HPMHookPoint *HP_script_set_label_post; +struct HPMHookPoint *HP_script_skip_word_pre; +struct HPMHookPoint *HP_script_skip_word_post; +struct HPMHookPoint *HP_script_add_word_pre; +struct HPMHookPoint *HP_script_add_word_post; +struct HPMHookPoint *HP_script_parse_callfunc_pre; +struct HPMHookPoint *HP_script_parse_callfunc_post; +struct HPMHookPoint *HP_script_parse_nextline_pre; +struct HPMHookPoint *HP_script_parse_nextline_post; +struct HPMHookPoint *HP_script_parse_variable_pre; +struct HPMHookPoint *HP_script_parse_variable_post; +struct HPMHookPoint *HP_script_parse_simpleexpr_pre; +struct HPMHookPoint *HP_script_parse_simpleexpr_post; +struct HPMHookPoint *HP_script_parse_expr_pre; +struct HPMHookPoint *HP_script_parse_expr_post; +struct HPMHookPoint *HP_script_parse_line_pre; +struct HPMHookPoint *HP_script_parse_line_post; +struct HPMHookPoint *HP_script_read_constdb_pre; +struct HPMHookPoint *HP_script_read_constdb_post; +struct HPMHookPoint *HP_script_print_line_pre; +struct HPMHookPoint *HP_script_print_line_post; +struct HPMHookPoint *HP_script_errorwarning_sub_pre; +struct HPMHookPoint *HP_script_errorwarning_sub_post; +struct HPMHookPoint *HP_script_set_reg_pre; +struct HPMHookPoint *HP_script_set_reg_post; +struct HPMHookPoint *HP_script_stack_expand_pre; +struct HPMHookPoint *HP_script_stack_expand_post; +struct HPMHookPoint *HP_script_push_retinfo_pre; +struct HPMHookPoint *HP_script_push_retinfo_post; +struct HPMHookPoint *HP_script_pop_val_pre; +struct HPMHookPoint *HP_script_pop_val_post; +struct HPMHookPoint *HP_script_op_3_pre; +struct HPMHookPoint *HP_script_op_3_post; +struct HPMHookPoint *HP_script_op_2str_pre; +struct HPMHookPoint *HP_script_op_2str_post; +struct HPMHookPoint *HP_script_op_2num_pre; +struct HPMHookPoint *HP_script_op_2num_post; +struct HPMHookPoint *HP_script_op_2_pre; +struct HPMHookPoint *HP_script_op_2_post; +struct HPMHookPoint *HP_script_op_1_pre; +struct HPMHookPoint *HP_script_op_1_post; +struct HPMHookPoint *HP_script_check_buildin_argtype_pre; +struct HPMHookPoint *HP_script_check_buildin_argtype_post; +struct HPMHookPoint *HP_script_detach_state_pre; +struct HPMHookPoint *HP_script_detach_state_post; +struct HPMHookPoint *HP_script_db_free_code_sub_pre; +struct HPMHookPoint *HP_script_db_free_code_sub_post; +struct HPMHookPoint *HP_script_add_autobonus_pre; +struct HPMHookPoint *HP_script_add_autobonus_post; +struct HPMHookPoint *HP_script_menu_countoptions_pre; +struct HPMHookPoint *HP_script_menu_countoptions_post; +struct HPMHookPoint *HP_script_buildin_areawarp_sub_pre; +struct HPMHookPoint *HP_script_buildin_areawarp_sub_post; +struct HPMHookPoint *HP_script_buildin_areapercentheal_sub_pre; +struct HPMHookPoint *HP_script_buildin_areapercentheal_sub_post; +struct HPMHookPoint *HP_script_getarraysize_pre; +struct HPMHookPoint *HP_script_getarraysize_post; +struct HPMHookPoint *HP_script_buildin_delitem_delete_pre; +struct HPMHookPoint *HP_script_buildin_delitem_delete_post; +struct HPMHookPoint *HP_script_buildin_delitem_search_pre; +struct HPMHookPoint *HP_script_buildin_delitem_search_post; +struct HPMHookPoint *HP_script_buildin_killmonster_sub_strip_pre; +struct HPMHookPoint *HP_script_buildin_killmonster_sub_strip_post; +struct HPMHookPoint *HP_script_buildin_killmonster_sub_pre; +struct HPMHookPoint *HP_script_buildin_killmonster_sub_post; +struct HPMHookPoint *HP_script_buildin_killmonsterall_sub_strip_pre; +struct HPMHookPoint *HP_script_buildin_killmonsterall_sub_strip_post; +struct HPMHookPoint *HP_script_buildin_killmonsterall_sub_pre; +struct HPMHookPoint *HP_script_buildin_killmonsterall_sub_post; +struct HPMHookPoint *HP_script_buildin_announce_sub_pre; +struct HPMHookPoint *HP_script_buildin_announce_sub_post; +struct HPMHookPoint *HP_script_buildin_getareausers_sub_pre; +struct HPMHookPoint *HP_script_buildin_getareausers_sub_post; +struct HPMHookPoint *HP_script_buildin_getareadropitem_sub_pre; +struct HPMHookPoint *HP_script_buildin_getareadropitem_sub_post; +struct HPMHookPoint *HP_script_mapflag_pvp_sub_pre; +struct HPMHookPoint *HP_script_mapflag_pvp_sub_post; +struct HPMHookPoint *HP_script_buildin_pvpoff_sub_pre; +struct HPMHookPoint *HP_script_buildin_pvpoff_sub_post; +struct HPMHookPoint *HP_script_buildin_maprespawnguildid_sub_pc_pre; +struct HPMHookPoint *HP_script_buildin_maprespawnguildid_sub_pc_post; +struct HPMHookPoint *HP_script_buildin_maprespawnguildid_sub_mob_pre; +struct HPMHookPoint *HP_script_buildin_maprespawnguildid_sub_mob_post; +struct HPMHookPoint *HP_script_buildin_mobcount_sub_pre; +struct HPMHookPoint *HP_script_buildin_mobcount_sub_post; +struct HPMHookPoint *HP_script_playBGM_sub_pre; +struct HPMHookPoint *HP_script_playBGM_sub_post; +struct HPMHookPoint *HP_script_playBGM_foreachpc_sub_pre; +struct HPMHookPoint *HP_script_playBGM_foreachpc_sub_post; +struct HPMHookPoint *HP_script_soundeffect_sub_pre; +struct HPMHookPoint *HP_script_soundeffect_sub_post; +struct HPMHookPoint *HP_script_buildin_query_sql_sub_pre; +struct HPMHookPoint *HP_script_buildin_query_sql_sub_post; +struct HPMHookPoint *HP_script_axtoi_pre; +struct HPMHookPoint *HP_script_axtoi_post; +struct HPMHookPoint *HP_script_buildin_instance_warpall_sub_pre; +struct HPMHookPoint *HP_script_buildin_instance_warpall_sub_post; +struct HPMHookPoint *HP_script_buildin_mobuseskill_sub_pre; +struct HPMHookPoint *HP_script_buildin_mobuseskill_sub_post; +struct HPMHookPoint *HP_script_cleanfloor_sub_pre; +struct HPMHookPoint *HP_script_cleanfloor_sub_post; +struct HPMHookPoint *HP_script_run_func_pre; +struct HPMHookPoint *HP_script_run_func_post; +struct HPMHookPoint *HP_searchstore_open_pre; +struct HPMHookPoint *HP_searchstore_open_post; +struct HPMHookPoint *HP_searchstore_query_pre; +struct HPMHookPoint *HP_searchstore_query_post; +struct HPMHookPoint *HP_searchstore_querynext_pre; +struct HPMHookPoint *HP_searchstore_querynext_post; +struct HPMHookPoint *HP_searchstore_next_pre; +struct HPMHookPoint *HP_searchstore_next_post; +struct HPMHookPoint *HP_searchstore_clear_pre; +struct HPMHookPoint *HP_searchstore_clear_post; +struct HPMHookPoint *HP_searchstore_close_pre; +struct HPMHookPoint *HP_searchstore_close_post; +struct HPMHookPoint *HP_searchstore_click_pre; +struct HPMHookPoint *HP_searchstore_click_post; +struct HPMHookPoint *HP_searchstore_queryremote_pre; +struct HPMHookPoint *HP_searchstore_queryremote_post; +struct HPMHookPoint *HP_searchstore_clearremote_pre; +struct HPMHookPoint *HP_searchstore_clearremote_post; +struct HPMHookPoint *HP_searchstore_result_pre; +struct HPMHookPoint *HP_searchstore_result_post; +struct HPMHookPoint *HP_skill_init_pre; +struct HPMHookPoint *HP_skill_init_post; +struct HPMHookPoint *HP_skill_final_pre; +struct HPMHookPoint *HP_skill_final_post; +struct HPMHookPoint *HP_skill_reload_pre; +struct HPMHookPoint *HP_skill_reload_post; +struct HPMHookPoint *HP_skill_read_db_pre; +struct HPMHookPoint *HP_skill_read_db_post; +struct HPMHookPoint *HP_skill_get_index_pre; +struct HPMHookPoint *HP_skill_get_index_post; +struct HPMHookPoint *HP_skill_get_type_pre; +struct HPMHookPoint *HP_skill_get_type_post; +struct HPMHookPoint *HP_skill_get_hit_pre; +struct HPMHookPoint *HP_skill_get_hit_post; +struct HPMHookPoint *HP_skill_get_inf_pre; +struct HPMHookPoint *HP_skill_get_inf_post; +struct HPMHookPoint *HP_skill_get_ele_pre; +struct HPMHookPoint *HP_skill_get_ele_post; +struct HPMHookPoint *HP_skill_get_nk_pre; +struct HPMHookPoint *HP_skill_get_nk_post; +struct HPMHookPoint *HP_skill_get_max_pre; +struct HPMHookPoint *HP_skill_get_max_post; +struct HPMHookPoint *HP_skill_get_range_pre; +struct HPMHookPoint *HP_skill_get_range_post; +struct HPMHookPoint *HP_skill_get_range2_pre; +struct HPMHookPoint *HP_skill_get_range2_post; +struct HPMHookPoint *HP_skill_get_splash_pre; +struct HPMHookPoint *HP_skill_get_splash_post; +struct HPMHookPoint *HP_skill_get_hp_pre; +struct HPMHookPoint *HP_skill_get_hp_post; +struct HPMHookPoint *HP_skill_get_mhp_pre; +struct HPMHookPoint *HP_skill_get_mhp_post; +struct HPMHookPoint *HP_skill_get_sp_pre; +struct HPMHookPoint *HP_skill_get_sp_post; +struct HPMHookPoint *HP_skill_get_state_pre; +struct HPMHookPoint *HP_skill_get_state_post; +struct HPMHookPoint *HP_skill_get_spiritball_pre; +struct HPMHookPoint *HP_skill_get_spiritball_post; +struct HPMHookPoint *HP_skill_get_zeny_pre; +struct HPMHookPoint *HP_skill_get_zeny_post; +struct HPMHookPoint *HP_skill_get_num_pre; +struct HPMHookPoint *HP_skill_get_num_post; +struct HPMHookPoint *HP_skill_get_cast_pre; +struct HPMHookPoint *HP_skill_get_cast_post; +struct HPMHookPoint *HP_skill_get_delay_pre; +struct HPMHookPoint *HP_skill_get_delay_post; +struct HPMHookPoint *HP_skill_get_walkdelay_pre; +struct HPMHookPoint *HP_skill_get_walkdelay_post; +struct HPMHookPoint *HP_skill_get_time_pre; +struct HPMHookPoint *HP_skill_get_time_post; +struct HPMHookPoint *HP_skill_get_time2_pre; +struct HPMHookPoint *HP_skill_get_time2_post; +struct HPMHookPoint *HP_skill_get_castnodex_pre; +struct HPMHookPoint *HP_skill_get_castnodex_post; +struct HPMHookPoint *HP_skill_get_delaynodex_pre; +struct HPMHookPoint *HP_skill_get_delaynodex_post; +struct HPMHookPoint *HP_skill_get_castdef_pre; +struct HPMHookPoint *HP_skill_get_castdef_post; +struct HPMHookPoint *HP_skill_get_weapontype_pre; +struct HPMHookPoint *HP_skill_get_weapontype_post; +struct HPMHookPoint *HP_skill_get_ammotype_pre; +struct HPMHookPoint *HP_skill_get_ammotype_post; +struct HPMHookPoint *HP_skill_get_ammo_qty_pre; +struct HPMHookPoint *HP_skill_get_ammo_qty_post; +struct HPMHookPoint *HP_skill_get_unit_id_pre; +struct HPMHookPoint *HP_skill_get_unit_id_post; +struct HPMHookPoint *HP_skill_get_inf2_pre; +struct HPMHookPoint *HP_skill_get_inf2_post; +struct HPMHookPoint *HP_skill_get_castcancel_pre; +struct HPMHookPoint *HP_skill_get_castcancel_post; +struct HPMHookPoint *HP_skill_get_maxcount_pre; +struct HPMHookPoint *HP_skill_get_maxcount_post; +struct HPMHookPoint *HP_skill_get_blewcount_pre; +struct HPMHookPoint *HP_skill_get_blewcount_post; +struct HPMHookPoint *HP_skill_get_unit_flag_pre; +struct HPMHookPoint *HP_skill_get_unit_flag_post; +struct HPMHookPoint *HP_skill_get_unit_target_pre; +struct HPMHookPoint *HP_skill_get_unit_target_post; +struct HPMHookPoint *HP_skill_get_unit_interval_pre; +struct HPMHookPoint *HP_skill_get_unit_interval_post; +struct HPMHookPoint *HP_skill_get_unit_bl_target_pre; +struct HPMHookPoint *HP_skill_get_unit_bl_target_post; +struct HPMHookPoint *HP_skill_get_unit_layout_type_pre; +struct HPMHookPoint *HP_skill_get_unit_layout_type_post; +struct HPMHookPoint *HP_skill_get_unit_range_pre; +struct HPMHookPoint *HP_skill_get_unit_range_post; +struct HPMHookPoint *HP_skill_get_cooldown_pre; +struct HPMHookPoint *HP_skill_get_cooldown_post; +struct HPMHookPoint *HP_skill_tree_get_max_pre; +struct HPMHookPoint *HP_skill_tree_get_max_post; +struct HPMHookPoint *HP_skill_get_name_pre; +struct HPMHookPoint *HP_skill_get_name_post; +struct HPMHookPoint *HP_skill_get_desc_pre; +struct HPMHookPoint *HP_skill_get_desc_post; +struct HPMHookPoint *HP_skill_chk_pre; +struct HPMHookPoint *HP_skill_chk_post; +struct HPMHookPoint *HP_skill_get_casttype_pre; +struct HPMHookPoint *HP_skill_get_casttype_post; +struct HPMHookPoint *HP_skill_get_casttype2_pre; +struct HPMHookPoint *HP_skill_get_casttype2_post; +struct HPMHookPoint *HP_skill_name2id_pre; +struct HPMHookPoint *HP_skill_name2id_post; +struct HPMHookPoint *HP_skill_isammotype_pre; +struct HPMHookPoint *HP_skill_isammotype_post; +struct HPMHookPoint *HP_skill_castend_id_pre; +struct HPMHookPoint *HP_skill_castend_id_post; +struct HPMHookPoint *HP_skill_castend_pos_pre; +struct HPMHookPoint *HP_skill_castend_pos_post; +struct HPMHookPoint *HP_skill_castend_map_pre; +struct HPMHookPoint *HP_skill_castend_map_post; +struct HPMHookPoint *HP_skill_cleartimerskill_pre; +struct HPMHookPoint *HP_skill_cleartimerskill_post; +struct HPMHookPoint *HP_skill_addtimerskill_pre; +struct HPMHookPoint *HP_skill_addtimerskill_post; +struct HPMHookPoint *HP_skill_additional_effect_pre; +struct HPMHookPoint *HP_skill_additional_effect_post; +struct HPMHookPoint *HP_skill_counter_additional_effect_pre; +struct HPMHookPoint *HP_skill_counter_additional_effect_post; +struct HPMHookPoint *HP_skill_blown_pre; +struct HPMHookPoint *HP_skill_blown_post; +struct HPMHookPoint *HP_skill_break_equip_pre; +struct HPMHookPoint *HP_skill_break_equip_post; +struct HPMHookPoint *HP_skill_strip_equip_pre; +struct HPMHookPoint *HP_skill_strip_equip_post; +struct HPMHookPoint *HP_skill_id2group_pre; +struct HPMHookPoint *HP_skill_id2group_post; +struct HPMHookPoint *HP_skill_unitsetting_pre; +struct HPMHookPoint *HP_skill_unitsetting_post; +struct HPMHookPoint *HP_skill_initunit_pre; +struct HPMHookPoint *HP_skill_initunit_post; +struct HPMHookPoint *HP_skill_delunit_pre; +struct HPMHookPoint *HP_skill_delunit_post; +struct HPMHookPoint *HP_skill_init_unitgroup_pre; +struct HPMHookPoint *HP_skill_init_unitgroup_post; +struct HPMHookPoint *HP_skill_del_unitgroup_pre; +struct HPMHookPoint *HP_skill_del_unitgroup_post; +struct HPMHookPoint *HP_skill_clear_unitgroup_pre; +struct HPMHookPoint *HP_skill_clear_unitgroup_post; +struct HPMHookPoint *HP_skill_clear_group_pre; +struct HPMHookPoint *HP_skill_clear_group_post; +struct HPMHookPoint *HP_skill_unit_onplace_pre; +struct HPMHookPoint *HP_skill_unit_onplace_post; +struct HPMHookPoint *HP_skill_unit_ondamaged_pre; +struct HPMHookPoint *HP_skill_unit_ondamaged_post; +struct HPMHookPoint *HP_skill_cast_fix_pre; +struct HPMHookPoint *HP_skill_cast_fix_post; +struct HPMHookPoint *HP_skill_cast_fix_sc_pre; +struct HPMHookPoint *HP_skill_cast_fix_sc_post; +struct HPMHookPoint *HP_skill_vf_cast_fix_pre; +struct HPMHookPoint *HP_skill_vf_cast_fix_post; +struct HPMHookPoint *HP_skill_delay_fix_pre; +struct HPMHookPoint *HP_skill_delay_fix_post; +struct HPMHookPoint *HP_skill_check_condition_castbegin_pre; +struct HPMHookPoint *HP_skill_check_condition_castbegin_post; +struct HPMHookPoint *HP_skill_check_condition_castend_pre; +struct HPMHookPoint *HP_skill_check_condition_castend_post; +struct HPMHookPoint *HP_skill_consume_requirement_pre; +struct HPMHookPoint *HP_skill_consume_requirement_post; +struct HPMHookPoint *HP_skill_get_requirement_pre; +struct HPMHookPoint *HP_skill_get_requirement_post; +struct HPMHookPoint *HP_skill_check_pc_partner_pre; +struct HPMHookPoint *HP_skill_check_pc_partner_post; +struct HPMHookPoint *HP_skill_unit_move_pre; +struct HPMHookPoint *HP_skill_unit_move_post; +struct HPMHookPoint *HP_skill_unit_onleft_pre; +struct HPMHookPoint *HP_skill_unit_onleft_post; +struct HPMHookPoint *HP_skill_unit_onout_pre; +struct HPMHookPoint *HP_skill_unit_onout_post; +struct HPMHookPoint *HP_skill_unit_move_unit_group_pre; +struct HPMHookPoint *HP_skill_unit_move_unit_group_post; +struct HPMHookPoint *HP_skill_sit_pre; +struct HPMHookPoint *HP_skill_sit_post; +struct HPMHookPoint *HP_skill_brandishspear_pre; +struct HPMHookPoint *HP_skill_brandishspear_post; +struct HPMHookPoint *HP_skill_repairweapon_pre; +struct HPMHookPoint *HP_skill_repairweapon_post; +struct HPMHookPoint *HP_skill_identify_pre; +struct HPMHookPoint *HP_skill_identify_post; +struct HPMHookPoint *HP_skill_weaponrefine_pre; +struct HPMHookPoint *HP_skill_weaponrefine_post; +struct HPMHookPoint *HP_skill_autospell_pre; +struct HPMHookPoint *HP_skill_autospell_post; +struct HPMHookPoint *HP_skill_calc_heal_pre; +struct HPMHookPoint *HP_skill_calc_heal_post; +struct HPMHookPoint *HP_skill_check_cloaking_pre; +struct HPMHookPoint *HP_skill_check_cloaking_post; +struct HPMHookPoint *HP_skill_enchant_elemental_end_pre; +struct HPMHookPoint *HP_skill_enchant_elemental_end_post; +struct HPMHookPoint *HP_skill_not_ok_pre; +struct HPMHookPoint *HP_skill_not_ok_post; +struct HPMHookPoint *HP_skill_not_ok_hom_pre; +struct HPMHookPoint *HP_skill_not_ok_hom_post; +struct HPMHookPoint *HP_skill_not_ok_mercenary_pre; +struct HPMHookPoint *HP_skill_not_ok_mercenary_post; +struct HPMHookPoint *HP_skill_chastle_mob_changetarget_pre; +struct HPMHookPoint *HP_skill_chastle_mob_changetarget_post; +struct HPMHookPoint *HP_skill_can_produce_mix_pre; +struct HPMHookPoint *HP_skill_can_produce_mix_post; +struct HPMHookPoint *HP_skill_produce_mix_pre; +struct HPMHookPoint *HP_skill_produce_mix_post; +struct HPMHookPoint *HP_skill_arrow_create_pre; +struct HPMHookPoint *HP_skill_arrow_create_post; +struct HPMHookPoint *HP_skill_castend_nodamage_id_pre; +struct HPMHookPoint *HP_skill_castend_nodamage_id_post; +struct HPMHookPoint *HP_skill_castend_damage_id_pre; +struct HPMHookPoint *HP_skill_castend_damage_id_post; +struct HPMHookPoint *HP_skill_castend_pos2_pre; +struct HPMHookPoint *HP_skill_castend_pos2_post; +struct HPMHookPoint *HP_skill_blockpc_start_pre; +struct HPMHookPoint *HP_skill_blockpc_start_post; +struct HPMHookPoint *HP_skill_blockhomun_start_pre; +struct HPMHookPoint *HP_skill_blockhomun_start_post; +struct HPMHookPoint *HP_skill_blockmerc_start_pre; +struct HPMHookPoint *HP_skill_blockmerc_start_post; +struct HPMHookPoint *HP_skill_attack_pre; +struct HPMHookPoint *HP_skill_attack_post; +struct HPMHookPoint *HP_skill_attack_area_pre; +struct HPMHookPoint *HP_skill_attack_area_post; +struct HPMHookPoint *HP_skill_area_sub_pre; +struct HPMHookPoint *HP_skill_area_sub_post; +struct HPMHookPoint *HP_skill_area_sub_count_pre; +struct HPMHookPoint *HP_skill_area_sub_count_post; +struct HPMHookPoint *HP_skill_check_unit_range_pre; +struct HPMHookPoint *HP_skill_check_unit_range_post; +struct HPMHookPoint *HP_skill_check_unit_range_sub_pre; +struct HPMHookPoint *HP_skill_check_unit_range_sub_post; +struct HPMHookPoint *HP_skill_check_unit_range2_pre; +struct HPMHookPoint *HP_skill_check_unit_range2_post; +struct HPMHookPoint *HP_skill_check_unit_range2_sub_pre; +struct HPMHookPoint *HP_skill_check_unit_range2_sub_post; +struct HPMHookPoint *HP_skill_toggle_magicpower_pre; +struct HPMHookPoint *HP_skill_toggle_magicpower_post; +struct HPMHookPoint *HP_skill_magic_reflect_pre; +struct HPMHookPoint *HP_skill_magic_reflect_post; +struct HPMHookPoint *HP_skill_onskillusage_pre; +struct HPMHookPoint *HP_skill_onskillusage_post; +struct HPMHookPoint *HP_skill_cell_overlap_pre; +struct HPMHookPoint *HP_skill_cell_overlap_post; +struct HPMHookPoint *HP_skill_timerskill_pre; +struct HPMHookPoint *HP_skill_timerskill_post; +struct HPMHookPoint *HP_skill_trap_splash_pre; +struct HPMHookPoint *HP_skill_trap_splash_post; +struct HPMHookPoint *HP_skill_check_condition_mercenary_pre; +struct HPMHookPoint *HP_skill_check_condition_mercenary_post; +struct HPMHookPoint *HP_skill_locate_element_field_pre; +struct HPMHookPoint *HP_skill_locate_element_field_post; +struct HPMHookPoint *HP_skill_graffitiremover_pre; +struct HPMHookPoint *HP_skill_graffitiremover_post; +struct HPMHookPoint *HP_skill_activate_reverberation_pre; +struct HPMHookPoint *HP_skill_activate_reverberation_post; +struct HPMHookPoint *HP_skill_dance_overlap_sub_pre; +struct HPMHookPoint *HP_skill_dance_overlap_sub_post; +struct HPMHookPoint *HP_skill_dance_overlap_pre; +struct HPMHookPoint *HP_skill_dance_overlap_post; +struct HPMHookPoint *HP_skill_get_unit_layout_pre; +struct HPMHookPoint *HP_skill_get_unit_layout_post; +struct HPMHookPoint *HP_skill_frostjoke_scream_pre; +struct HPMHookPoint *HP_skill_frostjoke_scream_post; +struct HPMHookPoint *HP_skill_greed_pre; +struct HPMHookPoint *HP_skill_greed_post; +struct HPMHookPoint *HP_skill_destroy_trap_pre; +struct HPMHookPoint *HP_skill_destroy_trap_post; +struct HPMHookPoint *HP_skill_icewall_block_pre; +struct HPMHookPoint *HP_skill_icewall_block_post; +struct HPMHookPoint *HP_skill_unitgrouptickset_search_pre; +struct HPMHookPoint *HP_skill_unitgrouptickset_search_post; +struct HPMHookPoint *HP_skill_dance_switch_pre; +struct HPMHookPoint *HP_skill_dance_switch_post; +struct HPMHookPoint *HP_skill_check_condition_char_sub_pre; +struct HPMHookPoint *HP_skill_check_condition_char_sub_post; +struct HPMHookPoint *HP_skill_check_condition_mob_master_sub_pre; +struct HPMHookPoint *HP_skill_check_condition_mob_master_sub_post; +struct HPMHookPoint *HP_skill_brandishspear_first_pre; +struct HPMHookPoint *HP_skill_brandishspear_first_post; +struct HPMHookPoint *HP_skill_brandishspear_dir_pre; +struct HPMHookPoint *HP_skill_brandishspear_dir_post; +struct HPMHookPoint *HP_skill_get_fixed_cast_pre; +struct HPMHookPoint *HP_skill_get_fixed_cast_post; +struct HPMHookPoint *HP_skill_sit_count_pre; +struct HPMHookPoint *HP_skill_sit_count_post; +struct HPMHookPoint *HP_skill_sit_in_pre; +struct HPMHookPoint *HP_skill_sit_in_post; +struct HPMHookPoint *HP_skill_sit_out_pre; +struct HPMHookPoint *HP_skill_sit_out_post; +struct HPMHookPoint *HP_skill_unitsetmapcell_pre; +struct HPMHookPoint *HP_skill_unitsetmapcell_post; +struct HPMHookPoint *HP_skill_unit_onplace_timer_pre; +struct HPMHookPoint *HP_skill_unit_onplace_timer_post; +struct HPMHookPoint *HP_skill_unit_effect_pre; +struct HPMHookPoint *HP_skill_unit_effect_post; +struct HPMHookPoint *HP_skill_unit_timer_sub_onplace_pre; +struct HPMHookPoint *HP_skill_unit_timer_sub_onplace_post; +struct HPMHookPoint *HP_skill_unit_move_sub_pre; +struct HPMHookPoint *HP_skill_unit_move_sub_post; +struct HPMHookPoint *HP_skill_blockpc_end_pre; +struct HPMHookPoint *HP_skill_blockpc_end_post; +struct HPMHookPoint *HP_skill_blockhomun_end_pre; +struct HPMHookPoint *HP_skill_blockhomun_end_post; +struct HPMHookPoint *HP_skill_blockmerc_end_pre; +struct HPMHookPoint *HP_skill_blockmerc_end_post; +struct HPMHookPoint *HP_skill_split_atoi_pre; +struct HPMHookPoint *HP_skill_split_atoi_post; +struct HPMHookPoint *HP_skill_unit_timer_pre; +struct HPMHookPoint *HP_skill_unit_timer_post; +struct HPMHookPoint *HP_skill_unit_timer_sub_pre; +struct HPMHookPoint *HP_skill_unit_timer_sub_post; +struct HPMHookPoint *HP_skill_init_unit_layout_pre; +struct HPMHookPoint *HP_skill_init_unit_layout_post; +struct HPMHookPoint *HP_skill_parse_row_skilldb_pre; +struct HPMHookPoint *HP_skill_parse_row_skilldb_post; +struct HPMHookPoint *HP_skill_parse_row_requiredb_pre; +struct HPMHookPoint *HP_skill_parse_row_requiredb_post; +struct HPMHookPoint *HP_skill_parse_row_castdb_pre; +struct HPMHookPoint *HP_skill_parse_row_castdb_post; +struct HPMHookPoint *HP_skill_parse_row_castnodexdb_pre; +struct HPMHookPoint *HP_skill_parse_row_castnodexdb_post; +struct HPMHookPoint *HP_skill_parse_row_unitdb_pre; +struct HPMHookPoint *HP_skill_parse_row_unitdb_post; +struct HPMHookPoint *HP_skill_parse_row_producedb_pre; +struct HPMHookPoint *HP_skill_parse_row_producedb_post; +struct HPMHookPoint *HP_skill_parse_row_createarrowdb_pre; +struct HPMHookPoint *HP_skill_parse_row_createarrowdb_post; +struct HPMHookPoint *HP_skill_parse_row_abradb_pre; +struct HPMHookPoint *HP_skill_parse_row_abradb_post; +struct HPMHookPoint *HP_skill_parse_row_spellbookdb_pre; +struct HPMHookPoint *HP_skill_parse_row_spellbookdb_post; +struct HPMHookPoint *HP_skill_parse_row_magicmushroomdb_pre; +struct HPMHookPoint *HP_skill_parse_row_magicmushroomdb_post; +struct HPMHookPoint *HP_skill_parse_row_reproducedb_pre; +struct HPMHookPoint *HP_skill_parse_row_reproducedb_post; +struct HPMHookPoint *HP_skill_parse_row_improvisedb_pre; +struct HPMHookPoint *HP_skill_parse_row_improvisedb_post; +struct HPMHookPoint *HP_skill_parse_row_changematerialdb_pre; +struct HPMHookPoint *HP_skill_parse_row_changematerialdb_post; +struct HPMHookPoint *HP_skill_usave_add_pre; +struct HPMHookPoint *HP_skill_usave_add_post; +struct HPMHookPoint *HP_skill_usave_trigger_pre; +struct HPMHookPoint *HP_skill_usave_trigger_post; +struct HPMHookPoint *HP_skill_cooldown_load_pre; +struct HPMHookPoint *HP_skill_cooldown_load_post; +struct HPMHookPoint *HP_skill_spellbook_pre; +struct HPMHookPoint *HP_skill_spellbook_post; +struct HPMHookPoint *HP_skill_block_check_pre; +struct HPMHookPoint *HP_skill_block_check_post; +struct HPMHookPoint *HP_skill_detonator_pre; +struct HPMHookPoint *HP_skill_detonator_post; +struct HPMHookPoint *HP_skill_check_camouflage_pre; +struct HPMHookPoint *HP_skill_check_camouflage_post; +struct HPMHookPoint *HP_skill_magicdecoy_pre; +struct HPMHookPoint *HP_skill_magicdecoy_post; +struct HPMHookPoint *HP_skill_poisoningweapon_pre; +struct HPMHookPoint *HP_skill_poisoningweapon_post; +struct HPMHookPoint *HP_skill_select_menu_pre; +struct HPMHookPoint *HP_skill_select_menu_post; +struct HPMHookPoint *HP_skill_elementalanalysis_pre; +struct HPMHookPoint *HP_skill_elementalanalysis_post; +struct HPMHookPoint *HP_skill_changematerial_pre; +struct HPMHookPoint *HP_skill_changematerial_post; +struct HPMHookPoint *HP_skill_get_elemental_type_pre; +struct HPMHookPoint *HP_skill_get_elemental_type_post; +struct HPMHookPoint *HP_skill_cooldown_save_pre; +struct HPMHookPoint *HP_skill_cooldown_save_post; +struct HPMHookPoint *HP_skill_maelstrom_suction_pre; +struct HPMHookPoint *HP_skill_maelstrom_suction_post; +struct HPMHookPoint *HP_skill_get_new_group_id_pre; +struct HPMHookPoint *HP_skill_get_new_group_id_post; +struct HPMHookPoint *HP_status_init_pre; +struct HPMHookPoint *HP_status_init_post; +struct HPMHookPoint *HP_status_final_pre; +struct HPMHookPoint *HP_status_final_post; +struct HPMHookPoint *HP_status_get_refine_chance_pre; +struct HPMHookPoint *HP_status_get_refine_chance_post; +struct HPMHookPoint *HP_status_skill2sc_pre; +struct HPMHookPoint *HP_status_skill2sc_post; +struct HPMHookPoint *HP_status_sc2skill_pre; +struct HPMHookPoint *HP_status_sc2skill_post; +struct HPMHookPoint *HP_status_sc2scb_flag_pre; +struct HPMHookPoint *HP_status_sc2scb_flag_post; +struct HPMHookPoint *HP_status_type2relevant_bl_types_pre; +struct HPMHookPoint *HP_status_type2relevant_bl_types_post; +struct HPMHookPoint *HP_status_get_sc_type_pre; +struct HPMHookPoint *HP_status_get_sc_type_post; +struct HPMHookPoint *HP_status_damage_pre; +struct HPMHookPoint *HP_status_damage_post; +struct HPMHookPoint *HP_status_charge_pre; +struct HPMHookPoint *HP_status_charge_post; +struct HPMHookPoint *HP_status_percent_change_pre; +struct HPMHookPoint *HP_status_percent_change_post; +struct HPMHookPoint *HP_status_set_hp_pre; +struct HPMHookPoint *HP_status_set_hp_post; +struct HPMHookPoint *HP_status_set_sp_pre; +struct HPMHookPoint *HP_status_set_sp_post; +struct HPMHookPoint *HP_status_heal_pre; +struct HPMHookPoint *HP_status_heal_post; +struct HPMHookPoint *HP_status_revive_pre; +struct HPMHookPoint *HP_status_revive_post; +struct HPMHookPoint *HP_status_get_regen_data_pre; +struct HPMHookPoint *HP_status_get_regen_data_post; +struct HPMHookPoint *HP_status_get_status_data_pre; +struct HPMHookPoint *HP_status_get_status_data_post; +struct HPMHookPoint *HP_status_get_base_status_pre; +struct HPMHookPoint *HP_status_get_base_status_post; +struct HPMHookPoint *HP_status_get_name_pre; +struct HPMHookPoint *HP_status_get_name_post; +struct HPMHookPoint *HP_status_get_class_pre; +struct HPMHookPoint *HP_status_get_class_post; +struct HPMHookPoint *HP_status_get_lv_pre; +struct HPMHookPoint *HP_status_get_lv_post; +struct HPMHookPoint *HP_status_get_def_pre; +struct HPMHookPoint *HP_status_get_def_post; +struct HPMHookPoint *HP_status_get_speed_pre; +struct HPMHookPoint *HP_status_get_speed_post; +struct HPMHookPoint *HP_status_calc_attack_element_pre; +struct HPMHookPoint *HP_status_calc_attack_element_post; +struct HPMHookPoint *HP_status_get_party_id_pre; +struct HPMHookPoint *HP_status_get_party_id_post; +struct HPMHookPoint *HP_status_get_guild_id_pre; +struct HPMHookPoint *HP_status_get_guild_id_post; +struct HPMHookPoint *HP_status_get_emblem_id_pre; +struct HPMHookPoint *HP_status_get_emblem_id_post; +struct HPMHookPoint *HP_status_get_mexp_pre; +struct HPMHookPoint *HP_status_get_mexp_post; +struct HPMHookPoint *HP_status_get_race2_pre; +struct HPMHookPoint *HP_status_get_race2_post; +struct HPMHookPoint *HP_status_get_viewdata_pre; +struct HPMHookPoint *HP_status_get_viewdata_post; +struct HPMHookPoint *HP_status_set_viewdata_pre; +struct HPMHookPoint *HP_status_set_viewdata_post; +struct HPMHookPoint *HP_status_change_init_pre; +struct HPMHookPoint *HP_status_change_init_post; +struct HPMHookPoint *HP_status_get_sc_pre; +struct HPMHookPoint *HP_status_get_sc_post; +struct HPMHookPoint *HP_status_isdead_pre; +struct HPMHookPoint *HP_status_isdead_post; +struct HPMHookPoint *HP_status_isimmune_pre; +struct HPMHookPoint *HP_status_isimmune_post; +struct HPMHookPoint *HP_status_get_sc_def_pre; +struct HPMHookPoint *HP_status_get_sc_def_post; +struct HPMHookPoint *HP_status_change_start_pre; +struct HPMHookPoint *HP_status_change_start_post; +struct HPMHookPoint *HP_status_change_end__pre; +struct HPMHookPoint *HP_status_change_end__post; +struct HPMHookPoint *HP_status_kaahi_heal_timer_pre; +struct HPMHookPoint *HP_status_kaahi_heal_timer_post; +struct HPMHookPoint *HP_status_change_timer_pre; +struct HPMHookPoint *HP_status_change_timer_post; +struct HPMHookPoint *HP_status_change_timer_sub_pre; +struct HPMHookPoint *HP_status_change_timer_sub_post; +struct HPMHookPoint *HP_status_change_clear_pre; +struct HPMHookPoint *HP_status_change_clear_post; +struct HPMHookPoint *HP_status_change_clear_buffs_pre; +struct HPMHookPoint *HP_status_change_clear_buffs_post; +struct HPMHookPoint *HP_status_calc_bl__pre; +struct HPMHookPoint *HP_status_calc_bl__post; +struct HPMHookPoint *HP_status_calc_mob__pre; +struct HPMHookPoint *HP_status_calc_mob__post; +struct HPMHookPoint *HP_status_calc_pet__pre; +struct HPMHookPoint *HP_status_calc_pet__post; +struct HPMHookPoint *HP_status_calc_pc__pre; +struct HPMHookPoint *HP_status_calc_pc__post; +struct HPMHookPoint *HP_status_calc_homunculus__pre; +struct HPMHookPoint *HP_status_calc_homunculus__post; +struct HPMHookPoint *HP_status_calc_mercenary__pre; +struct HPMHookPoint *HP_status_calc_mercenary__post; +struct HPMHookPoint *HP_status_calc_elemental__pre; +struct HPMHookPoint *HP_status_calc_elemental__post; +struct HPMHookPoint *HP_status_calc_misc_pre; +struct HPMHookPoint *HP_status_calc_misc_post; +struct HPMHookPoint *HP_status_calc_regen_pre; +struct HPMHookPoint *HP_status_calc_regen_post; +struct HPMHookPoint *HP_status_calc_regen_rate_pre; +struct HPMHookPoint *HP_status_calc_regen_rate_post; +struct HPMHookPoint *HP_status_check_skilluse_pre; +struct HPMHookPoint *HP_status_check_skilluse_post; +struct HPMHookPoint *HP_status_check_visibility_pre; +struct HPMHookPoint *HP_status_check_visibility_post; +struct HPMHookPoint *HP_status_change_spread_pre; +struct HPMHookPoint *HP_status_change_spread_post; +struct HPMHookPoint *HP_status_calc_def_pre; +struct HPMHookPoint *HP_status_calc_def_post; +struct HPMHookPoint *HP_status_calc_def2_pre; +struct HPMHookPoint *HP_status_calc_def2_post; +struct HPMHookPoint *HP_status_calc_mdef_pre; +struct HPMHookPoint *HP_status_calc_mdef_post; +struct HPMHookPoint *HP_status_calc_mdef2_pre; +struct HPMHookPoint *HP_status_calc_mdef2_post; +struct HPMHookPoint *HP_status_calc_batk_pre; +struct HPMHookPoint *HP_status_calc_batk_post; +struct HPMHookPoint *HP_status_base_matk_pre; +struct HPMHookPoint *HP_status_base_matk_post; +struct HPMHookPoint *HP_status_get_weapon_atk_pre; +struct HPMHookPoint *HP_status_get_weapon_atk_post; +struct HPMHookPoint *HP_status_get_total_mdef_pre; +struct HPMHookPoint *HP_status_get_total_mdef_post; +struct HPMHookPoint *HP_status_get_total_def_pre; +struct HPMHookPoint *HP_status_get_total_def_post; +struct HPMHookPoint *HP_status_get_matk_pre; +struct HPMHookPoint *HP_status_get_matk_post; +struct HPMHookPoint *HP_status_readdb_pre; +struct HPMHookPoint *HP_status_readdb_post; +struct HPMHookPoint *HP_status_initChangeTables_pre; +struct HPMHookPoint *HP_status_initChangeTables_post; +struct HPMHookPoint *HP_status_initDummyData_pre; +struct HPMHookPoint *HP_status_initDummyData_post; +struct HPMHookPoint *HP_status_base_amotion_pc_pre; +struct HPMHookPoint *HP_status_base_amotion_pc_post; +struct HPMHookPoint *HP_status_base_atk_pre; +struct HPMHookPoint *HP_status_base_atk_post; +struct HPMHookPoint *HP_status_calc_sigma_pre; +struct HPMHookPoint *HP_status_calc_sigma_post; +struct HPMHookPoint *HP_status_base_pc_maxhp_pre; +struct HPMHookPoint *HP_status_base_pc_maxhp_post; +struct HPMHookPoint *HP_status_base_pc_maxsp_pre; +struct HPMHookPoint *HP_status_base_pc_maxsp_post; +struct HPMHookPoint *HP_status_calc_npc__pre; +struct HPMHookPoint *HP_status_calc_npc__post; +struct HPMHookPoint *HP_status_calc_str_pre; +struct HPMHookPoint *HP_status_calc_str_post; +struct HPMHookPoint *HP_status_calc_agi_pre; +struct HPMHookPoint *HP_status_calc_agi_post; +struct HPMHookPoint *HP_status_calc_vit_pre; +struct HPMHookPoint *HP_status_calc_vit_post; +struct HPMHookPoint *HP_status_calc_int_pre; +struct HPMHookPoint *HP_status_calc_int_post; +struct HPMHookPoint *HP_status_calc_dex_pre; +struct HPMHookPoint *HP_status_calc_dex_post; +struct HPMHookPoint *HP_status_calc_luk_pre; +struct HPMHookPoint *HP_status_calc_luk_post; +struct HPMHookPoint *HP_status_calc_watk_pre; +struct HPMHookPoint *HP_status_calc_watk_post; +struct HPMHookPoint *HP_status_calc_matk_pre; +struct HPMHookPoint *HP_status_calc_matk_post; +struct HPMHookPoint *HP_status_calc_hit_pre; +struct HPMHookPoint *HP_status_calc_hit_post; +struct HPMHookPoint *HP_status_calc_critical_pre; +struct HPMHookPoint *HP_status_calc_critical_post; +struct HPMHookPoint *HP_status_calc_flee_pre; +struct HPMHookPoint *HP_status_calc_flee_post; +struct HPMHookPoint *HP_status_calc_flee2_pre; +struct HPMHookPoint *HP_status_calc_flee2_post; +struct HPMHookPoint *HP_status_calc_speed_pre; +struct HPMHookPoint *HP_status_calc_speed_post; +struct HPMHookPoint *HP_status_calc_aspd_rate_pre; +struct HPMHookPoint *HP_status_calc_aspd_rate_post; +struct HPMHookPoint *HP_status_calc_dmotion_pre; +struct HPMHookPoint *HP_status_calc_dmotion_post; +struct HPMHookPoint *HP_status_calc_aspd_pre; +struct HPMHookPoint *HP_status_calc_aspd_post; +struct HPMHookPoint *HP_status_calc_fix_aspd_pre; +struct HPMHookPoint *HP_status_calc_fix_aspd_post; +struct HPMHookPoint *HP_status_calc_maxhp_pre; +struct HPMHookPoint *HP_status_calc_maxhp_post; +struct HPMHookPoint *HP_status_calc_maxsp_pre; +struct HPMHookPoint *HP_status_calc_maxsp_post; +struct HPMHookPoint *HP_status_calc_element_pre; +struct HPMHookPoint *HP_status_calc_element_post; +struct HPMHookPoint *HP_status_calc_element_lv_pre; +struct HPMHookPoint *HP_status_calc_element_lv_post; +struct HPMHookPoint *HP_status_calc_mode_pre; +struct HPMHookPoint *HP_status_calc_mode_post; +struct HPMHookPoint *HP_status_calc_ematk_pre; +struct HPMHookPoint *HP_status_calc_ematk_post; +struct HPMHookPoint *HP_status_calc_bl_main_pre; +struct HPMHookPoint *HP_status_calc_bl_main_post; +struct HPMHookPoint *HP_status_display_add_pre; +struct HPMHookPoint *HP_status_display_add_post; +struct HPMHookPoint *HP_status_display_remove_pre; +struct HPMHookPoint *HP_status_display_remove_post; +struct HPMHookPoint *HP_status_natural_heal_pre; +struct HPMHookPoint *HP_status_natural_heal_post; +struct HPMHookPoint *HP_status_natural_heal_timer_pre; +struct HPMHookPoint *HP_status_natural_heal_timer_post; +struct HPMHookPoint *HP_status_readdb_job1_pre; +struct HPMHookPoint *HP_status_readdb_job1_post; +struct HPMHookPoint *HP_status_readdb_job2_pre; +struct HPMHookPoint *HP_status_readdb_job2_post; +struct HPMHookPoint *HP_status_readdb_sizefix_pre; +struct HPMHookPoint *HP_status_readdb_sizefix_post; +struct HPMHookPoint *HP_status_readdb_refine_pre; +struct HPMHookPoint *HP_status_readdb_refine_post; +struct HPMHookPoint *HP_status_readdb_scconfig_pre; +struct HPMHookPoint *HP_status_readdb_scconfig_post; +struct HPMHookPoint *HP_storage_reconnect_pre; +struct HPMHookPoint *HP_storage_reconnect_post; +struct HPMHookPoint *HP_storage_delitem_pre; +struct HPMHookPoint *HP_storage_delitem_post; +struct HPMHookPoint *HP_storage_open_pre; +struct HPMHookPoint *HP_storage_open_post; +struct HPMHookPoint *HP_storage_add_pre; +struct HPMHookPoint *HP_storage_add_post; +struct HPMHookPoint *HP_storage_get_pre; +struct HPMHookPoint *HP_storage_get_post; +struct HPMHookPoint *HP_storage_additem_pre; +struct HPMHookPoint *HP_storage_additem_post; +struct HPMHookPoint *HP_storage_addfromcart_pre; +struct HPMHookPoint *HP_storage_addfromcart_post; +struct HPMHookPoint *HP_storage_gettocart_pre; +struct HPMHookPoint *HP_storage_gettocart_post; +struct HPMHookPoint *HP_storage_close_pre; +struct HPMHookPoint *HP_storage_close_post; +struct HPMHookPoint *HP_storage_pc_quit_pre; +struct HPMHookPoint *HP_storage_pc_quit_post; +struct HPMHookPoint *HP_storage_comp_item_pre; +struct HPMHookPoint *HP_storage_comp_item_post; +struct HPMHookPoint *HP_storage_sortitem_pre; +struct HPMHookPoint *HP_storage_sortitem_post; +struct HPMHookPoint *HP_storage_reconnect_sub_pre; +struct HPMHookPoint *HP_storage_reconnect_sub_post; +struct HPMHookPoint *HP_trade_request_pre; +struct HPMHookPoint *HP_trade_request_post; +struct HPMHookPoint *HP_trade_ack_pre; +struct HPMHookPoint *HP_trade_ack_post; +struct HPMHookPoint *HP_trade_check_impossible_pre; +struct HPMHookPoint *HP_trade_check_impossible_post; +struct HPMHookPoint *HP_trade_check_pre; +struct HPMHookPoint *HP_trade_check_post; +struct HPMHookPoint *HP_trade_additem_pre; +struct HPMHookPoint *HP_trade_additem_post; +struct HPMHookPoint *HP_trade_addzeny_pre; +struct HPMHookPoint *HP_trade_addzeny_post; +struct HPMHookPoint *HP_trade_ok_pre; +struct HPMHookPoint *HP_trade_ok_post; +struct HPMHookPoint *HP_trade_cancel_pre; +struct HPMHookPoint *HP_trade_cancel_post; +struct HPMHookPoint *HP_trade_commit_pre; +struct HPMHookPoint *HP_trade_commit_post; +struct HPMHookPoint *HP_unit_init_pre; +struct HPMHookPoint *HP_unit_init_post; +struct HPMHookPoint *HP_unit_final_pre; +struct HPMHookPoint *HP_unit_final_post; +struct HPMHookPoint *HP_unit_bl2ud_pre; +struct HPMHookPoint *HP_unit_bl2ud_post; +struct HPMHookPoint *HP_unit_bl2ud2_pre; +struct HPMHookPoint *HP_unit_bl2ud2_post; +struct HPMHookPoint *HP_unit_attack_timer_pre; +struct HPMHookPoint *HP_unit_attack_timer_post; +struct HPMHookPoint *HP_unit_walktoxy_timer_pre; +struct HPMHookPoint *HP_unit_walktoxy_timer_post; +struct HPMHookPoint *HP_unit_walktoxy_sub_pre; +struct HPMHookPoint *HP_unit_walktoxy_sub_post; +struct HPMHookPoint *HP_unit_delay_walktoxy_timer_pre; +struct HPMHookPoint *HP_unit_delay_walktoxy_timer_post; +struct HPMHookPoint *HP_unit_walktoxy_pre; +struct HPMHookPoint *HP_unit_walktoxy_post; +struct HPMHookPoint *HP_unit_walktobl_sub_pre; +struct HPMHookPoint *HP_unit_walktobl_sub_post; +struct HPMHookPoint *HP_unit_walktobl_pre; +struct HPMHookPoint *HP_unit_walktobl_post; +struct HPMHookPoint *HP_unit_run_pre; +struct HPMHookPoint *HP_unit_run_post; +struct HPMHookPoint *HP_unit_wugdash_pre; +struct HPMHookPoint *HP_unit_wugdash_post; +struct HPMHookPoint *HP_unit_escape_pre; +struct HPMHookPoint *HP_unit_escape_post; +struct HPMHookPoint *HP_unit_movepos_pre; +struct HPMHookPoint *HP_unit_movepos_post; +struct HPMHookPoint *HP_unit_setdir_pre; +struct HPMHookPoint *HP_unit_setdir_post; +struct HPMHookPoint *HP_unit_getdir_pre; +struct HPMHookPoint *HP_unit_getdir_post; +struct HPMHookPoint *HP_unit_blown_pre; +struct HPMHookPoint *HP_unit_blown_post; +struct HPMHookPoint *HP_unit_warp_pre; +struct HPMHookPoint *HP_unit_warp_post; +struct HPMHookPoint *HP_unit_stop_walking_pre; +struct HPMHookPoint *HP_unit_stop_walking_post; +struct HPMHookPoint *HP_unit_skilluse_id_pre; +struct HPMHookPoint *HP_unit_skilluse_id_post; +struct HPMHookPoint *HP_unit_is_walking_pre; +struct HPMHookPoint *HP_unit_is_walking_post; +struct HPMHookPoint *HP_unit_can_move_pre; +struct HPMHookPoint *HP_unit_can_move_post; +struct HPMHookPoint *HP_unit_resume_running_pre; +struct HPMHookPoint *HP_unit_resume_running_post; +struct HPMHookPoint *HP_unit_set_walkdelay_pre; +struct HPMHookPoint *HP_unit_set_walkdelay_post; +struct HPMHookPoint *HP_unit_skilluse_id2_pre; +struct HPMHookPoint *HP_unit_skilluse_id2_post; +struct HPMHookPoint *HP_unit_skilluse_pos_pre; +struct HPMHookPoint *HP_unit_skilluse_pos_post; +struct HPMHookPoint *HP_unit_skilluse_pos2_pre; +struct HPMHookPoint *HP_unit_skilluse_pos2_post; +struct HPMHookPoint *HP_unit_set_target_pre; +struct HPMHookPoint *HP_unit_set_target_post; +struct HPMHookPoint *HP_unit_stop_attack_pre; +struct HPMHookPoint *HP_unit_stop_attack_post; +struct HPMHookPoint *HP_unit_unattackable_pre; +struct HPMHookPoint *HP_unit_unattackable_post; +struct HPMHookPoint *HP_unit_attack_pre; +struct HPMHookPoint *HP_unit_attack_post; +struct HPMHookPoint *HP_unit_cancel_combo_pre; +struct HPMHookPoint *HP_unit_cancel_combo_post; +struct HPMHookPoint *HP_unit_can_reach_pos_pre; +struct HPMHookPoint *HP_unit_can_reach_pos_post; +struct HPMHookPoint *HP_unit_can_reach_bl_pre; +struct HPMHookPoint *HP_unit_can_reach_bl_post; +struct HPMHookPoint *HP_unit_calc_pos_pre; +struct HPMHookPoint *HP_unit_calc_pos_post; +struct HPMHookPoint *HP_unit_attack_timer_sub_pre; +struct HPMHookPoint *HP_unit_attack_timer_sub_post; +struct HPMHookPoint *HP_unit_skillcastcancel_pre; +struct HPMHookPoint *HP_unit_skillcastcancel_post; +struct HPMHookPoint *HP_unit_dataset_pre; +struct HPMHookPoint *HP_unit_dataset_post; +struct HPMHookPoint *HP_unit_counttargeted_pre; +struct HPMHookPoint *HP_unit_counttargeted_post; +struct HPMHookPoint *HP_unit_fixdamage_pre; +struct HPMHookPoint *HP_unit_fixdamage_post; +struct HPMHookPoint *HP_unit_changeviewsize_pre; +struct HPMHookPoint *HP_unit_changeviewsize_post; +struct HPMHookPoint *HP_unit_remove_map_pre; +struct HPMHookPoint *HP_unit_remove_map_post; +struct HPMHookPoint *HP_unit_remove_map_pc_pre; +struct HPMHookPoint *HP_unit_remove_map_pc_post; +struct HPMHookPoint *HP_unit_free_pc_pre; +struct HPMHookPoint *HP_unit_free_pc_post; +struct HPMHookPoint *HP_unit_free_pre; +struct HPMHookPoint *HP_unit_free_post; +struct HPMHookPoint *HP_vending_init_pre; +struct HPMHookPoint *HP_vending_init_post; +struct HPMHookPoint *HP_vending_final_pre; +struct HPMHookPoint *HP_vending_final_post; +struct HPMHookPoint *HP_vending_close_pre; +struct HPMHookPoint *HP_vending_close_post; +struct HPMHookPoint *HP_vending_open_pre; +struct HPMHookPoint *HP_vending_open_post; +struct HPMHookPoint *HP_vending_list_pre; +struct HPMHookPoint *HP_vending_list_post; +struct HPMHookPoint *HP_vending_purchase_pre; +struct HPMHookPoint *HP_vending_purchase_post; +struct HPMHookPoint *HP_vending_search_pre; +struct HPMHookPoint *HP_vending_search_post; +struct HPMHookPoint *HP_vending_searchall_pre; +struct HPMHookPoint *HP_vending_searchall_post; +} list; +struct { +int HP_atcommand_init_pre; +int HP_atcommand_init_post; +int HP_atcommand_final_pre; +int HP_atcommand_final_post; +int HP_atcommand_parse_pre; +int HP_atcommand_parse_post; +int HP_atcommand_create_pre; +int HP_atcommand_create_post; +int HP_atcommand_can_use_pre; +int HP_atcommand_can_use_post; +int HP_atcommand_can_use2_pre; +int HP_atcommand_can_use2_post; +int HP_atcommand_load_groups_pre; +int HP_atcommand_load_groups_post; +int HP_atcommand_exists_pre; +int HP_atcommand_exists_post; +int HP_atcommand_msg_read_pre; +int HP_atcommand_msg_read_post; +int HP_atcommand_final_msg_pre; +int HP_atcommand_final_msg_post; +int HP_atcommand_get_bind_byname_pre; +int HP_atcommand_get_bind_byname_post; +int HP_atcommand_get_info_byname_pre; +int HP_atcommand_get_info_byname_post; +int HP_atcommand_check_alias_pre; +int HP_atcommand_check_alias_post; +int HP_atcommand_get_suggestions_pre; +int HP_atcommand_get_suggestions_post; +int HP_atcommand_config_read_pre; +int HP_atcommand_config_read_post; +int HP_atcommand_stopattack_pre; +int HP_atcommand_stopattack_post; +int HP_atcommand_pvpoff_sub_pre; +int HP_atcommand_pvpoff_sub_post; +int HP_atcommand_pvpon_sub_pre; +int HP_atcommand_pvpon_sub_post; +int HP_atcommand_atkillmonster_sub_pre; +int HP_atcommand_atkillmonster_sub_post; +int HP_atcommand_raise_sub_pre; +int HP_atcommand_raise_sub_post; +int HP_atcommand_get_jail_time_pre; +int HP_atcommand_get_jail_time_post; +int HP_atcommand_cleanfloor_sub_pre; +int HP_atcommand_cleanfloor_sub_post; +int HP_atcommand_mutearea_sub_pre; +int HP_atcommand_mutearea_sub_post; +int HP_atcommand_commands_sub_pre; +int HP_atcommand_commands_sub_post; +int HP_atcommand_cmd_db_clear_pre; +int HP_atcommand_cmd_db_clear_post; +int HP_atcommand_cmd_db_clear_sub_pre; +int HP_atcommand_cmd_db_clear_sub_post; +int HP_atcommand_doload_pre; +int HP_atcommand_doload_post; +int HP_atcommand_base_commands_pre; +int HP_atcommand_base_commands_post; +int HP_battle_init_pre; +int HP_battle_init_post; +int HP_battle_final_pre; +int HP_battle_final_post; +int HP_battle_calc_attack_pre; +int HP_battle_calc_attack_post; +int HP_battle_calc_damage_pre; +int HP_battle_calc_damage_post; +int HP_battle_calc_gvg_damage_pre; +int HP_battle_calc_gvg_damage_post; +int HP_battle_calc_bg_damage_pre; +int HP_battle_calc_bg_damage_post; +int HP_battle_weapon_attack_pre; +int HP_battle_weapon_attack_post; +int HP_battle_calc_weapon_attack_pre; +int HP_battle_calc_weapon_attack_post; +int HP_battle_delay_damage_pre; +int HP_battle_delay_damage_post; +int HP_battle_drain_pre; +int HP_battle_drain_post; +int HP_battle_calc_return_damage_pre; +int HP_battle_calc_return_damage_post; +int HP_battle_attr_ratio_pre; +int HP_battle_attr_ratio_post; +int HP_battle_attr_fix_pre; +int HP_battle_attr_fix_post; +int HP_battle_calc_cardfix_pre; +int HP_battle_calc_cardfix_post; +int HP_battle_calc_elefix_pre; +int HP_battle_calc_elefix_post; +int HP_battle_calc_masteryfix_pre; +int HP_battle_calc_masteryfix_post; +int HP_battle_calc_skillratio_pre; +int HP_battle_calc_skillratio_post; +int HP_battle_calc_sizefix_pre; +int HP_battle_calc_sizefix_post; +int HP_battle_calc_weapon_damage_pre; +int HP_battle_calc_weapon_damage_post; +int HP_battle_calc_defense_pre; +int HP_battle_calc_defense_post; +int HP_battle_get_master_pre; +int HP_battle_get_master_post; +int HP_battle_get_targeted_pre; +int HP_battle_get_targeted_post; +int HP_battle_get_enemy_pre; +int HP_battle_get_enemy_post; +int HP_battle_get_target_pre; +int HP_battle_get_target_post; +int HP_battle_get_current_skill_pre; +int HP_battle_get_current_skill_post; +int HP_battle_check_undead_pre; +int HP_battle_check_undead_post; +int HP_battle_check_target_pre; +int HP_battle_check_target_post; +int HP_battle_check_range_pre; +int HP_battle_check_range_post; +int HP_battle_consume_ammo_pre; +int HP_battle_consume_ammo_post; +int HP_battle_get_targeted_sub_pre; +int HP_battle_get_targeted_sub_post; +int HP_battle_get_enemy_sub_pre; +int HP_battle_get_enemy_sub_post; +int HP_battle_get_enemy_area_sub_pre; +int HP_battle_get_enemy_area_sub_post; +int HP_battle_delay_damage_sub_pre; +int HP_battle_delay_damage_sub_post; +int HP_battle_blewcount_bonus_pre; +int HP_battle_blewcount_bonus_post; +int HP_battle_range_type_pre; +int HP_battle_range_type_post; +int HP_battle_calc_base_damage_pre; +int HP_battle_calc_base_damage_post; +int HP_battle_calc_base_damage2_pre; +int HP_battle_calc_base_damage2_post; +int HP_battle_calc_misc_attack_pre; +int HP_battle_calc_misc_attack_post; +int HP_battle_calc_magic_attack_pre; +int HP_battle_calc_magic_attack_post; +int HP_battle_adjust_skill_damage_pre; +int HP_battle_adjust_skill_damage_post; +int HP_battle_add_mastery_pre; +int HP_battle_add_mastery_post; +int HP_battle_calc_drain_pre; +int HP_battle_calc_drain_post; +int HP_battle_config_read_pre; +int HP_battle_config_read_post; +int HP_battle_config_set_defaults_pre; +int HP_battle_config_set_defaults_post; +int HP_battle_config_set_value_pre; +int HP_battle_config_set_value_post; +int HP_battle_config_get_value_pre; +int HP_battle_config_get_value_post; +int HP_battle_config_adjust_pre; +int HP_battle_config_adjust_post; +int HP_battle_get_enemy_area_pre; +int HP_battle_get_enemy_area_post; +int HP_battle_damage_area_pre; +int HP_battle_damage_area_post; +int HP_bg_init_pre; +int HP_bg_init_post; +int HP_bg_final_pre; +int HP_bg_final_post; +int HP_bg_name2arena_pre; +int HP_bg_name2arena_post; +int HP_bg_queue_add_pre; +int HP_bg_queue_add_post; +int HP_bg_can_queue_pre; +int HP_bg_can_queue_post; +int HP_bg_id2pos_pre; +int HP_bg_id2pos_post; +int HP_bg_queue_pc_cleanup_pre; +int HP_bg_queue_pc_cleanup_post; +int HP_bg_begin_pre; +int HP_bg_begin_post; +int HP_bg_begin_timer_pre; +int HP_bg_begin_timer_post; +int HP_bg_queue_pregame_pre; +int HP_bg_queue_pregame_post; +int HP_bg_fillup_timer_pre; +int HP_bg_fillup_timer_post; +int HP_bg_queue_ready_ack_pre; +int HP_bg_queue_ready_ack_post; +int HP_bg_match_over_pre; +int HP_bg_match_over_post; +int HP_bg_queue_check_pre; +int HP_bg_queue_check_post; +int HP_bg_team_search_pre; +int HP_bg_team_search_post; +int HP_bg_getavailablesd_pre; +int HP_bg_getavailablesd_post; +int HP_bg_team_delete_pre; +int HP_bg_team_delete_post; +int HP_bg_team_warp_pre; +int HP_bg_team_warp_post; +int HP_bg_send_dot_remove_pre; +int HP_bg_send_dot_remove_post; +int HP_bg_team_join_pre; +int HP_bg_team_join_post; +int HP_bg_team_leave_pre; +int HP_bg_team_leave_post; +int HP_bg_member_respawn_pre; +int HP_bg_member_respawn_post; +int HP_bg_create_pre; +int HP_bg_create_post; +int HP_bg_team_get_id_pre; +int HP_bg_team_get_id_post; +int HP_bg_send_message_pre; +int HP_bg_send_message_post; +int HP_bg_send_xy_timer_sub_pre; +int HP_bg_send_xy_timer_sub_post; +int HP_bg_send_xy_timer_pre; +int HP_bg_send_xy_timer_post; +int HP_bg_config_read_pre; +int HP_bg_config_read_post; +int HP_buyingstore_setup_pre; +int HP_buyingstore_setup_post; +int HP_buyingstore_create_pre; +int HP_buyingstore_create_post; +int HP_buyingstore_close_pre; +int HP_buyingstore_close_post; +int HP_buyingstore_open_pre; +int HP_buyingstore_open_post; +int HP_buyingstore_trade_pre; +int HP_buyingstore_trade_post; +int HP_buyingstore_search_pre; +int HP_buyingstore_search_post; +int HP_buyingstore_searchall_pre; +int HP_buyingstore_searchall_post; +int HP_buyingstore_getuid_pre; +int HP_buyingstore_getuid_post; +int HP_chat_create_pc_chat_pre; +int HP_chat_create_pc_chat_post; +int HP_chat_join_pre; +int HP_chat_join_post; +int HP_chat_leave_pre; +int HP_chat_leave_post; +int HP_chat_change_owner_pre; +int HP_chat_change_owner_post; +int HP_chat_change_status_pre; +int HP_chat_change_status_post; +int HP_chat_kick_pre; +int HP_chat_kick_post; +int HP_chat_create_npc_chat_pre; +int HP_chat_create_npc_chat_post; +int HP_chat_delete_npc_chat_pre; +int HP_chat_delete_npc_chat_post; +int HP_chat_enable_event_pre; +int HP_chat_enable_event_post; +int HP_chat_disable_event_pre; +int HP_chat_disable_event_post; +int HP_chat_npc_kick_all_pre; +int HP_chat_npc_kick_all_post; +int HP_chat_trigger_event_pre; +int HP_chat_trigger_event_post; +int HP_chat_create_pre; +int HP_chat_create_post; +int HP_chrif_final_pre; +int HP_chrif_final_post; +int HP_chrif_init_pre; +int HP_chrif_init_post; +int HP_chrif_setuserid_pre; +int HP_chrif_setuserid_post; +int HP_chrif_setpasswd_pre; +int HP_chrif_setpasswd_post; +int HP_chrif_checkdefaultlogin_pre; +int HP_chrif_checkdefaultlogin_post; +int HP_chrif_setip_pre; +int HP_chrif_setip_post; +int HP_chrif_setport_pre; +int HP_chrif_setport_post; +int HP_chrif_isconnected_pre; +int HP_chrif_isconnected_post; +int HP_chrif_check_shutdown_pre; +int HP_chrif_check_shutdown_post; +int HP_chrif_search_pre; +int HP_chrif_search_post; +int HP_chrif_auth_check_pre; +int HP_chrif_auth_check_post; +int HP_chrif_auth_delete_pre; +int HP_chrif_auth_delete_post; +int HP_chrif_auth_finished_pre; +int HP_chrif_auth_finished_post; +int HP_chrif_authreq_pre; +int HP_chrif_authreq_post; +int HP_chrif_authok_pre; +int HP_chrif_authok_post; +int HP_chrif_scdata_request_pre; +int HP_chrif_scdata_request_post; +int HP_chrif_save_pre; +int HP_chrif_save_post; +int HP_chrif_charselectreq_pre; +int HP_chrif_charselectreq_post; +int HP_chrif_changemapserver_pre; +int HP_chrif_changemapserver_post; +int HP_chrif_searchcharid_pre; +int HP_chrif_searchcharid_post; +int HP_chrif_changeemail_pre; +int HP_chrif_changeemail_post; +int HP_chrif_char_ask_name_pre; +int HP_chrif_char_ask_name_post; +int HP_chrif_updatefamelist_pre; +int HP_chrif_updatefamelist_post; +int HP_chrif_buildfamelist_pre; +int HP_chrif_buildfamelist_post; +int HP_chrif_save_scdata_pre; +int HP_chrif_save_scdata_post; +int HP_chrif_ragsrvinfo_pre; +int HP_chrif_ragsrvinfo_post; +int HP_chrif_char_offline_pre; +int HP_chrif_char_offline_post; +int HP_chrif_char_offline_nsd_pre; +int HP_chrif_char_offline_nsd_post; +int HP_chrif_char_reset_offline_pre; +int HP_chrif_char_reset_offline_post; +int HP_chrif_send_users_tochar_pre; +int HP_chrif_send_users_tochar_post; +int HP_chrif_char_online_pre; +int HP_chrif_char_online_post; +int HP_chrif_changesex_pre; +int HP_chrif_changesex_post; +int HP_chrif_divorce_pre; +int HP_chrif_divorce_post; +int HP_chrif_removefriend_pre; +int HP_chrif_removefriend_post; +int HP_chrif_send_report_pre; +int HP_chrif_send_report_post; +int HP_chrif_flush_fifo_pre; +int HP_chrif_flush_fifo_post; +int HP_chrif_skillid2idx_pre; +int HP_chrif_skillid2idx_post; +int HP_chrif_sd_to_auth_pre; +int HP_chrif_sd_to_auth_post; +int HP_chrif_check_connect_char_server_pre; +int HP_chrif_check_connect_char_server_post; +int HP_chrif_auth_logout_pre; +int HP_chrif_auth_logout_post; +int HP_chrif_save_ack_pre; +int HP_chrif_save_ack_post; +int HP_chrif_reconnect_pre; +int HP_chrif_reconnect_post; +int HP_chrif_auth_db_cleanup_sub_pre; +int HP_chrif_auth_db_cleanup_sub_post; +int HP_chrif_char_ask_name_answer_pre; +int HP_chrif_char_ask_name_answer_post; +int HP_chrif_auth_db_final_pre; +int HP_chrif_auth_db_final_post; +int HP_chrif_send_usercount_tochar_pre; +int HP_chrif_send_usercount_tochar_post; +int HP_chrif_auth_db_cleanup_pre; +int HP_chrif_auth_db_cleanup_post; +int HP_chrif_connect_pre; +int HP_chrif_connect_post; +int HP_chrif_connectack_pre; +int HP_chrif_connectack_post; +int HP_chrif_sendmap_pre; +int HP_chrif_sendmap_post; +int HP_chrif_sendmapack_pre; +int HP_chrif_sendmapack_post; +int HP_chrif_recvmap_pre; +int HP_chrif_recvmap_post; +int HP_chrif_changemapserverack_pre; +int HP_chrif_changemapserverack_post; +int HP_chrif_changedsex_pre; +int HP_chrif_changedsex_post; +int HP_chrif_divorceack_pre; +int HP_chrif_divorceack_post; +int HP_chrif_accountban_pre; +int HP_chrif_accountban_post; +int HP_chrif_recvfamelist_pre; +int HP_chrif_recvfamelist_post; +int HP_chrif_load_scdata_pre; +int HP_chrif_load_scdata_post; +int HP_chrif_update_ip_pre; +int HP_chrif_update_ip_post; +int HP_chrif_disconnectplayer_pre; +int HP_chrif_disconnectplayer_post; +int HP_chrif_removemap_pre; +int HP_chrif_removemap_post; +int HP_chrif_updatefamelist_ack_pre; +int HP_chrif_updatefamelist_ack_post; +int HP_chrif_keepalive_pre; +int HP_chrif_keepalive_post; +int HP_chrif_keepalive_ack_pre; +int HP_chrif_keepalive_ack_post; +int HP_chrif_deadopt_pre; +int HP_chrif_deadopt_post; +int HP_chrif_authfail_pre; +int HP_chrif_authfail_post; +int HP_chrif_on_ready_pre; +int HP_chrif_on_ready_post; +int HP_chrif_on_disconnect_pre; +int HP_chrif_on_disconnect_post; +int HP_chrif_parse_pre; +int HP_chrif_parse_post; +int HP_clif_init_pre; +int HP_clif_init_post; +int HP_clif_final_pre; +int HP_clif_final_post; +int HP_clif_setip_pre; +int HP_clif_setip_post; +int HP_clif_setbindip_pre; +int HP_clif_setbindip_post; +int HP_clif_setport_pre; +int HP_clif_setport_post; +int HP_clif_refresh_ip_pre; +int HP_clif_refresh_ip_post; +int HP_clif_send_pre; +int HP_clif_send_post; +int HP_clif_send_sub_pre; +int HP_clif_send_sub_post; +int HP_clif_parse_pre; +int HP_clif_parse_post; +int HP_clif_parse_cmd_pre; +int HP_clif_parse_cmd_post; +int HP_clif_decrypt_cmd_pre; +int HP_clif_decrypt_cmd_post; +int HP_clif_authok_pre; +int HP_clif_authok_post; +int HP_clif_authrefuse_pre; +int HP_clif_authrefuse_post; +int HP_clif_authfail_fd_pre; +int HP_clif_authfail_fd_post; +int HP_clif_charselectok_pre; +int HP_clif_charselectok_post; +int HP_clif_dropflooritem_pre; +int HP_clif_dropflooritem_post; +int HP_clif_clearflooritem_pre; +int HP_clif_clearflooritem_post; +int HP_clif_additem_pre; +int HP_clif_additem_post; +int HP_clif_dropitem_pre; +int HP_clif_dropitem_post; +int HP_clif_delitem_pre; +int HP_clif_delitem_post; +int HP_clif_takeitem_pre; +int HP_clif_takeitem_post; +int HP_clif_arrowequip_pre; +int HP_clif_arrowequip_post; +int HP_clif_arrow_fail_pre; +int HP_clif_arrow_fail_post; +int HP_clif_use_card_pre; +int HP_clif_use_card_post; +int HP_clif_cart_additem_pre; +int HP_clif_cart_additem_post; +int HP_clif_cart_delitem_pre; +int HP_clif_cart_delitem_post; +int HP_clif_equipitemack_pre; +int HP_clif_equipitemack_post; +int HP_clif_unequipitemack_pre; +int HP_clif_unequipitemack_post; +int HP_clif_useitemack_pre; +int HP_clif_useitemack_post; +int HP_clif_addcards_pre; +int HP_clif_addcards_post; +int HP_clif_addcards2_pre; +int HP_clif_addcards2_post; +int HP_clif_item_sub_pre; +int HP_clif_item_sub_post; +int HP_clif_getareachar_item_pre; +int HP_clif_getareachar_item_post; +int HP_clif_cart_additem_ack_pre; +int HP_clif_cart_additem_ack_post; +int HP_clif_cashshop_load_pre; +int HP_clif_cashshop_load_post; +int HP_clif_package_announce_pre; +int HP_clif_package_announce_post; +int HP_clif_clearunit_single_pre; +int HP_clif_clearunit_single_post; +int HP_clif_clearunit_area_pre; +int HP_clif_clearunit_area_post; +int HP_clif_clearunit_delayed_pre; +int HP_clif_clearunit_delayed_post; +int HP_clif_walkok_pre; +int HP_clif_walkok_post; +int HP_clif_move_pre; +int HP_clif_move_post; +int HP_clif_move2_pre; +int HP_clif_move2_post; +int HP_clif_blown_pre; +int HP_clif_blown_post; +int HP_clif_slide_pre; +int HP_clif_slide_post; +int HP_clif_fixpos_pre; +int HP_clif_fixpos_post; +int HP_clif_changelook_pre; +int HP_clif_changelook_post; +int HP_clif_changetraplook_pre; +int HP_clif_changetraplook_post; +int HP_clif_refreshlook_pre; +int HP_clif_refreshlook_post; +int HP_clif_class_change_pre; +int HP_clif_class_change_post; +int HP_clif_skill_setunit_pre; +int HP_clif_skill_setunit_post; +int HP_clif_skill_delunit_pre; +int HP_clif_skill_delunit_post; +int HP_clif_skillunit_update_pre; +int HP_clif_skillunit_update_post; +int HP_clif_clearunit_delayed_sub_pre; +int HP_clif_clearunit_delayed_sub_post; +int HP_clif_set_unit_idle_pre; +int HP_clif_set_unit_idle_post; +int HP_clif_spawn_unit_pre; +int HP_clif_spawn_unit_post; +int HP_clif_spawn_unit2_pre; +int HP_clif_spawn_unit2_post; +int HP_clif_set_unit_idle2_pre; +int HP_clif_set_unit_idle2_post; +int HP_clif_set_unit_walking_pre; +int HP_clif_set_unit_walking_post; +int HP_clif_calc_walkdelay_pre; +int HP_clif_calc_walkdelay_post; +int HP_clif_getareachar_skillunit_pre; +int HP_clif_getareachar_skillunit_post; +int HP_clif_getareachar_unit_pre; +int HP_clif_getareachar_unit_post; +int HP_clif_clearchar_skillunit_pre; +int HP_clif_clearchar_skillunit_post; +int HP_clif_getareachar_pre; +int HP_clif_getareachar_post; +int HP_clif_spawn_pre; +int HP_clif_spawn_post; +int HP_clif_changemap_pre; +int HP_clif_changemap_post; +int HP_clif_changemapcell_pre; +int HP_clif_changemapcell_post; +int HP_clif_map_property_pre; +int HP_clif_map_property_post; +int HP_clif_pvpset_pre; +int HP_clif_pvpset_post; +int HP_clif_map_property_mapall_pre; +int HP_clif_map_property_mapall_post; +int HP_clif_bossmapinfo_pre; +int HP_clif_bossmapinfo_post; +int HP_clif_map_type_pre; +int HP_clif_map_type_post; +int HP_clif_maptypeproperty2_pre; +int HP_clif_maptypeproperty2_post; +int HP_clif_changemapserver_pre; +int HP_clif_changemapserver_post; +int HP_clif_npcbuysell_pre; +int HP_clif_npcbuysell_post; +int HP_clif_buylist_pre; +int HP_clif_buylist_post; +int HP_clif_selllist_pre; +int HP_clif_selllist_post; +int HP_clif_cashshop_show_pre; +int HP_clif_cashshop_show_post; +int HP_clif_npc_buy_result_pre; +int HP_clif_npc_buy_result_post; +int HP_clif_npc_sell_result_pre; +int HP_clif_npc_sell_result_post; +int HP_clif_cashshop_ack_pre; +int HP_clif_cashshop_ack_post; +int HP_clif_scriptmes_pre; +int HP_clif_scriptmes_post; +int HP_clif_scriptnext_pre; +int HP_clif_scriptnext_post; +int HP_clif_scriptclose_pre; +int HP_clif_scriptclose_post; +int HP_clif_scriptmenu_pre; +int HP_clif_scriptmenu_post; +int HP_clif_scriptinput_pre; +int HP_clif_scriptinput_post; +int HP_clif_scriptinputstr_pre; +int HP_clif_scriptinputstr_post; +int HP_clif_cutin_pre; +int HP_clif_cutin_post; +int HP_clif_sendfakenpc_pre; +int HP_clif_sendfakenpc_post; +int HP_clif_scriptclear_pre; +int HP_clif_scriptclear_post; +int HP_clif_viewpoint_pre; +int HP_clif_viewpoint_post; +int HP_clif_damage_pre; +int HP_clif_damage_post; +int HP_clif_sitting_pre; +int HP_clif_sitting_post; +int HP_clif_standing_pre; +int HP_clif_standing_post; +int HP_clif_arrow_create_list_pre; +int HP_clif_arrow_create_list_post; +int HP_clif_refresh_pre; +int HP_clif_refresh_post; +int HP_clif_fame_blacksmith_pre; +int HP_clif_fame_blacksmith_post; +int HP_clif_fame_alchemist_pre; +int HP_clif_fame_alchemist_post; +int HP_clif_fame_taekwon_pre; +int HP_clif_fame_taekwon_post; +int HP_clif_ranklist_pre; +int HP_clif_ranklist_post; +int HP_clif_update_rankingpoint_pre; +int HP_clif_update_rankingpoint_post; +int HP_clif_pRanklist_pre; +int HP_clif_pRanklist_post; +int HP_clif_hotkeys_pre; +int HP_clif_hotkeys_post; +int HP_clif_insight_pre; +int HP_clif_insight_post; +int HP_clif_outsight_pre; +int HP_clif_outsight_post; +int HP_clif_skillcastcancel_pre; +int HP_clif_skillcastcancel_post; +int HP_clif_skill_fail_pre; +int HP_clif_skill_fail_post; +int HP_clif_skill_cooldown_pre; +int HP_clif_skill_cooldown_post; +int HP_clif_skill_memomessage_pre; +int HP_clif_skill_memomessage_post; +int HP_clif_skill_mapinfomessage_pre; +int HP_clif_skill_mapinfomessage_post; +int HP_clif_skill_produce_mix_list_pre; +int HP_clif_skill_produce_mix_list_post; +int HP_clif_cooking_list_pre; +int HP_clif_cooking_list_post; +int HP_clif_autospell_pre; +int HP_clif_autospell_post; +int HP_clif_combo_delay_pre; +int HP_clif_combo_delay_post; +int HP_clif_status_change_pre; +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_favorite_item_pre; +int HP_clif_favorite_item_post; +int HP_clif_clearcart_pre; +int HP_clif_clearcart_post; +int HP_clif_item_identify_list_pre; +int HP_clif_item_identify_list_post; +int HP_clif_item_identified_pre; +int HP_clif_item_identified_post; +int HP_clif_item_repair_list_pre; +int HP_clif_item_repair_list_post; +int HP_clif_item_repaireffect_pre; +int HP_clif_item_repaireffect_post; +int HP_clif_item_damaged_pre; +int HP_clif_item_damaged_post; +int HP_clif_item_refine_list_pre; +int HP_clif_item_refine_list_post; +int HP_clif_item_skill_pre; +int HP_clif_item_skill_post; +int HP_clif_mvp_item_pre; +int HP_clif_mvp_item_post; +int HP_clif_mvp_exp_pre; +int HP_clif_mvp_exp_post; +int HP_clif_mvp_noitem_pre; +int HP_clif_mvp_noitem_post; +int HP_clif_changed_dir_pre; +int HP_clif_changed_dir_post; +int HP_clif_charnameack_pre; +int HP_clif_charnameack_post; +int HP_clif_monster_hp_bar_pre; +int HP_clif_monster_hp_bar_post; +int HP_clif_hpmeter_pre; +int HP_clif_hpmeter_post; +int HP_clif_hpmeter_single_pre; +int HP_clif_hpmeter_single_post; +int HP_clif_hpmeter_sub_pre; +int HP_clif_hpmeter_sub_post; +int HP_clif_upgrademessage_pre; +int HP_clif_upgrademessage_post; +int HP_clif_get_weapon_view_pre; +int HP_clif_get_weapon_view_post; +int HP_clif_gospel_info_pre; +int HP_clif_gospel_info_post; +int HP_clif_feel_req_pre; +int HP_clif_feel_req_post; +int HP_clif_starskill_pre; +int HP_clif_starskill_post; +int HP_clif_feel_info_pre; +int HP_clif_feel_info_post; +int HP_clif_hate_info_pre; +int HP_clif_hate_info_post; +int HP_clif_mission_info_pre; +int HP_clif_mission_info_post; +int HP_clif_feel_hate_reset_pre; +int HP_clif_feel_hate_reset_post; +int HP_clif_partytickack_pre; +int HP_clif_partytickack_post; +int HP_clif_equiptickack_pre; +int HP_clif_equiptickack_post; +int HP_clif_viewequip_ack_pre; +int HP_clif_viewequip_ack_post; +int HP_clif_viewequip_fail_pre; +int HP_clif_viewequip_fail_post; +int HP_clif_equpcheckbox_pre; +int HP_clif_equpcheckbox_post; +int HP_clif_displayexp_pre; +int HP_clif_displayexp_post; +int HP_clif_font_pre; +int HP_clif_font_post; +int HP_clif_progressbar_pre; +int HP_clif_progressbar_post; +int HP_clif_progressbar_abort_pre; +int HP_clif_progressbar_abort_post; +int HP_clif_showdigit_pre; +int HP_clif_showdigit_post; +int HP_clif_elementalconverter_list_pre; +int HP_clif_elementalconverter_list_post; +int HP_clif_spellbook_list_pre; +int HP_clif_spellbook_list_post; +int HP_clif_magicdecoy_list_pre; +int HP_clif_magicdecoy_list_post; +int HP_clif_poison_list_pre; +int HP_clif_poison_list_post; +int HP_clif_autoshadowspell_list_pre; +int HP_clif_autoshadowspell_list_post; +int HP_clif_skill_itemlistwindow_pre; +int HP_clif_skill_itemlistwindow_post; +int HP_clif_sc_load_pre; +int HP_clif_sc_load_post; +int HP_clif_sc_end_pre; +int HP_clif_sc_end_post; +int HP_clif_initialstatus_pre; +int HP_clif_initialstatus_post; +int HP_clif_cooldown_list_pre; +int HP_clif_cooldown_list_post; +int HP_clif_updatestatus_pre; +int HP_clif_updatestatus_post; +int HP_clif_changestatus_pre; +int HP_clif_changestatus_post; +int HP_clif_statusupack_pre; +int HP_clif_statusupack_post; +int HP_clif_movetoattack_pre; +int HP_clif_movetoattack_post; +int HP_clif_solved_charname_pre; +int HP_clif_solved_charname_post; +int HP_clif_charnameupdate_pre; +int HP_clif_charnameupdate_post; +int HP_clif_delayquit_pre; +int HP_clif_delayquit_post; +int HP_clif_getareachar_pc_pre; +int HP_clif_getareachar_pc_post; +int HP_clif_disconnect_ack_pre; +int HP_clif_disconnect_ack_post; +int HP_clif_PVPInfo_pre; +int HP_clif_PVPInfo_post; +int HP_clif_blacksmith_pre; +int HP_clif_blacksmith_post; +int HP_clif_alchemist_pre; +int HP_clif_alchemist_post; +int HP_clif_taekwon_pre; +int HP_clif_taekwon_post; +int HP_clif_ranking_pk_pre; +int HP_clif_ranking_pk_post; +int HP_clif_quitsave_pre; +int HP_clif_quitsave_post; +int HP_clif_misceffect_pre; +int HP_clif_misceffect_post; +int HP_clif_changeoption_pre; +int HP_clif_changeoption_post; +int HP_clif_changeoption2_pre; +int HP_clif_changeoption2_post; +int HP_clif_emotion_pre; +int HP_clif_emotion_post; +int HP_clif_talkiebox_pre; +int HP_clif_talkiebox_post; +int HP_clif_wedding_effect_pre; +int HP_clif_wedding_effect_post; +int HP_clif_divorced_pre; +int HP_clif_divorced_post; +int HP_clif_callpartner_pre; +int HP_clif_callpartner_post; +int HP_clif_skill_damage_pre; +int HP_clif_skill_damage_post; +int HP_clif_skill_nodamage_pre; +int HP_clif_skill_nodamage_post; +int HP_clif_skill_poseffect_pre; +int HP_clif_skill_poseffect_post; +int HP_clif_skill_estimation_pre; +int HP_clif_skill_estimation_post; +int HP_clif_skill_warppoint_pre; +int HP_clif_skill_warppoint_post; +int HP_clif_skillcasting_pre; +int HP_clif_skillcasting_post; +int HP_clif_produce_effect_pre; +int HP_clif_produce_effect_post; +int HP_clif_devotion_pre; +int HP_clif_devotion_post; +int HP_clif_spiritball_pre; +int HP_clif_spiritball_post; +int HP_clif_spiritball_single_pre; +int HP_clif_spiritball_single_post; +int HP_clif_bladestop_pre; +int HP_clif_bladestop_post; +int HP_clif_mvp_effect_pre; +int HP_clif_mvp_effect_post; +int HP_clif_heal_pre; +int HP_clif_heal_post; +int HP_clif_resurrection_pre; +int HP_clif_resurrection_post; +int HP_clif_refine_pre; +int HP_clif_refine_post; +int HP_clif_weather_pre; +int HP_clif_weather_post; +int HP_clif_specialeffect_pre; +int HP_clif_specialeffect_post; +int HP_clif_specialeffect_single_pre; +int HP_clif_specialeffect_single_post; +int HP_clif_specialeffect_value_pre; +int HP_clif_specialeffect_value_post; +int HP_clif_millenniumshield_pre; +int HP_clif_millenniumshield_post; +int HP_clif_charm_pre; +int HP_clif_charm_post; +int HP_clif_charm_single_pre; +int HP_clif_charm_single_post; +int HP_clif_snap_pre; +int HP_clif_snap_post; +int HP_clif_weather_check_pre; +int HP_clif_weather_check_post; +int HP_clif_playBGM_pre; +int HP_clif_playBGM_post; +int HP_clif_soundeffect_pre; +int HP_clif_soundeffect_post; +int HP_clif_soundeffectall_pre; +int HP_clif_soundeffectall_post; +int HP_clif_GlobalMessage_pre; +int HP_clif_GlobalMessage_post; +int HP_clif_createchat_pre; +int HP_clif_createchat_post; +int HP_clif_dispchat_pre; +int HP_clif_dispchat_post; +int HP_clif_joinchatfail_pre; +int HP_clif_joinchatfail_post; +int HP_clif_joinchatok_pre; +int HP_clif_joinchatok_post; +int HP_clif_addchat_pre; +int HP_clif_addchat_post; +int HP_clif_changechatowner_pre; +int HP_clif_changechatowner_post; +int HP_clif_clearchat_pre; +int HP_clif_clearchat_post; +int HP_clif_leavechat_pre; +int HP_clif_leavechat_post; +int HP_clif_changechatstatus_pre; +int HP_clif_changechatstatus_post; +int HP_clif_wis_message_pre; +int HP_clif_wis_message_post; +int HP_clif_wis_end_pre; +int HP_clif_wis_end_post; +int HP_clif_disp_onlyself_pre; +int HP_clif_disp_onlyself_post; +int HP_clif_disp_message_pre; +int HP_clif_disp_message_post; +int HP_clif_broadcast_pre; +int HP_clif_broadcast_post; +int HP_clif_broadcast2_pre; +int HP_clif_broadcast2_post; +int HP_clif_messagecolor_pre; +int HP_clif_messagecolor_post; +int HP_clif_disp_overhead_pre; +int HP_clif_disp_overhead_post; +int HP_clif_msg_pre; +int HP_clif_msg_post; +int HP_clif_msg_value_pre; +int HP_clif_msg_value_post; +int HP_clif_msg_skill_pre; +int HP_clif_msg_skill_post; +int HP_clif_msgtable_pre; +int HP_clif_msgtable_post; +int HP_clif_msgtable_num_pre; +int HP_clif_msgtable_num_post; +int HP_clif_message_pre; +int HP_clif_message_post; +int HP_clif_messageln_pre; +int HP_clif_messageln_post; +int HP_clif_colormes_pre; +int HP_clif_colormes_post; +int HP_clif_process_message_pre; +int HP_clif_process_message_post; +int HP_clif_wisexin_pre; +int HP_clif_wisexin_post; +int HP_clif_wisall_pre; +int HP_clif_wisall_post; +int HP_clif_PMIgnoreList_pre; +int HP_clif_PMIgnoreList_post; +int HP_clif_traderequest_pre; +int HP_clif_traderequest_post; +int HP_clif_tradestart_pre; +int HP_clif_tradestart_post; +int HP_clif_tradeadditem_pre; +int HP_clif_tradeadditem_post; +int HP_clif_tradeitemok_pre; +int HP_clif_tradeitemok_post; +int HP_clif_tradedeal_lock_pre; +int HP_clif_tradedeal_lock_post; +int HP_clif_tradecancelled_pre; +int HP_clif_tradecancelled_post; +int HP_clif_tradecompleted_pre; +int HP_clif_tradecompleted_post; +int HP_clif_tradeundo_pre; +int HP_clif_tradeundo_post; +int HP_clif_openvendingreq_pre; +int HP_clif_openvendingreq_post; +int HP_clif_showvendingboard_pre; +int HP_clif_showvendingboard_post; +int HP_clif_closevendingboard_pre; +int HP_clif_closevendingboard_post; +int HP_clif_vendinglist_pre; +int HP_clif_vendinglist_post; +int HP_clif_buyvending_pre; +int HP_clif_buyvending_post; +int HP_clif_openvending_pre; +int HP_clif_openvending_post; +int HP_clif_vendingreport_pre; +int HP_clif_vendingreport_post; +int HP_clif_storagelist_pre; +int HP_clif_storagelist_post; +int HP_clif_updatestorageamount_pre; +int HP_clif_updatestorageamount_post; +int HP_clif_storageitemadded_pre; +int HP_clif_storageitemadded_post; +int HP_clif_storageitemremoved_pre; +int HP_clif_storageitemremoved_post; +int HP_clif_storageclose_pre; +int HP_clif_storageclose_post; +int HP_clif_skillinfoblock_pre; +int HP_clif_skillinfoblock_post; +int HP_clif_skillup_pre; +int HP_clif_skillup_post; +int HP_clif_skillinfo_pre; +int HP_clif_skillinfo_post; +int HP_clif_addskill_pre; +int HP_clif_addskill_post; +int HP_clif_deleteskill_pre; +int HP_clif_deleteskill_post; +int HP_clif_party_created_pre; +int HP_clif_party_created_post; +int HP_clif_party_member_info_pre; +int HP_clif_party_member_info_post; +int HP_clif_party_info_pre; +int HP_clif_party_info_post; +int HP_clif_party_invite_pre; +int HP_clif_party_invite_post; +int HP_clif_party_inviteack_pre; +int HP_clif_party_inviteack_post; +int HP_clif_party_option_pre; +int HP_clif_party_option_post; +int HP_clif_party_withdraw_pre; +int HP_clif_party_withdraw_post; +int HP_clif_party_message_pre; +int HP_clif_party_message_post; +int HP_clif_party_xy_pre; +int HP_clif_party_xy_post; +int HP_clif_party_xy_single_pre; +int HP_clif_party_xy_single_post; +int HP_clif_party_hp_pre; +int HP_clif_party_hp_post; +int HP_clif_party_xy_remove_pre; +int HP_clif_party_xy_remove_post; +int HP_clif_party_show_picker_pre; +int HP_clif_party_show_picker_post; +int HP_clif_partyinvitationstate_pre; +int HP_clif_partyinvitationstate_post; +int HP_clif_guild_created_pre; +int HP_clif_guild_created_post; +int HP_clif_guild_belonginfo_pre; +int HP_clif_guild_belonginfo_post; +int HP_clif_guild_masterormember_pre; +int HP_clif_guild_masterormember_post; +int HP_clif_guild_basicinfo_pre; +int HP_clif_guild_basicinfo_post; +int HP_clif_guild_allianceinfo_pre; +int HP_clif_guild_allianceinfo_post; +int HP_clif_guild_memberlist_pre; +int HP_clif_guild_memberlist_post; +int HP_clif_guild_skillinfo_pre; +int HP_clif_guild_skillinfo_post; +int HP_clif_guild_send_onlineinfo_pre; +int HP_clif_guild_send_onlineinfo_post; +int HP_clif_guild_memberlogin_notice_pre; +int HP_clif_guild_memberlogin_notice_post; +int HP_clif_guild_invite_pre; +int HP_clif_guild_invite_post; +int HP_clif_guild_inviteack_pre; +int HP_clif_guild_inviteack_post; +int HP_clif_guild_leave_pre; +int HP_clif_guild_leave_post; +int HP_clif_guild_expulsion_pre; +int HP_clif_guild_expulsion_post; +int HP_clif_guild_positionchanged_pre; +int HP_clif_guild_positionchanged_post; +int HP_clif_guild_memberpositionchanged_pre; +int HP_clif_guild_memberpositionchanged_post; +int HP_clif_guild_emblem_pre; +int HP_clif_guild_emblem_post; +int HP_clif_guild_emblem_area_pre; +int HP_clif_guild_emblem_area_post; +int HP_clif_guild_notice_pre; +int HP_clif_guild_notice_post; +int HP_clif_guild_message_pre; +int HP_clif_guild_message_post; +int HP_clif_guild_skillup_pre; +int HP_clif_guild_skillup_post; +int HP_clif_guild_reqalliance_pre; +int HP_clif_guild_reqalliance_post; +int HP_clif_guild_allianceack_pre; +int HP_clif_guild_allianceack_post; +int HP_clif_guild_delalliance_pre; +int HP_clif_guild_delalliance_post; +int HP_clif_guild_oppositionack_pre; +int HP_clif_guild_oppositionack_post; +int HP_clif_guild_broken_pre; +int HP_clif_guild_broken_post; +int HP_clif_guild_xy_pre; +int HP_clif_guild_xy_post; +int HP_clif_guild_xy_single_pre; +int HP_clif_guild_xy_single_post; +int HP_clif_guild_xy_remove_pre; +int HP_clif_guild_xy_remove_post; +int HP_clif_guild_positionnamelist_pre; +int HP_clif_guild_positionnamelist_post; +int HP_clif_guild_positioninfolist_pre; +int HP_clif_guild_positioninfolist_post; +int HP_clif_guild_expulsionlist_pre; +int HP_clif_guild_expulsionlist_post; +int HP_clif_validate_emblem_pre; +int HP_clif_validate_emblem_post; +int HP_clif_bg_hp_pre; +int HP_clif_bg_hp_post; +int HP_clif_bg_xy_pre; +int HP_clif_bg_xy_post; +int HP_clif_bg_xy_remove_pre; +int HP_clif_bg_xy_remove_post; +int HP_clif_bg_message_pre; +int HP_clif_bg_message_post; +int HP_clif_bg_updatescore_pre; +int HP_clif_bg_updatescore_post; +int HP_clif_bg_updatescore_single_pre; +int HP_clif_bg_updatescore_single_post; +int HP_clif_sendbgemblem_area_pre; +int HP_clif_sendbgemblem_area_post; +int HP_clif_sendbgemblem_single_pre; +int HP_clif_sendbgemblem_single_post; +int HP_clif_instance_pre; +int HP_clif_instance_post; +int HP_clif_instance_join_pre; +int HP_clif_instance_join_post; +int HP_clif_instance_leave_pre; +int HP_clif_instance_leave_post; +int HP_clif_catch_process_pre; +int HP_clif_catch_process_post; +int HP_clif_pet_roulette_pre; +int HP_clif_pet_roulette_post; +int HP_clif_sendegg_pre; +int HP_clif_sendegg_post; +int HP_clif_send_petstatus_pre; +int HP_clif_send_petstatus_post; +int HP_clif_send_petdata_pre; +int HP_clif_send_petdata_post; +int HP_clif_pet_emotion_pre; +int HP_clif_pet_emotion_post; +int HP_clif_pet_food_pre; +int HP_clif_pet_food_post; +int HP_clif_friendslist_toggle_sub_pre; +int HP_clif_friendslist_toggle_sub_post; +int HP_clif_friendslist_send_pre; +int HP_clif_friendslist_send_post; +int HP_clif_friendslist_reqack_pre; +int HP_clif_friendslist_reqack_post; +int HP_clif_friendslist_toggle_pre; +int HP_clif_friendslist_toggle_post; +int HP_clif_friendlist_req_pre; +int HP_clif_friendlist_req_post; +int HP_clif_GM_kickack_pre; +int HP_clif_GM_kickack_post; +int HP_clif_GM_kick_pre; +int HP_clif_GM_kick_post; +int HP_clif_manner_message_pre; +int HP_clif_manner_message_post; +int HP_clif_GM_silence_pre; +int HP_clif_GM_silence_post; +int HP_clif_account_name_pre; +int HP_clif_account_name_post; +int HP_clif_check_pre; +int HP_clif_check_post; +int HP_clif_hominfo_pre; +int HP_clif_hominfo_post; +int HP_clif_homskillinfoblock_pre; +int HP_clif_homskillinfoblock_post; +int HP_clif_homskillup_pre; +int HP_clif_homskillup_post; +int HP_clif_hom_food_pre; +int HP_clif_hom_food_post; +int HP_clif_send_homdata_pre; +int HP_clif_send_homdata_post; +int HP_clif_quest_send_list_pre; +int HP_clif_quest_send_list_post; +int HP_clif_quest_send_mission_pre; +int HP_clif_quest_send_mission_post; +int HP_clif_quest_add_pre; +int HP_clif_quest_add_post; +int HP_clif_quest_delete_pre; +int HP_clif_quest_delete_post; +int HP_clif_quest_update_status_pre; +int HP_clif_quest_update_status_post; +int HP_clif_quest_update_objective_pre; +int HP_clif_quest_update_objective_post; +int HP_clif_quest_show_event_pre; +int HP_clif_quest_show_event_post; +int HP_clif_mail_window_pre; +int HP_clif_mail_window_post; +int HP_clif_mail_read_pre; +int HP_clif_mail_read_post; +int HP_clif_mail_delete_pre; +int HP_clif_mail_delete_post; +int HP_clif_mail_return_pre; +int HP_clif_mail_return_post; +int HP_clif_mail_send_pre; +int HP_clif_mail_send_post; +int HP_clif_mail_new_pre; +int HP_clif_mail_new_post; +int HP_clif_mail_refreshinbox_pre; +int HP_clif_mail_refreshinbox_post; +int HP_clif_mail_getattachment_pre; +int HP_clif_mail_getattachment_post; +int HP_clif_mail_setattachment_pre; +int HP_clif_mail_setattachment_post; +int HP_clif_auction_openwindow_pre; +int HP_clif_auction_openwindow_post; +int HP_clif_auction_results_pre; +int HP_clif_auction_results_post; +int HP_clif_auction_message_pre; +int HP_clif_auction_message_post; +int HP_clif_auction_close_pre; +int HP_clif_auction_close_post; +int HP_clif_auction_setitem_pre; +int HP_clif_auction_setitem_post; +int HP_clif_mercenary_info_pre; +int HP_clif_mercenary_info_post; +int HP_clif_mercenary_skillblock_pre; +int HP_clif_mercenary_skillblock_post; +int HP_clif_mercenary_message_pre; +int HP_clif_mercenary_message_post; +int HP_clif_mercenary_updatestatus_pre; +int HP_clif_mercenary_updatestatus_post; +int HP_clif_rental_time_pre; +int HP_clif_rental_time_post; +int HP_clif_rental_expired_pre; +int HP_clif_rental_expired_post; +int HP_clif_PartyBookingRegisterAck_pre; +int HP_clif_PartyBookingRegisterAck_post; +int HP_clif_PartyBookingDeleteAck_pre; +int HP_clif_PartyBookingDeleteAck_post; +int HP_clif_PartyBookingSearchAck_pre; +int HP_clif_PartyBookingSearchAck_post; +int HP_clif_PartyBookingUpdateNotify_pre; +int HP_clif_PartyBookingUpdateNotify_post; +int HP_clif_PartyBookingDeleteNotify_pre; +int HP_clif_PartyBookingDeleteNotify_post; +int HP_clif_PartyBookingInsertNotify_pre; +int HP_clif_PartyBookingInsertNotify_post; +int HP_clif_PartyRecruitRegisterAck_pre; +int HP_clif_PartyRecruitRegisterAck_post; +int HP_clif_PartyRecruitDeleteAck_pre; +int HP_clif_PartyRecruitDeleteAck_post; +int HP_clif_PartyRecruitSearchAck_pre; +int HP_clif_PartyRecruitSearchAck_post; +int HP_clif_PartyRecruitUpdateNotify_pre; +int HP_clif_PartyRecruitUpdateNotify_post; +int HP_clif_PartyRecruitDeleteNotify_pre; +int HP_clif_PartyRecruitDeleteNotify_post; +int HP_clif_PartyRecruitInsertNotify_pre; +int HP_clif_PartyRecruitInsertNotify_post; +int HP_clif_PartyBookingVolunteerInfo_pre; +int HP_clif_PartyBookingVolunteerInfo_post; +int HP_clif_PartyBookingRefuseVolunteer_pre; +int HP_clif_PartyBookingRefuseVolunteer_post; +int HP_clif_PartyBookingCancelVolunteer_pre; +int HP_clif_PartyBookingCancelVolunteer_post; +int HP_clif_PartyBookingAddFilteringList_pre; +int HP_clif_PartyBookingAddFilteringList_post; +int HP_clif_PartyBookingSubFilteringList_pre; +int HP_clif_PartyBookingSubFilteringList_post; +int HP_clif_buyingstore_open_pre; +int HP_clif_buyingstore_open_post; +int HP_clif_buyingstore_open_failed_pre; +int HP_clif_buyingstore_open_failed_post; +int HP_clif_buyingstore_myitemlist_pre; +int HP_clif_buyingstore_myitemlist_post; +int HP_clif_buyingstore_entry_pre; +int HP_clif_buyingstore_entry_post; +int HP_clif_buyingstore_entry_single_pre; +int HP_clif_buyingstore_entry_single_post; +int HP_clif_buyingstore_disappear_entry_pre; +int HP_clif_buyingstore_disappear_entry_post; +int HP_clif_buyingstore_disappear_entry_single_pre; +int HP_clif_buyingstore_disappear_entry_single_post; +int HP_clif_buyingstore_itemlist_pre; +int HP_clif_buyingstore_itemlist_post; +int HP_clif_buyingstore_trade_failed_buyer_pre; +int HP_clif_buyingstore_trade_failed_buyer_post; +int HP_clif_buyingstore_update_item_pre; +int HP_clif_buyingstore_update_item_post; +int HP_clif_buyingstore_delete_item_pre; +int HP_clif_buyingstore_delete_item_post; +int HP_clif_buyingstore_trade_failed_seller_pre; +int HP_clif_buyingstore_trade_failed_seller_post; +int HP_clif_search_store_info_ack_pre; +int HP_clif_search_store_info_ack_post; +int HP_clif_search_store_info_failed_pre; +int HP_clif_search_store_info_failed_post; +int HP_clif_open_search_store_info_pre; +int HP_clif_open_search_store_info_post; +int HP_clif_search_store_info_click_ack_pre; +int HP_clif_search_store_info_click_ack_post; +int HP_clif_elemental_info_pre; +int HP_clif_elemental_info_post; +int HP_clif_elemental_updatestatus_pre; +int HP_clif_elemental_updatestatus_post; +int HP_clif_bgqueue_ack_pre; +int HP_clif_bgqueue_ack_post; +int HP_clif_bgqueue_notice_delete_pre; +int HP_clif_bgqueue_notice_delete_post; +int HP_clif_bgqueue_update_info_pre; +int HP_clif_bgqueue_update_info_post; +int HP_clif_bgqueue_joined_pre; +int HP_clif_bgqueue_joined_post; +int HP_clif_bgqueue_pcleft_pre; +int HP_clif_bgqueue_pcleft_post; +int HP_clif_bgqueue_battlebegins_pre; +int HP_clif_bgqueue_battlebegins_post; +int HP_clif_adopt_reply_pre; +int HP_clif_adopt_reply_post; +int HP_clif_adopt_request_pre; +int HP_clif_adopt_request_post; +int HP_clif_readbook_pre; +int HP_clif_readbook_post; +int HP_clif_notify_time_pre; +int HP_clif_notify_time_post; +int HP_clif_user_count_pre; +int HP_clif_user_count_post; +int HP_clif_noask_sub_pre; +int HP_clif_noask_sub_post; +int HP_clif_bc_ready_pre; +int HP_clif_bc_ready_post; +int HP_clif_undisguise_timer_pre; +int HP_clif_undisguise_timer_post; +int HP_clif_chsys_create_pre; +int HP_clif_chsys_create_post; +int HP_clif_chsys_msg_pre; +int HP_clif_chsys_msg_post; +int HP_clif_chsys_msg2_pre; +int HP_clif_chsys_msg2_post; +int HP_clif_chsys_send_pre; +int HP_clif_chsys_send_post; +int HP_clif_chsys_join_pre; +int HP_clif_chsys_join_post; +int HP_clif_chsys_left_pre; +int HP_clif_chsys_left_post; +int HP_clif_chsys_delete_pre; +int HP_clif_chsys_delete_post; +int HP_clif_chsys_mjoin_pre; +int HP_clif_chsys_mjoin_post; +int HP_clif_chsys_quit_pre; +int HP_clif_chsys_quit_post; +int HP_clif_chsys_quitg_pre; +int HP_clif_chsys_quitg_post; +int HP_clif_chsys_gjoin_pre; +int HP_clif_chsys_gjoin_post; +int HP_clif_chsys_gleave_pre; +int HP_clif_chsys_gleave_post; +int HP_clif_pWantToConnection_pre; +int HP_clif_pWantToConnection_post; +int HP_clif_pLoadEndAck_pre; +int HP_clif_pLoadEndAck_post; +int HP_clif_pTickSend_pre; +int HP_clif_pTickSend_post; +int HP_clif_pHotkey_pre; +int HP_clif_pHotkey_post; +int HP_clif_pProgressbar_pre; +int HP_clif_pProgressbar_post; +int HP_clif_pWalkToXY_pre; +int HP_clif_pWalkToXY_post; +int HP_clif_pQuitGame_pre; +int HP_clif_pQuitGame_post; +int HP_clif_pGetCharNameRequest_pre; +int HP_clif_pGetCharNameRequest_post; +int HP_clif_pGlobalMessage_pre; +int HP_clif_pGlobalMessage_post; +int HP_clif_pMapMove_pre; +int HP_clif_pMapMove_post; +int HP_clif_pChangeDir_pre; +int HP_clif_pChangeDir_post; +int HP_clif_pEmotion_pre; +int HP_clif_pEmotion_post; +int HP_clif_pHowManyConnections_pre; +int HP_clif_pHowManyConnections_post; +int HP_clif_pActionRequest_pre; +int HP_clif_pActionRequest_post; +int HP_clif_pActionRequest_sub_pre; +int HP_clif_pActionRequest_sub_post; +int HP_clif_pRestart_pre; +int HP_clif_pRestart_post; +int HP_clif_pWisMessage_pre; +int HP_clif_pWisMessage_post; +int HP_clif_pBroadcast_pre; +int HP_clif_pBroadcast_post; +int HP_clif_pTakeItem_pre; +int HP_clif_pTakeItem_post; +int HP_clif_pDropItem_pre; +int HP_clif_pDropItem_post; +int HP_clif_pUseItem_pre; +int HP_clif_pUseItem_post; +int HP_clif_pEquipItem_pre; +int HP_clif_pEquipItem_post; +int HP_clif_pUnequipItem_pre; +int HP_clif_pUnequipItem_post; +int HP_clif_pNpcClicked_pre; +int HP_clif_pNpcClicked_post; +int HP_clif_pNpcBuySellSelected_pre; +int HP_clif_pNpcBuySellSelected_post; +int HP_clif_pNpcBuyListSend_pre; +int HP_clif_pNpcBuyListSend_post; +int HP_clif_pNpcSellListSend_pre; +int HP_clif_pNpcSellListSend_post; +int HP_clif_pCreateChatRoom_pre; +int HP_clif_pCreateChatRoom_post; +int HP_clif_pChatAddMember_pre; +int HP_clif_pChatAddMember_post; +int HP_clif_pChatRoomStatusChange_pre; +int HP_clif_pChatRoomStatusChange_post; +int HP_clif_pChangeChatOwner_pre; +int HP_clif_pChangeChatOwner_post; +int HP_clif_pKickFromChat_pre; +int HP_clif_pKickFromChat_post; +int HP_clif_pChatLeave_pre; +int HP_clif_pChatLeave_post; +int HP_clif_pTradeRequest_pre; +int HP_clif_pTradeRequest_post; +int HP_clif_chann_config_read_pre; +int HP_clif_chann_config_read_post; +int HP_clif_pTradeAck_pre; +int HP_clif_pTradeAck_post; +int HP_clif_pTradeAddItem_pre; +int HP_clif_pTradeAddItem_post; +int HP_clif_pTradeOk_pre; +int HP_clif_pTradeOk_post; +int HP_clif_pTradeCancel_pre; +int HP_clif_pTradeCancel_post; +int HP_clif_pTradeCommit_pre; +int HP_clif_pTradeCommit_post; +int HP_clif_pStopAttack_pre; +int HP_clif_pStopAttack_post; +int HP_clif_pPutItemToCart_pre; +int HP_clif_pPutItemToCart_post; +int HP_clif_pGetItemFromCart_pre; +int HP_clif_pGetItemFromCart_post; +int HP_clif_pRemoveOption_pre; +int HP_clif_pRemoveOption_post; +int HP_clif_pChangeCart_pre; +int HP_clif_pChangeCart_post; +int HP_clif_pStatusUp_pre; +int HP_clif_pStatusUp_post; +int HP_clif_pSkillUp_pre; +int HP_clif_pSkillUp_post; +int HP_clif_pUseSkillToId_pre; +int HP_clif_pUseSkillToId_post; +int HP_clif_pUseSkillToId_homun_pre; +int HP_clif_pUseSkillToId_homun_post; +int HP_clif_pUseSkillToId_mercenary_pre; +int HP_clif_pUseSkillToId_mercenary_post; +int HP_clif_pUseSkillToPos_pre; +int HP_clif_pUseSkillToPos_post; +int HP_clif_pUseSkillToPosSub_pre; +int HP_clif_pUseSkillToPosSub_post; +int HP_clif_pUseSkillToPos_homun_pre; +int HP_clif_pUseSkillToPos_homun_post; +int HP_clif_pUseSkillToPos_mercenary_pre; +int HP_clif_pUseSkillToPos_mercenary_post; +int HP_clif_pUseSkillToPosMoreInfo_pre; +int HP_clif_pUseSkillToPosMoreInfo_post; +int HP_clif_pUseSkillMap_pre; +int HP_clif_pUseSkillMap_post; +int HP_clif_pRequestMemo_pre; +int HP_clif_pRequestMemo_post; +int HP_clif_pProduceMix_pre; +int HP_clif_pProduceMix_post; +int HP_clif_pCooking_pre; +int HP_clif_pCooking_post; +int HP_clif_pRepairItem_pre; +int HP_clif_pRepairItem_post; +int HP_clif_pWeaponRefine_pre; +int HP_clif_pWeaponRefine_post; +int HP_clif_pNpcSelectMenu_pre; +int HP_clif_pNpcSelectMenu_post; +int HP_clif_pNpcNextClicked_pre; +int HP_clif_pNpcNextClicked_post; +int HP_clif_pNpcAmountInput_pre; +int HP_clif_pNpcAmountInput_post; +int HP_clif_pNpcStringInput_pre; +int HP_clif_pNpcStringInput_post; +int HP_clif_pNpcCloseClicked_pre; +int HP_clif_pNpcCloseClicked_post; +int HP_clif_pItemIdentify_pre; +int HP_clif_pItemIdentify_post; +int HP_clif_pSelectArrow_pre; +int HP_clif_pSelectArrow_post; +int HP_clif_pAutoSpell_pre; +int HP_clif_pAutoSpell_post; +int HP_clif_pUseCard_pre; +int HP_clif_pUseCard_post; +int HP_clif_pInsertCard_pre; +int HP_clif_pInsertCard_post; +int HP_clif_pSolveCharName_pre; +int HP_clif_pSolveCharName_post; +int HP_clif_pResetChar_pre; +int HP_clif_pResetChar_post; +int HP_clif_pLocalBroadcast_pre; +int HP_clif_pLocalBroadcast_post; +int HP_clif_pMoveToKafra_pre; +int HP_clif_pMoveToKafra_post; +int HP_clif_pMoveFromKafra_pre; +int HP_clif_pMoveFromKafra_post; +int HP_clif_pMoveToKafraFromCart_pre; +int HP_clif_pMoveToKafraFromCart_post; +int HP_clif_pMoveFromKafraToCart_pre; +int HP_clif_pMoveFromKafraToCart_post; +int HP_clif_pCloseKafra_pre; +int HP_clif_pCloseKafra_post; +int HP_clif_pStoragePassword_pre; +int HP_clif_pStoragePassword_post; +int HP_clif_pCreateParty_pre; +int HP_clif_pCreateParty_post; +int HP_clif_pCreateParty2_pre; +int HP_clif_pCreateParty2_post; +int HP_clif_pPartyInvite_pre; +int HP_clif_pPartyInvite_post; +int HP_clif_pPartyInvite2_pre; +int HP_clif_pPartyInvite2_post; +int HP_clif_pReplyPartyInvite_pre; +int HP_clif_pReplyPartyInvite_post; +int HP_clif_pReplyPartyInvite2_pre; +int HP_clif_pReplyPartyInvite2_post; +int HP_clif_pLeaveParty_pre; +int HP_clif_pLeaveParty_post; +int HP_clif_pRemovePartyMember_pre; +int HP_clif_pRemovePartyMember_post; +int HP_clif_pPartyChangeOption_pre; +int HP_clif_pPartyChangeOption_post; +int HP_clif_pPartyMessage_pre; +int HP_clif_pPartyMessage_post; +int HP_clif_pPartyChangeLeader_pre; +int HP_clif_pPartyChangeLeader_post; +int HP_clif_pPartyBookingRegisterReq_pre; +int HP_clif_pPartyBookingRegisterReq_post; +int HP_clif_pPartyBookingSearchReq_pre; +int HP_clif_pPartyBookingSearchReq_post; +int HP_clif_pPartyBookingDeleteReq_pre; +int HP_clif_pPartyBookingDeleteReq_post; +int HP_clif_pPartyBookingUpdateReq_pre; +int HP_clif_pPartyBookingUpdateReq_post; +int HP_clif_pPartyRecruitRegisterReq_pre; +int HP_clif_pPartyRecruitRegisterReq_post; +int HP_clif_pPartyRecruitSearchReq_pre; +int HP_clif_pPartyRecruitSearchReq_post; +int HP_clif_pPartyRecruitDeleteReq_pre; +int HP_clif_pPartyRecruitDeleteReq_post; +int HP_clif_pPartyRecruitUpdateReq_pre; +int HP_clif_pPartyRecruitUpdateReq_post; +int HP_clif_pCloseVending_pre; +int HP_clif_pCloseVending_post; +int HP_clif_pVendingListReq_pre; +int HP_clif_pVendingListReq_post; +int HP_clif_pPurchaseReq_pre; +int HP_clif_pPurchaseReq_post; +int HP_clif_pPurchaseReq2_pre; +int HP_clif_pPurchaseReq2_post; +int HP_clif_pOpenVending_pre; +int HP_clif_pOpenVending_post; +int HP_clif_pCreateGuild_pre; +int HP_clif_pCreateGuild_post; +int HP_clif_pGuildCheckMaster_pre; +int HP_clif_pGuildCheckMaster_post; +int HP_clif_pGuildRequestInfo_pre; +int HP_clif_pGuildRequestInfo_post; +int HP_clif_pGuildChangePositionInfo_pre; +int HP_clif_pGuildChangePositionInfo_post; +int HP_clif_pGuildChangeMemberPosition_pre; +int HP_clif_pGuildChangeMemberPosition_post; +int HP_clif_pGuildRequestEmblem_pre; +int HP_clif_pGuildRequestEmblem_post; +int HP_clif_pGuildChangeEmblem_pre; +int HP_clif_pGuildChangeEmblem_post; +int HP_clif_pGuildChangeNotice_pre; +int HP_clif_pGuildChangeNotice_post; +int HP_clif_pGuildInvite_pre; +int HP_clif_pGuildInvite_post; +int HP_clif_pGuildReplyInvite_pre; +int HP_clif_pGuildReplyInvite_post; +int HP_clif_pGuildLeave_pre; +int HP_clif_pGuildLeave_post; +int HP_clif_pGuildExpulsion_pre; +int HP_clif_pGuildExpulsion_post; +int HP_clif_pGuildMessage_pre; +int HP_clif_pGuildMessage_post; +int HP_clif_pGuildRequestAlliance_pre; +int HP_clif_pGuildRequestAlliance_post; +int HP_clif_pGuildReplyAlliance_pre; +int HP_clif_pGuildReplyAlliance_post; +int HP_clif_pGuildDelAlliance_pre; +int HP_clif_pGuildDelAlliance_post; +int HP_clif_pGuildOpposition_pre; +int HP_clif_pGuildOpposition_post; +int HP_clif_pGuildBreak_pre; +int HP_clif_pGuildBreak_post; +int HP_clif_pPetMenu_pre; +int HP_clif_pPetMenu_post; +int HP_clif_pCatchPet_pre; +int HP_clif_pCatchPet_post; +int HP_clif_pSelectEgg_pre; +int HP_clif_pSelectEgg_post; +int HP_clif_pSendEmotion_pre; +int HP_clif_pSendEmotion_post; +int HP_clif_pChangePetName_pre; +int HP_clif_pChangePetName_post; +int HP_clif_pGMKick_pre; +int HP_clif_pGMKick_post; +int HP_clif_pGMKickAll_pre; +int HP_clif_pGMKickAll_post; +int HP_clif_pGMShift_pre; +int HP_clif_pGMShift_post; +int HP_clif_pGMRemove2_pre; +int HP_clif_pGMRemove2_post; +int HP_clif_pGMRecall_pre; +int HP_clif_pGMRecall_post; +int HP_clif_pGMRecall2_pre; +int HP_clif_pGMRecall2_post; +int HP_clif_pGM_Monster_Item_pre; +int HP_clif_pGM_Monster_Item_post; +int HP_clif_pGMHide_pre; +int HP_clif_pGMHide_post; +int HP_clif_pGMReqNoChat_pre; +int HP_clif_pGMReqNoChat_post; +int HP_clif_pGMRc_pre; +int HP_clif_pGMRc_post; +int HP_clif_pGMReqAccountName_pre; +int HP_clif_pGMReqAccountName_post; +int HP_clif_pGMChangeMapType_pre; +int HP_clif_pGMChangeMapType_post; +int HP_clif_pPMIgnore_pre; +int HP_clif_pPMIgnore_post; +int HP_clif_pPMIgnoreAll_pre; +int HP_clif_pPMIgnoreAll_post; +int HP_clif_pPMIgnoreList_pre; +int HP_clif_pPMIgnoreList_post; +int HP_clif_pNoviceDoriDori_pre; +int HP_clif_pNoviceDoriDori_post; +int HP_clif_pNoviceExplosionSpirits_pre; +int HP_clif_pNoviceExplosionSpirits_post; +int HP_clif_pFriendsListAdd_pre; +int HP_clif_pFriendsListAdd_post; +int HP_clif_pFriendsListReply_pre; +int HP_clif_pFriendsListReply_post; +int HP_clif_pFriendsListRemove_pre; +int HP_clif_pFriendsListRemove_post; +int HP_clif_pPVPInfo_pre; +int HP_clif_pPVPInfo_post; +int HP_clif_pBlacksmith_pre; +int HP_clif_pBlacksmith_post; +int HP_clif_pAlchemist_pre; +int HP_clif_pAlchemist_post; +int HP_clif_pTaekwon_pre; +int HP_clif_pTaekwon_post; +int HP_clif_pRankingPk_pre; +int HP_clif_pRankingPk_post; +int HP_clif_pFeelSaveOk_pre; +int HP_clif_pFeelSaveOk_post; +int HP_clif_pChangeHomunculusName_pre; +int HP_clif_pChangeHomunculusName_post; +int HP_clif_pHomMoveToMaster_pre; +int HP_clif_pHomMoveToMaster_post; +int HP_clif_pHomMoveTo_pre; +int HP_clif_pHomMoveTo_post; +int HP_clif_pHomAttack_pre; +int HP_clif_pHomAttack_post; +int HP_clif_pHomMenu_pre; +int HP_clif_pHomMenu_post; +int HP_clif_pAutoRevive_pre; +int HP_clif_pAutoRevive_post; +int HP_clif_pCheck_pre; +int HP_clif_pCheck_post; +int HP_clif_pMail_refreshinbox_pre; +int HP_clif_pMail_refreshinbox_post; +int HP_clif_pMail_read_pre; +int HP_clif_pMail_read_post; +int HP_clif_pMail_getattach_pre; +int HP_clif_pMail_getattach_post; +int HP_clif_pMail_delete_pre; +int HP_clif_pMail_delete_post; +int HP_clif_pMail_return_pre; +int HP_clif_pMail_return_post; +int HP_clif_pMail_setattach_pre; +int HP_clif_pMail_setattach_post; +int HP_clif_pMail_winopen_pre; +int HP_clif_pMail_winopen_post; +int HP_clif_pMail_send_pre; +int HP_clif_pMail_send_post; +int HP_clif_pAuction_cancelreg_pre; +int HP_clif_pAuction_cancelreg_post; +int HP_clif_pAuction_setitem_pre; +int HP_clif_pAuction_setitem_post; +int HP_clif_pAuction_register_pre; +int HP_clif_pAuction_register_post; +int HP_clif_pAuction_cancel_pre; +int HP_clif_pAuction_cancel_post; +int HP_clif_pAuction_close_pre; +int HP_clif_pAuction_close_post; +int HP_clif_pAuction_bid_pre; +int HP_clif_pAuction_bid_post; +int HP_clif_pAuction_search_pre; +int HP_clif_pAuction_search_post; +int HP_clif_pAuction_buysell_pre; +int HP_clif_pAuction_buysell_post; +int HP_clif_pcashshop_buy_pre; +int HP_clif_pcashshop_buy_post; +int HP_clif_pAdopt_request_pre; +int HP_clif_pAdopt_request_post; +int HP_clif_pAdopt_reply_pre; +int HP_clif_pAdopt_reply_post; +int HP_clif_pViewPlayerEquip_pre; +int HP_clif_pViewPlayerEquip_post; +int HP_clif_pEquipTick_pre; +int HP_clif_pEquipTick_post; +int HP_clif_pquestStateAck_pre; +int HP_clif_pquestStateAck_post; +int HP_clif_pmercenary_action_pre; +int HP_clif_pmercenary_action_post; +int HP_clif_pBattleChat_pre; +int HP_clif_pBattleChat_post; +int HP_clif_pLessEffect_pre; +int HP_clif_pLessEffect_post; +int HP_clif_pItemListWindowSelected_pre; +int HP_clif_pItemListWindowSelected_post; +int HP_clif_pReqOpenBuyingStore_pre; +int HP_clif_pReqOpenBuyingStore_post; +int HP_clif_pReqCloseBuyingStore_pre; +int HP_clif_pReqCloseBuyingStore_post; +int HP_clif_pReqClickBuyingStore_pre; +int HP_clif_pReqClickBuyingStore_post; +int HP_clif_pReqTradeBuyingStore_pre; +int HP_clif_pReqTradeBuyingStore_post; +int HP_clif_pSearchStoreInfo_pre; +int HP_clif_pSearchStoreInfo_post; +int HP_clif_pSearchStoreInfoNextPage_pre; +int HP_clif_pSearchStoreInfoNextPage_post; +int HP_clif_pCloseSearchStoreInfo_pre; +int HP_clif_pCloseSearchStoreInfo_post; +int HP_clif_pSearchStoreInfoListItemClick_pre; +int HP_clif_pSearchStoreInfoListItemClick_post; +int HP_clif_pDebug_pre; +int HP_clif_pDebug_post; +int HP_clif_pSkillSelectMenu_pre; +int HP_clif_pSkillSelectMenu_post; +int HP_clif_pMoveItem_pre; +int HP_clif_pMoveItem_post; +int HP_clif_pDull_pre; +int HP_clif_pDull_post; +int HP_clif_pBGQueueRegister_pre; +int HP_clif_pBGQueueRegister_post; +int HP_clif_pBGQueueCheckState_pre; +int HP_clif_pBGQueueCheckState_post; +int HP_clif_pBGQueueRevokeReq_pre; +int HP_clif_pBGQueueRevokeReq_post; +int HP_clif_pBGQueueBattleBeginAck_pre; +int HP_clif_pBGQueueBattleBeginAck_post; +int HP_clif_pCashShopOpen_pre; +int HP_clif_pCashShopOpen_post; +int HP_clif_pCashShopClose_pre; +int HP_clif_pCashShopClose_post; +int HP_clif_pCashShopReqTab_pre; +int HP_clif_pCashShopReqTab_post; +int HP_clif_pCashShopSchedule_pre; +int HP_clif_pCashShopSchedule_post; +int HP_clif_pCashShopBuy_pre; +int HP_clif_pCashShopBuy_post; +int HP_clif_pPartyTick_pre; +int HP_clif_pPartyTick_post; +int HP_clif_pGuildInvite2_pre; +int HP_clif_pGuildInvite2_post; +int HP_clif_pPartyBookingAddFilter_pre; +int HP_clif_pPartyBookingAddFilter_post; +int HP_clif_pPartyBookingSubFilter_pre; +int HP_clif_pPartyBookingSubFilter_post; +int HP_clif_pPartyBookingReqVolunteer_pre; +int HP_clif_pPartyBookingReqVolunteer_post; +int HP_clif_pPartyBookingRefuseVolunteer_pre; +int HP_clif_pPartyBookingRefuseVolunteer_post; +int HP_clif_pPartyBookingCancelVolunteer_pre; +int HP_clif_pPartyBookingCancelVolunteer_post; +int HP_duel_create_pre; +int HP_duel_create_post; +int HP_duel_invite_pre; +int HP_duel_invite_post; +int HP_duel_accept_pre; +int HP_duel_accept_post; +int HP_duel_reject_pre; +int HP_duel_reject_post; +int HP_duel_leave_pre; +int HP_duel_leave_post; +int HP_duel_showinfo_pre; +int HP_duel_showinfo_post; +int HP_duel_checktime_pre; +int HP_duel_checktime_post; +int HP_duel_init_pre; +int HP_duel_init_post; +int HP_duel_final_pre; +int HP_duel_final_post; +int HP_elemental_init_pre; +int HP_elemental_init_post; +int HP_elemental_final_pre; +int HP_elemental_final_post; +int HP_elemental_class_pre; +int HP_elemental_class_post; +int HP_elemental_get_viewdata_pre; +int HP_elemental_get_viewdata_post; +int HP_elemental_create_pre; +int HP_elemental_create_post; +int HP_elemental_data_received_pre; +int HP_elemental_data_received_post; +int HP_elemental_save_pre; +int HP_elemental_save_post; +int HP_elemental_change_mode_ack_pre; +int HP_elemental_change_mode_ack_post; +int HP_elemental_change_mode_pre; +int HP_elemental_change_mode_post; +int HP_elemental_heal_pre; +int HP_elemental_heal_post; +int HP_elemental_dead_pre; +int HP_elemental_dead_post; +int HP_elemental_delete_pre; +int HP_elemental_delete_post; +int HP_elemental_summon_stop_pre; +int HP_elemental_summon_stop_post; +int HP_elemental_get_lifetime_pre; +int HP_elemental_get_lifetime_post; +int HP_elemental_unlocktarget_pre; +int HP_elemental_unlocktarget_post; +int HP_elemental_skillnotok_pre; +int HP_elemental_skillnotok_post; +int HP_elemental_set_target_pre; +int HP_elemental_set_target_post; +int HP_elemental_clean_single_effect_pre; +int HP_elemental_clean_single_effect_post; +int HP_elemental_clean_effect_pre; +int HP_elemental_clean_effect_post; +int HP_elemental_action_pre; +int HP_elemental_action_post; +int HP_elemental_skill_get_requirements_pre; +int HP_elemental_skill_get_requirements_post; +int HP_elemental_read_skilldb_pre; +int HP_elemental_read_skilldb_post; +int HP_elemental_reload_db_pre; +int HP_elemental_reload_db_post; +int HP_elemental_reload_skilldb_pre; +int HP_elemental_reload_skilldb_post; +int HP_elemental_search_index_pre; +int HP_elemental_search_index_post; +int HP_elemental_summon_init_pre; +int HP_elemental_summon_init_post; +int HP_elemental_summon_end_timer_pre; +int HP_elemental_summon_end_timer_post; +int HP_elemental_ai_sub_timer_activesearch_pre; +int HP_elemental_ai_sub_timer_activesearch_post; +int HP_elemental_ai_sub_timer_pre; +int HP_elemental_ai_sub_timer_post; +int HP_elemental_ai_sub_foreachclient_pre; +int HP_elemental_ai_sub_foreachclient_post; +int HP_elemental_ai_timer_pre; +int HP_elemental_ai_timer_post; +int HP_elemental_read_db_pre; +int HP_elemental_read_db_post; +int HP_guild_init_pre; +int HP_guild_init_post; +int HP_guild_final_pre; +int HP_guild_final_post; +int HP_guild_skill_get_max_pre; +int HP_guild_skill_get_max_post; +int HP_guild_checkskill_pre; +int HP_guild_checkskill_post; +int HP_guild_check_skill_require_pre; +int HP_guild_check_skill_require_post; +int HP_guild_checkcastles_pre; +int HP_guild_checkcastles_post; +int HP_guild_isallied_pre; +int HP_guild_isallied_post; +int HP_guild_search_pre; +int HP_guild_search_post; +int HP_guild_searchname_pre; +int HP_guild_searchname_post; +int HP_guild_castle_search_pre; +int HP_guild_castle_search_post; +int HP_guild_mapname2gc_pre; +int HP_guild_mapname2gc_post; +int HP_guild_mapindex2gc_pre; +int HP_guild_mapindex2gc_post; +int HP_guild_getavailablesd_pre; +int HP_guild_getavailablesd_post; +int HP_guild_getindex_pre; +int HP_guild_getindex_post; +int HP_guild_getposition_pre; +int HP_guild_getposition_post; +int HP_guild_payexp_pre; +int HP_guild_payexp_post; +int HP_guild_getexp_pre; +int HP_guild_getexp_post; +int HP_guild_create_pre; +int HP_guild_create_post; +int HP_guild_created_pre; +int HP_guild_created_post; +int HP_guild_request_info_pre; +int HP_guild_request_info_post; +int HP_guild_recv_noinfo_pre; +int HP_guild_recv_noinfo_post; +int HP_guild_recv_info_pre; +int HP_guild_recv_info_post; +int HP_guild_npc_request_info_pre; +int HP_guild_npc_request_info_post; +int HP_guild_invite_pre; +int HP_guild_invite_post; +int HP_guild_reply_invite_pre; +int HP_guild_reply_invite_post; +int HP_guild_member_joined_pre; +int HP_guild_member_joined_post; +int HP_guild_member_added_pre; +int HP_guild_member_added_post; +int HP_guild_leave_pre; +int HP_guild_leave_post; +int HP_guild_member_withdraw_pre; +int HP_guild_member_withdraw_post; +int HP_guild_expulsion_pre; +int HP_guild_expulsion_post; +int HP_guild_skillup_pre; +int HP_guild_skillup_post; +int HP_guild_block_skill_pre; +int HP_guild_block_skill_post; +int HP_guild_reqalliance_pre; +int HP_guild_reqalliance_post; +int HP_guild_reply_reqalliance_pre; +int HP_guild_reply_reqalliance_post; +int HP_guild_allianceack_pre; +int HP_guild_allianceack_post; +int HP_guild_delalliance_pre; +int HP_guild_delalliance_post; +int HP_guild_opposition_pre; +int HP_guild_opposition_post; +int HP_guild_check_alliance_pre; +int HP_guild_check_alliance_post; +int HP_guild_send_memberinfoshort_pre; +int HP_guild_send_memberinfoshort_post; +int HP_guild_recv_memberinfoshort_pre; +int HP_guild_recv_memberinfoshort_post; +int HP_guild_change_memberposition_pre; +int HP_guild_change_memberposition_post; +int HP_guild_memberposition_changed_pre; +int HP_guild_memberposition_changed_post; +int HP_guild_change_position_pre; +int HP_guild_change_position_post; +int HP_guild_position_changed_pre; +int HP_guild_position_changed_post; +int HP_guild_change_notice_pre; +int HP_guild_change_notice_post; +int HP_guild_notice_changed_pre; +int HP_guild_notice_changed_post; +int HP_guild_change_emblem_pre; +int HP_guild_change_emblem_post; +int HP_guild_emblem_changed_pre; +int HP_guild_emblem_changed_post; +int HP_guild_send_message_pre; +int HP_guild_send_message_post; +int HP_guild_recv_message_pre; +int HP_guild_recv_message_post; +int HP_guild_send_dot_remove_pre; +int HP_guild_send_dot_remove_post; +int HP_guild_skillupack_pre; +int HP_guild_skillupack_post; +int HP_guild_dobreak_pre; +int HP_guild_dobreak_post; +int HP_guild_broken_pre; +int HP_guild_broken_post; +int HP_guild_gm_change_pre; +int HP_guild_gm_change_post; +int HP_guild_gm_changed_pre; +int HP_guild_gm_changed_post; +int HP_guild_castle_map_init_pre; +int HP_guild_castle_map_init_post; +int HP_guild_castledatasave_pre; +int HP_guild_castledatasave_post; +int HP_guild_castledataloadack_pre; +int HP_guild_castledataloadack_post; +int HP_guild_castle_reconnect_pre; +int HP_guild_castle_reconnect_post; +int HP_guild_agit_start_pre; +int HP_guild_agit_start_post; +int HP_guild_agit_end_pre; +int HP_guild_agit_end_post; +int HP_guild_agit2_start_pre; +int HP_guild_agit2_start_post; +int HP_guild_agit2_end_pre; +int HP_guild_agit2_end_post; +int HP_guild_flag_add_pre; +int HP_guild_flag_add_post; +int HP_guild_flag_remove_pre; +int HP_guild_flag_remove_post; +int HP_guild_flags_clear_pre; +int HP_guild_flags_clear_post; +int HP_guild_aura_refresh_pre; +int HP_guild_aura_refresh_post; +int HP_guild_payexp_timer_pre; +int HP_guild_payexp_timer_post; +int HP_guild_sd_check_pre; +int HP_guild_sd_check_post; +int HP_guild_read_guildskill_tree_db_pre; +int HP_guild_read_guildskill_tree_db_post; +int HP_guild_read_castledb_pre; +int HP_guild_read_castledb_post; +int HP_guild_payexp_timer_sub_pre; +int HP_guild_payexp_timer_sub_post; +int HP_guild_send_xy_timer_sub_pre; +int HP_guild_send_xy_timer_sub_post; +int HP_guild_send_xy_timer_pre; +int HP_guild_send_xy_timer_post; +int HP_guild_create_expcache_pre; +int HP_guild_create_expcache_post; +int HP_guild_eventlist_db_final_pre; +int HP_guild_eventlist_db_final_post; +int HP_guild_expcache_db_final_pre; +int HP_guild_expcache_db_final_post; +int HP_guild_castle_db_final_pre; +int HP_guild_castle_db_final_post; +int HP_guild_broken_sub_pre; +int HP_guild_broken_sub_post; +int HP_guild_castle_broken_sub_pre; +int HP_guild_castle_broken_sub_post; +int HP_guild_makemember_pre; +int HP_guild_makemember_post; +int HP_guild_check_member_pre; +int HP_guild_check_member_post; +int HP_guild_get_alliance_count_pre; +int HP_guild_get_alliance_count_post; +int HP_guild_castle_reconnect_sub_pre; +int HP_guild_castle_reconnect_sub_post; +int HP_gstorage_id2storage_pre; +int HP_gstorage_id2storage_post; +int HP_gstorage_id2storage2_pre; +int HP_gstorage_id2storage2_post; +int HP_gstorage_init_pre; +int HP_gstorage_init_post; +int HP_gstorage_final_pre; +int HP_gstorage_final_post; +int HP_gstorage_delete_pre; +int HP_gstorage_delete_post; +int HP_gstorage_open_pre; +int HP_gstorage_open_post; +int HP_gstorage_additem_pre; +int HP_gstorage_additem_post; +int HP_gstorage_delitem_pre; +int HP_gstorage_delitem_post; +int HP_gstorage_add_pre; +int HP_gstorage_add_post; +int HP_gstorage_get_pre; +int HP_gstorage_get_post; +int HP_gstorage_addfromcart_pre; +int HP_gstorage_addfromcart_post; +int HP_gstorage_gettocart_pre; +int HP_gstorage_gettocart_post; +int HP_gstorage_close_pre; +int HP_gstorage_close_post; +int HP_gstorage_pc_quit_pre; +int HP_gstorage_pc_quit_post; +int HP_gstorage_save_pre; +int HP_gstorage_save_post; +int HP_gstorage_saved_pre; +int HP_gstorage_saved_post; +int HP_gstorage_create_pre; +int HP_gstorage_create_post; +int HP_homun_init_pre; +int HP_homun_init_post; +int HP_homun_final_pre; +int HP_homun_final_post; +int HP_homun_reload_pre; +int HP_homun_reload_post; +int HP_homun_reload_skill_pre; +int HP_homun_reload_skill_post; +int HP_homun_get_viewdata_pre; +int HP_homun_get_viewdata_post; +int HP_homun_class2type_pre; +int HP_homun_class2type_post; +int HP_homun_damaged_pre; +int HP_homun_damaged_post; +int HP_homun_dead_pre; +int HP_homun_dead_post; +int HP_homun_vaporize_pre; +int HP_homun_vaporize_post; +int HP_homun_delete_pre; +int HP_homun_delete_post; +int HP_homun_checkskill_pre; +int HP_homun_checkskill_post; +int HP_homun_calc_skilltree_pre; +int HP_homun_calc_skilltree_post; +int HP_homun_skill_tree_get_max_pre; +int HP_homun_skill_tree_get_max_post; +int HP_homun_skillup_pre; +int HP_homun_skillup_post; +int HP_homun_levelup_pre; +int HP_homun_levelup_post; +int HP_homun_change_class_pre; +int HP_homun_change_class_post; +int HP_homun_evolve_pre; +int HP_homun_evolve_post; +int HP_homun_mutate_pre; +int HP_homun_mutate_post; +int HP_homun_gainexp_pre; +int HP_homun_gainexp_post; +int HP_homun_add_intimacy_pre; +int HP_homun_add_intimacy_post; +int HP_homun_consume_intimacy_pre; +int HP_homun_consume_intimacy_post; +int HP_homun_healed_pre; +int HP_homun_healed_post; +int HP_homun_save_pre; +int HP_homun_save_post; +int HP_homun_menu_pre; +int HP_homun_menu_post; +int HP_homun_feed_pre; +int HP_homun_feed_post; +int HP_homun_hunger_timer_pre; +int HP_homun_hunger_timer_post; +int HP_homun_hunger_timer_delete_pre; +int HP_homun_hunger_timer_delete_post; +int HP_homun_change_name_pre; +int HP_homun_change_name_post; +int HP_homun_change_name_ack_pre; +int HP_homun_change_name_ack_post; +int HP_homun_db_search_pre; +int HP_homun_db_search_post; +int HP_homun_create_pre; +int HP_homun_create_post; +int HP_homun_init_timers_pre; +int HP_homun_init_timers_post; +int HP_homun_call_pre; +int HP_homun_call_post; +int HP_homun_recv_data_pre; +int HP_homun_recv_data_post; +int HP_homun_creation_request_pre; +int HP_homun_creation_request_post; +int HP_homun_ressurect_pre; +int HP_homun_ressurect_post; +int HP_homun_revive_pre; +int HP_homun_revive_post; +int HP_homun_stat_reset_pre; +int HP_homun_stat_reset_post; +int HP_homun_shuffle_pre; +int HP_homun_shuffle_post; +int HP_homun_read_db_sub_pre; +int HP_homun_read_db_sub_post; +int HP_homun_read_db_pre; +int HP_homun_read_db_post; +int HP_homun_read_skill_db_sub_pre; +int HP_homun_read_skill_db_sub_post; +int HP_homun_skill_db_read_pre; +int HP_homun_skill_db_read_post; +int HP_homun_exp_db_read_pre; +int HP_homun_exp_db_read_post; +int HP_homun_addspiritball_pre; +int HP_homun_addspiritball_post; +int HP_homun_delspiritball_pre; +int HP_homun_delspiritball_post; +int HP_instance_init_pre; +int HP_instance_init_post; +int HP_instance_final_pre; +int HP_instance_final_post; +int HP_instance_create_pre; +int HP_instance_create_post; +int HP_instance_add_map_pre; +int HP_instance_add_map_post; +int HP_instance_del_map_pre; +int HP_instance_del_map_post; +int HP_instance_map2imap_pre; +int HP_instance_map2imap_post; +int HP_instance_mapid2imapid_pre; +int HP_instance_mapid2imapid_post; +int HP_instance_destroy_pre; +int HP_instance_destroy_post; +int HP_instance_start_pre; +int HP_instance_start_post; +int HP_instance_check_idle_pre; +int HP_instance_check_idle_post; +int HP_instance_check_kick_pre; +int HP_instance_check_kick_post; +int HP_instance_set_timeout_pre; +int HP_instance_set_timeout_post; +int HP_instance_valid_pre; +int HP_instance_valid_post; +int HP_instance_destroy_timer_pre; +int HP_instance_destroy_timer_post; +int HP_intif_parse_pre; +int HP_intif_parse_post; +int HP_intif_create_pet_pre; +int HP_intif_create_pet_post; +int HP_intif_broadcast_pre; +int HP_intif_broadcast_post; +int HP_intif_broadcast2_pre; +int HP_intif_broadcast2_post; +int HP_intif_main_message_pre; +int HP_intif_main_message_post; +int HP_intif_wis_message_pre; +int HP_intif_wis_message_post; +int HP_intif_wis_message_to_gm_pre; +int HP_intif_wis_message_to_gm_post; +int HP_intif_saveregistry_pre; +int HP_intif_saveregistry_post; +int HP_intif_request_registry_pre; +int HP_intif_request_registry_post; +int HP_intif_request_guild_storage_pre; +int HP_intif_request_guild_storage_post; +int HP_intif_send_guild_storage_pre; +int HP_intif_send_guild_storage_post; +int HP_intif_create_party_pre; +int HP_intif_create_party_post; +int HP_intif_request_partyinfo_pre; +int HP_intif_request_partyinfo_post; +int HP_intif_party_addmember_pre; +int HP_intif_party_addmember_post; +int HP_intif_party_changeoption_pre; +int HP_intif_party_changeoption_post; +int HP_intif_party_leave_pre; +int HP_intif_party_leave_post; +int HP_intif_party_changemap_pre; +int HP_intif_party_changemap_post; +int HP_intif_break_party_pre; +int HP_intif_break_party_post; +int HP_intif_party_message_pre; +int HP_intif_party_message_post; +int HP_intif_party_leaderchange_pre; +int HP_intif_party_leaderchange_post; +int HP_intif_guild_create_pre; +int HP_intif_guild_create_post; +int HP_intif_guild_request_info_pre; +int HP_intif_guild_request_info_post; +int HP_intif_guild_addmember_pre; +int HP_intif_guild_addmember_post; +int HP_intif_guild_leave_pre; +int HP_intif_guild_leave_post; +int HP_intif_guild_memberinfoshort_pre; +int HP_intif_guild_memberinfoshort_post; +int HP_intif_guild_break_pre; +int HP_intif_guild_break_post; +int HP_intif_guild_message_pre; +int HP_intif_guild_message_post; +int HP_intif_guild_change_gm_pre; +int HP_intif_guild_change_gm_post; +int HP_intif_guild_change_basicinfo_pre; +int HP_intif_guild_change_basicinfo_post; +int HP_intif_guild_change_memberinfo_pre; +int HP_intif_guild_change_memberinfo_post; +int HP_intif_guild_position_pre; +int HP_intif_guild_position_post; +int HP_intif_guild_skillup_pre; +int HP_intif_guild_skillup_post; +int HP_intif_guild_alliance_pre; +int HP_intif_guild_alliance_post; +int HP_intif_guild_notice_pre; +int HP_intif_guild_notice_post; +int HP_intif_guild_emblem_pre; +int HP_intif_guild_emblem_post; +int HP_intif_guild_castle_dataload_pre; +int HP_intif_guild_castle_dataload_post; +int HP_intif_guild_castle_datasave_pre; +int HP_intif_guild_castle_datasave_post; +int HP_intif_request_petdata_pre; +int HP_intif_request_petdata_post; +int HP_intif_save_petdata_pre; +int HP_intif_save_petdata_post; +int HP_intif_delete_petdata_pre; +int HP_intif_delete_petdata_post; +int HP_intif_rename_pre; +int HP_intif_rename_post; +int HP_intif_homunculus_create_pre; +int HP_intif_homunculus_create_post; +int HP_intif_homunculus_requestload_pre; +int HP_intif_homunculus_requestload_post; +int HP_intif_homunculus_requestsave_pre; +int HP_intif_homunculus_requestsave_post; +int HP_intif_homunculus_requestdelete_pre; +int HP_intif_homunculus_requestdelete_post; +int HP_intif_request_questlog_pre; +int HP_intif_request_questlog_post; +int HP_intif_quest_save_pre; +int HP_intif_quest_save_post; +int HP_intif_mercenary_create_pre; +int HP_intif_mercenary_create_post; +int HP_intif_mercenary_request_pre; +int HP_intif_mercenary_request_post; +int HP_intif_mercenary_delete_pre; +int HP_intif_mercenary_delete_post; +int HP_intif_mercenary_save_pre; +int HP_intif_mercenary_save_post; +int HP_intif_Mail_requestinbox_pre; +int HP_intif_Mail_requestinbox_post; +int HP_intif_Mail_read_pre; +int HP_intif_Mail_read_post; +int HP_intif_Mail_getattach_pre; +int HP_intif_Mail_getattach_post; +int HP_intif_Mail_delete_pre; +int HP_intif_Mail_delete_post; +int HP_intif_Mail_return_pre; +int HP_intif_Mail_return_post; +int HP_intif_Mail_send_pre; +int HP_intif_Mail_send_post; +int HP_intif_Auction_requestlist_pre; +int HP_intif_Auction_requestlist_post; +int HP_intif_Auction_register_pre; +int HP_intif_Auction_register_post; +int HP_intif_Auction_cancel_pre; +int HP_intif_Auction_cancel_post; +int HP_intif_Auction_close_pre; +int HP_intif_Auction_close_post; +int HP_intif_Auction_bid_pre; +int HP_intif_Auction_bid_post; +int HP_intif_elemental_create_pre; +int HP_intif_elemental_create_post; +int HP_intif_elemental_request_pre; +int HP_intif_elemental_request_post; +int HP_intif_elemental_delete_pre; +int HP_intif_elemental_delete_post; +int HP_intif_elemental_save_pre; +int HP_intif_elemental_save_post; +int HP_intif_request_accinfo_pre; +int HP_intif_request_accinfo_post; +int HP_intif_CheckForCharServer_pre; +int HP_intif_CheckForCharServer_post; +int HP_intif_pWisMessage_pre; +int HP_intif_pWisMessage_post; +int HP_intif_pWisEnd_pre; +int HP_intif_pWisEnd_post; +int HP_intif_pWisToGM_sub_pre; +int HP_intif_pWisToGM_sub_post; +int HP_intif_pWisToGM_pre; +int HP_intif_pWisToGM_post; +int HP_intif_pRegisters_pre; +int HP_intif_pRegisters_post; +int HP_intif_pChangeNameOk_pre; +int HP_intif_pChangeNameOk_post; +int HP_intif_pMessageToFD_pre; +int HP_intif_pMessageToFD_post; +int HP_intif_pLoadGuildStorage_pre; +int HP_intif_pLoadGuildStorage_post; +int HP_intif_pSaveGuildStorage_pre; +int HP_intif_pSaveGuildStorage_post; +int HP_intif_pPartyCreated_pre; +int HP_intif_pPartyCreated_post; +int HP_intif_pPartyInfo_pre; +int HP_intif_pPartyInfo_post; +int HP_intif_pPartyMemberAdded_pre; +int HP_intif_pPartyMemberAdded_post; +int HP_intif_pPartyOptionChanged_pre; +int HP_intif_pPartyOptionChanged_post; +int HP_intif_pPartyMemberWithdraw_pre; +int HP_intif_pPartyMemberWithdraw_post; +int HP_intif_pPartyMove_pre; +int HP_intif_pPartyMove_post; +int HP_intif_pPartyBroken_pre; +int HP_intif_pPartyBroken_post; +int HP_intif_pPartyMessage_pre; +int HP_intif_pPartyMessage_post; +int HP_intif_pGuildCreated_pre; +int HP_intif_pGuildCreated_post; +int HP_intif_pGuildInfo_pre; +int HP_intif_pGuildInfo_post; +int HP_intif_pGuildMemberAdded_pre; +int HP_intif_pGuildMemberAdded_post; +int HP_intif_pGuildMemberWithdraw_pre; +int HP_intif_pGuildMemberWithdraw_post; +int HP_intif_pGuildMemberInfoShort_pre; +int HP_intif_pGuildMemberInfoShort_post; +int HP_intif_pGuildBroken_pre; +int HP_intif_pGuildBroken_post; +int HP_intif_pGuildMessage_pre; +int HP_intif_pGuildMessage_post; +int HP_intif_pGuildBasicInfoChanged_pre; +int HP_intif_pGuildBasicInfoChanged_post; +int HP_intif_pGuildMemberInfoChanged_pre; +int HP_intif_pGuildMemberInfoChanged_post; +int HP_intif_pGuildPosition_pre; +int HP_intif_pGuildPosition_post; +int HP_intif_pGuildSkillUp_pre; +int HP_intif_pGuildSkillUp_post; +int HP_intif_pGuildAlliance_pre; +int HP_intif_pGuildAlliance_post; +int HP_intif_pGuildNotice_pre; +int HP_intif_pGuildNotice_post; +int HP_intif_pGuildEmblem_pre; +int HP_intif_pGuildEmblem_post; +int HP_intif_pGuildCastleDataLoad_pre; +int HP_intif_pGuildCastleDataLoad_post; +int HP_intif_pGuildMasterChanged_pre; +int HP_intif_pGuildMasterChanged_post; +int HP_intif_pQuestLog_pre; +int HP_intif_pQuestLog_post; +int HP_intif_pQuestSave_pre; +int HP_intif_pQuestSave_post; +int HP_intif_pMailInboxReceived_pre; +int HP_intif_pMailInboxReceived_post; +int HP_intif_pMailNew_pre; +int HP_intif_pMailNew_post; +int HP_intif_pMailGetAttach_pre; +int HP_intif_pMailGetAttach_post; +int HP_intif_pMailDelete_pre; +int HP_intif_pMailDelete_post; +int HP_intif_pMailReturn_pre; +int HP_intif_pMailReturn_post; +int HP_intif_pMailSend_pre; +int HP_intif_pMailSend_post; +int HP_intif_pAuctionResults_pre; +int HP_intif_pAuctionResults_post; +int HP_intif_pAuctionRegister_pre; +int HP_intif_pAuctionRegister_post; +int HP_intif_pAuctionCancel_pre; +int HP_intif_pAuctionCancel_post; +int HP_intif_pAuctionClose_pre; +int HP_intif_pAuctionClose_post; +int HP_intif_pAuctionMessage_pre; +int HP_intif_pAuctionMessage_post; +int HP_intif_pAuctionBid_pre; +int HP_intif_pAuctionBid_post; +int HP_intif_pMercenaryReceived_pre; +int HP_intif_pMercenaryReceived_post; +int HP_intif_pMercenaryDeleted_pre; +int HP_intif_pMercenaryDeleted_post; +int HP_intif_pMercenarySaved_pre; +int HP_intif_pMercenarySaved_post; +int HP_intif_pElementalReceived_pre; +int HP_intif_pElementalReceived_post; +int HP_intif_pElementalDeleted_pre; +int HP_intif_pElementalDeleted_post; +int HP_intif_pElementalSaved_pre; +int HP_intif_pElementalSaved_post; +int HP_intif_pCreatePet_pre; +int HP_intif_pCreatePet_post; +int HP_intif_pRecvPetData_pre; +int HP_intif_pRecvPetData_post; +int HP_intif_pSavePetOk_pre; +int HP_intif_pSavePetOk_post; +int HP_intif_pDeletePetOk_pre; +int HP_intif_pDeletePetOk_post; +int HP_intif_pCreateHomunculus_pre; +int HP_intif_pCreateHomunculus_post; +int HP_intif_pRecvHomunculusData_pre; +int HP_intif_pRecvHomunculusData_post; +int HP_intif_pSaveHomunculusOk_pre; +int HP_intif_pSaveHomunculusOk_post; +int HP_intif_pDeleteHomunculusOk_pre; +int HP_intif_pDeleteHomunculusOk_post; +int HP_ircbot_init_pre; +int HP_ircbot_init_post; +int HP_ircbot_final_pre; +int HP_ircbot_final_post; +int HP_ircbot_parse_pre; +int HP_ircbot_parse_post; +int HP_ircbot_parse_sub_pre; +int HP_ircbot_parse_sub_post; +int HP_ircbot_parse_source_pre; +int HP_ircbot_parse_source_post; +int HP_ircbot_func_search_pre; +int HP_ircbot_func_search_post; +int HP_ircbot_connect_timer_pre; +int HP_ircbot_connect_timer_post; +int HP_ircbot_identify_timer_pre; +int HP_ircbot_identify_timer_post; +int HP_ircbot_join_timer_pre; +int HP_ircbot_join_timer_post; +int HP_ircbot_send_pre; +int HP_ircbot_send_post; +int HP_ircbot_relay_pre; +int HP_ircbot_relay_post; +int HP_ircbot_pong_pre; +int HP_ircbot_pong_post; +int HP_ircbot_privmsg_pre; +int HP_ircbot_privmsg_post; +int HP_ircbot_userjoin_pre; +int HP_ircbot_userjoin_post; +int HP_ircbot_userleave_pre; +int HP_ircbot_userleave_post; +int HP_ircbot_usernick_pre; +int HP_ircbot_usernick_post; +int HP_itemdb_init_pre; +int HP_itemdb_init_post; +int HP_itemdb_final_pre; +int HP_itemdb_final_post; +int HP_itemdb_reload_pre; +int HP_itemdb_reload_post; +int HP_itemdb_name_constants_pre; +int HP_itemdb_name_constants_post; +int HP_itemdb_force_name_constants_pre; +int HP_itemdb_force_name_constants_post; +int HP_itemdb_read_groups_pre; +int HP_itemdb_read_groups_post; +int HP_itemdb_read_chains_pre; +int HP_itemdb_read_chains_post; +int HP_itemdb_read_packages_pre; +int HP_itemdb_read_packages_post; +int HP_itemdb_write_cached_packages_pre; +int HP_itemdb_write_cached_packages_post; +int HP_itemdb_read_cached_packages_pre; +int HP_itemdb_read_cached_packages_post; +int HP_itemdb_name2id_pre; +int HP_itemdb_name2id_post; +int HP_itemdb_search_name_pre; +int HP_itemdb_search_name_post; +int HP_itemdb_search_name_array_pre; +int HP_itemdb_search_name_array_post; +int HP_itemdb_load_pre; +int HP_itemdb_load_post; +int HP_itemdb_search_pre; +int HP_itemdb_search_post; +int HP_itemdb_parse_dbrow_pre; +int HP_itemdb_parse_dbrow_post; +int HP_itemdb_exists_pre; +int HP_itemdb_exists_post; +int HP_itemdb_in_group_pre; +int HP_itemdb_in_group_post; +int HP_itemdb_group_item_pre; +int HP_itemdb_group_item_post; +int HP_itemdb_chain_item_pre; +int HP_itemdb_chain_item_post; +int HP_itemdb_package_item_pre; +int HP_itemdb_package_item_post; +int HP_itemdb_searchname_sub_pre; +int HP_itemdb_searchname_sub_post; +int HP_itemdb_searchname_array_sub_pre; +int HP_itemdb_searchname_array_sub_post; +int HP_itemdb_searchrandomid_pre; +int HP_itemdb_searchrandomid_post; +int HP_itemdb_typename_pre; +int HP_itemdb_typename_post; +int HP_itemdb_jobid2mapid_pre; +int HP_itemdb_jobid2mapid_post; +int HP_itemdb_create_dummy_data_pre; +int HP_itemdb_create_dummy_data_post; +int HP_itemdb_create_item_data_pre; +int HP_itemdb_create_item_data_post; +int HP_itemdb_isequip_pre; +int HP_itemdb_isequip_post; +int HP_itemdb_isequip2_pre; +int HP_itemdb_isequip2_post; +int HP_itemdb_isstackable_pre; +int HP_itemdb_isstackable_post; +int HP_itemdb_isstackable2_pre; +int HP_itemdb_isstackable2_post; +int HP_itemdb_isdropable_sub_pre; +int HP_itemdb_isdropable_sub_post; +int HP_itemdb_cantrade_sub_pre; +int HP_itemdb_cantrade_sub_post; +int HP_itemdb_canpartnertrade_sub_pre; +int HP_itemdb_canpartnertrade_sub_post; +int HP_itemdb_cansell_sub_pre; +int HP_itemdb_cansell_sub_post; +int HP_itemdb_cancartstore_sub_pre; +int HP_itemdb_cancartstore_sub_post; +int HP_itemdb_canstore_sub_pre; +int HP_itemdb_canstore_sub_post; +int HP_itemdb_canguildstore_sub_pre; +int HP_itemdb_canguildstore_sub_post; +int HP_itemdb_canmail_sub_pre; +int HP_itemdb_canmail_sub_post; +int HP_itemdb_canauction_sub_pre; +int HP_itemdb_canauction_sub_post; +int HP_itemdb_isrestricted_pre; +int HP_itemdb_isrestricted_post; +int HP_itemdb_isidentified_pre; +int HP_itemdb_isidentified_post; +int HP_itemdb_isidentified2_pre; +int HP_itemdb_isidentified2_post; +int HP_itemdb_read_itemavail_pre; +int HP_itemdb_read_itemavail_post; +int HP_itemdb_read_itemtrade_pre; +int HP_itemdb_read_itemtrade_post; +int HP_itemdb_read_itemdelay_pre; +int HP_itemdb_read_itemdelay_post; +int HP_itemdb_read_stack_pre; +int HP_itemdb_read_stack_post; +int HP_itemdb_read_buyingstore_pre; +int HP_itemdb_read_buyingstore_post; +int HP_itemdb_read_nouse_pre; +int HP_itemdb_read_nouse_post; +int HP_itemdb_combo_split_atoi_pre; +int HP_itemdb_combo_split_atoi_post; +int HP_itemdb_read_combos_pre; +int HP_itemdb_read_combos_post; +int HP_itemdb_gendercheck_pre; +int HP_itemdb_gendercheck_post; +int HP_itemdb_re_split_atoi_pre; +int HP_itemdb_re_split_atoi_post; +int HP_itemdb_readdb_pre; +int HP_itemdb_readdb_post; +int HP_itemdb_read_sqldb_pre; +int HP_itemdb_read_sqldb_post; +int HP_itemdb_unique_id_pre; +int HP_itemdb_unique_id_post; +int HP_itemdb_uid_load_pre; +int HP_itemdb_uid_load_post; +int HP_itemdb_read_pre; +int HP_itemdb_read_post; +int HP_itemdb_destroy_item_data_pre; +int HP_itemdb_destroy_item_data_post; +int HP_itemdb_final_sub_pre; +int HP_itemdb_final_sub_post; +int HP_logs_pick_pc_pre; +int HP_logs_pick_pc_post; +int HP_logs_pick_mob_pre; +int HP_logs_pick_mob_post; +int HP_logs_zeny_pre; +int HP_logs_zeny_post; +int HP_logs_npc_pre; +int HP_logs_npc_post; +int HP_logs_chat_pre; +int HP_logs_chat_post; +int HP_logs_atcommand_pre; +int HP_logs_atcommand_post; +int HP_logs_branch_pre; +int HP_logs_branch_post; +int HP_logs_mvpdrop_pre; +int HP_logs_mvpdrop_post; +int HP_logs_pick_sub_pre; +int HP_logs_pick_sub_post; +int HP_logs_zeny_sub_pre; +int HP_logs_zeny_sub_post; +int HP_logs_npc_sub_pre; +int HP_logs_npc_sub_post; +int HP_logs_chat_sub_pre; +int HP_logs_chat_sub_post; +int HP_logs_atcommand_sub_pre; +int HP_logs_atcommand_sub_post; +int HP_logs_branch_sub_pre; +int HP_logs_branch_sub_post; +int HP_logs_mvpdrop_sub_pre; +int HP_logs_mvpdrop_sub_post; +int HP_logs_config_read_pre; +int HP_logs_config_read_post; +int HP_logs_config_done_pre; +int HP_logs_config_done_post; +int HP_logs_sql_init_pre; +int HP_logs_sql_init_post; +int HP_logs_sql_final_pre; +int HP_logs_sql_final_post; +int HP_logs_picktype2char_pre; +int HP_logs_picktype2char_post; +int HP_logs_chattype2char_pre; +int HP_logs_chattype2char_post; +int HP_logs_should_log_item_pre; +int HP_logs_should_log_item_post; +int HP_mail_clear_pre; +int HP_mail_clear_post; +int HP_mail_removeitem_pre; +int HP_mail_removeitem_post; +int HP_mail_removezeny_pre; +int HP_mail_removezeny_post; +int HP_mail_setitem_pre; +int HP_mail_setitem_post; +int HP_mail_setattachment_pre; +int HP_mail_setattachment_post; +int HP_mail_getattachment_pre; +int HP_mail_getattachment_post; +int HP_mail_openmail_pre; +int HP_mail_openmail_post; +int HP_mail_deliveryfail_pre; +int HP_mail_deliveryfail_post; +int HP_mail_invalid_operation_pre; +int HP_mail_invalid_operation_post; +int HP_map_zone_init_pre; +int HP_map_zone_init_post; +int HP_map_zone_remove_pre; +int HP_map_zone_remove_post; +int HP_map_zone_apply_pre; +int HP_map_zone_apply_post; +int HP_map_zone_change_pre; +int HP_map_zone_change_post; +int HP_map_zone_change2_pre; +int HP_map_zone_change2_post; +int HP_map_getcell_pre; +int HP_map_getcell_post; +int HP_map_setgatcell_pre; +int HP_map_setgatcell_post; +int HP_map_cellfromcache_pre; +int HP_map_cellfromcache_post; +int HP_map_setusers_pre; +int HP_map_setusers_post; +int HP_map_getusers_pre; +int HP_map_getusers_post; +int HP_map_usercount_pre; +int HP_map_usercount_post; +int HP_map_freeblock_pre; +int HP_map_freeblock_post; +int HP_map_freeblock_lock_pre; +int HP_map_freeblock_lock_post; +int HP_map_freeblock_unlock_pre; +int HP_map_freeblock_unlock_post; +int HP_map_addblock_pre; +int HP_map_addblock_post; +int HP_map_delblock_pre; +int HP_map_delblock_post; +int HP_map_moveblock_pre; +int HP_map_moveblock_post; +int HP_map_count_oncell_pre; +int HP_map_count_oncell_post; +int HP_map_find_skill_unit_oncell_pre; +int HP_map_find_skill_unit_oncell_post; +int HP_map_get_new_object_id_pre; +int HP_map_get_new_object_id_post; +int HP_map_search_freecell_pre; +int HP_map_search_freecell_post; +int HP_map_quit_pre; +int HP_map_quit_post; +int HP_map_addnpc_pre; +int HP_map_addnpc_post; +int HP_map_clearflooritem_timer_pre; +int HP_map_clearflooritem_timer_post; +int HP_map_removemobs_timer_pre; +int HP_map_removemobs_timer_post; +int HP_map_clearflooritem_pre; +int HP_map_clearflooritem_post; +int HP_map_addflooritem_pre; +int HP_map_addflooritem_post; +int HP_map_addnickdb_pre; +int HP_map_addnickdb_post; +int HP_map_delnickdb_pre; +int HP_map_delnickdb_post; +int HP_map_reqnickdb_pre; +int HP_map_reqnickdb_post; +int HP_map_charid2nick_pre; +int HP_map_charid2nick_post; +int HP_map_charid2sd_pre; +int HP_map_charid2sd_post; +int HP_map_vforeachpc_pre; +int HP_map_vforeachpc_post; +int HP_map_vforeachmob_pre; +int HP_map_vforeachmob_post; +int HP_map_vforeachnpc_pre; +int HP_map_vforeachnpc_post; +int HP_map_vforeachregen_pre; +int HP_map_vforeachregen_post; +int HP_map_vforeachiddb_pre; +int HP_map_vforeachiddb_post; +int HP_map_vforeachinrange_pre; +int HP_map_vforeachinrange_post; +int HP_map_vforeachinshootrange_pre; +int HP_map_vforeachinshootrange_post; +int HP_map_vforeachinarea_pre; +int HP_map_vforeachinarea_post; +int HP_map_vforcountinrange_pre; +int HP_map_vforcountinrange_post; +int HP_map_vforcountinarea_pre; +int HP_map_vforcountinarea_post; +int HP_map_vforeachinmovearea_pre; +int HP_map_vforeachinmovearea_post; +int HP_map_vforeachincell_pre; +int HP_map_vforeachincell_post; +int HP_map_vforeachinpath_pre; +int HP_map_vforeachinpath_post; +int HP_map_vforeachinmap_pre; +int HP_map_vforeachinmap_post; +int HP_map_vforeachininstance_pre; +int HP_map_vforeachininstance_post; +int HP_map_id2sd_pre; +int HP_map_id2sd_post; +int HP_map_id2md_pre; +int HP_map_id2md_post; +int HP_map_id2nd_pre; +int HP_map_id2nd_post; +int HP_map_id2hd_pre; +int HP_map_id2hd_post; +int HP_map_id2mc_pre; +int HP_map_id2mc_post; +int HP_map_id2cd_pre; +int HP_map_id2cd_post; +int HP_map_id2bl_pre; +int HP_map_id2bl_post; +int HP_map_blid_exists_pre; +int HP_map_blid_exists_post; +int HP_map_mapindex2mapid_pre; +int HP_map_mapindex2mapid_post; +int HP_map_mapname2mapid_pre; +int HP_map_mapname2mapid_post; +int HP_map_mapname2ipport_pre; +int HP_map_mapname2ipport_post; +int HP_map_setipport_pre; +int HP_map_setipport_post; +int HP_map_eraseipport_pre; +int HP_map_eraseipport_post; +int HP_map_eraseallipport_pre; +int HP_map_eraseallipport_post; +int HP_map_addiddb_pre; +int HP_map_addiddb_post; +int HP_map_deliddb_pre; +int HP_map_deliddb_post; +int HP_map_nick2sd_pre; +int HP_map_nick2sd_post; +int HP_map_getmob_boss_pre; +int HP_map_getmob_boss_post; +int HP_map_id2boss_pre; +int HP_map_id2boss_post; +int HP_map_reloadnpc_pre; +int HP_map_reloadnpc_post; +int HP_map_check_dir_pre; +int HP_map_check_dir_post; +int HP_map_calc_dir_pre; +int HP_map_calc_dir_post; +int HP_map_random_dir_pre; +int HP_map_random_dir_post; +int HP_map_cleanup_sub_pre; +int HP_map_cleanup_sub_post; +int HP_map_delmap_pre; +int HP_map_delmap_post; +int HP_map_flags_init_pre; +int HP_map_flags_init_post; +int HP_map_iwall_set_pre; +int HP_map_iwall_set_post; +int HP_map_iwall_get_pre; +int HP_map_iwall_get_post; +int HP_map_iwall_remove_pre; +int HP_map_iwall_remove_post; +int HP_map_addmobtolist_pre; +int HP_map_addmobtolist_post; +int HP_map_spawnmobs_pre; +int HP_map_spawnmobs_post; +int HP_map_removemobs_pre; +int HP_map_removemobs_post; +int HP_map_addmap2db_pre; +int HP_map_addmap2db_post; +int HP_map_removemapdb_pre; +int HP_map_removemapdb_post; +int HP_map_clean_pre; +int HP_map_clean_post; +int HP_map_do_shutdown_pre; +int HP_map_do_shutdown_post; +int HP_map_freeblock_timer_pre; +int HP_map_freeblock_timer_post; +int HP_map_searchrandfreecell_pre; +int HP_map_searchrandfreecell_post; +int HP_map_count_sub_pre; +int HP_map_count_sub_post; +int HP_map_create_charid2nick_pre; +int HP_map_create_charid2nick_post; +int HP_map_removemobs_sub_pre; +int HP_map_removemobs_sub_post; +int HP_map_gat2cell_pre; +int HP_map_gat2cell_post; +int HP_map_cell2gat_pre; +int HP_map_cell2gat_post; +int HP_map_getcellp_pre; +int HP_map_getcellp_post; +int HP_map_setcell_pre; +int HP_map_setcell_post; +int HP_map_sub_getcellp_pre; +int HP_map_sub_getcellp_post; +int HP_map_sub_setcell_pre; +int HP_map_sub_setcell_post; +int HP_map_iwall_nextxy_pre; +int HP_map_iwall_nextxy_post; +int HP_map_create_map_data_other_server_pre; +int HP_map_create_map_data_other_server_post; +int HP_map_eraseallipport_sub_pre; +int HP_map_eraseallipport_sub_post; +int HP_map_init_mapcache_pre; +int HP_map_init_mapcache_post; +int HP_map_readfromcache_pre; +int HP_map_readfromcache_post; +int HP_map_addmap_pre; +int HP_map_addmap_post; +int HP_map_delmapid_pre; +int HP_map_delmapid_post; +int HP_map_zone_db_clear_pre; +int HP_map_zone_db_clear_post; +int HP_map_list_final_pre; +int HP_map_list_final_post; +int HP_map_waterheight_pre; +int HP_map_waterheight_post; +int HP_map_readgat_pre; +int HP_map_readgat_post; +int HP_map_readallmaps_pre; +int HP_map_readallmaps_post; +int HP_map_config_read_pre; +int HP_map_config_read_post; +int HP_map_config_read_sub_pre; +int HP_map_config_read_sub_post; +int HP_map_reloadnpc_sub_pre; +int HP_map_reloadnpc_sub_post; +int HP_map_inter_config_read_pre; +int HP_map_inter_config_read_post; +int HP_map_sql_init_pre; +int HP_map_sql_init_post; +int HP_map_sql_close_pre; +int HP_map_sql_close_post; +int HP_map_zone_mf_cache_pre; +int HP_map_zone_mf_cache_post; +int HP_map_zone_str2itemid_pre; +int HP_map_zone_str2itemid_post; +int HP_map_zone_str2skillid_pre; +int HP_map_zone_str2skillid_post; +int HP_map_zone_bl_type_pre; +int HP_map_zone_bl_type_post; +int HP_map_read_zone_db_pre; +int HP_map_read_zone_db_post; +int HP_map_db_final_pre; +int HP_map_db_final_post; +int HP_map_nick_db_final_pre; +int HP_map_nick_db_final_post; +int HP_map_cleanup_db_sub_pre; +int HP_map_cleanup_db_sub_post; +int HP_map_abort_sub_pre; +int HP_map_abort_sub_post; +int HP_map_helpscreen_pre; +int HP_map_helpscreen_post; +int HP_map_versionscreen_pre; +int HP_map_versionscreen_post; +int HP_map_arg_next_value_pre; +int HP_map_arg_next_value_post; +int HP_map_addblcell_pre; +int HP_map_addblcell_post; +int HP_map_delblcell_pre; +int HP_map_delblcell_post; +int HP_mapit_alloc_pre; +int HP_mapit_alloc_post; +int HP_mapit_free_pre; +int HP_mapit_free_post; +int HP_mapit_first_pre; +int HP_mapit_first_post; +int HP_mapit_last_pre; +int HP_mapit_last_post; +int HP_mapit_next_pre; +int HP_mapit_next_post; +int HP_mapit_prev_pre; +int HP_mapit_prev_post; +int HP_mapit_exists_pre; +int HP_mapit_exists_post; +int HP_mapreg_init_pre; +int HP_mapreg_init_post; +int HP_mapreg_final_pre; +int HP_mapreg_final_post; +int HP_mapreg_readreg_pre; +int HP_mapreg_readreg_post; +int HP_mapreg_readregstr_pre; +int HP_mapreg_readregstr_post; +int HP_mapreg_setreg_pre; +int HP_mapreg_setreg_post; +int HP_mapreg_setregstr_pre; +int HP_mapreg_setregstr_post; +int HP_mapreg_load_pre; +int HP_mapreg_load_post; +int HP_mapreg_save_pre; +int HP_mapreg_save_post; +int HP_mapreg_save_timer_pre; +int HP_mapreg_save_timer_post; +int HP_mapreg_reload_pre; +int HP_mapreg_reload_post; +int HP_mapreg_config_read_pre; +int HP_mapreg_config_read_post; +int HP_mercenary_init_pre; +int HP_mercenary_init_post; +int HP_mercenary_class_pre; +int HP_mercenary_class_post; +int HP_mercenary_get_viewdata_pre; +int HP_mercenary_get_viewdata_post; +int HP_mercenary_create_pre; +int HP_mercenary_create_post; +int HP_mercenary_data_received_pre; +int HP_mercenary_data_received_post; +int HP_mercenary_save_pre; +int HP_mercenary_save_post; +int HP_mercenary_heal_pre; +int HP_mercenary_heal_post; +int HP_mercenary_dead_pre; +int HP_mercenary_dead_post; +int HP_mercenary_delete_pre; +int HP_mercenary_delete_post; +int HP_mercenary_contract_stop_pre; +int HP_mercenary_contract_stop_post; +int HP_mercenary_get_lifetime_pre; +int HP_mercenary_get_lifetime_post; +int HP_mercenary_get_guild_pre; +int HP_mercenary_get_guild_post; +int HP_mercenary_get_faith_pre; +int HP_mercenary_get_faith_post; +int HP_mercenary_set_faith_pre; +int HP_mercenary_set_faith_post; +int HP_mercenary_get_calls_pre; +int HP_mercenary_get_calls_post; +int HP_mercenary_set_calls_pre; +int HP_mercenary_set_calls_post; +int HP_mercenary_kills_pre; +int HP_mercenary_kills_post; +int HP_mercenary_checkskill_pre; +int HP_mercenary_checkskill_post; +int HP_mercenary_read_db_pre; +int HP_mercenary_read_db_post; +int HP_mercenary_read_skilldb_pre; +int HP_mercenary_read_skilldb_post; +int HP_mercenary_killbonus_pre; +int HP_mercenary_killbonus_post; +int HP_mercenary_search_index_pre; +int HP_mercenary_search_index_post; +int HP_mercenary_contract_end_timer_pre; +int HP_mercenary_contract_end_timer_post; +int HP_mercenary_read_db_sub_pre; +int HP_mercenary_read_db_sub_post; +int HP_mercenary_read_skill_db_sub_pre; +int HP_mercenary_read_skill_db_sub_post; +int HP_mob_init_pre; +int HP_mob_init_post; +int HP_mob_final_pre; +int HP_mob_final_post; +int HP_mob_reload_pre; +int HP_mob_reload_post; +int HP_mob_db_pre; +int HP_mob_db_post; +int HP_mob_chat_pre; +int HP_mob_chat_post; +int HP_mob_makedummymobdb_pre; +int HP_mob_makedummymobdb_post; +int HP_mob_spawn_guardian_sub_pre; +int HP_mob_spawn_guardian_sub_post; +int HP_mob_skill_id2skill_idx_pre; +int HP_mob_skill_id2skill_idx_post; +int HP_mob_db_searchname_pre; +int HP_mob_db_searchname_post; +int HP_mob_db_searchname_array_sub_pre; +int HP_mob_db_searchname_array_sub_post; +int HP_mob_mvptomb_create_pre; +int HP_mob_mvptomb_create_post; +int HP_mob_mvptomb_destroy_pre; +int HP_mob_mvptomb_destroy_post; +int HP_mob_db_searchname_array_pre; +int HP_mob_db_searchname_array_post; +int HP_mob_db_checkid_pre; +int HP_mob_db_checkid_post; +int HP_mob_get_viewdata_pre; +int HP_mob_get_viewdata_post; +int HP_mob_parse_dataset_pre; +int HP_mob_parse_dataset_post; +int HP_mob_spawn_dataset_pre; +int HP_mob_spawn_dataset_post; +int HP_mob_get_random_id_pre; +int HP_mob_get_random_id_post; +int HP_mob_ksprotected_pre; +int HP_mob_ksprotected_post; +int HP_mob_once_spawn_sub_pre; +int HP_mob_once_spawn_sub_post; +int HP_mob_once_spawn_pre; +int HP_mob_once_spawn_post; +int HP_mob_once_spawn_area_pre; +int HP_mob_once_spawn_area_post; +int HP_mob_spawn_guardian_pre; +int HP_mob_spawn_guardian_post; +int HP_mob_spawn_bg_pre; +int HP_mob_spawn_bg_post; +int HP_mob_can_reach_pre; +int HP_mob_can_reach_post; +int HP_mob_linksearch_pre; +int HP_mob_linksearch_post; +int HP_mob_delayspawn_pre; +int HP_mob_delayspawn_post; +int HP_mob_setdelayspawn_pre; +int HP_mob_setdelayspawn_post; +int HP_mob_count_sub_pre; +int HP_mob_count_sub_post; +int HP_mob_spawn_pre; +int HP_mob_spawn_post; +int HP_mob_can_changetarget_pre; +int HP_mob_can_changetarget_post; +int HP_mob_target_pre; +int HP_mob_target_post; +int HP_mob_ai_sub_hard_activesearch_pre; +int HP_mob_ai_sub_hard_activesearch_post; +int HP_mob_ai_sub_hard_changechase_pre; +int HP_mob_ai_sub_hard_changechase_post; +int HP_mob_ai_sub_hard_bg_ally_pre; +int HP_mob_ai_sub_hard_bg_ally_post; +int HP_mob_ai_sub_hard_lootsearch_pre; +int HP_mob_ai_sub_hard_lootsearch_post; +int HP_mob_warpchase_sub_pre; +int HP_mob_warpchase_sub_post; +int HP_mob_ai_sub_hard_slavemob_pre; +int HP_mob_ai_sub_hard_slavemob_post; +int HP_mob_unlocktarget_pre; +int HP_mob_unlocktarget_post; +int HP_mob_randomwalk_pre; +int HP_mob_randomwalk_post; +int HP_mob_warpchase_pre; +int HP_mob_warpchase_post; +int HP_mob_ai_sub_hard_pre; +int HP_mob_ai_sub_hard_post; +int HP_mob_ai_sub_hard_timer_pre; +int HP_mob_ai_sub_hard_timer_post; +int HP_mob_ai_sub_foreachclient_pre; +int HP_mob_ai_sub_foreachclient_post; +int HP_mob_ai_sub_lazy_pre; +int HP_mob_ai_sub_lazy_post; +int HP_mob_ai_lazy_pre; +int HP_mob_ai_lazy_post; +int HP_mob_ai_hard_pre; +int HP_mob_ai_hard_post; +int HP_mob_setdropitem_pre; +int HP_mob_setdropitem_post; +int HP_mob_setlootitem_pre; +int HP_mob_setlootitem_post; +int HP_mob_delay_item_drop_pre; +int HP_mob_delay_item_drop_post; +int HP_mob_item_drop_pre; +int HP_mob_item_drop_post; +int HP_mob_timer_delete_pre; +int HP_mob_timer_delete_post; +int HP_mob_deleteslave_sub_pre; +int HP_mob_deleteslave_sub_post; +int HP_mob_deleteslave_pre; +int HP_mob_deleteslave_post; +int HP_mob_respawn_pre; +int HP_mob_respawn_post; +int HP_mob_log_damage_pre; +int HP_mob_log_damage_post; +int HP_mob_damage_pre; +int HP_mob_damage_post; +int HP_mob_dead_pre; +int HP_mob_dead_post; +int HP_mob_revive_pre; +int HP_mob_revive_post; +int HP_mob_guardian_guildchange_pre; +int HP_mob_guardian_guildchange_post; +int HP_mob_random_class_pre; +int HP_mob_random_class_post; +int HP_mob_class_change_pre; +int HP_mob_class_change_post; +int HP_mob_heal_pre; +int HP_mob_heal_post; +int HP_mob_warpslave_sub_pre; +int HP_mob_warpslave_sub_post; +int HP_mob_warpslave_pre; +int HP_mob_warpslave_post; +int HP_mob_countslave_sub_pre; +int HP_mob_countslave_sub_post; +int HP_mob_countslave_pre; +int HP_mob_countslave_post; +int HP_mob_summonslave_pre; +int HP_mob_summonslave_post; +int HP_mob_getfriendhprate_sub_pre; +int HP_mob_getfriendhprate_sub_post; +int HP_mob_getfriendhprate_pre; +int HP_mob_getfriendhprate_post; +int HP_mob_getmasterhpltmaxrate_pre; +int HP_mob_getmasterhpltmaxrate_post; +int HP_mob_getfriendstatus_sub_pre; +int HP_mob_getfriendstatus_sub_post; +int HP_mob_getfriendstatus_pre; +int HP_mob_getfriendstatus_post; +int HP_mob_skill_use_pre; +int HP_mob_skill_use_post; +int HP_mob_skill_event_pre; +int HP_mob_skill_event_post; +int HP_mob_is_clone_pre; +int HP_mob_is_clone_post; +int HP_mob_clone_spawn_pre; +int HP_mob_clone_spawn_post; +int HP_mob_clone_delete_pre; +int HP_mob_clone_delete_post; +int HP_mob_drop_adjust_pre; +int HP_mob_drop_adjust_post; +int HP_mob_item_dropratio_adjust_pre; +int HP_mob_item_dropratio_adjust_post; +int HP_mob_parse_dbrow_pre; +int HP_mob_parse_dbrow_post; +int HP_mob_readdb_sub_pre; +int HP_mob_readdb_sub_post; +int HP_mob_readdb_pre; +int HP_mob_readdb_post; +int HP_mob_read_sqldb_pre; +int HP_mob_read_sqldb_post; +int HP_mob_readdb_mobavail_pre; +int HP_mob_readdb_mobavail_post; +int HP_mob_read_randommonster_pre; +int HP_mob_read_randommonster_post; +int HP_mob_parse_row_chatdb_pre; +int HP_mob_parse_row_chatdb_post; +int HP_mob_readchatdb_pre; +int HP_mob_readchatdb_post; +int HP_mob_parse_row_mobskilldb_pre; +int HP_mob_parse_row_mobskilldb_post; +int HP_mob_readskilldb_pre; +int HP_mob_readskilldb_post; +int HP_mob_read_sqlskilldb_pre; +int HP_mob_read_sqlskilldb_post; +int HP_mob_readdb_race2_pre; +int HP_mob_readdb_race2_post; +int HP_mob_readdb_itemratio_pre; +int HP_mob_readdb_itemratio_post; +int HP_mob_load_pre; +int HP_mob_load_post; +int HP_mob_clear_spawninfo_pre; +int HP_mob_clear_spawninfo_post; +int HP_npc_init_pre; +int HP_npc_init_post; +int HP_npc_final_pre; +int HP_npc_final_post; +int HP_npc_get_new_npc_id_pre; +int HP_npc_get_new_npc_id_post; +int HP_npc_get_viewdata_pre; +int HP_npc_get_viewdata_post; +int HP_npc_isnear_sub_pre; +int HP_npc_isnear_sub_post; +int HP_npc_isnear_pre; +int HP_npc_isnear_post; +int HP_npc_ontouch_event_pre; +int HP_npc_ontouch_event_post; +int HP_npc_ontouch2_event_pre; +int HP_npc_ontouch2_event_post; +int HP_npc_enable_sub_pre; +int HP_npc_enable_sub_post; +int HP_npc_enable_pre; +int HP_npc_enable_post; +int HP_npc_name2id_pre; +int HP_npc_name2id_post; +int HP_npc_event_dequeue_pre; +int HP_npc_event_dequeue_post; +int HP_npc_event_export_create_pre; +int HP_npc_event_export_create_post; +int HP_npc_event_export_pre; +int HP_npc_event_export_post; +int HP_npc_event_sub_pre; +int HP_npc_event_sub_post; +int HP_npc_event_doall_sub_pre; +int HP_npc_event_doall_sub_post; +int HP_npc_event_do_pre; +int HP_npc_event_do_post; +int HP_npc_event_doall_id_pre; +int HP_npc_event_doall_id_post; +int HP_npc_event_doall_pre; +int HP_npc_event_doall_post; +int HP_npc_event_do_clock_pre; +int HP_npc_event_do_clock_post; +int HP_npc_event_do_oninit_pre; +int HP_npc_event_do_oninit_post; +int HP_npc_timerevent_export_pre; +int HP_npc_timerevent_export_post; +int HP_npc_timerevent_pre; +int HP_npc_timerevent_post; +int HP_npc_timerevent_start_pre; +int HP_npc_timerevent_start_post; +int HP_npc_timerevent_stop_pre; +int HP_npc_timerevent_stop_post; +int HP_npc_timerevent_quit_pre; +int HP_npc_timerevent_quit_post; +int HP_npc_gettimerevent_tick_pre; +int HP_npc_gettimerevent_tick_post; +int HP_npc_settimerevent_tick_pre; +int HP_npc_settimerevent_tick_post; +int HP_npc_event_pre; +int HP_npc_event_post; +int HP_npc_touch_areanpc_sub_pre; +int HP_npc_touch_areanpc_sub_post; +int HP_npc_touchnext_areanpc_pre; +int HP_npc_touchnext_areanpc_post; +int HP_npc_touch_areanpc_pre; +int HP_npc_touch_areanpc_post; +int HP_npc_touch_areanpc2_pre; +int HP_npc_touch_areanpc2_post; +int HP_npc_check_areanpc_pre; +int HP_npc_check_areanpc_post; +int HP_npc_checknear_pre; +int HP_npc_checknear_post; +int HP_npc_globalmessage_pre; +int HP_npc_globalmessage_post; +int HP_npc_run_tomb_pre; +int HP_npc_run_tomb_post; +int HP_npc_click_pre; +int HP_npc_click_post; +int HP_npc_scriptcont_pre; +int HP_npc_scriptcont_post; +int HP_npc_buysellsel_pre; +int HP_npc_buysellsel_post; +int HP_npc_cashshop_buylist_pre; +int HP_npc_cashshop_buylist_post; +int HP_npc_buylist_sub_pre; +int HP_npc_buylist_sub_post; +int HP_npc_cashshop_buy_pre; +int HP_npc_cashshop_buy_post; +int HP_npc_buylist_pre; +int HP_npc_buylist_post; +int HP_npc_selllist_sub_pre; +int HP_npc_selllist_sub_post; +int HP_npc_selllist_pre; +int HP_npc_selllist_post; +int HP_npc_remove_map_pre; +int HP_npc_remove_map_post; +int HP_npc_unload_ev_pre; +int HP_npc_unload_ev_post; +int HP_npc_unload_ev_label_pre; +int HP_npc_unload_ev_label_post; +int HP_npc_unload_dup_sub_pre; +int HP_npc_unload_dup_sub_post; +int HP_npc_unload_duplicates_pre; +int HP_npc_unload_duplicates_post; +int HP_npc_unload_pre; +int HP_npc_unload_post; +int HP_npc_clearsrcfile_pre; +int HP_npc_clearsrcfile_post; +int HP_npc_addsrcfile_pre; +int HP_npc_addsrcfile_post; +int HP_npc_delsrcfile_pre; +int HP_npc_delsrcfile_post; +int HP_npc_parsename_pre; +int HP_npc_parsename_post; +int HP_npc_add_warp_pre; +int HP_npc_add_warp_post; +int HP_npc_parse_warp_pre; +int HP_npc_parse_warp_post; +int HP_npc_parse_shop_pre; +int HP_npc_parse_shop_post; +int HP_npc_convertlabel_db_pre; +int HP_npc_convertlabel_db_post; +int HP_npc_skip_script_pre; +int HP_npc_skip_script_post; +int HP_npc_parse_script_pre; +int HP_npc_parse_script_post; +int HP_npc_parse_duplicate_pre; +int HP_npc_parse_duplicate_post; +int HP_npc_duplicate4instance_pre; +int HP_npc_duplicate4instance_post; +int HP_npc_setcells_pre; +int HP_npc_setcells_post; +int HP_npc_unsetcells_sub_pre; +int HP_npc_unsetcells_sub_post; +int HP_npc_unsetcells_pre; +int HP_npc_unsetcells_post; +int HP_npc_movenpc_pre; +int HP_npc_movenpc_post; +int HP_npc_setdisplayname_pre; +int HP_npc_setdisplayname_post; +int HP_npc_setclass_pre; +int HP_npc_setclass_post; +int HP_npc_do_atcmd_event_pre; +int HP_npc_do_atcmd_event_post; +int HP_npc_parse_function_pre; +int HP_npc_parse_function_post; +int HP_npc_parse_mob2_pre; +int HP_npc_parse_mob2_post; +int HP_npc_parse_mob_pre; +int HP_npc_parse_mob_post; +int HP_npc_parse_mapflag_pre; +int HP_npc_parse_mapflag_post; +int HP_npc_parsesrcfile_pre; +int HP_npc_parsesrcfile_post; +int HP_npc_script_event_pre; +int HP_npc_script_event_post; +int HP_npc_read_event_script_pre; +int HP_npc_read_event_script_post; +int HP_npc_path_db_clear_sub_pre; +int HP_npc_path_db_clear_sub_post; +int HP_npc_ev_label_db_clear_sub_pre; +int HP_npc_ev_label_db_clear_sub_post; +int HP_npc_reload_pre; +int HP_npc_reload_post; +int HP_npc_unloadfile_pre; +int HP_npc_unloadfile_post; +int HP_npc_do_clear_npc_pre; +int HP_npc_do_clear_npc_post; +int HP_npc_debug_warps_sub_pre; +int HP_npc_debug_warps_sub_post; +int HP_npc_debug_warps_pre; +int HP_npc_debug_warps_post; +int HP_npc_secure_timeout_timer_pre; +int HP_npc_secure_timeout_timer_post; +int HP_party_init_pre; +int HP_party_init_post; +int HP_party_final_pre; +int HP_party_final_post; +int HP_party_search_pre; +int HP_party_search_post; +int HP_party_searchname_pre; +int HP_party_searchname_post; +int HP_party_getmemberid_pre; +int HP_party_getmemberid_post; +int HP_party_getavailablesd_pre; +int HP_party_getavailablesd_post; +int HP_party_create_pre; +int HP_party_create_post; +int HP_party_created_pre; +int HP_party_created_post; +int HP_party_request_info_pre; +int HP_party_request_info_post; +int HP_party_invite_pre; +int HP_party_invite_post; +int HP_party_member_joined_pre; +int HP_party_member_joined_post; +int HP_party_member_added_pre; +int HP_party_member_added_post; +int HP_party_leave_pre; +int HP_party_leave_post; +int HP_party_removemember_pre; +int HP_party_removemember_post; +int HP_party_member_withdraw_pre; +int HP_party_member_withdraw_post; +int HP_party_reply_invite_pre; +int HP_party_reply_invite_post; +int HP_party_recv_noinfo_pre; +int HP_party_recv_noinfo_post; +int HP_party_recv_info_pre; +int HP_party_recv_info_post; +int HP_party_recv_movemap_pre; +int HP_party_recv_movemap_post; +int HP_party_broken_pre; +int HP_party_broken_post; +int HP_party_optionchanged_pre; +int HP_party_optionchanged_post; +int HP_party_changeoption_pre; +int HP_party_changeoption_post; +int HP_party_changeleader_pre; +int HP_party_changeleader_post; +int HP_party_send_movemap_pre; +int HP_party_send_movemap_post; +int HP_party_send_levelup_pre; +int HP_party_send_levelup_post; +int HP_party_send_logout_pre; +int HP_party_send_logout_post; +int HP_party_send_message_pre; +int HP_party_send_message_post; +int HP_party_recv_message_pre; +int HP_party_recv_message_post; +int HP_party_skill_check_pre; +int HP_party_skill_check_post; +int HP_party_send_xy_clear_pre; +int HP_party_send_xy_clear_post; +int HP_party_exp_share_pre; +int HP_party_exp_share_post; +int HP_party_share_loot_pre; +int HP_party_share_loot_post; +int HP_party_send_dot_remove_pre; +int HP_party_send_dot_remove_post; +int HP_party_sub_count_pre; +int HP_party_sub_count_post; +int HP_party_booking_register_pre; +int HP_party_booking_register_post; +int HP_party_booking_update_pre; +int HP_party_booking_update_post; +int HP_party_booking_search_pre; +int HP_party_booking_search_post; +int HP_party_recruit_register_pre; +int HP_party_recruit_register_post; +int HP_party_recruit_update_pre; +int HP_party_recruit_update_post; +int HP_party_recruit_search_pre; +int HP_party_recruit_search_post; +int HP_party_booking_delete_pre; +int HP_party_booking_delete_post; +int HP_party_vforeachsamemap_pre; +int HP_party_vforeachsamemap_post; +int HP_party_send_xy_timer_pre; +int HP_party_send_xy_timer_post; +int HP_party_fill_member_pre; +int HP_party_fill_member_post; +int HP_party_sd_check_pre; +int HP_party_sd_check_post; +int HP_party_check_state_pre; +int HP_party_check_state_post; +int HP_party_create_booking_data_pre; +int HP_party_create_booking_data_post; +int HP_party_db_final_pre; +int HP_party_db_final_post; +int HP_path_blownpos_pre; +int HP_path_blownpos_post; +int HP_path_search_pre; +int HP_path_search_post; +int HP_path_search_long_pre; +int HP_path_search_long_post; +int HP_path_check_distance_pre; +int HP_path_check_distance_post; +int HP_path_distance_pre; +int HP_path_distance_post; +int HP_pc_init_pre; +int HP_pc_init_post; +int HP_pc_final_pre; +int HP_pc_final_post; +int HP_pc_get_dummy_sd_pre; +int HP_pc_get_dummy_sd_post; +int HP_pc_class2idx_pre; +int HP_pc_class2idx_post; +int HP_pc_get_group_level_pre; +int HP_pc_get_group_level_post; +int HP_pc_can_give_items_pre; +int HP_pc_can_give_items_post; +int HP_pc_can_use_command_pre; +int HP_pc_can_use_command_post; +int HP_pc_has_permission_pre; +int HP_pc_has_permission_post; +int HP_pc_set_group_pre; +int HP_pc_set_group_post; +int HP_pc_should_log_commands_pre; +int HP_pc_should_log_commands_post; +int HP_pc_setrestartvalue_pre; +int HP_pc_setrestartvalue_post; +int HP_pc_makesavestatus_pre; +int HP_pc_makesavestatus_post; +int HP_pc_respawn_pre; +int HP_pc_respawn_post; +int HP_pc_setnewpc_pre; +int HP_pc_setnewpc_post; +int HP_pc_authok_pre; +int HP_pc_authok_post; +int HP_pc_authfail_pre; +int HP_pc_authfail_post; +int HP_pc_reg_received_pre; +int HP_pc_reg_received_post; +int HP_pc_isequip_pre; +int HP_pc_isequip_post; +int HP_pc_equippoint_pre; +int HP_pc_equippoint_post; +int HP_pc_setinventorydata_pre; +int HP_pc_setinventorydata_post; +int HP_pc_checkskill_pre; +int HP_pc_checkskill_post; +int HP_pc_checkskill2_pre; +int HP_pc_checkskill2_post; +int HP_pc_checkallowskill_pre; +int HP_pc_checkallowskill_post; +int HP_pc_checkequip_pre; +int HP_pc_checkequip_post; +int HP_pc_calc_skilltree_pre; +int HP_pc_calc_skilltree_post; +int HP_pc_calc_skilltree_normalize_job_pre; +int HP_pc_calc_skilltree_normalize_job_post; +int HP_pc_clean_skilltree_pre; +int HP_pc_clean_skilltree_post; +int HP_pc_setpos_pre; +int HP_pc_setpos_post; +int HP_pc_setsavepoint_pre; +int HP_pc_setsavepoint_post; +int HP_pc_randomwarp_pre; +int HP_pc_randomwarp_post; +int HP_pc_memo_pre; +int HP_pc_memo_post; +int HP_pc_checkadditem_pre; +int HP_pc_checkadditem_post; +int HP_pc_inventoryblank_pre; +int HP_pc_inventoryblank_post; +int HP_pc_search_inventory_pre; +int HP_pc_search_inventory_post; +int HP_pc_payzeny_pre; +int HP_pc_payzeny_post; +int HP_pc_additem_pre; +int HP_pc_additem_post; +int HP_pc_getzeny_pre; +int HP_pc_getzeny_post; +int HP_pc_delitem_pre; +int HP_pc_delitem_post; +int HP_pc_paycash_pre; +int HP_pc_paycash_post; +int HP_pc_getcash_pre; +int HP_pc_getcash_post; +int HP_pc_cart_additem_pre; +int HP_pc_cart_additem_post; +int HP_pc_cart_delitem_pre; +int HP_pc_cart_delitem_post; +int HP_pc_putitemtocart_pre; +int HP_pc_putitemtocart_post; +int HP_pc_getitemfromcart_pre; +int HP_pc_getitemfromcart_post; +int HP_pc_cartitem_amount_pre; +int HP_pc_cartitem_amount_post; +int HP_pc_takeitem_pre; +int HP_pc_takeitem_post; +int HP_pc_dropitem_pre; +int HP_pc_dropitem_post; +int HP_pc_isequipped_pre; +int HP_pc_isequipped_post; +int HP_pc_can_Adopt_pre; +int HP_pc_can_Adopt_post; +int HP_pc_adoption_pre; +int HP_pc_adoption_post; +int HP_pc_updateweightstatus_pre; +int HP_pc_updateweightstatus_post; +int HP_pc_addautobonus_pre; +int HP_pc_addautobonus_post; +int HP_pc_exeautobonus_pre; +int HP_pc_exeautobonus_post; +int HP_pc_endautobonus_pre; +int HP_pc_endautobonus_post; +int HP_pc_delautobonus_pre; +int HP_pc_delautobonus_post; +int HP_pc_bonus_pre; +int HP_pc_bonus_post; +int HP_pc_bonus2_pre; +int HP_pc_bonus2_post; +int HP_pc_bonus3_pre; +int HP_pc_bonus3_post; +int HP_pc_bonus4_pre; +int HP_pc_bonus4_post; +int HP_pc_bonus5_pre; +int HP_pc_bonus5_post; +int HP_pc_skill_pre; +int HP_pc_skill_post; +int HP_pc_insert_card_pre; +int HP_pc_insert_card_post; +int HP_pc_steal_item_pre; +int HP_pc_steal_item_post; +int HP_pc_steal_coin_pre; +int HP_pc_steal_coin_post; +int HP_pc_modifybuyvalue_pre; +int HP_pc_modifybuyvalue_post; +int HP_pc_modifysellvalue_pre; +int HP_pc_modifysellvalue_post; +int HP_pc_follow_pre; +int HP_pc_follow_post; +int HP_pc_stop_following_pre; +int HP_pc_stop_following_post; +int HP_pc_maxbaselv_pre; +int HP_pc_maxbaselv_post; +int HP_pc_maxjoblv_pre; +int HP_pc_maxjoblv_post; +int HP_pc_checkbaselevelup_pre; +int HP_pc_checkbaselevelup_post; +int HP_pc_checkjoblevelup_pre; +int HP_pc_checkjoblevelup_post; +int HP_pc_gainexp_pre; +int HP_pc_gainexp_post; +int HP_pc_nextbaseexp_pre; +int HP_pc_nextbaseexp_post; +int HP_pc_thisbaseexp_pre; +int HP_pc_thisbaseexp_post; +int HP_pc_nextjobexp_pre; +int HP_pc_nextjobexp_post; +int HP_pc_thisjobexp_pre; +int HP_pc_thisjobexp_post; +int HP_pc_gets_status_point_pre; +int HP_pc_gets_status_point_post; +int HP_pc_need_status_point_pre; +int HP_pc_need_status_point_post; +int HP_pc_statusup_pre; +int HP_pc_statusup_post; +int HP_pc_statusup2_pre; +int HP_pc_statusup2_post; +int HP_pc_skillup_pre; +int HP_pc_skillup_post; +int HP_pc_allskillup_pre; +int HP_pc_allskillup_post; +int HP_pc_resetlvl_pre; +int HP_pc_resetlvl_post; +int HP_pc_resetstate_pre; +int HP_pc_resetstate_post; +int HP_pc_resetskill_pre; +int HP_pc_resetskill_post; +int HP_pc_resetfeel_pre; +int HP_pc_resetfeel_post; +int HP_pc_resethate_pre; +int HP_pc_resethate_post; +int HP_pc_equipitem_pre; +int HP_pc_equipitem_post; +int HP_pc_unequipitem_pre; +int HP_pc_unequipitem_post; +int HP_pc_checkitem_pre; +int HP_pc_checkitem_post; +int HP_pc_useitem_pre; +int HP_pc_useitem_post; +int HP_pc_skillatk_bonus_pre; +int HP_pc_skillatk_bonus_post; +int HP_pc_skillheal_bonus_pre; +int HP_pc_skillheal_bonus_post; +int HP_pc_skillheal2_bonus_pre; +int HP_pc_skillheal2_bonus_post; +int HP_pc_damage_pre; +int HP_pc_damage_post; +int HP_pc_dead_pre; +int HP_pc_dead_post; +int HP_pc_revive_pre; +int HP_pc_revive_post; +int HP_pc_heal_pre; +int HP_pc_heal_post; +int HP_pc_itemheal_pre; +int HP_pc_itemheal_post; +int HP_pc_percentheal_pre; +int HP_pc_percentheal_post; +int HP_pc_jobchange_pre; +int HP_pc_jobchange_post; +int HP_pc_setoption_pre; +int HP_pc_setoption_post; +int HP_pc_setcart_pre; +int HP_pc_setcart_post; +int HP_pc_setfalcon_pre; +int HP_pc_setfalcon_post; +int HP_pc_setriding_pre; +int HP_pc_setriding_post; +int HP_pc_setmadogear_pre; +int HP_pc_setmadogear_post; +int HP_pc_changelook_pre; +int HP_pc_changelook_post; +int HP_pc_equiplookall_pre; +int HP_pc_equiplookall_post; +int HP_pc_readparam_pre; +int HP_pc_readparam_post; +int HP_pc_setparam_pre; +int HP_pc_setparam_post; +int HP_pc_readreg_pre; +int HP_pc_readreg_post; +int HP_pc_setreg_pre; +int HP_pc_setreg_post; +int HP_pc_readregstr_pre; +int HP_pc_readregstr_post; +int HP_pc_setregstr_pre; +int HP_pc_setregstr_post; +int HP_pc_readregistry_pre; +int HP_pc_readregistry_post; +int HP_pc_setregistry_pre; +int HP_pc_setregistry_post; +int HP_pc_readregistry_str_pre; +int HP_pc_readregistry_str_post; +int HP_pc_setregistry_str_pre; +int HP_pc_setregistry_str_post; +int HP_pc_addeventtimer_pre; +int HP_pc_addeventtimer_post; +int HP_pc_deleventtimer_pre; +int HP_pc_deleventtimer_post; +int HP_pc_cleareventtimer_pre; +int HP_pc_cleareventtimer_post; +int HP_pc_addeventtimercount_pre; +int HP_pc_addeventtimercount_post; +int HP_pc_calc_pvprank_pre; +int HP_pc_calc_pvprank_post; +int HP_pc_calc_pvprank_timer_pre; +int HP_pc_calc_pvprank_timer_post; +int HP_pc_ismarried_pre; +int HP_pc_ismarried_post; +int HP_pc_marriage_pre; +int HP_pc_marriage_post; +int HP_pc_divorce_pre; +int HP_pc_divorce_post; +int HP_pc_get_partner_pre; +int HP_pc_get_partner_post; +int HP_pc_get_father_pre; +int HP_pc_get_father_post; +int HP_pc_get_mother_pre; +int HP_pc_get_mother_post; +int HP_pc_get_child_pre; +int HP_pc_get_child_post; +int HP_pc_bleeding_pre; +int HP_pc_bleeding_post; +int HP_pc_regen_pre; +int HP_pc_regen_post; +int HP_pc_setstand_pre; +int HP_pc_setstand_post; +int HP_pc_candrop_pre; +int HP_pc_candrop_post; +int HP_pc_jobid2mapid_pre; +int HP_pc_jobid2mapid_post; +int HP_pc_mapid2jobid_pre; +int HP_pc_mapid2jobid_post; +int HP_pc_job_name_pre; +int HP_pc_job_name_post; +int HP_pc_setinvincibletimer_pre; +int HP_pc_setinvincibletimer_post; +int HP_pc_delinvincibletimer_pre; +int HP_pc_delinvincibletimer_post; +int HP_pc_addspiritball_pre; +int HP_pc_addspiritball_post; +int HP_pc_delspiritball_pre; +int HP_pc_delspiritball_post; +int HP_pc_addfame_pre; +int HP_pc_addfame_post; +int HP_pc_famerank_pre; +int HP_pc_famerank_post; +int HP_pc_set_hate_mob_pre; +int HP_pc_set_hate_mob_post; +int HP_pc_readdb_pre; +int HP_pc_readdb_post; +int HP_pc_map_day_timer_pre; +int HP_pc_map_day_timer_post; +int HP_pc_map_night_timer_pre; +int HP_pc_map_night_timer_post; +int HP_pc_inventory_rentals_pre; +int HP_pc_inventory_rentals_post; +int HP_pc_inventory_rental_clear_pre; +int HP_pc_inventory_rental_clear_post; +int HP_pc_inventory_rental_add_pre; +int HP_pc_inventory_rental_add_post; +int HP_pc_disguise_pre; +int HP_pc_disguise_post; +int HP_pc_isautolooting_pre; +int HP_pc_isautolooting_post; +int HP_pc_overheat_pre; +int HP_pc_overheat_post; +int HP_pc_banding_pre; +int HP_pc_banding_post; +int HP_pc_itemcd_do_pre; +int HP_pc_itemcd_do_post; +int HP_pc_load_combo_pre; +int HP_pc_load_combo_post; +int HP_pc_add_charm_pre; +int HP_pc_add_charm_post; +int HP_pc_del_charm_pre; +int HP_pc_del_charm_post; +int HP_pc_baselevelchanged_pre; +int HP_pc_baselevelchanged_post; +int HP_pc_level_penalty_mod_pre; +int HP_pc_level_penalty_mod_post; +int HP_pc_calc_skillpoint_pre; +int HP_pc_calc_skillpoint_post; +int HP_pc_invincible_timer_pre; +int HP_pc_invincible_timer_post; +int HP_pc_spiritball_timer_pre; +int HP_pc_spiritball_timer_post; +int HP_pc_check_banding_pre; +int HP_pc_check_banding_post; +int HP_pc_inventory_rental_end_pre; +int HP_pc_inventory_rental_end_post; +int HP_pc_check_skilltree_pre; +int HP_pc_check_skilltree_post; +int HP_pc_bonus_autospell_pre; +int HP_pc_bonus_autospell_post; +int HP_pc_bonus_autospell_onskill_pre; +int HP_pc_bonus_autospell_onskill_post; +int HP_pc_bonus_addeff_pre; +int HP_pc_bonus_addeff_post; +int HP_pc_bonus_addeff_onskill_pre; +int HP_pc_bonus_addeff_onskill_post; +int HP_pc_bonus_item_drop_pre; +int HP_pc_bonus_item_drop_post; +int HP_pc_calcexp_pre; +int HP_pc_calcexp_post; +int HP_pc_respawn_timer_pre; +int HP_pc_respawn_timer_post; +int HP_pc_jobchange_killclone_pre; +int HP_pc_jobchange_killclone_post; +int HP_pc_getstat_pre; +int HP_pc_getstat_post; +int HP_pc_setstat_pre; +int HP_pc_setstat_post; +int HP_pc_eventtimer_pre; +int HP_pc_eventtimer_post; +int HP_pc_daynight_timer_sub_pre; +int HP_pc_daynight_timer_sub_post; +int HP_pc_charm_timer_pre; +int HP_pc_charm_timer_post; +int HP_pc_readdb_levelpenalty_pre; +int HP_pc_readdb_levelpenalty_post; +int HP_pc_autosave_pre; +int HP_pc_autosave_post; +int HP_pc_follow_timer_pre; +int HP_pc_follow_timer_post; +int HP_pc_read_skill_tree_pre; +int HP_pc_read_skill_tree_post; +int HP_pc_isUseitem_pre; +int HP_pc_isUseitem_post; +int HP_pc_show_steal_pre; +int HP_pc_show_steal_post; +int HP_pc_checkcombo_pre; +int HP_pc_checkcombo_post; +int HP_pc_calcweapontype_pre; +int HP_pc_calcweapontype_post; +int HP_pc_removecombo_pre; +int HP_pc_removecombo_post; +int HP_pet_init_pre; +int HP_pet_init_post; +int HP_pet_final_pre; +int HP_pet_final_post; +int HP_pet_hungry_val_pre; +int HP_pet_hungry_val_post; +int HP_pet_set_intimate_pre; +int HP_pet_set_intimate_post; +int HP_pet_create_egg_pre; +int HP_pet_create_egg_post; +int HP_pet_unlocktarget_pre; +int HP_pet_unlocktarget_post; +int HP_pet_attackskill_pre; +int HP_pet_attackskill_post; +int HP_pet_target_check_pre; +int HP_pet_target_check_post; +int HP_pet_sc_check_pre; +int HP_pet_sc_check_post; +int HP_pet_hungry_pre; +int HP_pet_hungry_post; +int HP_pet_search_petDB_index_pre; +int HP_pet_search_petDB_index_post; +int HP_pet_hungry_timer_delete_pre; +int HP_pet_hungry_timer_delete_post; +int HP_pet_performance_pre; +int HP_pet_performance_post; +int HP_pet_return_egg_pre; +int HP_pet_return_egg_post; +int HP_pet_data_init_pre; +int HP_pet_data_init_post; +int HP_pet_birth_process_pre; +int HP_pet_birth_process_post; +int HP_pet_recv_petdata_pre; +int HP_pet_recv_petdata_post; +int HP_pet_select_egg_pre; +int HP_pet_select_egg_post; +int HP_pet_catch_process1_pre; +int HP_pet_catch_process1_post; +int HP_pet_catch_process2_pre; +int HP_pet_catch_process2_post; +int HP_pet_get_egg_pre; +int HP_pet_get_egg_post; +int HP_pet_unequipitem_pre; +int HP_pet_unequipitem_post; +int HP_pet_food_pre; +int HP_pet_food_post; +int HP_pet_ai_sub_hard_lootsearch_pre; +int HP_pet_ai_sub_hard_lootsearch_post; +int HP_pet_menu_pre; +int HP_pet_menu_post; +int HP_pet_change_name_pre; +int HP_pet_change_name_post; +int HP_pet_change_name_ack_pre; +int HP_pet_change_name_ack_post; +int HP_pet_equipitem_pre; +int HP_pet_equipitem_post; +int HP_pet_randomwalk_pre; +int HP_pet_randomwalk_post; +int HP_pet_ai_sub_hard_pre; +int HP_pet_ai_sub_hard_post; +int HP_pet_ai_sub_foreachclient_pre; +int HP_pet_ai_sub_foreachclient_post; +int HP_pet_ai_hard_pre; +int HP_pet_ai_hard_post; +int HP_pet_delay_item_drop_pre; +int HP_pet_delay_item_drop_post; +int HP_pet_lootitem_drop_pre; +int HP_pet_lootitem_drop_post; +int HP_pet_skill_bonus_timer_pre; +int HP_pet_skill_bonus_timer_post; +int HP_pet_recovery_timer_pre; +int HP_pet_recovery_timer_post; +int HP_pet_heal_timer_pre; +int HP_pet_heal_timer_post; +int HP_pet_skill_support_timer_pre; +int HP_pet_skill_support_timer_post; +int HP_pet_read_db_pre; +int HP_pet_read_db_post; +int HP_quest_init_pre; +int HP_quest_init_post; +int HP_quest_reload_pre; +int HP_quest_reload_post; +int HP_quest_search_db_pre; +int HP_quest_search_db_post; +int HP_quest_pc_login_pre; +int HP_quest_pc_login_post; +int HP_quest_add_pre; +int HP_quest_add_post; +int HP_quest_change_pre; +int HP_quest_change_post; +int HP_quest_delete_pre; +int HP_quest_delete_post; +int HP_quest_update_objective_sub_pre; +int HP_quest_update_objective_sub_post; +int HP_quest_update_objective_pre; +int HP_quest_update_objective_post; +int HP_quest_update_status_pre; +int HP_quest_update_status_post; +int HP_quest_check_pre; +int HP_quest_check_post; +int HP_quest_read_db_pre; +int HP_quest_read_db_post; +int HP_script_init_pre; +int HP_script_init_post; +int HP_script_final_pre; +int HP_script_final_post; +int HP_script_reload_pre; +int HP_script_reload_post; +int HP_script_parse_pre; +int HP_script_parse_post; +int HP_script_parse_builtin_pre; +int HP_script_parse_builtin_post; +int HP_script_parse_subexpr_pre; +int HP_script_parse_subexpr_post; +int HP_script_skip_space_pre; +int HP_script_skip_space_post; +int HP_script_error_pre; +int HP_script_error_post; +int HP_script_warning_pre; +int HP_script_warning_post; +int HP_script_addScript_pre; +int HP_script_addScript_post; +int HP_script_conv_num_pre; +int HP_script_conv_num_post; +int HP_script_conv_str_pre; +int HP_script_conv_str_post; +int HP_script_rid2sd_pre; +int HP_script_rid2sd_post; +int HP_script_detach_rid_pre; +int HP_script_detach_rid_post; +int HP_script_push_val_pre; +int HP_script_push_val_post; +int HP_script_get_val_pre; +int HP_script_get_val_post; +int HP_script_get_val2_pre; +int HP_script_get_val2_post; +int HP_script_push_str_pre; +int HP_script_push_str_post; +int HP_script_push_copy_pre; +int HP_script_push_copy_post; +int HP_script_pop_stack_pre; +int HP_script_pop_stack_post; +int HP_script_set_constant_pre; +int HP_script_set_constant_post; +int HP_script_set_constant2_pre; +int HP_script_set_constant2_post; +int HP_script_set_constant_force_pre; +int HP_script_set_constant_force_post; +int HP_script_get_constant_pre; +int HP_script_get_constant_post; +int HP_script_label_add_pre; +int HP_script_label_add_post; +int HP_script_run_pre; +int HP_script_run_post; +int HP_script_run_main_pre; +int HP_script_run_main_post; +int HP_script_run_timer_pre; +int HP_script_run_timer_post; +int HP_script_set_var_pre; +int HP_script_set_var_post; +int HP_script_stop_instances_pre; +int HP_script_stop_instances_post; +int HP_script_free_code_pre; +int HP_script_free_code_post; +int HP_script_free_vars_pre; +int HP_script_free_vars_post; +int HP_script_alloc_state_pre; +int HP_script_alloc_state_post; +int HP_script_free_state_pre; +int HP_script_free_state_post; +int HP_script_run_autobonus_pre; +int HP_script_run_autobonus_post; +int HP_script_cleararray_pc_pre; +int HP_script_cleararray_pc_post; +int HP_script_setarray_pc_pre; +int HP_script_setarray_pc_post; +int HP_script_config_read_pre; +int HP_script_config_read_post; +int HP_script_add_str_pre; +int HP_script_add_str_post; +int HP_script_get_str_pre; +int HP_script_get_str_post; +int HP_script_search_str_pre; +int HP_script_search_str_post; +int HP_script_setd_sub_pre; +int HP_script_setd_sub_post; +int HP_script_attach_state_pre; +int HP_script_attach_state_post; +int HP_script_queue_pre; +int HP_script_queue_post; +int HP_script_queue_add_pre; +int HP_script_queue_add_post; +int HP_script_queue_del_pre; +int HP_script_queue_del_post; +int HP_script_queue_remove_pre; +int HP_script_queue_remove_post; +int HP_script_queue_create_pre; +int HP_script_queue_create_post; +int HP_script_queue_clear_pre; +int HP_script_queue_clear_post; +int HP_script_parse_curly_close_pre; +int HP_script_parse_curly_close_post; +int HP_script_parse_syntax_close_pre; +int HP_script_parse_syntax_close_post; +int HP_script_parse_syntax_close_sub_pre; +int HP_script_parse_syntax_close_sub_post; +int HP_script_parse_syntax_pre; +int HP_script_parse_syntax_post; +int HP_script_get_com_pre; +int HP_script_get_com_post; +int HP_script_get_num_pre; +int HP_script_get_num_post; +int HP_script_op2name_pre; +int HP_script_op2name_post; +int HP_script_reportsrc_pre; +int HP_script_reportsrc_post; +int HP_script_reportdata_pre; +int HP_script_reportdata_post; +int HP_script_reportfunc_pre; +int HP_script_reportfunc_post; +int HP_script_disp_error_message2_pre; +int HP_script_disp_error_message2_post; +int HP_script_disp_warning_message_pre; +int HP_script_disp_warning_message_post; +int HP_script_check_event_pre; +int HP_script_check_event_post; +int HP_script_calc_hash_pre; +int HP_script_calc_hash_post; +int HP_script_addb_pre; +int HP_script_addb_post; +int HP_script_addc_pre; +int HP_script_addc_post; +int HP_script_addi_pre; +int HP_script_addi_post; +int HP_script_addl_pre; +int HP_script_addl_post; +int HP_script_set_label_pre; +int HP_script_set_label_post; +int HP_script_skip_word_pre; +int HP_script_skip_word_post; +int HP_script_add_word_pre; +int HP_script_add_word_post; +int HP_script_parse_callfunc_pre; +int HP_script_parse_callfunc_post; +int HP_script_parse_nextline_pre; +int HP_script_parse_nextline_post; +int HP_script_parse_variable_pre; +int HP_script_parse_variable_post; +int HP_script_parse_simpleexpr_pre; +int HP_script_parse_simpleexpr_post; +int HP_script_parse_expr_pre; +int HP_script_parse_expr_post; +int HP_script_parse_line_pre; +int HP_script_parse_line_post; +int HP_script_read_constdb_pre; +int HP_script_read_constdb_post; +int HP_script_print_line_pre; +int HP_script_print_line_post; +int HP_script_errorwarning_sub_pre; +int HP_script_errorwarning_sub_post; +int HP_script_set_reg_pre; +int HP_script_set_reg_post; +int HP_script_stack_expand_pre; +int HP_script_stack_expand_post; +int HP_script_push_retinfo_pre; +int HP_script_push_retinfo_post; +int HP_script_pop_val_pre; +int HP_script_pop_val_post; +int HP_script_op_3_pre; +int HP_script_op_3_post; +int HP_script_op_2str_pre; +int HP_script_op_2str_post; +int HP_script_op_2num_pre; +int HP_script_op_2num_post; +int HP_script_op_2_pre; +int HP_script_op_2_post; +int HP_script_op_1_pre; +int HP_script_op_1_post; +int HP_script_check_buildin_argtype_pre; +int HP_script_check_buildin_argtype_post; +int HP_script_detach_state_pre; +int HP_script_detach_state_post; +int HP_script_db_free_code_sub_pre; +int HP_script_db_free_code_sub_post; +int HP_script_add_autobonus_pre; +int HP_script_add_autobonus_post; +int HP_script_menu_countoptions_pre; +int HP_script_menu_countoptions_post; +int HP_script_buildin_areawarp_sub_pre; +int HP_script_buildin_areawarp_sub_post; +int HP_script_buildin_areapercentheal_sub_pre; +int HP_script_buildin_areapercentheal_sub_post; +int HP_script_getarraysize_pre; +int HP_script_getarraysize_post; +int HP_script_buildin_delitem_delete_pre; +int HP_script_buildin_delitem_delete_post; +int HP_script_buildin_delitem_search_pre; +int HP_script_buildin_delitem_search_post; +int HP_script_buildin_killmonster_sub_strip_pre; +int HP_script_buildin_killmonster_sub_strip_post; +int HP_script_buildin_killmonster_sub_pre; +int HP_script_buildin_killmonster_sub_post; +int HP_script_buildin_killmonsterall_sub_strip_pre; +int HP_script_buildin_killmonsterall_sub_strip_post; +int HP_script_buildin_killmonsterall_sub_pre; +int HP_script_buildin_killmonsterall_sub_post; +int HP_script_buildin_announce_sub_pre; +int HP_script_buildin_announce_sub_post; +int HP_script_buildin_getareausers_sub_pre; +int HP_script_buildin_getareausers_sub_post; +int HP_script_buildin_getareadropitem_sub_pre; +int HP_script_buildin_getareadropitem_sub_post; +int HP_script_mapflag_pvp_sub_pre; +int HP_script_mapflag_pvp_sub_post; +int HP_script_buildin_pvpoff_sub_pre; +int HP_script_buildin_pvpoff_sub_post; +int HP_script_buildin_maprespawnguildid_sub_pc_pre; +int HP_script_buildin_maprespawnguildid_sub_pc_post; +int HP_script_buildin_maprespawnguildid_sub_mob_pre; +int HP_script_buildin_maprespawnguildid_sub_mob_post; +int HP_script_buildin_mobcount_sub_pre; +int HP_script_buildin_mobcount_sub_post; +int HP_script_playBGM_sub_pre; +int HP_script_playBGM_sub_post; +int HP_script_playBGM_foreachpc_sub_pre; +int HP_script_playBGM_foreachpc_sub_post; +int HP_script_soundeffect_sub_pre; +int HP_script_soundeffect_sub_post; +int HP_script_buildin_query_sql_sub_pre; +int HP_script_buildin_query_sql_sub_post; +int HP_script_axtoi_pre; +int HP_script_axtoi_post; +int HP_script_buildin_instance_warpall_sub_pre; +int HP_script_buildin_instance_warpall_sub_post; +int HP_script_buildin_mobuseskill_sub_pre; +int HP_script_buildin_mobuseskill_sub_post; +int HP_script_cleanfloor_sub_pre; +int HP_script_cleanfloor_sub_post; +int HP_script_run_func_pre; +int HP_script_run_func_post; +int HP_searchstore_open_pre; +int HP_searchstore_open_post; +int HP_searchstore_query_pre; +int HP_searchstore_query_post; +int HP_searchstore_querynext_pre; +int HP_searchstore_querynext_post; +int HP_searchstore_next_pre; +int HP_searchstore_next_post; +int HP_searchstore_clear_pre; +int HP_searchstore_clear_post; +int HP_searchstore_close_pre; +int HP_searchstore_close_post; +int HP_searchstore_click_pre; +int HP_searchstore_click_post; +int HP_searchstore_queryremote_pre; +int HP_searchstore_queryremote_post; +int HP_searchstore_clearremote_pre; +int HP_searchstore_clearremote_post; +int HP_searchstore_result_pre; +int HP_searchstore_result_post; +int HP_skill_init_pre; +int HP_skill_init_post; +int HP_skill_final_pre; +int HP_skill_final_post; +int HP_skill_reload_pre; +int HP_skill_reload_post; +int HP_skill_read_db_pre; +int HP_skill_read_db_post; +int HP_skill_get_index_pre; +int HP_skill_get_index_post; +int HP_skill_get_type_pre; +int HP_skill_get_type_post; +int HP_skill_get_hit_pre; +int HP_skill_get_hit_post; +int HP_skill_get_inf_pre; +int HP_skill_get_inf_post; +int HP_skill_get_ele_pre; +int HP_skill_get_ele_post; +int HP_skill_get_nk_pre; +int HP_skill_get_nk_post; +int HP_skill_get_max_pre; +int HP_skill_get_max_post; +int HP_skill_get_range_pre; +int HP_skill_get_range_post; +int HP_skill_get_range2_pre; +int HP_skill_get_range2_post; +int HP_skill_get_splash_pre; +int HP_skill_get_splash_post; +int HP_skill_get_hp_pre; +int HP_skill_get_hp_post; +int HP_skill_get_mhp_pre; +int HP_skill_get_mhp_post; +int HP_skill_get_sp_pre; +int HP_skill_get_sp_post; +int HP_skill_get_state_pre; +int HP_skill_get_state_post; +int HP_skill_get_spiritball_pre; +int HP_skill_get_spiritball_post; +int HP_skill_get_zeny_pre; +int HP_skill_get_zeny_post; +int HP_skill_get_num_pre; +int HP_skill_get_num_post; +int HP_skill_get_cast_pre; +int HP_skill_get_cast_post; +int HP_skill_get_delay_pre; +int HP_skill_get_delay_post; +int HP_skill_get_walkdelay_pre; +int HP_skill_get_walkdelay_post; +int HP_skill_get_time_pre; +int HP_skill_get_time_post; +int HP_skill_get_time2_pre; +int HP_skill_get_time2_post; +int HP_skill_get_castnodex_pre; +int HP_skill_get_castnodex_post; +int HP_skill_get_delaynodex_pre; +int HP_skill_get_delaynodex_post; +int HP_skill_get_castdef_pre; +int HP_skill_get_castdef_post; +int HP_skill_get_weapontype_pre; +int HP_skill_get_weapontype_post; +int HP_skill_get_ammotype_pre; +int HP_skill_get_ammotype_post; +int HP_skill_get_ammo_qty_pre; +int HP_skill_get_ammo_qty_post; +int HP_skill_get_unit_id_pre; +int HP_skill_get_unit_id_post; +int HP_skill_get_inf2_pre; +int HP_skill_get_inf2_post; +int HP_skill_get_castcancel_pre; +int HP_skill_get_castcancel_post; +int HP_skill_get_maxcount_pre; +int HP_skill_get_maxcount_post; +int HP_skill_get_blewcount_pre; +int HP_skill_get_blewcount_post; +int HP_skill_get_unit_flag_pre; +int HP_skill_get_unit_flag_post; +int HP_skill_get_unit_target_pre; +int HP_skill_get_unit_target_post; +int HP_skill_get_unit_interval_pre; +int HP_skill_get_unit_interval_post; +int HP_skill_get_unit_bl_target_pre; +int HP_skill_get_unit_bl_target_post; +int HP_skill_get_unit_layout_type_pre; +int HP_skill_get_unit_layout_type_post; +int HP_skill_get_unit_range_pre; +int HP_skill_get_unit_range_post; +int HP_skill_get_cooldown_pre; +int HP_skill_get_cooldown_post; +int HP_skill_tree_get_max_pre; +int HP_skill_tree_get_max_post; +int HP_skill_get_name_pre; +int HP_skill_get_name_post; +int HP_skill_get_desc_pre; +int HP_skill_get_desc_post; +int HP_skill_chk_pre; +int HP_skill_chk_post; +int HP_skill_get_casttype_pre; +int HP_skill_get_casttype_post; +int HP_skill_get_casttype2_pre; +int HP_skill_get_casttype2_post; +int HP_skill_name2id_pre; +int HP_skill_name2id_post; +int HP_skill_isammotype_pre; +int HP_skill_isammotype_post; +int HP_skill_castend_id_pre; +int HP_skill_castend_id_post; +int HP_skill_castend_pos_pre; +int HP_skill_castend_pos_post; +int HP_skill_castend_map_pre; +int HP_skill_castend_map_post; +int HP_skill_cleartimerskill_pre; +int HP_skill_cleartimerskill_post; +int HP_skill_addtimerskill_pre; +int HP_skill_addtimerskill_post; +int HP_skill_additional_effect_pre; +int HP_skill_additional_effect_post; +int HP_skill_counter_additional_effect_pre; +int HP_skill_counter_additional_effect_post; +int HP_skill_blown_pre; +int HP_skill_blown_post; +int HP_skill_break_equip_pre; +int HP_skill_break_equip_post; +int HP_skill_strip_equip_pre; +int HP_skill_strip_equip_post; +int HP_skill_id2group_pre; +int HP_skill_id2group_post; +int HP_skill_unitsetting_pre; +int HP_skill_unitsetting_post; +int HP_skill_initunit_pre; +int HP_skill_initunit_post; +int HP_skill_delunit_pre; +int HP_skill_delunit_post; +int HP_skill_init_unitgroup_pre; +int HP_skill_init_unitgroup_post; +int HP_skill_del_unitgroup_pre; +int HP_skill_del_unitgroup_post; +int HP_skill_clear_unitgroup_pre; +int HP_skill_clear_unitgroup_post; +int HP_skill_clear_group_pre; +int HP_skill_clear_group_post; +int HP_skill_unit_onplace_pre; +int HP_skill_unit_onplace_post; +int HP_skill_unit_ondamaged_pre; +int HP_skill_unit_ondamaged_post; +int HP_skill_cast_fix_pre; +int HP_skill_cast_fix_post; +int HP_skill_cast_fix_sc_pre; +int HP_skill_cast_fix_sc_post; +int HP_skill_vf_cast_fix_pre; +int HP_skill_vf_cast_fix_post; +int HP_skill_delay_fix_pre; +int HP_skill_delay_fix_post; +int HP_skill_check_condition_castbegin_pre; +int HP_skill_check_condition_castbegin_post; +int HP_skill_check_condition_castend_pre; +int HP_skill_check_condition_castend_post; +int HP_skill_consume_requirement_pre; +int HP_skill_consume_requirement_post; +int HP_skill_get_requirement_pre; +int HP_skill_get_requirement_post; +int HP_skill_check_pc_partner_pre; +int HP_skill_check_pc_partner_post; +int HP_skill_unit_move_pre; +int HP_skill_unit_move_post; +int HP_skill_unit_onleft_pre; +int HP_skill_unit_onleft_post; +int HP_skill_unit_onout_pre; +int HP_skill_unit_onout_post; +int HP_skill_unit_move_unit_group_pre; +int HP_skill_unit_move_unit_group_post; +int HP_skill_sit_pre; +int HP_skill_sit_post; +int HP_skill_brandishspear_pre; +int HP_skill_brandishspear_post; +int HP_skill_repairweapon_pre; +int HP_skill_repairweapon_post; +int HP_skill_identify_pre; +int HP_skill_identify_post; +int HP_skill_weaponrefine_pre; +int HP_skill_weaponrefine_post; +int HP_skill_autospell_pre; +int HP_skill_autospell_post; +int HP_skill_calc_heal_pre; +int HP_skill_calc_heal_post; +int HP_skill_check_cloaking_pre; +int HP_skill_check_cloaking_post; +int HP_skill_enchant_elemental_end_pre; +int HP_skill_enchant_elemental_end_post; +int HP_skill_not_ok_pre; +int HP_skill_not_ok_post; +int HP_skill_not_ok_hom_pre; +int HP_skill_not_ok_hom_post; +int HP_skill_not_ok_mercenary_pre; +int HP_skill_not_ok_mercenary_post; +int HP_skill_chastle_mob_changetarget_pre; +int HP_skill_chastle_mob_changetarget_post; +int HP_skill_can_produce_mix_pre; +int HP_skill_can_produce_mix_post; +int HP_skill_produce_mix_pre; +int HP_skill_produce_mix_post; +int HP_skill_arrow_create_pre; +int HP_skill_arrow_create_post; +int HP_skill_castend_nodamage_id_pre; +int HP_skill_castend_nodamage_id_post; +int HP_skill_castend_damage_id_pre; +int HP_skill_castend_damage_id_post; +int HP_skill_castend_pos2_pre; +int HP_skill_castend_pos2_post; +int HP_skill_blockpc_start_pre; +int HP_skill_blockpc_start_post; +int HP_skill_blockhomun_start_pre; +int HP_skill_blockhomun_start_post; +int HP_skill_blockmerc_start_pre; +int HP_skill_blockmerc_start_post; +int HP_skill_attack_pre; +int HP_skill_attack_post; +int HP_skill_attack_area_pre; +int HP_skill_attack_area_post; +int HP_skill_area_sub_pre; +int HP_skill_area_sub_post; +int HP_skill_area_sub_count_pre; +int HP_skill_area_sub_count_post; +int HP_skill_check_unit_range_pre; +int HP_skill_check_unit_range_post; +int HP_skill_check_unit_range_sub_pre; +int HP_skill_check_unit_range_sub_post; +int HP_skill_check_unit_range2_pre; +int HP_skill_check_unit_range2_post; +int HP_skill_check_unit_range2_sub_pre; +int HP_skill_check_unit_range2_sub_post; +int HP_skill_toggle_magicpower_pre; +int HP_skill_toggle_magicpower_post; +int HP_skill_magic_reflect_pre; +int HP_skill_magic_reflect_post; +int HP_skill_onskillusage_pre; +int HP_skill_onskillusage_post; +int HP_skill_cell_overlap_pre; +int HP_skill_cell_overlap_post; +int HP_skill_timerskill_pre; +int HP_skill_timerskill_post; +int HP_skill_trap_splash_pre; +int HP_skill_trap_splash_post; +int HP_skill_check_condition_mercenary_pre; +int HP_skill_check_condition_mercenary_post; +int HP_skill_locate_element_field_pre; +int HP_skill_locate_element_field_post; +int HP_skill_graffitiremover_pre; +int HP_skill_graffitiremover_post; +int HP_skill_activate_reverberation_pre; +int HP_skill_activate_reverberation_post; +int HP_skill_dance_overlap_sub_pre; +int HP_skill_dance_overlap_sub_post; +int HP_skill_dance_overlap_pre; +int HP_skill_dance_overlap_post; +int HP_skill_get_unit_layout_pre; +int HP_skill_get_unit_layout_post; +int HP_skill_frostjoke_scream_pre; +int HP_skill_frostjoke_scream_post; +int HP_skill_greed_pre; +int HP_skill_greed_post; +int HP_skill_destroy_trap_pre; +int HP_skill_destroy_trap_post; +int HP_skill_icewall_block_pre; +int HP_skill_icewall_block_post; +int HP_skill_unitgrouptickset_search_pre; +int HP_skill_unitgrouptickset_search_post; +int HP_skill_dance_switch_pre; +int HP_skill_dance_switch_post; +int HP_skill_check_condition_char_sub_pre; +int HP_skill_check_condition_char_sub_post; +int HP_skill_check_condition_mob_master_sub_pre; +int HP_skill_check_condition_mob_master_sub_post; +int HP_skill_brandishspear_first_pre; +int HP_skill_brandishspear_first_post; +int HP_skill_brandishspear_dir_pre; +int HP_skill_brandishspear_dir_post; +int HP_skill_get_fixed_cast_pre; +int HP_skill_get_fixed_cast_post; +int HP_skill_sit_count_pre; +int HP_skill_sit_count_post; +int HP_skill_sit_in_pre; +int HP_skill_sit_in_post; +int HP_skill_sit_out_pre; +int HP_skill_sit_out_post; +int HP_skill_unitsetmapcell_pre; +int HP_skill_unitsetmapcell_post; +int HP_skill_unit_onplace_timer_pre; +int HP_skill_unit_onplace_timer_post; +int HP_skill_unit_effect_pre; +int HP_skill_unit_effect_post; +int HP_skill_unit_timer_sub_onplace_pre; +int HP_skill_unit_timer_sub_onplace_post; +int HP_skill_unit_move_sub_pre; +int HP_skill_unit_move_sub_post; +int HP_skill_blockpc_end_pre; +int HP_skill_blockpc_end_post; +int HP_skill_blockhomun_end_pre; +int HP_skill_blockhomun_end_post; +int HP_skill_blockmerc_end_pre; +int HP_skill_blockmerc_end_post; +int HP_skill_split_atoi_pre; +int HP_skill_split_atoi_post; +int HP_skill_unit_timer_pre; +int HP_skill_unit_timer_post; +int HP_skill_unit_timer_sub_pre; +int HP_skill_unit_timer_sub_post; +int HP_skill_init_unit_layout_pre; +int HP_skill_init_unit_layout_post; +int HP_skill_parse_row_skilldb_pre; +int HP_skill_parse_row_skilldb_post; +int HP_skill_parse_row_requiredb_pre; +int HP_skill_parse_row_requiredb_post; +int HP_skill_parse_row_castdb_pre; +int HP_skill_parse_row_castdb_post; +int HP_skill_parse_row_castnodexdb_pre; +int HP_skill_parse_row_castnodexdb_post; +int HP_skill_parse_row_unitdb_pre; +int HP_skill_parse_row_unitdb_post; +int HP_skill_parse_row_producedb_pre; +int HP_skill_parse_row_producedb_post; +int HP_skill_parse_row_createarrowdb_pre; +int HP_skill_parse_row_createarrowdb_post; +int HP_skill_parse_row_abradb_pre; +int HP_skill_parse_row_abradb_post; +int HP_skill_parse_row_spellbookdb_pre; +int HP_skill_parse_row_spellbookdb_post; +int HP_skill_parse_row_magicmushroomdb_pre; +int HP_skill_parse_row_magicmushroomdb_post; +int HP_skill_parse_row_reproducedb_pre; +int HP_skill_parse_row_reproducedb_post; +int HP_skill_parse_row_improvisedb_pre; +int HP_skill_parse_row_improvisedb_post; +int HP_skill_parse_row_changematerialdb_pre; +int HP_skill_parse_row_changematerialdb_post; +int HP_skill_usave_add_pre; +int HP_skill_usave_add_post; +int HP_skill_usave_trigger_pre; +int HP_skill_usave_trigger_post; +int HP_skill_cooldown_load_pre; +int HP_skill_cooldown_load_post; +int HP_skill_spellbook_pre; +int HP_skill_spellbook_post; +int HP_skill_block_check_pre; +int HP_skill_block_check_post; +int HP_skill_detonator_pre; +int HP_skill_detonator_post; +int HP_skill_check_camouflage_pre; +int HP_skill_check_camouflage_post; +int HP_skill_magicdecoy_pre; +int HP_skill_magicdecoy_post; +int HP_skill_poisoningweapon_pre; +int HP_skill_poisoningweapon_post; +int HP_skill_select_menu_pre; +int HP_skill_select_menu_post; +int HP_skill_elementalanalysis_pre; +int HP_skill_elementalanalysis_post; +int HP_skill_changematerial_pre; +int HP_skill_changematerial_post; +int HP_skill_get_elemental_type_pre; +int HP_skill_get_elemental_type_post; +int HP_skill_cooldown_save_pre; +int HP_skill_cooldown_save_post; +int HP_skill_maelstrom_suction_pre; +int HP_skill_maelstrom_suction_post; +int HP_skill_get_new_group_id_pre; +int HP_skill_get_new_group_id_post; +int HP_status_init_pre; +int HP_status_init_post; +int HP_status_final_pre; +int HP_status_final_post; +int HP_status_get_refine_chance_pre; +int HP_status_get_refine_chance_post; +int HP_status_skill2sc_pre; +int HP_status_skill2sc_post; +int HP_status_sc2skill_pre; +int HP_status_sc2skill_post; +int HP_status_sc2scb_flag_pre; +int HP_status_sc2scb_flag_post; +int HP_status_type2relevant_bl_types_pre; +int HP_status_type2relevant_bl_types_post; +int HP_status_get_sc_type_pre; +int HP_status_get_sc_type_post; +int HP_status_damage_pre; +int HP_status_damage_post; +int HP_status_charge_pre; +int HP_status_charge_post; +int HP_status_percent_change_pre; +int HP_status_percent_change_post; +int HP_status_set_hp_pre; +int HP_status_set_hp_post; +int HP_status_set_sp_pre; +int HP_status_set_sp_post; +int HP_status_heal_pre; +int HP_status_heal_post; +int HP_status_revive_pre; +int HP_status_revive_post; +int HP_status_get_regen_data_pre; +int HP_status_get_regen_data_post; +int HP_status_get_status_data_pre; +int HP_status_get_status_data_post; +int HP_status_get_base_status_pre; +int HP_status_get_base_status_post; +int HP_status_get_name_pre; +int HP_status_get_name_post; +int HP_status_get_class_pre; +int HP_status_get_class_post; +int HP_status_get_lv_pre; +int HP_status_get_lv_post; +int HP_status_get_def_pre; +int HP_status_get_def_post; +int HP_status_get_speed_pre; +int HP_status_get_speed_post; +int HP_status_calc_attack_element_pre; +int HP_status_calc_attack_element_post; +int HP_status_get_party_id_pre; +int HP_status_get_party_id_post; +int HP_status_get_guild_id_pre; +int HP_status_get_guild_id_post; +int HP_status_get_emblem_id_pre; +int HP_status_get_emblem_id_post; +int HP_status_get_mexp_pre; +int HP_status_get_mexp_post; +int HP_status_get_race2_pre; +int HP_status_get_race2_post; +int HP_status_get_viewdata_pre; +int HP_status_get_viewdata_post; +int HP_status_set_viewdata_pre; +int HP_status_set_viewdata_post; +int HP_status_change_init_pre; +int HP_status_change_init_post; +int HP_status_get_sc_pre; +int HP_status_get_sc_post; +int HP_status_isdead_pre; +int HP_status_isdead_post; +int HP_status_isimmune_pre; +int HP_status_isimmune_post; +int HP_status_get_sc_def_pre; +int HP_status_get_sc_def_post; +int HP_status_change_start_pre; +int HP_status_change_start_post; +int HP_status_change_end__pre; +int HP_status_change_end__post; +int HP_status_kaahi_heal_timer_pre; +int HP_status_kaahi_heal_timer_post; +int HP_status_change_timer_pre; +int HP_status_change_timer_post; +int HP_status_change_timer_sub_pre; +int HP_status_change_timer_sub_post; +int HP_status_change_clear_pre; +int HP_status_change_clear_post; +int HP_status_change_clear_buffs_pre; +int HP_status_change_clear_buffs_post; +int HP_status_calc_bl__pre; +int HP_status_calc_bl__post; +int HP_status_calc_mob__pre; +int HP_status_calc_mob__post; +int HP_status_calc_pet__pre; +int HP_status_calc_pet__post; +int HP_status_calc_pc__pre; +int HP_status_calc_pc__post; +int HP_status_calc_homunculus__pre; +int HP_status_calc_homunculus__post; +int HP_status_calc_mercenary__pre; +int HP_status_calc_mercenary__post; +int HP_status_calc_elemental__pre; +int HP_status_calc_elemental__post; +int HP_status_calc_misc_pre; +int HP_status_calc_misc_post; +int HP_status_calc_regen_pre; +int HP_status_calc_regen_post; +int HP_status_calc_regen_rate_pre; +int HP_status_calc_regen_rate_post; +int HP_status_check_skilluse_pre; +int HP_status_check_skilluse_post; +int HP_status_check_visibility_pre; +int HP_status_check_visibility_post; +int HP_status_change_spread_pre; +int HP_status_change_spread_post; +int HP_status_calc_def_pre; +int HP_status_calc_def_post; +int HP_status_calc_def2_pre; +int HP_status_calc_def2_post; +int HP_status_calc_mdef_pre; +int HP_status_calc_mdef_post; +int HP_status_calc_mdef2_pre; +int HP_status_calc_mdef2_post; +int HP_status_calc_batk_pre; +int HP_status_calc_batk_post; +int HP_status_base_matk_pre; +int HP_status_base_matk_post; +int HP_status_get_weapon_atk_pre; +int HP_status_get_weapon_atk_post; +int HP_status_get_total_mdef_pre; +int HP_status_get_total_mdef_post; +int HP_status_get_total_def_pre; +int HP_status_get_total_def_post; +int HP_status_get_matk_pre; +int HP_status_get_matk_post; +int HP_status_readdb_pre; +int HP_status_readdb_post; +int HP_status_initChangeTables_pre; +int HP_status_initChangeTables_post; +int HP_status_initDummyData_pre; +int HP_status_initDummyData_post; +int HP_status_base_amotion_pc_pre; +int HP_status_base_amotion_pc_post; +int HP_status_base_atk_pre; +int HP_status_base_atk_post; +int HP_status_calc_sigma_pre; +int HP_status_calc_sigma_post; +int HP_status_base_pc_maxhp_pre; +int HP_status_base_pc_maxhp_post; +int HP_status_base_pc_maxsp_pre; +int HP_status_base_pc_maxsp_post; +int HP_status_calc_npc__pre; +int HP_status_calc_npc__post; +int HP_status_calc_str_pre; +int HP_status_calc_str_post; +int HP_status_calc_agi_pre; +int HP_status_calc_agi_post; +int HP_status_calc_vit_pre; +int HP_status_calc_vit_post; +int HP_status_calc_int_pre; +int HP_status_calc_int_post; +int HP_status_calc_dex_pre; +int HP_status_calc_dex_post; +int HP_status_calc_luk_pre; +int HP_status_calc_luk_post; +int HP_status_calc_watk_pre; +int HP_status_calc_watk_post; +int HP_status_calc_matk_pre; +int HP_status_calc_matk_post; +int HP_status_calc_hit_pre; +int HP_status_calc_hit_post; +int HP_status_calc_critical_pre; +int HP_status_calc_critical_post; +int HP_status_calc_flee_pre; +int HP_status_calc_flee_post; +int HP_status_calc_flee2_pre; +int HP_status_calc_flee2_post; +int HP_status_calc_speed_pre; +int HP_status_calc_speed_post; +int HP_status_calc_aspd_rate_pre; +int HP_status_calc_aspd_rate_post; +int HP_status_calc_dmotion_pre; +int HP_status_calc_dmotion_post; +int HP_status_calc_aspd_pre; +int HP_status_calc_aspd_post; +int HP_status_calc_fix_aspd_pre; +int HP_status_calc_fix_aspd_post; +int HP_status_calc_maxhp_pre; +int HP_status_calc_maxhp_post; +int HP_status_calc_maxsp_pre; +int HP_status_calc_maxsp_post; +int HP_status_calc_element_pre; +int HP_status_calc_element_post; +int HP_status_calc_element_lv_pre; +int HP_status_calc_element_lv_post; +int HP_status_calc_mode_pre; +int HP_status_calc_mode_post; +int HP_status_calc_ematk_pre; +int HP_status_calc_ematk_post; +int HP_status_calc_bl_main_pre; +int HP_status_calc_bl_main_post; +int HP_status_display_add_pre; +int HP_status_display_add_post; +int HP_status_display_remove_pre; +int HP_status_display_remove_post; +int HP_status_natural_heal_pre; +int HP_status_natural_heal_post; +int HP_status_natural_heal_timer_pre; +int HP_status_natural_heal_timer_post; +int HP_status_readdb_job1_pre; +int HP_status_readdb_job1_post; +int HP_status_readdb_job2_pre; +int HP_status_readdb_job2_post; +int HP_status_readdb_sizefix_pre; +int HP_status_readdb_sizefix_post; +int HP_status_readdb_refine_pre; +int HP_status_readdb_refine_post; +int HP_status_readdb_scconfig_pre; +int HP_status_readdb_scconfig_post; +int HP_storage_reconnect_pre; +int HP_storage_reconnect_post; +int HP_storage_delitem_pre; +int HP_storage_delitem_post; +int HP_storage_open_pre; +int HP_storage_open_post; +int HP_storage_add_pre; +int HP_storage_add_post; +int HP_storage_get_pre; +int HP_storage_get_post; +int HP_storage_additem_pre; +int HP_storage_additem_post; +int HP_storage_addfromcart_pre; +int HP_storage_addfromcart_post; +int HP_storage_gettocart_pre; +int HP_storage_gettocart_post; +int HP_storage_close_pre; +int HP_storage_close_post; +int HP_storage_pc_quit_pre; +int HP_storage_pc_quit_post; +int HP_storage_comp_item_pre; +int HP_storage_comp_item_post; +int HP_storage_sortitem_pre; +int HP_storage_sortitem_post; +int HP_storage_reconnect_sub_pre; +int HP_storage_reconnect_sub_post; +int HP_trade_request_pre; +int HP_trade_request_post; +int HP_trade_ack_pre; +int HP_trade_ack_post; +int HP_trade_check_impossible_pre; +int HP_trade_check_impossible_post; +int HP_trade_check_pre; +int HP_trade_check_post; +int HP_trade_additem_pre; +int HP_trade_additem_post; +int HP_trade_addzeny_pre; +int HP_trade_addzeny_post; +int HP_trade_ok_pre; +int HP_trade_ok_post; +int HP_trade_cancel_pre; +int HP_trade_cancel_post; +int HP_trade_commit_pre; +int HP_trade_commit_post; +int HP_unit_init_pre; +int HP_unit_init_post; +int HP_unit_final_pre; +int HP_unit_final_post; +int HP_unit_bl2ud_pre; +int HP_unit_bl2ud_post; +int HP_unit_bl2ud2_pre; +int HP_unit_bl2ud2_post; +int HP_unit_attack_timer_pre; +int HP_unit_attack_timer_post; +int HP_unit_walktoxy_timer_pre; +int HP_unit_walktoxy_timer_post; +int HP_unit_walktoxy_sub_pre; +int HP_unit_walktoxy_sub_post; +int HP_unit_delay_walktoxy_timer_pre; +int HP_unit_delay_walktoxy_timer_post; +int HP_unit_walktoxy_pre; +int HP_unit_walktoxy_post; +int HP_unit_walktobl_sub_pre; +int HP_unit_walktobl_sub_post; +int HP_unit_walktobl_pre; +int HP_unit_walktobl_post; +int HP_unit_run_pre; +int HP_unit_run_post; +int HP_unit_wugdash_pre; +int HP_unit_wugdash_post; +int HP_unit_escape_pre; +int HP_unit_escape_post; +int HP_unit_movepos_pre; +int HP_unit_movepos_post; +int HP_unit_setdir_pre; +int HP_unit_setdir_post; +int HP_unit_getdir_pre; +int HP_unit_getdir_post; +int HP_unit_blown_pre; +int HP_unit_blown_post; +int HP_unit_warp_pre; +int HP_unit_warp_post; +int HP_unit_stop_walking_pre; +int HP_unit_stop_walking_post; +int HP_unit_skilluse_id_pre; +int HP_unit_skilluse_id_post; +int HP_unit_is_walking_pre; +int HP_unit_is_walking_post; +int HP_unit_can_move_pre; +int HP_unit_can_move_post; +int HP_unit_resume_running_pre; +int HP_unit_resume_running_post; +int HP_unit_set_walkdelay_pre; +int HP_unit_set_walkdelay_post; +int HP_unit_skilluse_id2_pre; +int HP_unit_skilluse_id2_post; +int HP_unit_skilluse_pos_pre; +int HP_unit_skilluse_pos_post; +int HP_unit_skilluse_pos2_pre; +int HP_unit_skilluse_pos2_post; +int HP_unit_set_target_pre; +int HP_unit_set_target_post; +int HP_unit_stop_attack_pre; +int HP_unit_stop_attack_post; +int HP_unit_unattackable_pre; +int HP_unit_unattackable_post; +int HP_unit_attack_pre; +int HP_unit_attack_post; +int HP_unit_cancel_combo_pre; +int HP_unit_cancel_combo_post; +int HP_unit_can_reach_pos_pre; +int HP_unit_can_reach_pos_post; +int HP_unit_can_reach_bl_pre; +int HP_unit_can_reach_bl_post; +int HP_unit_calc_pos_pre; +int HP_unit_calc_pos_post; +int HP_unit_attack_timer_sub_pre; +int HP_unit_attack_timer_sub_post; +int HP_unit_skillcastcancel_pre; +int HP_unit_skillcastcancel_post; +int HP_unit_dataset_pre; +int HP_unit_dataset_post; +int HP_unit_counttargeted_pre; +int HP_unit_counttargeted_post; +int HP_unit_fixdamage_pre; +int HP_unit_fixdamage_post; +int HP_unit_changeviewsize_pre; +int HP_unit_changeviewsize_post; +int HP_unit_remove_map_pre; +int HP_unit_remove_map_post; +int HP_unit_remove_map_pc_pre; +int HP_unit_remove_map_pc_post; +int HP_unit_free_pc_pre; +int HP_unit_free_pc_post; +int HP_unit_free_pre; +int HP_unit_free_post; +int HP_vending_init_pre; +int HP_vending_init_post; +int HP_vending_final_pre; +int HP_vending_final_post; +int HP_vending_close_pre; +int HP_vending_close_post; +int HP_vending_open_pre; +int HP_vending_open_post; +int HP_vending_list_pre; +int HP_vending_list_post; +int HP_vending_purchase_pre; +int HP_vending_purchase_post; +int HP_vending_search_pre; +int HP_vending_search_post; +int HP_vending_searchall_pre; +int HP_vending_searchall_post; +} count; +struct { +struct atcommand_interface atcommand; +struct battle_interface battle; +struct battleground_interface bg; +struct buyingstore_interface buyingstore; +struct chat_interface chat; +struct chrif_interface chrif; +struct clif_interface clif; +struct duel_interface duel; +struct elemental_interface elemental; +struct guild_interface guild; +struct guild_storage_interface gstorage; +struct homunculus_interface homun; +struct instance_interface instance; +struct intif_interface intif; +struct irc_bot_interface ircbot; +struct itemdb_interface itemdb; +struct log_interface logs; +struct mail_interface mail; +struct map_interface map; +struct mapit_interface mapit; +struct mapreg_interface mapreg; +struct mercenary_interface mercenary; +struct mob_interface mob; +struct npc_interface npc; +struct party_interface party; +struct path_interface path; +struct pc_interface pc; +struct pet_interface pet; +struct quest_interface quest; +struct script_interface script; +struct searchstore_interface searchstore; +struct skill_interface skill; +struct status_interface status; +struct storage_interface storage; +struct trade_interface trade; +struct unit_interface unit; +struct vending_interface vending; +} source; diff --git a/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc new file mode 100644 index 000000000..368e4a4c7 --- /dev/null +++ b/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc @@ -0,0 +1,2467 @@ +struct HookingPointData HookingPoints[] = { +/* atcommand */ +{ HP_POP(atcommand->init), HP_POP2(HP_atcommand_init), 0 }, +{ HP_POP(atcommand->final), HP_POP2(HP_atcommand_final), 2 }, +{ HP_POP(atcommand->parse), HP_POP2(HP_atcommand_parse), 4 }, +{ HP_POP(atcommand->create), HP_POP2(HP_atcommand_create), 6 }, +{ HP_POP(atcommand->can_use), HP_POP2(HP_atcommand_can_use), 8 }, +{ HP_POP(atcommand->can_use2), HP_POP2(HP_atcommand_can_use2), 10 }, +{ HP_POP(atcommand->load_groups), HP_POP2(HP_atcommand_load_groups), 12 }, +{ HP_POP(atcommand->exists), HP_POP2(HP_atcommand_exists), 14 }, +{ HP_POP(atcommand->msg_read), HP_POP2(HP_atcommand_msg_read), 16 }, +{ HP_POP(atcommand->final_msg), HP_POP2(HP_atcommand_final_msg), 18 }, +{ HP_POP(atcommand->get_bind_byname), HP_POP2(HP_atcommand_get_bind_byname), 20 }, +{ HP_POP(atcommand->get_info_byname), HP_POP2(HP_atcommand_get_info_byname), 22 }, +{ HP_POP(atcommand->check_alias), HP_POP2(HP_atcommand_check_alias), 24 }, +{ HP_POP(atcommand->get_suggestions), HP_POP2(HP_atcommand_get_suggestions), 26 }, +{ HP_POP(atcommand->config_read), HP_POP2(HP_atcommand_config_read), 28 }, +{ HP_POP(atcommand->stopattack), HP_POP2(HP_atcommand_stopattack), 30 }, +{ HP_POP(atcommand->pvpoff_sub), HP_POP2(HP_atcommand_pvpoff_sub), 32 }, +{ HP_POP(atcommand->pvpon_sub), HP_POP2(HP_atcommand_pvpon_sub), 34 }, +{ HP_POP(atcommand->atkillmonster_sub), HP_POP2(HP_atcommand_atkillmonster_sub), 36 }, +{ HP_POP(atcommand->raise_sub), HP_POP2(HP_atcommand_raise_sub), 38 }, +{ HP_POP(atcommand->get_jail_time), HP_POP2(HP_atcommand_get_jail_time), 40 }, +{ HP_POP(atcommand->cleanfloor_sub), HP_POP2(HP_atcommand_cleanfloor_sub), 42 }, +{ HP_POP(atcommand->mutearea_sub), HP_POP2(HP_atcommand_mutearea_sub), 44 }, +{ HP_POP(atcommand->commands_sub), HP_POP2(HP_atcommand_commands_sub), 46 }, +{ HP_POP(atcommand->cmd_db_clear), HP_POP2(HP_atcommand_cmd_db_clear), 48 }, +{ HP_POP(atcommand->cmd_db_clear_sub), HP_POP2(HP_atcommand_cmd_db_clear_sub), 50 }, +{ HP_POP(atcommand->doload), HP_POP2(HP_atcommand_doload), 52 }, +{ HP_POP(atcommand->base_commands), HP_POP2(HP_atcommand_base_commands), 54 }, +/* battle */ +{ HP_POP(battle->init), HP_POP2(HP_battle_init), 56 }, +{ HP_POP(battle->final), HP_POP2(HP_battle_final), 58 }, +{ HP_POP(battle->calc_attack), HP_POP2(HP_battle_calc_attack), 60 }, +{ HP_POP(battle->calc_damage), HP_POP2(HP_battle_calc_damage), 62 }, +{ HP_POP(battle->calc_gvg_damage), HP_POP2(HP_battle_calc_gvg_damage), 64 }, +{ HP_POP(battle->calc_bg_damage), HP_POP2(HP_battle_calc_bg_damage), 66 }, +{ HP_POP(battle->weapon_attack), HP_POP2(HP_battle_weapon_attack), 68 }, +{ HP_POP(battle->calc_weapon_attack), HP_POP2(HP_battle_calc_weapon_attack), 70 }, +{ HP_POP(battle->delay_damage), HP_POP2(HP_battle_delay_damage), 72 }, +{ HP_POP(battle->drain), HP_POP2(HP_battle_drain), 74 }, +{ HP_POP(battle->calc_return_damage), HP_POP2(HP_battle_calc_return_damage), 76 }, +{ HP_POP(battle->attr_ratio), HP_POP2(HP_battle_attr_ratio), 78 }, +{ HP_POP(battle->attr_fix), HP_POP2(HP_battle_attr_fix), 80 }, +{ HP_POP(battle->calc_cardfix), HP_POP2(HP_battle_calc_cardfix), 82 }, +{ HP_POP(battle->calc_elefix), HP_POP2(HP_battle_calc_elefix), 84 }, +{ HP_POP(battle->calc_masteryfix), HP_POP2(HP_battle_calc_masteryfix), 86 }, +{ HP_POP(battle->calc_skillratio), HP_POP2(HP_battle_calc_skillratio), 88 }, +{ HP_POP(battle->calc_sizefix), HP_POP2(HP_battle_calc_sizefix), 90 }, +{ HP_POP(battle->calc_weapon_damage), HP_POP2(HP_battle_calc_weapon_damage), 92 }, +{ HP_POP(battle->calc_defense), HP_POP2(HP_battle_calc_defense), 94 }, +{ HP_POP(battle->get_master), HP_POP2(HP_battle_get_master), 96 }, +{ HP_POP(battle->get_targeted), HP_POP2(HP_battle_get_targeted), 98 }, +{ HP_POP(battle->get_enemy), HP_POP2(HP_battle_get_enemy), 100 }, +{ HP_POP(battle->get_target), HP_POP2(HP_battle_get_target), 102 }, +{ HP_POP(battle->get_current_skill), HP_POP2(HP_battle_get_current_skill), 104 }, +{ HP_POP(battle->check_undead), HP_POP2(HP_battle_check_undead), 106 }, +{ HP_POP(battle->check_target), HP_POP2(HP_battle_check_target), 108 }, +{ HP_POP(battle->check_range), HP_POP2(HP_battle_check_range), 110 }, +{ HP_POP(battle->consume_ammo), HP_POP2(HP_battle_consume_ammo), 112 }, +{ HP_POP(battle->get_targeted_sub), HP_POP2(HP_battle_get_targeted_sub), 114 }, +{ HP_POP(battle->get_enemy_sub), HP_POP2(HP_battle_get_enemy_sub), 116 }, +{ HP_POP(battle->get_enemy_area_sub), HP_POP2(HP_battle_get_enemy_area_sub), 118 }, +{ HP_POP(battle->delay_damage_sub), HP_POP2(HP_battle_delay_damage_sub), 120 }, +{ HP_POP(battle->blewcount_bonus), HP_POP2(HP_battle_blewcount_bonus), 122 }, +{ HP_POP(battle->range_type), HP_POP2(HP_battle_range_type), 124 }, +{ HP_POP(battle->calc_base_damage), HP_POP2(HP_battle_calc_base_damage), 126 }, +{ HP_POP(battle->calc_base_damage2), HP_POP2(HP_battle_calc_base_damage2), 128 }, +{ HP_POP(battle->calc_misc_attack), HP_POP2(HP_battle_calc_misc_attack), 130 }, +{ HP_POP(battle->calc_magic_attack), HP_POP2(HP_battle_calc_magic_attack), 132 }, +{ HP_POP(battle->adjust_skill_damage), HP_POP2(HP_battle_adjust_skill_damage), 134 }, +{ HP_POP(battle->add_mastery), HP_POP2(HP_battle_add_mastery), 136 }, +{ HP_POP(battle->calc_drain), HP_POP2(HP_battle_calc_drain), 138 }, +{ HP_POP(battle->config_read), HP_POP2(HP_battle_config_read), 140 }, +{ HP_POP(battle->config_set_defaults), HP_POP2(HP_battle_config_set_defaults), 142 }, +{ HP_POP(battle->config_set_value), HP_POP2(HP_battle_config_set_value), 144 }, +{ HP_POP(battle->config_get_value), HP_POP2(HP_battle_config_get_value), 146 }, +{ HP_POP(battle->config_adjust), HP_POP2(HP_battle_config_adjust), 148 }, +{ HP_POP(battle->get_enemy_area), HP_POP2(HP_battle_get_enemy_area), 150 }, +{ HP_POP(battle->damage_area), HP_POP2(HP_battle_damage_area), 152 }, +/* bg */ +{ HP_POP(bg->init), HP_POP2(HP_bg_init), 154 }, +{ HP_POP(bg->final), HP_POP2(HP_bg_final), 156 }, +{ HP_POP(bg->name2arena), HP_POP2(HP_bg_name2arena), 158 }, +{ HP_POP(bg->queue_add), HP_POP2(HP_bg_queue_add), 160 }, +{ HP_POP(bg->can_queue), HP_POP2(HP_bg_can_queue), 162 }, +{ HP_POP(bg->id2pos), HP_POP2(HP_bg_id2pos), 164 }, +{ HP_POP(bg->queue_pc_cleanup), HP_POP2(HP_bg_queue_pc_cleanup), 166 }, +{ HP_POP(bg->begin), HP_POP2(HP_bg_begin), 168 }, +{ HP_POP(bg->begin_timer), HP_POP2(HP_bg_begin_timer), 170 }, +{ HP_POP(bg->queue_pregame), HP_POP2(HP_bg_queue_pregame), 172 }, +{ HP_POP(bg->fillup_timer), HP_POP2(HP_bg_fillup_timer), 174 }, +{ HP_POP(bg->queue_ready_ack), HP_POP2(HP_bg_queue_ready_ack), 176 }, +{ HP_POP(bg->match_over), HP_POP2(HP_bg_match_over), 178 }, +{ HP_POP(bg->queue_check), HP_POP2(HP_bg_queue_check), 180 }, +{ HP_POP(bg->team_search), HP_POP2(HP_bg_team_search), 182 }, +{ HP_POP(bg->getavailablesd), HP_POP2(HP_bg_getavailablesd), 184 }, +{ HP_POP(bg->team_delete), HP_POP2(HP_bg_team_delete), 186 }, +{ HP_POP(bg->team_warp), HP_POP2(HP_bg_team_warp), 188 }, +{ HP_POP(bg->send_dot_remove), HP_POP2(HP_bg_send_dot_remove), 190 }, +{ HP_POP(bg->team_join), HP_POP2(HP_bg_team_join), 192 }, +{ HP_POP(bg->team_leave), HP_POP2(HP_bg_team_leave), 194 }, +{ HP_POP(bg->member_respawn), HP_POP2(HP_bg_member_respawn), 196 }, +{ HP_POP(bg->create), HP_POP2(HP_bg_create), 198 }, +{ HP_POP(bg->team_get_id), HP_POP2(HP_bg_team_get_id), 200 }, +{ HP_POP(bg->send_message), HP_POP2(HP_bg_send_message), 202 }, +{ HP_POP(bg->send_xy_timer_sub), HP_POP2(HP_bg_send_xy_timer_sub), 204 }, +{ HP_POP(bg->send_xy_timer), HP_POP2(HP_bg_send_xy_timer), 206 }, +{ HP_POP(bg->config_read), HP_POP2(HP_bg_config_read), 208 }, +/* buyingstore */ +{ HP_POP(buyingstore->setup), HP_POP2(HP_buyingstore_setup), 210 }, +{ HP_POP(buyingstore->create), HP_POP2(HP_buyingstore_create), 212 }, +{ HP_POP(buyingstore->close), HP_POP2(HP_buyingstore_close), 214 }, +{ HP_POP(buyingstore->open), HP_POP2(HP_buyingstore_open), 216 }, +{ HP_POP(buyingstore->trade), HP_POP2(HP_buyingstore_trade), 218 }, +{ HP_POP(buyingstore->search), HP_POP2(HP_buyingstore_search), 220 }, +{ HP_POP(buyingstore->searchall), HP_POP2(HP_buyingstore_searchall), 222 }, +{ HP_POP(buyingstore->getuid), HP_POP2(HP_buyingstore_getuid), 224 }, +/* chat */ +{ HP_POP(chat->create_pc_chat), HP_POP2(HP_chat_create_pc_chat), 226 }, +{ HP_POP(chat->join), HP_POP2(HP_chat_join), 228 }, +{ HP_POP(chat->leave), HP_POP2(HP_chat_leave), 230 }, +{ HP_POP(chat->change_owner), HP_POP2(HP_chat_change_owner), 232 }, +{ HP_POP(chat->change_status), HP_POP2(HP_chat_change_status), 234 }, +{ HP_POP(chat->kick), HP_POP2(HP_chat_kick), 236 }, +{ HP_POP(chat->create_npc_chat), HP_POP2(HP_chat_create_npc_chat), 238 }, +{ HP_POP(chat->delete_npc_chat), HP_POP2(HP_chat_delete_npc_chat), 240 }, +{ HP_POP(chat->enable_event), HP_POP2(HP_chat_enable_event), 242 }, +{ HP_POP(chat->disable_event), HP_POP2(HP_chat_disable_event), 244 }, +{ HP_POP(chat->npc_kick_all), HP_POP2(HP_chat_npc_kick_all), 246 }, +{ HP_POP(chat->trigger_event), HP_POP2(HP_chat_trigger_event), 248 }, +{ HP_POP(chat->create), HP_POP2(HP_chat_create), 250 }, +/* chrif */ +{ HP_POP(chrif->final), HP_POP2(HP_chrif_final), 252 }, +{ HP_POP(chrif->init), HP_POP2(HP_chrif_init), 254 }, +{ HP_POP(chrif->setuserid), HP_POP2(HP_chrif_setuserid), 256 }, +{ HP_POP(chrif->setpasswd), HP_POP2(HP_chrif_setpasswd), 258 }, +{ HP_POP(chrif->checkdefaultlogin), HP_POP2(HP_chrif_checkdefaultlogin), 260 }, +{ HP_POP(chrif->setip), HP_POP2(HP_chrif_setip), 262 }, +{ HP_POP(chrif->setport), HP_POP2(HP_chrif_setport), 264 }, +{ HP_POP(chrif->isconnected), HP_POP2(HP_chrif_isconnected), 266 }, +{ HP_POP(chrif->check_shutdown), HP_POP2(HP_chrif_check_shutdown), 268 }, +{ HP_POP(chrif->search), HP_POP2(HP_chrif_search), 270 }, +{ HP_POP(chrif->auth_check), HP_POP2(HP_chrif_auth_check), 272 }, +{ HP_POP(chrif->auth_delete), HP_POP2(HP_chrif_auth_delete), 274 }, +{ HP_POP(chrif->auth_finished), HP_POP2(HP_chrif_auth_finished), 276 }, +{ HP_POP(chrif->authreq), HP_POP2(HP_chrif_authreq), 278 }, +{ HP_POP(chrif->authok), HP_POP2(HP_chrif_authok), 280 }, +{ HP_POP(chrif->scdata_request), HP_POP2(HP_chrif_scdata_request), 282 }, +{ HP_POP(chrif->save), HP_POP2(HP_chrif_save), 284 }, +{ HP_POP(chrif->charselectreq), HP_POP2(HP_chrif_charselectreq), 286 }, +{ HP_POP(chrif->changemapserver), HP_POP2(HP_chrif_changemapserver), 288 }, +{ HP_POP(chrif->searchcharid), HP_POP2(HP_chrif_searchcharid), 290 }, +{ HP_POP(chrif->changeemail), HP_POP2(HP_chrif_changeemail), 292 }, +{ HP_POP(chrif->char_ask_name), HP_POP2(HP_chrif_char_ask_name), 294 }, +{ HP_POP(chrif->updatefamelist), HP_POP2(HP_chrif_updatefamelist), 296 }, +{ HP_POP(chrif->buildfamelist), HP_POP2(HP_chrif_buildfamelist), 298 }, +{ HP_POP(chrif->save_scdata), HP_POP2(HP_chrif_save_scdata), 300 }, +{ HP_POP(chrif->ragsrvinfo), HP_POP2(HP_chrif_ragsrvinfo), 302 }, +{ HP_POP(chrif->char_offline), HP_POP2(HP_chrif_char_offline), 304 }, +{ HP_POP(chrif->char_offline_nsd), HP_POP2(HP_chrif_char_offline_nsd), 306 }, +{ HP_POP(chrif->char_reset_offline), HP_POP2(HP_chrif_char_reset_offline), 308 }, +{ HP_POP(chrif->send_users_tochar), HP_POP2(HP_chrif_send_users_tochar), 310 }, +{ HP_POP(chrif->char_online), HP_POP2(HP_chrif_char_online), 312 }, +{ HP_POP(chrif->changesex), HP_POP2(HP_chrif_changesex), 314 }, +{ HP_POP(chrif->divorce), HP_POP2(HP_chrif_divorce), 316 }, +{ HP_POP(chrif->removefriend), HP_POP2(HP_chrif_removefriend), 318 }, +{ HP_POP(chrif->send_report), HP_POP2(HP_chrif_send_report), 320 }, +{ HP_POP(chrif->flush_fifo), HP_POP2(HP_chrif_flush_fifo), 322 }, +{ HP_POP(chrif->skillid2idx), HP_POP2(HP_chrif_skillid2idx), 324 }, +{ HP_POP(chrif->sd_to_auth), HP_POP2(HP_chrif_sd_to_auth), 326 }, +{ HP_POP(chrif->check_connect_char_server), HP_POP2(HP_chrif_check_connect_char_server), 328 }, +{ HP_POP(chrif->auth_logout), HP_POP2(HP_chrif_auth_logout), 330 }, +{ HP_POP(chrif->save_ack), HP_POP2(HP_chrif_save_ack), 332 }, +{ HP_POP(chrif->reconnect), HP_POP2(HP_chrif_reconnect), 334 }, +{ HP_POP(chrif->auth_db_cleanup_sub), HP_POP2(HP_chrif_auth_db_cleanup_sub), 336 }, +{ HP_POP(chrif->char_ask_name_answer), HP_POP2(HP_chrif_char_ask_name_answer), 338 }, +{ HP_POP(chrif->auth_db_final), HP_POP2(HP_chrif_auth_db_final), 340 }, +{ HP_POP(chrif->send_usercount_tochar), HP_POP2(HP_chrif_send_usercount_tochar), 342 }, +{ HP_POP(chrif->auth_db_cleanup), HP_POP2(HP_chrif_auth_db_cleanup), 344 }, +{ HP_POP(chrif->connect), HP_POP2(HP_chrif_connect), 346 }, +{ HP_POP(chrif->connectack), HP_POP2(HP_chrif_connectack), 348 }, +{ HP_POP(chrif->sendmap), HP_POP2(HP_chrif_sendmap), 350 }, +{ HP_POP(chrif->sendmapack), HP_POP2(HP_chrif_sendmapack), 352 }, +{ HP_POP(chrif->recvmap), HP_POP2(HP_chrif_recvmap), 354 }, +{ HP_POP(chrif->changemapserverack), HP_POP2(HP_chrif_changemapserverack), 356 }, +{ HP_POP(chrif->changedsex), HP_POP2(HP_chrif_changedsex), 358 }, +{ HP_POP(chrif->divorceack), HP_POP2(HP_chrif_divorceack), 360 }, +{ HP_POP(chrif->accountban), HP_POP2(HP_chrif_accountban), 362 }, +{ HP_POP(chrif->recvfamelist), HP_POP2(HP_chrif_recvfamelist), 364 }, +{ HP_POP(chrif->load_scdata), HP_POP2(HP_chrif_load_scdata), 366 }, +{ HP_POP(chrif->update_ip), HP_POP2(HP_chrif_update_ip), 368 }, +{ HP_POP(chrif->disconnectplayer), HP_POP2(HP_chrif_disconnectplayer), 370 }, +{ HP_POP(chrif->removemap), HP_POP2(HP_chrif_removemap), 372 }, +{ HP_POP(chrif->updatefamelist_ack), HP_POP2(HP_chrif_updatefamelist_ack), 374 }, +{ HP_POP(chrif->keepalive), HP_POP2(HP_chrif_keepalive), 376 }, +{ HP_POP(chrif->keepalive_ack), HP_POP2(HP_chrif_keepalive_ack), 378 }, +{ HP_POP(chrif->deadopt), HP_POP2(HP_chrif_deadopt), 380 }, +{ HP_POP(chrif->authfail), HP_POP2(HP_chrif_authfail), 382 }, +{ HP_POP(chrif->on_ready), HP_POP2(HP_chrif_on_ready), 384 }, +{ HP_POP(chrif->on_disconnect), HP_POP2(HP_chrif_on_disconnect), 386 }, +{ HP_POP(chrif->parse), HP_POP2(HP_chrif_parse), 388 }, +/* clif */ +{ HP_POP(clif->init), HP_POP2(HP_clif_init), 390 }, +{ HP_POP(clif->final), HP_POP2(HP_clif_final), 392 }, +{ HP_POP(clif->setip), HP_POP2(HP_clif_setip), 394 }, +{ HP_POP(clif->setbindip), HP_POP2(HP_clif_setbindip), 396 }, +{ HP_POP(clif->setport), HP_POP2(HP_clif_setport), 398 }, +{ HP_POP(clif->refresh_ip), HP_POP2(HP_clif_refresh_ip), 400 }, +{ HP_POP(clif->send), HP_POP2(HP_clif_send), 402 }, +{ HP_POP(clif->send_sub), HP_POP2(HP_clif_send_sub), 404 }, +{ HP_POP(clif->parse), HP_POP2(HP_clif_parse), 406 }, +{ HP_POP(clif->parse_cmd), HP_POP2(HP_clif_parse_cmd), 408 }, +{ HP_POP(clif->decrypt_cmd), HP_POP2(HP_clif_decrypt_cmd), 410 }, +{ HP_POP(clif->authok), HP_POP2(HP_clif_authok), 412 }, +{ HP_POP(clif->authrefuse), HP_POP2(HP_clif_authrefuse), 414 }, +{ HP_POP(clif->authfail_fd), HP_POP2(HP_clif_authfail_fd), 416 }, +{ HP_POP(clif->charselectok), HP_POP2(HP_clif_charselectok), 418 }, +{ HP_POP(clif->dropflooritem), HP_POP2(HP_clif_dropflooritem), 420 }, +{ HP_POP(clif->clearflooritem), HP_POP2(HP_clif_clearflooritem), 422 }, +{ HP_POP(clif->additem), HP_POP2(HP_clif_additem), 424 }, +{ HP_POP(clif->dropitem), HP_POP2(HP_clif_dropitem), 426 }, +{ HP_POP(clif->delitem), HP_POP2(HP_clif_delitem), 428 }, +{ HP_POP(clif->takeitem), HP_POP2(HP_clif_takeitem), 430 }, +{ HP_POP(clif->arrowequip), HP_POP2(HP_clif_arrowequip), 432 }, +{ HP_POP(clif->arrow_fail), HP_POP2(HP_clif_arrow_fail), 434 }, +{ HP_POP(clif->use_card), HP_POP2(HP_clif_use_card), 436 }, +{ HP_POP(clif->cart_additem), HP_POP2(HP_clif_cart_additem), 438 }, +{ HP_POP(clif->cart_delitem), HP_POP2(HP_clif_cart_delitem), 440 }, +{ HP_POP(clif->equipitemack), HP_POP2(HP_clif_equipitemack), 442 }, +{ HP_POP(clif->unequipitemack), HP_POP2(HP_clif_unequipitemack), 444 }, +{ HP_POP(clif->useitemack), HP_POP2(HP_clif_useitemack), 446 }, +{ HP_POP(clif->addcards), HP_POP2(HP_clif_addcards), 448 }, +{ HP_POP(clif->addcards2), HP_POP2(HP_clif_addcards2), 450 }, +{ HP_POP(clif->item_sub), HP_POP2(HP_clif_item_sub), 452 }, +{ HP_POP(clif->getareachar_item), HP_POP2(HP_clif_getareachar_item), 454 }, +{ HP_POP(clif->cart_additem_ack), HP_POP2(HP_clif_cart_additem_ack), 456 }, +{ HP_POP(clif->cashshop_load), HP_POP2(HP_clif_cashshop_load), 458 }, +{ HP_POP(clif->package_announce), HP_POP2(HP_clif_package_announce), 460 }, +{ HP_POP(clif->clearunit_single), HP_POP2(HP_clif_clearunit_single), 462 }, +{ HP_POP(clif->clearunit_area), HP_POP2(HP_clif_clearunit_area), 464 }, +{ HP_POP(clif->clearunit_delayed), HP_POP2(HP_clif_clearunit_delayed), 466 }, +{ HP_POP(clif->walkok), HP_POP2(HP_clif_walkok), 468 }, +{ HP_POP(clif->move), HP_POP2(HP_clif_move), 470 }, +{ HP_POP(clif->move2), HP_POP2(HP_clif_move2), 472 }, +{ HP_POP(clif->blown), HP_POP2(HP_clif_blown), 474 }, +{ HP_POP(clif->slide), HP_POP2(HP_clif_slide), 476 }, +{ HP_POP(clif->fixpos), HP_POP2(HP_clif_fixpos), 478 }, +{ HP_POP(clif->changelook), HP_POP2(HP_clif_changelook), 480 }, +{ HP_POP(clif->changetraplook), HP_POP2(HP_clif_changetraplook), 482 }, +{ HP_POP(clif->refreshlook), HP_POP2(HP_clif_refreshlook), 484 }, +{ HP_POP(clif->class_change), HP_POP2(HP_clif_class_change), 486 }, +{ HP_POP(clif->skill_setunit), HP_POP2(HP_clif_skill_setunit), 488 }, +{ HP_POP(clif->skill_delunit), HP_POP2(HP_clif_skill_delunit), 490 }, +{ HP_POP(clif->skillunit_update), HP_POP2(HP_clif_skillunit_update), 492 }, +{ HP_POP(clif->clearunit_delayed_sub), HP_POP2(HP_clif_clearunit_delayed_sub), 494 }, +{ HP_POP(clif->set_unit_idle), HP_POP2(HP_clif_set_unit_idle), 496 }, +{ HP_POP(clif->spawn_unit), HP_POP2(HP_clif_spawn_unit), 498 }, +{ HP_POP(clif->spawn_unit2), HP_POP2(HP_clif_spawn_unit2), 500 }, +{ HP_POP(clif->set_unit_idle2), HP_POP2(HP_clif_set_unit_idle2), 502 }, +{ HP_POP(clif->set_unit_walking), HP_POP2(HP_clif_set_unit_walking), 504 }, +{ HP_POP(clif->calc_walkdelay), HP_POP2(HP_clif_calc_walkdelay), 506 }, +{ HP_POP(clif->getareachar_skillunit), HP_POP2(HP_clif_getareachar_skillunit), 508 }, +{ HP_POP(clif->getareachar_unit), HP_POP2(HP_clif_getareachar_unit), 510 }, +{ HP_POP(clif->clearchar_skillunit), HP_POP2(HP_clif_clearchar_skillunit), 512 }, +{ HP_POP(clif->getareachar), HP_POP2(HP_clif_getareachar), 514 }, +{ HP_POP(clif->spawn), HP_POP2(HP_clif_spawn), 516 }, +{ HP_POP(clif->changemap), HP_POP2(HP_clif_changemap), 518 }, +{ HP_POP(clif->changemapcell), HP_POP2(HP_clif_changemapcell), 520 }, +{ HP_POP(clif->map_property), HP_POP2(HP_clif_map_property), 522 }, +{ HP_POP(clif->pvpset), HP_POP2(HP_clif_pvpset), 524 }, +{ HP_POP(clif->map_property_mapall), HP_POP2(HP_clif_map_property_mapall), 526 }, +{ HP_POP(clif->bossmapinfo), HP_POP2(HP_clif_bossmapinfo), 528 }, +{ HP_POP(clif->map_type), HP_POP2(HP_clif_map_type), 530 }, +{ HP_POP(clif->maptypeproperty2), HP_POP2(HP_clif_maptypeproperty2), 532 }, +{ HP_POP(clif->changemapserver), HP_POP2(HP_clif_changemapserver), 534 }, +{ HP_POP(clif->npcbuysell), HP_POP2(HP_clif_npcbuysell), 536 }, +{ HP_POP(clif->buylist), HP_POP2(HP_clif_buylist), 538 }, +{ HP_POP(clif->selllist), HP_POP2(HP_clif_selllist), 540 }, +{ HP_POP(clif->cashshop_show), HP_POP2(HP_clif_cashshop_show), 542 }, +{ HP_POP(clif->npc_buy_result), HP_POP2(HP_clif_npc_buy_result), 544 }, +{ HP_POP(clif->npc_sell_result), HP_POP2(HP_clif_npc_sell_result), 546 }, +{ HP_POP(clif->cashshop_ack), HP_POP2(HP_clif_cashshop_ack), 548 }, +{ HP_POP(clif->scriptmes), HP_POP2(HP_clif_scriptmes), 550 }, +{ HP_POP(clif->scriptnext), HP_POP2(HP_clif_scriptnext), 552 }, +{ HP_POP(clif->scriptclose), HP_POP2(HP_clif_scriptclose), 554 }, +{ HP_POP(clif->scriptmenu), HP_POP2(HP_clif_scriptmenu), 556 }, +{ HP_POP(clif->scriptinput), HP_POP2(HP_clif_scriptinput), 558 }, +{ HP_POP(clif->scriptinputstr), HP_POP2(HP_clif_scriptinputstr), 560 }, +{ HP_POP(clif->cutin), HP_POP2(HP_clif_cutin), 562 }, +{ HP_POP(clif->sendfakenpc), HP_POP2(HP_clif_sendfakenpc), 564 }, +{ HP_POP(clif->scriptclear), HP_POP2(HP_clif_scriptclear), 566 }, +{ HP_POP(clif->viewpoint), HP_POP2(HP_clif_viewpoint), 568 }, +{ HP_POP(clif->damage), HP_POP2(HP_clif_damage), 570 }, +{ HP_POP(clif->sitting), HP_POP2(HP_clif_sitting), 572 }, +{ HP_POP(clif->standing), HP_POP2(HP_clif_standing), 574 }, +{ HP_POP(clif->arrow_create_list), HP_POP2(HP_clif_arrow_create_list), 576 }, +{ HP_POP(clif->refresh), HP_POP2(HP_clif_refresh), 578 }, +{ HP_POP(clif->fame_blacksmith), HP_POP2(HP_clif_fame_blacksmith), 580 }, +{ HP_POP(clif->fame_alchemist), HP_POP2(HP_clif_fame_alchemist), 582 }, +{ HP_POP(clif->fame_taekwon), HP_POP2(HP_clif_fame_taekwon), 584 }, +{ HP_POP(clif->ranklist), HP_POP2(HP_clif_ranklist), 586 }, +{ HP_POP(clif->update_rankingpoint), HP_POP2(HP_clif_update_rankingpoint), 588 }, +{ HP_POP(clif->pRanklist), HP_POP2(HP_clif_pRanklist), 590 }, +{ HP_POP(clif->hotkeys), HP_POP2(HP_clif_hotkeys), 592 }, +{ HP_POP(clif->insight), HP_POP2(HP_clif_insight), 594 }, +{ HP_POP(clif->outsight), HP_POP2(HP_clif_outsight), 596 }, +{ HP_POP(clif->skillcastcancel), HP_POP2(HP_clif_skillcastcancel), 598 }, +{ HP_POP(clif->skill_fail), HP_POP2(HP_clif_skill_fail), 600 }, +{ HP_POP(clif->skill_cooldown), HP_POP2(HP_clif_skill_cooldown), 602 }, +{ HP_POP(clif->skill_memomessage), HP_POP2(HP_clif_skill_memomessage), 604 }, +{ HP_POP(clif->skill_mapinfomessage), HP_POP2(HP_clif_skill_mapinfomessage), 606 }, +{ HP_POP(clif->skill_produce_mix_list), HP_POP2(HP_clif_skill_produce_mix_list), 608 }, +{ HP_POP(clif->cooking_list), HP_POP2(HP_clif_cooking_list), 610 }, +{ HP_POP(clif->autospell), HP_POP2(HP_clif_autospell), 612 }, +{ HP_POP(clif->combo_delay), HP_POP2(HP_clif_combo_delay), 614 }, +{ HP_POP(clif->status_change), HP_POP2(HP_clif_status_change), 616 }, +{ HP_POP(clif->insert_card), HP_POP2(HP_clif_insert_card), 618 }, +{ HP_POP(clif->inventorylist), HP_POP2(HP_clif_inventorylist), 620 }, +{ HP_POP(clif->equiplist), HP_POP2(HP_clif_equiplist), 622 }, +{ HP_POP(clif->cartlist), HP_POP2(HP_clif_cartlist), 624 }, +{ HP_POP(clif->favorite_item), HP_POP2(HP_clif_favorite_item), 626 }, +{ HP_POP(clif->clearcart), HP_POP2(HP_clif_clearcart), 628 }, +{ HP_POP(clif->item_identify_list), HP_POP2(HP_clif_item_identify_list), 630 }, +{ HP_POP(clif->item_identified), HP_POP2(HP_clif_item_identified), 632 }, +{ HP_POP(clif->item_repair_list), HP_POP2(HP_clif_item_repair_list), 634 }, +{ HP_POP(clif->item_repaireffect), HP_POP2(HP_clif_item_repaireffect), 636 }, +{ HP_POP(clif->item_damaged), HP_POP2(HP_clif_item_damaged), 638 }, +{ HP_POP(clif->item_refine_list), HP_POP2(HP_clif_item_refine_list), 640 }, +{ HP_POP(clif->item_skill), HP_POP2(HP_clif_item_skill), 642 }, +{ HP_POP(clif->mvp_item), HP_POP2(HP_clif_mvp_item), 644 }, +{ HP_POP(clif->mvp_exp), HP_POP2(HP_clif_mvp_exp), 646 }, +{ HP_POP(clif->mvp_noitem), HP_POP2(HP_clif_mvp_noitem), 648 }, +{ HP_POP(clif->changed_dir), HP_POP2(HP_clif_changed_dir), 650 }, +{ HP_POP(clif->charnameack), HP_POP2(HP_clif_charnameack), 652 }, +{ HP_POP(clif->monster_hp_bar), HP_POP2(HP_clif_monster_hp_bar), 654 }, +{ HP_POP(clif->hpmeter), HP_POP2(HP_clif_hpmeter), 656 }, +{ HP_POP(clif->hpmeter_single), HP_POP2(HP_clif_hpmeter_single), 658 }, +{ HP_POP(clif->hpmeter_sub), HP_POP2(HP_clif_hpmeter_sub), 660 }, +{ HP_POP(clif->upgrademessage), HP_POP2(HP_clif_upgrademessage), 662 }, +{ HP_POP(clif->get_weapon_view), HP_POP2(HP_clif_get_weapon_view), 664 }, +{ HP_POP(clif->gospel_info), HP_POP2(HP_clif_gospel_info), 666 }, +{ HP_POP(clif->feel_req), HP_POP2(HP_clif_feel_req), 668 }, +{ HP_POP(clif->starskill), HP_POP2(HP_clif_starskill), 670 }, +{ HP_POP(clif->feel_info), HP_POP2(HP_clif_feel_info), 672 }, +{ HP_POP(clif->hate_info), HP_POP2(HP_clif_hate_info), 674 }, +{ HP_POP(clif->mission_info), HP_POP2(HP_clif_mission_info), 676 }, +{ HP_POP(clif->feel_hate_reset), HP_POP2(HP_clif_feel_hate_reset), 678 }, +{ HP_POP(clif->partytickack), HP_POP2(HP_clif_partytickack), 680 }, +{ HP_POP(clif->equiptickack), HP_POP2(HP_clif_equiptickack), 682 }, +{ HP_POP(clif->viewequip_ack), HP_POP2(HP_clif_viewequip_ack), 684 }, +{ HP_POP(clif->viewequip_fail), HP_POP2(HP_clif_viewequip_fail), 686 }, +{ HP_POP(clif->equpcheckbox), HP_POP2(HP_clif_equpcheckbox), 688 }, +{ HP_POP(clif->displayexp), HP_POP2(HP_clif_displayexp), 690 }, +{ HP_POP(clif->font), HP_POP2(HP_clif_font), 692 }, +{ HP_POP(clif->progressbar), HP_POP2(HP_clif_progressbar), 694 }, +{ HP_POP(clif->progressbar_abort), HP_POP2(HP_clif_progressbar_abort), 696 }, +{ HP_POP(clif->showdigit), HP_POP2(HP_clif_showdigit), 698 }, +{ HP_POP(clif->elementalconverter_list), HP_POP2(HP_clif_elementalconverter_list), 700 }, +{ HP_POP(clif->spellbook_list), HP_POP2(HP_clif_spellbook_list), 702 }, +{ HP_POP(clif->magicdecoy_list), HP_POP2(HP_clif_magicdecoy_list), 704 }, +{ HP_POP(clif->poison_list), HP_POP2(HP_clif_poison_list), 706 }, +{ HP_POP(clif->autoshadowspell_list), HP_POP2(HP_clif_autoshadowspell_list), 708 }, +{ HP_POP(clif->skill_itemlistwindow), HP_POP2(HP_clif_skill_itemlistwindow), 710 }, +{ HP_POP(clif->sc_load), HP_POP2(HP_clif_sc_load), 712 }, +{ HP_POP(clif->sc_end), HP_POP2(HP_clif_sc_end), 714 }, +{ HP_POP(clif->initialstatus), HP_POP2(HP_clif_initialstatus), 716 }, +{ HP_POP(clif->cooldown_list), HP_POP2(HP_clif_cooldown_list), 718 }, +{ HP_POP(clif->updatestatus), HP_POP2(HP_clif_updatestatus), 720 }, +{ HP_POP(clif->changestatus), HP_POP2(HP_clif_changestatus), 722 }, +{ HP_POP(clif->statusupack), HP_POP2(HP_clif_statusupack), 724 }, +{ HP_POP(clif->movetoattack), HP_POP2(HP_clif_movetoattack), 726 }, +{ HP_POP(clif->solved_charname), HP_POP2(HP_clif_solved_charname), 728 }, +{ HP_POP(clif->charnameupdate), HP_POP2(HP_clif_charnameupdate), 730 }, +{ HP_POP(clif->delayquit), HP_POP2(HP_clif_delayquit), 732 }, +{ HP_POP(clif->getareachar_pc), HP_POP2(HP_clif_getareachar_pc), 734 }, +{ HP_POP(clif->disconnect_ack), HP_POP2(HP_clif_disconnect_ack), 736 }, +{ HP_POP(clif->PVPInfo), HP_POP2(HP_clif_PVPInfo), 738 }, +{ HP_POP(clif->blacksmith), HP_POP2(HP_clif_blacksmith), 740 }, +{ HP_POP(clif->alchemist), HP_POP2(HP_clif_alchemist), 742 }, +{ HP_POP(clif->taekwon), HP_POP2(HP_clif_taekwon), 744 }, +{ HP_POP(clif->ranking_pk), HP_POP2(HP_clif_ranking_pk), 746 }, +{ HP_POP(clif->quitsave), HP_POP2(HP_clif_quitsave), 748 }, +{ HP_POP(clif->misceffect), HP_POP2(HP_clif_misceffect), 750 }, +{ HP_POP(clif->changeoption), HP_POP2(HP_clif_changeoption), 752 }, +{ HP_POP(clif->changeoption2), HP_POP2(HP_clif_changeoption2), 754 }, +{ HP_POP(clif->emotion), HP_POP2(HP_clif_emotion), 756 }, +{ HP_POP(clif->talkiebox), HP_POP2(HP_clif_talkiebox), 758 }, +{ HP_POP(clif->wedding_effect), HP_POP2(HP_clif_wedding_effect), 760 }, +{ HP_POP(clif->divorced), HP_POP2(HP_clif_divorced), 762 }, +{ HP_POP(clif->callpartner), HP_POP2(HP_clif_callpartner), 764 }, +{ HP_POP(clif->skill_damage), HP_POP2(HP_clif_skill_damage), 766 }, +{ HP_POP(clif->skill_nodamage), HP_POP2(HP_clif_skill_nodamage), 768 }, +{ HP_POP(clif->skill_poseffect), HP_POP2(HP_clif_skill_poseffect), 770 }, +{ HP_POP(clif->skill_estimation), HP_POP2(HP_clif_skill_estimation), 772 }, +{ HP_POP(clif->skill_warppoint), HP_POP2(HP_clif_skill_warppoint), 774 }, +{ HP_POP(clif->skillcasting), HP_POP2(HP_clif_skillcasting), 776 }, +{ HP_POP(clif->produce_effect), HP_POP2(HP_clif_produce_effect), 778 }, +{ HP_POP(clif->devotion), HP_POP2(HP_clif_devotion), 780 }, +{ HP_POP(clif->spiritball), HP_POP2(HP_clif_spiritball), 782 }, +{ HP_POP(clif->spiritball_single), HP_POP2(HP_clif_spiritball_single), 784 }, +{ HP_POP(clif->bladestop), HP_POP2(HP_clif_bladestop), 786 }, +{ HP_POP(clif->mvp_effect), HP_POP2(HP_clif_mvp_effect), 788 }, +{ HP_POP(clif->heal), HP_POP2(HP_clif_heal), 790 }, +{ HP_POP(clif->resurrection), HP_POP2(HP_clif_resurrection), 792 }, +{ HP_POP(clif->refine), HP_POP2(HP_clif_refine), 794 }, +{ HP_POP(clif->weather), HP_POP2(HP_clif_weather), 796 }, +{ HP_POP(clif->specialeffect), HP_POP2(HP_clif_specialeffect), 798 }, +{ HP_POP(clif->specialeffect_single), HP_POP2(HP_clif_specialeffect_single), 800 }, +{ HP_POP(clif->specialeffect_value), HP_POP2(HP_clif_specialeffect_value), 802 }, +{ HP_POP(clif->millenniumshield), HP_POP2(HP_clif_millenniumshield), 804 }, +{ HP_POP(clif->charm), HP_POP2(HP_clif_charm), 806 }, +{ HP_POP(clif->charm_single), HP_POP2(HP_clif_charm_single), 808 }, +{ HP_POP(clif->snap), HP_POP2(HP_clif_snap), 810 }, +{ HP_POP(clif->weather_check), HP_POP2(HP_clif_weather_check), 812 }, +{ HP_POP(clif->playBGM), HP_POP2(HP_clif_playBGM), 814 }, +{ HP_POP(clif->soundeffect), HP_POP2(HP_clif_soundeffect), 816 }, +{ HP_POP(clif->soundeffectall), HP_POP2(HP_clif_soundeffectall), 818 }, +{ HP_POP(clif->GlobalMessage), HP_POP2(HP_clif_GlobalMessage), 820 }, +{ HP_POP(clif->createchat), HP_POP2(HP_clif_createchat), 822 }, +{ HP_POP(clif->dispchat), HP_POP2(HP_clif_dispchat), 824 }, +{ HP_POP(clif->joinchatfail), HP_POP2(HP_clif_joinchatfail), 826 }, +{ HP_POP(clif->joinchatok), HP_POP2(HP_clif_joinchatok), 828 }, +{ HP_POP(clif->addchat), HP_POP2(HP_clif_addchat), 830 }, +{ HP_POP(clif->changechatowner), HP_POP2(HP_clif_changechatowner), 832 }, +{ HP_POP(clif->clearchat), HP_POP2(HP_clif_clearchat), 834 }, +{ HP_POP(clif->leavechat), HP_POP2(HP_clif_leavechat), 836 }, +{ HP_POP(clif->changechatstatus), HP_POP2(HP_clif_changechatstatus), 838 }, +{ HP_POP(clif->wis_message), HP_POP2(HP_clif_wis_message), 840 }, +{ HP_POP(clif->wis_end), HP_POP2(HP_clif_wis_end), 842 }, +{ HP_POP(clif->disp_onlyself), HP_POP2(HP_clif_disp_onlyself), 844 }, +{ HP_POP(clif->disp_message), HP_POP2(HP_clif_disp_message), 846 }, +{ HP_POP(clif->broadcast), HP_POP2(HP_clif_broadcast), 848 }, +{ HP_POP(clif->broadcast2), HP_POP2(HP_clif_broadcast2), 850 }, +{ HP_POP(clif->messagecolor), HP_POP2(HP_clif_messagecolor), 852 }, +{ HP_POP(clif->disp_overhead), HP_POP2(HP_clif_disp_overhead), 854 }, +{ HP_POP(clif->msg), HP_POP2(HP_clif_msg), 856 }, +{ HP_POP(clif->msg_value), HP_POP2(HP_clif_msg_value), 858 }, +{ HP_POP(clif->msg_skill), HP_POP2(HP_clif_msg_skill), 860 }, +{ HP_POP(clif->msgtable), HP_POP2(HP_clif_msgtable), 862 }, +{ HP_POP(clif->msgtable_num), HP_POP2(HP_clif_msgtable_num), 864 }, +{ HP_POP(clif->message), HP_POP2(HP_clif_message), 866 }, +{ HP_POP(clif->messageln), HP_POP2(HP_clif_messageln), 868 }, +{ HP_POP(clif->colormes), HP_POP2(HP_clif_colormes), 870 }, +{ HP_POP(clif->process_message), HP_POP2(HP_clif_process_message), 872 }, +{ HP_POP(clif->wisexin), HP_POP2(HP_clif_wisexin), 874 }, +{ HP_POP(clif->wisall), HP_POP2(HP_clif_wisall), 876 }, +{ HP_POP(clif->PMIgnoreList), HP_POP2(HP_clif_PMIgnoreList), 878 }, +{ HP_POP(clif->traderequest), HP_POP2(HP_clif_traderequest), 880 }, +{ HP_POP(clif->tradestart), HP_POP2(HP_clif_tradestart), 882 }, +{ HP_POP(clif->tradeadditem), HP_POP2(HP_clif_tradeadditem), 884 }, +{ HP_POP(clif->tradeitemok), HP_POP2(HP_clif_tradeitemok), 886 }, +{ HP_POP(clif->tradedeal_lock), HP_POP2(HP_clif_tradedeal_lock), 888 }, +{ HP_POP(clif->tradecancelled), HP_POP2(HP_clif_tradecancelled), 890 }, +{ HP_POP(clif->tradecompleted), HP_POP2(HP_clif_tradecompleted), 892 }, +{ HP_POP(clif->tradeundo), HP_POP2(HP_clif_tradeundo), 894 }, +{ HP_POP(clif->openvendingreq), HP_POP2(HP_clif_openvendingreq), 896 }, +{ HP_POP(clif->showvendingboard), HP_POP2(HP_clif_showvendingboard), 898 }, +{ HP_POP(clif->closevendingboard), HP_POP2(HP_clif_closevendingboard), 900 }, +{ HP_POP(clif->vendinglist), HP_POP2(HP_clif_vendinglist), 902 }, +{ HP_POP(clif->buyvending), HP_POP2(HP_clif_buyvending), 904 }, +{ HP_POP(clif->openvending), HP_POP2(HP_clif_openvending), 906 }, +{ HP_POP(clif->vendingreport), HP_POP2(HP_clif_vendingreport), 908 }, +{ HP_POP(clif->storagelist), HP_POP2(HP_clif_storagelist), 910 }, +{ HP_POP(clif->updatestorageamount), HP_POP2(HP_clif_updatestorageamount), 912 }, +{ HP_POP(clif->storageitemadded), HP_POP2(HP_clif_storageitemadded), 914 }, +{ HP_POP(clif->storageitemremoved), HP_POP2(HP_clif_storageitemremoved), 916 }, +{ HP_POP(clif->storageclose), HP_POP2(HP_clif_storageclose), 918 }, +{ HP_POP(clif->skillinfoblock), HP_POP2(HP_clif_skillinfoblock), 920 }, +{ HP_POP(clif->skillup), HP_POP2(HP_clif_skillup), 922 }, +{ HP_POP(clif->skillinfo), HP_POP2(HP_clif_skillinfo), 924 }, +{ HP_POP(clif->addskill), HP_POP2(HP_clif_addskill), 926 }, +{ HP_POP(clif->deleteskill), HP_POP2(HP_clif_deleteskill), 928 }, +{ HP_POP(clif->party_created), HP_POP2(HP_clif_party_created), 930 }, +{ HP_POP(clif->party_member_info), HP_POP2(HP_clif_party_member_info), 932 }, +{ HP_POP(clif->party_info), HP_POP2(HP_clif_party_info), 934 }, +{ HP_POP(clif->party_invite), HP_POP2(HP_clif_party_invite), 936 }, +{ HP_POP(clif->party_inviteack), HP_POP2(HP_clif_party_inviteack), 938 }, +{ HP_POP(clif->party_option), HP_POP2(HP_clif_party_option), 940 }, +{ HP_POP(clif->party_withdraw), HP_POP2(HP_clif_party_withdraw), 942 }, +{ HP_POP(clif->party_message), HP_POP2(HP_clif_party_message), 944 }, +{ HP_POP(clif->party_xy), HP_POP2(HP_clif_party_xy), 946 }, +{ HP_POP(clif->party_xy_single), HP_POP2(HP_clif_party_xy_single), 948 }, +{ HP_POP(clif->party_hp), HP_POP2(HP_clif_party_hp), 950 }, +{ HP_POP(clif->party_xy_remove), HP_POP2(HP_clif_party_xy_remove), 952 }, +{ HP_POP(clif->party_show_picker), HP_POP2(HP_clif_party_show_picker), 954 }, +{ HP_POP(clif->partyinvitationstate), HP_POP2(HP_clif_partyinvitationstate), 956 }, +{ HP_POP(clif->guild_created), HP_POP2(HP_clif_guild_created), 958 }, +{ HP_POP(clif->guild_belonginfo), HP_POP2(HP_clif_guild_belonginfo), 960 }, +{ HP_POP(clif->guild_masterormember), HP_POP2(HP_clif_guild_masterormember), 962 }, +{ HP_POP(clif->guild_basicinfo), HP_POP2(HP_clif_guild_basicinfo), 964 }, +{ HP_POP(clif->guild_allianceinfo), HP_POP2(HP_clif_guild_allianceinfo), 966 }, +{ HP_POP(clif->guild_memberlist), HP_POP2(HP_clif_guild_memberlist), 968 }, +{ HP_POP(clif->guild_skillinfo), HP_POP2(HP_clif_guild_skillinfo), 970 }, +{ HP_POP(clif->guild_send_onlineinfo), HP_POP2(HP_clif_guild_send_onlineinfo), 972 }, +{ HP_POP(clif->guild_memberlogin_notice), HP_POP2(HP_clif_guild_memberlogin_notice), 974 }, +{ HP_POP(clif->guild_invite), HP_POP2(HP_clif_guild_invite), 976 }, +{ HP_POP(clif->guild_inviteack), HP_POP2(HP_clif_guild_inviteack), 978 }, +{ HP_POP(clif->guild_leave), HP_POP2(HP_clif_guild_leave), 980 }, +{ HP_POP(clif->guild_expulsion), HP_POP2(HP_clif_guild_expulsion), 982 }, +{ HP_POP(clif->guild_positionchanged), HP_POP2(HP_clif_guild_positionchanged), 984 }, +{ HP_POP(clif->guild_memberpositionchanged), HP_POP2(HP_clif_guild_memberpositionchanged), 986 }, +{ HP_POP(clif->guild_emblem), HP_POP2(HP_clif_guild_emblem), 988 }, +{ HP_POP(clif->guild_emblem_area), HP_POP2(HP_clif_guild_emblem_area), 990 }, +{ HP_POP(clif->guild_notice), HP_POP2(HP_clif_guild_notice), 992 }, +{ HP_POP(clif->guild_message), HP_POP2(HP_clif_guild_message), 994 }, +{ HP_POP(clif->guild_skillup), HP_POP2(HP_clif_guild_skillup), 996 }, +{ HP_POP(clif->guild_reqalliance), HP_POP2(HP_clif_guild_reqalliance), 998 }, +{ HP_POP(clif->guild_allianceack), HP_POP2(HP_clif_guild_allianceack), 1000 }, +{ HP_POP(clif->guild_delalliance), HP_POP2(HP_clif_guild_delalliance), 1002 }, +{ HP_POP(clif->guild_oppositionack), HP_POP2(HP_clif_guild_oppositionack), 1004 }, +{ HP_POP(clif->guild_broken), HP_POP2(HP_clif_guild_broken), 1006 }, +{ HP_POP(clif->guild_xy), HP_POP2(HP_clif_guild_xy), 1008 }, +{ HP_POP(clif->guild_xy_single), HP_POP2(HP_clif_guild_xy_single), 1010 }, +{ HP_POP(clif->guild_xy_remove), HP_POP2(HP_clif_guild_xy_remove), 1012 }, +{ HP_POP(clif->guild_positionnamelist), HP_POP2(HP_clif_guild_positionnamelist), 1014 }, +{ HP_POP(clif->guild_positioninfolist), HP_POP2(HP_clif_guild_positioninfolist), 1016 }, +{ HP_POP(clif->guild_expulsionlist), HP_POP2(HP_clif_guild_expulsionlist), 1018 }, +{ HP_POP(clif->validate_emblem), HP_POP2(HP_clif_validate_emblem), 1020 }, +{ HP_POP(clif->bg_hp), HP_POP2(HP_clif_bg_hp), 1022 }, +{ HP_POP(clif->bg_xy), HP_POP2(HP_clif_bg_xy), 1024 }, +{ HP_POP(clif->bg_xy_remove), HP_POP2(HP_clif_bg_xy_remove), 1026 }, +{ HP_POP(clif->bg_message), HP_POP2(HP_clif_bg_message), 1028 }, +{ HP_POP(clif->bg_updatescore), HP_POP2(HP_clif_bg_updatescore), 1030 }, +{ HP_POP(clif->bg_updatescore_single), HP_POP2(HP_clif_bg_updatescore_single), 1032 }, +{ HP_POP(clif->sendbgemblem_area), HP_POP2(HP_clif_sendbgemblem_area), 1034 }, +{ HP_POP(clif->sendbgemblem_single), HP_POP2(HP_clif_sendbgemblem_single), 1036 }, +{ HP_POP(clif->instance), HP_POP2(HP_clif_instance), 1038 }, +{ HP_POP(clif->instance_join), HP_POP2(HP_clif_instance_join), 1040 }, +{ HP_POP(clif->instance_leave), HP_POP2(HP_clif_instance_leave), 1042 }, +{ HP_POP(clif->catch_process), HP_POP2(HP_clif_catch_process), 1044 }, +{ HP_POP(clif->pet_roulette), HP_POP2(HP_clif_pet_roulette), 1046 }, +{ HP_POP(clif->sendegg), HP_POP2(HP_clif_sendegg), 1048 }, +{ HP_POP(clif->send_petstatus), HP_POP2(HP_clif_send_petstatus), 1050 }, +{ HP_POP(clif->send_petdata), HP_POP2(HP_clif_send_petdata), 1052 }, +{ HP_POP(clif->pet_emotion), HP_POP2(HP_clif_pet_emotion), 1054 }, +{ HP_POP(clif->pet_food), HP_POP2(HP_clif_pet_food), 1056 }, +{ HP_POP(clif->friendslist_toggle_sub), HP_POP2(HP_clif_friendslist_toggle_sub), 1058 }, +{ HP_POP(clif->friendslist_send), HP_POP2(HP_clif_friendslist_send), 1060 }, +{ HP_POP(clif->friendslist_reqack), HP_POP2(HP_clif_friendslist_reqack), 1062 }, +{ HP_POP(clif->friendslist_toggle), HP_POP2(HP_clif_friendslist_toggle), 1064 }, +{ HP_POP(clif->friendlist_req), HP_POP2(HP_clif_friendlist_req), 1066 }, +{ HP_POP(clif->GM_kickack), HP_POP2(HP_clif_GM_kickack), 1068 }, +{ HP_POP(clif->GM_kick), HP_POP2(HP_clif_GM_kick), 1070 }, +{ HP_POP(clif->manner_message), HP_POP2(HP_clif_manner_message), 1072 }, +{ HP_POP(clif->GM_silence), HP_POP2(HP_clif_GM_silence), 1074 }, +{ HP_POP(clif->account_name), HP_POP2(HP_clif_account_name), 1076 }, +{ HP_POP(clif->check), HP_POP2(HP_clif_check), 1078 }, +{ HP_POP(clif->hominfo), HP_POP2(HP_clif_hominfo), 1080 }, +{ HP_POP(clif->homskillinfoblock), HP_POP2(HP_clif_homskillinfoblock), 1082 }, +{ HP_POP(clif->homskillup), HP_POP2(HP_clif_homskillup), 1084 }, +{ HP_POP(clif->hom_food), HP_POP2(HP_clif_hom_food), 1086 }, +{ HP_POP(clif->send_homdata), HP_POP2(HP_clif_send_homdata), 1088 }, +{ HP_POP(clif->quest_send_list), HP_POP2(HP_clif_quest_send_list), 1090 }, +{ HP_POP(clif->quest_send_mission), HP_POP2(HP_clif_quest_send_mission), 1092 }, +{ HP_POP(clif->quest_add), HP_POP2(HP_clif_quest_add), 1094 }, +{ HP_POP(clif->quest_delete), HP_POP2(HP_clif_quest_delete), 1096 }, +{ HP_POP(clif->quest_update_status), HP_POP2(HP_clif_quest_update_status), 1098 }, +{ HP_POP(clif->quest_update_objective), HP_POP2(HP_clif_quest_update_objective), 1100 }, +{ HP_POP(clif->quest_show_event), HP_POP2(HP_clif_quest_show_event), 1102 }, +{ HP_POP(clif->mail_window), HP_POP2(HP_clif_mail_window), 1104 }, +{ HP_POP(clif->mail_read), HP_POP2(HP_clif_mail_read), 1106 }, +{ HP_POP(clif->mail_delete), HP_POP2(HP_clif_mail_delete), 1108 }, +{ HP_POP(clif->mail_return), HP_POP2(HP_clif_mail_return), 1110 }, +{ HP_POP(clif->mail_send), HP_POP2(HP_clif_mail_send), 1112 }, +{ HP_POP(clif->mail_new), HP_POP2(HP_clif_mail_new), 1114 }, +{ HP_POP(clif->mail_refreshinbox), HP_POP2(HP_clif_mail_refreshinbox), 1116 }, +{ HP_POP(clif->mail_getattachment), HP_POP2(HP_clif_mail_getattachment), 1118 }, +{ HP_POP(clif->mail_setattachment), HP_POP2(HP_clif_mail_setattachment), 1120 }, +{ HP_POP(clif->auction_openwindow), HP_POP2(HP_clif_auction_openwindow), 1122 }, +{ HP_POP(clif->auction_results), HP_POP2(HP_clif_auction_results), 1124 }, +{ HP_POP(clif->auction_message), HP_POP2(HP_clif_auction_message), 1126 }, +{ HP_POP(clif->auction_close), HP_POP2(HP_clif_auction_close), 1128 }, +{ HP_POP(clif->auction_setitem), HP_POP2(HP_clif_auction_setitem), 1130 }, +{ HP_POP(clif->mercenary_info), HP_POP2(HP_clif_mercenary_info), 1132 }, +{ HP_POP(clif->mercenary_skillblock), HP_POP2(HP_clif_mercenary_skillblock), 1134 }, +{ HP_POP(clif->mercenary_message), HP_POP2(HP_clif_mercenary_message), 1136 }, +{ HP_POP(clif->mercenary_updatestatus), HP_POP2(HP_clif_mercenary_updatestatus), 1138 }, +{ HP_POP(clif->rental_time), HP_POP2(HP_clif_rental_time), 1140 }, +{ HP_POP(clif->rental_expired), HP_POP2(HP_clif_rental_expired), 1142 }, +{ HP_POP(clif->PartyBookingRegisterAck), HP_POP2(HP_clif_PartyBookingRegisterAck), 1144 }, +{ HP_POP(clif->PartyBookingDeleteAck), HP_POP2(HP_clif_PartyBookingDeleteAck), 1146 }, +{ HP_POP(clif->PartyBookingSearchAck), HP_POP2(HP_clif_PartyBookingSearchAck), 1148 }, +{ HP_POP(clif->PartyBookingUpdateNotify), HP_POP2(HP_clif_PartyBookingUpdateNotify), 1150 }, +{ HP_POP(clif->PartyBookingDeleteNotify), HP_POP2(HP_clif_PartyBookingDeleteNotify), 1152 }, +{ HP_POP(clif->PartyBookingInsertNotify), HP_POP2(HP_clif_PartyBookingInsertNotify), 1154 }, +{ HP_POP(clif->PartyRecruitRegisterAck), HP_POP2(HP_clif_PartyRecruitRegisterAck), 1156 }, +{ HP_POP(clif->PartyRecruitDeleteAck), HP_POP2(HP_clif_PartyRecruitDeleteAck), 1158 }, +{ HP_POP(clif->PartyRecruitSearchAck), HP_POP2(HP_clif_PartyRecruitSearchAck), 1160 }, +{ HP_POP(clif->PartyRecruitUpdateNotify), HP_POP2(HP_clif_PartyRecruitUpdateNotify), 1162 }, +{ HP_POP(clif->PartyRecruitDeleteNotify), HP_POP2(HP_clif_PartyRecruitDeleteNotify), 1164 }, +{ HP_POP(clif->PartyRecruitInsertNotify), HP_POP2(HP_clif_PartyRecruitInsertNotify), 1166 }, +{ HP_POP(clif->PartyBookingVolunteerInfo), HP_POP2(HP_clif_PartyBookingVolunteerInfo), 1168 }, +{ HP_POP(clif->PartyBookingRefuseVolunteer), HP_POP2(HP_clif_PartyBookingRefuseVolunteer), 1170 }, +{ HP_POP(clif->PartyBookingCancelVolunteer), HP_POP2(HP_clif_PartyBookingCancelVolunteer), 1172 }, +{ HP_POP(clif->PartyBookingAddFilteringList), HP_POP2(HP_clif_PartyBookingAddFilteringList), 1174 }, +{ HP_POP(clif->PartyBookingSubFilteringList), HP_POP2(HP_clif_PartyBookingSubFilteringList), 1176 }, +{ HP_POP(clif->buyingstore_open), HP_POP2(HP_clif_buyingstore_open), 1178 }, +{ HP_POP(clif->buyingstore_open_failed), HP_POP2(HP_clif_buyingstore_open_failed), 1180 }, +{ HP_POP(clif->buyingstore_myitemlist), HP_POP2(HP_clif_buyingstore_myitemlist), 1182 }, +{ HP_POP(clif->buyingstore_entry), HP_POP2(HP_clif_buyingstore_entry), 1184 }, +{ HP_POP(clif->buyingstore_entry_single), HP_POP2(HP_clif_buyingstore_entry_single), 1186 }, +{ HP_POP(clif->buyingstore_disappear_entry), HP_POP2(HP_clif_buyingstore_disappear_entry), 1188 }, +{ HP_POP(clif->buyingstore_disappear_entry_single), HP_POP2(HP_clif_buyingstore_disappear_entry_single), 1190 }, +{ HP_POP(clif->buyingstore_itemlist), HP_POP2(HP_clif_buyingstore_itemlist), 1192 }, +{ HP_POP(clif->buyingstore_trade_failed_buyer), HP_POP2(HP_clif_buyingstore_trade_failed_buyer), 1194 }, +{ HP_POP(clif->buyingstore_update_item), HP_POP2(HP_clif_buyingstore_update_item), 1196 }, +{ HP_POP(clif->buyingstore_delete_item), HP_POP2(HP_clif_buyingstore_delete_item), 1198 }, +{ HP_POP(clif->buyingstore_trade_failed_seller), HP_POP2(HP_clif_buyingstore_trade_failed_seller), 1200 }, +{ HP_POP(clif->search_store_info_ack), HP_POP2(HP_clif_search_store_info_ack), 1202 }, +{ HP_POP(clif->search_store_info_failed), HP_POP2(HP_clif_search_store_info_failed), 1204 }, +{ HP_POP(clif->open_search_store_info), HP_POP2(HP_clif_open_search_store_info), 1206 }, +{ HP_POP(clif->search_store_info_click_ack), HP_POP2(HP_clif_search_store_info_click_ack), 1208 }, +{ HP_POP(clif->elemental_info), HP_POP2(HP_clif_elemental_info), 1210 }, +{ HP_POP(clif->elemental_updatestatus), HP_POP2(HP_clif_elemental_updatestatus), 1212 }, +{ HP_POP(clif->bgqueue_ack), HP_POP2(HP_clif_bgqueue_ack), 1214 }, +{ HP_POP(clif->bgqueue_notice_delete), HP_POP2(HP_clif_bgqueue_notice_delete), 1216 }, +{ HP_POP(clif->bgqueue_update_info), HP_POP2(HP_clif_bgqueue_update_info), 1218 }, +{ HP_POP(clif->bgqueue_joined), HP_POP2(HP_clif_bgqueue_joined), 1220 }, +{ HP_POP(clif->bgqueue_pcleft), HP_POP2(HP_clif_bgqueue_pcleft), 1222 }, +{ HP_POP(clif->bgqueue_battlebegins), HP_POP2(HP_clif_bgqueue_battlebegins), 1224 }, +{ HP_POP(clif->adopt_reply), HP_POP2(HP_clif_adopt_reply), 1226 }, +{ HP_POP(clif->adopt_request), HP_POP2(HP_clif_adopt_request), 1228 }, +{ HP_POP(clif->readbook), HP_POP2(HP_clif_readbook), 1230 }, +{ HP_POP(clif->notify_time), HP_POP2(HP_clif_notify_time), 1232 }, +{ HP_POP(clif->user_count), HP_POP2(HP_clif_user_count), 1234 }, +{ HP_POP(clif->noask_sub), HP_POP2(HP_clif_noask_sub), 1236 }, +{ HP_POP(clif->bc_ready), HP_POP2(HP_clif_bc_ready), 1238 }, +{ HP_POP(clif->undisguise_timer), HP_POP2(HP_clif_undisguise_timer), 1240 }, +{ HP_POP(clif->chsys_create), HP_POP2(HP_clif_chsys_create), 1242 }, +{ HP_POP(clif->chsys_msg), HP_POP2(HP_clif_chsys_msg), 1244 }, +{ HP_POP(clif->chsys_msg2), HP_POP2(HP_clif_chsys_msg2), 1246 }, +{ HP_POP(clif->chsys_send), HP_POP2(HP_clif_chsys_send), 1248 }, +{ HP_POP(clif->chsys_join), HP_POP2(HP_clif_chsys_join), 1250 }, +{ HP_POP(clif->chsys_left), HP_POP2(HP_clif_chsys_left), 1252 }, +{ HP_POP(clif->chsys_delete), HP_POP2(HP_clif_chsys_delete), 1254 }, +{ HP_POP(clif->chsys_mjoin), HP_POP2(HP_clif_chsys_mjoin), 1256 }, +{ HP_POP(clif->chsys_quit), HP_POP2(HP_clif_chsys_quit), 1258 }, +{ HP_POP(clif->chsys_quitg), HP_POP2(HP_clif_chsys_quitg), 1260 }, +{ HP_POP(clif->chsys_gjoin), HP_POP2(HP_clif_chsys_gjoin), 1262 }, +{ HP_POP(clif->chsys_gleave), HP_POP2(HP_clif_chsys_gleave), 1264 }, +{ HP_POP(clif->pWantToConnection), HP_POP2(HP_clif_pWantToConnection), 1266 }, +{ HP_POP(clif->pLoadEndAck), HP_POP2(HP_clif_pLoadEndAck), 1268 }, +{ HP_POP(clif->pTickSend), HP_POP2(HP_clif_pTickSend), 1270 }, +{ HP_POP(clif->pHotkey), HP_POP2(HP_clif_pHotkey), 1272 }, +{ HP_POP(clif->pProgressbar), HP_POP2(HP_clif_pProgressbar), 1274 }, +{ HP_POP(clif->pWalkToXY), HP_POP2(HP_clif_pWalkToXY), 1276 }, +{ HP_POP(clif->pQuitGame), HP_POP2(HP_clif_pQuitGame), 1278 }, +{ HP_POP(clif->pGetCharNameRequest), HP_POP2(HP_clif_pGetCharNameRequest), 1280 }, +{ HP_POP(clif->pGlobalMessage), HP_POP2(HP_clif_pGlobalMessage), 1282 }, +{ HP_POP(clif->pMapMove), HP_POP2(HP_clif_pMapMove), 1284 }, +{ HP_POP(clif->pChangeDir), HP_POP2(HP_clif_pChangeDir), 1286 }, +{ HP_POP(clif->pEmotion), HP_POP2(HP_clif_pEmotion), 1288 }, +{ HP_POP(clif->pHowManyConnections), HP_POP2(HP_clif_pHowManyConnections), 1290 }, +{ HP_POP(clif->pActionRequest), HP_POP2(HP_clif_pActionRequest), 1292 }, +{ HP_POP(clif->pActionRequest_sub), HP_POP2(HP_clif_pActionRequest_sub), 1294 }, +{ HP_POP(clif->pRestart), HP_POP2(HP_clif_pRestart), 1296 }, +{ HP_POP(clif->pWisMessage), HP_POP2(HP_clif_pWisMessage), 1298 }, +{ HP_POP(clif->pBroadcast), HP_POP2(HP_clif_pBroadcast), 1300 }, +{ HP_POP(clif->pTakeItem), HP_POP2(HP_clif_pTakeItem), 1302 }, +{ HP_POP(clif->pDropItem), HP_POP2(HP_clif_pDropItem), 1304 }, +{ HP_POP(clif->pUseItem), HP_POP2(HP_clif_pUseItem), 1306 }, +{ HP_POP(clif->pEquipItem), HP_POP2(HP_clif_pEquipItem), 1308 }, +{ HP_POP(clif->pUnequipItem), HP_POP2(HP_clif_pUnequipItem), 1310 }, +{ HP_POP(clif->pNpcClicked), HP_POP2(HP_clif_pNpcClicked), 1312 }, +{ HP_POP(clif->pNpcBuySellSelected), HP_POP2(HP_clif_pNpcBuySellSelected), 1314 }, +{ HP_POP(clif->pNpcBuyListSend), HP_POP2(HP_clif_pNpcBuyListSend), 1316 }, +{ HP_POP(clif->pNpcSellListSend), HP_POP2(HP_clif_pNpcSellListSend), 1318 }, +{ HP_POP(clif->pCreateChatRoom), HP_POP2(HP_clif_pCreateChatRoom), 1320 }, +{ HP_POP(clif->pChatAddMember), HP_POP2(HP_clif_pChatAddMember), 1322 }, +{ HP_POP(clif->pChatRoomStatusChange), HP_POP2(HP_clif_pChatRoomStatusChange), 1324 }, +{ HP_POP(clif->pChangeChatOwner), HP_POP2(HP_clif_pChangeChatOwner), 1326 }, +{ HP_POP(clif->pKickFromChat), HP_POP2(HP_clif_pKickFromChat), 1328 }, +{ HP_POP(clif->pChatLeave), HP_POP2(HP_clif_pChatLeave), 1330 }, +{ HP_POP(clif->pTradeRequest), HP_POP2(HP_clif_pTradeRequest), 1332 }, +{ HP_POP(clif->chann_config_read), HP_POP2(HP_clif_chann_config_read), 1334 }, +{ HP_POP(clif->pTradeAck), HP_POP2(HP_clif_pTradeAck), 1336 }, +{ HP_POP(clif->pTradeAddItem), HP_POP2(HP_clif_pTradeAddItem), 1338 }, +{ HP_POP(clif->pTradeOk), HP_POP2(HP_clif_pTradeOk), 1340 }, +{ HP_POP(clif->pTradeCancel), HP_POP2(HP_clif_pTradeCancel), 1342 }, +{ HP_POP(clif->pTradeCommit), HP_POP2(HP_clif_pTradeCommit), 1344 }, +{ HP_POP(clif->pStopAttack), HP_POP2(HP_clif_pStopAttack), 1346 }, +{ HP_POP(clif->pPutItemToCart), HP_POP2(HP_clif_pPutItemToCart), 1348 }, +{ HP_POP(clif->pGetItemFromCart), HP_POP2(HP_clif_pGetItemFromCart), 1350 }, +{ HP_POP(clif->pRemoveOption), HP_POP2(HP_clif_pRemoveOption), 1352 }, +{ HP_POP(clif->pChangeCart), HP_POP2(HP_clif_pChangeCart), 1354 }, +{ HP_POP(clif->pStatusUp), HP_POP2(HP_clif_pStatusUp), 1356 }, +{ HP_POP(clif->pSkillUp), HP_POP2(HP_clif_pSkillUp), 1358 }, +{ HP_POP(clif->pUseSkillToId), HP_POP2(HP_clif_pUseSkillToId), 1360 }, +{ HP_POP(clif->pUseSkillToId_homun), HP_POP2(HP_clif_pUseSkillToId_homun), 1362 }, +{ HP_POP(clif->pUseSkillToId_mercenary), HP_POP2(HP_clif_pUseSkillToId_mercenary), 1364 }, +{ HP_POP(clif->pUseSkillToPos), HP_POP2(HP_clif_pUseSkillToPos), 1366 }, +{ HP_POP(clif->pUseSkillToPosSub), HP_POP2(HP_clif_pUseSkillToPosSub), 1368 }, +{ HP_POP(clif->pUseSkillToPos_homun), HP_POP2(HP_clif_pUseSkillToPos_homun), 1370 }, +{ HP_POP(clif->pUseSkillToPos_mercenary), HP_POP2(HP_clif_pUseSkillToPos_mercenary), 1372 }, +{ HP_POP(clif->pUseSkillToPosMoreInfo), HP_POP2(HP_clif_pUseSkillToPosMoreInfo), 1374 }, +{ HP_POP(clif->pUseSkillMap), HP_POP2(HP_clif_pUseSkillMap), 1376 }, +{ HP_POP(clif->pRequestMemo), HP_POP2(HP_clif_pRequestMemo), 1378 }, +{ HP_POP(clif->pProduceMix), HP_POP2(HP_clif_pProduceMix), 1380 }, +{ HP_POP(clif->pCooking), HP_POP2(HP_clif_pCooking), 1382 }, +{ HP_POP(clif->pRepairItem), HP_POP2(HP_clif_pRepairItem), 1384 }, +{ HP_POP(clif->pWeaponRefine), HP_POP2(HP_clif_pWeaponRefine), 1386 }, +{ HP_POP(clif->pNpcSelectMenu), HP_POP2(HP_clif_pNpcSelectMenu), 1388 }, +{ HP_POP(clif->pNpcNextClicked), HP_POP2(HP_clif_pNpcNextClicked), 1390 }, +{ HP_POP(clif->pNpcAmountInput), HP_POP2(HP_clif_pNpcAmountInput), 1392 }, +{ HP_POP(clif->pNpcStringInput), HP_POP2(HP_clif_pNpcStringInput), 1394 }, +{ HP_POP(clif->pNpcCloseClicked), HP_POP2(HP_clif_pNpcCloseClicked), 1396 }, +{ HP_POP(clif->pItemIdentify), HP_POP2(HP_clif_pItemIdentify), 1398 }, +{ HP_POP(clif->pSelectArrow), HP_POP2(HP_clif_pSelectArrow), 1400 }, +{ HP_POP(clif->pAutoSpell), HP_POP2(HP_clif_pAutoSpell), 1402 }, +{ HP_POP(clif->pUseCard), HP_POP2(HP_clif_pUseCard), 1404 }, +{ HP_POP(clif->pInsertCard), HP_POP2(HP_clif_pInsertCard), 1406 }, +{ HP_POP(clif->pSolveCharName), HP_POP2(HP_clif_pSolveCharName), 1408 }, +{ HP_POP(clif->pResetChar), HP_POP2(HP_clif_pResetChar), 1410 }, +{ HP_POP(clif->pLocalBroadcast), HP_POP2(HP_clif_pLocalBroadcast), 1412 }, +{ HP_POP(clif->pMoveToKafra), HP_POP2(HP_clif_pMoveToKafra), 1414 }, +{ HP_POP(clif->pMoveFromKafra), HP_POP2(HP_clif_pMoveFromKafra), 1416 }, +{ HP_POP(clif->pMoveToKafraFromCart), HP_POP2(HP_clif_pMoveToKafraFromCart), 1418 }, +{ HP_POP(clif->pMoveFromKafraToCart), HP_POP2(HP_clif_pMoveFromKafraToCart), 1420 }, +{ HP_POP(clif->pCloseKafra), HP_POP2(HP_clif_pCloseKafra), 1422 }, +{ HP_POP(clif->pStoragePassword), HP_POP2(HP_clif_pStoragePassword), 1424 }, +{ HP_POP(clif->pCreateParty), HP_POP2(HP_clif_pCreateParty), 1426 }, +{ HP_POP(clif->pCreateParty2), HP_POP2(HP_clif_pCreateParty2), 1428 }, +{ HP_POP(clif->pPartyInvite), HP_POP2(HP_clif_pPartyInvite), 1430 }, +{ HP_POP(clif->pPartyInvite2), HP_POP2(HP_clif_pPartyInvite2), 1432 }, +{ HP_POP(clif->pReplyPartyInvite), HP_POP2(HP_clif_pReplyPartyInvite), 1434 }, +{ HP_POP(clif->pReplyPartyInvite2), HP_POP2(HP_clif_pReplyPartyInvite2), 1436 }, +{ HP_POP(clif->pLeaveParty), HP_POP2(HP_clif_pLeaveParty), 1438 }, +{ HP_POP(clif->pRemovePartyMember), HP_POP2(HP_clif_pRemovePartyMember), 1440 }, +{ HP_POP(clif->pPartyChangeOption), HP_POP2(HP_clif_pPartyChangeOption), 1442 }, +{ HP_POP(clif->pPartyMessage), HP_POP2(HP_clif_pPartyMessage), 1444 }, +{ HP_POP(clif->pPartyChangeLeader), HP_POP2(HP_clif_pPartyChangeLeader), 1446 }, +{ HP_POP(clif->pPartyBookingRegisterReq), HP_POP2(HP_clif_pPartyBookingRegisterReq), 1448 }, +{ HP_POP(clif->pPartyBookingSearchReq), HP_POP2(HP_clif_pPartyBookingSearchReq), 1450 }, +{ HP_POP(clif->pPartyBookingDeleteReq), HP_POP2(HP_clif_pPartyBookingDeleteReq), 1452 }, +{ HP_POP(clif->pPartyBookingUpdateReq), HP_POP2(HP_clif_pPartyBookingUpdateReq), 1454 }, +{ HP_POP(clif->pPartyRecruitRegisterReq), HP_POP2(HP_clif_pPartyRecruitRegisterReq), 1456 }, +{ HP_POP(clif->pPartyRecruitSearchReq), HP_POP2(HP_clif_pPartyRecruitSearchReq), 1458 }, +{ HP_POP(clif->pPartyRecruitDeleteReq), HP_POP2(HP_clif_pPartyRecruitDeleteReq), 1460 }, +{ HP_POP(clif->pPartyRecruitUpdateReq), HP_POP2(HP_clif_pPartyRecruitUpdateReq), 1462 }, +{ HP_POP(clif->pCloseVending), HP_POP2(HP_clif_pCloseVending), 1464 }, +{ HP_POP(clif->pVendingListReq), HP_POP2(HP_clif_pVendingListReq), 1466 }, +{ HP_POP(clif->pPurchaseReq), HP_POP2(HP_clif_pPurchaseReq), 1468 }, +{ HP_POP(clif->pPurchaseReq2), HP_POP2(HP_clif_pPurchaseReq2), 1470 }, +{ HP_POP(clif->pOpenVending), HP_POP2(HP_clif_pOpenVending), 1472 }, +{ HP_POP(clif->pCreateGuild), HP_POP2(HP_clif_pCreateGuild), 1474 }, +{ HP_POP(clif->pGuildCheckMaster), HP_POP2(HP_clif_pGuildCheckMaster), 1476 }, +{ HP_POP(clif->pGuildRequestInfo), HP_POP2(HP_clif_pGuildRequestInfo), 1478 }, +{ HP_POP(clif->pGuildChangePositionInfo), HP_POP2(HP_clif_pGuildChangePositionInfo), 1480 }, +{ HP_POP(clif->pGuildChangeMemberPosition), HP_POP2(HP_clif_pGuildChangeMemberPosition), 1482 }, +{ HP_POP(clif->pGuildRequestEmblem), HP_POP2(HP_clif_pGuildRequestEmblem), 1484 }, +{ HP_POP(clif->pGuildChangeEmblem), HP_POP2(HP_clif_pGuildChangeEmblem), 1486 }, +{ HP_POP(clif->pGuildChangeNotice), HP_POP2(HP_clif_pGuildChangeNotice), 1488 }, +{ HP_POP(clif->pGuildInvite), HP_POP2(HP_clif_pGuildInvite), 1490 }, +{ HP_POP(clif->pGuildReplyInvite), HP_POP2(HP_clif_pGuildReplyInvite), 1492 }, +{ HP_POP(clif->pGuildLeave), HP_POP2(HP_clif_pGuildLeave), 1494 }, +{ HP_POP(clif->pGuildExpulsion), HP_POP2(HP_clif_pGuildExpulsion), 1496 }, +{ HP_POP(clif->pGuildMessage), HP_POP2(HP_clif_pGuildMessage), 1498 }, +{ HP_POP(clif->pGuildRequestAlliance), HP_POP2(HP_clif_pGuildRequestAlliance), 1500 }, +{ HP_POP(clif->pGuildReplyAlliance), HP_POP2(HP_clif_pGuildReplyAlliance), 1502 }, +{ HP_POP(clif->pGuildDelAlliance), HP_POP2(HP_clif_pGuildDelAlliance), 1504 }, +{ HP_POP(clif->pGuildOpposition), HP_POP2(HP_clif_pGuildOpposition), 1506 }, +{ HP_POP(clif->pGuildBreak), HP_POP2(HP_clif_pGuildBreak), 1508 }, +{ HP_POP(clif->pPetMenu), HP_POP2(HP_clif_pPetMenu), 1510 }, +{ HP_POP(clif->pCatchPet), HP_POP2(HP_clif_pCatchPet), 1512 }, +{ HP_POP(clif->pSelectEgg), HP_POP2(HP_clif_pSelectEgg), 1514 }, +{ HP_POP(clif->pSendEmotion), HP_POP2(HP_clif_pSendEmotion), 1516 }, +{ HP_POP(clif->pChangePetName), HP_POP2(HP_clif_pChangePetName), 1518 }, +{ HP_POP(clif->pGMKick), HP_POP2(HP_clif_pGMKick), 1520 }, +{ HP_POP(clif->pGMKickAll), HP_POP2(HP_clif_pGMKickAll), 1522 }, +{ HP_POP(clif->pGMShift), HP_POP2(HP_clif_pGMShift), 1524 }, +{ HP_POP(clif->pGMRemove2), HP_POP2(HP_clif_pGMRemove2), 1526 }, +{ HP_POP(clif->pGMRecall), HP_POP2(HP_clif_pGMRecall), 1528 }, +{ HP_POP(clif->pGMRecall2), HP_POP2(HP_clif_pGMRecall2), 1530 }, +{ HP_POP(clif->pGM_Monster_Item), HP_POP2(HP_clif_pGM_Monster_Item), 1532 }, +{ HP_POP(clif->pGMHide), HP_POP2(HP_clif_pGMHide), 1534 }, +{ HP_POP(clif->pGMReqNoChat), HP_POP2(HP_clif_pGMReqNoChat), 1536 }, +{ HP_POP(clif->pGMRc), HP_POP2(HP_clif_pGMRc), 1538 }, +{ HP_POP(clif->pGMReqAccountName), HP_POP2(HP_clif_pGMReqAccountName), 1540 }, +{ HP_POP(clif->pGMChangeMapType), HP_POP2(HP_clif_pGMChangeMapType), 1542 }, +{ HP_POP(clif->pPMIgnore), HP_POP2(HP_clif_pPMIgnore), 1544 }, +{ HP_POP(clif->pPMIgnoreAll), HP_POP2(HP_clif_pPMIgnoreAll), 1546 }, +{ HP_POP(clif->pPMIgnoreList), HP_POP2(HP_clif_pPMIgnoreList), 1548 }, +{ HP_POP(clif->pNoviceDoriDori), HP_POP2(HP_clif_pNoviceDoriDori), 1550 }, +{ HP_POP(clif->pNoviceExplosionSpirits), HP_POP2(HP_clif_pNoviceExplosionSpirits), 1552 }, +{ HP_POP(clif->pFriendsListAdd), HP_POP2(HP_clif_pFriendsListAdd), 1554 }, +{ HP_POP(clif->pFriendsListReply), HP_POP2(HP_clif_pFriendsListReply), 1556 }, +{ HP_POP(clif->pFriendsListRemove), HP_POP2(HP_clif_pFriendsListRemove), 1558 }, +{ HP_POP(clif->pPVPInfo), HP_POP2(HP_clif_pPVPInfo), 1560 }, +{ HP_POP(clif->pBlacksmith), HP_POP2(HP_clif_pBlacksmith), 1562 }, +{ HP_POP(clif->pAlchemist), HP_POP2(HP_clif_pAlchemist), 1564 }, +{ HP_POP(clif->pTaekwon), HP_POP2(HP_clif_pTaekwon), 1566 }, +{ HP_POP(clif->pRankingPk), HP_POP2(HP_clif_pRankingPk), 1568 }, +{ HP_POP(clif->pFeelSaveOk), HP_POP2(HP_clif_pFeelSaveOk), 1570 }, +{ HP_POP(clif->pChangeHomunculusName), HP_POP2(HP_clif_pChangeHomunculusName), 1572 }, +{ HP_POP(clif->pHomMoveToMaster), HP_POP2(HP_clif_pHomMoveToMaster), 1574 }, +{ HP_POP(clif->pHomMoveTo), HP_POP2(HP_clif_pHomMoveTo), 1576 }, +{ HP_POP(clif->pHomAttack), HP_POP2(HP_clif_pHomAttack), 1578 }, +{ HP_POP(clif->pHomMenu), HP_POP2(HP_clif_pHomMenu), 1580 }, +{ HP_POP(clif->pAutoRevive), HP_POP2(HP_clif_pAutoRevive), 1582 }, +{ HP_POP(clif->pCheck), HP_POP2(HP_clif_pCheck), 1584 }, +{ HP_POP(clif->pMail_refreshinbox), HP_POP2(HP_clif_pMail_refreshinbox), 1586 }, +{ HP_POP(clif->pMail_read), HP_POP2(HP_clif_pMail_read), 1588 }, +{ HP_POP(clif->pMail_getattach), HP_POP2(HP_clif_pMail_getattach), 1590 }, +{ HP_POP(clif->pMail_delete), HP_POP2(HP_clif_pMail_delete), 1592 }, +{ HP_POP(clif->pMail_return), HP_POP2(HP_clif_pMail_return), 1594 }, +{ HP_POP(clif->pMail_setattach), HP_POP2(HP_clif_pMail_setattach), 1596 }, +{ HP_POP(clif->pMail_winopen), HP_POP2(HP_clif_pMail_winopen), 1598 }, +{ HP_POP(clif->pMail_send), HP_POP2(HP_clif_pMail_send), 1600 }, +{ HP_POP(clif->pAuction_cancelreg), HP_POP2(HP_clif_pAuction_cancelreg), 1602 }, +{ HP_POP(clif->pAuction_setitem), HP_POP2(HP_clif_pAuction_setitem), 1604 }, +{ HP_POP(clif->pAuction_register), HP_POP2(HP_clif_pAuction_register), 1606 }, +{ HP_POP(clif->pAuction_cancel), HP_POP2(HP_clif_pAuction_cancel), 1608 }, +{ HP_POP(clif->pAuction_close), HP_POP2(HP_clif_pAuction_close), 1610 }, +{ HP_POP(clif->pAuction_bid), HP_POP2(HP_clif_pAuction_bid), 1612 }, +{ HP_POP(clif->pAuction_search), HP_POP2(HP_clif_pAuction_search), 1614 }, +{ HP_POP(clif->pAuction_buysell), HP_POP2(HP_clif_pAuction_buysell), 1616 }, +{ HP_POP(clif->pcashshop_buy), HP_POP2(HP_clif_pcashshop_buy), 1618 }, +{ HP_POP(clif->pAdopt_request), HP_POP2(HP_clif_pAdopt_request), 1620 }, +{ HP_POP(clif->pAdopt_reply), HP_POP2(HP_clif_pAdopt_reply), 1622 }, +{ HP_POP(clif->pViewPlayerEquip), HP_POP2(HP_clif_pViewPlayerEquip), 1624 }, +{ HP_POP(clif->pEquipTick), HP_POP2(HP_clif_pEquipTick), 1626 }, +{ HP_POP(clif->pquestStateAck), HP_POP2(HP_clif_pquestStateAck), 1628 }, +{ HP_POP(clif->pmercenary_action), HP_POP2(HP_clif_pmercenary_action), 1630 }, +{ HP_POP(clif->pBattleChat), HP_POP2(HP_clif_pBattleChat), 1632 }, +{ HP_POP(clif->pLessEffect), HP_POP2(HP_clif_pLessEffect), 1634 }, +{ HP_POP(clif->pItemListWindowSelected), HP_POP2(HP_clif_pItemListWindowSelected), 1636 }, +{ HP_POP(clif->pReqOpenBuyingStore), HP_POP2(HP_clif_pReqOpenBuyingStore), 1638 }, +{ HP_POP(clif->pReqCloseBuyingStore), HP_POP2(HP_clif_pReqCloseBuyingStore), 1640 }, +{ HP_POP(clif->pReqClickBuyingStore), HP_POP2(HP_clif_pReqClickBuyingStore), 1642 }, +{ HP_POP(clif->pReqTradeBuyingStore), HP_POP2(HP_clif_pReqTradeBuyingStore), 1644 }, +{ HP_POP(clif->pSearchStoreInfo), HP_POP2(HP_clif_pSearchStoreInfo), 1646 }, +{ HP_POP(clif->pSearchStoreInfoNextPage), HP_POP2(HP_clif_pSearchStoreInfoNextPage), 1648 }, +{ HP_POP(clif->pCloseSearchStoreInfo), HP_POP2(HP_clif_pCloseSearchStoreInfo), 1650 }, +{ HP_POP(clif->pSearchStoreInfoListItemClick), HP_POP2(HP_clif_pSearchStoreInfoListItemClick), 1652 }, +{ HP_POP(clif->pDebug), HP_POP2(HP_clif_pDebug), 1654 }, +{ HP_POP(clif->pSkillSelectMenu), HP_POP2(HP_clif_pSkillSelectMenu), 1656 }, +{ HP_POP(clif->pMoveItem), HP_POP2(HP_clif_pMoveItem), 1658 }, +{ HP_POP(clif->pDull), HP_POP2(HP_clif_pDull), 1660 }, +{ HP_POP(clif->pBGQueueRegister), HP_POP2(HP_clif_pBGQueueRegister), 1662 }, +{ HP_POP(clif->pBGQueueCheckState), HP_POP2(HP_clif_pBGQueueCheckState), 1664 }, +{ HP_POP(clif->pBGQueueRevokeReq), HP_POP2(HP_clif_pBGQueueRevokeReq), 1666 }, +{ HP_POP(clif->pBGQueueBattleBeginAck), HP_POP2(HP_clif_pBGQueueBattleBeginAck), 1668 }, +{ HP_POP(clif->pCashShopOpen), HP_POP2(HP_clif_pCashShopOpen), 1670 }, +{ HP_POP(clif->pCashShopClose), HP_POP2(HP_clif_pCashShopClose), 1672 }, +{ HP_POP(clif->pCashShopReqTab), HP_POP2(HP_clif_pCashShopReqTab), 1674 }, +{ HP_POP(clif->pCashShopSchedule), HP_POP2(HP_clif_pCashShopSchedule), 1676 }, +{ HP_POP(clif->pCashShopBuy), HP_POP2(HP_clif_pCashShopBuy), 1678 }, +{ HP_POP(clif->pPartyTick), HP_POP2(HP_clif_pPartyTick), 1680 }, +{ HP_POP(clif->pGuildInvite2), HP_POP2(HP_clif_pGuildInvite2), 1682 }, +{ HP_POP(clif->pPartyBookingAddFilter), HP_POP2(HP_clif_pPartyBookingAddFilter), 1684 }, +{ HP_POP(clif->pPartyBookingSubFilter), HP_POP2(HP_clif_pPartyBookingSubFilter), 1686 }, +{ HP_POP(clif->pPartyBookingReqVolunteer), HP_POP2(HP_clif_pPartyBookingReqVolunteer), 1688 }, +{ HP_POP(clif->pPartyBookingRefuseVolunteer), HP_POP2(HP_clif_pPartyBookingRefuseVolunteer), 1690 }, +{ HP_POP(clif->pPartyBookingCancelVolunteer), HP_POP2(HP_clif_pPartyBookingCancelVolunteer), 1692 }, +/* duel */ +{ HP_POP(duel->create), HP_POP2(HP_duel_create), 1694 }, +{ HP_POP(duel->invite), HP_POP2(HP_duel_invite), 1696 }, +{ HP_POP(duel->accept), HP_POP2(HP_duel_accept), 1698 }, +{ HP_POP(duel->reject), HP_POP2(HP_duel_reject), 1700 }, +{ HP_POP(duel->leave), HP_POP2(HP_duel_leave), 1702 }, +{ HP_POP(duel->showinfo), HP_POP2(HP_duel_showinfo), 1704 }, +{ HP_POP(duel->checktime), HP_POP2(HP_duel_checktime), 1706 }, +{ HP_POP(duel->init), HP_POP2(HP_duel_init), 1708 }, +{ HP_POP(duel->final), HP_POP2(HP_duel_final), 1710 }, +/* elemental */ +{ HP_POP(elemental->init), HP_POP2(HP_elemental_init), 1712 }, +{ HP_POP(elemental->final), HP_POP2(HP_elemental_final), 1714 }, +{ HP_POP(elemental->class), HP_POP2(HP_elemental_class), 1716 }, +{ HP_POP(elemental->get_viewdata), HP_POP2(HP_elemental_get_viewdata), 1718 }, +{ HP_POP(elemental->create), HP_POP2(HP_elemental_create), 1720 }, +{ HP_POP(elemental->data_received), HP_POP2(HP_elemental_data_received), 1722 }, +{ HP_POP(elemental->save), HP_POP2(HP_elemental_save), 1724 }, +{ HP_POP(elemental->change_mode_ack), HP_POP2(HP_elemental_change_mode_ack), 1726 }, +{ HP_POP(elemental->change_mode), HP_POP2(HP_elemental_change_mode), 1728 }, +{ HP_POP(elemental->heal), HP_POP2(HP_elemental_heal), 1730 }, +{ HP_POP(elemental->dead), HP_POP2(HP_elemental_dead), 1732 }, +{ HP_POP(elemental->delete), HP_POP2(HP_elemental_delete), 1734 }, +{ HP_POP(elemental->summon_stop), HP_POP2(HP_elemental_summon_stop), 1736 }, +{ HP_POP(elemental->get_lifetime), HP_POP2(HP_elemental_get_lifetime), 1738 }, +{ HP_POP(elemental->unlocktarget), HP_POP2(HP_elemental_unlocktarget), 1740 }, +{ HP_POP(elemental->skillnotok), HP_POP2(HP_elemental_skillnotok), 1742 }, +{ HP_POP(elemental->set_target), HP_POP2(HP_elemental_set_target), 1744 }, +{ HP_POP(elemental->clean_single_effect), HP_POP2(HP_elemental_clean_single_effect), 1746 }, +{ HP_POP(elemental->clean_effect), HP_POP2(HP_elemental_clean_effect), 1748 }, +{ HP_POP(elemental->action), HP_POP2(HP_elemental_action), 1750 }, +{ HP_POP(elemental->skill_get_requirements), HP_POP2(HP_elemental_skill_get_requirements), 1752 }, +{ HP_POP(elemental->read_skilldb), HP_POP2(HP_elemental_read_skilldb), 1754 }, +{ HP_POP(elemental->reload_db), HP_POP2(HP_elemental_reload_db), 1756 }, +{ HP_POP(elemental->reload_skilldb), HP_POP2(HP_elemental_reload_skilldb), 1758 }, +{ HP_POP(elemental->search_index), HP_POP2(HP_elemental_search_index), 1760 }, +{ HP_POP(elemental->summon_init), HP_POP2(HP_elemental_summon_init), 1762 }, +{ HP_POP(elemental->summon_end_timer), HP_POP2(HP_elemental_summon_end_timer), 1764 }, +{ HP_POP(elemental->ai_sub_timer_activesearch), HP_POP2(HP_elemental_ai_sub_timer_activesearch), 1766 }, +{ HP_POP(elemental->ai_sub_timer), HP_POP2(HP_elemental_ai_sub_timer), 1768 }, +{ HP_POP(elemental->ai_sub_foreachclient), HP_POP2(HP_elemental_ai_sub_foreachclient), 1770 }, +{ HP_POP(elemental->ai_timer), HP_POP2(HP_elemental_ai_timer), 1772 }, +{ HP_POP(elemental->read_db), HP_POP2(HP_elemental_read_db), 1774 }, +/* guild */ +{ HP_POP(guild->init), HP_POP2(HP_guild_init), 1776 }, +{ HP_POP(guild->final), HP_POP2(HP_guild_final), 1778 }, +{ HP_POP(guild->skill_get_max), HP_POP2(HP_guild_skill_get_max), 1780 }, +{ HP_POP(guild->checkskill), HP_POP2(HP_guild_checkskill), 1782 }, +{ HP_POP(guild->check_skill_require), HP_POP2(HP_guild_check_skill_require), 1784 }, +{ HP_POP(guild->checkcastles), HP_POP2(HP_guild_checkcastles), 1786 }, +{ HP_POP(guild->isallied), HP_POP2(HP_guild_isallied), 1788 }, +{ HP_POP(guild->search), HP_POP2(HP_guild_search), 1790 }, +{ HP_POP(guild->searchname), HP_POP2(HP_guild_searchname), 1792 }, +{ HP_POP(guild->castle_search), HP_POP2(HP_guild_castle_search), 1794 }, +{ HP_POP(guild->mapname2gc), HP_POP2(HP_guild_mapname2gc), 1796 }, +{ HP_POP(guild->mapindex2gc), HP_POP2(HP_guild_mapindex2gc), 1798 }, +{ HP_POP(guild->getavailablesd), HP_POP2(HP_guild_getavailablesd), 1800 }, +{ HP_POP(guild->getindex), HP_POP2(HP_guild_getindex), 1802 }, +{ HP_POP(guild->getposition), HP_POP2(HP_guild_getposition), 1804 }, +{ HP_POP(guild->payexp), HP_POP2(HP_guild_payexp), 1806 }, +{ HP_POP(guild->getexp), HP_POP2(HP_guild_getexp), 1808 }, +{ HP_POP(guild->create), HP_POP2(HP_guild_create), 1810 }, +{ HP_POP(guild->created), HP_POP2(HP_guild_created), 1812 }, +{ HP_POP(guild->request_info), HP_POP2(HP_guild_request_info), 1814 }, +{ HP_POP(guild->recv_noinfo), HP_POP2(HP_guild_recv_noinfo), 1816 }, +{ HP_POP(guild->recv_info), HP_POP2(HP_guild_recv_info), 1818 }, +{ HP_POP(guild->npc_request_info), HP_POP2(HP_guild_npc_request_info), 1820 }, +{ HP_POP(guild->invite), HP_POP2(HP_guild_invite), 1822 }, +{ HP_POP(guild->reply_invite), HP_POP2(HP_guild_reply_invite), 1824 }, +{ HP_POP(guild->member_joined), HP_POP2(HP_guild_member_joined), 1826 }, +{ HP_POP(guild->member_added), HP_POP2(HP_guild_member_added), 1828 }, +{ HP_POP(guild->leave), HP_POP2(HP_guild_leave), 1830 }, +{ HP_POP(guild->member_withdraw), HP_POP2(HP_guild_member_withdraw), 1832 }, +{ HP_POP(guild->expulsion), HP_POP2(HP_guild_expulsion), 1834 }, +{ HP_POP(guild->skillup), HP_POP2(HP_guild_skillup), 1836 }, +{ HP_POP(guild->block_skill), HP_POP2(HP_guild_block_skill), 1838 }, +{ HP_POP(guild->reqalliance), HP_POP2(HP_guild_reqalliance), 1840 }, +{ HP_POP(guild->reply_reqalliance), HP_POP2(HP_guild_reply_reqalliance), 1842 }, +{ HP_POP(guild->allianceack), HP_POP2(HP_guild_allianceack), 1844 }, +{ HP_POP(guild->delalliance), HP_POP2(HP_guild_delalliance), 1846 }, +{ HP_POP(guild->opposition), HP_POP2(HP_guild_opposition), 1848 }, +{ HP_POP(guild->check_alliance), HP_POP2(HP_guild_check_alliance), 1850 }, +{ HP_POP(guild->send_memberinfoshort), HP_POP2(HP_guild_send_memberinfoshort), 1852 }, +{ HP_POP(guild->recv_memberinfoshort), HP_POP2(HP_guild_recv_memberinfoshort), 1854 }, +{ HP_POP(guild->change_memberposition), HP_POP2(HP_guild_change_memberposition), 1856 }, +{ HP_POP(guild->memberposition_changed), HP_POP2(HP_guild_memberposition_changed), 1858 }, +{ HP_POP(guild->change_position), HP_POP2(HP_guild_change_position), 1860 }, +{ HP_POP(guild->position_changed), HP_POP2(HP_guild_position_changed), 1862 }, +{ HP_POP(guild->change_notice), HP_POP2(HP_guild_change_notice), 1864 }, +{ HP_POP(guild->notice_changed), HP_POP2(HP_guild_notice_changed), 1866 }, +{ HP_POP(guild->change_emblem), HP_POP2(HP_guild_change_emblem), 1868 }, +{ HP_POP(guild->emblem_changed), HP_POP2(HP_guild_emblem_changed), 1870 }, +{ HP_POP(guild->send_message), HP_POP2(HP_guild_send_message), 1872 }, +{ HP_POP(guild->recv_message), HP_POP2(HP_guild_recv_message), 1874 }, +{ HP_POP(guild->send_dot_remove), HP_POP2(HP_guild_send_dot_remove), 1876 }, +{ HP_POP(guild->skillupack), HP_POP2(HP_guild_skillupack), 1878 }, +{ HP_POP(guild->dobreak), HP_POP2(HP_guild_dobreak), 1880 }, +{ HP_POP(guild->broken), HP_POP2(HP_guild_broken), 1882 }, +{ HP_POP(guild->gm_change), HP_POP2(HP_guild_gm_change), 1884 }, +{ HP_POP(guild->gm_changed), HP_POP2(HP_guild_gm_changed), 1886 }, +{ HP_POP(guild->castle_map_init), HP_POP2(HP_guild_castle_map_init), 1888 }, +{ HP_POP(guild->castledatasave), HP_POP2(HP_guild_castledatasave), 1890 }, +{ HP_POP(guild->castledataloadack), HP_POP2(HP_guild_castledataloadack), 1892 }, +{ HP_POP(guild->castle_reconnect), HP_POP2(HP_guild_castle_reconnect), 1894 }, +{ HP_POP(guild->agit_start), HP_POP2(HP_guild_agit_start), 1896 }, +{ HP_POP(guild->agit_end), HP_POP2(HP_guild_agit_end), 1898 }, +{ HP_POP(guild->agit2_start), HP_POP2(HP_guild_agit2_start), 1900 }, +{ HP_POP(guild->agit2_end), HP_POP2(HP_guild_agit2_end), 1902 }, +{ HP_POP(guild->flag_add), HP_POP2(HP_guild_flag_add), 1904 }, +{ HP_POP(guild->flag_remove), HP_POP2(HP_guild_flag_remove), 1906 }, +{ HP_POP(guild->flags_clear), HP_POP2(HP_guild_flags_clear), 1908 }, +{ HP_POP(guild->aura_refresh), HP_POP2(HP_guild_aura_refresh), 1910 }, +{ HP_POP(guild->payexp_timer), HP_POP2(HP_guild_payexp_timer), 1912 }, +{ HP_POP(guild->sd_check), HP_POP2(HP_guild_sd_check), 1914 }, +{ HP_POP(guild->read_guildskill_tree_db), HP_POP2(HP_guild_read_guildskill_tree_db), 1916 }, +{ HP_POP(guild->read_castledb), HP_POP2(HP_guild_read_castledb), 1918 }, +{ HP_POP(guild->payexp_timer_sub), HP_POP2(HP_guild_payexp_timer_sub), 1920 }, +{ HP_POP(guild->send_xy_timer_sub), HP_POP2(HP_guild_send_xy_timer_sub), 1922 }, +{ HP_POP(guild->send_xy_timer), HP_POP2(HP_guild_send_xy_timer), 1924 }, +{ HP_POP(guild->create_expcache), HP_POP2(HP_guild_create_expcache), 1926 }, +{ HP_POP(guild->eventlist_db_final), HP_POP2(HP_guild_eventlist_db_final), 1928 }, +{ HP_POP(guild->expcache_db_final), HP_POP2(HP_guild_expcache_db_final), 1930 }, +{ HP_POP(guild->castle_db_final), HP_POP2(HP_guild_castle_db_final), 1932 }, +{ HP_POP(guild->broken_sub), HP_POP2(HP_guild_broken_sub), 1934 }, +{ HP_POP(guild->castle_broken_sub), HP_POP2(HP_guild_castle_broken_sub), 1936 }, +{ HP_POP(guild->makemember), HP_POP2(HP_guild_makemember), 1938 }, +{ HP_POP(guild->check_member), HP_POP2(HP_guild_check_member), 1940 }, +{ HP_POP(guild->get_alliance_count), HP_POP2(HP_guild_get_alliance_count), 1942 }, +{ HP_POP(guild->castle_reconnect_sub), HP_POP2(HP_guild_castle_reconnect_sub), 1944 }, +/* gstorage */ +{ HP_POP(gstorage->id2storage), HP_POP2(HP_gstorage_id2storage), 1946 }, +{ HP_POP(gstorage->id2storage2), HP_POP2(HP_gstorage_id2storage2), 1948 }, +{ HP_POP(gstorage->init), HP_POP2(HP_gstorage_init), 1950 }, +{ HP_POP(gstorage->final), HP_POP2(HP_gstorage_final), 1952 }, +{ HP_POP(gstorage->delete), HP_POP2(HP_gstorage_delete), 1954 }, +{ HP_POP(gstorage->open), HP_POP2(HP_gstorage_open), 1956 }, +{ HP_POP(gstorage->additem), HP_POP2(HP_gstorage_additem), 1958 }, +{ HP_POP(gstorage->delitem), HP_POP2(HP_gstorage_delitem), 1960 }, +{ HP_POP(gstorage->add), HP_POP2(HP_gstorage_add), 1962 }, +{ HP_POP(gstorage->get), HP_POP2(HP_gstorage_get), 1964 }, +{ HP_POP(gstorage->addfromcart), HP_POP2(HP_gstorage_addfromcart), 1966 }, +{ HP_POP(gstorage->gettocart), HP_POP2(HP_gstorage_gettocart), 1968 }, +{ HP_POP(gstorage->close), HP_POP2(HP_gstorage_close), 1970 }, +{ HP_POP(gstorage->pc_quit), HP_POP2(HP_gstorage_pc_quit), 1972 }, +{ HP_POP(gstorage->save), HP_POP2(HP_gstorage_save), 1974 }, +{ HP_POP(gstorage->saved), HP_POP2(HP_gstorage_saved), 1976 }, +{ HP_POP(gstorage->create), HP_POP2(HP_gstorage_create), 1978 }, +/* homun */ +{ HP_POP(homun->init), HP_POP2(HP_homun_init), 1980 }, +{ HP_POP(homun->final), HP_POP2(HP_homun_final), 1982 }, +{ HP_POP(homun->reload), HP_POP2(HP_homun_reload), 1984 }, +{ HP_POP(homun->reload_skill), HP_POP2(HP_homun_reload_skill), 1986 }, +{ HP_POP(homun->get_viewdata), HP_POP2(HP_homun_get_viewdata), 1988 }, +{ HP_POP(homun->class2type), HP_POP2(HP_homun_class2type), 1990 }, +{ HP_POP(homun->damaged), HP_POP2(HP_homun_damaged), 1992 }, +{ HP_POP(homun->dead), HP_POP2(HP_homun_dead), 1994 }, +{ HP_POP(homun->vaporize), HP_POP2(HP_homun_vaporize), 1996 }, +{ HP_POP(homun->delete), HP_POP2(HP_homun_delete), 1998 }, +{ HP_POP(homun->checkskill), HP_POP2(HP_homun_checkskill), 2000 }, +{ HP_POP(homun->calc_skilltree), HP_POP2(HP_homun_calc_skilltree), 2002 }, +{ HP_POP(homun->skill_tree_get_max), HP_POP2(HP_homun_skill_tree_get_max), 2004 }, +{ HP_POP(homun->skillup), HP_POP2(HP_homun_skillup), 2006 }, +{ HP_POP(homun->levelup), HP_POP2(HP_homun_levelup), 2008 }, +{ HP_POP(homun->change_class), HP_POP2(HP_homun_change_class), 2010 }, +{ HP_POP(homun->evolve), HP_POP2(HP_homun_evolve), 2012 }, +{ HP_POP(homun->mutate), HP_POP2(HP_homun_mutate), 2014 }, +{ HP_POP(homun->gainexp), HP_POP2(HP_homun_gainexp), 2016 }, +{ HP_POP(homun->add_intimacy), HP_POP2(HP_homun_add_intimacy), 2018 }, +{ HP_POP(homun->consume_intimacy), HP_POP2(HP_homun_consume_intimacy), 2020 }, +{ HP_POP(homun->healed), HP_POP2(HP_homun_healed), 2022 }, +{ HP_POP(homun->save), HP_POP2(HP_homun_save), 2024 }, +{ HP_POP(homun->menu), HP_POP2(HP_homun_menu), 2026 }, +{ HP_POP(homun->feed), HP_POP2(HP_homun_feed), 2028 }, +{ HP_POP(homun->hunger_timer), HP_POP2(HP_homun_hunger_timer), 2030 }, +{ HP_POP(homun->hunger_timer_delete), HP_POP2(HP_homun_hunger_timer_delete), 2032 }, +{ HP_POP(homun->change_name), HP_POP2(HP_homun_change_name), 2034 }, +{ HP_POP(homun->change_name_ack), HP_POP2(HP_homun_change_name_ack), 2036 }, +{ HP_POP(homun->db_search), HP_POP2(HP_homun_db_search), 2038 }, +{ HP_POP(homun->create), HP_POP2(HP_homun_create), 2040 }, +{ HP_POP(homun->init_timers), HP_POP2(HP_homun_init_timers), 2042 }, +{ HP_POP(homun->call), HP_POP2(HP_homun_call), 2044 }, +{ HP_POP(homun->recv_data), HP_POP2(HP_homun_recv_data), 2046 }, +{ HP_POP(homun->creation_request), HP_POP2(HP_homun_creation_request), 2048 }, +{ HP_POP(homun->ressurect), HP_POP2(HP_homun_ressurect), 2050 }, +{ HP_POP(homun->revive), HP_POP2(HP_homun_revive), 2052 }, +{ HP_POP(homun->stat_reset), HP_POP2(HP_homun_stat_reset), 2054 }, +{ HP_POP(homun->shuffle), HP_POP2(HP_homun_shuffle), 2056 }, +{ HP_POP(homun->read_db_sub), HP_POP2(HP_homun_read_db_sub), 2058 }, +{ HP_POP(homun->read_db), HP_POP2(HP_homun_read_db), 2060 }, +{ HP_POP(homun->read_skill_db_sub), HP_POP2(HP_homun_read_skill_db_sub), 2062 }, +{ HP_POP(homun->skill_db_read), HP_POP2(HP_homun_skill_db_read), 2064 }, +{ HP_POP(homun->exp_db_read), HP_POP2(HP_homun_exp_db_read), 2066 }, +{ HP_POP(homun->addspiritball), HP_POP2(HP_homun_addspiritball), 2068 }, +{ HP_POP(homun->delspiritball), HP_POP2(HP_homun_delspiritball), 2070 }, +/* instance */ +{ HP_POP(instance->init), HP_POP2(HP_instance_init), 2072 }, +{ HP_POP(instance->final), HP_POP2(HP_instance_final), 2074 }, +{ HP_POP(instance->create), HP_POP2(HP_instance_create), 2076 }, +{ HP_POP(instance->add_map), HP_POP2(HP_instance_add_map), 2078 }, +{ HP_POP(instance->del_map), HP_POP2(HP_instance_del_map), 2080 }, +{ HP_POP(instance->map2imap), HP_POP2(HP_instance_map2imap), 2082 }, +{ HP_POP(instance->mapid2imapid), HP_POP2(HP_instance_mapid2imapid), 2084 }, +{ HP_POP(instance->destroy), HP_POP2(HP_instance_destroy), 2086 }, +{ HP_POP(instance->start), HP_POP2(HP_instance_start), 2088 }, +{ HP_POP(instance->check_idle), HP_POP2(HP_instance_check_idle), 2090 }, +{ HP_POP(instance->check_kick), HP_POP2(HP_instance_check_kick), 2092 }, +{ HP_POP(instance->set_timeout), HP_POP2(HP_instance_set_timeout), 2094 }, +{ HP_POP(instance->valid), HP_POP2(HP_instance_valid), 2096 }, +{ HP_POP(instance->destroy_timer), HP_POP2(HP_instance_destroy_timer), 2098 }, +/* intif */ +{ HP_POP(intif->parse), HP_POP2(HP_intif_parse), 2100 }, +{ HP_POP(intif->create_pet), HP_POP2(HP_intif_create_pet), 2102 }, +{ HP_POP(intif->broadcast), HP_POP2(HP_intif_broadcast), 2104 }, +{ HP_POP(intif->broadcast2), HP_POP2(HP_intif_broadcast2), 2106 }, +{ HP_POP(intif->main_message), HP_POP2(HP_intif_main_message), 2108 }, +{ HP_POP(intif->wis_message), HP_POP2(HP_intif_wis_message), 2110 }, +{ HP_POP(intif->wis_message_to_gm), HP_POP2(HP_intif_wis_message_to_gm), 2112 }, +{ HP_POP(intif->saveregistry), HP_POP2(HP_intif_saveregistry), 2114 }, +{ HP_POP(intif->request_registry), HP_POP2(HP_intif_request_registry), 2116 }, +{ HP_POP(intif->request_guild_storage), HP_POP2(HP_intif_request_guild_storage), 2118 }, +{ HP_POP(intif->send_guild_storage), HP_POP2(HP_intif_send_guild_storage), 2120 }, +{ HP_POP(intif->create_party), HP_POP2(HP_intif_create_party), 2122 }, +{ HP_POP(intif->request_partyinfo), HP_POP2(HP_intif_request_partyinfo), 2124 }, +{ HP_POP(intif->party_addmember), HP_POP2(HP_intif_party_addmember), 2126 }, +{ HP_POP(intif->party_changeoption), HP_POP2(HP_intif_party_changeoption), 2128 }, +{ HP_POP(intif->party_leave), HP_POP2(HP_intif_party_leave), 2130 }, +{ HP_POP(intif->party_changemap), HP_POP2(HP_intif_party_changemap), 2132 }, +{ HP_POP(intif->break_party), HP_POP2(HP_intif_break_party), 2134 }, +{ HP_POP(intif->party_message), HP_POP2(HP_intif_party_message), 2136 }, +{ HP_POP(intif->party_leaderchange), HP_POP2(HP_intif_party_leaderchange), 2138 }, +{ HP_POP(intif->guild_create), HP_POP2(HP_intif_guild_create), 2140 }, +{ HP_POP(intif->guild_request_info), HP_POP2(HP_intif_guild_request_info), 2142 }, +{ HP_POP(intif->guild_addmember), HP_POP2(HP_intif_guild_addmember), 2144 }, +{ HP_POP(intif->guild_leave), HP_POP2(HP_intif_guild_leave), 2146 }, +{ HP_POP(intif->guild_memberinfoshort), HP_POP2(HP_intif_guild_memberinfoshort), 2148 }, +{ HP_POP(intif->guild_break), HP_POP2(HP_intif_guild_break), 2150 }, +{ HP_POP(intif->guild_message), HP_POP2(HP_intif_guild_message), 2152 }, +{ HP_POP(intif->guild_change_gm), HP_POP2(HP_intif_guild_change_gm), 2154 }, +{ HP_POP(intif->guild_change_basicinfo), HP_POP2(HP_intif_guild_change_basicinfo), 2156 }, +{ HP_POP(intif->guild_change_memberinfo), HP_POP2(HP_intif_guild_change_memberinfo), 2158 }, +{ HP_POP(intif->guild_position), HP_POP2(HP_intif_guild_position), 2160 }, +{ HP_POP(intif->guild_skillup), HP_POP2(HP_intif_guild_skillup), 2162 }, +{ HP_POP(intif->guild_alliance), HP_POP2(HP_intif_guild_alliance), 2164 }, +{ HP_POP(intif->guild_notice), HP_POP2(HP_intif_guild_notice), 2166 }, +{ HP_POP(intif->guild_emblem), HP_POP2(HP_intif_guild_emblem), 2168 }, +{ HP_POP(intif->guild_castle_dataload), HP_POP2(HP_intif_guild_castle_dataload), 2170 }, +{ HP_POP(intif->guild_castle_datasave), HP_POP2(HP_intif_guild_castle_datasave), 2172 }, +{ HP_POP(intif->request_petdata), HP_POP2(HP_intif_request_petdata), 2174 }, +{ HP_POP(intif->save_petdata), HP_POP2(HP_intif_save_petdata), 2176 }, +{ HP_POP(intif->delete_petdata), HP_POP2(HP_intif_delete_petdata), 2178 }, +{ HP_POP(intif->rename), HP_POP2(HP_intif_rename), 2180 }, +{ HP_POP(intif->homunculus_create), HP_POP2(HP_intif_homunculus_create), 2182 }, +{ HP_POP(intif->homunculus_requestload), HP_POP2(HP_intif_homunculus_requestload), 2184 }, +{ HP_POP(intif->homunculus_requestsave), HP_POP2(HP_intif_homunculus_requestsave), 2186 }, +{ HP_POP(intif->homunculus_requestdelete), HP_POP2(HP_intif_homunculus_requestdelete), 2188 }, +{ HP_POP(intif->request_questlog), HP_POP2(HP_intif_request_questlog), 2190 }, +{ HP_POP(intif->quest_save), HP_POP2(HP_intif_quest_save), 2192 }, +{ HP_POP(intif->mercenary_create), HP_POP2(HP_intif_mercenary_create), 2194 }, +{ HP_POP(intif->mercenary_request), HP_POP2(HP_intif_mercenary_request), 2196 }, +{ HP_POP(intif->mercenary_delete), HP_POP2(HP_intif_mercenary_delete), 2198 }, +{ HP_POP(intif->mercenary_save), HP_POP2(HP_intif_mercenary_save), 2200 }, +{ HP_POP(intif->Mail_requestinbox), HP_POP2(HP_intif_Mail_requestinbox), 2202 }, +{ HP_POP(intif->Mail_read), HP_POP2(HP_intif_Mail_read), 2204 }, +{ HP_POP(intif->Mail_getattach), HP_POP2(HP_intif_Mail_getattach), 2206 }, +{ HP_POP(intif->Mail_delete), HP_POP2(HP_intif_Mail_delete), 2208 }, +{ HP_POP(intif->Mail_return), HP_POP2(HP_intif_Mail_return), 2210 }, +{ HP_POP(intif->Mail_send), HP_POP2(HP_intif_Mail_send), 2212 }, +{ HP_POP(intif->Auction_requestlist), HP_POP2(HP_intif_Auction_requestlist), 2214 }, +{ HP_POP(intif->Auction_register), HP_POP2(HP_intif_Auction_register), 2216 }, +{ HP_POP(intif->Auction_cancel), HP_POP2(HP_intif_Auction_cancel), 2218 }, +{ HP_POP(intif->Auction_close), HP_POP2(HP_intif_Auction_close), 2220 }, +{ HP_POP(intif->Auction_bid), HP_POP2(HP_intif_Auction_bid), 2222 }, +{ HP_POP(intif->elemental_create), HP_POP2(HP_intif_elemental_create), 2224 }, +{ HP_POP(intif->elemental_request), HP_POP2(HP_intif_elemental_request), 2226 }, +{ HP_POP(intif->elemental_delete), HP_POP2(HP_intif_elemental_delete), 2228 }, +{ HP_POP(intif->elemental_save), HP_POP2(HP_intif_elemental_save), 2230 }, +{ HP_POP(intif->request_accinfo), HP_POP2(HP_intif_request_accinfo), 2232 }, +{ HP_POP(intif->CheckForCharServer), HP_POP2(HP_intif_CheckForCharServer), 2234 }, +{ HP_POP(intif->pWisMessage), HP_POP2(HP_intif_pWisMessage), 2236 }, +{ HP_POP(intif->pWisEnd), HP_POP2(HP_intif_pWisEnd), 2238 }, +{ HP_POP(intif->pWisToGM_sub), HP_POP2(HP_intif_pWisToGM_sub), 2240 }, +{ HP_POP(intif->pWisToGM), HP_POP2(HP_intif_pWisToGM), 2242 }, +{ HP_POP(intif->pRegisters), HP_POP2(HP_intif_pRegisters), 2244 }, +{ HP_POP(intif->pChangeNameOk), HP_POP2(HP_intif_pChangeNameOk), 2246 }, +{ HP_POP(intif->pMessageToFD), HP_POP2(HP_intif_pMessageToFD), 2248 }, +{ HP_POP(intif->pLoadGuildStorage), HP_POP2(HP_intif_pLoadGuildStorage), 2250 }, +{ HP_POP(intif->pSaveGuildStorage), HP_POP2(HP_intif_pSaveGuildStorage), 2252 }, +{ HP_POP(intif->pPartyCreated), HP_POP2(HP_intif_pPartyCreated), 2254 }, +{ HP_POP(intif->pPartyInfo), HP_POP2(HP_intif_pPartyInfo), 2256 }, +{ HP_POP(intif->pPartyMemberAdded), HP_POP2(HP_intif_pPartyMemberAdded), 2258 }, +{ HP_POP(intif->pPartyOptionChanged), HP_POP2(HP_intif_pPartyOptionChanged), 2260 }, +{ HP_POP(intif->pPartyMemberWithdraw), HP_POP2(HP_intif_pPartyMemberWithdraw), 2262 }, +{ HP_POP(intif->pPartyMove), HP_POP2(HP_intif_pPartyMove), 2264 }, +{ HP_POP(intif->pPartyBroken), HP_POP2(HP_intif_pPartyBroken), 2266 }, +{ HP_POP(intif->pPartyMessage), HP_POP2(HP_intif_pPartyMessage), 2268 }, +{ HP_POP(intif->pGuildCreated), HP_POP2(HP_intif_pGuildCreated), 2270 }, +{ HP_POP(intif->pGuildInfo), HP_POP2(HP_intif_pGuildInfo), 2272 }, +{ HP_POP(intif->pGuildMemberAdded), HP_POP2(HP_intif_pGuildMemberAdded), 2274 }, +{ HP_POP(intif->pGuildMemberWithdraw), HP_POP2(HP_intif_pGuildMemberWithdraw), 2276 }, +{ HP_POP(intif->pGuildMemberInfoShort), HP_POP2(HP_intif_pGuildMemberInfoShort), 2278 }, +{ HP_POP(intif->pGuildBroken), HP_POP2(HP_intif_pGuildBroken), 2280 }, +{ HP_POP(intif->pGuildMessage), HP_POP2(HP_intif_pGuildMessage), 2282 }, +{ HP_POP(intif->pGuildBasicInfoChanged), HP_POP2(HP_intif_pGuildBasicInfoChanged), 2284 }, +{ HP_POP(intif->pGuildMemberInfoChanged), HP_POP2(HP_intif_pGuildMemberInfoChanged), 2286 }, +{ HP_POP(intif->pGuildPosition), HP_POP2(HP_intif_pGuildPosition), 2288 }, +{ HP_POP(intif->pGuildSkillUp), HP_POP2(HP_intif_pGuildSkillUp), 2290 }, +{ HP_POP(intif->pGuildAlliance), HP_POP2(HP_intif_pGuildAlliance), 2292 }, +{ HP_POP(intif->pGuildNotice), HP_POP2(HP_intif_pGuildNotice), 2294 }, +{ HP_POP(intif->pGuildEmblem), HP_POP2(HP_intif_pGuildEmblem), 2296 }, +{ HP_POP(intif->pGuildCastleDataLoad), HP_POP2(HP_intif_pGuildCastleDataLoad), 2298 }, +{ HP_POP(intif->pGuildMasterChanged), HP_POP2(HP_intif_pGuildMasterChanged), 2300 }, +{ HP_POP(intif->pQuestLog), HP_POP2(HP_intif_pQuestLog), 2302 }, +{ HP_POP(intif->pQuestSave), HP_POP2(HP_intif_pQuestSave), 2304 }, +{ HP_POP(intif->pMailInboxReceived), HP_POP2(HP_intif_pMailInboxReceived), 2306 }, +{ HP_POP(intif->pMailNew), HP_POP2(HP_intif_pMailNew), 2308 }, +{ HP_POP(intif->pMailGetAttach), HP_POP2(HP_intif_pMailGetAttach), 2310 }, +{ HP_POP(intif->pMailDelete), HP_POP2(HP_intif_pMailDelete), 2312 }, +{ HP_POP(intif->pMailReturn), HP_POP2(HP_intif_pMailReturn), 2314 }, +{ HP_POP(intif->pMailSend), HP_POP2(HP_intif_pMailSend), 2316 }, +{ HP_POP(intif->pAuctionResults), HP_POP2(HP_intif_pAuctionResults), 2318 }, +{ HP_POP(intif->pAuctionRegister), HP_POP2(HP_intif_pAuctionRegister), 2320 }, +{ HP_POP(intif->pAuctionCancel), HP_POP2(HP_intif_pAuctionCancel), 2322 }, +{ HP_POP(intif->pAuctionClose), HP_POP2(HP_intif_pAuctionClose), 2324 }, +{ HP_POP(intif->pAuctionMessage), HP_POP2(HP_intif_pAuctionMessage), 2326 }, +{ HP_POP(intif->pAuctionBid), HP_POP2(HP_intif_pAuctionBid), 2328 }, +{ HP_POP(intif->pMercenaryReceived), HP_POP2(HP_intif_pMercenaryReceived), 2330 }, +{ HP_POP(intif->pMercenaryDeleted), HP_POP2(HP_intif_pMercenaryDeleted), 2332 }, +{ HP_POP(intif->pMercenarySaved), HP_POP2(HP_intif_pMercenarySaved), 2334 }, +{ HP_POP(intif->pElementalReceived), HP_POP2(HP_intif_pElementalReceived), 2336 }, +{ HP_POP(intif->pElementalDeleted), HP_POP2(HP_intif_pElementalDeleted), 2338 }, +{ HP_POP(intif->pElementalSaved), HP_POP2(HP_intif_pElementalSaved), 2340 }, +{ HP_POP(intif->pCreatePet), HP_POP2(HP_intif_pCreatePet), 2342 }, +{ HP_POP(intif->pRecvPetData), HP_POP2(HP_intif_pRecvPetData), 2344 }, +{ HP_POP(intif->pSavePetOk), HP_POP2(HP_intif_pSavePetOk), 2346 }, +{ HP_POP(intif->pDeletePetOk), HP_POP2(HP_intif_pDeletePetOk), 2348 }, +{ HP_POP(intif->pCreateHomunculus), HP_POP2(HP_intif_pCreateHomunculus), 2350 }, +{ HP_POP(intif->pRecvHomunculusData), HP_POP2(HP_intif_pRecvHomunculusData), 2352 }, +{ HP_POP(intif->pSaveHomunculusOk), HP_POP2(HP_intif_pSaveHomunculusOk), 2354 }, +{ HP_POP(intif->pDeleteHomunculusOk), HP_POP2(HP_intif_pDeleteHomunculusOk), 2356 }, +/* ircbot */ +{ HP_POP(ircbot->init), HP_POP2(HP_ircbot_init), 2358 }, +{ HP_POP(ircbot->final), HP_POP2(HP_ircbot_final), 2360 }, +{ HP_POP(ircbot->parse), HP_POP2(HP_ircbot_parse), 2362 }, +{ HP_POP(ircbot->parse_sub), HP_POP2(HP_ircbot_parse_sub), 2364 }, +{ HP_POP(ircbot->parse_source), HP_POP2(HP_ircbot_parse_source), 2366 }, +{ HP_POP(ircbot->func_search), HP_POP2(HP_ircbot_func_search), 2368 }, +{ HP_POP(ircbot->connect_timer), HP_POP2(HP_ircbot_connect_timer), 2370 }, +{ HP_POP(ircbot->identify_timer), HP_POP2(HP_ircbot_identify_timer), 2372 }, +{ HP_POP(ircbot->join_timer), HP_POP2(HP_ircbot_join_timer), 2374 }, +{ HP_POP(ircbot->send), HP_POP2(HP_ircbot_send), 2376 }, +{ HP_POP(ircbot->relay), HP_POP2(HP_ircbot_relay), 2378 }, +{ HP_POP(ircbot->pong), HP_POP2(HP_ircbot_pong), 2380 }, +{ HP_POP(ircbot->privmsg), HP_POP2(HP_ircbot_privmsg), 2382 }, +{ HP_POP(ircbot->userjoin), HP_POP2(HP_ircbot_userjoin), 2384 }, +{ HP_POP(ircbot->userleave), HP_POP2(HP_ircbot_userleave), 2386 }, +{ HP_POP(ircbot->usernick), HP_POP2(HP_ircbot_usernick), 2388 }, +/* itemdb */ +{ HP_POP(itemdb->init), HP_POP2(HP_itemdb_init), 2390 }, +{ HP_POP(itemdb->final), HP_POP2(HP_itemdb_final), 2392 }, +{ HP_POP(itemdb->reload), HP_POP2(HP_itemdb_reload), 2394 }, +{ HP_POP(itemdb->name_constants), HP_POP2(HP_itemdb_name_constants), 2396 }, +{ HP_POP(itemdb->force_name_constants), HP_POP2(HP_itemdb_force_name_constants), 2398 }, +{ HP_POP(itemdb->read_groups), HP_POP2(HP_itemdb_read_groups), 2400 }, +{ HP_POP(itemdb->read_chains), HP_POP2(HP_itemdb_read_chains), 2402 }, +{ HP_POP(itemdb->read_packages), HP_POP2(HP_itemdb_read_packages), 2404 }, +{ HP_POP(itemdb->write_cached_packages), HP_POP2(HP_itemdb_write_cached_packages), 2406 }, +{ HP_POP(itemdb->read_cached_packages), HP_POP2(HP_itemdb_read_cached_packages), 2408 }, +{ HP_POP(itemdb->name2id), HP_POP2(HP_itemdb_name2id), 2410 }, +{ HP_POP(itemdb->search_name), HP_POP2(HP_itemdb_search_name), 2412 }, +{ HP_POP(itemdb->search_name_array), HP_POP2(HP_itemdb_search_name_array), 2414 }, +{ HP_POP(itemdb->load), HP_POP2(HP_itemdb_load), 2416 }, +{ HP_POP(itemdb->search), HP_POP2(HP_itemdb_search), 2418 }, +{ HP_POP(itemdb->parse_dbrow), HP_POP2(HP_itemdb_parse_dbrow), 2420 }, +{ HP_POP(itemdb->exists), HP_POP2(HP_itemdb_exists), 2422 }, +{ HP_POP(itemdb->in_group), HP_POP2(HP_itemdb_in_group), 2424 }, +{ HP_POP(itemdb->group_item), HP_POP2(HP_itemdb_group_item), 2426 }, +{ HP_POP(itemdb->chain_item), HP_POP2(HP_itemdb_chain_item), 2428 }, +{ HP_POP(itemdb->package_item), HP_POP2(HP_itemdb_package_item), 2430 }, +{ HP_POP(itemdb->searchname_sub), HP_POP2(HP_itemdb_searchname_sub), 2432 }, +{ HP_POP(itemdb->searchname_array_sub), HP_POP2(HP_itemdb_searchname_array_sub), 2434 }, +{ HP_POP(itemdb->searchrandomid), HP_POP2(HP_itemdb_searchrandomid), 2436 }, +{ HP_POP(itemdb->typename), HP_POP2(HP_itemdb_typename), 2438 }, +{ HP_POP(itemdb->jobid2mapid), HP_POP2(HP_itemdb_jobid2mapid), 2440 }, +{ HP_POP(itemdb->create_dummy_data), HP_POP2(HP_itemdb_create_dummy_data), 2442 }, +{ HP_POP(itemdb->create_item_data), HP_POP2(HP_itemdb_create_item_data), 2444 }, +{ HP_POP(itemdb->isequip), HP_POP2(HP_itemdb_isequip), 2446 }, +{ HP_POP(itemdb->isequip2), HP_POP2(HP_itemdb_isequip2), 2448 }, +{ HP_POP(itemdb->isstackable), HP_POP2(HP_itemdb_isstackable), 2450 }, +{ HP_POP(itemdb->isstackable2), HP_POP2(HP_itemdb_isstackable2), 2452 }, +{ HP_POP(itemdb->isdropable_sub), HP_POP2(HP_itemdb_isdropable_sub), 2454 }, +{ HP_POP(itemdb->cantrade_sub), HP_POP2(HP_itemdb_cantrade_sub), 2456 }, +{ HP_POP(itemdb->canpartnertrade_sub), HP_POP2(HP_itemdb_canpartnertrade_sub), 2458 }, +{ HP_POP(itemdb->cansell_sub), HP_POP2(HP_itemdb_cansell_sub), 2460 }, +{ HP_POP(itemdb->cancartstore_sub), HP_POP2(HP_itemdb_cancartstore_sub), 2462 }, +{ HP_POP(itemdb->canstore_sub), HP_POP2(HP_itemdb_canstore_sub), 2464 }, +{ HP_POP(itemdb->canguildstore_sub), HP_POP2(HP_itemdb_canguildstore_sub), 2466 }, +{ HP_POP(itemdb->canmail_sub), HP_POP2(HP_itemdb_canmail_sub), 2468 }, +{ HP_POP(itemdb->canauction_sub), HP_POP2(HP_itemdb_canauction_sub), 2470 }, +{ HP_POP(itemdb->isrestricted), HP_POP2(HP_itemdb_isrestricted), 2472 }, +{ HP_POP(itemdb->isidentified), HP_POP2(HP_itemdb_isidentified), 2474 }, +{ HP_POP(itemdb->isidentified2), HP_POP2(HP_itemdb_isidentified2), 2476 }, +{ HP_POP(itemdb->read_itemavail), HP_POP2(HP_itemdb_read_itemavail), 2478 }, +{ HP_POP(itemdb->read_itemtrade), HP_POP2(HP_itemdb_read_itemtrade), 2480 }, +{ HP_POP(itemdb->read_itemdelay), HP_POP2(HP_itemdb_read_itemdelay), 2482 }, +{ HP_POP(itemdb->read_stack), HP_POP2(HP_itemdb_read_stack), 2484 }, +{ HP_POP(itemdb->read_buyingstore), HP_POP2(HP_itemdb_read_buyingstore), 2486 }, +{ HP_POP(itemdb->read_nouse), HP_POP2(HP_itemdb_read_nouse), 2488 }, +{ HP_POP(itemdb->combo_split_atoi), HP_POP2(HP_itemdb_combo_split_atoi), 2490 }, +{ HP_POP(itemdb->read_combos), HP_POP2(HP_itemdb_read_combos), 2492 }, +{ HP_POP(itemdb->gendercheck), HP_POP2(HP_itemdb_gendercheck), 2494 }, +{ HP_POP(itemdb->re_split_atoi), HP_POP2(HP_itemdb_re_split_atoi), 2496 }, +{ HP_POP(itemdb->readdb), HP_POP2(HP_itemdb_readdb), 2498 }, +{ HP_POP(itemdb->read_sqldb), HP_POP2(HP_itemdb_read_sqldb), 2500 }, +{ HP_POP(itemdb->unique_id), HP_POP2(HP_itemdb_unique_id), 2502 }, +{ HP_POP(itemdb->uid_load), HP_POP2(HP_itemdb_uid_load), 2504 }, +{ HP_POP(itemdb->read), HP_POP2(HP_itemdb_read), 2506 }, +{ HP_POP(itemdb->destroy_item_data), HP_POP2(HP_itemdb_destroy_item_data), 2508 }, +{ HP_POP(itemdb->final_sub), HP_POP2(HP_itemdb_final_sub), 2510 }, +/* logs */ +{ HP_POP(logs->pick_pc), HP_POP2(HP_logs_pick_pc), 2512 }, +{ HP_POP(logs->pick_mob), HP_POP2(HP_logs_pick_mob), 2514 }, +{ HP_POP(logs->zeny), HP_POP2(HP_logs_zeny), 2516 }, +{ HP_POP(logs->npc), HP_POP2(HP_logs_npc), 2518 }, +{ HP_POP(logs->chat), HP_POP2(HP_logs_chat), 2520 }, +{ HP_POP(logs->atcommand), HP_POP2(HP_logs_atcommand), 2522 }, +{ HP_POP(logs->branch), HP_POP2(HP_logs_branch), 2524 }, +{ HP_POP(logs->mvpdrop), HP_POP2(HP_logs_mvpdrop), 2526 }, +{ HP_POP(logs->pick_sub), HP_POP2(HP_logs_pick_sub), 2528 }, +{ HP_POP(logs->zeny_sub), HP_POP2(HP_logs_zeny_sub), 2530 }, +{ HP_POP(logs->npc_sub), HP_POP2(HP_logs_npc_sub), 2532 }, +{ HP_POP(logs->chat_sub), HP_POP2(HP_logs_chat_sub), 2534 }, +{ HP_POP(logs->atcommand_sub), HP_POP2(HP_logs_atcommand_sub), 2536 }, +{ HP_POP(logs->branch_sub), HP_POP2(HP_logs_branch_sub), 2538 }, +{ HP_POP(logs->mvpdrop_sub), HP_POP2(HP_logs_mvpdrop_sub), 2540 }, +{ HP_POP(logs->config_read), HP_POP2(HP_logs_config_read), 2542 }, +{ HP_POP(logs->config_done), HP_POP2(HP_logs_config_done), 2544 }, +{ HP_POP(logs->sql_init), HP_POP2(HP_logs_sql_init), 2546 }, +{ HP_POP(logs->sql_final), HP_POP2(HP_logs_sql_final), 2548 }, +{ HP_POP(logs->picktype2char), HP_POP2(HP_logs_picktype2char), 2550 }, +{ HP_POP(logs->chattype2char), HP_POP2(HP_logs_chattype2char), 2552 }, +{ HP_POP(logs->should_log_item), HP_POP2(HP_logs_should_log_item), 2554 }, +/* mail */ +{ HP_POP(mail->clear), HP_POP2(HP_mail_clear), 2556 }, +{ HP_POP(mail->removeitem), HP_POP2(HP_mail_removeitem), 2558 }, +{ HP_POP(mail->removezeny), HP_POP2(HP_mail_removezeny), 2560 }, +{ HP_POP(mail->setitem), HP_POP2(HP_mail_setitem), 2562 }, +{ HP_POP(mail->setattachment), HP_POP2(HP_mail_setattachment), 2564 }, +{ HP_POP(mail->getattachment), HP_POP2(HP_mail_getattachment), 2566 }, +{ HP_POP(mail->openmail), HP_POP2(HP_mail_openmail), 2568 }, +{ HP_POP(mail->deliveryfail), HP_POP2(HP_mail_deliveryfail), 2570 }, +{ HP_POP(mail->invalid_operation), HP_POP2(HP_mail_invalid_operation), 2572 }, +/* map */ +{ HP_POP(map->zone_init), HP_POP2(HP_map_zone_init), 2574 }, +{ HP_POP(map->zone_remove), HP_POP2(HP_map_zone_remove), 2576 }, +{ HP_POP(map->zone_apply), HP_POP2(HP_map_zone_apply), 2578 }, +{ HP_POP(map->zone_change), HP_POP2(HP_map_zone_change), 2580 }, +{ HP_POP(map->zone_change2), HP_POP2(HP_map_zone_change2), 2582 }, +{ HP_POP(map->getcell), HP_POP2(HP_map_getcell), 2584 }, +{ HP_POP(map->setgatcell), HP_POP2(HP_map_setgatcell), 2586 }, +{ HP_POP(map->cellfromcache), HP_POP2(HP_map_cellfromcache), 2588 }, +{ HP_POP(map->setusers), HP_POP2(HP_map_setusers), 2590 }, +{ HP_POP(map->getusers), HP_POP2(HP_map_getusers), 2592 }, +{ HP_POP(map->usercount), HP_POP2(HP_map_usercount), 2594 }, +{ HP_POP(map->freeblock), HP_POP2(HP_map_freeblock), 2596 }, +{ HP_POP(map->freeblock_lock), HP_POP2(HP_map_freeblock_lock), 2598 }, +{ HP_POP(map->freeblock_unlock), HP_POP2(HP_map_freeblock_unlock), 2600 }, +{ HP_POP(map->addblock), HP_POP2(HP_map_addblock), 2602 }, +{ HP_POP(map->delblock), HP_POP2(HP_map_delblock), 2604 }, +{ HP_POP(map->moveblock), HP_POP2(HP_map_moveblock), 2606 }, +{ HP_POP(map->count_oncell), HP_POP2(HP_map_count_oncell), 2608 }, +{ HP_POP(map->find_skill_unit_oncell), HP_POP2(HP_map_find_skill_unit_oncell), 2610 }, +{ HP_POP(map->get_new_object_id), HP_POP2(HP_map_get_new_object_id), 2612 }, +{ HP_POP(map->search_freecell), HP_POP2(HP_map_search_freecell), 2614 }, +{ HP_POP(map->quit), HP_POP2(HP_map_quit), 2616 }, +{ HP_POP(map->addnpc), HP_POP2(HP_map_addnpc), 2618 }, +{ HP_POP(map->clearflooritem_timer), HP_POP2(HP_map_clearflooritem_timer), 2620 }, +{ HP_POP(map->removemobs_timer), HP_POP2(HP_map_removemobs_timer), 2622 }, +{ HP_POP(map->clearflooritem), HP_POP2(HP_map_clearflooritem), 2624 }, +{ HP_POP(map->addflooritem), HP_POP2(HP_map_addflooritem), 2626 }, +{ HP_POP(map->addnickdb), HP_POP2(HP_map_addnickdb), 2628 }, +{ HP_POP(map->delnickdb), HP_POP2(HP_map_delnickdb), 2630 }, +{ HP_POP(map->reqnickdb), HP_POP2(HP_map_reqnickdb), 2632 }, +{ HP_POP(map->charid2nick), HP_POP2(HP_map_charid2nick), 2634 }, +{ HP_POP(map->charid2sd), HP_POP2(HP_map_charid2sd), 2636 }, +{ HP_POP(map->vforeachpc), HP_POP2(HP_map_vforeachpc), 2638 }, +{ HP_POP(map->vforeachmob), HP_POP2(HP_map_vforeachmob), 2640 }, +{ HP_POP(map->vforeachnpc), HP_POP2(HP_map_vforeachnpc), 2642 }, +{ HP_POP(map->vforeachregen), HP_POP2(HP_map_vforeachregen), 2644 }, +{ HP_POP(map->vforeachiddb), HP_POP2(HP_map_vforeachiddb), 2646 }, +{ HP_POP(map->vforeachinrange), HP_POP2(HP_map_vforeachinrange), 2648 }, +{ HP_POP(map->vforeachinshootrange), HP_POP2(HP_map_vforeachinshootrange), 2650 }, +{ HP_POP(map->vforeachinarea), HP_POP2(HP_map_vforeachinarea), 2652 }, +{ HP_POP(map->vforcountinrange), HP_POP2(HP_map_vforcountinrange), 2654 }, +{ HP_POP(map->vforcountinarea), HP_POP2(HP_map_vforcountinarea), 2656 }, +{ HP_POP(map->vforeachinmovearea), HP_POP2(HP_map_vforeachinmovearea), 2658 }, +{ HP_POP(map->vforeachincell), HP_POP2(HP_map_vforeachincell), 2660 }, +{ HP_POP(map->vforeachinpath), HP_POP2(HP_map_vforeachinpath), 2662 }, +{ HP_POP(map->vforeachinmap), HP_POP2(HP_map_vforeachinmap), 2664 }, +{ HP_POP(map->vforeachininstance), HP_POP2(HP_map_vforeachininstance), 2666 }, +{ HP_POP(map->id2sd), HP_POP2(HP_map_id2sd), 2668 }, +{ HP_POP(map->id2md), HP_POP2(HP_map_id2md), 2670 }, +{ HP_POP(map->id2nd), HP_POP2(HP_map_id2nd), 2672 }, +{ HP_POP(map->id2hd), HP_POP2(HP_map_id2hd), 2674 }, +{ HP_POP(map->id2mc), HP_POP2(HP_map_id2mc), 2676 }, +{ HP_POP(map->id2cd), HP_POP2(HP_map_id2cd), 2678 }, +{ HP_POP(map->id2bl), HP_POP2(HP_map_id2bl), 2680 }, +{ HP_POP(map->blid_exists), HP_POP2(HP_map_blid_exists), 2682 }, +{ HP_POP(map->mapindex2mapid), HP_POP2(HP_map_mapindex2mapid), 2684 }, +{ HP_POP(map->mapname2mapid), HP_POP2(HP_map_mapname2mapid), 2686 }, +{ HP_POP(map->mapname2ipport), HP_POP2(HP_map_mapname2ipport), 2688 }, +{ HP_POP(map->setipport), HP_POP2(HP_map_setipport), 2690 }, +{ HP_POP(map->eraseipport), HP_POP2(HP_map_eraseipport), 2692 }, +{ HP_POP(map->eraseallipport), HP_POP2(HP_map_eraseallipport), 2694 }, +{ HP_POP(map->addiddb), HP_POP2(HP_map_addiddb), 2696 }, +{ HP_POP(map->deliddb), HP_POP2(HP_map_deliddb), 2698 }, +{ HP_POP(map->nick2sd), HP_POP2(HP_map_nick2sd), 2700 }, +{ HP_POP(map->getmob_boss), HP_POP2(HP_map_getmob_boss), 2702 }, +{ HP_POP(map->id2boss), HP_POP2(HP_map_id2boss), 2704 }, +{ HP_POP(map->reloadnpc), HP_POP2(HP_map_reloadnpc), 2706 }, +{ HP_POP(map->check_dir), HP_POP2(HP_map_check_dir), 2708 }, +{ HP_POP(map->calc_dir), HP_POP2(HP_map_calc_dir), 2710 }, +{ HP_POP(map->random_dir), HP_POP2(HP_map_random_dir), 2712 }, +{ HP_POP(map->cleanup_sub), HP_POP2(HP_map_cleanup_sub), 2714 }, +{ HP_POP(map->delmap), HP_POP2(HP_map_delmap), 2716 }, +{ HP_POP(map->flags_init), HP_POP2(HP_map_flags_init), 2718 }, +{ HP_POP(map->iwall_set), HP_POP2(HP_map_iwall_set), 2720 }, +{ HP_POP(map->iwall_get), HP_POP2(HP_map_iwall_get), 2722 }, +{ HP_POP(map->iwall_remove), HP_POP2(HP_map_iwall_remove), 2724 }, +{ HP_POP(map->addmobtolist), HP_POP2(HP_map_addmobtolist), 2726 }, +{ HP_POP(map->spawnmobs), HP_POP2(HP_map_spawnmobs), 2728 }, +{ HP_POP(map->removemobs), HP_POP2(HP_map_removemobs), 2730 }, +{ HP_POP(map->addmap2db), HP_POP2(HP_map_addmap2db), 2732 }, +{ HP_POP(map->removemapdb), HP_POP2(HP_map_removemapdb), 2734 }, +{ HP_POP(map->clean), HP_POP2(HP_map_clean), 2736 }, +{ HP_POP(map->do_shutdown), HP_POP2(HP_map_do_shutdown), 2738 }, +{ HP_POP(map->freeblock_timer), HP_POP2(HP_map_freeblock_timer), 2740 }, +{ HP_POP(map->searchrandfreecell), HP_POP2(HP_map_searchrandfreecell), 2742 }, +{ HP_POP(map->count_sub), HP_POP2(HP_map_count_sub), 2744 }, +{ HP_POP(map->create_charid2nick), HP_POP2(HP_map_create_charid2nick), 2746 }, +{ HP_POP(map->removemobs_sub), HP_POP2(HP_map_removemobs_sub), 2748 }, +{ HP_POP(map->gat2cell), HP_POP2(HP_map_gat2cell), 2750 }, +{ HP_POP(map->cell2gat), HP_POP2(HP_map_cell2gat), 2752 }, +{ HP_POP(map->getcellp), HP_POP2(HP_map_getcellp), 2754 }, +{ HP_POP(map->setcell), HP_POP2(HP_map_setcell), 2756 }, +{ HP_POP(map->sub_getcellp), HP_POP2(HP_map_sub_getcellp), 2758 }, +{ HP_POP(map->sub_setcell), HP_POP2(HP_map_sub_setcell), 2760 }, +{ HP_POP(map->iwall_nextxy), HP_POP2(HP_map_iwall_nextxy), 2762 }, +{ HP_POP(map->create_map_data_other_server), HP_POP2(HP_map_create_map_data_other_server), 2764 }, +{ HP_POP(map->eraseallipport_sub), HP_POP2(HP_map_eraseallipport_sub), 2766 }, +{ HP_POP(map->init_mapcache), HP_POP2(HP_map_init_mapcache), 2768 }, +{ HP_POP(map->readfromcache), HP_POP2(HP_map_readfromcache), 2770 }, +{ HP_POP(map->addmap), HP_POP2(HP_map_addmap), 2772 }, +{ HP_POP(map->delmapid), HP_POP2(HP_map_delmapid), 2774 }, +{ HP_POP(map->zone_db_clear), HP_POP2(HP_map_zone_db_clear), 2776 }, +{ HP_POP(map->list_final), HP_POP2(HP_map_list_final), 2778 }, +{ HP_POP(map->waterheight), HP_POP2(HP_map_waterheight), 2780 }, +{ HP_POP(map->readgat), HP_POP2(HP_map_readgat), 2782 }, +{ HP_POP(map->readallmaps), HP_POP2(HP_map_readallmaps), 2784 }, +{ HP_POP(map->config_read), HP_POP2(HP_map_config_read), 2786 }, +{ HP_POP(map->config_read_sub), HP_POP2(HP_map_config_read_sub), 2788 }, +{ HP_POP(map->reloadnpc_sub), HP_POP2(HP_map_reloadnpc_sub), 2790 }, +{ HP_POP(map->inter_config_read), HP_POP2(HP_map_inter_config_read), 2792 }, +{ HP_POP(map->sql_init), HP_POP2(HP_map_sql_init), 2794 }, +{ HP_POP(map->sql_close), HP_POP2(HP_map_sql_close), 2796 }, +{ HP_POP(map->zone_mf_cache), HP_POP2(HP_map_zone_mf_cache), 2798 }, +{ HP_POP(map->zone_str2itemid), HP_POP2(HP_map_zone_str2itemid), 2800 }, +{ HP_POP(map->zone_str2skillid), HP_POP2(HP_map_zone_str2skillid), 2802 }, +{ HP_POP(map->zone_bl_type), HP_POP2(HP_map_zone_bl_type), 2804 }, +{ HP_POP(map->read_zone_db), HP_POP2(HP_map_read_zone_db), 2806 }, +{ HP_POP(map->db_final), HP_POP2(HP_map_db_final), 2808 }, +{ HP_POP(map->nick_db_final), HP_POP2(HP_map_nick_db_final), 2810 }, +{ HP_POP(map->cleanup_db_sub), HP_POP2(HP_map_cleanup_db_sub), 2812 }, +{ HP_POP(map->abort_sub), HP_POP2(HP_map_abort_sub), 2814 }, +{ HP_POP(map->helpscreen), HP_POP2(HP_map_helpscreen), 2816 }, +{ HP_POP(map->versionscreen), HP_POP2(HP_map_versionscreen), 2818 }, +{ HP_POP(map->arg_next_value), HP_POP2(HP_map_arg_next_value), 2820 }, +{ HP_POP(map->addblcell), HP_POP2(HP_map_addblcell), 2822 }, +{ HP_POP(map->delblcell), HP_POP2(HP_map_delblcell), 2824 }, +/* mapit */ +{ HP_POP(mapit->alloc), HP_POP2(HP_mapit_alloc), 2826 }, +{ HP_POP(mapit->free), HP_POP2(HP_mapit_free), 2828 }, +{ HP_POP(mapit->first), HP_POP2(HP_mapit_first), 2830 }, +{ HP_POP(mapit->last), HP_POP2(HP_mapit_last), 2832 }, +{ HP_POP(mapit->next), HP_POP2(HP_mapit_next), 2834 }, +{ HP_POP(mapit->prev), HP_POP2(HP_mapit_prev), 2836 }, +{ HP_POP(mapit->exists), HP_POP2(HP_mapit_exists), 2838 }, +/* mapreg */ +{ HP_POP(mapreg->init), HP_POP2(HP_mapreg_init), 2840 }, +{ HP_POP(mapreg->final), HP_POP2(HP_mapreg_final), 2842 }, +{ HP_POP(mapreg->readreg), HP_POP2(HP_mapreg_readreg), 2844 }, +{ HP_POP(mapreg->readregstr), HP_POP2(HP_mapreg_readregstr), 2846 }, +{ HP_POP(mapreg->setreg), HP_POP2(HP_mapreg_setreg), 2848 }, +{ HP_POP(mapreg->setregstr), HP_POP2(HP_mapreg_setregstr), 2850 }, +{ HP_POP(mapreg->load), HP_POP2(HP_mapreg_load), 2852 }, +{ HP_POP(mapreg->save), HP_POP2(HP_mapreg_save), 2854 }, +{ HP_POP(mapreg->save_timer), HP_POP2(HP_mapreg_save_timer), 2856 }, +{ HP_POP(mapreg->reload), HP_POP2(HP_mapreg_reload), 2858 }, +{ HP_POP(mapreg->config_read), HP_POP2(HP_mapreg_config_read), 2860 }, +/* mercenary */ +{ HP_POP(mercenary->init), HP_POP2(HP_mercenary_init), 2862 }, +{ HP_POP(mercenary->class), HP_POP2(HP_mercenary_class), 2864 }, +{ HP_POP(mercenary->get_viewdata), HP_POP2(HP_mercenary_get_viewdata), 2866 }, +{ HP_POP(mercenary->create), HP_POP2(HP_mercenary_create), 2868 }, +{ HP_POP(mercenary->data_received), HP_POP2(HP_mercenary_data_received), 2870 }, +{ HP_POP(mercenary->save), HP_POP2(HP_mercenary_save), 2872 }, +{ HP_POP(mercenary->heal), HP_POP2(HP_mercenary_heal), 2874 }, +{ HP_POP(mercenary->dead), HP_POP2(HP_mercenary_dead), 2876 }, +{ HP_POP(mercenary->delete), HP_POP2(HP_mercenary_delete), 2878 }, +{ HP_POP(mercenary->contract_stop), HP_POP2(HP_mercenary_contract_stop), 2880 }, +{ HP_POP(mercenary->get_lifetime), HP_POP2(HP_mercenary_get_lifetime), 2882 }, +{ HP_POP(mercenary->get_guild), HP_POP2(HP_mercenary_get_guild), 2884 }, +{ HP_POP(mercenary->get_faith), HP_POP2(HP_mercenary_get_faith), 2886 }, +{ HP_POP(mercenary->set_faith), HP_POP2(HP_mercenary_set_faith), 2888 }, +{ HP_POP(mercenary->get_calls), HP_POP2(HP_mercenary_get_calls), 2890 }, +{ HP_POP(mercenary->set_calls), HP_POP2(HP_mercenary_set_calls), 2892 }, +{ HP_POP(mercenary->kills), HP_POP2(HP_mercenary_kills), 2894 }, +{ HP_POP(mercenary->checkskill), HP_POP2(HP_mercenary_checkskill), 2896 }, +{ HP_POP(mercenary->read_db), HP_POP2(HP_mercenary_read_db), 2898 }, +{ HP_POP(mercenary->read_skilldb), HP_POP2(HP_mercenary_read_skilldb), 2900 }, +{ HP_POP(mercenary->killbonus), HP_POP2(HP_mercenary_killbonus), 2902 }, +{ HP_POP(mercenary->search_index), HP_POP2(HP_mercenary_search_index), 2904 }, +{ HP_POP(mercenary->contract_end_timer), HP_POP2(HP_mercenary_contract_end_timer), 2906 }, +{ HP_POP(mercenary->read_db_sub), HP_POP2(HP_mercenary_read_db_sub), 2908 }, +{ HP_POP(mercenary->read_skill_db_sub), HP_POP2(HP_mercenary_read_skill_db_sub), 2910 }, +/* mob */ +{ HP_POP(mob->init), HP_POP2(HP_mob_init), 2912 }, +{ HP_POP(mob->final), HP_POP2(HP_mob_final), 2914 }, +{ HP_POP(mob->reload), HP_POP2(HP_mob_reload), 2916 }, +{ HP_POP(mob->db), HP_POP2(HP_mob_db), 2918 }, +{ HP_POP(mob->chat), HP_POP2(HP_mob_chat), 2920 }, +{ HP_POP(mob->makedummymobdb), HP_POP2(HP_mob_makedummymobdb), 2922 }, +{ HP_POP(mob->spawn_guardian_sub), HP_POP2(HP_mob_spawn_guardian_sub), 2924 }, +{ HP_POP(mob->skill_id2skill_idx), HP_POP2(HP_mob_skill_id2skill_idx), 2926 }, +{ HP_POP(mob->db_searchname), HP_POP2(HP_mob_db_searchname), 2928 }, +{ HP_POP(mob->db_searchname_array_sub), HP_POP2(HP_mob_db_searchname_array_sub), 2930 }, +{ HP_POP(mob->mvptomb_create), HP_POP2(HP_mob_mvptomb_create), 2932 }, +{ HP_POP(mob->mvptomb_destroy), HP_POP2(HP_mob_mvptomb_destroy), 2934 }, +{ HP_POP(mob->db_searchname_array), HP_POP2(HP_mob_db_searchname_array), 2936 }, +{ HP_POP(mob->db_checkid), HP_POP2(HP_mob_db_checkid), 2938 }, +{ HP_POP(mob->get_viewdata), HP_POP2(HP_mob_get_viewdata), 2940 }, +{ HP_POP(mob->parse_dataset), HP_POP2(HP_mob_parse_dataset), 2942 }, +{ HP_POP(mob->spawn_dataset), HP_POP2(HP_mob_spawn_dataset), 2944 }, +{ HP_POP(mob->get_random_id), HP_POP2(HP_mob_get_random_id), 2946 }, +{ HP_POP(mob->ksprotected), HP_POP2(HP_mob_ksprotected), 2948 }, +{ HP_POP(mob->once_spawn_sub), HP_POP2(HP_mob_once_spawn_sub), 2950 }, +{ HP_POP(mob->once_spawn), HP_POP2(HP_mob_once_spawn), 2952 }, +{ HP_POP(mob->once_spawn_area), HP_POP2(HP_mob_once_spawn_area), 2954 }, +{ HP_POP(mob->spawn_guardian), HP_POP2(HP_mob_spawn_guardian), 2956 }, +{ HP_POP(mob->spawn_bg), HP_POP2(HP_mob_spawn_bg), 2958 }, +{ HP_POP(mob->can_reach), HP_POP2(HP_mob_can_reach), 2960 }, +{ HP_POP(mob->linksearch), HP_POP2(HP_mob_linksearch), 2962 }, +{ HP_POP(mob->delayspawn), HP_POP2(HP_mob_delayspawn), 2964 }, +{ HP_POP(mob->setdelayspawn), HP_POP2(HP_mob_setdelayspawn), 2966 }, +{ HP_POP(mob->count_sub), HP_POP2(HP_mob_count_sub), 2968 }, +{ HP_POP(mob->spawn), HP_POP2(HP_mob_spawn), 2970 }, +{ HP_POP(mob->can_changetarget), HP_POP2(HP_mob_can_changetarget), 2972 }, +{ HP_POP(mob->target), HP_POP2(HP_mob_target), 2974 }, +{ HP_POP(mob->ai_sub_hard_activesearch), HP_POP2(HP_mob_ai_sub_hard_activesearch), 2976 }, +{ HP_POP(mob->ai_sub_hard_changechase), HP_POP2(HP_mob_ai_sub_hard_changechase), 2978 }, +{ HP_POP(mob->ai_sub_hard_bg_ally), HP_POP2(HP_mob_ai_sub_hard_bg_ally), 2980 }, +{ HP_POP(mob->ai_sub_hard_lootsearch), HP_POP2(HP_mob_ai_sub_hard_lootsearch), 2982 }, +{ HP_POP(mob->warpchase_sub), HP_POP2(HP_mob_warpchase_sub), 2984 }, +{ HP_POP(mob->ai_sub_hard_slavemob), HP_POP2(HP_mob_ai_sub_hard_slavemob), 2986 }, +{ HP_POP(mob->unlocktarget), HP_POP2(HP_mob_unlocktarget), 2988 }, +{ HP_POP(mob->randomwalk), HP_POP2(HP_mob_randomwalk), 2990 }, +{ HP_POP(mob->warpchase), HP_POP2(HP_mob_warpchase), 2992 }, +{ HP_POP(mob->ai_sub_hard), HP_POP2(HP_mob_ai_sub_hard), 2994 }, +{ HP_POP(mob->ai_sub_hard_timer), HP_POP2(HP_mob_ai_sub_hard_timer), 2996 }, +{ HP_POP(mob->ai_sub_foreachclient), HP_POP2(HP_mob_ai_sub_foreachclient), 2998 }, +{ HP_POP(mob->ai_sub_lazy), HP_POP2(HP_mob_ai_sub_lazy), 3000 }, +{ HP_POP(mob->ai_lazy), HP_POP2(HP_mob_ai_lazy), 3002 }, +{ HP_POP(mob->ai_hard), HP_POP2(HP_mob_ai_hard), 3004 }, +{ HP_POP(mob->setdropitem), HP_POP2(HP_mob_setdropitem), 3006 }, +{ HP_POP(mob->setlootitem), HP_POP2(HP_mob_setlootitem), 3008 }, +{ HP_POP(mob->delay_item_drop), HP_POP2(HP_mob_delay_item_drop), 3010 }, +{ HP_POP(mob->item_drop), HP_POP2(HP_mob_item_drop), 3012 }, +{ HP_POP(mob->timer_delete), HP_POP2(HP_mob_timer_delete), 3014 }, +{ HP_POP(mob->deleteslave_sub), HP_POP2(HP_mob_deleteslave_sub), 3016 }, +{ HP_POP(mob->deleteslave), HP_POP2(HP_mob_deleteslave), 3018 }, +{ HP_POP(mob->respawn), HP_POP2(HP_mob_respawn), 3020 }, +{ HP_POP(mob->log_damage), HP_POP2(HP_mob_log_damage), 3022 }, +{ HP_POP(mob->damage), HP_POP2(HP_mob_damage), 3024 }, +{ HP_POP(mob->dead), HP_POP2(HP_mob_dead), 3026 }, +{ HP_POP(mob->revive), HP_POP2(HP_mob_revive), 3028 }, +{ HP_POP(mob->guardian_guildchange), HP_POP2(HP_mob_guardian_guildchange), 3030 }, +{ HP_POP(mob->random_class), HP_POP2(HP_mob_random_class), 3032 }, +{ HP_POP(mob->class_change), HP_POP2(HP_mob_class_change), 3034 }, +{ HP_POP(mob->heal), HP_POP2(HP_mob_heal), 3036 }, +{ HP_POP(mob->warpslave_sub), HP_POP2(HP_mob_warpslave_sub), 3038 }, +{ HP_POP(mob->warpslave), HP_POP2(HP_mob_warpslave), 3040 }, +{ HP_POP(mob->countslave_sub), HP_POP2(HP_mob_countslave_sub), 3042 }, +{ HP_POP(mob->countslave), HP_POP2(HP_mob_countslave), 3044 }, +{ HP_POP(mob->summonslave), HP_POP2(HP_mob_summonslave), 3046 }, +{ HP_POP(mob->getfriendhprate_sub), HP_POP2(HP_mob_getfriendhprate_sub), 3048 }, +{ HP_POP(mob->getfriendhprate), HP_POP2(HP_mob_getfriendhprate), 3050 }, +{ HP_POP(mob->getmasterhpltmaxrate), HP_POP2(HP_mob_getmasterhpltmaxrate), 3052 }, +{ HP_POP(mob->getfriendstatus_sub), HP_POP2(HP_mob_getfriendstatus_sub), 3054 }, +{ HP_POP(mob->getfriendstatus), HP_POP2(HP_mob_getfriendstatus), 3056 }, +{ HP_POP(mob->skill_use), HP_POP2(HP_mob_skill_use), 3058 }, +{ HP_POP(mob->skill_event), HP_POP2(HP_mob_skill_event), 3060 }, +{ HP_POP(mob->is_clone), HP_POP2(HP_mob_is_clone), 3062 }, +{ HP_POP(mob->clone_spawn), HP_POP2(HP_mob_clone_spawn), 3064 }, +{ HP_POP(mob->clone_delete), HP_POP2(HP_mob_clone_delete), 3066 }, +{ HP_POP(mob->drop_adjust), HP_POP2(HP_mob_drop_adjust), 3068 }, +{ HP_POP(mob->item_dropratio_adjust), HP_POP2(HP_mob_item_dropratio_adjust), 3070 }, +{ HP_POP(mob->parse_dbrow), HP_POP2(HP_mob_parse_dbrow), 3072 }, +{ HP_POP(mob->readdb_sub), HP_POP2(HP_mob_readdb_sub), 3074 }, +{ HP_POP(mob->readdb), HP_POP2(HP_mob_readdb), 3076 }, +{ HP_POP(mob->read_sqldb), HP_POP2(HP_mob_read_sqldb), 3078 }, +{ HP_POP(mob->readdb_mobavail), HP_POP2(HP_mob_readdb_mobavail), 3080 }, +{ HP_POP(mob->read_randommonster), HP_POP2(HP_mob_read_randommonster), 3082 }, +{ HP_POP(mob->parse_row_chatdb), HP_POP2(HP_mob_parse_row_chatdb), 3084 }, +{ HP_POP(mob->readchatdb), HP_POP2(HP_mob_readchatdb), 3086 }, +{ HP_POP(mob->parse_row_mobskilldb), HP_POP2(HP_mob_parse_row_mobskilldb), 3088 }, +{ HP_POP(mob->readskilldb), HP_POP2(HP_mob_readskilldb), 3090 }, +{ HP_POP(mob->read_sqlskilldb), HP_POP2(HP_mob_read_sqlskilldb), 3092 }, +{ HP_POP(mob->readdb_race2), HP_POP2(HP_mob_readdb_race2), 3094 }, +{ HP_POP(mob->readdb_itemratio), HP_POP2(HP_mob_readdb_itemratio), 3096 }, +{ HP_POP(mob->load), HP_POP2(HP_mob_load), 3098 }, +{ HP_POP(mob->clear_spawninfo), HP_POP2(HP_mob_clear_spawninfo), 3100 }, +/* npc */ +{ HP_POP(npc->init), HP_POP2(HP_npc_init), 3102 }, +{ HP_POP(npc->final), HP_POP2(HP_npc_final), 3104 }, +{ HP_POP(npc->get_new_npc_id), HP_POP2(HP_npc_get_new_npc_id), 3106 }, +{ HP_POP(npc->get_viewdata), HP_POP2(HP_npc_get_viewdata), 3108 }, +{ HP_POP(npc->isnear_sub), HP_POP2(HP_npc_isnear_sub), 3110 }, +{ HP_POP(npc->isnear), HP_POP2(HP_npc_isnear), 3112 }, +{ HP_POP(npc->ontouch_event), HP_POP2(HP_npc_ontouch_event), 3114 }, +{ HP_POP(npc->ontouch2_event), HP_POP2(HP_npc_ontouch2_event), 3116 }, +{ HP_POP(npc->enable_sub), HP_POP2(HP_npc_enable_sub), 3118 }, +{ HP_POP(npc->enable), HP_POP2(HP_npc_enable), 3120 }, +{ HP_POP(npc->name2id), HP_POP2(HP_npc_name2id), 3122 }, +{ HP_POP(npc->event_dequeue), HP_POP2(HP_npc_event_dequeue), 3124 }, +{ HP_POP(npc->event_export_create), HP_POP2(HP_npc_event_export_create), 3126 }, +{ HP_POP(npc->event_export), HP_POP2(HP_npc_event_export), 3128 }, +{ HP_POP(npc->event_sub), HP_POP2(HP_npc_event_sub), 3130 }, +{ HP_POP(npc->event_doall_sub), HP_POP2(HP_npc_event_doall_sub), 3132 }, +{ HP_POP(npc->event_do), HP_POP2(HP_npc_event_do), 3134 }, +{ HP_POP(npc->event_doall_id), HP_POP2(HP_npc_event_doall_id), 3136 }, +{ HP_POP(npc->event_doall), HP_POP2(HP_npc_event_doall), 3138 }, +{ HP_POP(npc->event_do_clock), HP_POP2(HP_npc_event_do_clock), 3140 }, +{ HP_POP(npc->event_do_oninit), HP_POP2(HP_npc_event_do_oninit), 3142 }, +{ HP_POP(npc->timerevent_export), HP_POP2(HP_npc_timerevent_export), 3144 }, +{ HP_POP(npc->timerevent), HP_POP2(HP_npc_timerevent), 3146 }, +{ HP_POP(npc->timerevent_start), HP_POP2(HP_npc_timerevent_start), 3148 }, +{ HP_POP(npc->timerevent_stop), HP_POP2(HP_npc_timerevent_stop), 3150 }, +{ HP_POP(npc->timerevent_quit), HP_POP2(HP_npc_timerevent_quit), 3152 }, +{ HP_POP(npc->gettimerevent_tick), HP_POP2(HP_npc_gettimerevent_tick), 3154 }, +{ HP_POP(npc->settimerevent_tick), HP_POP2(HP_npc_settimerevent_tick), 3156 }, +{ HP_POP(npc->event), HP_POP2(HP_npc_event), 3158 }, +{ HP_POP(npc->touch_areanpc_sub), HP_POP2(HP_npc_touch_areanpc_sub), 3160 }, +{ HP_POP(npc->touchnext_areanpc), HP_POP2(HP_npc_touchnext_areanpc), 3162 }, +{ HP_POP(npc->touch_areanpc), HP_POP2(HP_npc_touch_areanpc), 3164 }, +{ HP_POP(npc->touch_areanpc2), HP_POP2(HP_npc_touch_areanpc2), 3166 }, +{ HP_POP(npc->check_areanpc), HP_POP2(HP_npc_check_areanpc), 3168 }, +{ HP_POP(npc->checknear), HP_POP2(HP_npc_checknear), 3170 }, +{ HP_POP(npc->globalmessage), HP_POP2(HP_npc_globalmessage), 3172 }, +{ HP_POP(npc->run_tomb), HP_POP2(HP_npc_run_tomb), 3174 }, +{ HP_POP(npc->click), HP_POP2(HP_npc_click), 3176 }, +{ HP_POP(npc->scriptcont), HP_POP2(HP_npc_scriptcont), 3178 }, +{ HP_POP(npc->buysellsel), HP_POP2(HP_npc_buysellsel), 3180 }, +{ HP_POP(npc->cashshop_buylist), HP_POP2(HP_npc_cashshop_buylist), 3182 }, +{ HP_POP(npc->buylist_sub), HP_POP2(HP_npc_buylist_sub), 3184 }, +{ HP_POP(npc->cashshop_buy), HP_POP2(HP_npc_cashshop_buy), 3186 }, +{ HP_POP(npc->buylist), HP_POP2(HP_npc_buylist), 3188 }, +{ HP_POP(npc->selllist_sub), HP_POP2(HP_npc_selllist_sub), 3190 }, +{ HP_POP(npc->selllist), HP_POP2(HP_npc_selllist), 3192 }, +{ HP_POP(npc->remove_map), HP_POP2(HP_npc_remove_map), 3194 }, +{ HP_POP(npc->unload_ev), HP_POP2(HP_npc_unload_ev), 3196 }, +{ HP_POP(npc->unload_ev_label), HP_POP2(HP_npc_unload_ev_label), 3198 }, +{ HP_POP(npc->unload_dup_sub), HP_POP2(HP_npc_unload_dup_sub), 3200 }, +{ HP_POP(npc->unload_duplicates), HP_POP2(HP_npc_unload_duplicates), 3202 }, +{ HP_POP(npc->unload), HP_POP2(HP_npc_unload), 3204 }, +{ HP_POP(npc->clearsrcfile), HP_POP2(HP_npc_clearsrcfile), 3206 }, +{ HP_POP(npc->addsrcfile), HP_POP2(HP_npc_addsrcfile), 3208 }, +{ HP_POP(npc->delsrcfile), HP_POP2(HP_npc_delsrcfile), 3210 }, +{ HP_POP(npc->parsename), HP_POP2(HP_npc_parsename), 3212 }, +{ HP_POP(npc->add_warp), HP_POP2(HP_npc_add_warp), 3214 }, +{ HP_POP(npc->parse_warp), HP_POP2(HP_npc_parse_warp), 3216 }, +{ HP_POP(npc->parse_shop), HP_POP2(HP_npc_parse_shop), 3218 }, +{ HP_POP(npc->convertlabel_db), HP_POP2(HP_npc_convertlabel_db), 3220 }, +{ HP_POP(npc->skip_script), HP_POP2(HP_npc_skip_script), 3222 }, +{ HP_POP(npc->parse_script), HP_POP2(HP_npc_parse_script), 3224 }, +{ HP_POP(npc->parse_duplicate), HP_POP2(HP_npc_parse_duplicate), 3226 }, +{ HP_POP(npc->duplicate4instance), HP_POP2(HP_npc_duplicate4instance), 3228 }, +{ HP_POP(npc->setcells), HP_POP2(HP_npc_setcells), 3230 }, +{ HP_POP(npc->unsetcells_sub), HP_POP2(HP_npc_unsetcells_sub), 3232 }, +{ HP_POP(npc->unsetcells), HP_POP2(HP_npc_unsetcells), 3234 }, +{ HP_POP(npc->movenpc), HP_POP2(HP_npc_movenpc), 3236 }, +{ HP_POP(npc->setdisplayname), HP_POP2(HP_npc_setdisplayname), 3238 }, +{ HP_POP(npc->setclass), HP_POP2(HP_npc_setclass), 3240 }, +{ HP_POP(npc->do_atcmd_event), HP_POP2(HP_npc_do_atcmd_event), 3242 }, +{ HP_POP(npc->parse_function), HP_POP2(HP_npc_parse_function), 3244 }, +{ HP_POP(npc->parse_mob2), HP_POP2(HP_npc_parse_mob2), 3246 }, +{ HP_POP(npc->parse_mob), HP_POP2(HP_npc_parse_mob), 3248 }, +{ HP_POP(npc->parse_mapflag), HP_POP2(HP_npc_parse_mapflag), 3250 }, +{ HP_POP(npc->parsesrcfile), HP_POP2(HP_npc_parsesrcfile), 3252 }, +{ HP_POP(npc->script_event), HP_POP2(HP_npc_script_event), 3254 }, +{ HP_POP(npc->read_event_script), HP_POP2(HP_npc_read_event_script), 3256 }, +{ HP_POP(npc->path_db_clear_sub), HP_POP2(HP_npc_path_db_clear_sub), 3258 }, +{ HP_POP(npc->ev_label_db_clear_sub), HP_POP2(HP_npc_ev_label_db_clear_sub), 3260 }, +{ HP_POP(npc->reload), HP_POP2(HP_npc_reload), 3262 }, +{ HP_POP(npc->unloadfile), HP_POP2(HP_npc_unloadfile), 3264 }, +{ HP_POP(npc->do_clear_npc), HP_POP2(HP_npc_do_clear_npc), 3266 }, +{ HP_POP(npc->debug_warps_sub), HP_POP2(HP_npc_debug_warps_sub), 3268 }, +{ HP_POP(npc->debug_warps), HP_POP2(HP_npc_debug_warps), 3270 }, +{ HP_POP(npc->secure_timeout_timer), HP_POP2(HP_npc_secure_timeout_timer), 3272 }, +/* party */ +{ HP_POP(party->init), HP_POP2(HP_party_init), 3274 }, +{ HP_POP(party->final), HP_POP2(HP_party_final), 3276 }, +{ HP_POP(party->search), HP_POP2(HP_party_search), 3278 }, +{ HP_POP(party->searchname), HP_POP2(HP_party_searchname), 3280 }, +{ HP_POP(party->getmemberid), HP_POP2(HP_party_getmemberid), 3282 }, +{ HP_POP(party->getavailablesd), HP_POP2(HP_party_getavailablesd), 3284 }, +{ HP_POP(party->create), HP_POP2(HP_party_create), 3286 }, +{ HP_POP(party->created), HP_POP2(HP_party_created), 3288 }, +{ HP_POP(party->request_info), HP_POP2(HP_party_request_info), 3290 }, +{ HP_POP(party->invite), HP_POP2(HP_party_invite), 3292 }, +{ HP_POP(party->member_joined), HP_POP2(HP_party_member_joined), 3294 }, +{ HP_POP(party->member_added), HP_POP2(HP_party_member_added), 3296 }, +{ HP_POP(party->leave), HP_POP2(HP_party_leave), 3298 }, +{ HP_POP(party->removemember), HP_POP2(HP_party_removemember), 3300 }, +{ HP_POP(party->member_withdraw), HP_POP2(HP_party_member_withdraw), 3302 }, +{ HP_POP(party->reply_invite), HP_POP2(HP_party_reply_invite), 3304 }, +{ HP_POP(party->recv_noinfo), HP_POP2(HP_party_recv_noinfo), 3306 }, +{ HP_POP(party->recv_info), HP_POP2(HP_party_recv_info), 3308 }, +{ HP_POP(party->recv_movemap), HP_POP2(HP_party_recv_movemap), 3310 }, +{ HP_POP(party->broken), HP_POP2(HP_party_broken), 3312 }, +{ HP_POP(party->optionchanged), HP_POP2(HP_party_optionchanged), 3314 }, +{ HP_POP(party->changeoption), HP_POP2(HP_party_changeoption), 3316 }, +{ HP_POP(party->changeleader), HP_POP2(HP_party_changeleader), 3318 }, +{ HP_POP(party->send_movemap), HP_POP2(HP_party_send_movemap), 3320 }, +{ HP_POP(party->send_levelup), HP_POP2(HP_party_send_levelup), 3322 }, +{ HP_POP(party->send_logout), HP_POP2(HP_party_send_logout), 3324 }, +{ HP_POP(party->send_message), HP_POP2(HP_party_send_message), 3326 }, +{ HP_POP(party->recv_message), HP_POP2(HP_party_recv_message), 3328 }, +{ HP_POP(party->skill_check), HP_POP2(HP_party_skill_check), 3330 }, +{ HP_POP(party->send_xy_clear), HP_POP2(HP_party_send_xy_clear), 3332 }, +{ HP_POP(party->exp_share), HP_POP2(HP_party_exp_share), 3334 }, +{ HP_POP(party->share_loot), HP_POP2(HP_party_share_loot), 3336 }, +{ HP_POP(party->send_dot_remove), HP_POP2(HP_party_send_dot_remove), 3338 }, +{ HP_POP(party->sub_count), HP_POP2(HP_party_sub_count), 3340 }, +{ HP_POP(party->booking_register), HP_POP2(HP_party_booking_register), 3342 }, +{ HP_POP(party->booking_update), HP_POP2(HP_party_booking_update), 3344 }, +{ HP_POP(party->booking_search), HP_POP2(HP_party_booking_search), 3346 }, +{ HP_POP(party->recruit_register), HP_POP2(HP_party_recruit_register), 3348 }, +{ HP_POP(party->recruit_update), HP_POP2(HP_party_recruit_update), 3350 }, +{ HP_POP(party->recruit_search), HP_POP2(HP_party_recruit_search), 3352 }, +{ HP_POP(party->booking_delete), HP_POP2(HP_party_booking_delete), 3354 }, +{ HP_POP(party->vforeachsamemap), HP_POP2(HP_party_vforeachsamemap), 3356 }, +{ HP_POP(party->send_xy_timer), HP_POP2(HP_party_send_xy_timer), 3358 }, +{ HP_POP(party->fill_member), HP_POP2(HP_party_fill_member), 3360 }, +{ HP_POP(party->sd_check), HP_POP2(HP_party_sd_check), 3362 }, +{ HP_POP(party->check_state), HP_POP2(HP_party_check_state), 3364 }, +{ HP_POP(party->create_booking_data), HP_POP2(HP_party_create_booking_data), 3366 }, +{ HP_POP(party->db_final), HP_POP2(HP_party_db_final), 3368 }, +/* path */ +{ HP_POP(path->blownpos), HP_POP2(HP_path_blownpos), 3370 }, +{ HP_POP(path->search), HP_POP2(HP_path_search), 3372 }, +{ HP_POP(path->search_long), HP_POP2(HP_path_search_long), 3374 }, +{ HP_POP(path->check_distance), HP_POP2(HP_path_check_distance), 3376 }, +{ HP_POP(path->distance), HP_POP2(HP_path_distance), 3378 }, +/* pc */ +{ HP_POP(pc->init), HP_POP2(HP_pc_init), 3380 }, +{ HP_POP(pc->final), HP_POP2(HP_pc_final), 3382 }, +{ HP_POP(pc->get_dummy_sd), HP_POP2(HP_pc_get_dummy_sd), 3384 }, +{ HP_POP(pc->class2idx), HP_POP2(HP_pc_class2idx), 3386 }, +{ HP_POP(pc->get_group_level), HP_POP2(HP_pc_get_group_level), 3388 }, +{ HP_POP(pc->can_give_items), HP_POP2(HP_pc_can_give_items), 3390 }, +{ HP_POP(pc->can_use_command), HP_POP2(HP_pc_can_use_command), 3392 }, +{ HP_POP(pc->has_permission), HP_POP2(HP_pc_has_permission), 3394 }, +{ HP_POP(pc->set_group), HP_POP2(HP_pc_set_group), 3396 }, +{ HP_POP(pc->should_log_commands), HP_POP2(HP_pc_should_log_commands), 3398 }, +{ HP_POP(pc->setrestartvalue), HP_POP2(HP_pc_setrestartvalue), 3400 }, +{ HP_POP(pc->makesavestatus), HP_POP2(HP_pc_makesavestatus), 3402 }, +{ HP_POP(pc->respawn), HP_POP2(HP_pc_respawn), 3404 }, +{ HP_POP(pc->setnewpc), HP_POP2(HP_pc_setnewpc), 3406 }, +{ HP_POP(pc->authok), HP_POP2(HP_pc_authok), 3408 }, +{ HP_POP(pc->authfail), HP_POP2(HP_pc_authfail), 3410 }, +{ HP_POP(pc->reg_received), HP_POP2(HP_pc_reg_received), 3412 }, +{ HP_POP(pc->isequip), HP_POP2(HP_pc_isequip), 3414 }, +{ HP_POP(pc->equippoint), HP_POP2(HP_pc_equippoint), 3416 }, +{ HP_POP(pc->setinventorydata), HP_POP2(HP_pc_setinventorydata), 3418 }, +{ HP_POP(pc->checkskill), HP_POP2(HP_pc_checkskill), 3420 }, +{ HP_POP(pc->checkskill2), HP_POP2(HP_pc_checkskill2), 3422 }, +{ HP_POP(pc->checkallowskill), HP_POP2(HP_pc_checkallowskill), 3424 }, +{ HP_POP(pc->checkequip), HP_POP2(HP_pc_checkequip), 3426 }, +{ HP_POP(pc->calc_skilltree), HP_POP2(HP_pc_calc_skilltree), 3428 }, +{ HP_POP(pc->calc_skilltree_normalize_job), HP_POP2(HP_pc_calc_skilltree_normalize_job), 3430 }, +{ HP_POP(pc->clean_skilltree), HP_POP2(HP_pc_clean_skilltree), 3432 }, +{ HP_POP(pc->setpos), HP_POP2(HP_pc_setpos), 3434 }, +{ HP_POP(pc->setsavepoint), HP_POP2(HP_pc_setsavepoint), 3436 }, +{ HP_POP(pc->randomwarp), HP_POP2(HP_pc_randomwarp), 3438 }, +{ HP_POP(pc->memo), HP_POP2(HP_pc_memo), 3440 }, +{ HP_POP(pc->checkadditem), HP_POP2(HP_pc_checkadditem), 3442 }, +{ HP_POP(pc->inventoryblank), HP_POP2(HP_pc_inventoryblank), 3444 }, +{ HP_POP(pc->search_inventory), HP_POP2(HP_pc_search_inventory), 3446 }, +{ HP_POP(pc->payzeny), HP_POP2(HP_pc_payzeny), 3448 }, +{ HP_POP(pc->additem), HP_POP2(HP_pc_additem), 3450 }, +{ HP_POP(pc->getzeny), HP_POP2(HP_pc_getzeny), 3452 }, +{ HP_POP(pc->delitem), HP_POP2(HP_pc_delitem), 3454 }, +{ HP_POP(pc->paycash), HP_POP2(HP_pc_paycash), 3456 }, +{ HP_POP(pc->getcash), HP_POP2(HP_pc_getcash), 3458 }, +{ HP_POP(pc->cart_additem), HP_POP2(HP_pc_cart_additem), 3460 }, +{ HP_POP(pc->cart_delitem), HP_POP2(HP_pc_cart_delitem), 3462 }, +{ HP_POP(pc->putitemtocart), HP_POP2(HP_pc_putitemtocart), 3464 }, +{ HP_POP(pc->getitemfromcart), HP_POP2(HP_pc_getitemfromcart), 3466 }, +{ HP_POP(pc->cartitem_amount), HP_POP2(HP_pc_cartitem_amount), 3468 }, +{ HP_POP(pc->takeitem), HP_POP2(HP_pc_takeitem), 3470 }, +{ HP_POP(pc->dropitem), HP_POP2(HP_pc_dropitem), 3472 }, +{ HP_POP(pc->isequipped), HP_POP2(HP_pc_isequipped), 3474 }, +{ HP_POP(pc->can_Adopt), HP_POP2(HP_pc_can_Adopt), 3476 }, +{ HP_POP(pc->adoption), HP_POP2(HP_pc_adoption), 3478 }, +{ HP_POP(pc->updateweightstatus), HP_POP2(HP_pc_updateweightstatus), 3480 }, +{ HP_POP(pc->addautobonus), HP_POP2(HP_pc_addautobonus), 3482 }, +{ HP_POP(pc->exeautobonus), HP_POP2(HP_pc_exeautobonus), 3484 }, +{ HP_POP(pc->endautobonus), HP_POP2(HP_pc_endautobonus), 3486 }, +{ HP_POP(pc->delautobonus), HP_POP2(HP_pc_delautobonus), 3488 }, +{ HP_POP(pc->bonus), HP_POP2(HP_pc_bonus), 3490 }, +{ HP_POP(pc->bonus2), HP_POP2(HP_pc_bonus2), 3492 }, +{ HP_POP(pc->bonus3), HP_POP2(HP_pc_bonus3), 3494 }, +{ HP_POP(pc->bonus4), HP_POP2(HP_pc_bonus4), 3496 }, +{ HP_POP(pc->bonus5), HP_POP2(HP_pc_bonus5), 3498 }, +{ HP_POP(pc->skill), HP_POP2(HP_pc_skill), 3500 }, +{ HP_POP(pc->insert_card), HP_POP2(HP_pc_insert_card), 3502 }, +{ HP_POP(pc->steal_item), HP_POP2(HP_pc_steal_item), 3504 }, +{ HP_POP(pc->steal_coin), HP_POP2(HP_pc_steal_coin), 3506 }, +{ HP_POP(pc->modifybuyvalue), HP_POP2(HP_pc_modifybuyvalue), 3508 }, +{ HP_POP(pc->modifysellvalue), HP_POP2(HP_pc_modifysellvalue), 3510 }, +{ HP_POP(pc->follow), HP_POP2(HP_pc_follow), 3512 }, +{ HP_POP(pc->stop_following), HP_POP2(HP_pc_stop_following), 3514 }, +{ HP_POP(pc->maxbaselv), HP_POP2(HP_pc_maxbaselv), 3516 }, +{ HP_POP(pc->maxjoblv), HP_POP2(HP_pc_maxjoblv), 3518 }, +{ HP_POP(pc->checkbaselevelup), HP_POP2(HP_pc_checkbaselevelup), 3520 }, +{ HP_POP(pc->checkjoblevelup), HP_POP2(HP_pc_checkjoblevelup), 3522 }, +{ HP_POP(pc->gainexp), HP_POP2(HP_pc_gainexp), 3524 }, +{ HP_POP(pc->nextbaseexp), HP_POP2(HP_pc_nextbaseexp), 3526 }, +{ HP_POP(pc->thisbaseexp), HP_POP2(HP_pc_thisbaseexp), 3528 }, +{ HP_POP(pc->nextjobexp), HP_POP2(HP_pc_nextjobexp), 3530 }, +{ HP_POP(pc->thisjobexp), HP_POP2(HP_pc_thisjobexp), 3532 }, +{ HP_POP(pc->gets_status_point), HP_POP2(HP_pc_gets_status_point), 3534 }, +{ HP_POP(pc->need_status_point), HP_POP2(HP_pc_need_status_point), 3536 }, +{ HP_POP(pc->statusup), HP_POP2(HP_pc_statusup), 3538 }, +{ HP_POP(pc->statusup2), HP_POP2(HP_pc_statusup2), 3540 }, +{ HP_POP(pc->skillup), HP_POP2(HP_pc_skillup), 3542 }, +{ HP_POP(pc->allskillup), HP_POP2(HP_pc_allskillup), 3544 }, +{ HP_POP(pc->resetlvl), HP_POP2(HP_pc_resetlvl), 3546 }, +{ HP_POP(pc->resetstate), HP_POP2(HP_pc_resetstate), 3548 }, +{ HP_POP(pc->resetskill), HP_POP2(HP_pc_resetskill), 3550 }, +{ HP_POP(pc->resetfeel), HP_POP2(HP_pc_resetfeel), 3552 }, +{ HP_POP(pc->resethate), HP_POP2(HP_pc_resethate), 3554 }, +{ HP_POP(pc->equipitem), HP_POP2(HP_pc_equipitem), 3556 }, +{ HP_POP(pc->unequipitem), HP_POP2(HP_pc_unequipitem), 3558 }, +{ HP_POP(pc->checkitem), HP_POP2(HP_pc_checkitem), 3560 }, +{ HP_POP(pc->useitem), HP_POP2(HP_pc_useitem), 3562 }, +{ HP_POP(pc->skillatk_bonus), HP_POP2(HP_pc_skillatk_bonus), 3564 }, +{ HP_POP(pc->skillheal_bonus), HP_POP2(HP_pc_skillheal_bonus), 3566 }, +{ HP_POP(pc->skillheal2_bonus), HP_POP2(HP_pc_skillheal2_bonus), 3568 }, +{ HP_POP(pc->damage), HP_POP2(HP_pc_damage), 3570 }, +{ HP_POP(pc->dead), HP_POP2(HP_pc_dead), 3572 }, +{ HP_POP(pc->revive), HP_POP2(HP_pc_revive), 3574 }, +{ HP_POP(pc->heal), HP_POP2(HP_pc_heal), 3576 }, +{ HP_POP(pc->itemheal), HP_POP2(HP_pc_itemheal), 3578 }, +{ HP_POP(pc->percentheal), HP_POP2(HP_pc_percentheal), 3580 }, +{ HP_POP(pc->jobchange), HP_POP2(HP_pc_jobchange), 3582 }, +{ HP_POP(pc->setoption), HP_POP2(HP_pc_setoption), 3584 }, +{ HP_POP(pc->setcart), HP_POP2(HP_pc_setcart), 3586 }, +{ HP_POP(pc->setfalcon), HP_POP2(HP_pc_setfalcon), 3588 }, +{ HP_POP(pc->setriding), HP_POP2(HP_pc_setriding), 3590 }, +{ HP_POP(pc->setmadogear), HP_POP2(HP_pc_setmadogear), 3592 }, +{ HP_POP(pc->changelook), HP_POP2(HP_pc_changelook), 3594 }, +{ HP_POP(pc->equiplookall), HP_POP2(HP_pc_equiplookall), 3596 }, +{ HP_POP(pc->readparam), HP_POP2(HP_pc_readparam), 3598 }, +{ HP_POP(pc->setparam), HP_POP2(HP_pc_setparam), 3600 }, +{ HP_POP(pc->readreg), HP_POP2(HP_pc_readreg), 3602 }, +{ HP_POP(pc->setreg), HP_POP2(HP_pc_setreg), 3604 }, +{ HP_POP(pc->readregstr), HP_POP2(HP_pc_readregstr), 3606 }, +{ HP_POP(pc->setregstr), HP_POP2(HP_pc_setregstr), 3608 }, +{ HP_POP(pc->readregistry), HP_POP2(HP_pc_readregistry), 3610 }, +{ HP_POP(pc->setregistry), HP_POP2(HP_pc_setregistry), 3612 }, +{ HP_POP(pc->readregistry_str), HP_POP2(HP_pc_readregistry_str), 3614 }, +{ HP_POP(pc->setregistry_str), HP_POP2(HP_pc_setregistry_str), 3616 }, +{ HP_POP(pc->addeventtimer), HP_POP2(HP_pc_addeventtimer), 3618 }, +{ HP_POP(pc->deleventtimer), HP_POP2(HP_pc_deleventtimer), 3620 }, +{ HP_POP(pc->cleareventtimer), HP_POP2(HP_pc_cleareventtimer), 3622 }, +{ HP_POP(pc->addeventtimercount), HP_POP2(HP_pc_addeventtimercount), 3624 }, +{ HP_POP(pc->calc_pvprank), HP_POP2(HP_pc_calc_pvprank), 3626 }, +{ HP_POP(pc->calc_pvprank_timer), HP_POP2(HP_pc_calc_pvprank_timer), 3628 }, +{ HP_POP(pc->ismarried), HP_POP2(HP_pc_ismarried), 3630 }, +{ HP_POP(pc->marriage), HP_POP2(HP_pc_marriage), 3632 }, +{ HP_POP(pc->divorce), HP_POP2(HP_pc_divorce), 3634 }, +{ HP_POP(pc->get_partner), HP_POP2(HP_pc_get_partner), 3636 }, +{ HP_POP(pc->get_father), HP_POP2(HP_pc_get_father), 3638 }, +{ HP_POP(pc->get_mother), HP_POP2(HP_pc_get_mother), 3640 }, +{ HP_POP(pc->get_child), HP_POP2(HP_pc_get_child), 3642 }, +{ HP_POP(pc->bleeding), HP_POP2(HP_pc_bleeding), 3644 }, +{ HP_POP(pc->regen), HP_POP2(HP_pc_regen), 3646 }, +{ HP_POP(pc->setstand), HP_POP2(HP_pc_setstand), 3648 }, +{ HP_POP(pc->candrop), HP_POP2(HP_pc_candrop), 3650 }, +{ HP_POP(pc->jobid2mapid), HP_POP2(HP_pc_jobid2mapid), 3652 }, +{ HP_POP(pc->mapid2jobid), HP_POP2(HP_pc_mapid2jobid), 3654 }, +{ HP_POP(pc->job_name), HP_POP2(HP_pc_job_name), 3656 }, +{ HP_POP(pc->setinvincibletimer), HP_POP2(HP_pc_setinvincibletimer), 3658 }, +{ HP_POP(pc->delinvincibletimer), HP_POP2(HP_pc_delinvincibletimer), 3660 }, +{ HP_POP(pc->addspiritball), HP_POP2(HP_pc_addspiritball), 3662 }, +{ HP_POP(pc->delspiritball), HP_POP2(HP_pc_delspiritball), 3664 }, +{ HP_POP(pc->addfame), HP_POP2(HP_pc_addfame), 3666 }, +{ HP_POP(pc->famerank), HP_POP2(HP_pc_famerank), 3668 }, +{ HP_POP(pc->set_hate_mob), HP_POP2(HP_pc_set_hate_mob), 3670 }, +{ HP_POP(pc->readdb), HP_POP2(HP_pc_readdb), 3672 }, +{ HP_POP(pc->map_day_timer), HP_POP2(HP_pc_map_day_timer), 3674 }, +{ HP_POP(pc->map_night_timer), HP_POP2(HP_pc_map_night_timer), 3676 }, +{ HP_POP(pc->inventory_rentals), HP_POP2(HP_pc_inventory_rentals), 3678 }, +{ HP_POP(pc->inventory_rental_clear), HP_POP2(HP_pc_inventory_rental_clear), 3680 }, +{ HP_POP(pc->inventory_rental_add), HP_POP2(HP_pc_inventory_rental_add), 3682 }, +{ HP_POP(pc->disguise), HP_POP2(HP_pc_disguise), 3684 }, +{ HP_POP(pc->isautolooting), HP_POP2(HP_pc_isautolooting), 3686 }, +{ HP_POP(pc->overheat), HP_POP2(HP_pc_overheat), 3688 }, +{ HP_POP(pc->banding), HP_POP2(HP_pc_banding), 3690 }, +{ HP_POP(pc->itemcd_do), HP_POP2(HP_pc_itemcd_do), 3692 }, +{ HP_POP(pc->load_combo), HP_POP2(HP_pc_load_combo), 3694 }, +{ HP_POP(pc->add_charm), HP_POP2(HP_pc_add_charm), 3696 }, +{ HP_POP(pc->del_charm), HP_POP2(HP_pc_del_charm), 3698 }, +{ HP_POP(pc->baselevelchanged), HP_POP2(HP_pc_baselevelchanged), 3700 }, +{ HP_POP(pc->level_penalty_mod), HP_POP2(HP_pc_level_penalty_mod), 3702 }, +{ HP_POP(pc->calc_skillpoint), HP_POP2(HP_pc_calc_skillpoint), 3704 }, +{ HP_POP(pc->invincible_timer), HP_POP2(HP_pc_invincible_timer), 3706 }, +{ HP_POP(pc->spiritball_timer), HP_POP2(HP_pc_spiritball_timer), 3708 }, +{ HP_POP(pc->check_banding), HP_POP2(HP_pc_check_banding), 3710 }, +{ HP_POP(pc->inventory_rental_end), HP_POP2(HP_pc_inventory_rental_end), 3712 }, +{ HP_POP(pc->check_skilltree), HP_POP2(HP_pc_check_skilltree), 3714 }, +{ HP_POP(pc->bonus_autospell), HP_POP2(HP_pc_bonus_autospell), 3716 }, +{ HP_POP(pc->bonus_autospell_onskill), HP_POP2(HP_pc_bonus_autospell_onskill), 3718 }, +{ HP_POP(pc->bonus_addeff), HP_POP2(HP_pc_bonus_addeff), 3720 }, +{ HP_POP(pc->bonus_addeff_onskill), HP_POP2(HP_pc_bonus_addeff_onskill), 3722 }, +{ HP_POP(pc->bonus_item_drop), HP_POP2(HP_pc_bonus_item_drop), 3724 }, +{ HP_POP(pc->calcexp), HP_POP2(HP_pc_calcexp), 3726 }, +{ HP_POP(pc->respawn_timer), HP_POP2(HP_pc_respawn_timer), 3728 }, +{ HP_POP(pc->jobchange_killclone), HP_POP2(HP_pc_jobchange_killclone), 3730 }, +{ HP_POP(pc->getstat), HP_POP2(HP_pc_getstat), 3732 }, +{ HP_POP(pc->setstat), HP_POP2(HP_pc_setstat), 3734 }, +{ HP_POP(pc->eventtimer), HP_POP2(HP_pc_eventtimer), 3736 }, +{ HP_POP(pc->daynight_timer_sub), HP_POP2(HP_pc_daynight_timer_sub), 3738 }, +{ HP_POP(pc->charm_timer), HP_POP2(HP_pc_charm_timer), 3740 }, +{ HP_POP(pc->readdb_levelpenalty), HP_POP2(HP_pc_readdb_levelpenalty), 3742 }, +{ HP_POP(pc->autosave), HP_POP2(HP_pc_autosave), 3744 }, +{ HP_POP(pc->follow_timer), HP_POP2(HP_pc_follow_timer), 3746 }, +{ HP_POP(pc->read_skill_tree), HP_POP2(HP_pc_read_skill_tree), 3748 }, +{ HP_POP(pc->isUseitem), HP_POP2(HP_pc_isUseitem), 3750 }, +{ HP_POP(pc->show_steal), HP_POP2(HP_pc_show_steal), 3752 }, +{ HP_POP(pc->checkcombo), HP_POP2(HP_pc_checkcombo), 3754 }, +{ HP_POP(pc->calcweapontype), HP_POP2(HP_pc_calcweapontype), 3756 }, +{ HP_POP(pc->removecombo), HP_POP2(HP_pc_removecombo), 3758 }, +/* pet */ +{ HP_POP(pet->init), HP_POP2(HP_pet_init), 3760 }, +{ HP_POP(pet->final), HP_POP2(HP_pet_final), 3762 }, +{ HP_POP(pet->hungry_val), HP_POP2(HP_pet_hungry_val), 3764 }, +{ HP_POP(pet->set_intimate), HP_POP2(HP_pet_set_intimate), 3766 }, +{ HP_POP(pet->create_egg), HP_POP2(HP_pet_create_egg), 3768 }, +{ HP_POP(pet->unlocktarget), HP_POP2(HP_pet_unlocktarget), 3770 }, +{ HP_POP(pet->attackskill), HP_POP2(HP_pet_attackskill), 3772 }, +{ HP_POP(pet->target_check), HP_POP2(HP_pet_target_check), 3774 }, +{ HP_POP(pet->sc_check), HP_POP2(HP_pet_sc_check), 3776 }, +{ HP_POP(pet->hungry), HP_POP2(HP_pet_hungry), 3778 }, +{ HP_POP(pet->search_petDB_index), HP_POP2(HP_pet_search_petDB_index), 3780 }, +{ HP_POP(pet->hungry_timer_delete), HP_POP2(HP_pet_hungry_timer_delete), 3782 }, +{ HP_POP(pet->performance), HP_POP2(HP_pet_performance), 3784 }, +{ HP_POP(pet->return_egg), HP_POP2(HP_pet_return_egg), 3786 }, +{ HP_POP(pet->data_init), HP_POP2(HP_pet_data_init), 3788 }, +{ HP_POP(pet->birth_process), HP_POP2(HP_pet_birth_process), 3790 }, +{ HP_POP(pet->recv_petdata), HP_POP2(HP_pet_recv_petdata), 3792 }, +{ HP_POP(pet->select_egg), HP_POP2(HP_pet_select_egg), 3794 }, +{ HP_POP(pet->catch_process1), HP_POP2(HP_pet_catch_process1), 3796 }, +{ HP_POP(pet->catch_process2), HP_POP2(HP_pet_catch_process2), 3798 }, +{ HP_POP(pet->get_egg), HP_POP2(HP_pet_get_egg), 3800 }, +{ HP_POP(pet->unequipitem), HP_POP2(HP_pet_unequipitem), 3802 }, +{ HP_POP(pet->food), HP_POP2(HP_pet_food), 3804 }, +{ HP_POP(pet->ai_sub_hard_lootsearch), HP_POP2(HP_pet_ai_sub_hard_lootsearch), 3806 }, +{ HP_POP(pet->menu), HP_POP2(HP_pet_menu), 3808 }, +{ HP_POP(pet->change_name), HP_POP2(HP_pet_change_name), 3810 }, +{ HP_POP(pet->change_name_ack), HP_POP2(HP_pet_change_name_ack), 3812 }, +{ HP_POP(pet->equipitem), HP_POP2(HP_pet_equipitem), 3814 }, +{ HP_POP(pet->randomwalk), HP_POP2(HP_pet_randomwalk), 3816 }, +{ HP_POP(pet->ai_sub_hard), HP_POP2(HP_pet_ai_sub_hard), 3818 }, +{ HP_POP(pet->ai_sub_foreachclient), HP_POP2(HP_pet_ai_sub_foreachclient), 3820 }, +{ HP_POP(pet->ai_hard), HP_POP2(HP_pet_ai_hard), 3822 }, +{ HP_POP(pet->delay_item_drop), HP_POP2(HP_pet_delay_item_drop), 3824 }, +{ HP_POP(pet->lootitem_drop), HP_POP2(HP_pet_lootitem_drop), 3826 }, +{ HP_POP(pet->skill_bonus_timer), HP_POP2(HP_pet_skill_bonus_timer), 3828 }, +{ HP_POP(pet->recovery_timer), HP_POP2(HP_pet_recovery_timer), 3830 }, +{ HP_POP(pet->heal_timer), HP_POP2(HP_pet_heal_timer), 3832 }, +{ HP_POP(pet->skill_support_timer), HP_POP2(HP_pet_skill_support_timer), 3834 }, +{ HP_POP(pet->read_db), HP_POP2(HP_pet_read_db), 3836 }, +/* quest */ +{ HP_POP(quest->init), HP_POP2(HP_quest_init), 3838 }, +{ HP_POP(quest->reload), HP_POP2(HP_quest_reload), 3840 }, +{ HP_POP(quest->search_db), HP_POP2(HP_quest_search_db), 3842 }, +{ HP_POP(quest->pc_login), HP_POP2(HP_quest_pc_login), 3844 }, +{ HP_POP(quest->add), HP_POP2(HP_quest_add), 3846 }, +{ HP_POP(quest->change), HP_POP2(HP_quest_change), 3848 }, +{ HP_POP(quest->delete), HP_POP2(HP_quest_delete), 3850 }, +{ HP_POP(quest->update_objective_sub), HP_POP2(HP_quest_update_objective_sub), 3852 }, +{ HP_POP(quest->update_objective), HP_POP2(HP_quest_update_objective), 3854 }, +{ HP_POP(quest->update_status), HP_POP2(HP_quest_update_status), 3856 }, +{ HP_POP(quest->check), HP_POP2(HP_quest_check), 3858 }, +{ HP_POP(quest->read_db), HP_POP2(HP_quest_read_db), 3860 }, +/* script */ +{ HP_POP(script->init), HP_POP2(HP_script_init), 3862 }, +{ HP_POP(script->final), HP_POP2(HP_script_final), 3864 }, +{ HP_POP(script->reload), HP_POP2(HP_script_reload), 3866 }, +{ HP_POP(script->parse), HP_POP2(HP_script_parse), 3868 }, +{ HP_POP(script->parse_builtin), HP_POP2(HP_script_parse_builtin), 3870 }, +{ HP_POP(script->parse_subexpr), HP_POP2(HP_script_parse_subexpr), 3872 }, +{ HP_POP(script->skip_space), HP_POP2(HP_script_skip_space), 3874 }, +{ HP_POP(script->error), HP_POP2(HP_script_error), 3876 }, +{ HP_POP(script->warning), HP_POP2(HP_script_warning), 3878 }, +{ HP_POP(script->addScript), HP_POP2(HP_script_addScript), 3880 }, +{ HP_POP(script->conv_num), HP_POP2(HP_script_conv_num), 3882 }, +{ HP_POP(script->conv_str), HP_POP2(HP_script_conv_str), 3884 }, +{ HP_POP(script->rid2sd), HP_POP2(HP_script_rid2sd), 3886 }, +{ HP_POP(script->detach_rid), HP_POP2(HP_script_detach_rid), 3888 }, +{ HP_POP(script->push_val), HP_POP2(HP_script_push_val), 3890 }, +{ HP_POP(script->get_val), HP_POP2(HP_script_get_val), 3892 }, +{ HP_POP(script->get_val2), HP_POP2(HP_script_get_val2), 3894 }, +{ HP_POP(script->push_str), HP_POP2(HP_script_push_str), 3896 }, +{ HP_POP(script->push_copy), HP_POP2(HP_script_push_copy), 3898 }, +{ HP_POP(script->pop_stack), HP_POP2(HP_script_pop_stack), 3900 }, +{ HP_POP(script->set_constant), HP_POP2(HP_script_set_constant), 3902 }, +{ HP_POP(script->set_constant2), HP_POP2(HP_script_set_constant2), 3904 }, +{ HP_POP(script->set_constant_force), HP_POP2(HP_script_set_constant_force), 3906 }, +{ HP_POP(script->get_constant), HP_POP2(HP_script_get_constant), 3908 }, +{ HP_POP(script->label_add), HP_POP2(HP_script_label_add), 3910 }, +{ HP_POP(script->run), HP_POP2(HP_script_run), 3912 }, +{ HP_POP(script->run_main), HP_POP2(HP_script_run_main), 3914 }, +{ HP_POP(script->run_timer), HP_POP2(HP_script_run_timer), 3916 }, +{ HP_POP(script->set_var), HP_POP2(HP_script_set_var), 3918 }, +{ HP_POP(script->stop_instances), HP_POP2(HP_script_stop_instances), 3920 }, +{ HP_POP(script->free_code), HP_POP2(HP_script_free_code), 3922 }, +{ HP_POP(script->free_vars), HP_POP2(HP_script_free_vars), 3924 }, +{ HP_POP(script->alloc_state), HP_POP2(HP_script_alloc_state), 3926 }, +{ HP_POP(script->free_state), HP_POP2(HP_script_free_state), 3928 }, +{ HP_POP(script->run_autobonus), HP_POP2(HP_script_run_autobonus), 3930 }, +{ HP_POP(script->cleararray_pc), HP_POP2(HP_script_cleararray_pc), 3932 }, +{ HP_POP(script->setarray_pc), HP_POP2(HP_script_setarray_pc), 3934 }, +{ HP_POP(script->config_read), HP_POP2(HP_script_config_read), 3936 }, +{ HP_POP(script->add_str), HP_POP2(HP_script_add_str), 3938 }, +{ HP_POP(script->get_str), HP_POP2(HP_script_get_str), 3940 }, +{ HP_POP(script->search_str), HP_POP2(HP_script_search_str), 3942 }, +{ HP_POP(script->setd_sub), HP_POP2(HP_script_setd_sub), 3944 }, +{ HP_POP(script->attach_state), HP_POP2(HP_script_attach_state), 3946 }, +{ HP_POP(script->queue), HP_POP2(HP_script_queue), 3948 }, +{ HP_POP(script->queue_add), HP_POP2(HP_script_queue_add), 3950 }, +{ HP_POP(script->queue_del), HP_POP2(HP_script_queue_del), 3952 }, +{ HP_POP(script->queue_remove), HP_POP2(HP_script_queue_remove), 3954 }, +{ HP_POP(script->queue_create), HP_POP2(HP_script_queue_create), 3956 }, +{ HP_POP(script->queue_clear), HP_POP2(HP_script_queue_clear), 3958 }, +{ HP_POP(script->parse_curly_close), HP_POP2(HP_script_parse_curly_close), 3960 }, +{ HP_POP(script->parse_syntax_close), HP_POP2(HP_script_parse_syntax_close), 3962 }, +{ HP_POP(script->parse_syntax_close_sub), HP_POP2(HP_script_parse_syntax_close_sub), 3964 }, +{ HP_POP(script->parse_syntax), HP_POP2(HP_script_parse_syntax), 3966 }, +{ HP_POP(script->get_com), HP_POP2(HP_script_get_com), 3968 }, +{ HP_POP(script->get_num), HP_POP2(HP_script_get_num), 3970 }, +{ HP_POP(script->op2name), HP_POP2(HP_script_op2name), 3972 }, +{ HP_POP(script->reportsrc), HP_POP2(HP_script_reportsrc), 3974 }, +{ HP_POP(script->reportdata), HP_POP2(HP_script_reportdata), 3976 }, +{ HP_POP(script->reportfunc), HP_POP2(HP_script_reportfunc), 3978 }, +{ HP_POP(script->disp_error_message2), HP_POP2(HP_script_disp_error_message2), 3980 }, +{ HP_POP(script->disp_warning_message), HP_POP2(HP_script_disp_warning_message), 3982 }, +{ HP_POP(script->check_event), HP_POP2(HP_script_check_event), 3984 }, +{ HP_POP(script->calc_hash), HP_POP2(HP_script_calc_hash), 3986 }, +{ HP_POP(script->addb), HP_POP2(HP_script_addb), 3988 }, +{ HP_POP(script->addc), HP_POP2(HP_script_addc), 3990 }, +{ HP_POP(script->addi), HP_POP2(HP_script_addi), 3992 }, +{ HP_POP(script->addl), HP_POP2(HP_script_addl), 3994 }, +{ HP_POP(script->set_label), HP_POP2(HP_script_set_label), 3996 }, +{ HP_POP(script->skip_word), HP_POP2(HP_script_skip_word), 3998 }, +{ HP_POP(script->add_word), HP_POP2(HP_script_add_word), 4000 }, +{ HP_POP(script->parse_callfunc), HP_POP2(HP_script_parse_callfunc), 4002 }, +{ HP_POP(script->parse_nextline), HP_POP2(HP_script_parse_nextline), 4004 }, +{ HP_POP(script->parse_variable), HP_POP2(HP_script_parse_variable), 4006 }, +{ HP_POP(script->parse_simpleexpr), HP_POP2(HP_script_parse_simpleexpr), 4008 }, +{ HP_POP(script->parse_expr), HP_POP2(HP_script_parse_expr), 4010 }, +{ HP_POP(script->parse_line), HP_POP2(HP_script_parse_line), 4012 }, +{ HP_POP(script->read_constdb), HP_POP2(HP_script_read_constdb), 4014 }, +{ HP_POP(script->print_line), HP_POP2(HP_script_print_line), 4016 }, +{ HP_POP(script->errorwarning_sub), HP_POP2(HP_script_errorwarning_sub), 4018 }, +{ HP_POP(script->set_reg), HP_POP2(HP_script_set_reg), 4020 }, +{ HP_POP(script->stack_expand), HP_POP2(HP_script_stack_expand), 4022 }, +{ HP_POP(script->push_retinfo), HP_POP2(HP_script_push_retinfo), 4024 }, +{ HP_POP(script->pop_val), HP_POP2(HP_script_pop_val), 4026 }, +{ HP_POP(script->op_3), HP_POP2(HP_script_op_3), 4028 }, +{ HP_POP(script->op_2str), HP_POP2(HP_script_op_2str), 4030 }, +{ HP_POP(script->op_2num), HP_POP2(HP_script_op_2num), 4032 }, +{ HP_POP(script->op_2), HP_POP2(HP_script_op_2), 4034 }, +{ HP_POP(script->op_1), HP_POP2(HP_script_op_1), 4036 }, +{ HP_POP(script->check_buildin_argtype), HP_POP2(HP_script_check_buildin_argtype), 4038 }, +{ HP_POP(script->detach_state), HP_POP2(HP_script_detach_state), 4040 }, +{ HP_POP(script->db_free_code_sub), HP_POP2(HP_script_db_free_code_sub), 4042 }, +{ HP_POP(script->add_autobonus), HP_POP2(HP_script_add_autobonus), 4044 }, +{ HP_POP(script->menu_countoptions), HP_POP2(HP_script_menu_countoptions), 4046 }, +{ HP_POP(script->buildin_areawarp_sub), HP_POP2(HP_script_buildin_areawarp_sub), 4048 }, +{ HP_POP(script->buildin_areapercentheal_sub), HP_POP2(HP_script_buildin_areapercentheal_sub), 4050 }, +{ HP_POP(script->getarraysize), HP_POP2(HP_script_getarraysize), 4052 }, +{ HP_POP(script->buildin_delitem_delete), HP_POP2(HP_script_buildin_delitem_delete), 4054 }, +{ HP_POP(script->buildin_delitem_search), HP_POP2(HP_script_buildin_delitem_search), 4056 }, +{ HP_POP(script->buildin_killmonster_sub_strip), HP_POP2(HP_script_buildin_killmonster_sub_strip), 4058 }, +{ HP_POP(script->buildin_killmonster_sub), HP_POP2(HP_script_buildin_killmonster_sub), 4060 }, +{ HP_POP(script->buildin_killmonsterall_sub_strip), HP_POP2(HP_script_buildin_killmonsterall_sub_strip), 4062 }, +{ HP_POP(script->buildin_killmonsterall_sub), HP_POP2(HP_script_buildin_killmonsterall_sub), 4064 }, +{ HP_POP(script->buildin_announce_sub), HP_POP2(HP_script_buildin_announce_sub), 4066 }, +{ HP_POP(script->buildin_getareausers_sub), HP_POP2(HP_script_buildin_getareausers_sub), 4068 }, +{ HP_POP(script->buildin_getareadropitem_sub), HP_POP2(HP_script_buildin_getareadropitem_sub), 4070 }, +{ HP_POP(script->mapflag_pvp_sub), HP_POP2(HP_script_mapflag_pvp_sub), 4072 }, +{ HP_POP(script->buildin_pvpoff_sub), HP_POP2(HP_script_buildin_pvpoff_sub), 4074 }, +{ HP_POP(script->buildin_maprespawnguildid_sub_pc), HP_POP2(HP_script_buildin_maprespawnguildid_sub_pc), 4076 }, +{ HP_POP(script->buildin_maprespawnguildid_sub_mob), HP_POP2(HP_script_buildin_maprespawnguildid_sub_mob), 4078 }, +{ HP_POP(script->buildin_mobcount_sub), HP_POP2(HP_script_buildin_mobcount_sub), 4080 }, +{ HP_POP(script->playBGM_sub), HP_POP2(HP_script_playBGM_sub), 4082 }, +{ HP_POP(script->playBGM_foreachpc_sub), HP_POP2(HP_script_playBGM_foreachpc_sub), 4084 }, +{ HP_POP(script->soundeffect_sub), HP_POP2(HP_script_soundeffect_sub), 4086 }, +{ HP_POP(script->buildin_query_sql_sub), HP_POP2(HP_script_buildin_query_sql_sub), 4088 }, +{ HP_POP(script->axtoi), HP_POP2(HP_script_axtoi), 4090 }, +{ HP_POP(script->buildin_instance_warpall_sub), HP_POP2(HP_script_buildin_instance_warpall_sub), 4092 }, +{ HP_POP(script->buildin_mobuseskill_sub), HP_POP2(HP_script_buildin_mobuseskill_sub), 4094 }, +{ HP_POP(script->cleanfloor_sub), HP_POP2(HP_script_cleanfloor_sub), 4096 }, +{ HP_POP(script->run_func), HP_POP2(HP_script_run_func), 4098 }, +/* searchstore */ +{ HP_POP(searchstore->open), HP_POP2(HP_searchstore_open), 4100 }, +{ HP_POP(searchstore->query), HP_POP2(HP_searchstore_query), 4102 }, +{ HP_POP(searchstore->querynext), HP_POP2(HP_searchstore_querynext), 4104 }, +{ HP_POP(searchstore->next), HP_POP2(HP_searchstore_next), 4106 }, +{ HP_POP(searchstore->clear), HP_POP2(HP_searchstore_clear), 4108 }, +{ HP_POP(searchstore->close), HP_POP2(HP_searchstore_close), 4110 }, +{ HP_POP(searchstore->click), HP_POP2(HP_searchstore_click), 4112 }, +{ HP_POP(searchstore->queryremote), HP_POP2(HP_searchstore_queryremote), 4114 }, +{ HP_POP(searchstore->clearremote), HP_POP2(HP_searchstore_clearremote), 4116 }, +{ HP_POP(searchstore->result), HP_POP2(HP_searchstore_result), 4118 }, +/* skill */ +{ HP_POP(skill->init), HP_POP2(HP_skill_init), 4120 }, +{ HP_POP(skill->final), HP_POP2(HP_skill_final), 4122 }, +{ HP_POP(skill->reload), HP_POP2(HP_skill_reload), 4124 }, +{ HP_POP(skill->read_db), HP_POP2(HP_skill_read_db), 4126 }, +{ HP_POP(skill->get_index), HP_POP2(HP_skill_get_index), 4128 }, +{ HP_POP(skill->get_type), HP_POP2(HP_skill_get_type), 4130 }, +{ HP_POP(skill->get_hit), HP_POP2(HP_skill_get_hit), 4132 }, +{ HP_POP(skill->get_inf), HP_POP2(HP_skill_get_inf), 4134 }, +{ HP_POP(skill->get_ele), HP_POP2(HP_skill_get_ele), 4136 }, +{ HP_POP(skill->get_nk), HP_POP2(HP_skill_get_nk), 4138 }, +{ HP_POP(skill->get_max), HP_POP2(HP_skill_get_max), 4140 }, +{ HP_POP(skill->get_range), HP_POP2(HP_skill_get_range), 4142 }, +{ HP_POP(skill->get_range2), HP_POP2(HP_skill_get_range2), 4144 }, +{ HP_POP(skill->get_splash), HP_POP2(HP_skill_get_splash), 4146 }, +{ HP_POP(skill->get_hp), HP_POP2(HP_skill_get_hp), 4148 }, +{ HP_POP(skill->get_mhp), HP_POP2(HP_skill_get_mhp), 4150 }, +{ HP_POP(skill->get_sp), HP_POP2(HP_skill_get_sp), 4152 }, +{ HP_POP(skill->get_state), HP_POP2(HP_skill_get_state), 4154 }, +{ HP_POP(skill->get_spiritball), HP_POP2(HP_skill_get_spiritball), 4156 }, +{ HP_POP(skill->get_zeny), HP_POP2(HP_skill_get_zeny), 4158 }, +{ HP_POP(skill->get_num), HP_POP2(HP_skill_get_num), 4160 }, +{ HP_POP(skill->get_cast), HP_POP2(HP_skill_get_cast), 4162 }, +{ HP_POP(skill->get_delay), HP_POP2(HP_skill_get_delay), 4164 }, +{ HP_POP(skill->get_walkdelay), HP_POP2(HP_skill_get_walkdelay), 4166 }, +{ HP_POP(skill->get_time), HP_POP2(HP_skill_get_time), 4168 }, +{ HP_POP(skill->get_time2), HP_POP2(HP_skill_get_time2), 4170 }, +{ HP_POP(skill->get_castnodex), HP_POP2(HP_skill_get_castnodex), 4172 }, +{ HP_POP(skill->get_delaynodex), HP_POP2(HP_skill_get_delaynodex), 4174 }, +{ HP_POP(skill->get_castdef), HP_POP2(HP_skill_get_castdef), 4176 }, +{ HP_POP(skill->get_weapontype), HP_POP2(HP_skill_get_weapontype), 4178 }, +{ HP_POP(skill->get_ammotype), HP_POP2(HP_skill_get_ammotype), 4180 }, +{ HP_POP(skill->get_ammo_qty), HP_POP2(HP_skill_get_ammo_qty), 4182 }, +{ HP_POP(skill->get_unit_id), HP_POP2(HP_skill_get_unit_id), 4184 }, +{ HP_POP(skill->get_inf2), HP_POP2(HP_skill_get_inf2), 4186 }, +{ HP_POP(skill->get_castcancel), HP_POP2(HP_skill_get_castcancel), 4188 }, +{ HP_POP(skill->get_maxcount), HP_POP2(HP_skill_get_maxcount), 4190 }, +{ HP_POP(skill->get_blewcount), HP_POP2(HP_skill_get_blewcount), 4192 }, +{ HP_POP(skill->get_unit_flag), HP_POP2(HP_skill_get_unit_flag), 4194 }, +{ HP_POP(skill->get_unit_target), HP_POP2(HP_skill_get_unit_target), 4196 }, +{ HP_POP(skill->get_unit_interval), HP_POP2(HP_skill_get_unit_interval), 4198 }, +{ HP_POP(skill->get_unit_bl_target), HP_POP2(HP_skill_get_unit_bl_target), 4200 }, +{ HP_POP(skill->get_unit_layout_type), HP_POP2(HP_skill_get_unit_layout_type), 4202 }, +{ HP_POP(skill->get_unit_range), HP_POP2(HP_skill_get_unit_range), 4204 }, +{ HP_POP(skill->get_cooldown), HP_POP2(HP_skill_get_cooldown), 4206 }, +{ HP_POP(skill->tree_get_max), HP_POP2(HP_skill_tree_get_max), 4208 }, +{ HP_POP(skill->get_name), HP_POP2(HP_skill_get_name), 4210 }, +{ HP_POP(skill->get_desc), HP_POP2(HP_skill_get_desc), 4212 }, +{ HP_POP(skill->chk), HP_POP2(HP_skill_chk), 4214 }, +{ HP_POP(skill->get_casttype), HP_POP2(HP_skill_get_casttype), 4216 }, +{ HP_POP(skill->get_casttype2), HP_POP2(HP_skill_get_casttype2), 4218 }, +{ HP_POP(skill->name2id), HP_POP2(HP_skill_name2id), 4220 }, +{ HP_POP(skill->isammotype), HP_POP2(HP_skill_isammotype), 4222 }, +{ HP_POP(skill->castend_id), HP_POP2(HP_skill_castend_id), 4224 }, +{ HP_POP(skill->castend_pos), HP_POP2(HP_skill_castend_pos), 4226 }, +{ HP_POP(skill->castend_map), HP_POP2(HP_skill_castend_map), 4228 }, +{ HP_POP(skill->cleartimerskill), HP_POP2(HP_skill_cleartimerskill), 4230 }, +{ HP_POP(skill->addtimerskill), HP_POP2(HP_skill_addtimerskill), 4232 }, +{ HP_POP(skill->additional_effect), HP_POP2(HP_skill_additional_effect), 4234 }, +{ HP_POP(skill->counter_additional_effect), HP_POP2(HP_skill_counter_additional_effect), 4236 }, +{ HP_POP(skill->blown), HP_POP2(HP_skill_blown), 4238 }, +{ HP_POP(skill->break_equip), HP_POP2(HP_skill_break_equip), 4240 }, +{ HP_POP(skill->strip_equip), HP_POP2(HP_skill_strip_equip), 4242 }, +{ HP_POP(skill->id2group), HP_POP2(HP_skill_id2group), 4244 }, +{ HP_POP(skill->unitsetting), HP_POP2(HP_skill_unitsetting), 4246 }, +{ HP_POP(skill->initunit), HP_POP2(HP_skill_initunit), 4248 }, +{ HP_POP(skill->delunit), HP_POP2(HP_skill_delunit), 4250 }, +{ HP_POP(skill->init_unitgroup), HP_POP2(HP_skill_init_unitgroup), 4252 }, +{ HP_POP(skill->del_unitgroup), HP_POP2(HP_skill_del_unitgroup), 4254 }, +{ HP_POP(skill->clear_unitgroup), HP_POP2(HP_skill_clear_unitgroup), 4256 }, +{ HP_POP(skill->clear_group), HP_POP2(HP_skill_clear_group), 4258 }, +{ HP_POP(skill->unit_onplace), HP_POP2(HP_skill_unit_onplace), 4260 }, +{ HP_POP(skill->unit_ondamaged), HP_POP2(HP_skill_unit_ondamaged), 4262 }, +{ HP_POP(skill->cast_fix), HP_POP2(HP_skill_cast_fix), 4264 }, +{ HP_POP(skill->cast_fix_sc), HP_POP2(HP_skill_cast_fix_sc), 4266 }, +{ HP_POP(skill->vf_cast_fix), HP_POP2(HP_skill_vf_cast_fix), 4268 }, +{ HP_POP(skill->delay_fix), HP_POP2(HP_skill_delay_fix), 4270 }, +{ HP_POP(skill->check_condition_castbegin), HP_POP2(HP_skill_check_condition_castbegin), 4272 }, +{ HP_POP(skill->check_condition_castend), HP_POP2(HP_skill_check_condition_castend), 4274 }, +{ HP_POP(skill->consume_requirement), HP_POP2(HP_skill_consume_requirement), 4276 }, +{ HP_POP(skill->get_requirement), HP_POP2(HP_skill_get_requirement), 4278 }, +{ HP_POP(skill->check_pc_partner), HP_POP2(HP_skill_check_pc_partner), 4280 }, +{ HP_POP(skill->unit_move), HP_POP2(HP_skill_unit_move), 4282 }, +{ HP_POP(skill->unit_onleft), HP_POP2(HP_skill_unit_onleft), 4284 }, +{ HP_POP(skill->unit_onout), HP_POP2(HP_skill_unit_onout), 4286 }, +{ HP_POP(skill->unit_move_unit_group), HP_POP2(HP_skill_unit_move_unit_group), 4288 }, +{ HP_POP(skill->sit), HP_POP2(HP_skill_sit), 4290 }, +{ HP_POP(skill->brandishspear), HP_POP2(HP_skill_brandishspear), 4292 }, +{ HP_POP(skill->repairweapon), HP_POP2(HP_skill_repairweapon), 4294 }, +{ HP_POP(skill->identify), HP_POP2(HP_skill_identify), 4296 }, +{ HP_POP(skill->weaponrefine), HP_POP2(HP_skill_weaponrefine), 4298 }, +{ HP_POP(skill->autospell), HP_POP2(HP_skill_autospell), 4300 }, +{ HP_POP(skill->calc_heal), HP_POP2(HP_skill_calc_heal), 4302 }, +{ HP_POP(skill->check_cloaking), HP_POP2(HP_skill_check_cloaking), 4304 }, +{ HP_POP(skill->enchant_elemental_end), HP_POP2(HP_skill_enchant_elemental_end), 4306 }, +{ HP_POP(skill->not_ok), HP_POP2(HP_skill_not_ok), 4308 }, +{ HP_POP(skill->not_ok_hom), HP_POP2(HP_skill_not_ok_hom), 4310 }, +{ HP_POP(skill->not_ok_mercenary), HP_POP2(HP_skill_not_ok_mercenary), 4312 }, +{ HP_POP(skill->chastle_mob_changetarget), HP_POP2(HP_skill_chastle_mob_changetarget), 4314 }, +{ HP_POP(skill->can_produce_mix), HP_POP2(HP_skill_can_produce_mix), 4316 }, +{ HP_POP(skill->produce_mix), HP_POP2(HP_skill_produce_mix), 4318 }, +{ HP_POP(skill->arrow_create), HP_POP2(HP_skill_arrow_create), 4320 }, +{ HP_POP(skill->castend_nodamage_id), HP_POP2(HP_skill_castend_nodamage_id), 4322 }, +{ HP_POP(skill->castend_damage_id), HP_POP2(HP_skill_castend_damage_id), 4324 }, +{ HP_POP(skill->castend_pos2), HP_POP2(HP_skill_castend_pos2), 4326 }, +{ HP_POP(skill->blockpc_start), HP_POP2(HP_skill_blockpc_start), 4328 }, +{ HP_POP(skill->blockhomun_start), HP_POP2(HP_skill_blockhomun_start), 4330 }, +{ HP_POP(skill->blockmerc_start), HP_POP2(HP_skill_blockmerc_start), 4332 }, +{ HP_POP(skill->attack), HP_POP2(HP_skill_attack), 4334 }, +{ HP_POP(skill->attack_area), HP_POP2(HP_skill_attack_area), 4336 }, +{ HP_POP(skill->area_sub), HP_POP2(HP_skill_area_sub), 4338 }, +{ HP_POP(skill->area_sub_count), HP_POP2(HP_skill_area_sub_count), 4340 }, +{ HP_POP(skill->check_unit_range), HP_POP2(HP_skill_check_unit_range), 4342 }, +{ HP_POP(skill->check_unit_range_sub), HP_POP2(HP_skill_check_unit_range_sub), 4344 }, +{ HP_POP(skill->check_unit_range2), HP_POP2(HP_skill_check_unit_range2), 4346 }, +{ HP_POP(skill->check_unit_range2_sub), HP_POP2(HP_skill_check_unit_range2_sub), 4348 }, +{ HP_POP(skill->toggle_magicpower), HP_POP2(HP_skill_toggle_magicpower), 4350 }, +{ HP_POP(skill->magic_reflect), HP_POP2(HP_skill_magic_reflect), 4352 }, +{ HP_POP(skill->onskillusage), HP_POP2(HP_skill_onskillusage), 4354 }, +{ HP_POP(skill->cell_overlap), HP_POP2(HP_skill_cell_overlap), 4356 }, +{ HP_POP(skill->timerskill), HP_POP2(HP_skill_timerskill), 4358 }, +{ HP_POP(skill->trap_splash), HP_POP2(HP_skill_trap_splash), 4360 }, +{ HP_POP(skill->check_condition_mercenary), HP_POP2(HP_skill_check_condition_mercenary), 4362 }, +{ HP_POP(skill->locate_element_field), HP_POP2(HP_skill_locate_element_field), 4364 }, +{ HP_POP(skill->graffitiremover), HP_POP2(HP_skill_graffitiremover), 4366 }, +{ HP_POP(skill->activate_reverberation), HP_POP2(HP_skill_activate_reverberation), 4368 }, +{ HP_POP(skill->dance_overlap_sub), HP_POP2(HP_skill_dance_overlap_sub), 4370 }, +{ HP_POP(skill->dance_overlap), HP_POP2(HP_skill_dance_overlap), 4372 }, +{ HP_POP(skill->get_unit_layout), HP_POP2(HP_skill_get_unit_layout), 4374 }, +{ HP_POP(skill->frostjoke_scream), HP_POP2(HP_skill_frostjoke_scream), 4376 }, +{ HP_POP(skill->greed), HP_POP2(HP_skill_greed), 4378 }, +{ HP_POP(skill->destroy_trap), HP_POP2(HP_skill_destroy_trap), 4380 }, +{ HP_POP(skill->icewall_block), HP_POP2(HP_skill_icewall_block), 4382 }, +{ HP_POP(skill->unitgrouptickset_search), HP_POP2(HP_skill_unitgrouptickset_search), 4384 }, +{ HP_POP(skill->dance_switch), HP_POP2(HP_skill_dance_switch), 4386 }, +{ HP_POP(skill->check_condition_char_sub), HP_POP2(HP_skill_check_condition_char_sub), 4388 }, +{ HP_POP(skill->check_condition_mob_master_sub), HP_POP2(HP_skill_check_condition_mob_master_sub), 4390 }, +{ HP_POP(skill->brandishspear_first), HP_POP2(HP_skill_brandishspear_first), 4392 }, +{ HP_POP(skill->brandishspear_dir), HP_POP2(HP_skill_brandishspear_dir), 4394 }, +{ HP_POP(skill->get_fixed_cast), HP_POP2(HP_skill_get_fixed_cast), 4396 }, +{ HP_POP(skill->sit_count), HP_POP2(HP_skill_sit_count), 4398 }, +{ HP_POP(skill->sit_in), HP_POP2(HP_skill_sit_in), 4400 }, +{ HP_POP(skill->sit_out), HP_POP2(HP_skill_sit_out), 4402 }, +{ HP_POP(skill->unitsetmapcell), HP_POP2(HP_skill_unitsetmapcell), 4404 }, +{ HP_POP(skill->unit_onplace_timer), HP_POP2(HP_skill_unit_onplace_timer), 4406 }, +{ HP_POP(skill->unit_effect), HP_POP2(HP_skill_unit_effect), 4408 }, +{ HP_POP(skill->unit_timer_sub_onplace), HP_POP2(HP_skill_unit_timer_sub_onplace), 4410 }, +{ HP_POP(skill->unit_move_sub), HP_POP2(HP_skill_unit_move_sub), 4412 }, +{ HP_POP(skill->blockpc_end), HP_POP2(HP_skill_blockpc_end), 4414 }, +{ HP_POP(skill->blockhomun_end), HP_POP2(HP_skill_blockhomun_end), 4416 }, +{ HP_POP(skill->blockmerc_end), HP_POP2(HP_skill_blockmerc_end), 4418 }, +{ HP_POP(skill->split_atoi), HP_POP2(HP_skill_split_atoi), 4420 }, +{ HP_POP(skill->unit_timer), HP_POP2(HP_skill_unit_timer), 4422 }, +{ HP_POP(skill->unit_timer_sub), HP_POP2(HP_skill_unit_timer_sub), 4424 }, +{ HP_POP(skill->init_unit_layout), HP_POP2(HP_skill_init_unit_layout), 4426 }, +{ HP_POP(skill->parse_row_skilldb), HP_POP2(HP_skill_parse_row_skilldb), 4428 }, +{ HP_POP(skill->parse_row_requiredb), HP_POP2(HP_skill_parse_row_requiredb), 4430 }, +{ HP_POP(skill->parse_row_castdb), HP_POP2(HP_skill_parse_row_castdb), 4432 }, +{ HP_POP(skill->parse_row_castnodexdb), HP_POP2(HP_skill_parse_row_castnodexdb), 4434 }, +{ HP_POP(skill->parse_row_unitdb), HP_POP2(HP_skill_parse_row_unitdb), 4436 }, +{ HP_POP(skill->parse_row_producedb), HP_POP2(HP_skill_parse_row_producedb), 4438 }, +{ HP_POP(skill->parse_row_createarrowdb), HP_POP2(HP_skill_parse_row_createarrowdb), 4440 }, +{ HP_POP(skill->parse_row_abradb), HP_POP2(HP_skill_parse_row_abradb), 4442 }, +{ HP_POP(skill->parse_row_spellbookdb), HP_POP2(HP_skill_parse_row_spellbookdb), 4444 }, +{ HP_POP(skill->parse_row_magicmushroomdb), HP_POP2(HP_skill_parse_row_magicmushroomdb), 4446 }, +{ HP_POP(skill->parse_row_reproducedb), HP_POP2(HP_skill_parse_row_reproducedb), 4448 }, +{ HP_POP(skill->parse_row_improvisedb), HP_POP2(HP_skill_parse_row_improvisedb), 4450 }, +{ HP_POP(skill->parse_row_changematerialdb), HP_POP2(HP_skill_parse_row_changematerialdb), 4452 }, +{ HP_POP(skill->usave_add), HP_POP2(HP_skill_usave_add), 4454 }, +{ HP_POP(skill->usave_trigger), HP_POP2(HP_skill_usave_trigger), 4456 }, +{ HP_POP(skill->cooldown_load), HP_POP2(HP_skill_cooldown_load), 4458 }, +{ HP_POP(skill->spellbook), HP_POP2(HP_skill_spellbook), 4460 }, +{ HP_POP(skill->block_check), HP_POP2(HP_skill_block_check), 4462 }, +{ HP_POP(skill->detonator), HP_POP2(HP_skill_detonator), 4464 }, +{ HP_POP(skill->check_camouflage), HP_POP2(HP_skill_check_camouflage), 4466 }, +{ HP_POP(skill->magicdecoy), HP_POP2(HP_skill_magicdecoy), 4468 }, +{ HP_POP(skill->poisoningweapon), HP_POP2(HP_skill_poisoningweapon), 4470 }, +{ HP_POP(skill->select_menu), HP_POP2(HP_skill_select_menu), 4472 }, +{ HP_POP(skill->elementalanalysis), HP_POP2(HP_skill_elementalanalysis), 4474 }, +{ HP_POP(skill->changematerial), HP_POP2(HP_skill_changematerial), 4476 }, +{ HP_POP(skill->get_elemental_type), HP_POP2(HP_skill_get_elemental_type), 4478 }, +{ HP_POP(skill->cooldown_save), HP_POP2(HP_skill_cooldown_save), 4480 }, +{ HP_POP(skill->maelstrom_suction), HP_POP2(HP_skill_maelstrom_suction), 4482 }, +{ HP_POP(skill->get_new_group_id), HP_POP2(HP_skill_get_new_group_id), 4484 }, +/* status */ +{ HP_POP(status->init), HP_POP2(HP_status_init), 4486 }, +{ HP_POP(status->final), HP_POP2(HP_status_final), 4488 }, +{ HP_POP(status->get_refine_chance), HP_POP2(HP_status_get_refine_chance), 4490 }, +{ HP_POP(status->skill2sc), HP_POP2(HP_status_skill2sc), 4492 }, +{ HP_POP(status->sc2skill), HP_POP2(HP_status_sc2skill), 4494 }, +{ HP_POP(status->sc2scb_flag), HP_POP2(HP_status_sc2scb_flag), 4496 }, +{ HP_POP(status->type2relevant_bl_types), HP_POP2(HP_status_type2relevant_bl_types), 4498 }, +{ HP_POP(status->get_sc_type), HP_POP2(HP_status_get_sc_type), 4500 }, +{ HP_POP(status->damage), HP_POP2(HP_status_damage), 4502 }, +{ HP_POP(status->charge), HP_POP2(HP_status_charge), 4504 }, +{ HP_POP(status->percent_change), HP_POP2(HP_status_percent_change), 4506 }, +{ HP_POP(status->set_hp), HP_POP2(HP_status_set_hp), 4508 }, +{ HP_POP(status->set_sp), HP_POP2(HP_status_set_sp), 4510 }, +{ HP_POP(status->heal), HP_POP2(HP_status_heal), 4512 }, +{ HP_POP(status->revive), HP_POP2(HP_status_revive), 4514 }, +{ HP_POP(status->get_regen_data), HP_POP2(HP_status_get_regen_data), 4516 }, +{ HP_POP(status->get_status_data), HP_POP2(HP_status_get_status_data), 4518 }, +{ HP_POP(status->get_base_status), HP_POP2(HP_status_get_base_status), 4520 }, +{ HP_POP(status->get_name), HP_POP2(HP_status_get_name), 4522 }, +{ HP_POP(status->get_class), HP_POP2(HP_status_get_class), 4524 }, +{ HP_POP(status->get_lv), HP_POP2(HP_status_get_lv), 4526 }, +{ HP_POP(status->get_def), HP_POP2(HP_status_get_def), 4528 }, +{ HP_POP(status->get_speed), HP_POP2(HP_status_get_speed), 4530 }, +{ HP_POP(status->calc_attack_element), HP_POP2(HP_status_calc_attack_element), 4532 }, +{ HP_POP(status->get_party_id), HP_POP2(HP_status_get_party_id), 4534 }, +{ HP_POP(status->get_guild_id), HP_POP2(HP_status_get_guild_id), 4536 }, +{ HP_POP(status->get_emblem_id), HP_POP2(HP_status_get_emblem_id), 4538 }, +{ HP_POP(status->get_mexp), HP_POP2(HP_status_get_mexp), 4540 }, +{ HP_POP(status->get_race2), HP_POP2(HP_status_get_race2), 4542 }, +{ HP_POP(status->get_viewdata), HP_POP2(HP_status_get_viewdata), 4544 }, +{ HP_POP(status->set_viewdata), HP_POP2(HP_status_set_viewdata), 4546 }, +{ HP_POP(status->change_init), HP_POP2(HP_status_change_init), 4548 }, +{ HP_POP(status->get_sc), HP_POP2(HP_status_get_sc), 4550 }, +{ HP_POP(status->isdead), HP_POP2(HP_status_isdead), 4552 }, +{ HP_POP(status->isimmune), HP_POP2(HP_status_isimmune), 4554 }, +{ HP_POP(status->get_sc_def), HP_POP2(HP_status_get_sc_def), 4556 }, +{ HP_POP(status->change_start), HP_POP2(HP_status_change_start), 4558 }, +{ HP_POP(status->change_end_), HP_POP2(HP_status_change_end_), 4560 }, +{ HP_POP(status->kaahi_heal_timer), HP_POP2(HP_status_kaahi_heal_timer), 4562 }, +{ HP_POP(status->change_timer), HP_POP2(HP_status_change_timer), 4564 }, +{ HP_POP(status->change_timer_sub), HP_POP2(HP_status_change_timer_sub), 4566 }, +{ HP_POP(status->change_clear), HP_POP2(HP_status_change_clear), 4568 }, +{ HP_POP(status->change_clear_buffs), HP_POP2(HP_status_change_clear_buffs), 4570 }, +{ HP_POP(status->calc_bl_), HP_POP2(HP_status_calc_bl_), 4572 }, +{ HP_POP(status->calc_mob_), HP_POP2(HP_status_calc_mob_), 4574 }, +{ HP_POP(status->calc_pet_), HP_POP2(HP_status_calc_pet_), 4576 }, +{ HP_POP(status->calc_pc_), HP_POP2(HP_status_calc_pc_), 4578 }, +{ HP_POP(status->calc_homunculus_), HP_POP2(HP_status_calc_homunculus_), 4580 }, +{ HP_POP(status->calc_mercenary_), HP_POP2(HP_status_calc_mercenary_), 4582 }, +{ HP_POP(status->calc_elemental_), HP_POP2(HP_status_calc_elemental_), 4584 }, +{ HP_POP(status->calc_misc), HP_POP2(HP_status_calc_misc), 4586 }, +{ HP_POP(status->calc_regen), HP_POP2(HP_status_calc_regen), 4588 }, +{ HP_POP(status->calc_regen_rate), HP_POP2(HP_status_calc_regen_rate), 4590 }, +{ HP_POP(status->check_skilluse), HP_POP2(HP_status_check_skilluse), 4592 }, +{ HP_POP(status->check_visibility), HP_POP2(HP_status_check_visibility), 4594 }, +{ HP_POP(status->change_spread), HP_POP2(HP_status_change_spread), 4596 }, +{ HP_POP(status->calc_def), HP_POP2(HP_status_calc_def), 4598 }, +{ HP_POP(status->calc_def2), HP_POP2(HP_status_calc_def2), 4600 }, +{ HP_POP(status->calc_mdef), HP_POP2(HP_status_calc_mdef), 4602 }, +{ HP_POP(status->calc_mdef2), HP_POP2(HP_status_calc_mdef2), 4604 }, +{ HP_POP(status->calc_batk), HP_POP2(HP_status_calc_batk), 4606 }, +{ HP_POP(status->base_matk), HP_POP2(HP_status_base_matk), 4608 }, +{ HP_POP(status->get_weapon_atk), HP_POP2(HP_status_get_weapon_atk), 4610 }, +{ HP_POP(status->get_total_mdef), HP_POP2(HP_status_get_total_mdef), 4612 }, +{ HP_POP(status->get_total_def), HP_POP2(HP_status_get_total_def), 4614 }, +{ HP_POP(status->get_matk), HP_POP2(HP_status_get_matk), 4616 }, +{ HP_POP(status->readdb), HP_POP2(HP_status_readdb), 4618 }, +{ HP_POP(status->initChangeTables), HP_POP2(HP_status_initChangeTables), 4620 }, +{ HP_POP(status->initDummyData), HP_POP2(HP_status_initDummyData), 4622 }, +{ HP_POP(status->base_amotion_pc), HP_POP2(HP_status_base_amotion_pc), 4624 }, +{ HP_POP(status->base_atk), HP_POP2(HP_status_base_atk), 4626 }, +{ HP_POP(status->calc_sigma), HP_POP2(HP_status_calc_sigma), 4628 }, +{ HP_POP(status->base_pc_maxhp), HP_POP2(HP_status_base_pc_maxhp), 4630 }, +{ HP_POP(status->base_pc_maxsp), HP_POP2(HP_status_base_pc_maxsp), 4632 }, +{ HP_POP(status->calc_npc_), HP_POP2(HP_status_calc_npc_), 4634 }, +{ HP_POP(status->calc_str), HP_POP2(HP_status_calc_str), 4636 }, +{ HP_POP(status->calc_agi), HP_POP2(HP_status_calc_agi), 4638 }, +{ HP_POP(status->calc_vit), HP_POP2(HP_status_calc_vit), 4640 }, +{ HP_POP(status->calc_int), HP_POP2(HP_status_calc_int), 4642 }, +{ HP_POP(status->calc_dex), HP_POP2(HP_status_calc_dex), 4644 }, +{ HP_POP(status->calc_luk), HP_POP2(HP_status_calc_luk), 4646 }, +{ HP_POP(status->calc_watk), HP_POP2(HP_status_calc_watk), 4648 }, +{ HP_POP(status->calc_matk), HP_POP2(HP_status_calc_matk), 4650 }, +{ HP_POP(status->calc_hit), HP_POP2(HP_status_calc_hit), 4652 }, +{ HP_POP(status->calc_critical), HP_POP2(HP_status_calc_critical), 4654 }, +{ HP_POP(status->calc_flee), HP_POP2(HP_status_calc_flee), 4656 }, +{ HP_POP(status->calc_flee2), HP_POP2(HP_status_calc_flee2), 4658 }, +{ HP_POP(status->calc_speed), HP_POP2(HP_status_calc_speed), 4660 }, +{ HP_POP(status->calc_aspd_rate), HP_POP2(HP_status_calc_aspd_rate), 4662 }, +{ HP_POP(status->calc_dmotion), HP_POP2(HP_status_calc_dmotion), 4664 }, +{ HP_POP(status->calc_aspd), HP_POP2(HP_status_calc_aspd), 4666 }, +{ HP_POP(status->calc_fix_aspd), HP_POP2(HP_status_calc_fix_aspd), 4668 }, +{ HP_POP(status->calc_maxhp), HP_POP2(HP_status_calc_maxhp), 4670 }, +{ HP_POP(status->calc_maxsp), HP_POP2(HP_status_calc_maxsp), 4672 }, +{ HP_POP(status->calc_element), HP_POP2(HP_status_calc_element), 4674 }, +{ HP_POP(status->calc_element_lv), HP_POP2(HP_status_calc_element_lv), 4676 }, +{ HP_POP(status->calc_mode), HP_POP2(HP_status_calc_mode), 4678 }, +{ HP_POP(status->calc_ematk), HP_POP2(HP_status_calc_ematk), 4680 }, +{ HP_POP(status->calc_bl_main), HP_POP2(HP_status_calc_bl_main), 4682 }, +{ HP_POP(status->display_add), HP_POP2(HP_status_display_add), 4684 }, +{ HP_POP(status->display_remove), HP_POP2(HP_status_display_remove), 4686 }, +{ HP_POP(status->natural_heal), HP_POP2(HP_status_natural_heal), 4688 }, +{ HP_POP(status->natural_heal_timer), HP_POP2(HP_status_natural_heal_timer), 4690 }, +{ HP_POP(status->readdb_job1), HP_POP2(HP_status_readdb_job1), 4692 }, +{ HP_POP(status->readdb_job2), HP_POP2(HP_status_readdb_job2), 4694 }, +{ HP_POP(status->readdb_sizefix), HP_POP2(HP_status_readdb_sizefix), 4696 }, +{ HP_POP(status->readdb_refine), HP_POP2(HP_status_readdb_refine), 4698 }, +{ HP_POP(status->readdb_scconfig), HP_POP2(HP_status_readdb_scconfig), 4700 }, +/* storage */ +{ HP_POP(storage->reconnect), HP_POP2(HP_storage_reconnect), 4702 }, +{ HP_POP(storage->delitem), HP_POP2(HP_storage_delitem), 4704 }, +{ HP_POP(storage->open), HP_POP2(HP_storage_open), 4706 }, +{ HP_POP(storage->add), HP_POP2(HP_storage_add), 4708 }, +{ HP_POP(storage->get), HP_POP2(HP_storage_get), 4710 }, +{ HP_POP(storage->additem), HP_POP2(HP_storage_additem), 4712 }, +{ HP_POP(storage->addfromcart), HP_POP2(HP_storage_addfromcart), 4714 }, +{ HP_POP(storage->gettocart), HP_POP2(HP_storage_gettocart), 4716 }, +{ HP_POP(storage->close), HP_POP2(HP_storage_close), 4718 }, +{ HP_POP(storage->pc_quit), HP_POP2(HP_storage_pc_quit), 4720 }, +{ HP_POP(storage->comp_item), HP_POP2(HP_storage_comp_item), 4722 }, +{ HP_POP(storage->sortitem), HP_POP2(HP_storage_sortitem), 4724 }, +{ HP_POP(storage->reconnect_sub), HP_POP2(HP_storage_reconnect_sub), 4726 }, +/* trade */ +{ HP_POP(trade->request), HP_POP2(HP_trade_request), 4728 }, +{ HP_POP(trade->ack), HP_POP2(HP_trade_ack), 4730 }, +{ HP_POP(trade->check_impossible), HP_POP2(HP_trade_check_impossible), 4732 }, +{ HP_POP(trade->check), HP_POP2(HP_trade_check), 4734 }, +{ HP_POP(trade->additem), HP_POP2(HP_trade_additem), 4736 }, +{ HP_POP(trade->addzeny), HP_POP2(HP_trade_addzeny), 4738 }, +{ HP_POP(trade->ok), HP_POP2(HP_trade_ok), 4740 }, +{ HP_POP(trade->cancel), HP_POP2(HP_trade_cancel), 4742 }, +{ HP_POP(trade->commit), HP_POP2(HP_trade_commit), 4744 }, +/* unit */ +{ HP_POP(unit->init), HP_POP2(HP_unit_init), 4746 }, +{ HP_POP(unit->final), HP_POP2(HP_unit_final), 4748 }, +{ HP_POP(unit->bl2ud), HP_POP2(HP_unit_bl2ud), 4750 }, +{ HP_POP(unit->bl2ud2), HP_POP2(HP_unit_bl2ud2), 4752 }, +{ HP_POP(unit->attack_timer), HP_POP2(HP_unit_attack_timer), 4754 }, +{ HP_POP(unit->walktoxy_timer), HP_POP2(HP_unit_walktoxy_timer), 4756 }, +{ HP_POP(unit->walktoxy_sub), HP_POP2(HP_unit_walktoxy_sub), 4758 }, +{ HP_POP(unit->delay_walktoxy_timer), HP_POP2(HP_unit_delay_walktoxy_timer), 4760 }, +{ HP_POP(unit->walktoxy), HP_POP2(HP_unit_walktoxy), 4762 }, +{ HP_POP(unit->walktobl_sub), HP_POP2(HP_unit_walktobl_sub), 4764 }, +{ HP_POP(unit->walktobl), HP_POP2(HP_unit_walktobl), 4766 }, +{ HP_POP(unit->run), HP_POP2(HP_unit_run), 4768 }, +{ HP_POP(unit->wugdash), HP_POP2(HP_unit_wugdash), 4770 }, +{ HP_POP(unit->escape), HP_POP2(HP_unit_escape), 4772 }, +{ HP_POP(unit->movepos), HP_POP2(HP_unit_movepos), 4774 }, +{ HP_POP(unit->setdir), HP_POP2(HP_unit_setdir), 4776 }, +{ HP_POP(unit->getdir), HP_POP2(HP_unit_getdir), 4778 }, +{ HP_POP(unit->blown), HP_POP2(HP_unit_blown), 4780 }, +{ HP_POP(unit->warp), HP_POP2(HP_unit_warp), 4782 }, +{ HP_POP(unit->stop_walking), HP_POP2(HP_unit_stop_walking), 4784 }, +{ HP_POP(unit->skilluse_id), HP_POP2(HP_unit_skilluse_id), 4786 }, +{ HP_POP(unit->is_walking), HP_POP2(HP_unit_is_walking), 4788 }, +{ HP_POP(unit->can_move), HP_POP2(HP_unit_can_move), 4790 }, +{ HP_POP(unit->resume_running), HP_POP2(HP_unit_resume_running), 4792 }, +{ HP_POP(unit->set_walkdelay), HP_POP2(HP_unit_set_walkdelay), 4794 }, +{ HP_POP(unit->skilluse_id2), HP_POP2(HP_unit_skilluse_id2), 4796 }, +{ HP_POP(unit->skilluse_pos), HP_POP2(HP_unit_skilluse_pos), 4798 }, +{ HP_POP(unit->skilluse_pos2), HP_POP2(HP_unit_skilluse_pos2), 4800 }, +{ HP_POP(unit->set_target), HP_POP2(HP_unit_set_target), 4802 }, +{ HP_POP(unit->stop_attack), HP_POP2(HP_unit_stop_attack), 4804 }, +{ HP_POP(unit->unattackable), HP_POP2(HP_unit_unattackable), 4806 }, +{ HP_POP(unit->attack), HP_POP2(HP_unit_attack), 4808 }, +{ HP_POP(unit->cancel_combo), HP_POP2(HP_unit_cancel_combo), 4810 }, +{ HP_POP(unit->can_reach_pos), HP_POP2(HP_unit_can_reach_pos), 4812 }, +{ HP_POP(unit->can_reach_bl), HP_POP2(HP_unit_can_reach_bl), 4814 }, +{ HP_POP(unit->calc_pos), HP_POP2(HP_unit_calc_pos), 4816 }, +{ HP_POP(unit->attack_timer_sub), HP_POP2(HP_unit_attack_timer_sub), 4818 }, +{ HP_POP(unit->skillcastcancel), HP_POP2(HP_unit_skillcastcancel), 4820 }, +{ HP_POP(unit->dataset), HP_POP2(HP_unit_dataset), 4822 }, +{ HP_POP(unit->counttargeted), HP_POP2(HP_unit_counttargeted), 4824 }, +{ HP_POP(unit->fixdamage), HP_POP2(HP_unit_fixdamage), 4826 }, +{ HP_POP(unit->changeviewsize), HP_POP2(HP_unit_changeviewsize), 4828 }, +{ HP_POP(unit->remove_map), HP_POP2(HP_unit_remove_map), 4830 }, +{ HP_POP(unit->remove_map_pc), HP_POP2(HP_unit_remove_map_pc), 4832 }, +{ HP_POP(unit->free_pc), HP_POP2(HP_unit_free_pc), 4834 }, +{ HP_POP(unit->free), HP_POP2(HP_unit_free), 4836 }, +/* vending */ +{ HP_POP(vending->init), HP_POP2(HP_vending_init), 4838 }, +{ HP_POP(vending->final), HP_POP2(HP_vending_final), 4840 }, +{ HP_POP(vending->close), HP_POP2(HP_vending_close), 4842 }, +{ HP_POP(vending->open), HP_POP2(HP_vending_open), 4844 }, +{ HP_POP(vending->list), HP_POP2(HP_vending_list), 4846 }, +{ HP_POP(vending->purchase), HP_POP2(HP_vending_purchase), 4848 }, +{ HP_POP(vending->search), HP_POP2(HP_vending_search), 4850 }, +{ HP_POP(vending->searchall), HP_POP2(HP_vending_searchall), 4852 }, +}; +int HookingPointsLenMax = 41; diff --git a/src/plugins/HPMHooking/HPMHooking.Hooks.inc b/src/plugins/HPMHooking/HPMHooking.Hooks.inc new file mode 100644 index 000000000..5915412d1 --- /dev/null +++ b/src/plugins/HPMHooking/HPMHooking.Hooks.inc @@ -0,0 +1,64199 @@ +/* atcommand */ +void HP_atcommand_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.init(); + } + if( HPMHooks.count.HP_atcommand_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_atcommand_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.final(); + } + if( HPMHooks.count.HP_atcommand_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +bool HP_atcommand_parse(const int fd, struct map_session_data *sd, const char *message, int type) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_atcommand_parse_pre ) { + bool (*preHookFunc) (const int *fd, struct map_session_data *sd, const char *message, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_parse_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_parse_pre[hIndex].func; + retVal___ = preHookFunc(&fd, sd, message, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.atcommand.parse(fd, sd, message, type); + } + if( HPMHooks.count.HP_atcommand_parse_post ) { + bool (*postHookFunc) (bool retVal___, const int *fd, struct map_session_data *sd, const char *message, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_parse_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_parse_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd, sd, message, &type); + } + } + return retVal___; +} +bool HP_atcommand_create(char *name, AtCommandFunc func) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_atcommand_create_pre ) { + bool (*preHookFunc) (char *name, AtCommandFunc *func); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_create_pre[hIndex].func; + retVal___ = preHookFunc(name, &func); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.atcommand.create(name, func); + } + if( HPMHooks.count.HP_atcommand_create_post ) { + bool (*postHookFunc) (bool retVal___, char *name, AtCommandFunc *func); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name, &func); + } + } + return retVal___; +} +bool HP_atcommand_can_use(struct map_session_data *sd, const char *command) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_atcommand_can_use_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, const char *command); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_can_use_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_can_use_pre[hIndex].func; + retVal___ = preHookFunc(sd, command); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.atcommand.can_use(sd, command); + } + if( HPMHooks.count.HP_atcommand_can_use_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, const char *command); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_can_use_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_can_use_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, command); + } + } + return retVal___; +} +bool HP_atcommand_can_use2(struct map_session_data *sd, const char *command, AtCommandType type) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_atcommand_can_use2_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, const char *command, AtCommandType *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_can_use2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_can_use2_pre[hIndex].func; + retVal___ = preHookFunc(sd, command, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.atcommand.can_use2(sd, command, type); + } + if( HPMHooks.count.HP_atcommand_can_use2_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, const char *command, AtCommandType *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_can_use2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_can_use2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, command, &type); + } + } + return retVal___; +} +void HP_atcommand_load_groups(GroupSettings **groups, config_setting_t **commands_, size_t sz) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_load_groups_pre ) { + void (*preHookFunc) (GroupSettings **groups, config_setting_t **commands_, size_t *sz); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_load_groups_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_load_groups_pre[hIndex].func; + preHookFunc(groups, commands_, &sz); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.load_groups(groups, commands_, sz); + } + if( HPMHooks.count.HP_atcommand_load_groups_post ) { + void (*postHookFunc) (GroupSettings **groups, config_setting_t **commands_, size_t *sz); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_load_groups_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_load_groups_post[hIndex].func; + postHookFunc(groups, commands_, &sz); + } + } + return; +} +AtCommandInfo* HP_atcommand_exists(const char *name) { + int hIndex = 0; + AtCommandInfo* retVal___ = NULL; + if( HPMHooks.count.HP_atcommand_exists_pre ) { + AtCommandInfo* (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_exists_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_exists_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.atcommand.exists(name); + } + if( HPMHooks.count.HP_atcommand_exists_post ) { + AtCommandInfo* (*postHookFunc) (AtCommandInfo* retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_exists_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_exists_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +int HP_atcommand_msg_read(const char *cfgName) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_atcommand_msg_read_pre ) { + int (*preHookFunc) (const char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_msg_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_msg_read_pre[hIndex].func; + retVal___ = preHookFunc(cfgName); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.atcommand.msg_read(cfgName); + } + if( HPMHooks.count.HP_atcommand_msg_read_post ) { + int (*postHookFunc) (int retVal___, const char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_msg_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_msg_read_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cfgName); + } + } + return retVal___; +} +void HP_atcommand_final_msg(void) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_final_msg_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_final_msg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_final_msg_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.final_msg(); + } + if( HPMHooks.count.HP_atcommand_final_msg_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_final_msg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_final_msg_post[hIndex].func; + postHookFunc(); + } + } + return; +} +struct atcmd_binding_data* HP_atcommand_get_bind_byname(const char *name) { + int hIndex = 0; + struct atcmd_binding_data* retVal___ = NULL; + if( HPMHooks.count.HP_atcommand_get_bind_byname_pre ) { + struct atcmd_binding_data* (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_get_bind_byname_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_get_bind_byname_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.atcommand.get_bind_byname(name); + } + if( HPMHooks.count.HP_atcommand_get_bind_byname_post ) { + struct atcmd_binding_data* (*postHookFunc) (struct atcmd_binding_data* retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_get_bind_byname_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_get_bind_byname_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +AtCommandInfo* HP_atcommand_get_info_byname(const char *name) { + int hIndex = 0; + AtCommandInfo* retVal___ = NULL; + if( HPMHooks.count.HP_atcommand_get_info_byname_pre ) { + AtCommandInfo* (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_get_info_byname_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_get_info_byname_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.atcommand.get_info_byname(name); + } + if( HPMHooks.count.HP_atcommand_get_info_byname_post ) { + AtCommandInfo* (*postHookFunc) (AtCommandInfo* retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_get_info_byname_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_get_info_byname_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +const char* HP_atcommand_check_alias(const char *aliasname) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_atcommand_check_alias_pre ) { + const char* (*preHookFunc) (const char *aliasname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_check_alias_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_check_alias_pre[hIndex].func; + retVal___ = preHookFunc(aliasname); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.atcommand.check_alias(aliasname); + } + if( HPMHooks.count.HP_atcommand_check_alias_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *aliasname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_check_alias_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_check_alias_post[hIndex].func; + retVal___ = postHookFunc(retVal___, aliasname); + } + } + return retVal___; +} +void HP_atcommand_get_suggestions(struct map_session_data *sd, const char *name, bool is_atcmd_cmd) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_get_suggestions_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *name, bool *is_atcmd_cmd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_get_suggestions_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_get_suggestions_pre[hIndex].func; + preHookFunc(sd, name, &is_atcmd_cmd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.get_suggestions(sd, name, is_atcmd_cmd); + } + if( HPMHooks.count.HP_atcommand_get_suggestions_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *name, bool *is_atcmd_cmd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_get_suggestions_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_get_suggestions_post[hIndex].func; + postHookFunc(sd, name, &is_atcmd_cmd); + } + } + return; +} +void HP_atcommand_config_read(const char *config_filename) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_config_read_pre ) { + void (*preHookFunc) (const char *config_filename); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_config_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_config_read_pre[hIndex].func; + preHookFunc(config_filename); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.config_read(config_filename); + } + if( HPMHooks.count.HP_atcommand_config_read_post ) { + void (*postHookFunc) (const char *config_filename); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_config_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_config_read_post[hIndex].func; + postHookFunc(config_filename); + } + } + return; +} +int HP_atcommand_stopattack(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_atcommand_stopattack_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_stopattack_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_atcommand_stopattack_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.atcommand.stopattack(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_atcommand_stopattack_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_stopattack_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_atcommand_stopattack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_atcommand_pvpoff_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_atcommand_pvpoff_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_pvpoff_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_atcommand_pvpoff_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.atcommand.pvpoff_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_atcommand_pvpoff_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_pvpoff_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_atcommand_pvpoff_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_atcommand_pvpon_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_atcommand_pvpon_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_pvpon_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_atcommand_pvpon_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.atcommand.pvpon_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_atcommand_pvpon_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_pvpon_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_atcommand_pvpon_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_atcommand_atkillmonster_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_atcommand_atkillmonster_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_atkillmonster_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_atcommand_atkillmonster_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.atcommand.atkillmonster_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_atcommand_atkillmonster_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_atkillmonster_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_atcommand_atkillmonster_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_atcommand_raise_sub(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_raise_sub_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_raise_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_raise_sub_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.raise_sub(sd); + } + if( HPMHooks.count.HP_atcommand_raise_sub_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_raise_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_raise_sub_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_atcommand_get_jail_time(int jailtime, int *year, int *month, int *day, int *hour, int *minute) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_get_jail_time_pre ) { + void (*preHookFunc) (int *jailtime, int *year, int *month, int *day, int *hour, int *minute); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_get_jail_time_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_get_jail_time_pre[hIndex].func; + preHookFunc(&jailtime, year, month, day, hour, minute); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.get_jail_time(jailtime, year, month, day, hour, minute); + } + if( HPMHooks.count.HP_atcommand_get_jail_time_post ) { + void (*postHookFunc) (int *jailtime, int *year, int *month, int *day, int *hour, int *minute); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_get_jail_time_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_get_jail_time_post[hIndex].func; + postHookFunc(&jailtime, year, month, day, hour, minute); + } + } + return; +} +int HP_atcommand_cleanfloor_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_atcommand_cleanfloor_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_cleanfloor_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_atcommand_cleanfloor_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.atcommand.cleanfloor_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_atcommand_cleanfloor_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_cleanfloor_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_atcommand_cleanfloor_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_atcommand_mutearea_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_atcommand_mutearea_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_mutearea_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_atcommand_mutearea_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.atcommand.mutearea_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_atcommand_mutearea_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_mutearea_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_atcommand_mutearea_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_atcommand_commands_sub(struct map_session_data *sd, const int fd, AtCommandType type) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_commands_sub_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const int *fd, AtCommandType *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_commands_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_commands_sub_pre[hIndex].func; + preHookFunc(sd, &fd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.commands_sub(sd, fd, type); + } + if( HPMHooks.count.HP_atcommand_commands_sub_post ) { + void (*postHookFunc) (struct map_session_data *sd, const int *fd, AtCommandType *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_commands_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_commands_sub_post[hIndex].func; + postHookFunc(sd, &fd, &type); + } + } + return; +} +void HP_atcommand_cmd_db_clear(void) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_cmd_db_clear_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_cmd_db_clear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_cmd_db_clear_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.cmd_db_clear(); + } + if( HPMHooks.count.HP_atcommand_cmd_db_clear_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_cmd_db_clear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_cmd_db_clear_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_atcommand_cmd_db_clear_sub(DBKey key, DBData *data, va_list args) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_atcommand_cmd_db_clear_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_cmd_db_clear_sub_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_atcommand_cmd_db_clear_sub_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.atcommand.cmd_db_clear_sub(key, data, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_atcommand_cmd_db_clear_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_cmd_db_clear_sub_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_atcommand_cmd_db_clear_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +void HP_atcommand_doload(void) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_doload_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_doload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_doload_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.doload(); + } + if( HPMHooks.count.HP_atcommand_doload_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_doload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_doload_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_atcommand_base_commands(void) { + int hIndex = 0; + if( HPMHooks.count.HP_atcommand_base_commands_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_base_commands_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_atcommand_base_commands_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.atcommand.base_commands(); + } + if( HPMHooks.count.HP_atcommand_base_commands_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_base_commands_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_atcommand_base_commands_post[hIndex].func; + postHookFunc(); + } + } + return; +} +/* battle */ +void HP_battle_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_battle_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.battle.init(); + } + if( HPMHooks.count.HP_battle_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_battle_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_battle_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.battle.final(); + } + if( HPMHooks.count.HP_battle_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +struct Damage HP_battle_calc_attack(int attack_type, struct block_list *bl, struct block_list *target, uint16 skill_id, uint16 skill_lv, int count) { + int hIndex = 0; + struct Damage retVal___; + memset(&retVal___, '\0', sizeof(struct Damage)); + if( HPMHooks.count.HP_battle_calc_attack_pre ) { + struct Damage (*preHookFunc) (int *attack_type, struct block_list *bl, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_attack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_attack_pre[hIndex].func; + retVal___ = preHookFunc(&attack_type, bl, target, &skill_id, &skill_lv, &count); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_attack(attack_type, bl, target, skill_id, skill_lv, count); + } + if( HPMHooks.count.HP_battle_calc_attack_post ) { + struct Damage (*postHookFunc) (struct Damage retVal___, int *attack_type, struct block_list *bl, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_attack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_attack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &attack_type, bl, target, &skill_id, &skill_lv, &count); + } + } + return retVal___; +} +int64 HP_battle_calc_damage(struct block_list *src, struct block_list *bl, struct Damage *d, int64 damage, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_damage_pre ) { + int64 (*preHookFunc) (struct block_list *src, struct block_list *bl, struct Damage *d, int64 *damage, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_damage_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, d, &damage, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_damage(src, bl, d, damage, skill_id, skill_lv); + } + if( HPMHooks.count.HP_battle_calc_damage_post ) { + int64 (*postHookFunc) (int64 retVal___, struct block_list *src, struct block_list *bl, struct Damage *d, int64 *damage, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, d, &damage, &skill_id, &skill_lv); + } + } + return retVal___; +} +int64 HP_battle_calc_gvg_damage(struct block_list *src, struct block_list *bl, int64 damage, int div_, uint16 skill_id, uint16 skill_lv, int flag) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_gvg_damage_pre ) { + int64 (*preHookFunc) (struct block_list *src, struct block_list *bl, int64 *damage, int *div_, uint16 *skill_id, uint16 *skill_lv, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_gvg_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_gvg_damage_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &damage, &div_, &skill_id, &skill_lv, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_gvg_damage(src, bl, damage, div_, skill_id, skill_lv, flag); + } + if( HPMHooks.count.HP_battle_calc_gvg_damage_post ) { + int64 (*postHookFunc) (int64 retVal___, struct block_list *src, struct block_list *bl, int64 *damage, int *div_, uint16 *skill_id, uint16 *skill_lv, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_gvg_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_gvg_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &damage, &div_, &skill_id, &skill_lv, &flag); + } + } + return retVal___; +} +int64 HP_battle_calc_bg_damage(struct block_list *src, struct block_list *bl, int64 damage, int div_, uint16 skill_id, uint16 skill_lv, int flag) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_bg_damage_pre ) { + int64 (*preHookFunc) (struct block_list *src, struct block_list *bl, int64 *damage, int *div_, uint16 *skill_id, uint16 *skill_lv, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_bg_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_bg_damage_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &damage, &div_, &skill_id, &skill_lv, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_bg_damage(src, bl, damage, div_, skill_id, skill_lv, flag); + } + if( HPMHooks.count.HP_battle_calc_bg_damage_post ) { + int64 (*postHookFunc) (int64 retVal___, struct block_list *src, struct block_list *bl, int64 *damage, int *div_, uint16 *skill_id, uint16 *skill_lv, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_bg_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_bg_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &damage, &div_, &skill_id, &skill_lv, &flag); + } + } + return retVal___; +} +enum damage_lv HP_battle_weapon_attack(struct block_list *bl, struct block_list *target, unsigned int tick, int flag) { + int hIndex = 0; + enum damage_lv retVal___; + memset(&retVal___, '\0', sizeof(enum damage_lv)); + if( HPMHooks.count.HP_battle_weapon_attack_pre ) { + enum damage_lv (*preHookFunc) (struct block_list *bl, struct block_list *target, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_weapon_attack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_weapon_attack_pre[hIndex].func; + retVal___ = preHookFunc(bl, target, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.weapon_attack(bl, target, tick, flag); + } + if( HPMHooks.count.HP_battle_weapon_attack_post ) { + enum damage_lv (*postHookFunc) (enum damage_lv retVal___, struct block_list *bl, struct block_list *target, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_weapon_attack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_weapon_attack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, target, &tick, &flag); + } + } + return retVal___; +} +struct Damage HP_battle_calc_weapon_attack(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int wflag) { + int hIndex = 0; + struct Damage retVal___; + memset(&retVal___, '\0', sizeof(struct Damage)); + if( HPMHooks.count.HP_battle_calc_weapon_attack_pre ) { + struct Damage (*preHookFunc) (struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *wflag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_weapon_attack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_weapon_attack_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &skill_id, &skill_lv, &wflag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_weapon_attack(src, target, skill_id, skill_lv, wflag); + } + if( HPMHooks.count.HP_battle_calc_weapon_attack_post ) { + struct Damage (*postHookFunc) (struct Damage retVal___, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *wflag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_weapon_attack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_weapon_attack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &skill_id, &skill_lv, &wflag); + } + } + return retVal___; +} +int HP_battle_delay_damage(unsigned int tick, int amotion, struct block_list *src, struct block_list *target, int attack_type, uint16 skill_id, uint16 skill_lv, int64 damage, enum damage_lv dmg_lv, int ddelay, bool additional_effects) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_delay_damage_pre ) { + int (*preHookFunc) (unsigned int *tick, int *amotion, struct block_list *src, struct block_list *target, int *attack_type, uint16 *skill_id, uint16 *skill_lv, int64 *damage, enum damage_lv *dmg_lv, int *ddelay, bool *additional_effects); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_delay_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_delay_damage_pre[hIndex].func; + retVal___ = preHookFunc(&tick, &amotion, src, target, &attack_type, &skill_id, &skill_lv, &damage, &dmg_lv, &ddelay, &additional_effects); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.delay_damage(tick, amotion, src, target, attack_type, skill_id, skill_lv, damage, dmg_lv, ddelay, additional_effects); + } + if( HPMHooks.count.HP_battle_delay_damage_post ) { + int (*postHookFunc) (int retVal___, unsigned int *tick, int *amotion, struct block_list *src, struct block_list *target, int *attack_type, uint16 *skill_id, uint16 *skill_lv, int64 *damage, enum damage_lv *dmg_lv, int *ddelay, bool *additional_effects); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_delay_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_delay_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tick, &amotion, src, target, &attack_type, &skill_id, &skill_lv, &damage, &dmg_lv, &ddelay, &additional_effects); + } + } + return retVal___; +} +void HP_battle_drain(struct map_session_data *sd, struct block_list *tbl, int64 rdamage, int64 ldamage, int race, int boss) { + int hIndex = 0; + if( HPMHooks.count.HP_battle_drain_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct block_list *tbl, int64 *rdamage, int64 *ldamage, int *race, int *boss); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_drain_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_drain_pre[hIndex].func; + preHookFunc(sd, tbl, &rdamage, &ldamage, &race, &boss); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.battle.drain(sd, tbl, rdamage, ldamage, race, boss); + } + if( HPMHooks.count.HP_battle_drain_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct block_list *tbl, int64 *rdamage, int64 *ldamage, int *race, int *boss); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_drain_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_drain_post[hIndex].func; + postHookFunc(sd, tbl, &rdamage, &ldamage, &race, &boss); + } + } + return; +} +int64 HP_battle_calc_return_damage(struct block_list *bl, struct block_list *src, int64 *p1, int flag, uint16 skill_id, int *rdelay) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_return_damage_pre ) { + int64 (*preHookFunc) (struct block_list *bl, struct block_list *src, int64 *p1, int *flag, uint16 *skill_id, int *rdelay); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_return_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_return_damage_pre[hIndex].func; + retVal___ = preHookFunc(bl, src, p1, &flag, &skill_id, rdelay); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_return_damage(bl, src, p1, flag, skill_id, rdelay); + } + if( HPMHooks.count.HP_battle_calc_return_damage_post ) { + int64 (*postHookFunc) (int64 retVal___, struct block_list *bl, struct block_list *src, int64 *p1, int *flag, uint16 *skill_id, int *rdelay); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_return_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_return_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, src, p1, &flag, &skill_id, rdelay); + } + } + return retVal___; +} +int HP_battle_attr_ratio(int atk_elem, int def_type, int def_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_attr_ratio_pre ) { + int (*preHookFunc) (int *atk_elem, int *def_type, int *def_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_attr_ratio_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_attr_ratio_pre[hIndex].func; + retVal___ = preHookFunc(&atk_elem, &def_type, &def_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.attr_ratio(atk_elem, def_type, def_lv); + } + if( HPMHooks.count.HP_battle_attr_ratio_post ) { + int (*postHookFunc) (int retVal___, int *atk_elem, int *def_type, int *def_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_attr_ratio_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_attr_ratio_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &atk_elem, &def_type, &def_lv); + } + } + return retVal___; +} +int64 HP_battle_attr_fix(struct block_list *src, struct block_list *target, int64 damage, int atk_elem, int def_type, int def_lv) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_attr_fix_pre ) { + int64 (*preHookFunc) (struct block_list *src, struct block_list *target, int64 *damage, int *atk_elem, int *def_type, int *def_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_attr_fix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_attr_fix_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &damage, &atk_elem, &def_type, &def_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.attr_fix(src, target, damage, atk_elem, def_type, def_lv); + } + if( HPMHooks.count.HP_battle_attr_fix_post ) { + int64 (*postHookFunc) (int64 retVal___, struct block_list *src, struct block_list *target, int64 *damage, int *atk_elem, int *def_type, int *def_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_attr_fix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_attr_fix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &damage, &atk_elem, &def_type, &def_lv); + } + } + return retVal___; +} +int64 HP_battle_calc_cardfix(int attack_type, struct block_list *src, struct block_list *target, int nk, int s_ele, int s_ele_, int64 damage, int left, int flag) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_cardfix_pre ) { + int64 (*preHookFunc) (int *attack_type, struct block_list *src, struct block_list *target, int *nk, int *s_ele, int *s_ele_, int64 *damage, int *left, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_cardfix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_cardfix_pre[hIndex].func; + retVal___ = preHookFunc(&attack_type, src, target, &nk, &s_ele, &s_ele_, &damage, &left, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_cardfix(attack_type, src, target, nk, s_ele, s_ele_, damage, left, flag); + } + if( HPMHooks.count.HP_battle_calc_cardfix_post ) { + int64 (*postHookFunc) (int64 retVal___, int *attack_type, struct block_list *src, struct block_list *target, int *nk, int *s_ele, int *s_ele_, int64 *damage, int *left, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_cardfix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_cardfix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &attack_type, src, target, &nk, &s_ele, &s_ele_, &damage, &left, &flag); + } + } + return retVal___; +} +int64 HP_battle_calc_elefix(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 damage, int nk, int n_ele, int s_ele, int s_ele_, bool left, int flag) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_elefix_pre ) { + int64 (*preHookFunc) (struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int64 *damage, int *nk, int *n_ele, int *s_ele, int *s_ele_, bool *left, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_elefix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_elefix_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &skill_id, &skill_lv, &damage, &nk, &n_ele, &s_ele, &s_ele_, &left, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_elefix(src, target, skill_id, skill_lv, damage, nk, n_ele, s_ele, s_ele_, left, flag); + } + if( HPMHooks.count.HP_battle_calc_elefix_post ) { + int64 (*postHookFunc) (int64 retVal___, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int64 *damage, int *nk, int *n_ele, int *s_ele, int *s_ele_, bool *left, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_elefix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_elefix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &skill_id, &skill_lv, &damage, &nk, &n_ele, &s_ele, &s_ele_, &left, &flag); + } + } + return retVal___; +} +int64 HP_battle_calc_masteryfix(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 damage, int div, bool left, bool weapon) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_masteryfix_pre ) { + int64 (*preHookFunc) (struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int64 *damage, int *div, bool *left, bool *weapon); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_masteryfix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_masteryfix_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &skill_id, &skill_lv, &damage, &div, &left, &weapon); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_masteryfix(src, target, skill_id, skill_lv, damage, div, left, weapon); + } + if( HPMHooks.count.HP_battle_calc_masteryfix_post ) { + int64 (*postHookFunc) (int64 retVal___, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int64 *damage, int *div, bool *left, bool *weapon); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_masteryfix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_masteryfix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &skill_id, &skill_lv, &damage, &div, &left, &weapon); + } + } + return retVal___; +} +int HP_battle_calc_skillratio(int attack_type, struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int skillratio, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_calc_skillratio_pre ) { + int (*preHookFunc) (int *attack_type, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *skillratio, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_skillratio_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_skillratio_pre[hIndex].func; + retVal___ = preHookFunc(&attack_type, src, target, &skill_id, &skill_lv, &skillratio, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_skillratio(attack_type, src, target, skill_id, skill_lv, skillratio, flag); + } + if( HPMHooks.count.HP_battle_calc_skillratio_post ) { + int (*postHookFunc) (int retVal___, int *attack_type, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *skillratio, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_skillratio_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_skillratio_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &attack_type, src, target, &skill_id, &skill_lv, &skillratio, &flag); + } + } + return retVal___; +} +int64 HP_battle_calc_sizefix(struct map_session_data *sd, int64 damage, int type, int size, bool ignore) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_sizefix_pre ) { + int64 (*preHookFunc) (struct map_session_data *sd, int64 *damage, int *type, int *size, bool *ignore); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_sizefix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_sizefix_pre[hIndex].func; + retVal___ = preHookFunc(sd, &damage, &type, &size, &ignore); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_sizefix(sd, damage, type, size, ignore); + } + if( HPMHooks.count.HP_battle_calc_sizefix_post ) { + int64 (*postHookFunc) (int64 retVal___, struct map_session_data *sd, int64 *damage, int *type, int *size, bool *ignore); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_sizefix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_sizefix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &damage, &type, &size, &ignore); + } + } + return retVal___; +} +int64 HP_battle_calc_weapon_damage(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, struct weapon_atk *watk, int nk, bool n_ele, short s_ele, short s_ele_, int size, int type, int flag, int flag2) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_weapon_damage_pre ) { + int64 (*preHookFunc) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, struct weapon_atk *watk, int *nk, bool *n_ele, short *s_ele, short *s_ele_, int *size, int *type, int *flag, int *flag2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_weapon_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_weapon_damage_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &skill_id, &skill_lv, watk, &nk, &n_ele, &s_ele, &s_ele_, &size, &type, &flag, &flag2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_weapon_damage(src, bl, skill_id, skill_lv, watk, nk, n_ele, s_ele, s_ele_, size, type, flag, flag2); + } + if( HPMHooks.count.HP_battle_calc_weapon_damage_post ) { + int64 (*postHookFunc) (int64 retVal___, struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, struct weapon_atk *watk, int *nk, bool *n_ele, short *s_ele, short *s_ele_, int *size, int *type, int *flag, int *flag2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_weapon_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_weapon_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &skill_id, &skill_lv, watk, &nk, &n_ele, &s_ele, &s_ele_, &size, &type, &flag, &flag2); + } + } + return retVal___; +} +int64 HP_battle_calc_defense(int attack_type, struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int64 damage, int flag, int pdef) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_defense_pre ) { + int64 (*preHookFunc) (int *attack_type, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int64 *damage, int *flag, int *pdef); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_defense_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_defense_pre[hIndex].func; + retVal___ = preHookFunc(&attack_type, src, target, &skill_id, &skill_lv, &damage, &flag, &pdef); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_defense(attack_type, src, target, skill_id, skill_lv, damage, flag, pdef); + } + if( HPMHooks.count.HP_battle_calc_defense_post ) { + int64 (*postHookFunc) (int64 retVal___, int *attack_type, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int64 *damage, int *flag, int *pdef); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_defense_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_defense_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &attack_type, src, target, &skill_id, &skill_lv, &damage, &flag, &pdef); + } + } + return retVal___; +} +struct block_list* HP_battle_get_master(struct block_list *src) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_battle_get_master_pre ) { + struct block_list* (*preHookFunc) (struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_master_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_get_master_pre[hIndex].func; + retVal___ = preHookFunc(src); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.get_master(src); + } + if( HPMHooks.count.HP_battle_get_master_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_master_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_get_master_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src); + } + } + return retVal___; +} +struct block_list* HP_battle_get_targeted(struct block_list *target) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_battle_get_targeted_pre ) { + struct block_list* (*preHookFunc) (struct block_list *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_targeted_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_get_targeted_pre[hIndex].func; + retVal___ = preHookFunc(target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.get_targeted(target); + } + if( HPMHooks.count.HP_battle_get_targeted_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct block_list *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_targeted_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_get_targeted_post[hIndex].func; + retVal___ = postHookFunc(retVal___, target); + } + } + return retVal___; +} +struct block_list* HP_battle_get_enemy(struct block_list *target, int type, int range) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_battle_get_enemy_pre ) { + struct block_list* (*preHookFunc) (struct block_list *target, int *type, int *range); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_enemy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_get_enemy_pre[hIndex].func; + retVal___ = preHookFunc(target, &type, &range); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.get_enemy(target, type, range); + } + if( HPMHooks.count.HP_battle_get_enemy_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct block_list *target, int *type, int *range); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_enemy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_get_enemy_post[hIndex].func; + retVal___ = postHookFunc(retVal___, target, &type, &range); + } + } + return retVal___; +} +int HP_battle_get_target(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_get_target_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_target_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_get_target_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.get_target(bl); + } + if( HPMHooks.count.HP_battle_get_target_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_target_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_get_target_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_battle_get_current_skill(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_get_current_skill_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_current_skill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_get_current_skill_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.get_current_skill(bl); + } + if( HPMHooks.count.HP_battle_get_current_skill_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_current_skill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_get_current_skill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_battle_check_undead(int race, int element) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_check_undead_pre ) { + int (*preHookFunc) (int *race, int *element); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_check_undead_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_check_undead_pre[hIndex].func; + retVal___ = preHookFunc(&race, &element); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.check_undead(race, element); + } + if( HPMHooks.count.HP_battle_check_undead_post ) { + int (*postHookFunc) (int retVal___, int *race, int *element); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_check_undead_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_check_undead_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &race, &element); + } + } + return retVal___; +} +int HP_battle_check_target(struct block_list *src, struct block_list *target, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_check_target_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *target, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_check_target_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_check_target_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.check_target(src, target, flag); + } + if( HPMHooks.count.HP_battle_check_target_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_check_target_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_check_target_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &flag); + } + } + return retVal___; +} +bool HP_battle_check_range(struct block_list *src, struct block_list *bl, int range) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_battle_check_range_pre ) { + bool (*preHookFunc) (struct block_list *src, struct block_list *bl, int *range); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_check_range_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_check_range_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &range); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.check_range(src, bl, range); + } + if( HPMHooks.count.HP_battle_check_range_post ) { + bool (*postHookFunc) (bool retVal___, struct block_list *src, struct block_list *bl, int *range); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_check_range_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_check_range_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &range); + } + } + return retVal___; +} +void HP_battle_consume_ammo(struct map_session_data *sd, int skill_id, int lv) { + int hIndex = 0; + if( HPMHooks.count.HP_battle_consume_ammo_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *skill_id, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_consume_ammo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_consume_ammo_pre[hIndex].func; + preHookFunc(sd, &skill_id, &lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.battle.consume_ammo(sd, skill_id, lv); + } + if( HPMHooks.count.HP_battle_consume_ammo_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *skill_id, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_consume_ammo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_consume_ammo_post[hIndex].func; + postHookFunc(sd, &skill_id, &lv); + } + } + return; +} +int HP_battle_get_targeted_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_get_targeted_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_targeted_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_battle_get_targeted_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.battle.get_targeted_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_battle_get_targeted_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_targeted_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_battle_get_targeted_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_battle_get_enemy_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_get_enemy_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_enemy_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_battle_get_enemy_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.battle.get_enemy_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_battle_get_enemy_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_enemy_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_battle_get_enemy_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_battle_get_enemy_area_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_get_enemy_area_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_enemy_area_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_battle_get_enemy_area_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.battle.get_enemy_area_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_battle_get_enemy_area_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_enemy_area_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_battle_get_enemy_area_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_battle_delay_damage_sub(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_delay_damage_sub_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_delay_damage_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_delay_damage_sub_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.delay_damage_sub(tid, tick, id, data); + } + if( HPMHooks.count.HP_battle_delay_damage_sub_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_delay_damage_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_delay_damage_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_battle_blewcount_bonus(struct map_session_data *sd, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_blewcount_bonus_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_blewcount_bonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_blewcount_bonus_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.blewcount_bonus(sd, skill_id); + } + if( HPMHooks.count.HP_battle_blewcount_bonus_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_blewcount_bonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_blewcount_bonus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id); + } + } + return retVal___; +} +int HP_battle_range_type(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_range_type_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_range_type_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_range_type_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.range_type(src, target, skill_id, skill_lv); + } + if( HPMHooks.count.HP_battle_range_type_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_range_type_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_range_type_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &skill_id, &skill_lv); + } + } + return retVal___; +} +int64 HP_battle_calc_base_damage(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int nk, bool n_ele, short s_ele, short s_ele_, int type, int flag, int flag2) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_base_damage_pre ) { + int64 (*preHookFunc) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int *nk, bool *n_ele, short *s_ele, short *s_ele_, int *type, int *flag, int *flag2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_base_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_base_damage_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &skill_id, &skill_lv, &nk, &n_ele, &s_ele, &s_ele_, &type, &flag, &flag2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_base_damage(src, bl, skill_id, skill_lv, nk, n_ele, s_ele, s_ele_, type, flag, flag2); + } + if( HPMHooks.count.HP_battle_calc_base_damage_post ) { + int64 (*postHookFunc) (int64 retVal___, struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int *nk, bool *n_ele, short *s_ele, short *s_ele_, int *type, int *flag, int *flag2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_base_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_base_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &skill_id, &skill_lv, &nk, &n_ele, &s_ele, &s_ele_, &type, &flag, &flag2); + } + } + return retVal___; +} +int64 HP_battle_calc_base_damage2(struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_calc_base_damage2_pre ) { + int64 (*preHookFunc) (struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short *t_size, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_base_damage2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_base_damage2_pre[hIndex].func; + retVal___ = preHookFunc(st, wa, sc, &t_size, sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_base_damage2(st, wa, sc, t_size, sd, flag); + } + if( HPMHooks.count.HP_battle_calc_base_damage2_post ) { + int64 (*postHookFunc) (int64 retVal___, struct status_data *st, struct weapon_atk *wa, struct status_change *sc, unsigned short *t_size, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_base_damage2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_base_damage2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st, wa, sc, &t_size, sd, &flag); + } + } + return retVal___; +} +struct Damage HP_battle_calc_misc_attack(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int mflag) { + int hIndex = 0; + struct Damage retVal___; + memset(&retVal___, '\0', sizeof(struct Damage)); + if( HPMHooks.count.HP_battle_calc_misc_attack_pre ) { + struct Damage (*preHookFunc) (struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *mflag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_misc_attack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_misc_attack_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &skill_id, &skill_lv, &mflag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_misc_attack(src, target, skill_id, skill_lv, mflag); + } + if( HPMHooks.count.HP_battle_calc_misc_attack_post ) { + struct Damage (*postHookFunc) (struct Damage retVal___, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *mflag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_misc_attack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_misc_attack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &skill_id, &skill_lv, &mflag); + } + } + return retVal___; +} +struct Damage HP_battle_calc_magic_attack(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, int mflag) { + int hIndex = 0; + struct Damage retVal___; + memset(&retVal___, '\0', sizeof(struct Damage)); + if( HPMHooks.count.HP_battle_calc_magic_attack_pre ) { + struct Damage (*preHookFunc) (struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *mflag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_magic_attack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_magic_attack_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &skill_id, &skill_lv, &mflag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_magic_attack(src, target, skill_id, skill_lv, mflag); + } + if( HPMHooks.count.HP_battle_calc_magic_attack_post ) { + struct Damage (*postHookFunc) (struct Damage retVal___, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, int *mflag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_magic_attack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_magic_attack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &skill_id, &skill_lv, &mflag); + } + } + return retVal___; +} +int HP_battle_adjust_skill_damage(int m, unsigned short skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_adjust_skill_damage_pre ) { + int (*preHookFunc) (int *m, unsigned short *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_adjust_skill_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_adjust_skill_damage_pre[hIndex].func; + retVal___ = preHookFunc(&m, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.adjust_skill_damage(m, skill_id); + } + if( HPMHooks.count.HP_battle_adjust_skill_damage_post ) { + int (*postHookFunc) (int retVal___, int *m, unsigned short *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_adjust_skill_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_adjust_skill_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, &skill_id); + } + } + return retVal___; +} +int64 HP_battle_add_mastery(struct map_session_data *sd, struct block_list *target, int64 dmg, int type) { + int hIndex = 0; + int64 retVal___; + memset(&retVal___, '\0', sizeof(int64)); + if( HPMHooks.count.HP_battle_add_mastery_pre ) { + int64 (*preHookFunc) (struct map_session_data *sd, struct block_list *target, int64 *dmg, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_add_mastery_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_add_mastery_pre[hIndex].func; + retVal___ = preHookFunc(sd, target, &dmg, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.add_mastery(sd, target, dmg, type); + } + if( HPMHooks.count.HP_battle_add_mastery_post ) { + int64 (*postHookFunc) (int64 retVal___, struct map_session_data *sd, struct block_list *target, int64 *dmg, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_add_mastery_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_add_mastery_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, target, &dmg, &type); + } + } + return retVal___; +} +int HP_battle_calc_drain(int64 damage, int rate, int per) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_calc_drain_pre ) { + int (*preHookFunc) (int64 *damage, int *rate, int *per); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_drain_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_drain_pre[hIndex].func; + retVal___ = preHookFunc(&damage, &rate, &per); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_drain(damage, rate, per); + } + if( HPMHooks.count.HP_battle_calc_drain_post ) { + int (*postHookFunc) (int retVal___, int64 *damage, int *rate, int *per); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_drain_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_drain_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &damage, &rate, &per); + } + } + return retVal___; +} +int HP_battle_config_read(const char *cfgName) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_config_read_pre ) { + int (*preHookFunc) (const char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_config_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_config_read_pre[hIndex].func; + retVal___ = preHookFunc(cfgName); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.config_read(cfgName); + } + if( HPMHooks.count.HP_battle_config_read_post ) { + int (*postHookFunc) (int retVal___, const char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_config_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_config_read_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cfgName); + } + } + return retVal___; +} +void HP_battle_config_set_defaults(void) { + int hIndex = 0; + if( HPMHooks.count.HP_battle_config_set_defaults_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_config_set_defaults_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_config_set_defaults_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.battle.config_set_defaults(); + } + if( HPMHooks.count.HP_battle_config_set_defaults_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_config_set_defaults_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_config_set_defaults_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_battle_config_set_value(const char *w1, const char *w2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_config_set_value_pre ) { + int (*preHookFunc) (const char *w1, const char *w2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_config_set_value_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_config_set_value_pre[hIndex].func; + retVal___ = preHookFunc(w1, w2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.config_set_value(w1, w2); + } + if( HPMHooks.count.HP_battle_config_set_value_post ) { + int (*postHookFunc) (int retVal___, const char *w1, const char *w2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_config_set_value_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_config_set_value_post[hIndex].func; + retVal___ = postHookFunc(retVal___, w1, w2); + } + } + return retVal___; +} +int HP_battle_config_get_value(const char *w1) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_config_get_value_pre ) { + int (*preHookFunc) (const char *w1); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_config_get_value_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_config_get_value_pre[hIndex].func; + retVal___ = preHookFunc(w1); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.config_get_value(w1); + } + if( HPMHooks.count.HP_battle_config_get_value_post ) { + int (*postHookFunc) (int retVal___, const char *w1); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_config_get_value_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_config_get_value_post[hIndex].func; + retVal___ = postHookFunc(retVal___, w1); + } + } + return retVal___; +} +void HP_battle_config_adjust(void) { + int hIndex = 0; + if( HPMHooks.count.HP_battle_config_adjust_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_config_adjust_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_config_adjust_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.battle.config_adjust(); + } + if( HPMHooks.count.HP_battle_config_adjust_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_config_adjust_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_config_adjust_post[hIndex].func; + postHookFunc(); + } + } + return; +} +struct block_list* HP_battle_get_enemy_area(struct block_list *src, int x, int y, int range, int type, int ignore_id) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_battle_get_enemy_area_pre ) { + struct block_list* (*preHookFunc) (struct block_list *src, int *x, int *y, int *range, int *type, int *ignore_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_enemy_area_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_get_enemy_area_pre[hIndex].func; + retVal___ = preHookFunc(src, &x, &y, &range, &type, &ignore_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.get_enemy_area(src, x, y, range, type, ignore_id); + } + if( HPMHooks.count.HP_battle_get_enemy_area_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct block_list *src, int *x, int *y, int *range, int *type, int *ignore_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_get_enemy_area_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_get_enemy_area_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &x, &y, &range, &type, &ignore_id); + } + } + return retVal___; +} +int HP_battle_damage_area(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_battle_damage_area_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_damage_area_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_battle_damage_area_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.battle.damage_area(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_battle_damage_area_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_damage_area_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_battle_damage_area_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +/* bg */ +void HP_bg_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_bg_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.bg.init(); + } + if( HPMHooks.count.HP_bg_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_bg_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_bg_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.bg.final(); + } + if( HPMHooks.count.HP_bg_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +struct bg_arena* HP_bg_name2arena(char *name) { + int hIndex = 0; + struct bg_arena* retVal___ = NULL; + if( HPMHooks.count.HP_bg_name2arena_pre ) { + struct bg_arena* (*preHookFunc) (char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_name2arena_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_name2arena_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.name2arena(name); + } + if( HPMHooks.count.HP_bg_name2arena_post ) { + struct bg_arena* (*postHookFunc) (struct bg_arena* retVal___, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_name2arena_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_name2arena_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +void HP_bg_queue_add(struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types type) { + int hIndex = 0; + if( HPMHooks.count.HP_bg_queue_add_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_queue_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_queue_add_pre[hIndex].func; + preHookFunc(sd, arena, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.bg.queue_add(sd, arena, type); + } + if( HPMHooks.count.HP_bg_queue_add_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_queue_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_queue_add_post[hIndex].func; + postHookFunc(sd, arena, &type); + } + } + return; +} +enum BATTLEGROUNDS_QUEUE_ACK HP_bg_can_queue(struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types type) { + int hIndex = 0; + enum BATTLEGROUNDS_QUEUE_ACK retVal___; + memset(&retVal___, '\0', sizeof(enum BATTLEGROUNDS_QUEUE_ACK)); + if( HPMHooks.count.HP_bg_can_queue_pre ) { + enum BATTLEGROUNDS_QUEUE_ACK (*preHookFunc) (struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_can_queue_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_can_queue_pre[hIndex].func; + retVal___ = preHookFunc(sd, arena, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.can_queue(sd, arena, type); + } + if( HPMHooks.count.HP_bg_can_queue_post ) { + enum BATTLEGROUNDS_QUEUE_ACK (*postHookFunc) (enum BATTLEGROUNDS_QUEUE_ACK retVal___, struct map_session_data *sd, struct bg_arena *arena, enum bg_queue_types *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_can_queue_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_can_queue_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, arena, &type); + } + } + return retVal___; +} +int HP_bg_id2pos(int queue_id, int account_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_id2pos_pre ) { + int (*preHookFunc) (int *queue_id, int *account_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_id2pos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_id2pos_pre[hIndex].func; + retVal___ = preHookFunc(&queue_id, &account_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.id2pos(queue_id, account_id); + } + if( HPMHooks.count.HP_bg_id2pos_post ) { + int (*postHookFunc) (int retVal___, int *queue_id, int *account_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_id2pos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_id2pos_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &queue_id, &account_id); + } + } + return retVal___; +} +void HP_bg_queue_pc_cleanup(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_bg_queue_pc_cleanup_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_queue_pc_cleanup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_queue_pc_cleanup_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.bg.queue_pc_cleanup(sd); + } + if( HPMHooks.count.HP_bg_queue_pc_cleanup_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_queue_pc_cleanup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_queue_pc_cleanup_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_bg_begin(struct bg_arena *arena) { + int hIndex = 0; + if( HPMHooks.count.HP_bg_begin_pre ) { + void (*preHookFunc) (struct bg_arena *arena); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_begin_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_begin_pre[hIndex].func; + preHookFunc(arena); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.bg.begin(arena); + } + if( HPMHooks.count.HP_bg_begin_post ) { + void (*postHookFunc) (struct bg_arena *arena); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_begin_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_begin_post[hIndex].func; + postHookFunc(arena); + } + } + return; +} +int HP_bg_begin_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_begin_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_begin_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_begin_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.begin_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_bg_begin_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_begin_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_begin_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_bg_queue_pregame(struct bg_arena *arena) { + int hIndex = 0; + if( HPMHooks.count.HP_bg_queue_pregame_pre ) { + void (*preHookFunc) (struct bg_arena *arena); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_queue_pregame_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_queue_pregame_pre[hIndex].func; + preHookFunc(arena); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.bg.queue_pregame(arena); + } + if( HPMHooks.count.HP_bg_queue_pregame_post ) { + void (*postHookFunc) (struct bg_arena *arena); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_queue_pregame_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_queue_pregame_post[hIndex].func; + postHookFunc(arena); + } + } + return; +} +int HP_bg_fillup_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_fillup_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_fillup_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_fillup_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.fillup_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_bg_fillup_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_fillup_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_fillup_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_bg_queue_ready_ack(struct bg_arena *arena, struct map_session_data *sd, bool response) { + int hIndex = 0; + if( HPMHooks.count.HP_bg_queue_ready_ack_pre ) { + void (*preHookFunc) (struct bg_arena *arena, struct map_session_data *sd, bool *response); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_queue_ready_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_queue_ready_ack_pre[hIndex].func; + preHookFunc(arena, sd, &response); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.bg.queue_ready_ack(arena, sd, response); + } + if( HPMHooks.count.HP_bg_queue_ready_ack_post ) { + void (*postHookFunc) (struct bg_arena *arena, struct map_session_data *sd, bool *response); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_queue_ready_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_queue_ready_ack_post[hIndex].func; + postHookFunc(arena, sd, &response); + } + } + return; +} +void HP_bg_match_over(struct bg_arena *arena, bool canceled) { + int hIndex = 0; + if( HPMHooks.count.HP_bg_match_over_pre ) { + void (*preHookFunc) (struct bg_arena *arena, bool *canceled); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_match_over_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_match_over_pre[hIndex].func; + preHookFunc(arena, &canceled); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.bg.match_over(arena, canceled); + } + if( HPMHooks.count.HP_bg_match_over_post ) { + void (*postHookFunc) (struct bg_arena *arena, bool *canceled); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_match_over_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_match_over_post[hIndex].func; + postHookFunc(arena, &canceled); + } + } + return; +} +void HP_bg_queue_check(struct bg_arena *arena) { + int hIndex = 0; + if( HPMHooks.count.HP_bg_queue_check_pre ) { + void (*preHookFunc) (struct bg_arena *arena); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_queue_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_queue_check_pre[hIndex].func; + preHookFunc(arena); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.bg.queue_check(arena); + } + if( HPMHooks.count.HP_bg_queue_check_post ) { + void (*postHookFunc) (struct bg_arena *arena); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_queue_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_queue_check_post[hIndex].func; + postHookFunc(arena); + } + } + return; +} +struct battleground_data* HP_bg_team_search(int bg_id) { + int hIndex = 0; + struct battleground_data* retVal___ = NULL; + if( HPMHooks.count.HP_bg_team_search_pre ) { + struct battleground_data* (*preHookFunc) (int *bg_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_team_search_pre[hIndex].func; + retVal___ = preHookFunc(&bg_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.team_search(bg_id); + } + if( HPMHooks.count.HP_bg_team_search_post ) { + struct battleground_data* (*postHookFunc) (struct battleground_data* retVal___, int *bg_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_team_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &bg_id); + } + } + return retVal___; +} +struct map_session_data* HP_bg_getavailablesd(struct battleground_data *bgd) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_bg_getavailablesd_pre ) { + struct map_session_data* (*preHookFunc) (struct battleground_data *bgd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_getavailablesd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_getavailablesd_pre[hIndex].func; + retVal___ = preHookFunc(bgd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.getavailablesd(bgd); + } + if( HPMHooks.count.HP_bg_getavailablesd_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___, struct battleground_data *bgd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_getavailablesd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_getavailablesd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bgd); + } + } + return retVal___; +} +int HP_bg_team_delete(int bg_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_team_delete_pre ) { + int (*preHookFunc) (int *bg_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_team_delete_pre[hIndex].func; + retVal___ = preHookFunc(&bg_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.team_delete(bg_id); + } + if( HPMHooks.count.HP_bg_team_delete_post ) { + int (*postHookFunc) (int retVal___, int *bg_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_team_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &bg_id); + } + } + return retVal___; +} +int HP_bg_team_warp(int bg_id, unsigned short mapindex, short x, short y) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_team_warp_pre ) { + int (*preHookFunc) (int *bg_id, unsigned short *mapindex, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_warp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_team_warp_pre[hIndex].func; + retVal___ = preHookFunc(&bg_id, &mapindex, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.team_warp(bg_id, mapindex, x, y); + } + if( HPMHooks.count.HP_bg_team_warp_post ) { + int (*postHookFunc) (int retVal___, int *bg_id, unsigned short *mapindex, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_warp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_team_warp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &bg_id, &mapindex, &x, &y); + } + } + return retVal___; +} +int HP_bg_send_dot_remove(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_send_dot_remove_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_send_dot_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_send_dot_remove_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.send_dot_remove(sd); + } + if( HPMHooks.count.HP_bg_send_dot_remove_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_send_dot_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_send_dot_remove_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_bg_team_join(int bg_id, struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_team_join_pre ) { + int (*preHookFunc) (int *bg_id, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_join_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_team_join_pre[hIndex].func; + retVal___ = preHookFunc(&bg_id, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.team_join(bg_id, sd); + } + if( HPMHooks.count.HP_bg_team_join_post ) { + int (*postHookFunc) (int retVal___, int *bg_id, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_join_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_team_join_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &bg_id, sd); + } + } + return retVal___; +} +int HP_bg_team_leave(struct map_session_data *sd, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_team_leave_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_leave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_team_leave_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.team_leave(sd, flag); + } + if( HPMHooks.count.HP_bg_team_leave_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_leave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_team_leave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +int HP_bg_member_respawn(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_member_respawn_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_member_respawn_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_member_respawn_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.member_respawn(sd); + } + if( HPMHooks.count.HP_bg_member_respawn_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_member_respawn_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_member_respawn_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_bg_create(unsigned short mapindex, short rx, short ry, const char *ev, const char *dev) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_create_pre ) { + int (*preHookFunc) (unsigned short *mapindex, short *rx, short *ry, const char *ev, const char *dev); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_create_pre[hIndex].func; + retVal___ = preHookFunc(&mapindex, &rx, &ry, ev, dev); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.create(mapindex, rx, ry, ev, dev); + } + if( HPMHooks.count.HP_bg_create_post ) { + int (*postHookFunc) (int retVal___, unsigned short *mapindex, short *rx, short *ry, const char *ev, const char *dev); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &mapindex, &rx, &ry, ev, dev); + } + } + return retVal___; +} +int HP_bg_team_get_id(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_team_get_id_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_get_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_team_get_id_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.team_get_id(bl); + } + if( HPMHooks.count.HP_bg_team_get_id_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_team_get_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_team_get_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_bg_send_message(struct map_session_data *sd, const char *mes, int len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_send_message_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_send_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_send_message_pre[hIndex].func; + retVal___ = preHookFunc(sd, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.send_message(sd, mes, len); + } + if( HPMHooks.count.HP_bg_send_message_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_send_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_send_message_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, mes, &len); + } + } + return retVal___; +} +int HP_bg_send_xy_timer_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_send_xy_timer_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_send_xy_timer_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_bg_send_xy_timer_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.bg.send_xy_timer_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_bg_send_xy_timer_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_send_xy_timer_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_bg_send_xy_timer_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_bg_send_xy_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_bg_send_xy_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_send_xy_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_send_xy_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.bg.send_xy_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_bg_send_xy_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_send_xy_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_send_xy_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_bg_config_read(void) { + int hIndex = 0; + if( HPMHooks.count.HP_bg_config_read_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_config_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_bg_config_read_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.bg.config_read(); + } + if( HPMHooks.count.HP_bg_config_read_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_bg_config_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_bg_config_read_post[hIndex].func; + postHookFunc(); + } + } + return; +} +/* buyingstore */ +bool HP_buyingstore_setup(struct map_session_data *sd, unsigned char slots) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_buyingstore_setup_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, unsigned char *slots); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_setup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_buyingstore_setup_pre[hIndex].func; + retVal___ = preHookFunc(sd, &slots); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.buyingstore.setup(sd, slots); + } + if( HPMHooks.count.HP_buyingstore_setup_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, unsigned char *slots); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_setup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_buyingstore_setup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &slots); + } + } + return retVal___; +} +void HP_buyingstore_create(struct map_session_data *sd, int zenylimit, unsigned char result, const char *storename, const uint8 *itemlist, unsigned int count) { + int hIndex = 0; + if( HPMHooks.count.HP_buyingstore_create_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *zenylimit, unsigned char *result, const char *storename, const uint8 *itemlist, unsigned int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_buyingstore_create_pre[hIndex].func; + preHookFunc(sd, &zenylimit, &result, storename, itemlist, &count); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.buyingstore.create(sd, zenylimit, result, storename, itemlist, count); + } + if( HPMHooks.count.HP_buyingstore_create_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *zenylimit, unsigned char *result, const char *storename, const uint8 *itemlist, unsigned int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_buyingstore_create_post[hIndex].func; + postHookFunc(sd, &zenylimit, &result, storename, itemlist, &count); + } + } + return; +} +void HP_buyingstore_close(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_buyingstore_close_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_buyingstore_close_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.buyingstore.close(sd); + } + if( HPMHooks.count.HP_buyingstore_close_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_buyingstore_close_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_buyingstore_open(struct map_session_data *sd, int account_id) { + int hIndex = 0; + if( HPMHooks.count.HP_buyingstore_open_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *account_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_open_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_buyingstore_open_pre[hIndex].func; + preHookFunc(sd, &account_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.buyingstore.open(sd, account_id); + } + if( HPMHooks.count.HP_buyingstore_open_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *account_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_open_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_buyingstore_open_post[hIndex].func; + postHookFunc(sd, &account_id); + } + } + return; +} +void HP_buyingstore_trade(struct map_session_data *sd, int account_id, unsigned int buyer_id, const uint8 *itemlist, unsigned int count) { + int hIndex = 0; + if( HPMHooks.count.HP_buyingstore_trade_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *account_id, unsigned int *buyer_id, const uint8 *itemlist, unsigned int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_trade_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_buyingstore_trade_pre[hIndex].func; + preHookFunc(sd, &account_id, &buyer_id, itemlist, &count); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.buyingstore.trade(sd, account_id, buyer_id, itemlist, count); + } + if( HPMHooks.count.HP_buyingstore_trade_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *account_id, unsigned int *buyer_id, const uint8 *itemlist, unsigned int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_trade_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_buyingstore_trade_post[hIndex].func; + postHookFunc(sd, &account_id, &buyer_id, itemlist, &count); + } + } + return; +} +bool HP_buyingstore_search(struct map_session_data *sd, unsigned short nameid) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_buyingstore_search_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, unsigned short *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_buyingstore_search_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.buyingstore.search(sd, nameid); + } + if( HPMHooks.count.HP_buyingstore_search_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, unsigned short *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_buyingstore_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid); + } + } + return retVal___; +} +bool HP_buyingstore_searchall(struct map_session_data *sd, const struct s_search_store_search *s) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_buyingstore_searchall_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, const struct s_search_store_search *s); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_searchall_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_buyingstore_searchall_pre[hIndex].func; + retVal___ = preHookFunc(sd, s); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.buyingstore.searchall(sd, s); + } + if( HPMHooks.count.HP_buyingstore_searchall_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, const struct s_search_store_search *s); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_searchall_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_buyingstore_searchall_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, s); + } + } + return retVal___; +} +unsigned int HP_buyingstore_getuid(void) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_buyingstore_getuid_pre ) { + unsigned int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_getuid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_buyingstore_getuid_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.buyingstore.getuid(); + } + if( HPMHooks.count.HP_buyingstore_getuid_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_buyingstore_getuid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_buyingstore_getuid_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +/* chat */ +int HP_chat_create_pc_chat(struct map_session_data *sd, const char *title, const char *pass, int limit, bool pub) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_create_pc_chat_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *title, const char *pass, int *limit, bool *pub); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_create_pc_chat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_create_pc_chat_pre[hIndex].func; + retVal___ = preHookFunc(sd, title, pass, &limit, &pub); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.create_pc_chat(sd, title, pass, limit, pub); + } + if( HPMHooks.count.HP_chat_create_pc_chat_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *title, const char *pass, int *limit, bool *pub); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_create_pc_chat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_create_pc_chat_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, title, pass, &limit, &pub); + } + } + return retVal___; +} +int HP_chat_join(struct map_session_data *sd, int chatid, const char *pass) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_join_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *chatid, const char *pass); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_join_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_join_pre[hIndex].func; + retVal___ = preHookFunc(sd, &chatid, pass); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.join(sd, chatid, pass); + } + if( HPMHooks.count.HP_chat_join_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *chatid, const char *pass); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_join_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_join_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &chatid, pass); + } + } + return retVal___; +} +int HP_chat_leave(struct map_session_data *sd, bool kicked) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_leave_pre ) { + int (*preHookFunc) (struct map_session_data *sd, bool *kicked); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_leave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_leave_pre[hIndex].func; + retVal___ = preHookFunc(sd, &kicked); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.leave(sd, kicked); + } + if( HPMHooks.count.HP_chat_leave_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, bool *kicked); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_leave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_leave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &kicked); + } + } + return retVal___; +} +int HP_chat_change_owner(struct map_session_data *sd, const char *nextownername) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_change_owner_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *nextownername); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_change_owner_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_change_owner_pre[hIndex].func; + retVal___ = preHookFunc(sd, nextownername); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.change_owner(sd, nextownername); + } + if( HPMHooks.count.HP_chat_change_owner_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *nextownername); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_change_owner_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_change_owner_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, nextownername); + } + } + return retVal___; +} +int HP_chat_change_status(struct map_session_data *sd, const char *title, const char *pass, int limit, bool pub) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_change_status_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *title, const char *pass, int *limit, bool *pub); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_change_status_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_change_status_pre[hIndex].func; + retVal___ = preHookFunc(sd, title, pass, &limit, &pub); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.change_status(sd, title, pass, limit, pub); + } + if( HPMHooks.count.HP_chat_change_status_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *title, const char *pass, int *limit, bool *pub); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_change_status_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_change_status_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, title, pass, &limit, &pub); + } + } + return retVal___; +} +int HP_chat_kick(struct map_session_data *sd, const char *kickusername) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_kick_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *kickusername); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_kick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_kick_pre[hIndex].func; + retVal___ = preHookFunc(sd, kickusername); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.kick(sd, kickusername); + } + if( HPMHooks.count.HP_chat_kick_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *kickusername); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_kick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_kick_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, kickusername); + } + } + return retVal___; +} +int HP_chat_create_npc_chat(struct npc_data *nd, const char *title, int limit, bool pub, int trigger, const char *ev, int zeny, int minLvl, int maxLvl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_create_npc_chat_pre ) { + int (*preHookFunc) (struct npc_data *nd, const char *title, int *limit, bool *pub, int *trigger, const char *ev, int *zeny, int *minLvl, int *maxLvl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_create_npc_chat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_create_npc_chat_pre[hIndex].func; + retVal___ = preHookFunc(nd, title, &limit, &pub, &trigger, ev, &zeny, &minLvl, &maxLvl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.create_npc_chat(nd, title, limit, pub, trigger, ev, zeny, minLvl, maxLvl); + } + if( HPMHooks.count.HP_chat_create_npc_chat_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd, const char *title, int *limit, bool *pub, int *trigger, const char *ev, int *zeny, int *minLvl, int *maxLvl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_create_npc_chat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_create_npc_chat_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd, title, &limit, &pub, &trigger, ev, &zeny, &minLvl, &maxLvl); + } + } + return retVal___; +} +int HP_chat_delete_npc_chat(struct npc_data *nd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_delete_npc_chat_pre ) { + int (*preHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_delete_npc_chat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_delete_npc_chat_pre[hIndex].func; + retVal___ = preHookFunc(nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.delete_npc_chat(nd); + } + if( HPMHooks.count.HP_chat_delete_npc_chat_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_delete_npc_chat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_delete_npc_chat_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd); + } + } + return retVal___; +} +int HP_chat_enable_event(struct chat_data *cd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_enable_event_pre ) { + int (*preHookFunc) (struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_enable_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_enable_event_pre[hIndex].func; + retVal___ = preHookFunc(cd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.enable_event(cd); + } + if( HPMHooks.count.HP_chat_enable_event_post ) { + int (*postHookFunc) (int retVal___, struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_enable_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_enable_event_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cd); + } + } + return retVal___; +} +int HP_chat_disable_event(struct chat_data *cd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_disable_event_pre ) { + int (*preHookFunc) (struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_disable_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_disable_event_pre[hIndex].func; + retVal___ = preHookFunc(cd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.disable_event(cd); + } + if( HPMHooks.count.HP_chat_disable_event_post ) { + int (*postHookFunc) (int retVal___, struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_disable_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_disable_event_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cd); + } + } + return retVal___; +} +int HP_chat_npc_kick_all(struct chat_data *cd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_npc_kick_all_pre ) { + int (*preHookFunc) (struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_npc_kick_all_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_npc_kick_all_pre[hIndex].func; + retVal___ = preHookFunc(cd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.npc_kick_all(cd); + } + if( HPMHooks.count.HP_chat_npc_kick_all_post ) { + int (*postHookFunc) (int retVal___, struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_npc_kick_all_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_npc_kick_all_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cd); + } + } + return retVal___; +} +int HP_chat_trigger_event(struct chat_data *cd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chat_trigger_event_pre ) { + int (*preHookFunc) (struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_trigger_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_trigger_event_pre[hIndex].func; + retVal___ = preHookFunc(cd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.trigger_event(cd); + } + if( HPMHooks.count.HP_chat_trigger_event_post ) { + int (*postHookFunc) (int retVal___, struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_trigger_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_trigger_event_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cd); + } + } + return retVal___; +} +struct chat_data* HP_chat_create(struct block_list *bl, const char *title, const char *pass, int limit, bool pub, int trigger, const char *ev, int zeny, int minLvl, int maxLvl) { + int hIndex = 0; + struct chat_data* retVal___ = NULL; + if( HPMHooks.count.HP_chat_create_pre ) { + struct chat_data* (*preHookFunc) (struct block_list *bl, const char *title, const char *pass, int *limit, bool *pub, int *trigger, const char *ev, int *zeny, int *minLvl, int *maxLvl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chat_create_pre[hIndex].func; + retVal___ = preHookFunc(bl, title, pass, &limit, &pub, &trigger, ev, &zeny, &minLvl, &maxLvl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chat.create(bl, title, pass, limit, pub, trigger, ev, zeny, minLvl, maxLvl); + } + if( HPMHooks.count.HP_chat_create_post ) { + struct chat_data* (*postHookFunc) (struct chat_data* retVal___, struct block_list *bl, const char *title, const char *pass, int *limit, bool *pub, int *trigger, const char *ev, int *zeny, int *minLvl, int *maxLvl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chat_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chat_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, title, pass, &limit, &pub, &trigger, ev, &zeny, &minLvl, &maxLvl); + } + } + return retVal___; +} +/* chrif */ +int HP_chrif_final(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_final_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_final_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.final(); + } + if( HPMHooks.count.HP_chrif_final_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_chrif_init(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_init_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.init(); + } + if( HPMHooks.count.HP_chrif_init_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_chrif_setuserid(char *id) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_setuserid_pre ) { + void (*preHookFunc) (char *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_setuserid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_setuserid_pre[hIndex].func; + preHookFunc(id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.setuserid(id); + } + if( HPMHooks.count.HP_chrif_setuserid_post ) { + void (*postHookFunc) (char *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_setuserid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_setuserid_post[hIndex].func; + postHookFunc(id); + } + } + return; +} +void HP_chrif_setpasswd(char *pwd) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_setpasswd_pre ) { + void (*preHookFunc) (char *pwd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_setpasswd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_setpasswd_pre[hIndex].func; + preHookFunc(pwd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.setpasswd(pwd); + } + if( HPMHooks.count.HP_chrif_setpasswd_post ) { + void (*postHookFunc) (char *pwd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_setpasswd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_setpasswd_post[hIndex].func; + postHookFunc(pwd); + } + } + return; +} +void HP_chrif_checkdefaultlogin(void) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_checkdefaultlogin_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_checkdefaultlogin_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_checkdefaultlogin_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.checkdefaultlogin(); + } + if( HPMHooks.count.HP_chrif_checkdefaultlogin_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_checkdefaultlogin_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_checkdefaultlogin_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_chrif_setip(const char *ip) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_setip_pre ) { + int (*preHookFunc) (const char *ip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_setip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_setip_pre[hIndex].func; + retVal___ = preHookFunc(ip); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.setip(ip); + } + if( HPMHooks.count.HP_chrif_setip_post ) { + int (*postHookFunc) (int retVal___, const char *ip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_setip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_setip_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ip); + } + } + return retVal___; +} +void HP_chrif_setport(uint16 port) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_setport_pre ) { + void (*preHookFunc) (uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_setport_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_setport_pre[hIndex].func; + preHookFunc(&port); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.setport(port); + } + if( HPMHooks.count.HP_chrif_setport_post ) { + void (*postHookFunc) (uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_setport_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_setport_post[hIndex].func; + postHookFunc(&port); + } + } + return; +} +int HP_chrif_isconnected(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_isconnected_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_isconnected_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_isconnected_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.isconnected(); + } + if( HPMHooks.count.HP_chrif_isconnected_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_isconnected_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_isconnected_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_chrif_check_shutdown(void) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_check_shutdown_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_check_shutdown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_check_shutdown_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.check_shutdown(); + } + if( HPMHooks.count.HP_chrif_check_shutdown_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_check_shutdown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_check_shutdown_post[hIndex].func; + postHookFunc(); + } + } + return; +} +struct auth_node* HP_chrif_search(int account_id) { + int hIndex = 0; + struct auth_node* retVal___ = NULL; + if( HPMHooks.count.HP_chrif_search_pre ) { + struct auth_node* (*preHookFunc) (int *account_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_search_pre[hIndex].func; + retVal___ = preHookFunc(&account_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.search(account_id); + } + if( HPMHooks.count.HP_chrif_search_post ) { + struct auth_node* (*postHookFunc) (struct auth_node* retVal___, int *account_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id); + } + } + return retVal___; +} +struct auth_node* HP_chrif_auth_check(int account_id, int char_id, enum sd_state state) { + int hIndex = 0; + struct auth_node* retVal___ = NULL; + if( HPMHooks.count.HP_chrif_auth_check_pre ) { + struct auth_node* (*preHookFunc) (int *account_id, int *char_id, enum sd_state *state); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_auth_check_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &char_id, &state); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.auth_check(account_id, char_id, state); + } + if( HPMHooks.count.HP_chrif_auth_check_post ) { + struct auth_node* (*postHookFunc) (struct auth_node* retVal___, int *account_id, int *char_id, enum sd_state *state); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_auth_check_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &char_id, &state); + } + } + return retVal___; +} +bool HP_chrif_auth_delete(int account_id, int char_id, enum sd_state state) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_chrif_auth_delete_pre ) { + bool (*preHookFunc) (int *account_id, int *char_id, enum sd_state *state); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_auth_delete_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &char_id, &state); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.auth_delete(account_id, char_id, state); + } + if( HPMHooks.count.HP_chrif_auth_delete_post ) { + bool (*postHookFunc) (bool retVal___, int *account_id, int *char_id, enum sd_state *state); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_auth_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &char_id, &state); + } + } + return retVal___; +} +bool HP_chrif_auth_finished(struct map_session_data *sd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_chrif_auth_finished_pre ) { + bool (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_finished_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_auth_finished_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.auth_finished(sd); + } + if( HPMHooks.count.HP_chrif_auth_finished_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_finished_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_auth_finished_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +void HP_chrif_authreq(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_authreq_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_authreq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_authreq_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.authreq(sd); + } + if( HPMHooks.count.HP_chrif_authreq_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_authreq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_authreq_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_chrif_authok(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_authok_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_authok_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_authok_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.authok(fd); + } + if( HPMHooks.count.HP_chrif_authok_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_authok_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_authok_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +int HP_chrif_scdata_request(int account_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_scdata_request_pre ) { + int (*preHookFunc) (int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_scdata_request_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_scdata_request_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.scdata_request(account_id, char_id); + } + if( HPMHooks.count.HP_chrif_scdata_request_post ) { + int (*postHookFunc) (int retVal___, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_scdata_request_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_scdata_request_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &char_id); + } + } + return retVal___; +} +int HP_chrif_save(struct map_session_data *sd, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_save_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_save_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_save_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.save(sd, flag); + } + if( HPMHooks.count.HP_chrif_save_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_save_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_save_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +int HP_chrif_charselectreq(struct map_session_data *sd, uint32 s_ip) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_charselectreq_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint32 *s_ip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_charselectreq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_charselectreq_pre[hIndex].func; + retVal___ = preHookFunc(sd, &s_ip); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.charselectreq(sd, s_ip); + } + if( HPMHooks.count.HP_chrif_charselectreq_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint32 *s_ip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_charselectreq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_charselectreq_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &s_ip); + } + } + return retVal___; +} +int HP_chrif_changemapserver(struct map_session_data *sd, uint32 ip, uint16 port) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_changemapserver_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint32 *ip, uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_changemapserver_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_changemapserver_pre[hIndex].func; + retVal___ = preHookFunc(sd, &ip, &port); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.changemapserver(sd, ip, port); + } + if( HPMHooks.count.HP_chrif_changemapserver_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint32 *ip, uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_changemapserver_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_changemapserver_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &ip, &port); + } + } + return retVal___; +} +int HP_chrif_searchcharid(int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_searchcharid_pre ) { + int (*preHookFunc) (int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_searchcharid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_searchcharid_pre[hIndex].func; + retVal___ = preHookFunc(&char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.searchcharid(char_id); + } + if( HPMHooks.count.HP_chrif_searchcharid_post ) { + int (*postHookFunc) (int retVal___, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_searchcharid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_searchcharid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id); + } + } + return retVal___; +} +int HP_chrif_changeemail(int id, const char *actual_email, const char *new_email) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_changeemail_pre ) { + int (*preHookFunc) (int *id, const char *actual_email, const char *new_email); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_changeemail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_changeemail_pre[hIndex].func; + retVal___ = preHookFunc(&id, actual_email, new_email); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.changeemail(id, actual_email, new_email); + } + if( HPMHooks.count.HP_chrif_changeemail_post ) { + int (*postHookFunc) (int retVal___, int *id, const char *actual_email, const char *new_email); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_changeemail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_changeemail_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id, actual_email, new_email); + } + } + return retVal___; +} +int HP_chrif_char_ask_name(int acc, const char *character_name, unsigned short operation_type, int year, int month, int day, int hour, int minute, int second) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_char_ask_name_pre ) { + int (*preHookFunc) (int *acc, const char *character_name, unsigned short *operation_type, int *year, int *month, int *day, int *hour, int *minute, int *second); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_ask_name_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_char_ask_name_pre[hIndex].func; + retVal___ = preHookFunc(&acc, character_name, &operation_type, &year, &month, &day, &hour, &minute, &second); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.char_ask_name(acc, character_name, operation_type, year, month, day, hour, minute, second); + } + if( HPMHooks.count.HP_chrif_char_ask_name_post ) { + int (*postHookFunc) (int retVal___, int *acc, const char *character_name, unsigned short *operation_type, int *year, int *month, int *day, int *hour, int *minute, int *second); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_ask_name_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_char_ask_name_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &acc, character_name, &operation_type, &year, &month, &day, &hour, &minute, &second); + } + } + return retVal___; +} +int HP_chrif_updatefamelist(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_updatefamelist_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_updatefamelist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_updatefamelist_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.updatefamelist(sd); + } + if( HPMHooks.count.HP_chrif_updatefamelist_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_updatefamelist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_updatefamelist_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_chrif_buildfamelist(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_buildfamelist_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_buildfamelist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_buildfamelist_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.buildfamelist(); + } + if( HPMHooks.count.HP_chrif_buildfamelist_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_buildfamelist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_buildfamelist_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_chrif_save_scdata(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_save_scdata_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_save_scdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_save_scdata_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.save_scdata(sd); + } + if( HPMHooks.count.HP_chrif_save_scdata_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_save_scdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_save_scdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_chrif_ragsrvinfo(int base_rate, int job_rate, int drop_rate) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_ragsrvinfo_pre ) { + int (*preHookFunc) (int *base_rate, int *job_rate, int *drop_rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_ragsrvinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_ragsrvinfo_pre[hIndex].func; + retVal___ = preHookFunc(&base_rate, &job_rate, &drop_rate); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.ragsrvinfo(base_rate, job_rate, drop_rate); + } + if( HPMHooks.count.HP_chrif_ragsrvinfo_post ) { + int (*postHookFunc) (int retVal___, int *base_rate, int *job_rate, int *drop_rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_ragsrvinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_ragsrvinfo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &base_rate, &job_rate, &drop_rate); + } + } + return retVal___; +} +int HP_chrif_char_offline(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_char_offline_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_offline_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_char_offline_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.char_offline(sd); + } + if( HPMHooks.count.HP_chrif_char_offline_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_offline_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_char_offline_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_chrif_char_offline_nsd(int account_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_char_offline_nsd_pre ) { + int (*preHookFunc) (int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_offline_nsd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_char_offline_nsd_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.char_offline_nsd(account_id, char_id); + } + if( HPMHooks.count.HP_chrif_char_offline_nsd_post ) { + int (*postHookFunc) (int retVal___, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_offline_nsd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_char_offline_nsd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &char_id); + } + } + return retVal___; +} +int HP_chrif_char_reset_offline(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_char_reset_offline_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_reset_offline_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_char_reset_offline_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.char_reset_offline(); + } + if( HPMHooks.count.HP_chrif_char_reset_offline_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_reset_offline_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_char_reset_offline_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_chrif_send_users_tochar(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_send_users_tochar_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_send_users_tochar_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_send_users_tochar_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.send_users_tochar(); + } + if( HPMHooks.count.HP_chrif_send_users_tochar_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_send_users_tochar_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_send_users_tochar_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_chrif_char_online(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_char_online_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_online_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_char_online_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.char_online(sd); + } + if( HPMHooks.count.HP_chrif_char_online_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_online_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_char_online_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_chrif_changesex(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_changesex_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_changesex_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_changesex_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.changesex(sd); + } + if( HPMHooks.count.HP_chrif_changesex_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_changesex_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_changesex_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_chrif_divorce(int partner_id1, int partner_id2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_divorce_pre ) { + int (*preHookFunc) (int *partner_id1, int *partner_id2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_divorce_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_divorce_pre[hIndex].func; + retVal___ = preHookFunc(&partner_id1, &partner_id2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.divorce(partner_id1, partner_id2); + } + if( HPMHooks.count.HP_chrif_divorce_post ) { + int (*postHookFunc) (int retVal___, int *partner_id1, int *partner_id2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_divorce_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_divorce_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &partner_id1, &partner_id2); + } + } + return retVal___; +} +int HP_chrif_removefriend(int char_id, int friend_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_removefriend_pre ) { + int (*preHookFunc) (int *char_id, int *friend_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_removefriend_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_removefriend_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &friend_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.removefriend(char_id, friend_id); + } + if( HPMHooks.count.HP_chrif_removefriend_post ) { + int (*postHookFunc) (int retVal___, int *char_id, int *friend_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_removefriend_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_removefriend_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, &friend_id); + } + } + return retVal___; +} +void HP_chrif_send_report(char *buf, int len) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_send_report_pre ) { + void (*preHookFunc) (char *buf, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_send_report_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_send_report_pre[hIndex].func; + preHookFunc(buf, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.send_report(buf, len); + } + if( HPMHooks.count.HP_chrif_send_report_post ) { + void (*postHookFunc) (char *buf, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_send_report_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_send_report_post[hIndex].func; + postHookFunc(buf, &len); + } + } + return; +} +int HP_chrif_flush_fifo(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_flush_fifo_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_flush_fifo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_flush_fifo_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.flush_fifo(); + } + if( HPMHooks.count.HP_chrif_flush_fifo_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_flush_fifo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_flush_fifo_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_chrif_skillid2idx(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_skillid2idx_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_skillid2idx_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_skillid2idx_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.skillid2idx(fd); + } + if( HPMHooks.count.HP_chrif_skillid2idx_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_skillid2idx_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_skillid2idx_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +bool HP_chrif_sd_to_auth(TBL_PC *sd, enum sd_state state) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_chrif_sd_to_auth_pre ) { + bool (*preHookFunc) (TBL_PC *sd, enum sd_state *state); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_sd_to_auth_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_sd_to_auth_pre[hIndex].func; + retVal___ = preHookFunc(sd, &state); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.sd_to_auth(sd, state); + } + if( HPMHooks.count.HP_chrif_sd_to_auth_post ) { + bool (*postHookFunc) (bool retVal___, TBL_PC *sd, enum sd_state *state); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_sd_to_auth_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_sd_to_auth_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &state); + } + } + return retVal___; +} +int HP_chrif_check_connect_char_server(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_check_connect_char_server_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_check_connect_char_server_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_check_connect_char_server_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.check_connect_char_server(tid, tick, id, data); + } + if( HPMHooks.count.HP_chrif_check_connect_char_server_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_check_connect_char_server_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_check_connect_char_server_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +bool HP_chrif_auth_logout(TBL_PC *sd, enum sd_state state) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_chrif_auth_logout_pre ) { + bool (*preHookFunc) (TBL_PC *sd, enum sd_state *state); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_logout_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_auth_logout_pre[hIndex].func; + retVal___ = preHookFunc(sd, &state); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.auth_logout(sd, state); + } + if( HPMHooks.count.HP_chrif_auth_logout_post ) { + bool (*postHookFunc) (bool retVal___, TBL_PC *sd, enum sd_state *state); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_logout_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_auth_logout_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &state); + } + } + return retVal___; +} +void HP_chrif_save_ack(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_save_ack_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_save_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_save_ack_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.save_ack(fd); + } + if( HPMHooks.count.HP_chrif_save_ack_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_save_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_save_ack_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +int HP_chrif_reconnect(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_reconnect_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_reconnect_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_chrif_reconnect_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.chrif.reconnect(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_chrif_reconnect_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_reconnect_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_chrif_reconnect_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_chrif_auth_db_cleanup_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_auth_db_cleanup_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_db_cleanup_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_chrif_auth_db_cleanup_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.chrif.auth_db_cleanup_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_chrif_auth_db_cleanup_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_db_cleanup_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_chrif_auth_db_cleanup_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_chrif_char_ask_name_answer(int acc, const char *player_name, uint16 type, uint16 answer) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_char_ask_name_answer_pre ) { + void (*preHookFunc) (int *acc, const char *player_name, uint16 *type, uint16 *answer); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_ask_name_answer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_char_ask_name_answer_pre[hIndex].func; + preHookFunc(&acc, player_name, &type, &answer); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.char_ask_name_answer(acc, player_name, type, answer); + } + if( HPMHooks.count.HP_chrif_char_ask_name_answer_post ) { + void (*postHookFunc) (int *acc, const char *player_name, uint16 *type, uint16 *answer); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_char_ask_name_answer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_char_ask_name_answer_post[hIndex].func; + postHookFunc(&acc, player_name, &type, &answer); + } + } + return; +} +int HP_chrif_auth_db_final(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_auth_db_final_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_db_final_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_chrif_auth_db_final_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.chrif.auth_db_final(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_chrif_auth_db_final_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_db_final_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_chrif_auth_db_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_chrif_send_usercount_tochar(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_send_usercount_tochar_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_send_usercount_tochar_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_send_usercount_tochar_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.send_usercount_tochar(tid, tick, id, data); + } + if( HPMHooks.count.HP_chrif_send_usercount_tochar_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_send_usercount_tochar_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_send_usercount_tochar_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_chrif_auth_db_cleanup(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_auth_db_cleanup_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_db_cleanup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_auth_db_cleanup_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.auth_db_cleanup(tid, tick, id, data); + } + if( HPMHooks.count.HP_chrif_auth_db_cleanup_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_auth_db_cleanup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_auth_db_cleanup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_chrif_connect(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_connect_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_connect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_connect_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.connect(fd); + } + if( HPMHooks.count.HP_chrif_connect_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_connect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_connect_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_chrif_connectack(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_connectack_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_connectack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_connectack_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.connectack(fd); + } + if( HPMHooks.count.HP_chrif_connectack_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_connectack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_connectack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_chrif_sendmap(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_sendmap_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_sendmap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_sendmap_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.sendmap(fd); + } + if( HPMHooks.count.HP_chrif_sendmap_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_sendmap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_sendmap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_chrif_sendmapack(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_sendmapack_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_sendmapack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_sendmapack_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.sendmapack(fd); + } + if( HPMHooks.count.HP_chrif_sendmapack_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_sendmapack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_sendmapack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_chrif_recvmap(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_recvmap_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_recvmap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_recvmap_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.recvmap(fd); + } + if( HPMHooks.count.HP_chrif_recvmap_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_recvmap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_recvmap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_chrif_changemapserverack(int account_id, int login_id1, int login_id2, int char_id, short map_index, short x, short y, uint32 ip, uint16 port) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_changemapserverack_pre ) { + int (*preHookFunc) (int *account_id, int *login_id1, int *login_id2, int *char_id, short *map_index, short *x, short *y, uint32 *ip, uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_changemapserverack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_changemapserverack_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &login_id1, &login_id2, &char_id, &map_index, &x, &y, &ip, &port); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.changemapserverack(account_id, login_id1, login_id2, char_id, map_index, x, y, ip, port); + } + if( HPMHooks.count.HP_chrif_changemapserverack_post ) { + int (*postHookFunc) (int retVal___, int *account_id, int *login_id1, int *login_id2, int *char_id, short *map_index, short *x, short *y, uint32 *ip, uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_changemapserverack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_changemapserverack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &login_id1, &login_id2, &char_id, &map_index, &x, &y, &ip, &port); + } + } + return retVal___; +} +int HP_chrif_changedsex(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_changedsex_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_changedsex_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_changedsex_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.changedsex(fd); + } + if( HPMHooks.count.HP_chrif_changedsex_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_changedsex_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_changedsex_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_chrif_divorceack(int char_id, int partner_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_divorceack_pre ) { + int (*preHookFunc) (int *char_id, int *partner_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_divorceack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_divorceack_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &partner_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.divorceack(char_id, partner_id); + } + if( HPMHooks.count.HP_chrif_divorceack_post ) { + int (*postHookFunc) (int retVal___, int *char_id, int *partner_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_divorceack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_divorceack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, &partner_id); + } + } + return retVal___; +} +int HP_chrif_accountban(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_accountban_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_accountban_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_accountban_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.accountban(fd); + } + if( HPMHooks.count.HP_chrif_accountban_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_accountban_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_accountban_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_chrif_recvfamelist(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_recvfamelist_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_recvfamelist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_recvfamelist_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.recvfamelist(fd); + } + if( HPMHooks.count.HP_chrif_recvfamelist_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_recvfamelist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_recvfamelist_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_chrif_load_scdata(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_load_scdata_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_load_scdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_load_scdata_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.load_scdata(fd); + } + if( HPMHooks.count.HP_chrif_load_scdata_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_load_scdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_load_scdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +void HP_chrif_update_ip(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_update_ip_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_update_ip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_update_ip_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.update_ip(fd); + } + if( HPMHooks.count.HP_chrif_update_ip_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_update_ip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_update_ip_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +int HP_chrif_disconnectplayer(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_disconnectplayer_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_disconnectplayer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_disconnectplayer_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.disconnectplayer(fd); + } + if( HPMHooks.count.HP_chrif_disconnectplayer_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_disconnectplayer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_disconnectplayer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_chrif_removemap(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_removemap_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_removemap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_removemap_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.removemap(fd); + } + if( HPMHooks.count.HP_chrif_removemap_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_removemap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_removemap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_chrif_updatefamelist_ack(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_updatefamelist_ack_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_updatefamelist_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_updatefamelist_ack_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.updatefamelist_ack(fd); + } + if( HPMHooks.count.HP_chrif_updatefamelist_ack_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_updatefamelist_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_updatefamelist_ack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +void HP_chrif_keepalive(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_keepalive_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_keepalive_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_keepalive_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.keepalive(fd); + } + if( HPMHooks.count.HP_chrif_keepalive_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_keepalive_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_keepalive_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_chrif_keepalive_ack(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_keepalive_ack_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_keepalive_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_keepalive_ack_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.keepalive_ack(fd); + } + if( HPMHooks.count.HP_chrif_keepalive_ack_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_keepalive_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_keepalive_ack_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +int HP_chrif_deadopt(int father_id, int mother_id, int child_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_deadopt_pre ) { + int (*preHookFunc) (int *father_id, int *mother_id, int *child_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_deadopt_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_deadopt_pre[hIndex].func; + retVal___ = preHookFunc(&father_id, &mother_id, &child_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.deadopt(father_id, mother_id, child_id); + } + if( HPMHooks.count.HP_chrif_deadopt_post ) { + int (*postHookFunc) (int retVal___, int *father_id, int *mother_id, int *child_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_deadopt_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_deadopt_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &father_id, &mother_id, &child_id); + } + } + return retVal___; +} +void HP_chrif_authfail(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_authfail_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_authfail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_authfail_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.authfail(fd); + } + if( HPMHooks.count.HP_chrif_authfail_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_authfail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_authfail_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_chrif_on_ready(void) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_on_ready_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_on_ready_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_on_ready_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.on_ready(); + } + if( HPMHooks.count.HP_chrif_on_ready_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_on_ready_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_on_ready_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_chrif_on_disconnect(void) { + int hIndex = 0; + if( HPMHooks.count.HP_chrif_on_disconnect_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_on_disconnect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_on_disconnect_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.chrif.on_disconnect(); + } + if( HPMHooks.count.HP_chrif_on_disconnect_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_on_disconnect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_on_disconnect_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_chrif_parse(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_chrif_parse_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_parse_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chrif_parse_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.chrif.parse(fd); + } + if( HPMHooks.count.HP_chrif_parse_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chrif_parse_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chrif_parse_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +/* clif */ +int HP_clif_init(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_init_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.init(); + } + if( HPMHooks.count.HP_clif_init_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_clif_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.final(); + } + if( HPMHooks.count.HP_clif_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_clif_setip(const char *ip) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_setip_pre ) { + int (*preHookFunc) (const char *ip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_setip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_setip_pre[hIndex].func; + retVal___ = preHookFunc(ip); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.setip(ip); + } + if( HPMHooks.count.HP_clif_setip_post ) { + int (*postHookFunc) (int retVal___, const char *ip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_setip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_setip_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ip); + } + } + return retVal___; +} +void HP_clif_setbindip(const char *ip) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_setbindip_pre ) { + void (*preHookFunc) (const char *ip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_setbindip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_setbindip_pre[hIndex].func; + preHookFunc(ip); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.setbindip(ip); + } + if( HPMHooks.count.HP_clif_setbindip_post ) { + void (*postHookFunc) (const char *ip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_setbindip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_setbindip_post[hIndex].func; + postHookFunc(ip); + } + } + return; +} +void HP_clif_setport(uint16 port) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_setport_pre ) { + void (*preHookFunc) (uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_setport_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_setport_pre[hIndex].func; + preHookFunc(&port); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.setport(port); + } + if( HPMHooks.count.HP_clif_setport_post ) { + void (*postHookFunc) (uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_setport_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_setport_post[hIndex].func; + postHookFunc(&port); + } + } + return; +} +uint32 HP_clif_refresh_ip(void) { + int hIndex = 0; + uint32 retVal___; + memset(&retVal___, '\0', sizeof(uint32)); + if( HPMHooks.count.HP_clif_refresh_ip_pre ) { + uint32 (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_refresh_ip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_refresh_ip_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.refresh_ip(); + } + if( HPMHooks.count.HP_clif_refresh_ip_post ) { + uint32 (*postHookFunc) (uint32 retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_refresh_ip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_refresh_ip_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_clif_send(const void *buf, int len, struct block_list *bl, enum send_target type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_send_pre ) { + int (*preHookFunc) (const void *buf, int *len, struct block_list *bl, enum send_target *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_send_pre[hIndex].func; + retVal___ = preHookFunc(buf, &len, bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.send(buf, len, bl, type); + } + if( HPMHooks.count.HP_clif_send_post ) { + int (*postHookFunc) (int retVal___, const void *buf, int *len, struct block_list *bl, enum send_target *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_send_post[hIndex].func; + retVal___ = postHookFunc(retVal___, buf, &len, bl, &type); + } + } + return retVal___; +} +int HP_clif_send_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_send_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_clif_send_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.clif.send_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_clif_send_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_clif_send_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_clif_parse(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_parse_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_parse_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_parse_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.parse(fd); + } + if( HPMHooks.count.HP_clif_parse_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_parse_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_parse_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +unsigned short HP_clif_parse_cmd(int fd, struct map_session_data *sd) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_clif_parse_cmd_pre ) { + unsigned short (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_parse_cmd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_parse_cmd_pre[hIndex].func; + retVal___ = preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.parse_cmd(fd, sd); + } + if( HPMHooks.count.HP_clif_parse_cmd_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_parse_cmd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_parse_cmd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd, sd); + } + } + return retVal___; +} +unsigned short HP_clif_decrypt_cmd(int cmd, struct map_session_data *sd) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_clif_decrypt_cmd_pre ) { + unsigned short (*preHookFunc) (int *cmd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_decrypt_cmd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_decrypt_cmd_pre[hIndex].func; + retVal___ = preHookFunc(&cmd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.decrypt_cmd(cmd, sd); + } + if( HPMHooks.count.HP_clif_decrypt_cmd_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, int *cmd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_decrypt_cmd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_decrypt_cmd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &cmd, sd); + } + } + return retVal___; +} +void HP_clif_authok(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_authok_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_authok_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_authok_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.authok(sd); + } + if( HPMHooks.count.HP_clif_authok_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_authok_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_authok_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_authrefuse(int fd, uint8 error_code) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_authrefuse_pre ) { + void (*preHookFunc) (int *fd, uint8 *error_code); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_authrefuse_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_authrefuse_pre[hIndex].func; + preHookFunc(&fd, &error_code); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.authrefuse(fd, error_code); + } + if( HPMHooks.count.HP_clif_authrefuse_post ) { + void (*postHookFunc) (int *fd, uint8 *error_code); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_authrefuse_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_authrefuse_post[hIndex].func; + postHookFunc(&fd, &error_code); + } + } + return; +} +void HP_clif_authfail_fd(int fd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_authfail_fd_pre ) { + void (*preHookFunc) (int *fd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_authfail_fd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_authfail_fd_pre[hIndex].func; + preHookFunc(&fd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.authfail_fd(fd, type); + } + if( HPMHooks.count.HP_clif_authfail_fd_post ) { + void (*postHookFunc) (int *fd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_authfail_fd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_authfail_fd_post[hIndex].func; + postHookFunc(&fd, &type); + } + } + return; +} +void HP_clif_charselectok(int id, uint8 ok) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_charselectok_pre ) { + void (*preHookFunc) (int *id, uint8 *ok); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charselectok_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_charselectok_pre[hIndex].func; + preHookFunc(&id, &ok); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.charselectok(id, ok); + } + if( HPMHooks.count.HP_clif_charselectok_post ) { + void (*postHookFunc) (int *id, uint8 *ok); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charselectok_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_charselectok_post[hIndex].func; + postHookFunc(&id, &ok); + } + } + return; +} +void HP_clif_dropflooritem(struct flooritem_data *fitem) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_dropflooritem_pre ) { + void (*preHookFunc) (struct flooritem_data *fitem); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_dropflooritem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_dropflooritem_pre[hIndex].func; + preHookFunc(fitem); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.dropflooritem(fitem); + } + if( HPMHooks.count.HP_clif_dropflooritem_post ) { + void (*postHookFunc) (struct flooritem_data *fitem); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_dropflooritem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_dropflooritem_post[hIndex].func; + postHookFunc(fitem); + } + } + return; +} +void HP_clif_clearflooritem(struct flooritem_data *fitem, int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_clearflooritem_pre ) { + void (*preHookFunc) (struct flooritem_data *fitem, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearflooritem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_clearflooritem_pre[hIndex].func; + preHookFunc(fitem, &fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.clearflooritem(fitem, fd); + } + if( HPMHooks.count.HP_clif_clearflooritem_post ) { + void (*postHookFunc) (struct flooritem_data *fitem, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearflooritem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_clearflooritem_post[hIndex].func; + postHookFunc(fitem, &fd); + } + } + return; +} +void HP_clif_additem(struct map_session_data *sd, int n, int amount, int fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_additem_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *n, int *amount, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_additem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_additem_pre[hIndex].func; + preHookFunc(sd, &n, &amount, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.additem(sd, n, amount, fail); + } + if( HPMHooks.count.HP_clif_additem_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *n, int *amount, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_additem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_additem_post[hIndex].func; + postHookFunc(sd, &n, &amount, &fail); + } + } + return; +} +void HP_clif_dropitem(struct map_session_data *sd, int n, int amount) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_dropitem_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *n, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_dropitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_dropitem_pre[hIndex].func; + preHookFunc(sd, &n, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.dropitem(sd, n, amount); + } + if( HPMHooks.count.HP_clif_dropitem_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *n, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_dropitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_dropitem_post[hIndex].func; + postHookFunc(sd, &n, &amount); + } + } + return; +} +void HP_clif_delitem(struct map_session_data *sd, int n, int amount, short reason) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_delitem_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *n, int *amount, short *reason); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_delitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_delitem_pre[hIndex].func; + preHookFunc(sd, &n, &amount, &reason); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.delitem(sd, n, amount, reason); + } + if( HPMHooks.count.HP_clif_delitem_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *n, int *amount, short *reason); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_delitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_delitem_post[hIndex].func; + postHookFunc(sd, &n, &amount, &reason); + } + } + return; +} +void HP_clif_takeitem(struct block_list *src, struct block_list *dst) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_takeitem_pre ) { + void (*preHookFunc) (struct block_list *src, struct block_list *dst); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_takeitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_takeitem_pre[hIndex].func; + preHookFunc(src, dst); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.takeitem(src, dst); + } + if( HPMHooks.count.HP_clif_takeitem_post ) { + void (*postHookFunc) (struct block_list *src, struct block_list *dst); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_takeitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_takeitem_post[hIndex].func; + postHookFunc(src, dst); + } + } + return; +} +void HP_clif_arrowequip(struct map_session_data *sd, int val) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_arrowequip_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_arrowequip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_arrowequip_pre[hIndex].func; + preHookFunc(sd, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.arrowequip(sd, val); + } + if( HPMHooks.count.HP_clif_arrowequip_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_arrowequip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_arrowequip_post[hIndex].func; + postHookFunc(sd, &val); + } + } + return; +} +void HP_clif_arrow_fail(struct map_session_data *sd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_arrow_fail_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_arrow_fail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_arrow_fail_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.arrow_fail(sd, type); + } + if( HPMHooks.count.HP_clif_arrow_fail_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_arrow_fail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_arrow_fail_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_use_card(struct map_session_data *sd, int idx) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_use_card_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_use_card_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_use_card_pre[hIndex].func; + preHookFunc(sd, &idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.use_card(sd, idx); + } + if( HPMHooks.count.HP_clif_use_card_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_use_card_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_use_card_post[hIndex].func; + postHookFunc(sd, &idx); + } + } + return; +} +void HP_clif_cart_additem(struct map_session_data *sd, int n, int amount, int fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_cart_additem_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *n, int *amount, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cart_additem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_cart_additem_pre[hIndex].func; + preHookFunc(sd, &n, &amount, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cart_additem(sd, n, amount, fail); + } + if( HPMHooks.count.HP_clif_cart_additem_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *n, int *amount, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cart_additem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_cart_additem_post[hIndex].func; + postHookFunc(sd, &n, &amount, &fail); + } + } + return; +} +void HP_clif_cart_delitem(struct map_session_data *sd, int n, int amount) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_cart_delitem_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *n, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cart_delitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_cart_delitem_pre[hIndex].func; + preHookFunc(sd, &n, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cart_delitem(sd, n, amount); + } + if( HPMHooks.count.HP_clif_cart_delitem_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *n, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cart_delitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_cart_delitem_post[hIndex].func; + postHookFunc(sd, &n, &amount); + } + } + return; +} +void HP_clif_equipitemack(struct map_session_data *sd, int n, int pos, int ok) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_equipitemack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *n, int *pos, int *ok); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_equipitemack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_equipitemack_pre[hIndex].func; + preHookFunc(sd, &n, &pos, &ok); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.equipitemack(sd, n, pos, ok); + } + if( HPMHooks.count.HP_clif_equipitemack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *n, int *pos, int *ok); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_equipitemack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_equipitemack_post[hIndex].func; + postHookFunc(sd, &n, &pos, &ok); + } + } + return; +} +void HP_clif_unequipitemack(struct map_session_data *sd, int n, int pos, int ok) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_unequipitemack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *n, int *pos, int *ok); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_unequipitemack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_unequipitemack_pre[hIndex].func; + preHookFunc(sd, &n, &pos, &ok); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.unequipitemack(sd, n, pos, ok); + } + if( HPMHooks.count.HP_clif_unequipitemack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *n, int *pos, int *ok); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_unequipitemack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_unequipitemack_post[hIndex].func; + postHookFunc(sd, &n, &pos, &ok); + } + } + return; +} +void HP_clif_useitemack(struct map_session_data *sd, int index, int amount, bool ok) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_useitemack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *index, int *amount, bool *ok); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_useitemack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_useitemack_pre[hIndex].func; + preHookFunc(sd, &index, &amount, &ok); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.useitemack(sd, index, amount, ok); + } + if( HPMHooks.count.HP_clif_useitemack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *index, int *amount, bool *ok); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_useitemack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_useitemack_post[hIndex].func; + postHookFunc(sd, &index, &amount, &ok); + } + } + return; +} +void HP_clif_addcards(unsigned char *buf, struct item *item) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_addcards_pre ) { + void (*preHookFunc) (unsigned char *buf, struct item *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_addcards_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_addcards_pre[hIndex].func; + preHookFunc(buf, item); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.addcards(buf, item); + } + if( HPMHooks.count.HP_clif_addcards_post ) { + void (*postHookFunc) (unsigned char *buf, struct item *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_addcards_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_addcards_post[hIndex].func; + postHookFunc(buf, item); + } + } + return; +} +void HP_clif_addcards2(unsigned short *cards, struct item *item) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_addcards2_pre ) { + void (*preHookFunc) (unsigned short *cards, struct item *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_addcards2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_addcards2_pre[hIndex].func; + preHookFunc(cards, item); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.addcards2(cards, item); + } + if( HPMHooks.count.HP_clif_addcards2_post ) { + void (*postHookFunc) (unsigned short *cards, struct item *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_addcards2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_addcards2_post[hIndex].func; + postHookFunc(cards, item); + } + } + return; +} +void HP_clif_item_sub(unsigned char *buf, int n, struct item *i, struct item_data *id, int equip) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_item_sub_pre ) { + void (*preHookFunc) (unsigned char *buf, int *n, struct item *i, struct item_data *id, int *equip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_item_sub_pre[hIndex].func; + preHookFunc(buf, &n, i, id, &equip); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.item_sub(buf, n, i, id, equip); + } + if( HPMHooks.count.HP_clif_item_sub_post ) { + void (*postHookFunc) (unsigned char *buf, int *n, struct item *i, struct item_data *id, int *equip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_item_sub_post[hIndex].func; + postHookFunc(buf, &n, i, id, &equip); + } + } + return; +} +void HP_clif_getareachar_item(struct map_session_data *sd, struct flooritem_data *fitem) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_getareachar_item_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct flooritem_data *fitem); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_getareachar_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_getareachar_item_pre[hIndex].func; + preHookFunc(sd, fitem); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.getareachar_item(sd, fitem); + } + if( HPMHooks.count.HP_clif_getareachar_item_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct flooritem_data *fitem); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_getareachar_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_getareachar_item_post[hIndex].func; + postHookFunc(sd, fitem); + } + } + return; +} +void HP_clif_cart_additem_ack(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_cart_additem_ack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cart_additem_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_cart_additem_ack_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cart_additem_ack(sd, flag); + } + if( HPMHooks.count.HP_clif_cart_additem_ack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cart_additem_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_cart_additem_ack_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_cashshop_load(void) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_cashshop_load_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cashshop_load_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_cashshop_load_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cashshop_load(); + } + if( HPMHooks.count.HP_clif_cashshop_load_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cashshop_load_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_cashshop_load_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_clif_package_announce(struct map_session_data *sd, unsigned short nameid, unsigned short containerid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_package_announce_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned short *nameid, unsigned short *containerid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_package_announce_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_package_announce_pre[hIndex].func; + preHookFunc(sd, &nameid, &containerid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.package_announce(sd, nameid, containerid); + } + if( HPMHooks.count.HP_clif_package_announce_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned short *nameid, unsigned short *containerid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_package_announce_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_package_announce_post[hIndex].func; + postHookFunc(sd, &nameid, &containerid); + } + } + return; +} +void HP_clif_clearunit_single(int id, clr_type type, int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_clearunit_single_pre ) { + void (*preHookFunc) (int *id, clr_type *type, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_clearunit_single_pre[hIndex].func; + preHookFunc(&id, &type, &fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.clearunit_single(id, type, fd); + } + if( HPMHooks.count.HP_clif_clearunit_single_post ) { + void (*postHookFunc) (int *id, clr_type *type, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_clearunit_single_post[hIndex].func; + postHookFunc(&id, &type, &fd); + } + } + return; +} +void HP_clif_clearunit_area(struct block_list *bl, clr_type type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_clearunit_area_pre ) { + void (*preHookFunc) (struct block_list *bl, clr_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_area_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_clearunit_area_pre[hIndex].func; + preHookFunc(bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.clearunit_area(bl, type); + } + if( HPMHooks.count.HP_clif_clearunit_area_post ) { + void (*postHookFunc) (struct block_list *bl, clr_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_area_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_clearunit_area_post[hIndex].func; + postHookFunc(bl, &type); + } + } + return; +} +void HP_clif_clearunit_delayed(struct block_list *bl, clr_type type, unsigned int tick) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_clearunit_delayed_pre ) { + void (*preHookFunc) (struct block_list *bl, clr_type *type, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_delayed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_clearunit_delayed_pre[hIndex].func; + preHookFunc(bl, &type, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.clearunit_delayed(bl, type, tick); + } + if( HPMHooks.count.HP_clif_clearunit_delayed_post ) { + void (*postHookFunc) (struct block_list *bl, clr_type *type, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_delayed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_clearunit_delayed_post[hIndex].func; + postHookFunc(bl, &type, &tick); + } + } + return; +} +void HP_clif_walkok(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_walkok_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_walkok_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_walkok_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.walkok(sd); + } + if( HPMHooks.count.HP_clif_walkok_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_walkok_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_walkok_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_move(struct unit_data *ud) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_move_pre ) { + void (*preHookFunc) (struct unit_data *ud); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_move_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_move_pre[hIndex].func; + preHookFunc(ud); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.move(ud); + } + if( HPMHooks.count.HP_clif_move_post ) { + void (*postHookFunc) (struct unit_data *ud); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_move_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_move_post[hIndex].func; + postHookFunc(ud); + } + } + return; +} +void HP_clif_move2(struct block_list *bl, struct view_data *vd, struct unit_data *ud) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_move2_pre ) { + void (*preHookFunc) (struct block_list *bl, struct view_data *vd, struct unit_data *ud); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_move2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_move2_pre[hIndex].func; + preHookFunc(bl, vd, ud); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.move2(bl, vd, ud); + } + if( HPMHooks.count.HP_clif_move2_post ) { + void (*postHookFunc) (struct block_list *bl, struct view_data *vd, struct unit_data *ud); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_move2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_move2_post[hIndex].func; + postHookFunc(bl, vd, ud); + } + } + return; +} +void HP_clif_blown(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_blown_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_blown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_blown_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.blown(bl); + } + if( HPMHooks.count.HP_clif_blown_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_blown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_blown_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_clif_slide(struct block_list *bl, int x, int y) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_slide_pre ) { + void (*preHookFunc) (struct block_list *bl, int *x, int *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_slide_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_slide_pre[hIndex].func; + preHookFunc(bl, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.slide(bl, x, y); + } + if( HPMHooks.count.HP_clif_slide_post ) { + void (*postHookFunc) (struct block_list *bl, int *x, int *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_slide_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_slide_post[hIndex].func; + postHookFunc(bl, &x, &y); + } + } + return; +} +void HP_clif_fixpos(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_fixpos_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_fixpos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_fixpos_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.fixpos(bl); + } + if( HPMHooks.count.HP_clif_fixpos_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_fixpos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_fixpos_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_clif_changelook(struct block_list *bl, int type, int val) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changelook_pre ) { + void (*preHookFunc) (struct block_list *bl, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changelook_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_changelook_pre[hIndex].func; + preHookFunc(bl, &type, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changelook(bl, type, val); + } + if( HPMHooks.count.HP_clif_changelook_post ) { + void (*postHookFunc) (struct block_list *bl, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changelook_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_changelook_post[hIndex].func; + postHookFunc(bl, &type, &val); + } + } + return; +} +void HP_clif_changetraplook(struct block_list *bl, int val) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changetraplook_pre ) { + void (*preHookFunc) (struct block_list *bl, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changetraplook_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_changetraplook_pre[hIndex].func; + preHookFunc(bl, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changetraplook(bl, val); + } + if( HPMHooks.count.HP_clif_changetraplook_post ) { + void (*postHookFunc) (struct block_list *bl, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changetraplook_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_changetraplook_post[hIndex].func; + postHookFunc(bl, &val); + } + } + return; +} +void HP_clif_refreshlook(struct block_list *bl, int id, int type, int val, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_refreshlook_pre ) { + void (*preHookFunc) (struct block_list *bl, int *id, int *type, int *val, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_refreshlook_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_refreshlook_pre[hIndex].func; + preHookFunc(bl, &id, &type, &val, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.refreshlook(bl, id, type, val, target); + } + if( HPMHooks.count.HP_clif_refreshlook_post ) { + void (*postHookFunc) (struct block_list *bl, int *id, int *type, int *val, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_refreshlook_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_refreshlook_post[hIndex].func; + postHookFunc(bl, &id, &type, &val, &target); + } + } + return; +} +void HP_clif_class_change(struct block_list *bl, int class_, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_class_change_pre ) { + void (*preHookFunc) (struct block_list *bl, int *class_, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_class_change_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_class_change_pre[hIndex].func; + preHookFunc(bl, &class_, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.class_change(bl, class_, type); + } + if( HPMHooks.count.HP_clif_class_change_post ) { + void (*postHookFunc) (struct block_list *bl, int *class_, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_class_change_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_class_change_post[hIndex].func; + postHookFunc(bl, &class_, &type); + } + } + return; +} +void HP_clif_skill_setunit(struct skill_unit *su) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skill_setunit_pre ) { + void (*preHookFunc) (struct skill_unit *su); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_setunit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_setunit_pre[hIndex].func; + preHookFunc(su); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skill_setunit(su); + } + if( HPMHooks.count.HP_clif_skill_setunit_post ) { + void (*postHookFunc) (struct skill_unit *su); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_setunit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_setunit_post[hIndex].func; + postHookFunc(su); + } + } + return; +} +void HP_clif_skill_delunit(struct skill_unit *su) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skill_delunit_pre ) { + void (*preHookFunc) (struct skill_unit *su); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_delunit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_delunit_pre[hIndex].func; + preHookFunc(su); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skill_delunit(su); + } + if( HPMHooks.count.HP_clif_skill_delunit_post ) { + void (*postHookFunc) (struct skill_unit *su); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_delunit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_delunit_post[hIndex].func; + postHookFunc(su); + } + } + return; +} +void HP_clif_skillunit_update(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skillunit_update_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillunit_update_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skillunit_update_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skillunit_update(bl); + } + if( HPMHooks.count.HP_clif_skillunit_update_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillunit_update_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skillunit_update_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +int HP_clif_clearunit_delayed_sub(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_clearunit_delayed_sub_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_delayed_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_clearunit_delayed_sub_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.clearunit_delayed_sub(tid, tick, id, data); + } + if( HPMHooks.count.HP_clif_clearunit_delayed_sub_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearunit_delayed_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_clearunit_delayed_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_clif_set_unit_idle(struct block_list *bl, struct map_session_data *tsd, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_set_unit_idle_pre ) { + void (*preHookFunc) (struct block_list *bl, struct map_session_data *tsd, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_set_unit_idle_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_set_unit_idle_pre[hIndex].func; + preHookFunc(bl, tsd, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.set_unit_idle(bl, tsd, target); + } + if( HPMHooks.count.HP_clif_set_unit_idle_post ) { + void (*postHookFunc) (struct block_list *bl, struct map_session_data *tsd, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_set_unit_idle_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_set_unit_idle_post[hIndex].func; + postHookFunc(bl, tsd, &target); + } + } + return; +} +void HP_clif_spawn_unit(struct block_list *bl, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_spawn_unit_pre ) { + void (*preHookFunc) (struct block_list *bl, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spawn_unit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_spawn_unit_pre[hIndex].func; + preHookFunc(bl, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.spawn_unit(bl, target); + } + if( HPMHooks.count.HP_clif_spawn_unit_post ) { + void (*postHookFunc) (struct block_list *bl, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spawn_unit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_spawn_unit_post[hIndex].func; + postHookFunc(bl, &target); + } + } + return; +} +void HP_clif_spawn_unit2(struct block_list *bl, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_spawn_unit2_pre ) { + void (*preHookFunc) (struct block_list *bl, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spawn_unit2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_spawn_unit2_pre[hIndex].func; + preHookFunc(bl, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.spawn_unit2(bl, target); + } + if( HPMHooks.count.HP_clif_spawn_unit2_post ) { + void (*postHookFunc) (struct block_list *bl, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spawn_unit2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_spawn_unit2_post[hIndex].func; + postHookFunc(bl, &target); + } + } + return; +} +void HP_clif_set_unit_idle2(struct block_list *bl, struct map_session_data *tsd, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_set_unit_idle2_pre ) { + void (*preHookFunc) (struct block_list *bl, struct map_session_data *tsd, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_set_unit_idle2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_set_unit_idle2_pre[hIndex].func; + preHookFunc(bl, tsd, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.set_unit_idle2(bl, tsd, target); + } + if( HPMHooks.count.HP_clif_set_unit_idle2_post ) { + void (*postHookFunc) (struct block_list *bl, struct map_session_data *tsd, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_set_unit_idle2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_set_unit_idle2_post[hIndex].func; + postHookFunc(bl, tsd, &target); + } + } + return; +} +void HP_clif_set_unit_walking(struct block_list *bl, struct map_session_data *tsd, struct unit_data *ud, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_set_unit_walking_pre ) { + void (*preHookFunc) (struct block_list *bl, struct map_session_data *tsd, struct unit_data *ud, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_set_unit_walking_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_set_unit_walking_pre[hIndex].func; + preHookFunc(bl, tsd, ud, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.set_unit_walking(bl, tsd, ud, target); + } + if( HPMHooks.count.HP_clif_set_unit_walking_post ) { + void (*postHookFunc) (struct block_list *bl, struct map_session_data *tsd, struct unit_data *ud, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_set_unit_walking_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_set_unit_walking_post[hIndex].func; + postHookFunc(bl, tsd, ud, &target); + } + } + return; +} +int HP_clif_calc_walkdelay(struct block_list *bl, int delay, int type, int damage, int div_) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_calc_walkdelay_pre ) { + int (*preHookFunc) (struct block_list *bl, int *delay, int *type, int *damage, int *div_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_calc_walkdelay_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_calc_walkdelay_pre[hIndex].func; + retVal___ = preHookFunc(bl, &delay, &type, &damage, &div_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.calc_walkdelay(bl, delay, type, damage, div_); + } + if( HPMHooks.count.HP_clif_calc_walkdelay_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *delay, int *type, int *damage, int *div_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_calc_walkdelay_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_calc_walkdelay_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &delay, &type, &damage, &div_); + } + } + return retVal___; +} +void HP_clif_getareachar_skillunit(struct map_session_data *sd, struct skill_unit *su) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_getareachar_skillunit_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct skill_unit *su); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_getareachar_skillunit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_getareachar_skillunit_pre[hIndex].func; + preHookFunc(sd, su); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.getareachar_skillunit(sd, su); + } + if( HPMHooks.count.HP_clif_getareachar_skillunit_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct skill_unit *su); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_getareachar_skillunit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_getareachar_skillunit_post[hIndex].func; + postHookFunc(sd, su); + } + } + return; +} +void HP_clif_getareachar_unit(struct map_session_data *sd, struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_getareachar_unit_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_getareachar_unit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_getareachar_unit_pre[hIndex].func; + preHookFunc(sd, bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.getareachar_unit(sd, bl); + } + if( HPMHooks.count.HP_clif_getareachar_unit_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_getareachar_unit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_getareachar_unit_post[hIndex].func; + postHookFunc(sd, bl); + } + } + return; +} +void HP_clif_clearchar_skillunit(struct skill_unit *su, int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_clearchar_skillunit_pre ) { + void (*preHookFunc) (struct skill_unit *su, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearchar_skillunit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_clearchar_skillunit_pre[hIndex].func; + preHookFunc(su, &fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.clearchar_skillunit(su, fd); + } + if( HPMHooks.count.HP_clif_clearchar_skillunit_post ) { + void (*postHookFunc) (struct skill_unit *su, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearchar_skillunit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_clearchar_skillunit_post[hIndex].func; + postHookFunc(su, &fd); + } + } + return; +} +int HP_clif_getareachar(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_getareachar_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_getareachar_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_clif_getareachar_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.clif.getareachar(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_clif_getareachar_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_getareachar_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_clif_getareachar_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_clif_spawn(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_spawn_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spawn_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_spawn_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.spawn(bl); + } + if( HPMHooks.count.HP_clif_spawn_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spawn_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_spawn_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +void HP_clif_changemap(struct map_session_data *sd, short m, int x, int y) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changemap_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *m, int *x, int *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changemap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_changemap_pre[hIndex].func; + preHookFunc(sd, &m, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changemap(sd, m, x, y); + } + if( HPMHooks.count.HP_clif_changemap_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *m, int *x, int *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changemap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_changemap_post[hIndex].func; + postHookFunc(sd, &m, &x, &y); + } + } + return; +} +void HP_clif_changemapcell(int fd, int16 m, int x, int y, int type, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changemapcell_pre ) { + void (*preHookFunc) (int *fd, int16 *m, int *x, int *y, int *type, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changemapcell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_changemapcell_pre[hIndex].func; + preHookFunc(&fd, &m, &x, &y, &type, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changemapcell(fd, m, x, y, type, target); + } + if( HPMHooks.count.HP_clif_changemapcell_post ) { + void (*postHookFunc) (int *fd, int16 *m, int *x, int *y, int *type, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changemapcell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_changemapcell_post[hIndex].func; + postHookFunc(&fd, &m, &x, &y, &type, &target); + } + } + return; +} +void HP_clif_map_property(struct map_session_data *sd, enum map_property property) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_map_property_pre ) { + void (*preHookFunc) (struct map_session_data *sd, enum map_property *property); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_map_property_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_map_property_pre[hIndex].func; + preHookFunc(sd, &property); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.map_property(sd, property); + } + if( HPMHooks.count.HP_clif_map_property_post ) { + void (*postHookFunc) (struct map_session_data *sd, enum map_property *property); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_map_property_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_map_property_post[hIndex].func; + postHookFunc(sd, &property); + } + } + return; +} +void HP_clif_pvpset(struct map_session_data *sd, int pvprank, int pvpnum, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pvpset_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *pvprank, int *pvpnum, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pvpset_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pvpset_pre[hIndex].func; + preHookFunc(sd, &pvprank, &pvpnum, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pvpset(sd, pvprank, pvpnum, type); + } + if( HPMHooks.count.HP_clif_pvpset_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *pvprank, int *pvpnum, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pvpset_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pvpset_post[hIndex].func; + postHookFunc(sd, &pvprank, &pvpnum, &type); + } + } + return; +} +void HP_clif_map_property_mapall(int mapid, enum map_property property) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_map_property_mapall_pre ) { + void (*preHookFunc) (int *mapid, enum map_property *property); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_map_property_mapall_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_map_property_mapall_pre[hIndex].func; + preHookFunc(&mapid, &property); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.map_property_mapall(mapid, property); + } + if( HPMHooks.count.HP_clif_map_property_mapall_post ) { + void (*postHookFunc) (int *mapid, enum map_property *property); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_map_property_mapall_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_map_property_mapall_post[hIndex].func; + postHookFunc(&mapid, &property); + } + } + return; +} +void HP_clif_bossmapinfo(int fd, struct mob_data *md, short flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bossmapinfo_pre ) { + void (*preHookFunc) (int *fd, struct mob_data *md, short *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bossmapinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bossmapinfo_pre[hIndex].func; + preHookFunc(&fd, md, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bossmapinfo(fd, md, flag); + } + if( HPMHooks.count.HP_clif_bossmapinfo_post ) { + void (*postHookFunc) (int *fd, struct mob_data *md, short *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bossmapinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bossmapinfo_post[hIndex].func; + postHookFunc(&fd, md, &flag); + } + } + return; +} +void HP_clif_map_type(struct map_session_data *sd, enum map_type type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_map_type_pre ) { + void (*preHookFunc) (struct map_session_data *sd, enum map_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_map_type_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_map_type_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.map_type(sd, type); + } + if( HPMHooks.count.HP_clif_map_type_post ) { + void (*postHookFunc) (struct map_session_data *sd, enum map_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_map_type_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_map_type_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_maptypeproperty2(struct block_list *bl, enum send_target t) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_maptypeproperty2_pre ) { + void (*preHookFunc) (struct block_list *bl, enum send_target *t); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_maptypeproperty2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_maptypeproperty2_pre[hIndex].func; + preHookFunc(bl, &t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.maptypeproperty2(bl, t); + } + if( HPMHooks.count.HP_clif_maptypeproperty2_post ) { + void (*postHookFunc) (struct block_list *bl, enum send_target *t); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_maptypeproperty2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_maptypeproperty2_post[hIndex].func; + postHookFunc(bl, &t); + } + } + return; +} +void HP_clif_changemapserver(struct map_session_data *sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changemapserver_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned short *map_index, int *x, int *y, uint32 *ip, uint16 *port); + 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); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changemapserver(sd, map_index, x, y, ip, port); + } + if( HPMHooks.count.HP_clif_changemapserver_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned short *map_index, int *x, int *y, uint32 *ip, uint16 *port); + 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); + } + } + return; +} +void HP_clif_npcbuysell(struct map_session_data *sd, int id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_npcbuysell_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_npcbuysell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_npcbuysell_pre[hIndex].func; + preHookFunc(sd, &id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.npcbuysell(sd, id); + } + if( HPMHooks.count.HP_clif_npcbuysell_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_npcbuysell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_npcbuysell_post[hIndex].func; + postHookFunc(sd, &id); + } + } + return; +} +void HP_clif_buylist(struct map_session_data *sd, struct npc_data *nd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buylist_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buylist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buylist_pre[hIndex].func; + preHookFunc(sd, nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buylist(sd, nd); + } + if( HPMHooks.count.HP_clif_buylist_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buylist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buylist_post[hIndex].func; + postHookFunc(sd, nd); + } + } + return; +} +void HP_clif_selllist(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_selllist_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_selllist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_selllist_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.selllist(sd); + } + if( HPMHooks.count.HP_clif_selllist_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_selllist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_selllist_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_cashshop_show(struct map_session_data *sd, struct npc_data *nd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_cashshop_show_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cashshop_show_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_cashshop_show_pre[hIndex].func; + preHookFunc(sd, nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cashshop_show(sd, nd); + } + if( HPMHooks.count.HP_clif_cashshop_show_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cashshop_show_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_cashshop_show_post[hIndex].func; + postHookFunc(sd, nd); + } + } + return; +} +void HP_clif_npc_buy_result(struct map_session_data *sd, unsigned char result) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_npc_buy_result_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned char *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_npc_buy_result_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_npc_buy_result_pre[hIndex].func; + preHookFunc(sd, &result); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.npc_buy_result(sd, result); + } + if( HPMHooks.count.HP_clif_npc_buy_result_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned char *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_npc_buy_result_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_npc_buy_result_post[hIndex].func; + postHookFunc(sd, &result); + } + } + return; +} +void HP_clif_npc_sell_result(struct map_session_data *sd, unsigned char result) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_npc_sell_result_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned char *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_npc_sell_result_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_npc_sell_result_pre[hIndex].func; + preHookFunc(sd, &result); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.npc_sell_result(sd, result); + } + if( HPMHooks.count.HP_clif_npc_sell_result_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned char *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_npc_sell_result_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_npc_sell_result_post[hIndex].func; + postHookFunc(sd, &result); + } + } + return; +} +void HP_clif_cashshop_ack(struct map_session_data *sd, int error) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_cashshop_ack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *error); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cashshop_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_cashshop_ack_pre[hIndex].func; + preHookFunc(sd, &error); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cashshop_ack(sd, error); + } + if( HPMHooks.count.HP_clif_cashshop_ack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *error); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cashshop_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_cashshop_ack_post[hIndex].func; + postHookFunc(sd, &error); + } + } + return; +} +void HP_clif_scriptmes(struct map_session_data *sd, int npcid, const char *mes) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_scriptmes_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *npcid, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptmes_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_scriptmes_pre[hIndex].func; + preHookFunc(sd, &npcid, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.scriptmes(sd, npcid, mes); + } + if( HPMHooks.count.HP_clif_scriptmes_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *npcid, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptmes_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_scriptmes_post[hIndex].func; + postHookFunc(sd, &npcid, mes); + } + } + return; +} +void HP_clif_scriptnext(struct map_session_data *sd, int npcid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_scriptnext_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptnext_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_scriptnext_pre[hIndex].func; + preHookFunc(sd, &npcid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.scriptnext(sd, npcid); + } + if( HPMHooks.count.HP_clif_scriptnext_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptnext_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_scriptnext_post[hIndex].func; + postHookFunc(sd, &npcid); + } + } + return; +} +void HP_clif_scriptclose(struct map_session_data *sd, int npcid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_scriptclose_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptclose_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_scriptclose_pre[hIndex].func; + preHookFunc(sd, &npcid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.scriptclose(sd, npcid); + } + if( HPMHooks.count.HP_clif_scriptclose_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptclose_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_scriptclose_post[hIndex].func; + postHookFunc(sd, &npcid); + } + } + return; +} +void HP_clif_scriptmenu(struct map_session_data *sd, int npcid, const char *mes) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_scriptmenu_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *npcid, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptmenu_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_scriptmenu_pre[hIndex].func; + preHookFunc(sd, &npcid, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.scriptmenu(sd, npcid, mes); + } + if( HPMHooks.count.HP_clif_scriptmenu_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *npcid, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptmenu_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_scriptmenu_post[hIndex].func; + postHookFunc(sd, &npcid, mes); + } + } + return; +} +void HP_clif_scriptinput(struct map_session_data *sd, int npcid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_scriptinput_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptinput_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_scriptinput_pre[hIndex].func; + preHookFunc(sd, &npcid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.scriptinput(sd, npcid); + } + if( HPMHooks.count.HP_clif_scriptinput_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptinput_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_scriptinput_post[hIndex].func; + postHookFunc(sd, &npcid); + } + } + return; +} +void HP_clif_scriptinputstr(struct map_session_data *sd, int npcid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_scriptinputstr_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptinputstr_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_scriptinputstr_pre[hIndex].func; + preHookFunc(sd, &npcid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.scriptinputstr(sd, npcid); + } + if( HPMHooks.count.HP_clif_scriptinputstr_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptinputstr_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_scriptinputstr_post[hIndex].func; + postHookFunc(sd, &npcid); + } + } + return; +} +void HP_clif_cutin(struct map_session_data *sd, const char *image, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_cutin_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *image, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cutin_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_cutin_pre[hIndex].func; + preHookFunc(sd, image, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cutin(sd, image, type); + } + if( HPMHooks.count.HP_clif_cutin_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *image, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cutin_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_cutin_post[hIndex].func; + postHookFunc(sd, image, &type); + } + } + return; +} +void HP_clif_sendfakenpc(struct map_session_data *sd, int npcid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_sendfakenpc_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendfakenpc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_sendfakenpc_pre[hIndex].func; + preHookFunc(sd, &npcid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.sendfakenpc(sd, npcid); + } + if( HPMHooks.count.HP_clif_sendfakenpc_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendfakenpc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_sendfakenpc_post[hIndex].func; + postHookFunc(sd, &npcid); + } + } + return; +} +void HP_clif_scriptclear(struct map_session_data *sd, int npcid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_scriptclear_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptclear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_scriptclear_pre[hIndex].func; + preHookFunc(sd, &npcid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.scriptclear(sd, npcid); + } + if( HPMHooks.count.HP_clif_scriptclear_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *npcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_scriptclear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_scriptclear_post[hIndex].func; + postHookFunc(sd, &npcid); + } + } + return; +} +void HP_clif_viewpoint(struct map_session_data *sd, int npc_id, int type, int x, int y, int id, int color) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_viewpoint_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *npc_id, int *type, int *x, int *y, int *id, int *color); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_viewpoint_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_viewpoint_pre[hIndex].func; + preHookFunc(sd, &npc_id, &type, &x, &y, &id, &color); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.viewpoint(sd, npc_id, type, x, y, id, color); + } + if( HPMHooks.count.HP_clif_viewpoint_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *npc_id, int *type, int *x, int *y, int *id, int *color); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_viewpoint_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_viewpoint_post[hIndex].func; + postHookFunc(sd, &npc_id, &type, &x, &y, &id, &color); + } + } + return; +} +int HP_clif_damage(struct block_list *src, struct block_list *dst, unsigned int tick, int sdelay, int ddelay, int64 damage, int div, int type, int64 damage2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_damage_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *dst, unsigned int *tick, int *sdelay, int *ddelay, int64 *damage, int *div, int *type, int64 *damage2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_damage_pre[hIndex].func; + retVal___ = preHookFunc(src, dst, &tick, &sdelay, &ddelay, &damage, &div, &type, &damage2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.damage(src, dst, tick, sdelay, ddelay, damage, div, type, damage2); + } + if( HPMHooks.count.HP_clif_damage_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *dst, unsigned int *tick, int *sdelay, int *ddelay, int64 *damage, int *div, int *type, int64 *damage2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, dst, &tick, &sdelay, &ddelay, &damage, &div, &type, &damage2); + } + } + return retVal___; +} +void HP_clif_sitting(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_sitting_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sitting_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_sitting_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.sitting(bl); + } + if( HPMHooks.count.HP_clif_sitting_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sitting_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_sitting_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_clif_standing(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_standing_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_standing_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_standing_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.standing(bl); + } + if( HPMHooks.count.HP_clif_standing_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_standing_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_standing_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_clif_arrow_create_list(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_arrow_create_list_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_arrow_create_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_arrow_create_list_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.arrow_create_list(sd); + } + if( HPMHooks.count.HP_clif_arrow_create_list_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_arrow_create_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_arrow_create_list_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_refresh(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_refresh_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_refresh_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_refresh_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.refresh(sd); + } + if( HPMHooks.count.HP_clif_refresh_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_refresh_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_refresh_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_fame_blacksmith(struct map_session_data *sd, int points) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_fame_blacksmith_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_fame_blacksmith_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_fame_blacksmith_pre[hIndex].func; + preHookFunc(sd, &points); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.fame_blacksmith(sd, points); + } + if( HPMHooks.count.HP_clif_fame_blacksmith_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_fame_blacksmith_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_fame_blacksmith_post[hIndex].func; + postHookFunc(sd, &points); + } + } + return; +} +void HP_clif_fame_alchemist(struct map_session_data *sd, int points) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_fame_alchemist_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_fame_alchemist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_fame_alchemist_pre[hIndex].func; + preHookFunc(sd, &points); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.fame_alchemist(sd, points); + } + if( HPMHooks.count.HP_clif_fame_alchemist_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_fame_alchemist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_fame_alchemist_post[hIndex].func; + postHookFunc(sd, &points); + } + } + return; +} +void HP_clif_fame_taekwon(struct map_session_data *sd, int points) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_fame_taekwon_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_fame_taekwon_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_fame_taekwon_pre[hIndex].func; + preHookFunc(sd, &points); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.fame_taekwon(sd, points); + } + if( HPMHooks.count.HP_clif_fame_taekwon_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_fame_taekwon_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_fame_taekwon_post[hIndex].func; + postHookFunc(sd, &points); + } + } + return; +} +void HP_clif_ranklist(struct map_session_data *sd, enum fame_list_type type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_ranklist_pre ) { + void (*preHookFunc) (struct map_session_data *sd, enum fame_list_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_ranklist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_ranklist_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.ranklist(sd, type); + } + if( HPMHooks.count.HP_clif_ranklist_post ) { + void (*postHookFunc) (struct map_session_data *sd, enum fame_list_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_ranklist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_ranklist_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_update_rankingpoint(struct map_session_data *sd, enum fame_list_type type, int points) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_update_rankingpoint_pre ) { + void (*preHookFunc) (struct map_session_data *sd, enum fame_list_type *type, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_update_rankingpoint_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_update_rankingpoint_pre[hIndex].func; + preHookFunc(sd, &type, &points); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.update_rankingpoint(sd, type, points); + } + if( HPMHooks.count.HP_clif_update_rankingpoint_post ) { + void (*postHookFunc) (struct map_session_data *sd, enum fame_list_type *type, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_update_rankingpoint_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_update_rankingpoint_post[hIndex].func; + postHookFunc(sd, &type, &points); + } + } + return; +} +void HP_clif_pRanklist(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pRanklist_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRanklist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pRanklist_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pRanklist(fd, sd); + } + if( HPMHooks.count.HP_clif_pRanklist_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRanklist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pRanklist_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_hotkeys(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_hotkeys_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hotkeys_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_hotkeys_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.hotkeys(sd); + } + if( HPMHooks.count.HP_clif_hotkeys_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hotkeys_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_hotkeys_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_clif_insight(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_insight_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_insight_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_clif_insight_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.clif.insight(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_clif_insight_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_insight_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_clif_insight_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_clif_outsight(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_outsight_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_outsight_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_clif_outsight_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.clif.outsight(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_clif_outsight_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_outsight_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_clif_outsight_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_clif_skillcastcancel(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skillcastcancel_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillcastcancel_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skillcastcancel_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skillcastcancel(bl); + } + if( HPMHooks.count.HP_clif_skillcastcancel_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillcastcancel_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skillcastcancel_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_clif_skill_fail(struct map_session_data *sd, uint16 skill_id, enum useskill_fail_cause cause, int btype) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skill_fail_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, enum useskill_fail_cause *cause, int *btype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_fail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_fail_pre[hIndex].func; + preHookFunc(sd, &skill_id, &cause, &btype); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skill_fail(sd, skill_id, cause, btype); + } + if( HPMHooks.count.HP_clif_skill_fail_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint16 *skill_id, enum useskill_fail_cause *cause, int *btype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_fail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_fail_post[hIndex].func; + postHookFunc(sd, &skill_id, &cause, &btype); + } + } + return; +} +void HP_clif_skill_cooldown(struct map_session_data *sd, uint16 skill_id, unsigned int tick) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skill_cooldown_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_cooldown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_cooldown_pre[hIndex].func; + preHookFunc(sd, &skill_id, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skill_cooldown(sd, skill_id, tick); + } + if( HPMHooks.count.HP_clif_skill_cooldown_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint16 *skill_id, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_cooldown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_cooldown_post[hIndex].func; + postHookFunc(sd, &skill_id, &tick); + } + } + return; +} +void HP_clif_skill_memomessage(struct map_session_data *sd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skill_memomessage_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_memomessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_memomessage_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skill_memomessage(sd, type); + } + if( HPMHooks.count.HP_clif_skill_memomessage_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_memomessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_memomessage_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_skill_mapinfomessage(struct map_session_data *sd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skill_mapinfomessage_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_mapinfomessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_mapinfomessage_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skill_mapinfomessage(sd, type); + } + if( HPMHooks.count.HP_clif_skill_mapinfomessage_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_mapinfomessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_mapinfomessage_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_skill_produce_mix_list(struct map_session_data *sd, int skill_id, int trigger) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skill_produce_mix_list_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *skill_id, int *trigger); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_produce_mix_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_produce_mix_list_pre[hIndex].func; + preHookFunc(sd, &skill_id, &trigger); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skill_produce_mix_list(sd, skill_id, trigger); + } + if( HPMHooks.count.HP_clif_skill_produce_mix_list_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *skill_id, int *trigger); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_produce_mix_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_produce_mix_list_post[hIndex].func; + postHookFunc(sd, &skill_id, &trigger); + } + } + return; +} +void HP_clif_cooking_list(struct map_session_data *sd, int trigger, uint16 skill_id, int qty, int list_type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_cooking_list_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *trigger, uint16 *skill_id, int *qty, int *list_type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cooking_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_cooking_list_pre[hIndex].func; + preHookFunc(sd, &trigger, &skill_id, &qty, &list_type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cooking_list(sd, trigger, skill_id, qty, list_type); + } + if( HPMHooks.count.HP_clif_cooking_list_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *trigger, uint16 *skill_id, int *qty, int *list_type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cooking_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_cooking_list_post[hIndex].func; + postHookFunc(sd, &trigger, &skill_id, &qty, &list_type); + } + } + return; +} +void HP_clif_autospell(struct map_session_data *sd, uint16 skill_lv) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_autospell_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_autospell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_autospell_pre[hIndex].func; + preHookFunc(sd, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.autospell(sd, skill_lv); + } + if( HPMHooks.count.HP_clif_autospell_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_autospell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_autospell_post[hIndex].func; + postHookFunc(sd, &skill_lv); + } + } + return; +} +void HP_clif_combo_delay(struct block_list *bl, int wait) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_combo_delay_pre ) { + void (*preHookFunc) (struct block_list *bl, int *wait); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_combo_delay_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_combo_delay_pre[hIndex].func; + preHookFunc(bl, &wait); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.combo_delay(bl, wait); + } + if( HPMHooks.count.HP_clif_combo_delay_post ) { + void (*postHookFunc) (struct block_list *bl, int *wait); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_combo_delay_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_combo_delay_post[hIndex].func; + postHookFunc(bl, &wait); + } + } + return; +} +void HP_clif_status_change(struct block_list *bl, int type, int flag, int tick, int val1, int val2, int val3) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_status_change_pre ) { + void (*preHookFunc) (struct block_list *bl, int *type, int *flag, int *tick, int *val1, int *val2, int *val3); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_status_change_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_status_change_pre[hIndex].func; + preHookFunc(bl, &type, &flag, &tick, &val1, &val2, &val3); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.status_change(bl, type, flag, tick, val1, val2, val3); + } + if( HPMHooks.count.HP_clif_status_change_post ) { + void (*postHookFunc) (struct block_list *bl, int *type, int *flag, int *tick, int *val1, int *val2, int *val3); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_status_change_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_status_change_post[hIndex].func; + postHookFunc(bl, &type, &flag, &tick, &val1, &val2, &val3); + } + } + return; +} +void HP_clif_insert_card(struct map_session_data *sd, int idx_equip, int idx_card, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_insert_card_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *idx_equip, int *idx_card, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_insert_card_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_insert_card_pre[hIndex].func; + preHookFunc(sd, &idx_equip, &idx_card, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.insert_card(sd, idx_equip, idx_card, flag); + } + if( HPMHooks.count.HP_clif_insert_card_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *idx_equip, int *idx_card, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_insert_card_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_insert_card_post[hIndex].func; + postHookFunc(sd, &idx_equip, &idx_card, &flag); + } + } + return; +} +void HP_clif_inventorylist(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_inventorylist_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + 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 ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.inventorylist(sd); + } + if( HPMHooks.count.HP_clif_inventorylist_post ) { + 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; + postHookFunc(sd); + } + } + return; +} +void HP_clif_equiplist(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_equiplist_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + 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 ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.equiplist(sd); + } + if( HPMHooks.count.HP_clif_equiplist_post ) { + 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; + postHookFunc(sd); + } + } + return; +} +void HP_clif_cartlist(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_cartlist_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + 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 ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cartlist(sd); + } + if( HPMHooks.count.HP_clif_cartlist_post ) { + 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; + postHookFunc(sd); + } + } + return; +} +void HP_clif_favorite_item(struct map_session_data *sd, unsigned short index) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_favorite_item_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned short *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_favorite_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_favorite_item_pre[hIndex].func; + preHookFunc(sd, &index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.favorite_item(sd, index); + } + if( HPMHooks.count.HP_clif_favorite_item_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned short *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_favorite_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_favorite_item_post[hIndex].func; + postHookFunc(sd, &index); + } + } + return; +} +void HP_clif_clearcart(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_clearcart_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearcart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_clearcart_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.clearcart(fd); + } + if( HPMHooks.count.HP_clif_clearcart_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearcart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_clearcart_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_clif_item_identify_list(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_item_identify_list_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_identify_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_item_identify_list_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.item_identify_list(sd); + } + if( HPMHooks.count.HP_clif_item_identify_list_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_identify_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_item_identify_list_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_item_identified(struct map_session_data *sd, int idx, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_item_identified_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *idx, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_identified_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_item_identified_pre[hIndex].func; + preHookFunc(sd, &idx, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.item_identified(sd, idx, flag); + } + if( HPMHooks.count.HP_clif_item_identified_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *idx, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_identified_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_item_identified_post[hIndex].func; + postHookFunc(sd, &idx, &flag); + } + } + return; +} +void HP_clif_item_repair_list(struct map_session_data *sd, struct map_session_data *dstsd, int lv) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_item_repair_list_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *dstsd, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_repair_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_item_repair_list_pre[hIndex].func; + preHookFunc(sd, dstsd, &lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.item_repair_list(sd, dstsd, lv); + } + if( HPMHooks.count.HP_clif_item_repair_list_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *dstsd, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_repair_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_item_repair_list_post[hIndex].func; + postHookFunc(sd, dstsd, &lv); + } + } + return; +} +void HP_clif_item_repaireffect(struct map_session_data *sd, int idx, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_item_repaireffect_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *idx, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_repaireffect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_item_repaireffect_pre[hIndex].func; + preHookFunc(sd, &idx, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.item_repaireffect(sd, idx, flag); + } + if( HPMHooks.count.HP_clif_item_repaireffect_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *idx, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_repaireffect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_item_repaireffect_post[hIndex].func; + postHookFunc(sd, &idx, &flag); + } + } + return; +} +void HP_clif_item_damaged(struct map_session_data *sd, unsigned short position) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_item_damaged_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned short *position); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_damaged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_item_damaged_pre[hIndex].func; + preHookFunc(sd, &position); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.item_damaged(sd, position); + } + if( HPMHooks.count.HP_clif_item_damaged_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned short *position); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_damaged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_item_damaged_post[hIndex].func; + postHookFunc(sd, &position); + } + } + return; +} +void HP_clif_item_refine_list(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_item_refine_list_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_refine_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_item_refine_list_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.item_refine_list(sd); + } + if( HPMHooks.count.HP_clif_item_refine_list_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_refine_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_item_refine_list_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_item_skill(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_item_skill_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_skill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_item_skill_pre[hIndex].func; + preHookFunc(sd, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.item_skill(sd, skill_id, skill_lv); + } + if( HPMHooks.count.HP_clif_item_skill_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_skill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_item_skill_post[hIndex].func; + postHookFunc(sd, &skill_id, &skill_lv); + } + } + return; +} +void HP_clif_mvp_item(struct map_session_data *sd, int nameid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mvp_item_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mvp_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mvp_item_pre[hIndex].func; + preHookFunc(sd, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mvp_item(sd, nameid); + } + if( HPMHooks.count.HP_clif_mvp_item_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mvp_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mvp_item_post[hIndex].func; + postHookFunc(sd, &nameid); + } + } + return; +} +void HP_clif_mvp_exp(struct map_session_data *sd, unsigned int exp) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mvp_exp_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned int *exp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mvp_exp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mvp_exp_pre[hIndex].func; + preHookFunc(sd, &exp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mvp_exp(sd, exp); + } + if( HPMHooks.count.HP_clif_mvp_exp_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int *exp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mvp_exp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mvp_exp_post[hIndex].func; + postHookFunc(sd, &exp); + } + } + return; +} +void HP_clif_mvp_noitem(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mvp_noitem_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mvp_noitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mvp_noitem_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mvp_noitem(sd); + } + if( HPMHooks.count.HP_clif_mvp_noitem_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mvp_noitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mvp_noitem_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_changed_dir(struct block_list *bl, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changed_dir_pre ) { + void (*preHookFunc) (struct block_list *bl, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changed_dir_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_changed_dir_pre[hIndex].func; + preHookFunc(bl, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changed_dir(bl, target); + } + if( HPMHooks.count.HP_clif_changed_dir_post ) { + void (*postHookFunc) (struct block_list *bl, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changed_dir_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_changed_dir_post[hIndex].func; + postHookFunc(bl, &target); + } + } + return; +} +void HP_clif_charnameack(int fd, struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_charnameack_pre ) { + void (*preHookFunc) (int *fd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charnameack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_charnameack_pre[hIndex].func; + preHookFunc(&fd, bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.charnameack(fd, bl); + } + if( HPMHooks.count.HP_clif_charnameack_post ) { + void (*postHookFunc) (int *fd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charnameack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_charnameack_post[hIndex].func; + postHookFunc(&fd, bl); + } + } + return; +} +void HP_clif_monster_hp_bar(struct mob_data *md, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_monster_hp_bar_pre ) { + void (*preHookFunc) (struct mob_data *md, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_monster_hp_bar_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_monster_hp_bar_pre[hIndex].func; + preHookFunc(md, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.monster_hp_bar(md, sd); + } + if( HPMHooks.count.HP_clif_monster_hp_bar_post ) { + void (*postHookFunc) (struct mob_data *md, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_monster_hp_bar_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_monster_hp_bar_post[hIndex].func; + postHookFunc(md, sd); + } + } + return; +} +int HP_clif_hpmeter(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_hpmeter_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hpmeter_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_hpmeter_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.hpmeter(sd); + } + if( HPMHooks.count.HP_clif_hpmeter_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hpmeter_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_hpmeter_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +void HP_clif_hpmeter_single(int fd, int id, unsigned int hp, unsigned int maxhp) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_hpmeter_single_pre ) { + void (*preHookFunc) (int *fd, int *id, unsigned int *hp, unsigned int *maxhp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hpmeter_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_hpmeter_single_pre[hIndex].func; + preHookFunc(&fd, &id, &hp, &maxhp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.hpmeter_single(fd, id, hp, maxhp); + } + if( HPMHooks.count.HP_clif_hpmeter_single_post ) { + void (*postHookFunc) (int *fd, int *id, unsigned int *hp, unsigned int *maxhp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hpmeter_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_hpmeter_single_post[hIndex].func; + postHookFunc(&fd, &id, &hp, &maxhp); + } + } + return; +} +int HP_clif_hpmeter_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_hpmeter_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hpmeter_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_clif_hpmeter_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.clif.hpmeter_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_clif_hpmeter_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hpmeter_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_clif_hpmeter_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_clif_upgrademessage(int fd, int result, int item_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_upgrademessage_pre ) { + void (*preHookFunc) (int *fd, int *result, int *item_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_upgrademessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_upgrademessage_pre[hIndex].func; + preHookFunc(&fd, &result, &item_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.upgrademessage(fd, result, item_id); + } + if( HPMHooks.count.HP_clif_upgrademessage_post ) { + void (*postHookFunc) (int *fd, int *result, int *item_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_upgrademessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_upgrademessage_post[hIndex].func; + postHookFunc(&fd, &result, &item_id); + } + } + return; +} +void HP_clif_get_weapon_view(struct map_session_data *sd, unsigned short *rhand, unsigned short *lhand) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_get_weapon_view_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned short *rhand, unsigned short *lhand); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_get_weapon_view_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_get_weapon_view_pre[hIndex].func; + preHookFunc(sd, rhand, lhand); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.get_weapon_view(sd, rhand, lhand); + } + if( HPMHooks.count.HP_clif_get_weapon_view_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned short *rhand, unsigned short *lhand); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_get_weapon_view_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_get_weapon_view_post[hIndex].func; + postHookFunc(sd, rhand, lhand); + } + } + return; +} +void HP_clif_gospel_info(struct map_session_data *sd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_gospel_info_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_gospel_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_gospel_info_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.gospel_info(sd, type); + } + if( HPMHooks.count.HP_clif_gospel_info_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_gospel_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_gospel_info_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_feel_req(int fd, struct map_session_data *sd, uint16 skill_lv) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_feel_req_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_feel_req_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_feel_req_pre[hIndex].func; + preHookFunc(&fd, sd, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.feel_req(fd, sd, skill_lv); + } + if( HPMHooks.count.HP_clif_feel_req_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_feel_req_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_feel_req_post[hIndex].func; + postHookFunc(&fd, sd, &skill_lv); + } + } + return; +} +void HP_clif_starskill(struct map_session_data *sd, const char *mapname, int monster_id, unsigned char star, unsigned char result) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_starskill_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *mapname, int *monster_id, unsigned char *star, unsigned char *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_starskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_starskill_pre[hIndex].func; + preHookFunc(sd, mapname, &monster_id, &star, &result); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.starskill(sd, mapname, monster_id, star, result); + } + if( HPMHooks.count.HP_clif_starskill_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *mapname, int *monster_id, unsigned char *star, unsigned char *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_starskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_starskill_post[hIndex].func; + postHookFunc(sd, mapname, &monster_id, &star, &result); + } + } + return; +} +void HP_clif_feel_info(struct map_session_data *sd, unsigned char feel_level, unsigned char type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_feel_info_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned char *feel_level, unsigned char *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_feel_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_feel_info_pre[hIndex].func; + preHookFunc(sd, &feel_level, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.feel_info(sd, feel_level, type); + } + if( HPMHooks.count.HP_clif_feel_info_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned char *feel_level, unsigned char *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_feel_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_feel_info_post[hIndex].func; + postHookFunc(sd, &feel_level, &type); + } + } + return; +} +void HP_clif_hate_info(struct map_session_data *sd, unsigned char hate_level, int class_, unsigned char type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_hate_info_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned char *hate_level, int *class_, unsigned char *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hate_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_hate_info_pre[hIndex].func; + preHookFunc(sd, &hate_level, &class_, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.hate_info(sd, hate_level, class_, type); + } + if( HPMHooks.count.HP_clif_hate_info_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned char *hate_level, int *class_, unsigned char *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hate_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_hate_info_post[hIndex].func; + postHookFunc(sd, &hate_level, &class_, &type); + } + } + return; +} +void HP_clif_mission_info(struct map_session_data *sd, int mob_id, unsigned char progress) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mission_info_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *mob_id, unsigned char *progress); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mission_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mission_info_pre[hIndex].func; + preHookFunc(sd, &mob_id, &progress); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mission_info(sd, mob_id, progress); + } + if( HPMHooks.count.HP_clif_mission_info_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *mob_id, unsigned char *progress); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mission_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mission_info_post[hIndex].func; + postHookFunc(sd, &mob_id, &progress); + } + } + return; +} +void HP_clif_feel_hate_reset(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_feel_hate_reset_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_feel_hate_reset_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_feel_hate_reset_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.feel_hate_reset(sd); + } + if( HPMHooks.count.HP_clif_feel_hate_reset_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_feel_hate_reset_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_feel_hate_reset_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_partytickack(struct map_session_data *sd, bool flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_partytickack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_partytickack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_partytickack_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.partytickack(sd, flag); + } + if( HPMHooks.count.HP_clif_partytickack_post ) { + void (*postHookFunc) (struct map_session_data *sd, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_partytickack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_partytickack_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_equiptickack(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_equiptickack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_equiptickack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_equiptickack_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.equiptickack(sd, flag); + } + if( HPMHooks.count.HP_clif_equiptickack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_equiptickack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_equiptickack_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_viewequip_ack(struct map_session_data *sd, struct map_session_data *tsd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_viewequip_ack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_viewequip_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_viewequip_ack_pre[hIndex].func; + preHookFunc(sd, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.viewequip_ack(sd, tsd); + } + if( HPMHooks.count.HP_clif_viewequip_ack_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_viewequip_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_viewequip_ack_post[hIndex].func; + postHookFunc(sd, tsd); + } + } + return; +} +void HP_clif_viewequip_fail(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_viewequip_fail_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_viewequip_fail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_viewequip_fail_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.viewequip_fail(sd); + } + if( HPMHooks.count.HP_clif_viewequip_fail_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_viewequip_fail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_viewequip_fail_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_equpcheckbox(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_equpcheckbox_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_equpcheckbox_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_equpcheckbox_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.equpcheckbox(sd); + } + if( HPMHooks.count.HP_clif_equpcheckbox_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_equpcheckbox_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_equpcheckbox_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_displayexp(struct map_session_data *sd, unsigned int exp, char type, bool is_quest) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_displayexp_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned int *exp, char *type, bool *is_quest); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_displayexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_displayexp_pre[hIndex].func; + preHookFunc(sd, &exp, &type, &is_quest); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.displayexp(sd, exp, type, is_quest); + } + if( HPMHooks.count.HP_clif_displayexp_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int *exp, char *type, bool *is_quest); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_displayexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_displayexp_post[hIndex].func; + postHookFunc(sd, &exp, &type, &is_quest); + } + } + return; +} +void HP_clif_font(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_font_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_font_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_font_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.font(sd); + } + if( HPMHooks.count.HP_clif_font_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_font_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_font_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_progressbar(struct map_session_data *sd, unsigned long color, unsigned int second) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_progressbar_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned long *color, unsigned int *second); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_progressbar_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_progressbar_pre[hIndex].func; + preHookFunc(sd, &color, &second); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.progressbar(sd, color, second); + } + if( HPMHooks.count.HP_clif_progressbar_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned long *color, unsigned int *second); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_progressbar_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_progressbar_post[hIndex].func; + postHookFunc(sd, &color, &second); + } + } + return; +} +void HP_clif_progressbar_abort(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_progressbar_abort_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_progressbar_abort_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_progressbar_abort_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.progressbar_abort(sd); + } + if( HPMHooks.count.HP_clif_progressbar_abort_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_progressbar_abort_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_progressbar_abort_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_showdigit(struct map_session_data *sd, unsigned char type, int value) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_showdigit_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned char *type, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_showdigit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_showdigit_pre[hIndex].func; + preHookFunc(sd, &type, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.showdigit(sd, type, value); + } + if( HPMHooks.count.HP_clif_showdigit_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned char *type, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_showdigit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_showdigit_post[hIndex].func; + postHookFunc(sd, &type, &value); + } + } + return; +} +int HP_clif_elementalconverter_list(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_elementalconverter_list_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_elementalconverter_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_elementalconverter_list_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.elementalconverter_list(sd); + } + if( HPMHooks.count.HP_clif_elementalconverter_list_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_elementalconverter_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_elementalconverter_list_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_clif_spellbook_list(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_spellbook_list_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spellbook_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_spellbook_list_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.spellbook_list(sd); + } + if( HPMHooks.count.HP_clif_spellbook_list_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spellbook_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_spellbook_list_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_clif_magicdecoy_list(struct map_session_data *sd, uint16 skill_lv, short x, short y) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_magicdecoy_list_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_lv, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_magicdecoy_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_magicdecoy_list_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_lv, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.magicdecoy_list(sd, skill_lv, x, y); + } + if( HPMHooks.count.HP_clif_magicdecoy_list_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_lv, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_magicdecoy_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_magicdecoy_list_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_lv, &x, &y); + } + } + return retVal___; +} +int HP_clif_poison_list(struct map_session_data *sd, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_poison_list_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_poison_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_poison_list_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.poison_list(sd, skill_lv); + } + if( HPMHooks.count.HP_clif_poison_list_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_poison_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_poison_list_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_lv); + } + } + return retVal___; +} +int HP_clif_autoshadowspell_list(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_autoshadowspell_list_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_autoshadowspell_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_autoshadowspell_list_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.autoshadowspell_list(sd); + } + if( HPMHooks.count.HP_clif_autoshadowspell_list_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_autoshadowspell_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_autoshadowspell_list_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_clif_skill_itemlistwindow(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_skill_itemlistwindow_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_itemlistwindow_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_itemlistwindow_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.skill_itemlistwindow(sd, skill_id, skill_lv); + } + if( HPMHooks.count.HP_clif_skill_itemlistwindow_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_itemlistwindow_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_itemlistwindow_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id, &skill_lv); + } + } + return retVal___; +} +void HP_clif_sc_load(struct block_list *bl, int tid, enum send_target target, int type, int val1, int val2, int val3) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_sc_load_pre ) { + void (*preHookFunc) (struct block_list *bl, int *tid, enum send_target *target, int *type, int *val1, int *val2, int *val3); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sc_load_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_sc_load_pre[hIndex].func; + preHookFunc(bl, &tid, &target, &type, &val1, &val2, &val3); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.sc_load(bl, tid, target, type, val1, val2, val3); + } + if( HPMHooks.count.HP_clif_sc_load_post ) { + void (*postHookFunc) (struct block_list *bl, int *tid, enum send_target *target, int *type, int *val1, int *val2, int *val3); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sc_load_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_sc_load_post[hIndex].func; + postHookFunc(bl, &tid, &target, &type, &val1, &val2, &val3); + } + } + return; +} +void HP_clif_sc_end(struct block_list *bl, int tid, enum send_target target, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_sc_end_pre ) { + void (*preHookFunc) (struct block_list *bl, int *tid, enum send_target *target, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sc_end_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_sc_end_pre[hIndex].func; + preHookFunc(bl, &tid, &target, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.sc_end(bl, tid, target, type); + } + if( HPMHooks.count.HP_clif_sc_end_post ) { + void (*postHookFunc) (struct block_list *bl, int *tid, enum send_target *target, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sc_end_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_sc_end_post[hIndex].func; + postHookFunc(bl, &tid, &target, &type); + } + } + return; +} +void HP_clif_initialstatus(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_initialstatus_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_initialstatus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_initialstatus_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.initialstatus(sd); + } + if( HPMHooks.count.HP_clif_initialstatus_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_initialstatus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_initialstatus_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_cooldown_list(int fd, struct skill_cd *cd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_cooldown_list_pre ) { + void (*preHookFunc) (int *fd, struct skill_cd *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cooldown_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_cooldown_list_pre[hIndex].func; + preHookFunc(&fd, cd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.cooldown_list(fd, cd); + } + if( HPMHooks.count.HP_clif_cooldown_list_post ) { + void (*postHookFunc) (int *fd, struct skill_cd *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_cooldown_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_cooldown_list_post[hIndex].func; + postHookFunc(&fd, cd); + } + } + return; +} +void HP_clif_updatestatus(struct map_session_data *sd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_updatestatus_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_updatestatus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_updatestatus_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.updatestatus(sd, type); + } + if( HPMHooks.count.HP_clif_updatestatus_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_updatestatus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_updatestatus_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_changestatus(struct map_session_data *sd, int type, int val) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changestatus_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changestatus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_changestatus_pre[hIndex].func; + preHookFunc(sd, &type, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changestatus(sd, type, val); + } + if( HPMHooks.count.HP_clif_changestatus_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changestatus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_changestatus_post[hIndex].func; + postHookFunc(sd, &type, &val); + } + } + return; +} +void HP_clif_statusupack(struct map_session_data *sd, int type, int ok, int val) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_statusupack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type, int *ok, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_statusupack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_statusupack_pre[hIndex].func; + preHookFunc(sd, &type, &ok, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.statusupack(sd, type, ok, val); + } + if( HPMHooks.count.HP_clif_statusupack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type, int *ok, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_statusupack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_statusupack_post[hIndex].func; + postHookFunc(sd, &type, &ok, &val); + } + } + return; +} +void HP_clif_movetoattack(struct map_session_data *sd, struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_movetoattack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_movetoattack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_movetoattack_pre[hIndex].func; + preHookFunc(sd, bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.movetoattack(sd, bl); + } + if( HPMHooks.count.HP_clif_movetoattack_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_movetoattack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_movetoattack_post[hIndex].func; + postHookFunc(sd, bl); + } + } + return; +} +void HP_clif_solved_charname(int fd, int charid, const char *name) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_solved_charname_pre ) { + void (*preHookFunc) (int *fd, int *charid, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_solved_charname_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_solved_charname_pre[hIndex].func; + preHookFunc(&fd, &charid, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.solved_charname(fd, charid, name); + } + if( HPMHooks.count.HP_clif_solved_charname_post ) { + void (*postHookFunc) (int *fd, int *charid, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_solved_charname_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_solved_charname_post[hIndex].func; + postHookFunc(&fd, &charid, name); + } + } + return; +} +void HP_clif_charnameupdate(struct map_session_data *ssd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_charnameupdate_pre ) { + void (*preHookFunc) (struct map_session_data *ssd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charnameupdate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_charnameupdate_pre[hIndex].func; + preHookFunc(ssd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.charnameupdate(ssd); + } + if( HPMHooks.count.HP_clif_charnameupdate_post ) { + void (*postHookFunc) (struct map_session_data *ssd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charnameupdate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_charnameupdate_post[hIndex].func; + postHookFunc(ssd); + } + } + return; +} +int HP_clif_delayquit(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_delayquit_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_delayquit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_delayquit_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.delayquit(tid, tick, id, data); + } + if( HPMHooks.count.HP_clif_delayquit_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_delayquit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_delayquit_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_clif_getareachar_pc(struct map_session_data *sd, struct map_session_data *dstsd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_getareachar_pc_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *dstsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_getareachar_pc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_getareachar_pc_pre[hIndex].func; + preHookFunc(sd, dstsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.getareachar_pc(sd, dstsd); + } + if( HPMHooks.count.HP_clif_getareachar_pc_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *dstsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_getareachar_pc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_getareachar_pc_post[hIndex].func; + postHookFunc(sd, dstsd); + } + } + return; +} +void HP_clif_disconnect_ack(struct map_session_data *sd, short result) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_disconnect_ack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_disconnect_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_disconnect_ack_pre[hIndex].func; + preHookFunc(sd, &result); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.disconnect_ack(sd, result); + } + if( HPMHooks.count.HP_clif_disconnect_ack_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_disconnect_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_disconnect_ack_post[hIndex].func; + postHookFunc(sd, &result); + } + } + return; +} +void HP_clif_PVPInfo(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PVPInfo_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PVPInfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PVPInfo_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PVPInfo(sd); + } + if( HPMHooks.count.HP_clif_PVPInfo_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PVPInfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PVPInfo_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_blacksmith(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_blacksmith_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_blacksmith_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_blacksmith_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.blacksmith(sd); + } + if( HPMHooks.count.HP_clif_blacksmith_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_blacksmith_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_blacksmith_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_alchemist(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_alchemist_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_alchemist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_alchemist_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.alchemist(sd); + } + if( HPMHooks.count.HP_clif_alchemist_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_alchemist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_alchemist_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_taekwon(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_taekwon_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_taekwon_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_taekwon_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.taekwon(sd); + } + if( HPMHooks.count.HP_clif_taekwon_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_taekwon_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_taekwon_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_ranking_pk(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_ranking_pk_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_ranking_pk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_ranking_pk_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.ranking_pk(sd); + } + if( HPMHooks.count.HP_clif_ranking_pk_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_ranking_pk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_ranking_pk_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_quitsave(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_quitsave_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quitsave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_quitsave_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.quitsave(fd, sd); + } + if( HPMHooks.count.HP_clif_quitsave_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quitsave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_quitsave_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_misceffect(struct block_list *bl, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_misceffect_pre ) { + void (*preHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_misceffect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_misceffect_pre[hIndex].func; + preHookFunc(bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.misceffect(bl, type); + } + if( HPMHooks.count.HP_clif_misceffect_post ) { + void (*postHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_misceffect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_misceffect_post[hIndex].func; + postHookFunc(bl, &type); + } + } + return; +} +void HP_clif_changeoption(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changeoption_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changeoption_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_changeoption_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changeoption(bl); + } + if( HPMHooks.count.HP_clif_changeoption_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changeoption_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_changeoption_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_clif_changeoption2(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changeoption2_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changeoption2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_changeoption2_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changeoption2(bl); + } + if( HPMHooks.count.HP_clif_changeoption2_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changeoption2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_changeoption2_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_clif_emotion(struct block_list *bl, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_emotion_pre ) { + void (*preHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_emotion_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_emotion_pre[hIndex].func; + preHookFunc(bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.emotion(bl, type); + } + if( HPMHooks.count.HP_clif_emotion_post ) { + void (*postHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_emotion_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_emotion_post[hIndex].func; + postHookFunc(bl, &type); + } + } + return; +} +void HP_clif_talkiebox(struct block_list *bl, const char *talkie) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_talkiebox_pre ) { + void (*preHookFunc) (struct block_list *bl, const char *talkie); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_talkiebox_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_talkiebox_pre[hIndex].func; + preHookFunc(bl, talkie); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.talkiebox(bl, talkie); + } + if( HPMHooks.count.HP_clif_talkiebox_post ) { + void (*postHookFunc) (struct block_list *bl, const char *talkie); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_talkiebox_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_talkiebox_post[hIndex].func; + postHookFunc(bl, talkie); + } + } + return; +} +void HP_clif_wedding_effect(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_wedding_effect_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_wedding_effect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_wedding_effect_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.wedding_effect(bl); + } + if( HPMHooks.count.HP_clif_wedding_effect_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_wedding_effect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_wedding_effect_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_clif_divorced(struct map_session_data *sd, const char *name) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_divorced_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_divorced_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_divorced_pre[hIndex].func; + preHookFunc(sd, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.divorced(sd, name); + } + if( HPMHooks.count.HP_clif_divorced_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_divorced_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_divorced_post[hIndex].func; + postHookFunc(sd, name); + } + } + return; +} +void HP_clif_callpartner(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_callpartner_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_callpartner_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_callpartner_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.callpartner(sd); + } + if( HPMHooks.count.HP_clif_callpartner_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_callpartner_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_callpartner_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_clif_skill_damage(struct block_list *src, struct block_list *dst, unsigned int tick, int sdelay, int ddelay, int64 damage, int div, uint16 skill_id, uint16 skill_lv, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_skill_damage_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *dst, unsigned int *tick, int *sdelay, int *ddelay, int64 *damage, int *div, uint16 *skill_id, uint16 *skill_lv, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_damage_pre[hIndex].func; + retVal___ = preHookFunc(src, dst, &tick, &sdelay, &ddelay, &damage, &div, &skill_id, &skill_lv, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.skill_damage(src, dst, tick, sdelay, ddelay, damage, div, skill_id, skill_lv, type); + } + if( HPMHooks.count.HP_clif_skill_damage_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *dst, unsigned int *tick, int *sdelay, int *ddelay, int64 *damage, int *div, uint16 *skill_id, uint16 *skill_lv, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, dst, &tick, &sdelay, &ddelay, &damage, &div, &skill_id, &skill_lv, &type); + } + } + return retVal___; +} +int HP_clif_skill_nodamage(struct block_list *src, struct block_list *dst, uint16 skill_id, int heal, int fail) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_skill_nodamage_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *dst, uint16 *skill_id, int *heal, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_nodamage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_nodamage_pre[hIndex].func; + retVal___ = preHookFunc(src, dst, &skill_id, &heal, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.skill_nodamage(src, dst, skill_id, heal, fail); + } + if( HPMHooks.count.HP_clif_skill_nodamage_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *dst, uint16 *skill_id, int *heal, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_nodamage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_nodamage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, dst, &skill_id, &heal, &fail); + } + } + return retVal___; +} +void HP_clif_skill_poseffect(struct block_list *src, uint16 skill_id, int val, int x, int y, int tick) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skill_poseffect_pre ) { + void (*preHookFunc) (struct block_list *src, uint16 *skill_id, int *val, int *x, int *y, int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_poseffect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_poseffect_pre[hIndex].func; + preHookFunc(src, &skill_id, &val, &x, &y, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skill_poseffect(src, skill_id, val, x, y, tick); + } + if( HPMHooks.count.HP_clif_skill_poseffect_post ) { + void (*postHookFunc) (struct block_list *src, uint16 *skill_id, int *val, int *x, int *y, int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_poseffect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_poseffect_post[hIndex].func; + postHookFunc(src, &skill_id, &val, &x, &y, &tick); + } + } + return; +} +void HP_clif_skill_estimation(struct map_session_data *sd, struct block_list *dst) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skill_estimation_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct block_list *dst); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_estimation_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_estimation_pre[hIndex].func; + preHookFunc(sd, dst); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skill_estimation(sd, dst); + } + if( HPMHooks.count.HP_clif_skill_estimation_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct block_list *dst); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_estimation_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_estimation_post[hIndex].func; + postHookFunc(sd, dst); + } + } + return; +} +void HP_clif_skill_warppoint(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, unsigned short map1, unsigned short map2, unsigned short map3, unsigned short map4) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skill_warppoint_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv, unsigned short *map1, unsigned short *map2, unsigned short *map3, unsigned short *map4); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_warppoint_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skill_warppoint_pre[hIndex].func; + preHookFunc(sd, &skill_id, &skill_lv, &map1, &map2, &map3, &map4); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skill_warppoint(sd, skill_id, skill_lv, map1, map2, map3, map4); + } + if( HPMHooks.count.HP_clif_skill_warppoint_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv, unsigned short *map1, unsigned short *map2, unsigned short *map3, unsigned short *map4); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_warppoint_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skill_warppoint_post[hIndex].func; + postHookFunc(sd, &skill_id, &skill_lv, &map1, &map2, &map3, &map4); + } + } + return; +} +void HP_clif_skillcasting(struct block_list *bl, int src_id, int dst_id, int dst_x, int dst_y, uint16 skill_id, int property, int casttime) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skillcasting_pre ) { + void (*preHookFunc) (struct block_list *bl, int *src_id, int *dst_id, int *dst_x, int *dst_y, uint16 *skill_id, int *property, int *casttime); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillcasting_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skillcasting_pre[hIndex].func; + preHookFunc(bl, &src_id, &dst_id, &dst_x, &dst_y, &skill_id, &property, &casttime); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skillcasting(bl, src_id, dst_id, dst_x, dst_y, skill_id, property, casttime); + } + if( HPMHooks.count.HP_clif_skillcasting_post ) { + void (*postHookFunc) (struct block_list *bl, int *src_id, int *dst_id, int *dst_x, int *dst_y, uint16 *skill_id, int *property, int *casttime); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillcasting_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skillcasting_post[hIndex].func; + postHookFunc(bl, &src_id, &dst_id, &dst_x, &dst_y, &skill_id, &property, &casttime); + } + } + return; +} +void HP_clif_produce_effect(struct map_session_data *sd, int flag, int nameid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_produce_effect_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_produce_effect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_produce_effect_pre[hIndex].func; + preHookFunc(sd, &flag, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.produce_effect(sd, flag, nameid); + } + if( HPMHooks.count.HP_clif_produce_effect_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_produce_effect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_produce_effect_post[hIndex].func; + postHookFunc(sd, &flag, &nameid); + } + } + return; +} +void HP_clif_devotion(struct block_list *src, struct map_session_data *tsd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_devotion_pre ) { + void (*preHookFunc) (struct block_list *src, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_devotion_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_devotion_pre[hIndex].func; + preHookFunc(src, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.devotion(src, tsd); + } + if( HPMHooks.count.HP_clif_devotion_post ) { + void (*postHookFunc) (struct block_list *src, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_devotion_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_devotion_post[hIndex].func; + postHookFunc(src, tsd); + } + } + return; +} +void HP_clif_spiritball(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_spiritball_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spiritball_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_spiritball_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.spiritball(bl); + } + if( HPMHooks.count.HP_clif_spiritball_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spiritball_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_spiritball_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_clif_spiritball_single(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_spiritball_single_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spiritball_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_spiritball_single_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.spiritball_single(fd, sd); + } + if( HPMHooks.count.HP_clif_spiritball_single_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_spiritball_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_spiritball_single_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_bladestop(struct block_list *src, int dst_id, int active) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bladestop_pre ) { + void (*preHookFunc) (struct block_list *src, int *dst_id, int *active); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bladestop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bladestop_pre[hIndex].func; + preHookFunc(src, &dst_id, &active); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bladestop(src, dst_id, active); + } + if( HPMHooks.count.HP_clif_bladestop_post ) { + void (*postHookFunc) (struct block_list *src, int *dst_id, int *active); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bladestop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bladestop_post[hIndex].func; + postHookFunc(src, &dst_id, &active); + } + } + return; +} +void HP_clif_mvp_effect(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mvp_effect_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mvp_effect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mvp_effect_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mvp_effect(sd); + } + if( HPMHooks.count.HP_clif_mvp_effect_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mvp_effect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mvp_effect_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_heal(int fd, int type, int val) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_heal_pre ) { + void (*preHookFunc) (int *fd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_heal_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_heal_pre[hIndex].func; + preHookFunc(&fd, &type, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.heal(fd, type, val); + } + if( HPMHooks.count.HP_clif_heal_post ) { + void (*postHookFunc) (int *fd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_heal_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_heal_post[hIndex].func; + postHookFunc(&fd, &type, &val); + } + } + return; +} +void HP_clif_resurrection(struct block_list *bl, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_resurrection_pre ) { + void (*preHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_resurrection_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_resurrection_pre[hIndex].func; + preHookFunc(bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.resurrection(bl, type); + } + if( HPMHooks.count.HP_clif_resurrection_post ) { + void (*postHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_resurrection_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_resurrection_post[hIndex].func; + postHookFunc(bl, &type); + } + } + return; +} +void HP_clif_refine(int fd, int fail, int index, int val) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_refine_pre ) { + void (*preHookFunc) (int *fd, int *fail, int *index, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_refine_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_refine_pre[hIndex].func; + preHookFunc(&fd, &fail, &index, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.refine(fd, fail, index, val); + } + if( HPMHooks.count.HP_clif_refine_post ) { + void (*postHookFunc) (int *fd, int *fail, int *index, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_refine_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_refine_post[hIndex].func; + postHookFunc(&fd, &fail, &index, &val); + } + } + return; +} +void HP_clif_weather(int16 m) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_weather_pre ) { + void (*preHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_weather_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_weather_pre[hIndex].func; + preHookFunc(&m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.weather(m); + } + if( HPMHooks.count.HP_clif_weather_post ) { + void (*postHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_weather_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_weather_post[hIndex].func; + postHookFunc(&m); + } + } + return; +} +void HP_clif_specialeffect(struct block_list *bl, int type, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_specialeffect_pre ) { + void (*preHookFunc) (struct block_list *bl, int *type, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_specialeffect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_specialeffect_pre[hIndex].func; + preHookFunc(bl, &type, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.specialeffect(bl, type, target); + } + if( HPMHooks.count.HP_clif_specialeffect_post ) { + void (*postHookFunc) (struct block_list *bl, int *type, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_specialeffect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_specialeffect_post[hIndex].func; + postHookFunc(bl, &type, &target); + } + } + return; +} +void HP_clif_specialeffect_single(struct block_list *bl, int type, int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_specialeffect_single_pre ) { + void (*preHookFunc) (struct block_list *bl, int *type, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_specialeffect_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_specialeffect_single_pre[hIndex].func; + preHookFunc(bl, &type, &fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.specialeffect_single(bl, type, fd); + } + if( HPMHooks.count.HP_clif_specialeffect_single_post ) { + void (*postHookFunc) (struct block_list *bl, int *type, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_specialeffect_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_specialeffect_single_post[hIndex].func; + postHookFunc(bl, &type, &fd); + } + } + return; +} +void HP_clif_specialeffect_value(struct block_list *bl, int effect_id, int num, send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_specialeffect_value_pre ) { + void (*preHookFunc) (struct block_list *bl, int *effect_id, int *num, send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_specialeffect_value_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_specialeffect_value_pre[hIndex].func; + preHookFunc(bl, &effect_id, &num, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.specialeffect_value(bl, effect_id, num, target); + } + if( HPMHooks.count.HP_clif_specialeffect_value_post ) { + void (*postHookFunc) (struct block_list *bl, int *effect_id, int *num, send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_specialeffect_value_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_specialeffect_value_post[hIndex].func; + postHookFunc(bl, &effect_id, &num, &target); + } + } + return; +} +void HP_clif_millenniumshield(struct map_session_data *sd, short shields) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_millenniumshield_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *shields); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_millenniumshield_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_millenniumshield_pre[hIndex].func; + preHookFunc(sd, &shields); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.millenniumshield(sd, shields); + } + if( HPMHooks.count.HP_clif_millenniumshield_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *shields); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_millenniumshield_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_millenniumshield_post[hIndex].func; + postHookFunc(sd, &shields); + } + } + return; +} +void HP_clif_charm(struct map_session_data *sd, short type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_charm_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charm_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_charm_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.charm(sd, type); + } + if( HPMHooks.count.HP_clif_charm_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charm_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_charm_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_charm_single(int fd, struct map_session_data *sd, short type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_charm_single_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd, short *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charm_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_charm_single_pre[hIndex].func; + preHookFunc(&fd, sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.charm_single(fd, sd, type); + } + if( HPMHooks.count.HP_clif_charm_single_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd, short *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_charm_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_charm_single_post[hIndex].func; + postHookFunc(&fd, sd, &type); + } + } + return; +} +void HP_clif_snap(struct block_list *bl, short x, short y) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_snap_pre ) { + void (*preHookFunc) (struct block_list *bl, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_snap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_snap_pre[hIndex].func; + preHookFunc(bl, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.snap(bl, x, y); + } + if( HPMHooks.count.HP_clif_snap_post ) { + void (*postHookFunc) (struct block_list *bl, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_snap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_snap_post[hIndex].func; + postHookFunc(bl, &x, &y); + } + } + return; +} +void HP_clif_weather_check(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_weather_check_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_weather_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_weather_check_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.weather_check(sd); + } + if( HPMHooks.count.HP_clif_weather_check_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_weather_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_weather_check_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_playBGM(struct map_session_data *sd, const char *name) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_playBGM_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_playBGM_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_playBGM_pre[hIndex].func; + preHookFunc(sd, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.playBGM(sd, name); + } + if( HPMHooks.count.HP_clif_playBGM_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_playBGM_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_playBGM_post[hIndex].func; + postHookFunc(sd, name); + } + } + return; +} +void HP_clif_soundeffect(struct map_session_data *sd, struct block_list *bl, const char *name, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_soundeffect_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct block_list *bl, const char *name, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_soundeffect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_soundeffect_pre[hIndex].func; + preHookFunc(sd, bl, name, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.soundeffect(sd, bl, name, type); + } + if( HPMHooks.count.HP_clif_soundeffect_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct block_list *bl, const char *name, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_soundeffect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_soundeffect_post[hIndex].func; + postHookFunc(sd, bl, name, &type); + } + } + return; +} +void HP_clif_soundeffectall(struct block_list *bl, const char *name, int type, enum send_target coverage) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_soundeffectall_pre ) { + void (*preHookFunc) (struct block_list *bl, const char *name, int *type, enum send_target *coverage); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_soundeffectall_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_soundeffectall_pre[hIndex].func; + preHookFunc(bl, name, &type, &coverage); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.soundeffectall(bl, name, type, coverage); + } + if( HPMHooks.count.HP_clif_soundeffectall_post ) { + void (*postHookFunc) (struct block_list *bl, const char *name, int *type, enum send_target *coverage); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_soundeffectall_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_soundeffectall_post[hIndex].func; + postHookFunc(bl, name, &type, &coverage); + } + } + return; +} +void HP_clif_GlobalMessage(struct block_list *bl, const char *message) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_GlobalMessage_pre ) { + void (*preHookFunc) (struct block_list *bl, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_GlobalMessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_GlobalMessage_pre[hIndex].func; + preHookFunc(bl, message); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.GlobalMessage(bl, message); + } + if( HPMHooks.count.HP_clif_GlobalMessage_post ) { + void (*postHookFunc) (struct block_list *bl, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_GlobalMessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_GlobalMessage_post[hIndex].func; + postHookFunc(bl, message); + } + } + return; +} +void HP_clif_createchat(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_createchat_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_createchat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_createchat_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.createchat(sd, flag); + } + if( HPMHooks.count.HP_clif_createchat_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_createchat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_createchat_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_dispchat(struct chat_data *cd, int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_dispchat_pre ) { + void (*preHookFunc) (struct chat_data *cd, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_dispchat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_dispchat_pre[hIndex].func; + preHookFunc(cd, &fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.dispchat(cd, fd); + } + if( HPMHooks.count.HP_clif_dispchat_post ) { + void (*postHookFunc) (struct chat_data *cd, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_dispchat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_dispchat_post[hIndex].func; + postHookFunc(cd, &fd); + } + } + return; +} +void HP_clif_joinchatfail(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_joinchatfail_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_joinchatfail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_joinchatfail_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.joinchatfail(sd, flag); + } + if( HPMHooks.count.HP_clif_joinchatfail_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_joinchatfail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_joinchatfail_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_joinchatok(struct map_session_data *sd, struct chat_data *cd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_joinchatok_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_joinchatok_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_joinchatok_pre[hIndex].func; + preHookFunc(sd, cd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.joinchatok(sd, cd); + } + if( HPMHooks.count.HP_clif_joinchatok_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_joinchatok_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_joinchatok_post[hIndex].func; + postHookFunc(sd, cd); + } + } + return; +} +void HP_clif_addchat(struct chat_data *cd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_addchat_pre ) { + void (*preHookFunc) (struct chat_data *cd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_addchat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_addchat_pre[hIndex].func; + preHookFunc(cd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.addchat(cd, sd); + } + if( HPMHooks.count.HP_clif_addchat_post ) { + void (*postHookFunc) (struct chat_data *cd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_addchat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_addchat_post[hIndex].func; + postHookFunc(cd, sd); + } + } + return; +} +void HP_clif_changechatowner(struct chat_data *cd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changechatowner_pre ) { + void (*preHookFunc) (struct chat_data *cd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changechatowner_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_changechatowner_pre[hIndex].func; + preHookFunc(cd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changechatowner(cd, sd); + } + if( HPMHooks.count.HP_clif_changechatowner_post ) { + void (*postHookFunc) (struct chat_data *cd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changechatowner_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_changechatowner_post[hIndex].func; + postHookFunc(cd, sd); + } + } + return; +} +void HP_clif_clearchat(struct chat_data *cd, int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_clearchat_pre ) { + void (*preHookFunc) (struct chat_data *cd, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearchat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_clearchat_pre[hIndex].func; + preHookFunc(cd, &fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.clearchat(cd, fd); + } + if( HPMHooks.count.HP_clif_clearchat_post ) { + void (*postHookFunc) (struct chat_data *cd, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_clearchat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_clearchat_post[hIndex].func; + postHookFunc(cd, &fd); + } + } + return; +} +void HP_clif_leavechat(struct chat_data *cd, struct map_session_data *sd, bool flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_leavechat_pre ) { + void (*preHookFunc) (struct chat_data *cd, struct map_session_data *sd, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_leavechat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_leavechat_pre[hIndex].func; + preHookFunc(cd, sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.leavechat(cd, sd, flag); + } + if( HPMHooks.count.HP_clif_leavechat_post ) { + void (*postHookFunc) (struct chat_data *cd, struct map_session_data *sd, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_leavechat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_leavechat_post[hIndex].func; + postHookFunc(cd, sd, &flag); + } + } + return; +} +void HP_clif_changechatstatus(struct chat_data *cd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_changechatstatus_pre ) { + void (*preHookFunc) (struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changechatstatus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_changechatstatus_pre[hIndex].func; + preHookFunc(cd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.changechatstatus(cd); + } + if( HPMHooks.count.HP_clif_changechatstatus_post ) { + void (*postHookFunc) (struct chat_data *cd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_changechatstatus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_changechatstatus_post[hIndex].func; + postHookFunc(cd); + } + } + return; +} +void HP_clif_wis_message(int fd, const char *nick, const char *mes, int mes_len) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_wis_message_pre ) { + void (*preHookFunc) (int *fd, const char *nick, const char *mes, int *mes_len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_wis_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_wis_message_pre[hIndex].func; + preHookFunc(&fd, nick, mes, &mes_len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.wis_message(fd, nick, mes, mes_len); + } + if( HPMHooks.count.HP_clif_wis_message_post ) { + void (*postHookFunc) (int *fd, const char *nick, const char *mes, int *mes_len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_wis_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_wis_message_post[hIndex].func; + postHookFunc(&fd, nick, mes, &mes_len); + } + } + return; +} +void HP_clif_wis_end(int fd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_wis_end_pre ) { + void (*preHookFunc) (int *fd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_wis_end_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_wis_end_pre[hIndex].func; + preHookFunc(&fd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.wis_end(fd, flag); + } + if( HPMHooks.count.HP_clif_wis_end_post ) { + void (*postHookFunc) (int *fd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_wis_end_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_wis_end_post[hIndex].func; + postHookFunc(&fd, &flag); + } + } + return; +} +void HP_clif_disp_onlyself(struct map_session_data *sd, const char *mes, int len) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_disp_onlyself_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_disp_onlyself_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_disp_onlyself_pre[hIndex].func; + preHookFunc(sd, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.disp_onlyself(sd, mes, len); + } + if( HPMHooks.count.HP_clif_disp_onlyself_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_disp_onlyself_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_disp_onlyself_post[hIndex].func; + postHookFunc(sd, mes, &len); + } + } + return; +} +void HP_clif_disp_message(struct block_list *src, const char *mes, int len, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_disp_message_pre ) { + void (*preHookFunc) (struct block_list *src, const char *mes, int *len, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_disp_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_disp_message_pre[hIndex].func; + preHookFunc(src, mes, &len, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.disp_message(src, mes, len, target); + } + if( HPMHooks.count.HP_clif_disp_message_post ) { + void (*postHookFunc) (struct block_list *src, const char *mes, int *len, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_disp_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_disp_message_post[hIndex].func; + postHookFunc(src, mes, &len, &target); + } + } + return; +} +void HP_clif_broadcast(struct block_list *bl, const char *mes, int len, int type, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_broadcast_pre ) { + void (*preHookFunc) (struct block_list *bl, const char *mes, int *len, int *type, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_broadcast_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_broadcast_pre[hIndex].func; + preHookFunc(bl, mes, &len, &type, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.broadcast(bl, mes, len, type, target); + } + if( HPMHooks.count.HP_clif_broadcast_post ) { + void (*postHookFunc) (struct block_list *bl, const char *mes, int *len, int *type, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_broadcast_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_broadcast_post[hIndex].func; + postHookFunc(bl, mes, &len, &type, &target); + } + } + return; +} +void HP_clif_broadcast2(struct block_list *bl, const char *mes, int len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_broadcast2_pre ) { + void (*preHookFunc) (struct block_list *bl, const char *mes, int *len, unsigned long *fontColor, short *fontType, short *fontSize, short *fontAlign, short *fontY, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_broadcast2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_broadcast2_pre[hIndex].func; + preHookFunc(bl, mes, &len, &fontColor, &fontType, &fontSize, &fontAlign, &fontY, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.broadcast2(bl, mes, len, fontColor, fontType, fontSize, fontAlign, fontY, target); + } + if( HPMHooks.count.HP_clif_broadcast2_post ) { + void (*postHookFunc) (struct block_list *bl, const char *mes, int *len, unsigned long *fontColor, short *fontType, short *fontSize, short *fontAlign, short *fontY, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_broadcast2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_broadcast2_post[hIndex].func; + postHookFunc(bl, mes, &len, &fontColor, &fontType, &fontSize, &fontAlign, &fontY, &target); + } + } + return; +} +void HP_clif_messagecolor(struct block_list *bl, unsigned long color, const char *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_messagecolor_pre ) { + void (*preHookFunc) (struct block_list *bl, unsigned long *color, const char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_messagecolor_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_messagecolor_pre[hIndex].func; + preHookFunc(bl, &color, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.messagecolor(bl, color, msg); + } + if( HPMHooks.count.HP_clif_messagecolor_post ) { + void (*postHookFunc) (struct block_list *bl, unsigned long *color, const char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_messagecolor_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_messagecolor_post[hIndex].func; + postHookFunc(bl, &color, msg); + } + } + return; +} +void HP_clif_disp_overhead(struct block_list *bl, const char *mes) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_disp_overhead_pre ) { + void (*preHookFunc) (struct block_list *bl, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_disp_overhead_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_disp_overhead_pre[hIndex].func; + preHookFunc(bl, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.disp_overhead(bl, mes); + } + if( HPMHooks.count.HP_clif_disp_overhead_post ) { + void (*postHookFunc) (struct block_list *bl, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_disp_overhead_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_disp_overhead_post[hIndex].func; + postHookFunc(bl, mes); + } + } + return; +} +void HP_clif_msg(struct map_session_data *sd, unsigned short id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_msg_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned short *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_msg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_msg_pre[hIndex].func; + preHookFunc(sd, &id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.msg(sd, id); + } + if( HPMHooks.count.HP_clif_msg_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned short *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_msg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_msg_post[hIndex].func; + postHookFunc(sd, &id); + } + } + return; +} +void HP_clif_msg_value(struct map_session_data *sd, unsigned short id, int value) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_msg_value_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned short *id, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_msg_value_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_msg_value_pre[hIndex].func; + preHookFunc(sd, &id, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.msg_value(sd, id, value); + } + if( HPMHooks.count.HP_clif_msg_value_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned short *id, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_msg_value_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_msg_value_post[hIndex].func; + postHookFunc(sd, &id, &value); + } + } + return; +} +void HP_clif_msg_skill(struct map_session_data *sd, uint16 skill_id, int msg_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_msg_skill_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, int *msg_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_msg_skill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_msg_skill_pre[hIndex].func; + preHookFunc(sd, &skill_id, &msg_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.msg_skill(sd, skill_id, msg_id); + } + if( HPMHooks.count.HP_clif_msg_skill_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint16 *skill_id, int *msg_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_msg_skill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_msg_skill_post[hIndex].func; + postHookFunc(sd, &skill_id, &msg_id); + } + } + return; +} +void HP_clif_msgtable(int fd, int line) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_msgtable_pre ) { + void (*preHookFunc) (int *fd, int *line); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_msgtable_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_msgtable_pre[hIndex].func; + preHookFunc(&fd, &line); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.msgtable(fd, line); + } + if( HPMHooks.count.HP_clif_msgtable_post ) { + void (*postHookFunc) (int *fd, int *line); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_msgtable_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_msgtable_post[hIndex].func; + postHookFunc(&fd, &line); + } + } + return; +} +void HP_clif_msgtable_num(int fd, int line, int num) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_msgtable_num_pre ) { + void (*preHookFunc) (int *fd, int *line, int *num); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_msgtable_num_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_msgtable_num_pre[hIndex].func; + preHookFunc(&fd, &line, &num); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.msgtable_num(fd, line, num); + } + if( HPMHooks.count.HP_clif_msgtable_num_post ) { + void (*postHookFunc) (int *fd, int *line, int *num); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_msgtable_num_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_msgtable_num_post[hIndex].func; + postHookFunc(&fd, &line, &num); + } + } + return; +} +void HP_clif_message(const int fd, const char *mes) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_message_pre ) { + void (*preHookFunc) (const int *fd, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_message_pre[hIndex].func; + preHookFunc(&fd, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.message(fd, mes); + } + if( HPMHooks.count.HP_clif_message_post ) { + void (*postHookFunc) (const int *fd, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_message_post[hIndex].func; + postHookFunc(&fd, mes); + } + } + return; +} +void HP_clif_messageln(const int fd, const char *mes) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_messageln_pre ) { + void (*preHookFunc) (const int *fd, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_messageln_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_messageln_pre[hIndex].func; + preHookFunc(&fd, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.messageln(fd, mes); + } + if( HPMHooks.count.HP_clif_messageln_post ) { + void (*postHookFunc) (const int *fd, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_messageln_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_messageln_post[hIndex].func; + postHookFunc(&fd, mes); + } + } + return; +} +int HP_clif_colormes(int fd, enum clif_colors color, const char *msg) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_colormes_pre ) { + int (*preHookFunc) (int *fd, enum clif_colors *color, const char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_colormes_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_colormes_pre[hIndex].func; + retVal___ = preHookFunc(&fd, &color, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.colormes(fd, color, msg); + } + if( HPMHooks.count.HP_clif_colormes_post ) { + int (*postHookFunc) (int retVal___, int *fd, enum clif_colors *color, const char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_colormes_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_colormes_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd, &color, msg); + } + } + return retVal___; +} +bool HP_clif_process_message(struct map_session_data *sd, int format, char **name_, int *namelen_, char **message_, int *messagelen_) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_clif_process_message_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, int *format, char **name_, int *namelen_, char **message_, int *messagelen_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_process_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_process_message_pre[hIndex].func; + retVal___ = preHookFunc(sd, &format, name_, namelen_, message_, messagelen_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.process_message(sd, format, name_, namelen_, message_, messagelen_); + } + if( HPMHooks.count.HP_clif_process_message_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int *format, char **name_, int *namelen_, char **message_, int *messagelen_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_process_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_process_message_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &format, name_, namelen_, message_, messagelen_); + } + } + return retVal___; +} +void HP_clif_wisexin(struct map_session_data *sd, int type, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_wisexin_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_wisexin_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_wisexin_pre[hIndex].func; + preHookFunc(sd, &type, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.wisexin(sd, type, flag); + } + if( HPMHooks.count.HP_clif_wisexin_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_wisexin_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_wisexin_post[hIndex].func; + postHookFunc(sd, &type, &flag); + } + } + return; +} +void HP_clif_wisall(struct map_session_data *sd, int type, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_wisall_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_wisall_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_wisall_pre[hIndex].func; + preHookFunc(sd, &type, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.wisall(sd, type, flag); + } + if( HPMHooks.count.HP_clif_wisall_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_wisall_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_wisall_post[hIndex].func; + postHookFunc(sd, &type, &flag); + } + } + return; +} +void HP_clif_PMIgnoreList(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PMIgnoreList_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PMIgnoreList_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PMIgnoreList_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PMIgnoreList(sd); + } + if( HPMHooks.count.HP_clif_PMIgnoreList_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PMIgnoreList_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PMIgnoreList_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_traderequest(struct map_session_data *sd, const char *name) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_traderequest_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_traderequest_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_traderequest_pre[hIndex].func; + preHookFunc(sd, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.traderequest(sd, name); + } + if( HPMHooks.count.HP_clif_traderequest_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_traderequest_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_traderequest_post[hIndex].func; + postHookFunc(sd, name); + } + } + return; +} +void HP_clif_tradestart(struct map_session_data *sd, uint8 type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_tradestart_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint8 *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradestart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_tradestart_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.tradestart(sd, type); + } + if( HPMHooks.count.HP_clif_tradestart_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint8 *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradestart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_tradestart_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_tradeadditem(struct map_session_data *sd, struct map_session_data *tsd, int index, int amount) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_tradeadditem_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *tsd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradeadditem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_tradeadditem_pre[hIndex].func; + preHookFunc(sd, tsd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.tradeadditem(sd, tsd, index, amount); + } + if( HPMHooks.count.HP_clif_tradeadditem_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *tsd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradeadditem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_tradeadditem_post[hIndex].func; + postHookFunc(sd, tsd, &index, &amount); + } + } + return; +} +void HP_clif_tradeitemok(struct map_session_data *sd, int index, int fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_tradeitemok_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *index, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradeitemok_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_tradeitemok_pre[hIndex].func; + preHookFunc(sd, &index, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.tradeitemok(sd, index, fail); + } + if( HPMHooks.count.HP_clif_tradeitemok_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *index, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradeitemok_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_tradeitemok_post[hIndex].func; + postHookFunc(sd, &index, &fail); + } + } + return; +} +void HP_clif_tradedeal_lock(struct map_session_data *sd, int fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_tradedeal_lock_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradedeal_lock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_tradedeal_lock_pre[hIndex].func; + preHookFunc(sd, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.tradedeal_lock(sd, fail); + } + if( HPMHooks.count.HP_clif_tradedeal_lock_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradedeal_lock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_tradedeal_lock_post[hIndex].func; + postHookFunc(sd, &fail); + } + } + return; +} +void HP_clif_tradecancelled(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_tradecancelled_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradecancelled_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_tradecancelled_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.tradecancelled(sd); + } + if( HPMHooks.count.HP_clif_tradecancelled_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradecancelled_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_tradecancelled_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_tradecompleted(struct map_session_data *sd, int fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_tradecompleted_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradecompleted_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_tradecompleted_pre[hIndex].func; + preHookFunc(sd, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.tradecompleted(sd, fail); + } + if( HPMHooks.count.HP_clif_tradecompleted_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradecompleted_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_tradecompleted_post[hIndex].func; + postHookFunc(sd, &fail); + } + } + return; +} +void HP_clif_tradeundo(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_tradeundo_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradeundo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_tradeundo_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.tradeundo(sd); + } + if( HPMHooks.count.HP_clif_tradeundo_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_tradeundo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_tradeundo_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_openvendingreq(struct map_session_data *sd, int num) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_openvendingreq_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *num); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_openvendingreq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_openvendingreq_pre[hIndex].func; + preHookFunc(sd, &num); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.openvendingreq(sd, num); + } + if( HPMHooks.count.HP_clif_openvendingreq_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *num); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_openvendingreq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_openvendingreq_post[hIndex].func; + postHookFunc(sd, &num); + } + } + return; +} +void HP_clif_showvendingboard(struct block_list *bl, const char *message, int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_showvendingboard_pre ) { + void (*preHookFunc) (struct block_list *bl, const char *message, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_showvendingboard_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_showvendingboard_pre[hIndex].func; + preHookFunc(bl, message, &fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.showvendingboard(bl, message, fd); + } + if( HPMHooks.count.HP_clif_showvendingboard_post ) { + void (*postHookFunc) (struct block_list *bl, const char *message, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_showvendingboard_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_showvendingboard_post[hIndex].func; + postHookFunc(bl, message, &fd); + } + } + return; +} +void HP_clif_closevendingboard(struct block_list *bl, int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_closevendingboard_pre ) { + void (*preHookFunc) (struct block_list *bl, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_closevendingboard_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_closevendingboard_pre[hIndex].func; + preHookFunc(bl, &fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.closevendingboard(bl, fd); + } + if( HPMHooks.count.HP_clif_closevendingboard_post ) { + void (*postHookFunc) (struct block_list *bl, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_closevendingboard_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_closevendingboard_post[hIndex].func; + postHookFunc(bl, &fd); + } + } + return; +} +void HP_clif_vendinglist(struct map_session_data *sd, unsigned int id, struct s_vending *vending_list) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_vendinglist_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned int *id, struct s_vending *vending_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_vendinglist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_vendinglist_pre[hIndex].func; + preHookFunc(sd, &id, vending_list); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.vendinglist(sd, id, vending_list); + } + if( HPMHooks.count.HP_clif_vendinglist_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int *id, struct s_vending *vending_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_vendinglist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_vendinglist_post[hIndex].func; + postHookFunc(sd, &id, vending_list); + } + } + return; +} +void HP_clif_buyvending(struct map_session_data *sd, int index, int amount, int fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyvending_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *index, int *amount, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyvending_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyvending_pre[hIndex].func; + preHookFunc(sd, &index, &amount, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyvending(sd, index, amount, fail); + } + if( HPMHooks.count.HP_clif_buyvending_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *index, int *amount, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyvending_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyvending_post[hIndex].func; + postHookFunc(sd, &index, &amount, &fail); + } + } + return; +} +void HP_clif_openvending(struct map_session_data *sd, int id, struct s_vending *vending_list) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_openvending_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *id, struct s_vending *vending_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_openvending_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_openvending_pre[hIndex].func; + preHookFunc(sd, &id, vending_list); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.openvending(sd, id, vending_list); + } + if( HPMHooks.count.HP_clif_openvending_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *id, struct s_vending *vending_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_openvending_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_openvending_post[hIndex].func; + postHookFunc(sd, &id, vending_list); + } + } + return; +} +void HP_clif_vendingreport(struct map_session_data *sd, int index, int amount) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_vendingreport_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_vendingreport_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_vendingreport_pre[hIndex].func; + preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.vendingreport(sd, index, amount); + } + if( HPMHooks.count.HP_clif_vendingreport_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_vendingreport_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_vendingreport_post[hIndex].func; + postHookFunc(sd, &index, &amount); + } + } + return; +} +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 ) { + void (*preHookFunc) (struct map_session_data *sd, struct item *items, int *items_length); + 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 ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.storagelist(sd, items, items_length); + } + if( HPMHooks.count.HP_clif_storagelist_post ) { + 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; + postHookFunc(sd, items, &items_length); + } + } + 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 ) { + void (*preHookFunc) (struct map_session_data *sd, int *amount, int *max_amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_updatestorageamount_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_updatestorageamount_pre[hIndex].func; + preHookFunc(sd, &amount, &max_amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.updatestorageamount(sd, amount, max_amount); + } + if( HPMHooks.count.HP_clif_updatestorageamount_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *amount, int *max_amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_updatestorageamount_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_updatestorageamount_post[hIndex].func; + postHookFunc(sd, &amount, &max_amount); + } + } + return; +} +void HP_clif_storageitemadded(struct map_session_data *sd, struct item *i, int index, int amount) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_storageitemadded_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct item *i, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_storageitemadded_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_storageitemadded_pre[hIndex].func; + preHookFunc(sd, i, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.storageitemadded(sd, i, index, amount); + } + if( HPMHooks.count.HP_clif_storageitemadded_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct item *i, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_storageitemadded_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_storageitemadded_post[hIndex].func; + postHookFunc(sd, i, &index, &amount); + } + } + return; +} +void HP_clif_storageitemremoved(struct map_session_data *sd, int index, int amount) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_storageitemremoved_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_storageitemremoved_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_storageitemremoved_pre[hIndex].func; + preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.storageitemremoved(sd, index, amount); + } + if( HPMHooks.count.HP_clif_storageitemremoved_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_storageitemremoved_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_storageitemremoved_post[hIndex].func; + postHookFunc(sd, &index, &amount); + } + } + return; +} +void HP_clif_storageclose(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_storageclose_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_storageclose_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_storageclose_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.storageclose(sd); + } + if( HPMHooks.count.HP_clif_storageclose_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_storageclose_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_storageclose_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_skillinfoblock(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skillinfoblock_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillinfoblock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skillinfoblock_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skillinfoblock(sd); + } + if( HPMHooks.count.HP_clif_skillinfoblock_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillinfoblock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skillinfoblock_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_skillup(struct map_session_data *sd, uint16 skill_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skillup_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skillup_pre[hIndex].func; + preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skillup(sd, skill_id); + } + if( HPMHooks.count.HP_clif_skillup_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skillup_post[hIndex].func; + postHookFunc(sd, &skill_id); + } + } + return; +} +void HP_clif_skillinfo(struct map_session_data *sd, int skill_id, int inf) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_skillinfo_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *skill_id, int *inf); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_skillinfo_pre[hIndex].func; + preHookFunc(sd, &skill_id, &inf); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.skillinfo(sd, skill_id, inf); + } + if( HPMHooks.count.HP_clif_skillinfo_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *skill_id, int *inf); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_skillinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_skillinfo_post[hIndex].func; + postHookFunc(sd, &skill_id, &inf); + } + } + return; +} +void HP_clif_addskill(struct map_session_data *sd, int id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_addskill_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_addskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_addskill_pre[hIndex].func; + preHookFunc(sd, &id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.addskill(sd, id); + } + if( HPMHooks.count.HP_clif_addskill_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_addskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_addskill_post[hIndex].func; + postHookFunc(sd, &id); + } + } + return; +} +void HP_clif_deleteskill(struct map_session_data *sd, int id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_deleteskill_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_deleteskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_deleteskill_pre[hIndex].func; + preHookFunc(sd, &id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.deleteskill(sd, id); + } + if( HPMHooks.count.HP_clif_deleteskill_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_deleteskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_deleteskill_post[hIndex].func; + postHookFunc(sd, &id); + } + } + return; +} +void HP_clif_party_created(struct map_session_data *sd, int result) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_created_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_created_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_created_pre[hIndex].func; + preHookFunc(sd, &result); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_created(sd, result); + } + if( HPMHooks.count.HP_clif_party_created_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_created_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_created_post[hIndex].func; + postHookFunc(sd, &result); + } + } + return; +} +void HP_clif_party_member_info(struct party_data *p, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_member_info_pre ) { + void (*preHookFunc) (struct party_data *p, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_member_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_member_info_pre[hIndex].func; + preHookFunc(p, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_member_info(p, sd); + } + if( HPMHooks.count.HP_clif_party_member_info_post ) { + void (*postHookFunc) (struct party_data *p, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_member_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_member_info_post[hIndex].func; + postHookFunc(p, sd); + } + } + return; +} +void HP_clif_party_info(struct party_data *p, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_info_pre ) { + void (*preHookFunc) (struct party_data *p, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_info_pre[hIndex].func; + preHookFunc(p, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_info(p, sd); + } + if( HPMHooks.count.HP_clif_party_info_post ) { + void (*postHookFunc) (struct party_data *p, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_info_post[hIndex].func; + postHookFunc(p, sd); + } + } + return; +} +void HP_clif_party_invite(struct map_session_data *sd, struct map_session_data *tsd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_invite_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_invite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_invite_pre[hIndex].func; + preHookFunc(sd, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_invite(sd, tsd); + } + if( HPMHooks.count.HP_clif_party_invite_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_invite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_invite_post[hIndex].func; + postHookFunc(sd, tsd); + } + } + return; +} +void HP_clif_party_inviteack(struct map_session_data *sd, const char *nick, int result) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_inviteack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *nick, int *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_inviteack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_inviteack_pre[hIndex].func; + preHookFunc(sd, nick, &result); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_inviteack(sd, nick, result); + } + if( HPMHooks.count.HP_clif_party_inviteack_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *nick, int *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_inviteack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_inviteack_post[hIndex].func; + postHookFunc(sd, nick, &result); + } + } + return; +} +void HP_clif_party_option(struct party_data *p, struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_option_pre ) { + void (*preHookFunc) (struct party_data *p, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_option_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_option_pre[hIndex].func; + preHookFunc(p, sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_option(p, sd, flag); + } + if( HPMHooks.count.HP_clif_party_option_post ) { + void (*postHookFunc) (struct party_data *p, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_option_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_option_post[hIndex].func; + postHookFunc(p, sd, &flag); + } + } + return; +} +void HP_clif_party_withdraw(struct party_data *p, struct map_session_data *sd, int account_id, const char *name, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_withdraw_pre ) { + void (*preHookFunc) (struct party_data *p, struct map_session_data *sd, int *account_id, const char *name, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_withdraw_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_withdraw_pre[hIndex].func; + preHookFunc(p, sd, &account_id, name, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_withdraw(p, sd, account_id, name, flag); + } + if( HPMHooks.count.HP_clif_party_withdraw_post ) { + void (*postHookFunc) (struct party_data *p, struct map_session_data *sd, int *account_id, const char *name, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_withdraw_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_withdraw_post[hIndex].func; + postHookFunc(p, sd, &account_id, name, &flag); + } + } + return; +} +void HP_clif_party_message(struct party_data *p, int account_id, const char *mes, int len) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_message_pre ) { + void (*preHookFunc) (struct party_data *p, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_message_pre[hIndex].func; + preHookFunc(p, &account_id, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_message(p, account_id, mes, len); + } + if( HPMHooks.count.HP_clif_party_message_post ) { + void (*postHookFunc) (struct party_data *p, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_message_post[hIndex].func; + postHookFunc(p, &account_id, mes, &len); + } + } + return; +} +void HP_clif_party_xy(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_xy_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_xy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_xy_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_xy(sd); + } + if( HPMHooks.count.HP_clif_party_xy_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_xy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_xy_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_party_xy_single(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_xy_single_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_xy_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_xy_single_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_xy_single(fd, sd); + } + if( HPMHooks.count.HP_clif_party_xy_single_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_xy_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_xy_single_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_party_hp(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_hp_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_hp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_hp_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_hp(sd); + } + if( HPMHooks.count.HP_clif_party_hp_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_hp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_hp_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_party_xy_remove(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_xy_remove_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_xy_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_xy_remove_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_xy_remove(sd); + } + if( HPMHooks.count.HP_clif_party_xy_remove_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_xy_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_xy_remove_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_party_show_picker(struct map_session_data *sd, struct item *item_data) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_party_show_picker_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct item *item_data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_show_picker_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_party_show_picker_pre[hIndex].func; + preHookFunc(sd, item_data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.party_show_picker(sd, item_data); + } + if( HPMHooks.count.HP_clif_party_show_picker_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct item *item_data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_party_show_picker_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_party_show_picker_post[hIndex].func; + postHookFunc(sd, item_data); + } + } + return; +} +void HP_clif_partyinvitationstate(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_partyinvitationstate_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_partyinvitationstate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_partyinvitationstate_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.partyinvitationstate(sd); + } + if( HPMHooks.count.HP_clif_partyinvitationstate_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_partyinvitationstate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_partyinvitationstate_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_created(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_created_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_created_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_created_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_created(sd, flag); + } + if( HPMHooks.count.HP_clif_guild_created_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_created_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_created_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_guild_belonginfo(struct map_session_data *sd, struct guild *g) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_belonginfo_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_belonginfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_belonginfo_pre[hIndex].func; + preHookFunc(sd, g); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_belonginfo(sd, g); + } + if( HPMHooks.count.HP_clif_guild_belonginfo_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_belonginfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_belonginfo_post[hIndex].func; + postHookFunc(sd, g); + } + } + return; +} +void HP_clif_guild_masterormember(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_masterormember_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_masterormember_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_masterormember_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_masterormember(sd); + } + if( HPMHooks.count.HP_clif_guild_masterormember_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_masterormember_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_masterormember_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_basicinfo(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_basicinfo_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_basicinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_basicinfo_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_basicinfo(sd); + } + if( HPMHooks.count.HP_clif_guild_basicinfo_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_basicinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_basicinfo_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_allianceinfo(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_allianceinfo_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_allianceinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_allianceinfo_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_allianceinfo(sd); + } + if( HPMHooks.count.HP_clif_guild_allianceinfo_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_allianceinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_allianceinfo_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_memberlist(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_memberlist_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_memberlist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_memberlist_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_memberlist(sd); + } + if( HPMHooks.count.HP_clif_guild_memberlist_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_memberlist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_memberlist_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_skillinfo(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_skillinfo_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_skillinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_skillinfo_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_skillinfo(sd); + } + if( HPMHooks.count.HP_clif_guild_skillinfo_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_skillinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_skillinfo_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_send_onlineinfo(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_send_onlineinfo_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_send_onlineinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_send_onlineinfo_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_send_onlineinfo(sd); + } + if( HPMHooks.count.HP_clif_guild_send_onlineinfo_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_send_onlineinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_send_onlineinfo_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_memberlogin_notice(struct guild *g, int idx, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_memberlogin_notice_pre ) { + void (*preHookFunc) (struct guild *g, int *idx, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_memberlogin_notice_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_memberlogin_notice_pre[hIndex].func; + preHookFunc(g, &idx, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_memberlogin_notice(g, idx, flag); + } + if( HPMHooks.count.HP_clif_guild_memberlogin_notice_post ) { + void (*postHookFunc) (struct guild *g, int *idx, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_memberlogin_notice_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_memberlogin_notice_post[hIndex].func; + postHookFunc(g, &idx, &flag); + } + } + return; +} +void HP_clif_guild_invite(struct map_session_data *sd, struct guild *g) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_invite_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_invite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_invite_pre[hIndex].func; + preHookFunc(sd, g); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_invite(sd, g); + } + if( HPMHooks.count.HP_clif_guild_invite_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_invite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_invite_post[hIndex].func; + postHookFunc(sd, g); + } + } + return; +} +void HP_clif_guild_inviteack(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_inviteack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_inviteack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_inviteack_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_inviteack(sd, flag); + } + if( HPMHooks.count.HP_clif_guild_inviteack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_inviteack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_inviteack_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_guild_leave(struct map_session_data *sd, const char *name, const char *mes) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_leave_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *name, const char *mes); + 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); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_leave(sd, name, mes); + } + if( HPMHooks.count.HP_clif_guild_leave_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *name, 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); + } + } + return; +} +void HP_clif_guild_expulsion(struct map_session_data *sd, const char *name, const char *mes, int account_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_expulsion_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *name, const char *mes, int *account_id); + 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); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_expulsion(sd, name, mes, account_id); + } + if( HPMHooks.count.HP_clif_guild_expulsion_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *name, 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); + } + } + return; +} +void HP_clif_guild_positionchanged(struct guild *g, int idx) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_positionchanged_pre ) { + void (*preHookFunc) (struct guild *g, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_positionchanged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_positionchanged_pre[hIndex].func; + preHookFunc(g, &idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_positionchanged(g, idx); + } + if( HPMHooks.count.HP_clif_guild_positionchanged_post ) { + void (*postHookFunc) (struct guild *g, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_positionchanged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_positionchanged_post[hIndex].func; + postHookFunc(g, &idx); + } + } + return; +} +void HP_clif_guild_memberpositionchanged(struct guild *g, int idx) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_memberpositionchanged_pre ) { + void (*preHookFunc) (struct guild *g, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_memberpositionchanged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_memberpositionchanged_pre[hIndex].func; + preHookFunc(g, &idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_memberpositionchanged(g, idx); + } + if( HPMHooks.count.HP_clif_guild_memberpositionchanged_post ) { + void (*postHookFunc) (struct guild *g, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_memberpositionchanged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_memberpositionchanged_post[hIndex].func; + postHookFunc(g, &idx); + } + } + return; +} +void HP_clif_guild_emblem(struct map_session_data *sd, struct guild *g) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_emblem_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_emblem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_emblem_pre[hIndex].func; + preHookFunc(sd, g); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_emblem(sd, g); + } + if( HPMHooks.count.HP_clif_guild_emblem_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_emblem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_emblem_post[hIndex].func; + postHookFunc(sd, g); + } + } + return; +} +void HP_clif_guild_emblem_area(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_emblem_area_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_emblem_area_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_emblem_area_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_emblem_area(bl); + } + if( HPMHooks.count.HP_clif_guild_emblem_area_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_emblem_area_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_emblem_area_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_clif_guild_notice(struct map_session_data *sd, struct guild *g) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_notice_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_notice_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_notice_pre[hIndex].func; + preHookFunc(sd, g); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_notice(sd, g); + } + if( HPMHooks.count.HP_clif_guild_notice_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_notice_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_notice_post[hIndex].func; + postHookFunc(sd, g); + } + } + return; +} +void HP_clif_guild_message(struct guild *g, int account_id, const char *mes, int len) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_message_pre ) { + void (*preHookFunc) (struct guild *g, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_message_pre[hIndex].func; + preHookFunc(g, &account_id, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_message(g, account_id, mes, len); + } + if( HPMHooks.count.HP_clif_guild_message_post ) { + void (*postHookFunc) (struct guild *g, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_message_post[hIndex].func; + postHookFunc(g, &account_id, mes, &len); + } + } + return; +} +int HP_clif_guild_skillup(struct map_session_data *sd, uint16 skill_id, int lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_guild_skillup_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_skillup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_skillup_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id, &lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.guild_skillup(sd, skill_id, lv); + } + if( HPMHooks.count.HP_clif_guild_skillup_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_skillup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_skillup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id, &lv); + } + } + return retVal___; +} +void HP_clif_guild_reqalliance(struct map_session_data *sd, int account_id, const char *name) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_reqalliance_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *account_id, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_reqalliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_reqalliance_pre[hIndex].func; + preHookFunc(sd, &account_id, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_reqalliance(sd, account_id, name); + } + if( HPMHooks.count.HP_clif_guild_reqalliance_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *account_id, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_reqalliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_reqalliance_post[hIndex].func; + postHookFunc(sd, &account_id, name); + } + } + return; +} +void HP_clif_guild_allianceack(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_allianceack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_allianceack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_allianceack_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_allianceack(sd, flag); + } + if( HPMHooks.count.HP_clif_guild_allianceack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_allianceack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_allianceack_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_guild_delalliance(struct map_session_data *sd, int guild_id, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_delalliance_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *guild_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_delalliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_delalliance_pre[hIndex].func; + preHookFunc(sd, &guild_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_delalliance(sd, guild_id, flag); + } + if( HPMHooks.count.HP_clif_guild_delalliance_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *guild_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_delalliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_delalliance_post[hIndex].func; + postHookFunc(sd, &guild_id, &flag); + } + } + return; +} +void HP_clif_guild_oppositionack(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_oppositionack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_oppositionack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_oppositionack_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_oppositionack(sd, flag); + } + if( HPMHooks.count.HP_clif_guild_oppositionack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_oppositionack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_oppositionack_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_guild_broken(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_broken_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_broken_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_broken_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_broken(sd, flag); + } + if( HPMHooks.count.HP_clif_guild_broken_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_broken_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_broken_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_guild_xy(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_xy_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_xy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_xy_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_xy(sd); + } + if( HPMHooks.count.HP_clif_guild_xy_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_xy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_xy_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_xy_single(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_xy_single_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_xy_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_xy_single_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_xy_single(fd, sd); + } + if( HPMHooks.count.HP_clif_guild_xy_single_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_xy_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_xy_single_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_guild_xy_remove(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_xy_remove_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_xy_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_xy_remove_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_xy_remove(sd); + } + if( HPMHooks.count.HP_clif_guild_xy_remove_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_xy_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_xy_remove_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_positionnamelist(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_positionnamelist_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_positionnamelist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_positionnamelist_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_positionnamelist(sd); + } + if( HPMHooks.count.HP_clif_guild_positionnamelist_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_positionnamelist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_positionnamelist_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_positioninfolist(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_positioninfolist_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_positioninfolist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_positioninfolist_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_positioninfolist(sd); + } + if( HPMHooks.count.HP_clif_guild_positioninfolist_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_positioninfolist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_positioninfolist_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_guild_expulsionlist(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_guild_expulsionlist_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_expulsionlist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_guild_expulsionlist_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.guild_expulsionlist(sd); + } + if( HPMHooks.count.HP_clif_guild_expulsionlist_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_guild_expulsionlist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_guild_expulsionlist_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +bool HP_clif_validate_emblem(const uint8 *emblem, unsigned long emblem_len) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_clif_validate_emblem_pre ) { + bool (*preHookFunc) (const uint8 *emblem, unsigned long *emblem_len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_validate_emblem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_validate_emblem_pre[hIndex].func; + retVal___ = preHookFunc(emblem, &emblem_len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.validate_emblem(emblem, emblem_len); + } + if( HPMHooks.count.HP_clif_validate_emblem_post ) { + bool (*postHookFunc) (bool retVal___, const uint8 *emblem, unsigned long *emblem_len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_validate_emblem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_validate_emblem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, emblem, &emblem_len); + } + } + return retVal___; +} +void HP_clif_bg_hp(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bg_hp_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_hp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bg_hp_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bg_hp(sd); + } + if( HPMHooks.count.HP_clif_bg_hp_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_hp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bg_hp_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_bg_xy(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bg_xy_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_xy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bg_xy_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bg_xy(sd); + } + if( HPMHooks.count.HP_clif_bg_xy_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_xy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bg_xy_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_bg_xy_remove(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bg_xy_remove_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_xy_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bg_xy_remove_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bg_xy_remove(sd); + } + if( HPMHooks.count.HP_clif_bg_xy_remove_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_xy_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bg_xy_remove_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_bg_message(struct battleground_data *bgd, int src_id, const char *name, const char *mes, int len) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bg_message_pre ) { + void (*preHookFunc) (struct battleground_data *bgd, int *src_id, const char *name, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bg_message_pre[hIndex].func; + preHookFunc(bgd, &src_id, name, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bg_message(bgd, src_id, name, mes, len); + } + if( HPMHooks.count.HP_clif_bg_message_post ) { + void (*postHookFunc) (struct battleground_data *bgd, int *src_id, const char *name, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bg_message_post[hIndex].func; + postHookFunc(bgd, &src_id, name, mes, &len); + } + } + return; +} +void HP_clif_bg_updatescore(int16 m) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bg_updatescore_pre ) { + void (*preHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_updatescore_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bg_updatescore_pre[hIndex].func; + preHookFunc(&m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bg_updatescore(m); + } + if( HPMHooks.count.HP_clif_bg_updatescore_post ) { + void (*postHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_updatescore_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bg_updatescore_post[hIndex].func; + postHookFunc(&m); + } + } + return; +} +void HP_clif_bg_updatescore_single(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bg_updatescore_single_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_updatescore_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bg_updatescore_single_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bg_updatescore_single(sd); + } + if( HPMHooks.count.HP_clif_bg_updatescore_single_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bg_updatescore_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bg_updatescore_single_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_sendbgemblem_area(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_sendbgemblem_area_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendbgemblem_area_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_sendbgemblem_area_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.sendbgemblem_area(sd); + } + if( HPMHooks.count.HP_clif_sendbgemblem_area_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendbgemblem_area_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_sendbgemblem_area_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_sendbgemblem_single(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_sendbgemblem_single_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendbgemblem_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_sendbgemblem_single_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.sendbgemblem_single(fd, sd); + } + if( HPMHooks.count.HP_clif_sendbgemblem_single_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendbgemblem_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_sendbgemblem_single_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +int HP_clif_instance(int instance_id, int type, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_instance_pre ) { + int (*preHookFunc) (int *instance_id, int *type, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_instance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_instance_pre[hIndex].func; + retVal___ = preHookFunc(&instance_id, &type, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.instance(instance_id, type, flag); + } + if( HPMHooks.count.HP_clif_instance_post ) { + int (*postHookFunc) (int retVal___, int *instance_id, int *type, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_instance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_instance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &instance_id, &type, &flag); + } + } + return retVal___; +} +void HP_clif_instance_join(int fd, int instance_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_instance_join_pre ) { + void (*preHookFunc) (int *fd, int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_instance_join_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_instance_join_pre[hIndex].func; + preHookFunc(&fd, &instance_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.instance_join(fd, instance_id); + } + if( HPMHooks.count.HP_clif_instance_join_post ) { + void (*postHookFunc) (int *fd, int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_instance_join_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_instance_join_post[hIndex].func; + postHookFunc(&fd, &instance_id); + } + } + return; +} +void HP_clif_instance_leave(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_instance_leave_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_instance_leave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_instance_leave_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.instance_leave(fd); + } + if( HPMHooks.count.HP_clif_instance_leave_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_instance_leave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_instance_leave_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_clif_catch_process(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_catch_process_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_catch_process_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_catch_process_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.catch_process(sd); + } + if( HPMHooks.count.HP_clif_catch_process_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_catch_process_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_catch_process_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_pet_roulette(struct map_session_data *sd, int data) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pet_roulette_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pet_roulette_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pet_roulette_pre[hIndex].func; + preHookFunc(sd, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pet_roulette(sd, data); + } + if( HPMHooks.count.HP_clif_pet_roulette_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pet_roulette_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pet_roulette_post[hIndex].func; + postHookFunc(sd, &data); + } + } + return; +} +void HP_clif_sendegg(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_sendegg_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendegg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_sendegg_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.sendegg(sd); + } + if( HPMHooks.count.HP_clif_sendegg_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendegg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_sendegg_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_send_petstatus(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_send_petstatus_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_petstatus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_send_petstatus_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.send_petstatus(sd); + } + if( HPMHooks.count.HP_clif_send_petstatus_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_petstatus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_send_petstatus_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_send_petdata(struct map_session_data *sd, struct pet_data *pd, int type, int param) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_send_petdata_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct pet_data *pd, int *type, int *param); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_petdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_send_petdata_pre[hIndex].func; + preHookFunc(sd, pd, &type, ¶m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.send_petdata(sd, pd, type, param); + } + if( HPMHooks.count.HP_clif_send_petdata_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct pet_data *pd, int *type, int *param); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_petdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_send_petdata_post[hIndex].func; + postHookFunc(sd, pd, &type, ¶m); + } + } + return; +} +void HP_clif_pet_emotion(struct pet_data *pd, int param) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pet_emotion_pre ) { + void (*preHookFunc) (struct pet_data *pd, int *param); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pet_emotion_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pet_emotion_pre[hIndex].func; + preHookFunc(pd, ¶m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pet_emotion(pd, param); + } + if( HPMHooks.count.HP_clif_pet_emotion_post ) { + void (*postHookFunc) (struct pet_data *pd, int *param); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pet_emotion_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pet_emotion_post[hIndex].func; + postHookFunc(pd, ¶m); + } + } + return; +} +void HP_clif_pet_food(struct map_session_data *sd, int foodid, int fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pet_food_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *foodid, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pet_food_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pet_food_pre[hIndex].func; + preHookFunc(sd, &foodid, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pet_food(sd, foodid, fail); + } + if( HPMHooks.count.HP_clif_pet_food_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *foodid, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pet_food_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pet_food_post[hIndex].func; + postHookFunc(sd, &foodid, &fail); + } + } + return; +} +int HP_clif_friendslist_toggle_sub(struct map_session_data *sd, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_friendslist_toggle_sub_pre ) { + int (*preHookFunc) (struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_friendslist_toggle_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_clif_friendslist_toggle_sub_pre[hIndex].func; + retVal___ = preHookFunc(sd, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.clif.friendslist_toggle_sub(sd, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_clif_friendslist_toggle_sub_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_friendslist_toggle_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_clif_friendslist_toggle_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_clif_friendslist_send(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_friendslist_send_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_friendslist_send_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_friendslist_send_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.friendslist_send(sd); + } + if( HPMHooks.count.HP_clif_friendslist_send_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_friendslist_send_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_friendslist_send_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_friendslist_reqack(struct map_session_data *sd, struct map_session_data *f_sd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_friendslist_reqack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *f_sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_friendslist_reqack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_friendslist_reqack_pre[hIndex].func; + preHookFunc(sd, f_sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.friendslist_reqack(sd, f_sd, type); + } + if( HPMHooks.count.HP_clif_friendslist_reqack_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *f_sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_friendslist_reqack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_friendslist_reqack_post[hIndex].func; + postHookFunc(sd, f_sd, &type); + } + } + return; +} +void HP_clif_friendslist_toggle(struct map_session_data *sd, int account_id, int char_id, int online) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_friendslist_toggle_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *account_id, int *char_id, int *online); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_friendslist_toggle_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_friendslist_toggle_pre[hIndex].func; + preHookFunc(sd, &account_id, &char_id, &online); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.friendslist_toggle(sd, account_id, char_id, online); + } + if( HPMHooks.count.HP_clif_friendslist_toggle_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *account_id, int *char_id, int *online); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_friendslist_toggle_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_friendslist_toggle_post[hIndex].func; + postHookFunc(sd, &account_id, &char_id, &online); + } + } + return; +} +void HP_clif_friendlist_req(struct map_session_data *sd, int account_id, int char_id, const char *name) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_friendlist_req_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *account_id, int *char_id, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_friendlist_req_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_friendlist_req_pre[hIndex].func; + preHookFunc(sd, &account_id, &char_id, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.friendlist_req(sd, account_id, char_id, name); + } + if( HPMHooks.count.HP_clif_friendlist_req_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *account_id, int *char_id, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_friendlist_req_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_friendlist_req_post[hIndex].func; + postHookFunc(sd, &account_id, &char_id, name); + } + } + return; +} +void HP_clif_GM_kickack(struct map_session_data *sd, int id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_GM_kickack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_GM_kickack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_GM_kickack_pre[hIndex].func; + preHookFunc(sd, &id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.GM_kickack(sd, id); + } + if( HPMHooks.count.HP_clif_GM_kickack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_GM_kickack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_GM_kickack_post[hIndex].func; + postHookFunc(sd, &id); + } + } + return; +} +void HP_clif_GM_kick(struct map_session_data *sd, struct map_session_data *tsd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_GM_kick_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_GM_kick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_GM_kick_pre[hIndex].func; + preHookFunc(sd, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.GM_kick(sd, tsd); + } + if( HPMHooks.count.HP_clif_GM_kick_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_GM_kick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_GM_kick_post[hIndex].func; + postHookFunc(sd, tsd); + } + } + return; +} +void HP_clif_manner_message(struct map_session_data *sd, uint32 type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_manner_message_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint32 *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_manner_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_manner_message_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.manner_message(sd, type); + } + if( HPMHooks.count.HP_clif_manner_message_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint32 *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_manner_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_manner_message_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_GM_silence(struct map_session_data *sd, struct map_session_data *tsd, uint8 type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_GM_silence_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *tsd, uint8 *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_GM_silence_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_GM_silence_pre[hIndex].func; + preHookFunc(sd, tsd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.GM_silence(sd, tsd, type); + } + if( HPMHooks.count.HP_clif_GM_silence_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *tsd, uint8 *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_GM_silence_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_GM_silence_post[hIndex].func; + postHookFunc(sd, tsd, &type); + } + } + return; +} +void HP_clif_account_name(struct map_session_data *sd, int account_id, const char *accname) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_account_name_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *account_id, const char *accname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_account_name_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_account_name_pre[hIndex].func; + preHookFunc(sd, &account_id, accname); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.account_name(sd, account_id, accname); + } + if( HPMHooks.count.HP_clif_account_name_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *account_id, const char *accname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_account_name_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_account_name_post[hIndex].func; + postHookFunc(sd, &account_id, accname); + } + } + return; +} +void HP_clif_check(int fd, struct map_session_data *pl_sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_check_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *pl_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_check_pre[hIndex].func; + preHookFunc(&fd, pl_sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.check(fd, pl_sd); + } + if( HPMHooks.count.HP_clif_check_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *pl_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_check_post[hIndex].func; + postHookFunc(&fd, pl_sd); + } + } + return; +} +void HP_clif_hominfo(struct map_session_data *sd, struct homun_data *hd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_hominfo_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct homun_data *hd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hominfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_hominfo_pre[hIndex].func; + preHookFunc(sd, hd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.hominfo(sd, hd, flag); + } + if( HPMHooks.count.HP_clif_hominfo_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct homun_data *hd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hominfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_hominfo_post[hIndex].func; + postHookFunc(sd, hd, &flag); + } + } + return; +} +int HP_clif_homskillinfoblock(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_homskillinfoblock_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_homskillinfoblock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_homskillinfoblock_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.homskillinfoblock(sd); + } + if( HPMHooks.count.HP_clif_homskillinfoblock_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_homskillinfoblock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_homskillinfoblock_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +void HP_clif_homskillup(struct map_session_data *sd, uint16 skill_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_homskillup_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_homskillup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_homskillup_pre[hIndex].func; + preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.homskillup(sd, skill_id); + } + if( HPMHooks.count.HP_clif_homskillup_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_homskillup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_homskillup_post[hIndex].func; + postHookFunc(sd, &skill_id); + } + } + return; +} +int HP_clif_hom_food(struct map_session_data *sd, int foodid, int fail) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_hom_food_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *foodid, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hom_food_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_hom_food_pre[hIndex].func; + retVal___ = preHookFunc(sd, &foodid, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.hom_food(sd, foodid, fail); + } + if( HPMHooks.count.HP_clif_hom_food_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *foodid, int *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_hom_food_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_hom_food_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &foodid, &fail); + } + } + return retVal___; +} +void HP_clif_send_homdata(struct map_session_data *sd, int state, int param) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_send_homdata_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *state, int *param); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_homdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_send_homdata_pre[hIndex].func; + preHookFunc(sd, &state, ¶m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.send_homdata(sd, state, param); + } + if( HPMHooks.count.HP_clif_send_homdata_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *state, int *param); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_homdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_send_homdata_post[hIndex].func; + postHookFunc(sd, &state, ¶m); + } + } + return; +} +void HP_clif_quest_send_list(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_quest_send_list_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_send_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_quest_send_list_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.quest_send_list(sd); + } + if( HPMHooks.count.HP_clif_quest_send_list_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_send_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_quest_send_list_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_quest_send_mission(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_quest_send_mission_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_send_mission_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_quest_send_mission_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.quest_send_mission(sd); + } + if( HPMHooks.count.HP_clif_quest_send_mission_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_send_mission_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_quest_send_mission_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_quest_add(struct map_session_data *sd, struct quest *qd, int index) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_quest_add_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct quest *qd, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_quest_add_pre[hIndex].func; + preHookFunc(sd, qd, &index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.quest_add(sd, qd, index); + } + if( HPMHooks.count.HP_clif_quest_add_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct quest *qd, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_quest_add_post[hIndex].func; + postHookFunc(sd, qd, &index); + } + } + return; +} +void HP_clif_quest_delete(struct map_session_data *sd, int quest_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_quest_delete_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *quest_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_quest_delete_pre[hIndex].func; + preHookFunc(sd, &quest_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.quest_delete(sd, quest_id); + } + if( HPMHooks.count.HP_clif_quest_delete_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *quest_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_quest_delete_post[hIndex].func; + postHookFunc(sd, &quest_id); + } + } + return; +} +void HP_clif_quest_update_status(struct map_session_data *sd, int quest_id, bool active) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_quest_update_status_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *quest_id, bool *active); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_update_status_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_quest_update_status_pre[hIndex].func; + preHookFunc(sd, &quest_id, &active); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.quest_update_status(sd, quest_id, active); + } + if( HPMHooks.count.HP_clif_quest_update_status_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *quest_id, bool *active); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_update_status_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_quest_update_status_post[hIndex].func; + postHookFunc(sd, &quest_id, &active); + } + } + return; +} +void HP_clif_quest_update_objective(struct map_session_data *sd, struct quest *qd, int index) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_quest_update_objective_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct quest *qd, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_update_objective_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_quest_update_objective_pre[hIndex].func; + preHookFunc(sd, qd, &index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.quest_update_objective(sd, qd, index); + } + if( HPMHooks.count.HP_clif_quest_update_objective_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct quest *qd, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_update_objective_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_quest_update_objective_post[hIndex].func; + postHookFunc(sd, qd, &index); + } + } + return; +} +void HP_clif_quest_show_event(struct map_session_data *sd, struct block_list *bl, short state, short color) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_quest_show_event_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct block_list *bl, short *state, short *color); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_show_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_quest_show_event_pre[hIndex].func; + preHookFunc(sd, bl, &state, &color); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.quest_show_event(sd, bl, state, color); + } + if( HPMHooks.count.HP_clif_quest_show_event_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct block_list *bl, short *state, short *color); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_quest_show_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_quest_show_event_post[hIndex].func; + postHookFunc(sd, bl, &state, &color); + } + } + return; +} +void HP_clif_mail_window(int fd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mail_window_pre ) { + void (*preHookFunc) (int *fd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_window_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mail_window_pre[hIndex].func; + preHookFunc(&fd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mail_window(fd, flag); + } + if( HPMHooks.count.HP_clif_mail_window_post ) { + void (*postHookFunc) (int *fd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_window_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mail_window_post[hIndex].func; + postHookFunc(&fd, &flag); + } + } + return; +} +void HP_clif_mail_read(struct map_session_data *sd, int mail_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mail_read_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *mail_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mail_read_pre[hIndex].func; + preHookFunc(sd, &mail_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mail_read(sd, mail_id); + } + if( HPMHooks.count.HP_clif_mail_read_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *mail_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mail_read_post[hIndex].func; + postHookFunc(sd, &mail_id); + } + } + return; +} +void HP_clif_mail_delete(int fd, int mail_id, short fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mail_delete_pre ) { + void (*preHookFunc) (int *fd, int *mail_id, short *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mail_delete_pre[hIndex].func; + preHookFunc(&fd, &mail_id, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mail_delete(fd, mail_id, fail); + } + if( HPMHooks.count.HP_clif_mail_delete_post ) { + void (*postHookFunc) (int *fd, int *mail_id, short *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mail_delete_post[hIndex].func; + postHookFunc(&fd, &mail_id, &fail); + } + } + return; +} +void HP_clif_mail_return(int fd, int mail_id, short fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mail_return_pre ) { + void (*preHookFunc) (int *fd, int *mail_id, short *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_return_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mail_return_pre[hIndex].func; + preHookFunc(&fd, &mail_id, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mail_return(fd, mail_id, fail); + } + if( HPMHooks.count.HP_clif_mail_return_post ) { + void (*postHookFunc) (int *fd, int *mail_id, short *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_return_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mail_return_post[hIndex].func; + postHookFunc(&fd, &mail_id, &fail); + } + } + return; +} +void HP_clif_mail_send(int fd, bool fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mail_send_pre ) { + void (*preHookFunc) (int *fd, bool *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_send_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mail_send_pre[hIndex].func; + preHookFunc(&fd, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mail_send(fd, fail); + } + if( HPMHooks.count.HP_clif_mail_send_post ) { + void (*postHookFunc) (int *fd, bool *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_send_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mail_send_post[hIndex].func; + postHookFunc(&fd, &fail); + } + } + return; +} +void HP_clif_mail_new(int fd, int mail_id, const char *sender, const char *title) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mail_new_pre ) { + void (*preHookFunc) (int *fd, int *mail_id, const char *sender, const char *title); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_new_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mail_new_pre[hIndex].func; + preHookFunc(&fd, &mail_id, sender, title); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mail_new(fd, mail_id, sender, title); + } + if( HPMHooks.count.HP_clif_mail_new_post ) { + void (*postHookFunc) (int *fd, int *mail_id, const char *sender, const char *title); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_new_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mail_new_post[hIndex].func; + postHookFunc(&fd, &mail_id, sender, title); + } + } + return; +} +void HP_clif_mail_refreshinbox(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mail_refreshinbox_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_refreshinbox_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mail_refreshinbox_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mail_refreshinbox(sd); + } + if( HPMHooks.count.HP_clif_mail_refreshinbox_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_refreshinbox_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mail_refreshinbox_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_mail_getattachment(int fd, uint8 flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mail_getattachment_pre ) { + void (*preHookFunc) (int *fd, uint8 *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_getattachment_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mail_getattachment_pre[hIndex].func; + preHookFunc(&fd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mail_getattachment(fd, flag); + } + if( HPMHooks.count.HP_clif_mail_getattachment_post ) { + void (*postHookFunc) (int *fd, uint8 *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_getattachment_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mail_getattachment_post[hIndex].func; + postHookFunc(&fd, &flag); + } + } + return; +} +void HP_clif_mail_setattachment(int fd, int index, uint8 flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mail_setattachment_pre ) { + void (*preHookFunc) (int *fd, int *index, uint8 *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_setattachment_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mail_setattachment_pre[hIndex].func; + preHookFunc(&fd, &index, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mail_setattachment(fd, index, flag); + } + if( HPMHooks.count.HP_clif_mail_setattachment_post ) { + void (*postHookFunc) (int *fd, int *index, uint8 *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mail_setattachment_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mail_setattachment_post[hIndex].func; + postHookFunc(&fd, &index, &flag); + } + } + return; +} +void HP_clif_auction_openwindow(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_auction_openwindow_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_auction_openwindow_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_auction_openwindow_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.auction_openwindow(sd); + } + if( HPMHooks.count.HP_clif_auction_openwindow_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_auction_openwindow_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_auction_openwindow_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_auction_results(struct map_session_data *sd, short count, short pages, uint8 *buf) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_auction_results_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *count, short *pages, uint8 *buf); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_auction_results_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_auction_results_pre[hIndex].func; + preHookFunc(sd, &count, &pages, buf); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.auction_results(sd, count, pages, buf); + } + if( HPMHooks.count.HP_clif_auction_results_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *count, short *pages, uint8 *buf); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_auction_results_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_auction_results_post[hIndex].func; + postHookFunc(sd, &count, &pages, buf); + } + } + return; +} +void HP_clif_auction_message(int fd, unsigned char flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_auction_message_pre ) { + void (*preHookFunc) (int *fd, unsigned char *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_auction_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_auction_message_pre[hIndex].func; + preHookFunc(&fd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.auction_message(fd, flag); + } + if( HPMHooks.count.HP_clif_auction_message_post ) { + void (*postHookFunc) (int *fd, unsigned char *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_auction_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_auction_message_post[hIndex].func; + postHookFunc(&fd, &flag); + } + } + return; +} +void HP_clif_auction_close(int fd, unsigned char flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_auction_close_pre ) { + void (*preHookFunc) (int *fd, unsigned char *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_auction_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_auction_close_pre[hIndex].func; + preHookFunc(&fd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.auction_close(fd, flag); + } + if( HPMHooks.count.HP_clif_auction_close_post ) { + void (*postHookFunc) (int *fd, unsigned char *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_auction_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_auction_close_post[hIndex].func; + postHookFunc(&fd, &flag); + } + } + return; +} +void HP_clif_auction_setitem(int fd, int index, bool fail) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_auction_setitem_pre ) { + void (*preHookFunc) (int *fd, int *index, bool *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_auction_setitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_auction_setitem_pre[hIndex].func; + preHookFunc(&fd, &index, &fail); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.auction_setitem(fd, index, fail); + } + if( HPMHooks.count.HP_clif_auction_setitem_post ) { + void (*postHookFunc) (int *fd, int *index, bool *fail); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_auction_setitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_auction_setitem_post[hIndex].func; + postHookFunc(&fd, &index, &fail); + } + } + return; +} +void HP_clif_mercenary_info(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mercenary_info_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mercenary_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mercenary_info_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mercenary_info(sd); + } + if( HPMHooks.count.HP_clif_mercenary_info_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mercenary_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mercenary_info_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_mercenary_skillblock(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mercenary_skillblock_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mercenary_skillblock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mercenary_skillblock_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mercenary_skillblock(sd); + } + if( HPMHooks.count.HP_clif_mercenary_skillblock_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mercenary_skillblock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mercenary_skillblock_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_mercenary_message(struct map_session_data *sd, int message) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mercenary_message_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mercenary_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mercenary_message_pre[hIndex].func; + preHookFunc(sd, &message); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mercenary_message(sd, message); + } + if( HPMHooks.count.HP_clif_mercenary_message_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mercenary_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mercenary_message_post[hIndex].func; + postHookFunc(sd, &message); + } + } + return; +} +void HP_clif_mercenary_updatestatus(struct map_session_data *sd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_mercenary_updatestatus_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mercenary_updatestatus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_mercenary_updatestatus_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.mercenary_updatestatus(sd, type); + } + if( HPMHooks.count.HP_clif_mercenary_updatestatus_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_mercenary_updatestatus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_mercenary_updatestatus_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_rental_time(int fd, int nameid, int seconds) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_rental_time_pre ) { + void (*preHookFunc) (int *fd, int *nameid, int *seconds); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_rental_time_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_rental_time_pre[hIndex].func; + preHookFunc(&fd, &nameid, &seconds); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.rental_time(fd, nameid, seconds); + } + if( HPMHooks.count.HP_clif_rental_time_post ) { + void (*postHookFunc) (int *fd, int *nameid, int *seconds); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_rental_time_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_rental_time_post[hIndex].func; + postHookFunc(&fd, &nameid, &seconds); + } + } + return; +} +void HP_clif_rental_expired(int fd, int index, int nameid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_rental_expired_pre ) { + void (*preHookFunc) (int *fd, int *index, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_rental_expired_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_rental_expired_pre[hIndex].func; + preHookFunc(&fd, &index, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.rental_expired(fd, index, nameid); + } + if( HPMHooks.count.HP_clif_rental_expired_post ) { + void (*postHookFunc) (int *fd, int *index, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_rental_expired_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_rental_expired_post[hIndex].func; + postHookFunc(&fd, &index, &nameid); + } + } + return; +} +void HP_clif_PartyBookingRegisterAck(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingRegisterAck_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingRegisterAck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingRegisterAck_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingRegisterAck(sd, flag); + } + if( HPMHooks.count.HP_clif_PartyBookingRegisterAck_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingRegisterAck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingRegisterAck_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_PartyBookingDeleteAck(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingDeleteAck_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingDeleteAck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingDeleteAck_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingDeleteAck(sd, flag); + } + if( HPMHooks.count.HP_clif_PartyBookingDeleteAck_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingDeleteAck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingDeleteAck_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_PartyBookingSearchAck(int fd, struct party_booking_ad_info **results, int count, bool more_result) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingSearchAck_pre ) { + void (*preHookFunc) (int *fd, struct party_booking_ad_info **results, int *count, bool *more_result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingSearchAck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingSearchAck_pre[hIndex].func; + preHookFunc(&fd, results, &count, &more_result); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingSearchAck(fd, results, count, more_result); + } + if( HPMHooks.count.HP_clif_PartyBookingSearchAck_post ) { + void (*postHookFunc) (int *fd, struct party_booking_ad_info **results, int *count, bool *more_result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingSearchAck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingSearchAck_post[hIndex].func; + postHookFunc(&fd, results, &count, &more_result); + } + } + return; +} +void HP_clif_PartyBookingUpdateNotify(struct map_session_data *sd, struct party_booking_ad_info *pb_ad) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingUpdateNotify_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct party_booking_ad_info *pb_ad); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingUpdateNotify_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingUpdateNotify_pre[hIndex].func; + preHookFunc(sd, pb_ad); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingUpdateNotify(sd, pb_ad); + } + if( HPMHooks.count.HP_clif_PartyBookingUpdateNotify_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct party_booking_ad_info *pb_ad); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingUpdateNotify_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingUpdateNotify_post[hIndex].func; + postHookFunc(sd, pb_ad); + } + } + return; +} +void HP_clif_PartyBookingDeleteNotify(struct map_session_data *sd, int index) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingDeleteNotify_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingDeleteNotify_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingDeleteNotify_pre[hIndex].func; + preHookFunc(sd, &index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingDeleteNotify(sd, index); + } + if( HPMHooks.count.HP_clif_PartyBookingDeleteNotify_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingDeleteNotify_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingDeleteNotify_post[hIndex].func; + postHookFunc(sd, &index); + } + } + return; +} +void HP_clif_PartyBookingInsertNotify(struct map_session_data *sd, struct party_booking_ad_info *pb_ad) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingInsertNotify_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct party_booking_ad_info *pb_ad); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingInsertNotify_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingInsertNotify_pre[hIndex].func; + preHookFunc(sd, pb_ad); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingInsertNotify(sd, pb_ad); + } + if( HPMHooks.count.HP_clif_PartyBookingInsertNotify_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct party_booking_ad_info *pb_ad); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingInsertNotify_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingInsertNotify_post[hIndex].func; + postHookFunc(sd, pb_ad); + } + } + return; +} +void HP_clif_PartyRecruitRegisterAck(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyRecruitRegisterAck_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitRegisterAck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyRecruitRegisterAck_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyRecruitRegisterAck(sd, flag); + } + if( HPMHooks.count.HP_clif_PartyRecruitRegisterAck_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitRegisterAck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyRecruitRegisterAck_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_PartyRecruitDeleteAck(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyRecruitDeleteAck_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitDeleteAck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyRecruitDeleteAck_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyRecruitDeleteAck(sd, flag); + } + if( HPMHooks.count.HP_clif_PartyRecruitDeleteAck_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitDeleteAck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyRecruitDeleteAck_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +void HP_clif_PartyRecruitSearchAck(int fd, struct party_booking_ad_info **results, int count, bool more_result) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyRecruitSearchAck_pre ) { + void (*preHookFunc) (int *fd, struct party_booking_ad_info **results, int *count, bool *more_result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitSearchAck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyRecruitSearchAck_pre[hIndex].func; + preHookFunc(&fd, results, &count, &more_result); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyRecruitSearchAck(fd, results, count, more_result); + } + if( HPMHooks.count.HP_clif_PartyRecruitSearchAck_post ) { + void (*postHookFunc) (int *fd, struct party_booking_ad_info **results, int *count, bool *more_result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitSearchAck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyRecruitSearchAck_post[hIndex].func; + postHookFunc(&fd, results, &count, &more_result); + } + } + return; +} +void HP_clif_PartyRecruitUpdateNotify(struct map_session_data *sd, struct party_booking_ad_info *pb_ad) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyRecruitUpdateNotify_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct party_booking_ad_info *pb_ad); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitUpdateNotify_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyRecruitUpdateNotify_pre[hIndex].func; + preHookFunc(sd, pb_ad); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyRecruitUpdateNotify(sd, pb_ad); + } + if( HPMHooks.count.HP_clif_PartyRecruitUpdateNotify_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct party_booking_ad_info *pb_ad); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitUpdateNotify_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyRecruitUpdateNotify_post[hIndex].func; + postHookFunc(sd, pb_ad); + } + } + return; +} +void HP_clif_PartyRecruitDeleteNotify(struct map_session_data *sd, int index) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyRecruitDeleteNotify_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitDeleteNotify_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyRecruitDeleteNotify_pre[hIndex].func; + preHookFunc(sd, &index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyRecruitDeleteNotify(sd, index); + } + if( HPMHooks.count.HP_clif_PartyRecruitDeleteNotify_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitDeleteNotify_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyRecruitDeleteNotify_post[hIndex].func; + postHookFunc(sd, &index); + } + } + return; +} +void HP_clif_PartyRecruitInsertNotify(struct map_session_data *sd, struct party_booking_ad_info *pb_ad) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyRecruitInsertNotify_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct party_booking_ad_info *pb_ad); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitInsertNotify_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyRecruitInsertNotify_pre[hIndex].func; + preHookFunc(sd, pb_ad); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyRecruitInsertNotify(sd, pb_ad); + } + if( HPMHooks.count.HP_clif_PartyRecruitInsertNotify_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct party_booking_ad_info *pb_ad); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyRecruitInsertNotify_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyRecruitInsertNotify_post[hIndex].func; + postHookFunc(sd, pb_ad); + } + } + return; +} +void HP_clif_PartyBookingVolunteerInfo(int index, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingVolunteerInfo_pre ) { + void (*preHookFunc) (int *index, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingVolunteerInfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingVolunteerInfo_pre[hIndex].func; + preHookFunc(&index, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingVolunteerInfo(index, sd); + } + if( HPMHooks.count.HP_clif_PartyBookingVolunteerInfo_post ) { + void (*postHookFunc) (int *index, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingVolunteerInfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingVolunteerInfo_post[hIndex].func; + postHookFunc(&index, sd); + } + } + return; +} +void HP_clif_PartyBookingRefuseVolunteer(unsigned long aid, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingRefuseVolunteer_pre ) { + void (*preHookFunc) (unsigned long *aid, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingRefuseVolunteer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingRefuseVolunteer_pre[hIndex].func; + preHookFunc(&aid, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingRefuseVolunteer(aid, sd); + } + if( HPMHooks.count.HP_clif_PartyBookingRefuseVolunteer_post ) { + void (*postHookFunc) (unsigned long *aid, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingRefuseVolunteer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingRefuseVolunteer_post[hIndex].func; + postHookFunc(&aid, sd); + } + } + return; +} +void HP_clif_PartyBookingCancelVolunteer(int index, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingCancelVolunteer_pre ) { + void (*preHookFunc) (int *index, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingCancelVolunteer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingCancelVolunteer_pre[hIndex].func; + preHookFunc(&index, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingCancelVolunteer(index, sd); + } + if( HPMHooks.count.HP_clif_PartyBookingCancelVolunteer_post ) { + void (*postHookFunc) (int *index, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingCancelVolunteer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingCancelVolunteer_post[hIndex].func; + postHookFunc(&index, sd); + } + } + return; +} +void HP_clif_PartyBookingAddFilteringList(int index, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingAddFilteringList_pre ) { + void (*preHookFunc) (int *index, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingAddFilteringList_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingAddFilteringList_pre[hIndex].func; + preHookFunc(&index, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingAddFilteringList(index, sd); + } + if( HPMHooks.count.HP_clif_PartyBookingAddFilteringList_post ) { + void (*postHookFunc) (int *index, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingAddFilteringList_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingAddFilteringList_post[hIndex].func; + postHookFunc(&index, sd); + } + } + return; +} +void HP_clif_PartyBookingSubFilteringList(int gid, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_PartyBookingSubFilteringList_pre ) { + void (*preHookFunc) (int *gid, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingSubFilteringList_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_PartyBookingSubFilteringList_pre[hIndex].func; + preHookFunc(&gid, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.PartyBookingSubFilteringList(gid, sd); + } + if( HPMHooks.count.HP_clif_PartyBookingSubFilteringList_post ) { + void (*postHookFunc) (int *gid, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_PartyBookingSubFilteringList_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_PartyBookingSubFilteringList_post[hIndex].func; + postHookFunc(&gid, sd); + } + } + return; +} +void HP_clif_buyingstore_open(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_open_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_open_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_open_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_open(sd); + } + if( HPMHooks.count.HP_clif_buyingstore_open_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_open_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_open_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_buyingstore_open_failed(struct map_session_data *sd, unsigned short result, unsigned int weight) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_open_failed_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned short *result, unsigned int *weight); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_open_failed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_open_failed_pre[hIndex].func; + preHookFunc(sd, &result, &weight); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_open_failed(sd, result, weight); + } + if( HPMHooks.count.HP_clif_buyingstore_open_failed_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned short *result, unsigned int *weight); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_open_failed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_open_failed_post[hIndex].func; + postHookFunc(sd, &result, &weight); + } + } + return; +} +void HP_clif_buyingstore_myitemlist(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_myitemlist_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_myitemlist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_myitemlist_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_myitemlist(sd); + } + if( HPMHooks.count.HP_clif_buyingstore_myitemlist_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_myitemlist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_myitemlist_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_buyingstore_entry(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_entry_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_entry_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_entry_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_entry(sd); + } + if( HPMHooks.count.HP_clif_buyingstore_entry_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_entry_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_entry_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_buyingstore_entry_single(struct map_session_data *sd, struct map_session_data *pl_sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_entry_single_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *pl_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_entry_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_entry_single_pre[hIndex].func; + preHookFunc(sd, pl_sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_entry_single(sd, pl_sd); + } + if( HPMHooks.count.HP_clif_buyingstore_entry_single_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *pl_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_entry_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_entry_single_post[hIndex].func; + postHookFunc(sd, pl_sd); + } + } + return; +} +void HP_clif_buyingstore_disappear_entry(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_disappear_entry_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_disappear_entry_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_disappear_entry_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_disappear_entry(sd); + } + if( HPMHooks.count.HP_clif_buyingstore_disappear_entry_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_disappear_entry_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_disappear_entry_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_buyingstore_disappear_entry_single(struct map_session_data *sd, struct map_session_data *pl_sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_disappear_entry_single_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *pl_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_disappear_entry_single_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_disappear_entry_single_pre[hIndex].func; + preHookFunc(sd, pl_sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_disappear_entry_single(sd, pl_sd); + } + if( HPMHooks.count.HP_clif_buyingstore_disappear_entry_single_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *pl_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_disappear_entry_single_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_disappear_entry_single_post[hIndex].func; + postHookFunc(sd, pl_sd); + } + } + return; +} +void HP_clif_buyingstore_itemlist(struct map_session_data *sd, struct map_session_data *pl_sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_itemlist_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *pl_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_itemlist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_itemlist_pre[hIndex].func; + preHookFunc(sd, pl_sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_itemlist(sd, pl_sd); + } + if( HPMHooks.count.HP_clif_buyingstore_itemlist_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *pl_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_itemlist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_itemlist_post[hIndex].func; + postHookFunc(sd, pl_sd); + } + } + return; +} +void HP_clif_buyingstore_trade_failed_buyer(struct map_session_data *sd, short result) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_trade_failed_buyer_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_trade_failed_buyer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_trade_failed_buyer_pre[hIndex].func; + preHookFunc(sd, &result); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_trade_failed_buyer(sd, result); + } + if( HPMHooks.count.HP_clif_buyingstore_trade_failed_buyer_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *result); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_trade_failed_buyer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_trade_failed_buyer_post[hIndex].func; + postHookFunc(sd, &result); + } + } + return; +} +void HP_clif_buyingstore_update_item(struct map_session_data *sd, unsigned short nameid, unsigned short amount) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_update_item_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned short *nameid, unsigned short *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_update_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_update_item_pre[hIndex].func; + preHookFunc(sd, &nameid, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_update_item(sd, nameid, amount); + } + if( HPMHooks.count.HP_clif_buyingstore_update_item_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned short *nameid, unsigned short *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_update_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_update_item_post[hIndex].func; + postHookFunc(sd, &nameid, &amount); + } + } + return; +} +void HP_clif_buyingstore_delete_item(struct map_session_data *sd, short index, unsigned short amount, int price) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_delete_item_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *index, unsigned short *amount, int *price); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_delete_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_delete_item_pre[hIndex].func; + preHookFunc(sd, &index, &amount, &price); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_delete_item(sd, index, amount, price); + } + if( HPMHooks.count.HP_clif_buyingstore_delete_item_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *index, unsigned short *amount, int *price); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_delete_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_delete_item_post[hIndex].func; + postHookFunc(sd, &index, &amount, &price); + } + } + return; +} +void HP_clif_buyingstore_trade_failed_seller(struct map_session_data *sd, short result, unsigned short nameid) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_buyingstore_trade_failed_seller_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *result, unsigned short *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_trade_failed_seller_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_buyingstore_trade_failed_seller_pre[hIndex].func; + preHookFunc(sd, &result, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.buyingstore_trade_failed_seller(sd, result, nameid); + } + if( HPMHooks.count.HP_clif_buyingstore_trade_failed_seller_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *result, unsigned short *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_buyingstore_trade_failed_seller_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_buyingstore_trade_failed_seller_post[hIndex].func; + postHookFunc(sd, &result, &nameid); + } + } + return; +} +void HP_clif_search_store_info_ack(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_search_store_info_ack_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_search_store_info_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_search_store_info_ack_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.search_store_info_ack(sd); + } + if( HPMHooks.count.HP_clif_search_store_info_ack_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_search_store_info_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_search_store_info_ack_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_search_store_info_failed(struct map_session_data *sd, unsigned char reason) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_search_store_info_failed_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned char *reason); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_search_store_info_failed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_search_store_info_failed_pre[hIndex].func; + preHookFunc(sd, &reason); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.search_store_info_failed(sd, reason); + } + if( HPMHooks.count.HP_clif_search_store_info_failed_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned char *reason); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_search_store_info_failed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_search_store_info_failed_post[hIndex].func; + postHookFunc(sd, &reason); + } + } + return; +} +void HP_clif_open_search_store_info(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_open_search_store_info_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_open_search_store_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_open_search_store_info_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.open_search_store_info(sd); + } + if( HPMHooks.count.HP_clif_open_search_store_info_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_open_search_store_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_open_search_store_info_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_search_store_info_click_ack(struct map_session_data *sd, short x, short y) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_search_store_info_click_ack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_search_store_info_click_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_search_store_info_click_ack_pre[hIndex].func; + preHookFunc(sd, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.search_store_info_click_ack(sd, x, y); + } + if( HPMHooks.count.HP_clif_search_store_info_click_ack_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_search_store_info_click_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_search_store_info_click_ack_post[hIndex].func; + postHookFunc(sd, &x, &y); + } + } + return; +} +void HP_clif_elemental_info(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_elemental_info_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_elemental_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_elemental_info_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.elemental_info(sd); + } + if( HPMHooks.count.HP_clif_elemental_info_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_elemental_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_elemental_info_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_elemental_updatestatus(struct map_session_data *sd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_elemental_updatestatus_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_elemental_updatestatus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_elemental_updatestatus_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.elemental_updatestatus(sd, type); + } + if( HPMHooks.count.HP_clif_elemental_updatestatus_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_elemental_updatestatus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_elemental_updatestatus_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_bgqueue_ack(struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_ACK response, unsigned char arena_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bgqueue_ack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_ACK *response, unsigned char *arena_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bgqueue_ack_pre[hIndex].func; + preHookFunc(sd, &response, &arena_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bgqueue_ack(sd, response, arena_id); + } + if( HPMHooks.count.HP_clif_bgqueue_ack_post ) { + void (*postHookFunc) (struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_ACK *response, unsigned char *arena_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bgqueue_ack_post[hIndex].func; + postHookFunc(sd, &response, &arena_id); + } + } + return; +} +void HP_clif_bgqueue_notice_delete(struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_NOTICE_DELETED response, char *name) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bgqueue_notice_delete_pre ) { + void (*preHookFunc) (struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_NOTICE_DELETED *response, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_notice_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bgqueue_notice_delete_pre[hIndex].func; + preHookFunc(sd, &response, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bgqueue_notice_delete(sd, response, name); + } + if( HPMHooks.count.HP_clif_bgqueue_notice_delete_post ) { + void (*postHookFunc) (struct map_session_data *sd, enum BATTLEGROUNDS_QUEUE_NOTICE_DELETED *response, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_notice_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bgqueue_notice_delete_post[hIndex].func; + postHookFunc(sd, &response, name); + } + } + return; +} +void HP_clif_bgqueue_update_info(struct map_session_data *sd, unsigned char arena_id, int position) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bgqueue_update_info_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned char *arena_id, int *position); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_update_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bgqueue_update_info_pre[hIndex].func; + preHookFunc(sd, &arena_id, &position); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bgqueue_update_info(sd, arena_id, position); + } + if( HPMHooks.count.HP_clif_bgqueue_update_info_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned char *arena_id, int *position); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_update_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bgqueue_update_info_post[hIndex].func; + postHookFunc(sd, &arena_id, &position); + } + } + return; +} +void HP_clif_bgqueue_joined(struct map_session_data *sd, int pos) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bgqueue_joined_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_joined_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bgqueue_joined_pre[hIndex].func; + preHookFunc(sd, &pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bgqueue_joined(sd, pos); + } + if( HPMHooks.count.HP_clif_bgqueue_joined_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_joined_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bgqueue_joined_post[hIndex].func; + postHookFunc(sd, &pos); + } + } + return; +} +void HP_clif_bgqueue_pcleft(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bgqueue_pcleft_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_pcleft_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bgqueue_pcleft_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bgqueue_pcleft(sd); + } + if( HPMHooks.count.HP_clif_bgqueue_pcleft_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_pcleft_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bgqueue_pcleft_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_bgqueue_battlebegins(struct map_session_data *sd, unsigned char arena_id, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bgqueue_battlebegins_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned char *arena_id, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_battlebegins_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bgqueue_battlebegins_pre[hIndex].func; + preHookFunc(sd, &arena_id, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bgqueue_battlebegins(sd, arena_id, target); + } + if( HPMHooks.count.HP_clif_bgqueue_battlebegins_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned char *arena_id, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bgqueue_battlebegins_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bgqueue_battlebegins_post[hIndex].func; + postHookFunc(sd, &arena_id, &target); + } + } + return; +} +void HP_clif_adopt_reply(struct map_session_data *sd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_adopt_reply_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_adopt_reply_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_adopt_reply_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.adopt_reply(sd, type); + } + if( HPMHooks.count.HP_clif_adopt_reply_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_adopt_reply_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_adopt_reply_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +void HP_clif_adopt_request(struct map_session_data *sd, struct map_session_data *src, int p_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_adopt_request_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *src, int *p_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_adopt_request_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_adopt_request_pre[hIndex].func; + preHookFunc(sd, src, &p_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.adopt_request(sd, src, p_id); + } + if( HPMHooks.count.HP_clif_adopt_request_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *src, int *p_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_adopt_request_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_adopt_request_post[hIndex].func; + postHookFunc(sd, src, &p_id); + } + } + return; +} +void HP_clif_readbook(int fd, int book_id, int page) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_readbook_pre ) { + void (*preHookFunc) (int *fd, int *book_id, int *page); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_readbook_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_readbook_pre[hIndex].func; + preHookFunc(&fd, &book_id, &page); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.readbook(fd, book_id, page); + } + if( HPMHooks.count.HP_clif_readbook_post ) { + void (*postHookFunc) (int *fd, int *book_id, int *page); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_readbook_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_readbook_post[hIndex].func; + postHookFunc(&fd, &book_id, &page); + } + } + return; +} +void HP_clif_notify_time(struct map_session_data *sd, unsigned long time) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_notify_time_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned long *time); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_notify_time_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_notify_time_pre[hIndex].func; + preHookFunc(sd, &time); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.notify_time(sd, time); + } + if( HPMHooks.count.HP_clif_notify_time_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned long *time); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_notify_time_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_notify_time_post[hIndex].func; + postHookFunc(sd, &time); + } + } + return; +} +void HP_clif_user_count(struct map_session_data *sd, int count) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_user_count_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_user_count_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_user_count_pre[hIndex].func; + preHookFunc(sd, &count); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.user_count(sd, count); + } + if( HPMHooks.count.HP_clif_user_count_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_user_count_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_user_count_post[hIndex].func; + postHookFunc(sd, &count); + } + } + return; +} +void HP_clif_noask_sub(struct map_session_data *src, struct map_session_data *target, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_noask_sub_pre ) { + void (*preHookFunc) (struct map_session_data *src, struct map_session_data *target, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_noask_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_noask_sub_pre[hIndex].func; + preHookFunc(src, target, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.noask_sub(src, target, type); + } + if( HPMHooks.count.HP_clif_noask_sub_post ) { + void (*postHookFunc) (struct map_session_data *src, struct map_session_data *target, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_noask_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_noask_sub_post[hIndex].func; + postHookFunc(src, target, &type); + } + } + return; +} +void HP_clif_bc_ready(void) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_bc_ready_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bc_ready_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_bc_ready_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.bc_ready(); + } + if( HPMHooks.count.HP_clif_bc_ready_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_bc_ready_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_bc_ready_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_clif_undisguise_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_clif_undisguise_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_undisguise_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_undisguise_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.undisguise_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_clif_undisguise_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_undisguise_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_undisguise_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_clif_chsys_create(struct hChSysCh *channel, char *name, char *pass, unsigned char color) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_create_pre ) { + void (*preHookFunc) (struct hChSysCh *channel, char *name, char *pass, unsigned char *color); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_create_pre[hIndex].func; + preHookFunc(channel, name, pass, &color); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_create(channel, name, pass, color); + } + if( HPMHooks.count.HP_clif_chsys_create_post ) { + void (*postHookFunc) (struct hChSysCh *channel, char *name, char *pass, unsigned char *color); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_create_post[hIndex].func; + postHookFunc(channel, name, pass, &color); + } + } + return; +} +void HP_clif_chsys_msg(struct hChSysCh *channel, struct map_session_data *sd, char *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_msg_pre ) { + void (*preHookFunc) (struct hChSysCh *channel, struct map_session_data *sd, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_msg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_msg_pre[hIndex].func; + preHookFunc(channel, sd, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_msg(channel, sd, msg); + } + if( HPMHooks.count.HP_clif_chsys_msg_post ) { + void (*postHookFunc) (struct hChSysCh *channel, struct map_session_data *sd, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_msg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_msg_post[hIndex].func; + postHookFunc(channel, sd, msg); + } + } + return; +} +void HP_clif_chsys_msg2(struct hChSysCh *channel, char *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_msg2_pre ) { + void (*preHookFunc) (struct hChSysCh *channel, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_msg2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_msg2_pre[hIndex].func; + preHookFunc(channel, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_msg2(channel, msg); + } + if( HPMHooks.count.HP_clif_chsys_msg2_post ) { + void (*postHookFunc) (struct hChSysCh *channel, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_msg2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_msg2_post[hIndex].func; + postHookFunc(channel, msg); + } + } + return; +} +void HP_clif_chsys_send(struct hChSysCh *channel, struct map_session_data *sd, const char *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_send_pre ) { + void (*preHookFunc) (struct hChSysCh *channel, struct map_session_data *sd, const char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_send_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_send_pre[hIndex].func; + preHookFunc(channel, sd, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_send(channel, sd, msg); + } + if( HPMHooks.count.HP_clif_chsys_send_post ) { + void (*postHookFunc) (struct hChSysCh *channel, struct map_session_data *sd, const char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_send_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_send_post[hIndex].func; + postHookFunc(channel, sd, msg); + } + } + return; +} +void HP_clif_chsys_join(struct hChSysCh *channel, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_join_pre ) { + void (*preHookFunc) (struct hChSysCh *channel, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_join_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_join_pre[hIndex].func; + preHookFunc(channel, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_join(channel, sd); + } + if( HPMHooks.count.HP_clif_chsys_join_post ) { + void (*postHookFunc) (struct hChSysCh *channel, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_join_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_join_post[hIndex].func; + postHookFunc(channel, sd); + } + } + return; +} +void HP_clif_chsys_left(struct hChSysCh *channel, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_left_pre ) { + void (*preHookFunc) (struct hChSysCh *channel, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_left_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_left_pre[hIndex].func; + preHookFunc(channel, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_left(channel, sd); + } + if( HPMHooks.count.HP_clif_chsys_left_post ) { + void (*postHookFunc) (struct hChSysCh *channel, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_left_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_left_post[hIndex].func; + postHookFunc(channel, sd); + } + } + return; +} +void HP_clif_chsys_delete(struct hChSysCh *channel) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_delete_pre ) { + void (*preHookFunc) (struct hChSysCh *channel); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_delete_pre[hIndex].func; + preHookFunc(channel); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_delete(channel); + } + if( HPMHooks.count.HP_clif_chsys_delete_post ) { + void (*postHookFunc) (struct hChSysCh *channel); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_delete_post[hIndex].func; + postHookFunc(channel); + } + } + return; +} +void HP_clif_chsys_mjoin(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_mjoin_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_mjoin_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_mjoin_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_mjoin(sd); + } + if( HPMHooks.count.HP_clif_chsys_mjoin_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_mjoin_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_mjoin_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_chsys_quit(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_quit_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_quit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_quit_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_quit(sd); + } + if( HPMHooks.count.HP_clif_chsys_quit_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_quit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_quit_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_chsys_quitg(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_quitg_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_quitg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_quitg_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_quitg(sd); + } + if( HPMHooks.count.HP_clif_chsys_quitg_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_quitg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_quitg_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_clif_chsys_gjoin(struct guild *g1, struct guild *g2) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_gjoin_pre ) { + void (*preHookFunc) (struct guild *g1, struct guild *g2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_gjoin_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_gjoin_pre[hIndex].func; + preHookFunc(g1, g2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_gjoin(g1, g2); + } + if( HPMHooks.count.HP_clif_chsys_gjoin_post ) { + void (*postHookFunc) (struct guild *g1, struct guild *g2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_gjoin_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_gjoin_post[hIndex].func; + postHookFunc(g1, g2); + } + } + return; +} +void HP_clif_chsys_gleave(struct guild *g1, struct guild *g2) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chsys_gleave_pre ) { + void (*preHookFunc) (struct guild *g1, struct guild *g2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_gleave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chsys_gleave_pre[hIndex].func; + preHookFunc(g1, g2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chsys_gleave(g1, g2); + } + if( HPMHooks.count.HP_clif_chsys_gleave_post ) { + void (*postHookFunc) (struct guild *g1, struct guild *g2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chsys_gleave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chsys_gleave_post[hIndex].func; + postHookFunc(g1, g2); + } + } + return; +} +void HP_clif_pWantToConnection(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pWantToConnection_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pWantToConnection_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pWantToConnection_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pWantToConnection(fd, sd); + } + if( HPMHooks.count.HP_clif_pWantToConnection_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pWantToConnection_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pWantToConnection_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pLoadEndAck(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pLoadEndAck_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLoadEndAck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pLoadEndAck_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pLoadEndAck(fd, sd); + } + if( HPMHooks.count.HP_clif_pLoadEndAck_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLoadEndAck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pLoadEndAck_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pTickSend(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pTickSend_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTickSend_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pTickSend_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pTickSend(fd, sd); + } + if( HPMHooks.count.HP_clif_pTickSend_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTickSend_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pTickSend_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pHotkey(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pHotkey_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHotkey_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pHotkey_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pHotkey(fd, sd); + } + if( HPMHooks.count.HP_clif_pHotkey_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHotkey_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pHotkey_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pProgressbar(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pProgressbar_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pProgressbar_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pProgressbar_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pProgressbar(fd, sd); + } + if( HPMHooks.count.HP_clif_pProgressbar_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pProgressbar_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pProgressbar_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pWalkToXY(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pWalkToXY_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pWalkToXY_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pWalkToXY_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pWalkToXY(fd, sd); + } + if( HPMHooks.count.HP_clif_pWalkToXY_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pWalkToXY_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pWalkToXY_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pQuitGame(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pQuitGame_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pQuitGame_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pQuitGame_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pQuitGame(fd, sd); + } + if( HPMHooks.count.HP_clif_pQuitGame_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pQuitGame_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pQuitGame_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGetCharNameRequest(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGetCharNameRequest_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGetCharNameRequest_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGetCharNameRequest_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGetCharNameRequest(fd, sd); + } + if( HPMHooks.count.HP_clif_pGetCharNameRequest_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGetCharNameRequest_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGetCharNameRequest_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGlobalMessage(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGlobalMessage_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGlobalMessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGlobalMessage_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGlobalMessage(fd, sd); + } + if( HPMHooks.count.HP_clif_pGlobalMessage_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGlobalMessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGlobalMessage_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMapMove(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMapMove_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMapMove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMapMove_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMapMove(fd, sd); + } + if( HPMHooks.count.HP_clif_pMapMove_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMapMove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMapMove_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pChangeDir(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pChangeDir_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeDir_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pChangeDir_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pChangeDir(fd, sd); + } + if( HPMHooks.count.HP_clif_pChangeDir_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeDir_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pChangeDir_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pEmotion(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pEmotion_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pEmotion_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pEmotion_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pEmotion(fd, sd); + } + if( HPMHooks.count.HP_clif_pEmotion_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pEmotion_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pEmotion_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pHowManyConnections(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pHowManyConnections_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHowManyConnections_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pHowManyConnections_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pHowManyConnections(fd, sd); + } + if( HPMHooks.count.HP_clif_pHowManyConnections_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHowManyConnections_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pHowManyConnections_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pActionRequest(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pActionRequest_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pActionRequest_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pActionRequest_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pActionRequest(fd, sd); + } + if( HPMHooks.count.HP_clif_pActionRequest_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pActionRequest_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pActionRequest_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pActionRequest_sub(struct map_session_data *sd, int action_type, int target_id, unsigned int tick) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pActionRequest_sub_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *action_type, int *target_id, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pActionRequest_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pActionRequest_sub_pre[hIndex].func; + preHookFunc(sd, &action_type, &target_id, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pActionRequest_sub(sd, action_type, target_id, tick); + } + if( HPMHooks.count.HP_clif_pActionRequest_sub_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *action_type, int *target_id, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pActionRequest_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pActionRequest_sub_post[hIndex].func; + postHookFunc(sd, &action_type, &target_id, &tick); + } + } + return; +} +void HP_clif_pRestart(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pRestart_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRestart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pRestart_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pRestart(fd, sd); + } + if( HPMHooks.count.HP_clif_pRestart_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRestart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pRestart_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pWisMessage(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pWisMessage_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pWisMessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pWisMessage_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pWisMessage(fd, sd); + } + if( HPMHooks.count.HP_clif_pWisMessage_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pWisMessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pWisMessage_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pBroadcast(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pBroadcast_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBroadcast_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pBroadcast_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pBroadcast(fd, sd); + } + if( HPMHooks.count.HP_clif_pBroadcast_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBroadcast_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pBroadcast_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pTakeItem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pTakeItem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTakeItem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pTakeItem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pTakeItem(fd, sd); + } + if( HPMHooks.count.HP_clif_pTakeItem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTakeItem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pTakeItem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pDropItem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pDropItem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pDropItem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pDropItem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pDropItem(fd, sd); + } + if( HPMHooks.count.HP_clif_pDropItem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pDropItem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pDropItem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pUseItem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseItem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseItem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseItem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseItem(fd, sd); + } + if( HPMHooks.count.HP_clif_pUseItem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseItem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseItem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pEquipItem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pEquipItem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pEquipItem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pEquipItem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pEquipItem(fd, sd); + } + if( HPMHooks.count.HP_clif_pEquipItem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pEquipItem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pEquipItem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pUnequipItem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUnequipItem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUnequipItem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUnequipItem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUnequipItem(fd, sd); + } + if( HPMHooks.count.HP_clif_pUnequipItem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUnequipItem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUnequipItem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNpcClicked(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNpcClicked_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcClicked_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNpcClicked_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNpcClicked(fd, sd); + } + if( HPMHooks.count.HP_clif_pNpcClicked_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcClicked_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNpcClicked_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNpcBuySellSelected(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNpcBuySellSelected_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcBuySellSelected_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNpcBuySellSelected_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNpcBuySellSelected(fd, sd); + } + if( HPMHooks.count.HP_clif_pNpcBuySellSelected_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcBuySellSelected_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNpcBuySellSelected_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNpcBuyListSend(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNpcBuyListSend_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcBuyListSend_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNpcBuyListSend_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNpcBuyListSend(fd, sd); + } + if( HPMHooks.count.HP_clif_pNpcBuyListSend_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcBuyListSend_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNpcBuyListSend_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNpcSellListSend(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNpcSellListSend_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcSellListSend_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNpcSellListSend_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNpcSellListSend(fd, sd); + } + if( HPMHooks.count.HP_clif_pNpcSellListSend_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcSellListSend_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNpcSellListSend_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCreateChatRoom(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCreateChatRoom_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCreateChatRoom_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCreateChatRoom_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCreateChatRoom(fd, sd); + } + if( HPMHooks.count.HP_clif_pCreateChatRoom_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCreateChatRoom_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCreateChatRoom_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pChatAddMember(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pChatAddMember_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChatAddMember_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pChatAddMember_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pChatAddMember(fd, sd); + } + if( HPMHooks.count.HP_clif_pChatAddMember_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChatAddMember_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pChatAddMember_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pChatRoomStatusChange(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pChatRoomStatusChange_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChatRoomStatusChange_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pChatRoomStatusChange_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pChatRoomStatusChange(fd, sd); + } + if( HPMHooks.count.HP_clif_pChatRoomStatusChange_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChatRoomStatusChange_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pChatRoomStatusChange_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pChangeChatOwner(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pChangeChatOwner_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeChatOwner_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pChangeChatOwner_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pChangeChatOwner(fd, sd); + } + if( HPMHooks.count.HP_clif_pChangeChatOwner_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeChatOwner_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pChangeChatOwner_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pKickFromChat(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pKickFromChat_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pKickFromChat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pKickFromChat_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pKickFromChat(fd, sd); + } + if( HPMHooks.count.HP_clif_pKickFromChat_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pKickFromChat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pKickFromChat_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pChatLeave(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pChatLeave_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChatLeave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pChatLeave_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pChatLeave(fd, sd); + } + if( HPMHooks.count.HP_clif_pChatLeave_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChatLeave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pChatLeave_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pTradeRequest(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pTradeRequest_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeRequest_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pTradeRequest_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pTradeRequest(fd, sd); + } + if( HPMHooks.count.HP_clif_pTradeRequest_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeRequest_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pTradeRequest_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_chann_config_read(void) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_chann_config_read_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chann_config_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_chann_config_read_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.chann_config_read(); + } + if( HPMHooks.count.HP_clif_chann_config_read_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_chann_config_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_chann_config_read_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_clif_pTradeAck(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pTradeAck_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeAck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pTradeAck_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pTradeAck(fd, sd); + } + if( HPMHooks.count.HP_clif_pTradeAck_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeAck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pTradeAck_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pTradeAddItem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pTradeAddItem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeAddItem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pTradeAddItem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pTradeAddItem(fd, sd); + } + if( HPMHooks.count.HP_clif_pTradeAddItem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeAddItem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pTradeAddItem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pTradeOk(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pTradeOk_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeOk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pTradeOk_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pTradeOk(fd, sd); + } + if( HPMHooks.count.HP_clif_pTradeOk_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeOk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pTradeOk_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pTradeCancel(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pTradeCancel_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeCancel_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pTradeCancel_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pTradeCancel(fd, sd); + } + if( HPMHooks.count.HP_clif_pTradeCancel_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeCancel_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pTradeCancel_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pTradeCommit(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pTradeCommit_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeCommit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pTradeCommit_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pTradeCommit(fd, sd); + } + if( HPMHooks.count.HP_clif_pTradeCommit_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTradeCommit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pTradeCommit_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pStopAttack(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pStopAttack_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pStopAttack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pStopAttack_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pStopAttack(fd, sd); + } + if( HPMHooks.count.HP_clif_pStopAttack_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pStopAttack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pStopAttack_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPutItemToCart(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPutItemToCart_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPutItemToCart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPutItemToCart_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPutItemToCart(fd, sd); + } + if( HPMHooks.count.HP_clif_pPutItemToCart_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPutItemToCart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPutItemToCart_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGetItemFromCart(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGetItemFromCart_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGetItemFromCart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGetItemFromCart_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGetItemFromCart(fd, sd); + } + if( HPMHooks.count.HP_clif_pGetItemFromCart_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGetItemFromCart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGetItemFromCart_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pRemoveOption(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pRemoveOption_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRemoveOption_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pRemoveOption_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pRemoveOption(fd, sd); + } + if( HPMHooks.count.HP_clif_pRemoveOption_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRemoveOption_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pRemoveOption_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pChangeCart(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pChangeCart_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeCart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pChangeCart_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pChangeCart(fd, sd); + } + if( HPMHooks.count.HP_clif_pChangeCart_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeCart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pChangeCart_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pStatusUp(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pStatusUp_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pStatusUp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pStatusUp_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pStatusUp(fd, sd); + } + if( HPMHooks.count.HP_clif_pStatusUp_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pStatusUp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pStatusUp_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pSkillUp(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pSkillUp_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSkillUp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pSkillUp_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pSkillUp(fd, sd); + } + if( HPMHooks.count.HP_clif_pSkillUp_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSkillUp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pSkillUp_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pUseSkillToId(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseSkillToId_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToId_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseSkillToId_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseSkillToId(fd, sd); + } + if( HPMHooks.count.HP_clif_pUseSkillToId_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToId_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseSkillToId_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pUseSkillToId_homun(struct homun_data *hd, struct map_session_data *sd, unsigned int tick, uint16 skill_id, uint16 skill_lv, int target_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseSkillToId_homun_pre ) { + void (*preHookFunc) (struct homun_data *hd, struct map_session_data *sd, unsigned int *tick, uint16 *skill_id, uint16 *skill_lv, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToId_homun_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseSkillToId_homun_pre[hIndex].func; + preHookFunc(hd, sd, &tick, &skill_id, &skill_lv, &target_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseSkillToId_homun(hd, sd, tick, skill_id, skill_lv, target_id); + } + if( HPMHooks.count.HP_clif_pUseSkillToId_homun_post ) { + void (*postHookFunc) (struct homun_data *hd, struct map_session_data *sd, unsigned int *tick, uint16 *skill_id, uint16 *skill_lv, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToId_homun_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseSkillToId_homun_post[hIndex].func; + postHookFunc(hd, sd, &tick, &skill_id, &skill_lv, &target_id); + } + } + return; +} +void HP_clif_pUseSkillToId_mercenary(struct mercenary_data *md, struct map_session_data *sd, unsigned int tick, uint16 skill_id, uint16 skill_lv, int target_id) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseSkillToId_mercenary_pre ) { + void (*preHookFunc) (struct mercenary_data *md, struct map_session_data *sd, unsigned int *tick, uint16 *skill_id, uint16 *skill_lv, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToId_mercenary_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseSkillToId_mercenary_pre[hIndex].func; + preHookFunc(md, sd, &tick, &skill_id, &skill_lv, &target_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseSkillToId_mercenary(md, sd, tick, skill_id, skill_lv, target_id); + } + if( HPMHooks.count.HP_clif_pUseSkillToId_mercenary_post ) { + void (*postHookFunc) (struct mercenary_data *md, struct map_session_data *sd, unsigned int *tick, uint16 *skill_id, uint16 *skill_lv, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToId_mercenary_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseSkillToId_mercenary_post[hIndex].func; + postHookFunc(md, sd, &tick, &skill_id, &skill_lv, &target_id); + } + } + return; +} +void HP_clif_pUseSkillToPos(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseSkillToPos_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToPos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseSkillToPos_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseSkillToPos(fd, sd); + } + if( HPMHooks.count.HP_clif_pUseSkillToPos_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToPos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseSkillToPos_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pUseSkillToPosSub(int fd, struct map_session_data *sd, uint16 skill_lv, uint16 skill_id, short x, short y, int skillmoreinfo) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseSkillToPosSub_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd, uint16 *skill_lv, uint16 *skill_id, short *x, short *y, int *skillmoreinfo); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToPosSub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseSkillToPosSub_pre[hIndex].func; + preHookFunc(&fd, sd, &skill_lv, &skill_id, &x, &y, &skillmoreinfo); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseSkillToPosSub(fd, sd, skill_lv, skill_id, x, y, skillmoreinfo); + } + if( HPMHooks.count.HP_clif_pUseSkillToPosSub_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd, uint16 *skill_lv, uint16 *skill_id, short *x, short *y, int *skillmoreinfo); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToPosSub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseSkillToPosSub_post[hIndex].func; + postHookFunc(&fd, sd, &skill_lv, &skill_id, &x, &y, &skillmoreinfo); + } + } + return; +} +void HP_clif_pUseSkillToPos_homun(struct homun_data *hd, struct map_session_data *sd, unsigned int tick, uint16 skill_id, uint16 skill_lv, short x, short y, int skillmoreinfo) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseSkillToPos_homun_pre ) { + void (*preHookFunc) (struct homun_data *hd, struct map_session_data *sd, unsigned int *tick, uint16 *skill_id, uint16 *skill_lv, short *x, short *y, int *skillmoreinfo); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToPos_homun_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseSkillToPos_homun_pre[hIndex].func; + preHookFunc(hd, sd, &tick, &skill_id, &skill_lv, &x, &y, &skillmoreinfo); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseSkillToPos_homun(hd, sd, tick, skill_id, skill_lv, x, y, skillmoreinfo); + } + if( HPMHooks.count.HP_clif_pUseSkillToPos_homun_post ) { + void (*postHookFunc) (struct homun_data *hd, struct map_session_data *sd, unsigned int *tick, uint16 *skill_id, uint16 *skill_lv, short *x, short *y, int *skillmoreinfo); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToPos_homun_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseSkillToPos_homun_post[hIndex].func; + postHookFunc(hd, sd, &tick, &skill_id, &skill_lv, &x, &y, &skillmoreinfo); + } + } + return; +} +void HP_clif_pUseSkillToPos_mercenary(struct mercenary_data *md, struct map_session_data *sd, unsigned int tick, uint16 skill_id, uint16 skill_lv, short x, short y, int skillmoreinfo) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseSkillToPos_mercenary_pre ) { + void (*preHookFunc) (struct mercenary_data *md, struct map_session_data *sd, unsigned int *tick, uint16 *skill_id, uint16 *skill_lv, short *x, short *y, int *skillmoreinfo); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToPos_mercenary_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseSkillToPos_mercenary_pre[hIndex].func; + preHookFunc(md, sd, &tick, &skill_id, &skill_lv, &x, &y, &skillmoreinfo); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseSkillToPos_mercenary(md, sd, tick, skill_id, skill_lv, x, y, skillmoreinfo); + } + if( HPMHooks.count.HP_clif_pUseSkillToPos_mercenary_post ) { + void (*postHookFunc) (struct mercenary_data *md, struct map_session_data *sd, unsigned int *tick, uint16 *skill_id, uint16 *skill_lv, short *x, short *y, int *skillmoreinfo); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToPos_mercenary_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseSkillToPos_mercenary_post[hIndex].func; + postHookFunc(md, sd, &tick, &skill_id, &skill_lv, &x, &y, &skillmoreinfo); + } + } + return; +} +void HP_clif_pUseSkillToPosMoreInfo(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseSkillToPosMoreInfo_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToPosMoreInfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseSkillToPosMoreInfo_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseSkillToPosMoreInfo(fd, sd); + } + if( HPMHooks.count.HP_clif_pUseSkillToPosMoreInfo_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillToPosMoreInfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseSkillToPosMoreInfo_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pUseSkillMap(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseSkillMap_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillMap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseSkillMap_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseSkillMap(fd, sd); + } + if( HPMHooks.count.HP_clif_pUseSkillMap_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseSkillMap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseSkillMap_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pRequestMemo(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pRequestMemo_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRequestMemo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pRequestMemo_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pRequestMemo(fd, sd); + } + if( HPMHooks.count.HP_clif_pRequestMemo_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRequestMemo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pRequestMemo_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pProduceMix(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pProduceMix_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pProduceMix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pProduceMix_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pProduceMix(fd, sd); + } + if( HPMHooks.count.HP_clif_pProduceMix_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pProduceMix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pProduceMix_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCooking(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCooking_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCooking_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCooking_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCooking(fd, sd); + } + if( HPMHooks.count.HP_clif_pCooking_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCooking_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCooking_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pRepairItem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pRepairItem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRepairItem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pRepairItem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pRepairItem(fd, sd); + } + if( HPMHooks.count.HP_clif_pRepairItem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRepairItem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pRepairItem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pWeaponRefine(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pWeaponRefine_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pWeaponRefine_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pWeaponRefine_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pWeaponRefine(fd, sd); + } + if( HPMHooks.count.HP_clif_pWeaponRefine_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pWeaponRefine_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pWeaponRefine_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNpcSelectMenu(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNpcSelectMenu_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcSelectMenu_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNpcSelectMenu_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNpcSelectMenu(fd, sd); + } + if( HPMHooks.count.HP_clif_pNpcSelectMenu_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcSelectMenu_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNpcSelectMenu_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNpcNextClicked(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNpcNextClicked_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcNextClicked_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNpcNextClicked_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNpcNextClicked(fd, sd); + } + if( HPMHooks.count.HP_clif_pNpcNextClicked_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcNextClicked_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNpcNextClicked_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNpcAmountInput(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNpcAmountInput_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcAmountInput_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNpcAmountInput_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNpcAmountInput(fd, sd); + } + if( HPMHooks.count.HP_clif_pNpcAmountInput_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcAmountInput_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNpcAmountInput_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNpcStringInput(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNpcStringInput_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcStringInput_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNpcStringInput_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNpcStringInput(fd, sd); + } + if( HPMHooks.count.HP_clif_pNpcStringInput_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcStringInput_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNpcStringInput_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNpcCloseClicked(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNpcCloseClicked_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcCloseClicked_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNpcCloseClicked_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNpcCloseClicked(fd, sd); + } + if( HPMHooks.count.HP_clif_pNpcCloseClicked_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNpcCloseClicked_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNpcCloseClicked_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pItemIdentify(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pItemIdentify_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pItemIdentify_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pItemIdentify_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pItemIdentify(fd, sd); + } + if( HPMHooks.count.HP_clif_pItemIdentify_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pItemIdentify_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pItemIdentify_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pSelectArrow(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pSelectArrow_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSelectArrow_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pSelectArrow_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pSelectArrow(fd, sd); + } + if( HPMHooks.count.HP_clif_pSelectArrow_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSelectArrow_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pSelectArrow_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAutoSpell(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAutoSpell_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAutoSpell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAutoSpell_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAutoSpell(fd, sd); + } + if( HPMHooks.count.HP_clif_pAutoSpell_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAutoSpell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAutoSpell_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pUseCard(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pUseCard_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseCard_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pUseCard_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pUseCard(fd, sd); + } + if( HPMHooks.count.HP_clif_pUseCard_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pUseCard_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pUseCard_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pInsertCard(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pInsertCard_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pInsertCard_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pInsertCard_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pInsertCard(fd, sd); + } + if( HPMHooks.count.HP_clif_pInsertCard_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pInsertCard_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pInsertCard_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pSolveCharName(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pSolveCharName_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSolveCharName_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pSolveCharName_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pSolveCharName(fd, sd); + } + if( HPMHooks.count.HP_clif_pSolveCharName_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSolveCharName_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pSolveCharName_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pResetChar(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pResetChar_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pResetChar_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pResetChar_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pResetChar(fd, sd); + } + if( HPMHooks.count.HP_clif_pResetChar_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pResetChar_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pResetChar_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pLocalBroadcast(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pLocalBroadcast_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLocalBroadcast_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pLocalBroadcast_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pLocalBroadcast(fd, sd); + } + if( HPMHooks.count.HP_clif_pLocalBroadcast_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLocalBroadcast_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pLocalBroadcast_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMoveToKafra(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMoveToKafra_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMoveToKafra_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMoveToKafra_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMoveToKafra(fd, sd); + } + if( HPMHooks.count.HP_clif_pMoveToKafra_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMoveToKafra_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMoveToKafra_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMoveFromKafra(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMoveFromKafra_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMoveFromKafra_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMoveFromKafra_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMoveFromKafra(fd, sd); + } + if( HPMHooks.count.HP_clif_pMoveFromKafra_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMoveFromKafra_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMoveFromKafra_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMoveToKafraFromCart(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMoveToKafraFromCart_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMoveToKafraFromCart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMoveToKafraFromCart_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMoveToKafraFromCart(fd, sd); + } + if( HPMHooks.count.HP_clif_pMoveToKafraFromCart_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMoveToKafraFromCart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMoveToKafraFromCart_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMoveFromKafraToCart(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMoveFromKafraToCart_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMoveFromKafraToCart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMoveFromKafraToCart_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMoveFromKafraToCart(fd, sd); + } + if( HPMHooks.count.HP_clif_pMoveFromKafraToCart_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMoveFromKafraToCart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMoveFromKafraToCart_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCloseKafra(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCloseKafra_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCloseKafra_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCloseKafra_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCloseKafra(fd, sd); + } + if( HPMHooks.count.HP_clif_pCloseKafra_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCloseKafra_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCloseKafra_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pStoragePassword(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pStoragePassword_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pStoragePassword_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pStoragePassword_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pStoragePassword(fd, sd); + } + if( HPMHooks.count.HP_clif_pStoragePassword_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pStoragePassword_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pStoragePassword_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCreateParty(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCreateParty_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCreateParty_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCreateParty_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCreateParty(fd, sd); + } + if( HPMHooks.count.HP_clif_pCreateParty_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCreateParty_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCreateParty_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCreateParty2(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCreateParty2_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCreateParty2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCreateParty2_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCreateParty2(fd, sd); + } + if( HPMHooks.count.HP_clif_pCreateParty2_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCreateParty2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCreateParty2_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyInvite(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyInvite_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyInvite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyInvite_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyInvite(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyInvite_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyInvite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyInvite_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyInvite2(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyInvite2_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyInvite2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyInvite2_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyInvite2(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyInvite2_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyInvite2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyInvite2_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pReplyPartyInvite(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pReplyPartyInvite_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReplyPartyInvite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pReplyPartyInvite_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pReplyPartyInvite(fd, sd); + } + if( HPMHooks.count.HP_clif_pReplyPartyInvite_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReplyPartyInvite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pReplyPartyInvite_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pReplyPartyInvite2(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pReplyPartyInvite2_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReplyPartyInvite2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pReplyPartyInvite2_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pReplyPartyInvite2(fd, sd); + } + if( HPMHooks.count.HP_clif_pReplyPartyInvite2_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReplyPartyInvite2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pReplyPartyInvite2_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pLeaveParty(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pLeaveParty_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLeaveParty_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pLeaveParty_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pLeaveParty(fd, sd); + } + if( HPMHooks.count.HP_clif_pLeaveParty_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLeaveParty_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pLeaveParty_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pRemovePartyMember(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pRemovePartyMember_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRemovePartyMember_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pRemovePartyMember_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pRemovePartyMember(fd, sd); + } + if( HPMHooks.count.HP_clif_pRemovePartyMember_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRemovePartyMember_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pRemovePartyMember_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyChangeOption(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyChangeOption_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyChangeOption_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyChangeOption_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyChangeOption(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyChangeOption_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyChangeOption_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyChangeOption_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyMessage(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyMessage_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyMessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyMessage_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyMessage(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyMessage_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyMessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyMessage_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyChangeLeader(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyChangeLeader_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyChangeLeader_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyChangeLeader_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyChangeLeader(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyChangeLeader_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyChangeLeader_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyChangeLeader_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyBookingRegisterReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyBookingRegisterReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingRegisterReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyBookingRegisterReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyBookingRegisterReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyBookingRegisterReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingRegisterReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyBookingRegisterReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyBookingSearchReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyBookingSearchReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingSearchReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyBookingSearchReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyBookingSearchReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyBookingSearchReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingSearchReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyBookingSearchReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyBookingDeleteReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyBookingDeleteReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingDeleteReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyBookingDeleteReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyBookingDeleteReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyBookingDeleteReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingDeleteReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyBookingDeleteReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyBookingUpdateReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyBookingUpdateReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingUpdateReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyBookingUpdateReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyBookingUpdateReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyBookingUpdateReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingUpdateReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyBookingUpdateReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyRecruitRegisterReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyRecruitRegisterReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyRecruitRegisterReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyRecruitRegisterReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyRecruitRegisterReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyRecruitRegisterReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyRecruitRegisterReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyRecruitRegisterReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyRecruitSearchReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyRecruitSearchReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyRecruitSearchReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyRecruitSearchReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyRecruitSearchReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyRecruitSearchReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyRecruitSearchReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyRecruitSearchReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyRecruitDeleteReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyRecruitDeleteReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyRecruitDeleteReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyRecruitDeleteReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyRecruitDeleteReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyRecruitDeleteReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyRecruitDeleteReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyRecruitDeleteReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyRecruitUpdateReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyRecruitUpdateReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyRecruitUpdateReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyRecruitUpdateReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyRecruitUpdateReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyRecruitUpdateReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyRecruitUpdateReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyRecruitUpdateReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCloseVending(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCloseVending_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCloseVending_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCloseVending_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCloseVending(fd, sd); + } + if( HPMHooks.count.HP_clif_pCloseVending_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCloseVending_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCloseVending_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pVendingListReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pVendingListReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pVendingListReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pVendingListReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pVendingListReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pVendingListReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pVendingListReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pVendingListReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPurchaseReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPurchaseReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPurchaseReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPurchaseReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPurchaseReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pPurchaseReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPurchaseReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPurchaseReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPurchaseReq2(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPurchaseReq2_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPurchaseReq2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPurchaseReq2_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPurchaseReq2(fd, sd); + } + if( HPMHooks.count.HP_clif_pPurchaseReq2_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPurchaseReq2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPurchaseReq2_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pOpenVending(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pOpenVending_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pOpenVending_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pOpenVending_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pOpenVending(fd, sd); + } + if( HPMHooks.count.HP_clif_pOpenVending_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pOpenVending_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pOpenVending_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCreateGuild(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCreateGuild_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCreateGuild_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCreateGuild_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCreateGuild(fd, sd); + } + if( HPMHooks.count.HP_clif_pCreateGuild_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCreateGuild_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCreateGuild_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildCheckMaster(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildCheckMaster_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildCheckMaster_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildCheckMaster_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildCheckMaster(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildCheckMaster_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildCheckMaster_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildCheckMaster_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildRequestInfo(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildRequestInfo_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildRequestInfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildRequestInfo_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildRequestInfo(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildRequestInfo_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildRequestInfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildRequestInfo_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildChangePositionInfo(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildChangePositionInfo_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildChangePositionInfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildChangePositionInfo_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildChangePositionInfo(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildChangePositionInfo_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildChangePositionInfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildChangePositionInfo_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildChangeMemberPosition(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildChangeMemberPosition_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildChangeMemberPosition_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildChangeMemberPosition_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildChangeMemberPosition(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildChangeMemberPosition_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildChangeMemberPosition_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildChangeMemberPosition_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildRequestEmblem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildRequestEmblem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildRequestEmblem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildRequestEmblem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildRequestEmblem(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildRequestEmblem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildRequestEmblem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildRequestEmblem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildChangeEmblem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildChangeEmblem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildChangeEmblem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildChangeEmblem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildChangeEmblem(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildChangeEmblem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildChangeEmblem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildChangeEmblem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildChangeNotice(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildChangeNotice_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildChangeNotice_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildChangeNotice_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildChangeNotice(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildChangeNotice_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildChangeNotice_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildChangeNotice_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildInvite(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildInvite_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildInvite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildInvite_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildInvite(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildInvite_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildInvite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildInvite_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildReplyInvite(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildReplyInvite_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildReplyInvite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildReplyInvite_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildReplyInvite(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildReplyInvite_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildReplyInvite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildReplyInvite_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildLeave(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildLeave_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildLeave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildLeave_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildLeave(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildLeave_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildLeave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildLeave_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildExpulsion(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildExpulsion_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildExpulsion_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildExpulsion_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildExpulsion(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildExpulsion_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildExpulsion_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildExpulsion_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildMessage(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildMessage_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildMessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildMessage_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildMessage(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildMessage_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildMessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildMessage_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildRequestAlliance(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildRequestAlliance_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildRequestAlliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildRequestAlliance_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildRequestAlliance(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildRequestAlliance_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildRequestAlliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildRequestAlliance_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildReplyAlliance(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildReplyAlliance_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildReplyAlliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildReplyAlliance_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildReplyAlliance(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildReplyAlliance_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildReplyAlliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildReplyAlliance_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildDelAlliance(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildDelAlliance_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildDelAlliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildDelAlliance_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildDelAlliance(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildDelAlliance_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildDelAlliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildDelAlliance_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildOpposition(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildOpposition_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildOpposition_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildOpposition_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildOpposition(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildOpposition_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildOpposition_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildOpposition_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildBreak(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildBreak_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildBreak_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildBreak_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildBreak(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildBreak_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildBreak_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildBreak_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPetMenu(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPetMenu_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPetMenu_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPetMenu_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPetMenu(fd, sd); + } + if( HPMHooks.count.HP_clif_pPetMenu_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPetMenu_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPetMenu_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCatchPet(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCatchPet_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCatchPet_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCatchPet_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCatchPet(fd, sd); + } + if( HPMHooks.count.HP_clif_pCatchPet_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCatchPet_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCatchPet_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pSelectEgg(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pSelectEgg_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSelectEgg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pSelectEgg_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pSelectEgg(fd, sd); + } + if( HPMHooks.count.HP_clif_pSelectEgg_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSelectEgg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pSelectEgg_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pSendEmotion(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pSendEmotion_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSendEmotion_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pSendEmotion_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pSendEmotion(fd, sd); + } + if( HPMHooks.count.HP_clif_pSendEmotion_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSendEmotion_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pSendEmotion_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pChangePetName(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pChangePetName_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangePetName_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pChangePetName_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pChangePetName(fd, sd); + } + if( HPMHooks.count.HP_clif_pChangePetName_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangePetName_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pChangePetName_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMKick(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMKick_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMKick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMKick_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMKick(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMKick_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMKick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMKick_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMKickAll(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMKickAll_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMKickAll_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMKickAll_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMKickAll(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMKickAll_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMKickAll_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMKickAll_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMShift(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMShift_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMShift_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMShift_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMShift(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMShift_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMShift_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMShift_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMRemove2(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMRemove2_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMRemove2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMRemove2_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMRemove2(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMRemove2_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMRemove2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMRemove2_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMRecall(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMRecall_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMRecall_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMRecall_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMRecall(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMRecall_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMRecall_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMRecall_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMRecall2(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMRecall2_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMRecall2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMRecall2_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMRecall2(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMRecall2_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMRecall2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMRecall2_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGM_Monster_Item(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGM_Monster_Item_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGM_Monster_Item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGM_Monster_Item_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGM_Monster_Item(fd, sd); + } + if( HPMHooks.count.HP_clif_pGM_Monster_Item_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGM_Monster_Item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGM_Monster_Item_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMHide(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMHide_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMHide_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMHide_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMHide(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMHide_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMHide_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMHide_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMReqNoChat(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMReqNoChat_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMReqNoChat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMReqNoChat_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMReqNoChat(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMReqNoChat_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMReqNoChat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMReqNoChat_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMRc(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMRc_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMRc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMRc_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMRc(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMRc_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMRc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMRc_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMReqAccountName(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMReqAccountName_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMReqAccountName_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMReqAccountName_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMReqAccountName(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMReqAccountName_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMReqAccountName_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMReqAccountName_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGMChangeMapType(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGMChangeMapType_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMChangeMapType_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGMChangeMapType_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGMChangeMapType(fd, sd); + } + if( HPMHooks.count.HP_clif_pGMChangeMapType_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGMChangeMapType_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGMChangeMapType_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPMIgnore(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPMIgnore_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPMIgnore_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPMIgnore_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPMIgnore(fd, sd); + } + if( HPMHooks.count.HP_clif_pPMIgnore_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPMIgnore_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPMIgnore_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPMIgnoreAll(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPMIgnoreAll_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPMIgnoreAll_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPMIgnoreAll_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPMIgnoreAll(fd, sd); + } + if( HPMHooks.count.HP_clif_pPMIgnoreAll_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPMIgnoreAll_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPMIgnoreAll_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPMIgnoreList(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPMIgnoreList_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPMIgnoreList_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPMIgnoreList_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPMIgnoreList(fd, sd); + } + if( HPMHooks.count.HP_clif_pPMIgnoreList_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPMIgnoreList_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPMIgnoreList_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNoviceDoriDori(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNoviceDoriDori_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNoviceDoriDori_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNoviceDoriDori_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNoviceDoriDori(fd, sd); + } + if( HPMHooks.count.HP_clif_pNoviceDoriDori_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNoviceDoriDori_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNoviceDoriDori_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pNoviceExplosionSpirits(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pNoviceExplosionSpirits_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNoviceExplosionSpirits_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pNoviceExplosionSpirits_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pNoviceExplosionSpirits(fd, sd); + } + if( HPMHooks.count.HP_clif_pNoviceExplosionSpirits_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pNoviceExplosionSpirits_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pNoviceExplosionSpirits_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pFriendsListAdd(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pFriendsListAdd_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pFriendsListAdd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pFriendsListAdd_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pFriendsListAdd(fd, sd); + } + if( HPMHooks.count.HP_clif_pFriendsListAdd_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pFriendsListAdd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pFriendsListAdd_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pFriendsListReply(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pFriendsListReply_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pFriendsListReply_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pFriendsListReply_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pFriendsListReply(fd, sd); + } + if( HPMHooks.count.HP_clif_pFriendsListReply_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pFriendsListReply_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pFriendsListReply_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pFriendsListRemove(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pFriendsListRemove_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pFriendsListRemove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pFriendsListRemove_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pFriendsListRemove(fd, sd); + } + if( HPMHooks.count.HP_clif_pFriendsListRemove_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pFriendsListRemove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pFriendsListRemove_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPVPInfo(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPVPInfo_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPVPInfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPVPInfo_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPVPInfo(fd, sd); + } + if( HPMHooks.count.HP_clif_pPVPInfo_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPVPInfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPVPInfo_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pBlacksmith(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pBlacksmith_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBlacksmith_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pBlacksmith_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pBlacksmith(fd, sd); + } + if( HPMHooks.count.HP_clif_pBlacksmith_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBlacksmith_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pBlacksmith_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAlchemist(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAlchemist_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAlchemist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAlchemist_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAlchemist(fd, sd); + } + if( HPMHooks.count.HP_clif_pAlchemist_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAlchemist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAlchemist_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pTaekwon(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pTaekwon_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTaekwon_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pTaekwon_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pTaekwon(fd, sd); + } + if( HPMHooks.count.HP_clif_pTaekwon_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pTaekwon_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pTaekwon_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pRankingPk(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pRankingPk_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRankingPk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pRankingPk_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pRankingPk(fd, sd); + } + if( HPMHooks.count.HP_clif_pRankingPk_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pRankingPk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pRankingPk_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pFeelSaveOk(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pFeelSaveOk_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pFeelSaveOk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pFeelSaveOk_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pFeelSaveOk(fd, sd); + } + if( HPMHooks.count.HP_clif_pFeelSaveOk_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pFeelSaveOk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pFeelSaveOk_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pChangeHomunculusName(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pChangeHomunculusName_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeHomunculusName_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pChangeHomunculusName_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pChangeHomunculusName(fd, sd); + } + if( HPMHooks.count.HP_clif_pChangeHomunculusName_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pChangeHomunculusName_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pChangeHomunculusName_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pHomMoveToMaster(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pHomMoveToMaster_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHomMoveToMaster_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pHomMoveToMaster_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pHomMoveToMaster(fd, sd); + } + if( HPMHooks.count.HP_clif_pHomMoveToMaster_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHomMoveToMaster_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pHomMoveToMaster_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pHomMoveTo(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pHomMoveTo_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHomMoveTo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pHomMoveTo_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pHomMoveTo(fd, sd); + } + if( HPMHooks.count.HP_clif_pHomMoveTo_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHomMoveTo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pHomMoveTo_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pHomAttack(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pHomAttack_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHomAttack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pHomAttack_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pHomAttack(fd, sd); + } + if( HPMHooks.count.HP_clif_pHomAttack_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHomAttack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pHomAttack_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pHomMenu(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pHomMenu_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHomMenu_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pHomMenu_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pHomMenu(fd, sd); + } + if( HPMHooks.count.HP_clif_pHomMenu_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pHomMenu_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pHomMenu_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAutoRevive(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAutoRevive_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAutoRevive_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAutoRevive_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAutoRevive(fd, sd); + } + if( HPMHooks.count.HP_clif_pAutoRevive_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAutoRevive_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAutoRevive_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCheck(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCheck_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCheck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCheck_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCheck(fd, sd); + } + if( HPMHooks.count.HP_clif_pCheck_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCheck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCheck_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMail_refreshinbox(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMail_refreshinbox_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_refreshinbox_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMail_refreshinbox_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMail_refreshinbox(fd, sd); + } + if( HPMHooks.count.HP_clif_pMail_refreshinbox_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_refreshinbox_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMail_refreshinbox_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMail_read(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMail_read_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMail_read_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMail_read(fd, sd); + } + if( HPMHooks.count.HP_clif_pMail_read_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMail_read_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMail_getattach(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMail_getattach_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_getattach_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMail_getattach_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMail_getattach(fd, sd); + } + if( HPMHooks.count.HP_clif_pMail_getattach_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_getattach_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMail_getattach_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMail_delete(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMail_delete_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMail_delete_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMail_delete(fd, sd); + } + if( HPMHooks.count.HP_clif_pMail_delete_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMail_delete_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMail_return(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMail_return_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_return_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMail_return_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMail_return(fd, sd); + } + if( HPMHooks.count.HP_clif_pMail_return_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_return_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMail_return_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMail_setattach(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMail_setattach_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_setattach_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMail_setattach_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMail_setattach(fd, sd); + } + if( HPMHooks.count.HP_clif_pMail_setattach_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_setattach_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMail_setattach_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMail_winopen(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMail_winopen_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_winopen_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMail_winopen_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMail_winopen(fd, sd); + } + if( HPMHooks.count.HP_clif_pMail_winopen_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_winopen_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMail_winopen_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMail_send(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMail_send_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_send_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMail_send_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMail_send(fd, sd); + } + if( HPMHooks.count.HP_clif_pMail_send_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMail_send_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMail_send_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAuction_cancelreg(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAuction_cancelreg_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_cancelreg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAuction_cancelreg_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAuction_cancelreg(fd, sd); + } + if( HPMHooks.count.HP_clif_pAuction_cancelreg_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_cancelreg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAuction_cancelreg_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAuction_setitem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAuction_setitem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_setitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAuction_setitem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAuction_setitem(fd, sd); + } + if( HPMHooks.count.HP_clif_pAuction_setitem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_setitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAuction_setitem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAuction_register(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAuction_register_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_register_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAuction_register_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAuction_register(fd, sd); + } + if( HPMHooks.count.HP_clif_pAuction_register_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_register_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAuction_register_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAuction_cancel(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAuction_cancel_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_cancel_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAuction_cancel_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAuction_cancel(fd, sd); + } + if( HPMHooks.count.HP_clif_pAuction_cancel_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_cancel_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAuction_cancel_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAuction_close(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAuction_close_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAuction_close_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAuction_close(fd, sd); + } + if( HPMHooks.count.HP_clif_pAuction_close_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAuction_close_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAuction_bid(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAuction_bid_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_bid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAuction_bid_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAuction_bid(fd, sd); + } + if( HPMHooks.count.HP_clif_pAuction_bid_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_bid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAuction_bid_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAuction_search(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAuction_search_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAuction_search_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAuction_search(fd, sd); + } + if( HPMHooks.count.HP_clif_pAuction_search_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAuction_search_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAuction_buysell(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAuction_buysell_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_buysell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAuction_buysell_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAuction_buysell(fd, sd); + } + if( HPMHooks.count.HP_clif_pAuction_buysell_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAuction_buysell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAuction_buysell_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pcashshop_buy(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pcashshop_buy_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pcashshop_buy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pcashshop_buy_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pcashshop_buy(fd, sd); + } + if( HPMHooks.count.HP_clif_pcashshop_buy_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pcashshop_buy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pcashshop_buy_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAdopt_request(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAdopt_request_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAdopt_request_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAdopt_request_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAdopt_request(fd, sd); + } + if( HPMHooks.count.HP_clif_pAdopt_request_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAdopt_request_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAdopt_request_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pAdopt_reply(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pAdopt_reply_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAdopt_reply_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pAdopt_reply_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pAdopt_reply(fd, sd); + } + if( HPMHooks.count.HP_clif_pAdopt_reply_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pAdopt_reply_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pAdopt_reply_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pViewPlayerEquip(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pViewPlayerEquip_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pViewPlayerEquip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pViewPlayerEquip_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pViewPlayerEquip(fd, sd); + } + if( HPMHooks.count.HP_clif_pViewPlayerEquip_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pViewPlayerEquip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pViewPlayerEquip_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pEquipTick(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pEquipTick_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pEquipTick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pEquipTick_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pEquipTick(fd, sd); + } + if( HPMHooks.count.HP_clif_pEquipTick_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pEquipTick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pEquipTick_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pquestStateAck(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pquestStateAck_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pquestStateAck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pquestStateAck_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pquestStateAck(fd, sd); + } + if( HPMHooks.count.HP_clif_pquestStateAck_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pquestStateAck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pquestStateAck_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pmercenary_action(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pmercenary_action_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pmercenary_action_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pmercenary_action_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pmercenary_action(fd, sd); + } + if( HPMHooks.count.HP_clif_pmercenary_action_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pmercenary_action_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pmercenary_action_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pBattleChat(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pBattleChat_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBattleChat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pBattleChat_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pBattleChat(fd, sd); + } + if( HPMHooks.count.HP_clif_pBattleChat_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBattleChat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pBattleChat_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pLessEffect(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pLessEffect_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLessEffect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pLessEffect_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pLessEffect(fd, sd); + } + if( HPMHooks.count.HP_clif_pLessEffect_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pLessEffect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pLessEffect_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pItemListWindowSelected(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pItemListWindowSelected_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pItemListWindowSelected_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pItemListWindowSelected_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pItemListWindowSelected(fd, sd); + } + if( HPMHooks.count.HP_clif_pItemListWindowSelected_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pItemListWindowSelected_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pItemListWindowSelected_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pReqOpenBuyingStore(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pReqOpenBuyingStore_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqOpenBuyingStore_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pReqOpenBuyingStore_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pReqOpenBuyingStore(fd, sd); + } + if( HPMHooks.count.HP_clif_pReqOpenBuyingStore_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqOpenBuyingStore_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pReqOpenBuyingStore_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pReqCloseBuyingStore(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pReqCloseBuyingStore_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqCloseBuyingStore_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pReqCloseBuyingStore_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pReqCloseBuyingStore(fd, sd); + } + if( HPMHooks.count.HP_clif_pReqCloseBuyingStore_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqCloseBuyingStore_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pReqCloseBuyingStore_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pReqClickBuyingStore(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pReqClickBuyingStore_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqClickBuyingStore_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pReqClickBuyingStore_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pReqClickBuyingStore(fd, sd); + } + if( HPMHooks.count.HP_clif_pReqClickBuyingStore_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqClickBuyingStore_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pReqClickBuyingStore_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pReqTradeBuyingStore(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pReqTradeBuyingStore_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqTradeBuyingStore_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pReqTradeBuyingStore_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pReqTradeBuyingStore(fd, sd); + } + if( HPMHooks.count.HP_clif_pReqTradeBuyingStore_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pReqTradeBuyingStore_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pReqTradeBuyingStore_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pSearchStoreInfo(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pSearchStoreInfo_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSearchStoreInfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pSearchStoreInfo_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pSearchStoreInfo(fd, sd); + } + if( HPMHooks.count.HP_clif_pSearchStoreInfo_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSearchStoreInfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pSearchStoreInfo_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pSearchStoreInfoNextPage(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pSearchStoreInfoNextPage_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSearchStoreInfoNextPage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pSearchStoreInfoNextPage_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pSearchStoreInfoNextPage(fd, sd); + } + if( HPMHooks.count.HP_clif_pSearchStoreInfoNextPage_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSearchStoreInfoNextPage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pSearchStoreInfoNextPage_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCloseSearchStoreInfo(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCloseSearchStoreInfo_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCloseSearchStoreInfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCloseSearchStoreInfo_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCloseSearchStoreInfo(fd, sd); + } + if( HPMHooks.count.HP_clif_pCloseSearchStoreInfo_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCloseSearchStoreInfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCloseSearchStoreInfo_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pSearchStoreInfoListItemClick(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pSearchStoreInfoListItemClick_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSearchStoreInfoListItemClick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pSearchStoreInfoListItemClick_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pSearchStoreInfoListItemClick(fd, sd); + } + if( HPMHooks.count.HP_clif_pSearchStoreInfoListItemClick_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSearchStoreInfoListItemClick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pSearchStoreInfoListItemClick_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pDebug(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pDebug_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pDebug_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pDebug_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pDebug(fd, sd); + } + if( HPMHooks.count.HP_clif_pDebug_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pDebug_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pDebug_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pSkillSelectMenu(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pSkillSelectMenu_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSkillSelectMenu_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pSkillSelectMenu_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pSkillSelectMenu(fd, sd); + } + if( HPMHooks.count.HP_clif_pSkillSelectMenu_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pSkillSelectMenu_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pSkillSelectMenu_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pMoveItem(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pMoveItem_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMoveItem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pMoveItem_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pMoveItem(fd, sd); + } + if( HPMHooks.count.HP_clif_pMoveItem_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pMoveItem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pMoveItem_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pDull(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pDull_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pDull_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pDull_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pDull(fd, sd); + } + if( HPMHooks.count.HP_clif_pDull_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pDull_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pDull_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pBGQueueRegister(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pBGQueueRegister_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBGQueueRegister_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pBGQueueRegister_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pBGQueueRegister(fd, sd); + } + if( HPMHooks.count.HP_clif_pBGQueueRegister_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBGQueueRegister_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pBGQueueRegister_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pBGQueueCheckState(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pBGQueueCheckState_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBGQueueCheckState_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pBGQueueCheckState_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pBGQueueCheckState(fd, sd); + } + if( HPMHooks.count.HP_clif_pBGQueueCheckState_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBGQueueCheckState_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pBGQueueCheckState_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pBGQueueRevokeReq(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pBGQueueRevokeReq_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBGQueueRevokeReq_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pBGQueueRevokeReq_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pBGQueueRevokeReq(fd, sd); + } + if( HPMHooks.count.HP_clif_pBGQueueRevokeReq_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBGQueueRevokeReq_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pBGQueueRevokeReq_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pBGQueueBattleBeginAck(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pBGQueueBattleBeginAck_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBGQueueBattleBeginAck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pBGQueueBattleBeginAck_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pBGQueueBattleBeginAck(fd, sd); + } + if( HPMHooks.count.HP_clif_pBGQueueBattleBeginAck_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pBGQueueBattleBeginAck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pBGQueueBattleBeginAck_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCashShopOpen(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCashShopOpen_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCashShopOpen_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCashShopOpen(fd, sd); + } + if( HPMHooks.count.HP_clif_pCashShopOpen_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopOpen_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCashShopOpen_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCashShopClose(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCashShopClose_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopClose_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCashShopClose_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCashShopClose(fd, sd); + } + if( HPMHooks.count.HP_clif_pCashShopClose_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopClose_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCashShopClose_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCashShopReqTab(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCashShopReqTab_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopReqTab_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCashShopReqTab_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCashShopReqTab(fd, sd); + } + if( HPMHooks.count.HP_clif_pCashShopReqTab_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopReqTab_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCashShopReqTab_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCashShopSchedule(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCashShopSchedule_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopSchedule_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCashShopSchedule_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCashShopSchedule(fd, sd); + } + if( HPMHooks.count.HP_clif_pCashShopSchedule_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopSchedule_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCashShopSchedule_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pCashShopBuy(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pCashShopBuy_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopBuy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pCashShopBuy_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pCashShopBuy(fd, sd); + } + if( HPMHooks.count.HP_clif_pCashShopBuy_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pCashShopBuy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pCashShopBuy_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyTick(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyTick_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyTick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyTick_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyTick(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyTick_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyTick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyTick_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pGuildInvite2(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pGuildInvite2_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildInvite2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pGuildInvite2_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pGuildInvite2(fd, sd); + } + if( HPMHooks.count.HP_clif_pGuildInvite2_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pGuildInvite2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pGuildInvite2_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyBookingAddFilter(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyBookingAddFilter_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingAddFilter_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyBookingAddFilter_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyBookingAddFilter(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyBookingAddFilter_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingAddFilter_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyBookingAddFilter_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyBookingSubFilter(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyBookingSubFilter_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingSubFilter_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyBookingSubFilter_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyBookingSubFilter(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyBookingSubFilter_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingSubFilter_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyBookingSubFilter_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyBookingReqVolunteer(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyBookingReqVolunteer_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingReqVolunteer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyBookingReqVolunteer_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyBookingReqVolunteer(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyBookingReqVolunteer_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingReqVolunteer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyBookingReqVolunteer_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyBookingRefuseVolunteer(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyBookingRefuseVolunteer_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingRefuseVolunteer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyBookingRefuseVolunteer_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyBookingRefuseVolunteer(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyBookingRefuseVolunteer_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingRefuseVolunteer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyBookingRefuseVolunteer_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +void HP_clif_pPartyBookingCancelVolunteer(int fd, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_pPartyBookingCancelVolunteer_pre ) { + void (*preHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingCancelVolunteer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_pPartyBookingCancelVolunteer_pre[hIndex].func; + preHookFunc(&fd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.pPartyBookingCancelVolunteer(fd, sd); + } + if( HPMHooks.count.HP_clif_pPartyBookingCancelVolunteer_post ) { + void (*postHookFunc) (int *fd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_pPartyBookingCancelVolunteer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_pPartyBookingCancelVolunteer_post[hIndex].func; + postHookFunc(&fd, sd); + } + } + return; +} +/* duel */ +int HP_duel_create(struct map_session_data *sd, const unsigned int maxpl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_duel_create_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const unsigned int *maxpl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_duel_create_pre[hIndex].func; + retVal___ = preHookFunc(sd, &maxpl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.duel.create(sd, maxpl); + } + if( HPMHooks.count.HP_duel_create_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const unsigned int *maxpl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_duel_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &maxpl); + } + } + return retVal___; +} +void HP_duel_invite(const unsigned int did, struct map_session_data *sd, struct map_session_data *target_sd) { + int hIndex = 0; + if( HPMHooks.count.HP_duel_invite_pre ) { + void (*preHookFunc) (const unsigned int *did, struct map_session_data *sd, struct map_session_data *target_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_invite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_duel_invite_pre[hIndex].func; + preHookFunc(&did, sd, target_sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.duel.invite(did, sd, target_sd); + } + if( HPMHooks.count.HP_duel_invite_post ) { + void (*postHookFunc) (const unsigned int *did, struct map_session_data *sd, struct map_session_data *target_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_invite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_duel_invite_post[hIndex].func; + postHookFunc(&did, sd, target_sd); + } + } + return; +} +void HP_duel_accept(const unsigned int did, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_duel_accept_pre ) { + void (*preHookFunc) (const unsigned int *did, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_accept_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_duel_accept_pre[hIndex].func; + preHookFunc(&did, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.duel.accept(did, sd); + } + if( HPMHooks.count.HP_duel_accept_post ) { + void (*postHookFunc) (const unsigned int *did, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_accept_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_duel_accept_post[hIndex].func; + postHookFunc(&did, sd); + } + } + return; +} +void HP_duel_reject(const unsigned int did, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_duel_reject_pre ) { + void (*preHookFunc) (const unsigned int *did, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_reject_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_duel_reject_pre[hIndex].func; + preHookFunc(&did, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.duel.reject(did, sd); + } + if( HPMHooks.count.HP_duel_reject_post ) { + void (*postHookFunc) (const unsigned int *did, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_reject_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_duel_reject_post[hIndex].func; + postHookFunc(&did, sd); + } + } + return; +} +void HP_duel_leave(const unsigned int did, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_duel_leave_pre ) { + void (*preHookFunc) (const unsigned int *did, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_leave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_duel_leave_pre[hIndex].func; + preHookFunc(&did, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.duel.leave(did, sd); + } + if( HPMHooks.count.HP_duel_leave_post ) { + void (*postHookFunc) (const unsigned int *did, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_leave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_duel_leave_post[hIndex].func; + postHookFunc(&did, sd); + } + } + return; +} +void HP_duel_showinfo(const unsigned int did, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_duel_showinfo_pre ) { + void (*preHookFunc) (const unsigned int *did, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_showinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_duel_showinfo_pre[hIndex].func; + preHookFunc(&did, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.duel.showinfo(did, sd); + } + if( HPMHooks.count.HP_duel_showinfo_post ) { + void (*postHookFunc) (const unsigned int *did, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_showinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_duel_showinfo_post[hIndex].func; + postHookFunc(&did, sd); + } + } + return; +} +int HP_duel_checktime(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_duel_checktime_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_checktime_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_duel_checktime_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.duel.checktime(sd); + } + if( HPMHooks.count.HP_duel_checktime_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_checktime_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_duel_checktime_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +void HP_duel_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_duel_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_duel_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.duel.init(); + } + if( HPMHooks.count.HP_duel_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_duel_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_duel_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_duel_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_duel_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.duel.final(); + } + if( HPMHooks.count.HP_duel_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_duel_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_duel_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +/* elemental */ +int HP_elemental_init(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_init_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.init(); + } + if( HPMHooks.count.HP_elemental_init_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_elemental_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_elemental_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.elemental.final(); + } + if( HPMHooks.count.HP_elemental_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +bool HP_elemental_class(int class_) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_elemental_class_pre ) { + bool (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_class_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_class_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.class(class_); + } + if( HPMHooks.count.HP_elemental_class_post ) { + bool (*postHookFunc) (bool retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_class_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_class_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +struct view_data* HP_elemental_get_viewdata(int class_) { + int hIndex = 0; + struct view_data* retVal___ = NULL; + if( HPMHooks.count.HP_elemental_get_viewdata_pre ) { + struct view_data* (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_get_viewdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_get_viewdata_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.get_viewdata(class_); + } + if( HPMHooks.count.HP_elemental_get_viewdata_post ) { + struct view_data* (*postHookFunc) (struct view_data* retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_get_viewdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_get_viewdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +int HP_elemental_create(struct map_session_data *sd, int class_, unsigned int lifetime) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_create_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *class_, unsigned int *lifetime); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_create_pre[hIndex].func; + retVal___ = preHookFunc(sd, &class_, &lifetime); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.create(sd, class_, lifetime); + } + if( HPMHooks.count.HP_elemental_create_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *class_, unsigned int *lifetime); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &class_, &lifetime); + } + } + return retVal___; +} +int HP_elemental_data_received(struct s_elemental *ele, bool flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_data_received_pre ) { + int (*preHookFunc) (struct s_elemental *ele, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_data_received_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_data_received_pre[hIndex].func; + retVal___ = preHookFunc(ele, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.data_received(ele, flag); + } + if( HPMHooks.count.HP_elemental_data_received_post ) { + int (*postHookFunc) (int retVal___, struct s_elemental *ele, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_data_received_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_data_received_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ele, &flag); + } + } + return retVal___; +} +int HP_elemental_save(struct elemental_data *ed) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_save_pre ) { + int (*preHookFunc) (struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_save_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_save_pre[hIndex].func; + retVal___ = preHookFunc(ed); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.save(ed); + } + if( HPMHooks.count.HP_elemental_save_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_save_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_save_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed); + } + } + return retVal___; +} +int HP_elemental_change_mode_ack(struct elemental_data *ed, int mode) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_change_mode_ack_pre ) { + int (*preHookFunc) (struct elemental_data *ed, int *mode); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_change_mode_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_change_mode_ack_pre[hIndex].func; + retVal___ = preHookFunc(ed, &mode); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.change_mode_ack(ed, mode); + } + if( HPMHooks.count.HP_elemental_change_mode_ack_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed, int *mode); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_change_mode_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_change_mode_ack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed, &mode); + } + } + return retVal___; +} +int HP_elemental_change_mode(struct elemental_data *ed, int mode) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_change_mode_pre ) { + int (*preHookFunc) (struct elemental_data *ed, int *mode); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_change_mode_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_change_mode_pre[hIndex].func; + retVal___ = preHookFunc(ed, &mode); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.change_mode(ed, mode); + } + if( HPMHooks.count.HP_elemental_change_mode_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed, int *mode); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_change_mode_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_change_mode_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed, &mode); + } + } + return retVal___; +} +void HP_elemental_heal(struct elemental_data *ed, int hp, int sp) { + int hIndex = 0; + if( HPMHooks.count.HP_elemental_heal_pre ) { + void (*preHookFunc) (struct elemental_data *ed, int *hp, int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_heal_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_heal_pre[hIndex].func; + preHookFunc(ed, &hp, &sp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.elemental.heal(ed, hp, sp); + } + if( HPMHooks.count.HP_elemental_heal_post ) { + void (*postHookFunc) (struct elemental_data *ed, int *hp, int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_heal_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_heal_post[hIndex].func; + postHookFunc(ed, &hp, &sp); + } + } + return; +} +int HP_elemental_dead(struct elemental_data *ed) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_dead_pre ) { + int (*preHookFunc) (struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_dead_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_dead_pre[hIndex].func; + retVal___ = preHookFunc(ed); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.dead(ed); + } + if( HPMHooks.count.HP_elemental_dead_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_dead_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_dead_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed); + } + } + return retVal___; +} +int HP_elemental_delete(struct elemental_data *ed, int reply) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_delete_pre ) { + int (*preHookFunc) (struct elemental_data *ed, int *reply); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_delete_pre[hIndex].func; + retVal___ = preHookFunc(ed, &reply); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.delete(ed, reply); + } + if( HPMHooks.count.HP_elemental_delete_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed, int *reply); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed, &reply); + } + } + return retVal___; +} +void HP_elemental_summon_stop(struct elemental_data *ed) { + int hIndex = 0; + if( HPMHooks.count.HP_elemental_summon_stop_pre ) { + void (*preHookFunc) (struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_summon_stop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_summon_stop_pre[hIndex].func; + preHookFunc(ed); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.elemental.summon_stop(ed); + } + if( HPMHooks.count.HP_elemental_summon_stop_post ) { + void (*postHookFunc) (struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_summon_stop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_summon_stop_post[hIndex].func; + postHookFunc(ed); + } + } + return; +} +int HP_elemental_get_lifetime(struct elemental_data *ed) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_get_lifetime_pre ) { + int (*preHookFunc) (struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_get_lifetime_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_get_lifetime_pre[hIndex].func; + retVal___ = preHookFunc(ed); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.get_lifetime(ed); + } + if( HPMHooks.count.HP_elemental_get_lifetime_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_get_lifetime_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_get_lifetime_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed); + } + } + return retVal___; +} +int HP_elemental_unlocktarget(struct elemental_data *ed) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_unlocktarget_pre ) { + int (*preHookFunc) (struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_unlocktarget_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_unlocktarget_pre[hIndex].func; + retVal___ = preHookFunc(ed); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.unlocktarget(ed); + } + if( HPMHooks.count.HP_elemental_unlocktarget_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_unlocktarget_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_unlocktarget_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed); + } + } + return retVal___; +} +int HP_elemental_skillnotok(uint16 skill_id, struct elemental_data *ed) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_skillnotok_pre ) { + int (*preHookFunc) (uint16 *skill_id, struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_skillnotok_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_skillnotok_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, ed); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.skillnotok(skill_id, ed); + } + if( HPMHooks.count.HP_elemental_skillnotok_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_skillnotok_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_skillnotok_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, ed); + } + } + return retVal___; +} +int HP_elemental_set_target(struct map_session_data *sd, struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_set_target_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_set_target_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_set_target_pre[hIndex].func; + retVal___ = preHookFunc(sd, bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.set_target(sd, bl); + } + if( HPMHooks.count.HP_elemental_set_target_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_set_target_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_set_target_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, bl); + } + } + return retVal___; +} +int HP_elemental_clean_single_effect(struct elemental_data *ed, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_clean_single_effect_pre ) { + int (*preHookFunc) (struct elemental_data *ed, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_clean_single_effect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_clean_single_effect_pre[hIndex].func; + retVal___ = preHookFunc(ed, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.clean_single_effect(ed, skill_id); + } + if( HPMHooks.count.HP_elemental_clean_single_effect_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_clean_single_effect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_clean_single_effect_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed, &skill_id); + } + } + return retVal___; +} +int HP_elemental_clean_effect(struct elemental_data *ed) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_clean_effect_pre ) { + int (*preHookFunc) (struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_clean_effect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_clean_effect_pre[hIndex].func; + retVal___ = preHookFunc(ed); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.clean_effect(ed); + } + if( HPMHooks.count.HP_elemental_clean_effect_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_clean_effect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_clean_effect_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed); + } + } + return retVal___; +} +int HP_elemental_action(struct elemental_data *ed, struct block_list *bl, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_action_pre ) { + int (*preHookFunc) (struct elemental_data *ed, struct block_list *bl, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_action_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_action_pre[hIndex].func; + retVal___ = preHookFunc(ed, bl, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.action(ed, bl, tick); + } + if( HPMHooks.count.HP_elemental_action_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed, struct block_list *bl, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_action_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_action_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed, bl, &tick); + } + } + return retVal___; +} +struct skill_condition HP_elemental_skill_get_requirements(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + struct skill_condition retVal___; + memset(&retVal___, '\0', sizeof(struct skill_condition)); + if( HPMHooks.count.HP_elemental_skill_get_requirements_pre ) { + struct skill_condition (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_skill_get_requirements_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_skill_get_requirements_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.skill_get_requirements(skill_id, skill_lv); + } + if( HPMHooks.count.HP_elemental_skill_get_requirements_post ) { + struct skill_condition (*postHookFunc) (struct skill_condition retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_skill_get_requirements_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_skill_get_requirements_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_elemental_read_skilldb(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_read_skilldb_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_read_skilldb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_read_skilldb_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.read_skilldb(); + } + if( HPMHooks.count.HP_elemental_read_skilldb_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_read_skilldb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_read_skilldb_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_elemental_reload_db(void) { + int hIndex = 0; + if( HPMHooks.count.HP_elemental_reload_db_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_reload_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_reload_db_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.elemental.reload_db(); + } + if( HPMHooks.count.HP_elemental_reload_db_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_reload_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_reload_db_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_elemental_reload_skilldb(void) { + int hIndex = 0; + if( HPMHooks.count.HP_elemental_reload_skilldb_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_reload_skilldb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_reload_skilldb_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.elemental.reload_skilldb(); + } + if( HPMHooks.count.HP_elemental_reload_skilldb_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_reload_skilldb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_reload_skilldb_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_elemental_search_index(int class_) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_search_index_pre ) { + int (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_search_index_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_search_index_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.search_index(class_); + } + if( HPMHooks.count.HP_elemental_search_index_post ) { + int (*postHookFunc) (int retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_search_index_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_search_index_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +void HP_elemental_summon_init(struct elemental_data *ed) { + int hIndex = 0; + if( HPMHooks.count.HP_elemental_summon_init_pre ) { + void (*preHookFunc) (struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_summon_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_summon_init_pre[hIndex].func; + preHookFunc(ed); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.elemental.summon_init(ed); + } + if( HPMHooks.count.HP_elemental_summon_init_post ) { + void (*postHookFunc) (struct elemental_data *ed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_summon_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_summon_init_post[hIndex].func; + postHookFunc(ed); + } + } + return; +} +int HP_elemental_summon_end_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_summon_end_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_summon_end_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_summon_end_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.summon_end_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_elemental_summon_end_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_summon_end_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_summon_end_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_elemental_ai_sub_timer_activesearch(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_ai_sub_timer_activesearch_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_ai_sub_timer_activesearch_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_elemental_ai_sub_timer_activesearch_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.elemental.ai_sub_timer_activesearch(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_elemental_ai_sub_timer_activesearch_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_ai_sub_timer_activesearch_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_elemental_ai_sub_timer_activesearch_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_elemental_ai_sub_timer(struct elemental_data *ed, struct map_session_data *sd, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_ai_sub_timer_pre ) { + int (*preHookFunc) (struct elemental_data *ed, struct map_session_data *sd, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_ai_sub_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_ai_sub_timer_pre[hIndex].func; + retVal___ = preHookFunc(ed, sd, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.ai_sub_timer(ed, sd, tick); + } + if( HPMHooks.count.HP_elemental_ai_sub_timer_post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed, struct map_session_data *sd, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_ai_sub_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_ai_sub_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed, sd, &tick); + } + } + return retVal___; +} +int HP_elemental_ai_sub_foreachclient(struct map_session_data *sd, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_ai_sub_foreachclient_pre ) { + int (*preHookFunc) (struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_ai_sub_foreachclient_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_elemental_ai_sub_foreachclient_pre[hIndex].func; + retVal___ = preHookFunc(sd, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.elemental.ai_sub_foreachclient(sd, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_elemental_ai_sub_foreachclient_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_ai_sub_foreachclient_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_elemental_ai_sub_foreachclient_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_elemental_ai_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_ai_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_ai_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_ai_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.ai_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_elemental_ai_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_ai_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_ai_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_elemental_read_db(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_elemental_read_db_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_read_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_elemental_read_db_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.elemental.read_db(); + } + if( HPMHooks.count.HP_elemental_read_db_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_elemental_read_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_elemental_read_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +/* guild */ +void HP_guild_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.init(); + } + if( HPMHooks.count.HP_guild_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_guild_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.final(); + } + if( HPMHooks.count.HP_guild_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_guild_skill_get_max(int id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_skill_get_max_pre ) { + int (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_skill_get_max_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_skill_get_max_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.skill_get_max(id); + } + if( HPMHooks.count.HP_guild_skill_get_max_post ) { + int (*postHookFunc) (int retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_skill_get_max_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_skill_get_max_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +int HP_guild_checkskill(struct guild *g, int id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_checkskill_pre ) { + int (*preHookFunc) (struct guild *g, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_checkskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_checkskill_pre[hIndex].func; + retVal___ = preHookFunc(g, &id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.checkskill(g, id); + } + if( HPMHooks.count.HP_guild_checkskill_post ) { + int (*postHookFunc) (int retVal___, struct guild *g, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_checkskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_checkskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, g, &id); + } + } + return retVal___; +} +int HP_guild_check_skill_require(struct guild *g, int id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_check_skill_require_pre ) { + int (*preHookFunc) (struct guild *g, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_check_skill_require_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_check_skill_require_pre[hIndex].func; + retVal___ = preHookFunc(g, &id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.check_skill_require(g, id); + } + if( HPMHooks.count.HP_guild_check_skill_require_post ) { + int (*postHookFunc) (int retVal___, struct guild *g, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_check_skill_require_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_check_skill_require_post[hIndex].func; + retVal___ = postHookFunc(retVal___, g, &id); + } + } + return retVal___; +} +int HP_guild_checkcastles(struct guild *g) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_checkcastles_pre ) { + int (*preHookFunc) (struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_checkcastles_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_checkcastles_pre[hIndex].func; + retVal___ = preHookFunc(g); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.checkcastles(g); + } + if( HPMHooks.count.HP_guild_checkcastles_post ) { + int (*postHookFunc) (int retVal___, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_checkcastles_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_checkcastles_post[hIndex].func; + retVal___ = postHookFunc(retVal___, g); + } + } + return retVal___; +} +bool HP_guild_isallied(int guild_id, int guild_id2) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_guild_isallied_pre ) { + bool (*preHookFunc) (int *guild_id, int *guild_id2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_isallied_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_isallied_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &guild_id2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.isallied(guild_id, guild_id2); + } + if( HPMHooks.count.HP_guild_isallied_post ) { + bool (*postHookFunc) (bool retVal___, int *guild_id, int *guild_id2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_isallied_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_isallied_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &guild_id2); + } + } + return retVal___; +} +struct guild* HP_guild_search(int guild_id) { + int hIndex = 0; + struct guild* retVal___ = NULL; + if( HPMHooks.count.HP_guild_search_pre ) { + struct guild* (*preHookFunc) (int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_search_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.search(guild_id); + } + if( HPMHooks.count.HP_guild_search_post ) { + struct guild* (*postHookFunc) (struct guild* retVal___, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id); + } + } + return retVal___; +} +struct guild* HP_guild_searchname(char *str) { + int hIndex = 0; + struct guild* retVal___ = NULL; + if( HPMHooks.count.HP_guild_searchname_pre ) { + struct guild* (*preHookFunc) (char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_searchname_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_searchname_pre[hIndex].func; + retVal___ = preHookFunc(str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.searchname(str); + } + if( HPMHooks.count.HP_guild_searchname_post ) { + struct guild* (*postHookFunc) (struct guild* retVal___, char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_searchname_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_searchname_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str); + } + } + return retVal___; +} +struct guild_castle* HP_guild_castle_search(int gcid) { + int hIndex = 0; + struct guild_castle* retVal___ = NULL; + if( HPMHooks.count.HP_guild_castle_search_pre ) { + struct guild_castle* (*preHookFunc) (int *gcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_castle_search_pre[hIndex].func; + retVal___ = preHookFunc(&gcid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.castle_search(gcid); + } + if( HPMHooks.count.HP_guild_castle_search_post ) { + struct guild_castle* (*postHookFunc) (struct guild_castle* retVal___, int *gcid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_castle_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &gcid); + } + } + return retVal___; +} +struct guild_castle* HP_guild_mapname2gc(const char *mapname) { + int hIndex = 0; + struct guild_castle* retVal___ = NULL; + if( HPMHooks.count.HP_guild_mapname2gc_pre ) { + struct guild_castle* (*preHookFunc) (const char *mapname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_mapname2gc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_mapname2gc_pre[hIndex].func; + retVal___ = preHookFunc(mapname); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.mapname2gc(mapname); + } + if( HPMHooks.count.HP_guild_mapname2gc_post ) { + struct guild_castle* (*postHookFunc) (struct guild_castle* retVal___, const char *mapname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_mapname2gc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_mapname2gc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, mapname); + } + } + return retVal___; +} +struct guild_castle* HP_guild_mapindex2gc(short mapindex) { + int hIndex = 0; + struct guild_castle* retVal___ = NULL; + if( HPMHooks.count.HP_guild_mapindex2gc_pre ) { + struct guild_castle* (*preHookFunc) (short *mapindex); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_mapindex2gc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_mapindex2gc_pre[hIndex].func; + retVal___ = preHookFunc(&mapindex); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.mapindex2gc(mapindex); + } + if( HPMHooks.count.HP_guild_mapindex2gc_post ) { + struct guild_castle* (*postHookFunc) (struct guild_castle* retVal___, short *mapindex); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_mapindex2gc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_mapindex2gc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &mapindex); + } + } + return retVal___; +} +struct map_session_data* HP_guild_getavailablesd(struct guild *g) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_guild_getavailablesd_pre ) { + struct map_session_data* (*preHookFunc) (struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_getavailablesd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_getavailablesd_pre[hIndex].func; + retVal___ = preHookFunc(g); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.getavailablesd(g); + } + if( HPMHooks.count.HP_guild_getavailablesd_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_getavailablesd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_getavailablesd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, g); + } + } + return retVal___; +} +int HP_guild_getindex(struct guild *g, int account_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_getindex_pre ) { + int (*preHookFunc) (struct guild *g, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_getindex_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_getindex_pre[hIndex].func; + retVal___ = preHookFunc(g, &account_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.getindex(g, account_id, char_id); + } + if( HPMHooks.count.HP_guild_getindex_post ) { + int (*postHookFunc) (int retVal___, struct guild *g, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_getindex_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_getindex_post[hIndex].func; + retVal___ = postHookFunc(retVal___, g, &account_id, &char_id); + } + } + return retVal___; +} +int HP_guild_getposition(struct guild *g, struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_getposition_pre ) { + int (*preHookFunc) (struct guild *g, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_getposition_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_getposition_pre[hIndex].func; + retVal___ = preHookFunc(g, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.getposition(g, sd); + } + if( HPMHooks.count.HP_guild_getposition_post ) { + int (*postHookFunc) (int retVal___, struct guild *g, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_getposition_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_getposition_post[hIndex].func; + retVal___ = postHookFunc(retVal___, g, sd); + } + } + return retVal___; +} +unsigned int HP_guild_payexp(struct map_session_data *sd, unsigned int exp) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_guild_payexp_pre ) { + unsigned int (*preHookFunc) (struct map_session_data *sd, unsigned int *exp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_payexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_payexp_pre[hIndex].func; + retVal___ = preHookFunc(sd, &exp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.payexp(sd, exp); + } + if( HPMHooks.count.HP_guild_payexp_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct map_session_data *sd, unsigned int *exp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_payexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_payexp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &exp); + } + } + return retVal___; +} +int HP_guild_getexp(struct map_session_data *sd, int exp) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_getexp_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *exp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_getexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_getexp_pre[hIndex].func; + retVal___ = preHookFunc(sd, &exp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.getexp(sd, exp); + } + if( HPMHooks.count.HP_guild_getexp_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *exp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_getexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_getexp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &exp); + } + } + return retVal___; +} +int HP_guild_create(struct map_session_data *sd, const char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_create_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_create_pre[hIndex].func; + retVal___ = preHookFunc(sd, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.create(sd, name); + } + if( HPMHooks.count.HP_guild_create_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, name); + } + } + return retVal___; +} +int HP_guild_created(int account_id, int guild_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_created_pre ) { + int (*preHookFunc) (int *account_id, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_created_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_created_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.created(account_id, guild_id); + } + if( HPMHooks.count.HP_guild_created_post ) { + int (*postHookFunc) (int retVal___, int *account_id, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_created_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_created_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &guild_id); + } + } + return retVal___; +} +int HP_guild_request_info(int guild_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_request_info_pre ) { + int (*preHookFunc) (int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_request_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_request_info_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.request_info(guild_id); + } + if( HPMHooks.count.HP_guild_request_info_post ) { + int (*postHookFunc) (int retVal___, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_request_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_request_info_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id); + } + } + return retVal___; +} +int HP_guild_recv_noinfo(int guild_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_recv_noinfo_pre ) { + int (*preHookFunc) (int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_recv_noinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_recv_noinfo_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.recv_noinfo(guild_id); + } + if( HPMHooks.count.HP_guild_recv_noinfo_post ) { + int (*postHookFunc) (int retVal___, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_recv_noinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_recv_noinfo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id); + } + } + return retVal___; +} +int HP_guild_recv_info(struct guild *sg) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_recv_info_pre ) { + int (*preHookFunc) (struct guild *sg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_recv_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_recv_info_pre[hIndex].func; + retVal___ = preHookFunc(sg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.recv_info(sg); + } + if( HPMHooks.count.HP_guild_recv_info_post ) { + int (*postHookFunc) (int retVal___, struct guild *sg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_recv_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_recv_info_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sg); + } + } + return retVal___; +} +int HP_guild_npc_request_info(int guild_id, const char *ev) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_npc_request_info_pre ) { + int (*preHookFunc) (int *guild_id, const char *ev); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_npc_request_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_npc_request_info_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, ev); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.npc_request_info(guild_id, ev); + } + if( HPMHooks.count.HP_guild_npc_request_info_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, const char *ev); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_npc_request_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_npc_request_info_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, ev); + } + } + return retVal___; +} +int HP_guild_invite(struct map_session_data *sd, struct map_session_data *tsd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_invite_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_invite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_invite_pre[hIndex].func; + retVal___ = preHookFunc(sd, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.invite(sd, tsd); + } + if( HPMHooks.count.HP_guild_invite_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_invite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_invite_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, tsd); + } + } + return retVal___; +} +int HP_guild_reply_invite(struct map_session_data *sd, int guild_id, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_reply_invite_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *guild_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_reply_invite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_reply_invite_pre[hIndex].func; + retVal___ = preHookFunc(sd, &guild_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.reply_invite(sd, guild_id, flag); + } + if( HPMHooks.count.HP_guild_reply_invite_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *guild_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_reply_invite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_reply_invite_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &guild_id, &flag); + } + } + return retVal___; +} +void HP_guild_member_joined(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_member_joined_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_member_joined_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_member_joined_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.member_joined(sd); + } + if( HPMHooks.count.HP_guild_member_joined_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_member_joined_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_member_joined_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_guild_member_added(int guild_id, int account_id, int char_id, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_member_added_pre ) { + int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_member_added_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_member_added_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, &char_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.member_added(guild_id, account_id, char_id, flag); + } + if( HPMHooks.count.HP_guild_member_added_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_member_added_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_member_added_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, &flag); + } + } + return retVal___; +} +int HP_guild_leave(struct map_session_data *sd, int guild_id, int account_id, int char_id, const char *mes) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_leave_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *guild_id, int *account_id, int *char_id, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_leave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_leave_pre[hIndex].func; + retVal___ = preHookFunc(sd, &guild_id, &account_id, &char_id, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.leave(sd, guild_id, account_id, char_id, mes); + } + if( HPMHooks.count.HP_guild_leave_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *guild_id, int *account_id, int *char_id, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_leave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_leave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &guild_id, &account_id, &char_id, mes); + } + } + return retVal___; +} +int HP_guild_member_withdraw(int guild_id, int account_id, int char_id, int flag, const char *name, const char *mes) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_member_withdraw_pre ) { + int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, int *flag, const char *name, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_member_withdraw_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_member_withdraw_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, &char_id, &flag, name, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.member_withdraw(guild_id, account_id, char_id, flag, name, mes); + } + if( HPMHooks.count.HP_guild_member_withdraw_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, int *flag, const char *name, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_member_withdraw_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_member_withdraw_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, &flag, name, mes); + } + } + return retVal___; +} +int HP_guild_expulsion(struct map_session_data *sd, int guild_id, int account_id, int char_id, const char *mes) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_expulsion_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *guild_id, int *account_id, int *char_id, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_expulsion_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_expulsion_pre[hIndex].func; + retVal___ = preHookFunc(sd, &guild_id, &account_id, &char_id, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.expulsion(sd, guild_id, account_id, char_id, mes); + } + if( HPMHooks.count.HP_guild_expulsion_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *guild_id, int *account_id, int *char_id, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_expulsion_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_expulsion_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &guild_id, &account_id, &char_id, mes); + } + } + return retVal___; +} +int HP_guild_skillup(struct map_session_data *sd, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_skillup_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_skillup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_skillup_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.skillup(sd, skill_id); + } + if( HPMHooks.count.HP_guild_skillup_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_skillup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_skillup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id); + } + } + return retVal___; +} +void HP_guild_block_skill(struct map_session_data *sd, int time) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_block_skill_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *time); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_block_skill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_block_skill_pre[hIndex].func; + preHookFunc(sd, &time); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.block_skill(sd, time); + } + if( HPMHooks.count.HP_guild_block_skill_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *time); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_block_skill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_block_skill_post[hIndex].func; + postHookFunc(sd, &time); + } + } + return; +} +int HP_guild_reqalliance(struct map_session_data *sd, struct map_session_data *tsd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_reqalliance_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_reqalliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_reqalliance_pre[hIndex].func; + retVal___ = preHookFunc(sd, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.reqalliance(sd, tsd); + } + if( HPMHooks.count.HP_guild_reqalliance_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_reqalliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_reqalliance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, tsd); + } + } + return retVal___; +} +int HP_guild_reply_reqalliance(struct map_session_data *sd, int account_id, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_reply_reqalliance_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *account_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_reply_reqalliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_reply_reqalliance_pre[hIndex].func; + retVal___ = preHookFunc(sd, &account_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.reply_reqalliance(sd, account_id, flag); + } + if( HPMHooks.count.HP_guild_reply_reqalliance_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *account_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_reply_reqalliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_reply_reqalliance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &account_id, &flag); + } + } + return retVal___; +} +int HP_guild_allianceack(int guild_id1, int guild_id2, int account_id1, int account_id2, int flag, const char *name1, const char *name2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_allianceack_pre ) { + int (*preHookFunc) (int *guild_id1, int *guild_id2, int *account_id1, int *account_id2, int *flag, const char *name1, const char *name2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_allianceack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_allianceack_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id1, &guild_id2, &account_id1, &account_id2, &flag, name1, name2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.allianceack(guild_id1, guild_id2, account_id1, account_id2, flag, name1, name2); + } + if( HPMHooks.count.HP_guild_allianceack_post ) { + int (*postHookFunc) (int retVal___, int *guild_id1, int *guild_id2, int *account_id1, int *account_id2, int *flag, const char *name1, const char *name2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_allianceack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_allianceack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id1, &guild_id2, &account_id1, &account_id2, &flag, name1, name2); + } + } + return retVal___; +} +int HP_guild_delalliance(struct map_session_data *sd, int guild_id, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_delalliance_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *guild_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_delalliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_delalliance_pre[hIndex].func; + retVal___ = preHookFunc(sd, &guild_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.delalliance(sd, guild_id, flag); + } + if( HPMHooks.count.HP_guild_delalliance_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *guild_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_delalliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_delalliance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &guild_id, &flag); + } + } + return retVal___; +} +int HP_guild_opposition(struct map_session_data *sd, struct map_session_data *tsd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_opposition_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_opposition_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_opposition_pre[hIndex].func; + retVal___ = preHookFunc(sd, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.opposition(sd, tsd); + } + if( HPMHooks.count.HP_guild_opposition_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_opposition_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_opposition_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, tsd); + } + } + return retVal___; +} +int HP_guild_check_alliance(int guild_id1, int guild_id2, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_check_alliance_pre ) { + int (*preHookFunc) (int *guild_id1, int *guild_id2, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_check_alliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_check_alliance_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id1, &guild_id2, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.check_alliance(guild_id1, guild_id2, flag); + } + if( HPMHooks.count.HP_guild_check_alliance_post ) { + int (*postHookFunc) (int retVal___, int *guild_id1, int *guild_id2, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_check_alliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_check_alliance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id1, &guild_id2, &flag); + } + } + return retVal___; +} +int HP_guild_send_memberinfoshort(struct map_session_data *sd, int online) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_send_memberinfoshort_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *online); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_send_memberinfoshort_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_send_memberinfoshort_pre[hIndex].func; + retVal___ = preHookFunc(sd, &online); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.send_memberinfoshort(sd, online); + } + if( HPMHooks.count.HP_guild_send_memberinfoshort_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *online); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_send_memberinfoshort_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_send_memberinfoshort_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &online); + } + } + return retVal___; +} +int HP_guild_recv_memberinfoshort(int guild_id, int account_id, int char_id, int online, int lv, int class_) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_recv_memberinfoshort_pre ) { + int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, int *online, int *lv, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_recv_memberinfoshort_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_recv_memberinfoshort_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, &char_id, &online, &lv, &class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.recv_memberinfoshort(guild_id, account_id, char_id, online, lv, class_); + } + if( HPMHooks.count.HP_guild_recv_memberinfoshort_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, int *online, int *lv, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_recv_memberinfoshort_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_recv_memberinfoshort_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, &online, &lv, &class_); + } + } + return retVal___; +} +int HP_guild_change_memberposition(int guild_id, int account_id, int char_id, short idx) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_change_memberposition_pre ) { + int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, short *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_change_memberposition_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_change_memberposition_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, &char_id, &idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.change_memberposition(guild_id, account_id, char_id, idx); + } + if( HPMHooks.count.HP_guild_change_memberposition_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, short *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_change_memberposition_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_change_memberposition_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, &idx); + } + } + return retVal___; +} +int HP_guild_memberposition_changed(struct guild *g, int idx, int pos) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_memberposition_changed_pre ) { + int (*preHookFunc) (struct guild *g, int *idx, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_memberposition_changed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_memberposition_changed_pre[hIndex].func; + retVal___ = preHookFunc(g, &idx, &pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.memberposition_changed(g, idx, pos); + } + if( HPMHooks.count.HP_guild_memberposition_changed_post ) { + int (*postHookFunc) (int retVal___, struct guild *g, int *idx, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_memberposition_changed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_memberposition_changed_post[hIndex].func; + retVal___ = postHookFunc(retVal___, g, &idx, &pos); + } + } + return retVal___; +} +int HP_guild_change_position(int guild_id, int idx, int mode, int exp_mode, const char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_change_position_pre ) { + int (*preHookFunc) (int *guild_id, int *idx, int *mode, int *exp_mode, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_change_position_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_change_position_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &idx, &mode, &exp_mode, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.change_position(guild_id, idx, mode, exp_mode, name); + } + if( HPMHooks.count.HP_guild_change_position_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *idx, int *mode, int *exp_mode, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_change_position_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_change_position_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &idx, &mode, &exp_mode, name); + } + } + return retVal___; +} +int HP_guild_position_changed(int guild_id, int idx, struct guild_position *p) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_position_changed_pre ) { + int (*preHookFunc) (int *guild_id, int *idx, struct guild_position *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_position_changed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_position_changed_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &idx, p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.position_changed(guild_id, idx, p); + } + if( HPMHooks.count.HP_guild_position_changed_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *idx, struct guild_position *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_position_changed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_position_changed_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &idx, p); + } + } + return retVal___; +} +int HP_guild_change_notice(struct map_session_data *sd, int guild_id, const char *mes1, const char *mes2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_change_notice_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *guild_id, const char *mes1, const char *mes2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_change_notice_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_change_notice_pre[hIndex].func; + retVal___ = preHookFunc(sd, &guild_id, mes1, mes2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.change_notice(sd, guild_id, mes1, mes2); + } + if( HPMHooks.count.HP_guild_change_notice_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *guild_id, const char *mes1, const char *mes2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_change_notice_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_change_notice_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &guild_id, mes1, mes2); + } + } + return retVal___; +} +int HP_guild_notice_changed(int guild_id, const char *mes1, const char *mes2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_notice_changed_pre ) { + int (*preHookFunc) (int *guild_id, const char *mes1, const char *mes2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_notice_changed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_notice_changed_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, mes1, mes2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.notice_changed(guild_id, mes1, mes2); + } + if( HPMHooks.count.HP_guild_notice_changed_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, const char *mes1, const char *mes2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_notice_changed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_notice_changed_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, mes1, mes2); + } + } + return retVal___; +} +int HP_guild_change_emblem(struct map_session_data *sd, int len, const char *data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_change_emblem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *len, const char *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_change_emblem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_change_emblem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &len, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.change_emblem(sd, len, data); + } + if( HPMHooks.count.HP_guild_change_emblem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *len, const char *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_change_emblem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_change_emblem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &len, data); + } + } + return retVal___; +} +int HP_guild_emblem_changed(int len, int guild_id, int emblem_id, const char *data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_emblem_changed_pre ) { + int (*preHookFunc) (int *len, int *guild_id, int *emblem_id, const char *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_emblem_changed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_emblem_changed_pre[hIndex].func; + retVal___ = preHookFunc(&len, &guild_id, &emblem_id, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.emblem_changed(len, guild_id, emblem_id, data); + } + if( HPMHooks.count.HP_guild_emblem_changed_post ) { + int (*postHookFunc) (int retVal___, int *len, int *guild_id, int *emblem_id, const char *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_emblem_changed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_emblem_changed_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &len, &guild_id, &emblem_id, data); + } + } + return retVal___; +} +int HP_guild_send_message(struct map_session_data *sd, const char *mes, int len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_send_message_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_send_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_send_message_pre[hIndex].func; + retVal___ = preHookFunc(sd, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.send_message(sd, mes, len); + } + if( HPMHooks.count.HP_guild_send_message_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_send_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_send_message_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, mes, &len); + } + } + return retVal___; +} +int HP_guild_recv_message(int guild_id, int account_id, const char *mes, int len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_recv_message_pre ) { + int (*preHookFunc) (int *guild_id, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_recv_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_recv_message_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.recv_message(guild_id, account_id, mes, len); + } + if( HPMHooks.count.HP_guild_recv_message_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_recv_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_recv_message_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, mes, &len); + } + } + return retVal___; +} +int HP_guild_send_dot_remove(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_send_dot_remove_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_send_dot_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_send_dot_remove_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.send_dot_remove(sd); + } + if( HPMHooks.count.HP_guild_send_dot_remove_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_send_dot_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_send_dot_remove_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_guild_skillupack(int guild_id, uint16 skill_id, int account_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_skillupack_pre ) { + int (*preHookFunc) (int *guild_id, uint16 *skill_id, int *account_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_skillupack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_skillupack_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &skill_id, &account_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.skillupack(guild_id, skill_id, account_id); + } + if( HPMHooks.count.HP_guild_skillupack_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, uint16 *skill_id, int *account_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_skillupack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_skillupack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &skill_id, &account_id); + } + } + return retVal___; +} +int HP_guild_dobreak(struct map_session_data *sd, char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_dobreak_pre ) { + int (*preHookFunc) (struct map_session_data *sd, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_dobreak_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_dobreak_pre[hIndex].func; + retVal___ = preHookFunc(sd, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.dobreak(sd, name); + } + if( HPMHooks.count.HP_guild_dobreak_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_dobreak_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_dobreak_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, name); + } + } + return retVal___; +} +int HP_guild_broken(int guild_id, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_broken_pre ) { + int (*preHookFunc) (int *guild_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_broken_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_broken_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.broken(guild_id, flag); + } + if( HPMHooks.count.HP_guild_broken_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_broken_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_broken_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &flag); + } + } + return retVal___; +} +int HP_guild_gm_change(int guild_id, struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_gm_change_pre ) { + int (*preHookFunc) (int *guild_id, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_gm_change_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_gm_change_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.gm_change(guild_id, sd); + } + if( HPMHooks.count.HP_guild_gm_change_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_gm_change_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_gm_change_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, sd); + } + } + return retVal___; +} +int HP_guild_gm_changed(int guild_id, int account_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_gm_changed_pre ) { + int (*preHookFunc) (int *guild_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_gm_changed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_gm_changed_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.gm_changed(guild_id, account_id, char_id); + } + if( HPMHooks.count.HP_guild_gm_changed_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_gm_changed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_gm_changed_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id); + } + } + return retVal___; +} +void HP_guild_castle_map_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_castle_map_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_map_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_castle_map_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.castle_map_init(); + } + if( HPMHooks.count.HP_guild_castle_map_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_map_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_castle_map_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_guild_castledatasave(int castle_id, int index, int value) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_castledatasave_pre ) { + int (*preHookFunc) (int *castle_id, int *index, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castledatasave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_castledatasave_pre[hIndex].func; + retVal___ = preHookFunc(&castle_id, &index, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.castledatasave(castle_id, index, value); + } + if( HPMHooks.count.HP_guild_castledatasave_post ) { + int (*postHookFunc) (int retVal___, int *castle_id, int *index, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castledatasave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_castledatasave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &castle_id, &index, &value); + } + } + return retVal___; +} +int HP_guild_castledataloadack(int len, struct guild_castle *gc) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_castledataloadack_pre ) { + int (*preHookFunc) (int *len, struct guild_castle *gc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castledataloadack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_castledataloadack_pre[hIndex].func; + retVal___ = preHookFunc(&len, gc); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.castledataloadack(len, gc); + } + if( HPMHooks.count.HP_guild_castledataloadack_post ) { + int (*postHookFunc) (int retVal___, int *len, struct guild_castle *gc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castledataloadack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_castledataloadack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &len, gc); + } + } + return retVal___; +} +void HP_guild_castle_reconnect(int castle_id, int index, int value) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_castle_reconnect_pre ) { + void (*preHookFunc) (int *castle_id, int *index, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_reconnect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_castle_reconnect_pre[hIndex].func; + preHookFunc(&castle_id, &index, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.castle_reconnect(castle_id, index, value); + } + if( HPMHooks.count.HP_guild_castle_reconnect_post ) { + void (*postHookFunc) (int *castle_id, int *index, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_reconnect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_castle_reconnect_post[hIndex].func; + postHookFunc(&castle_id, &index, &value); + } + } + return; +} +void HP_guild_agit_start(void) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_agit_start_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_agit_start_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_agit_start_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.agit_start(); + } + if( HPMHooks.count.HP_guild_agit_start_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_agit_start_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_agit_start_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_guild_agit_end(void) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_agit_end_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_agit_end_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_agit_end_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.agit_end(); + } + if( HPMHooks.count.HP_guild_agit_end_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_agit_end_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_agit_end_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_guild_agit2_start(void) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_agit2_start_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_agit2_start_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_agit2_start_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.agit2_start(); + } + if( HPMHooks.count.HP_guild_agit2_start_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_agit2_start_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_agit2_start_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_guild_agit2_end(void) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_agit2_end_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_agit2_end_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_agit2_end_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.agit2_end(); + } + if( HPMHooks.count.HP_guild_agit2_end_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_agit2_end_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_agit2_end_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_guild_flag_add(struct npc_data *nd) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_flag_add_pre ) { + void (*preHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_flag_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_flag_add_pre[hIndex].func; + preHookFunc(nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.flag_add(nd); + } + if( HPMHooks.count.HP_guild_flag_add_post ) { + void (*postHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_flag_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_flag_add_post[hIndex].func; + postHookFunc(nd); + } + } + return; +} +void HP_guild_flag_remove(struct npc_data *nd) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_flag_remove_pre ) { + void (*preHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_flag_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_flag_remove_pre[hIndex].func; + preHookFunc(nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.flag_remove(nd); + } + if( HPMHooks.count.HP_guild_flag_remove_post ) { + void (*postHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_flag_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_flag_remove_post[hIndex].func; + postHookFunc(nd); + } + } + return; +} +void HP_guild_flags_clear(void) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_flags_clear_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_flags_clear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_flags_clear_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.flags_clear(); + } + if( HPMHooks.count.HP_guild_flags_clear_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_flags_clear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_flags_clear_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_guild_aura_refresh(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_aura_refresh_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_aura_refresh_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_aura_refresh_pre[hIndex].func; + preHookFunc(sd, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.aura_refresh(sd, skill_id, skill_lv); + } + if( HPMHooks.count.HP_guild_aura_refresh_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_aura_refresh_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_aura_refresh_post[hIndex].func; + postHookFunc(sd, &skill_id, &skill_lv); + } + } + return; +} +int HP_guild_payexp_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_payexp_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_payexp_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_payexp_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.payexp_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_guild_payexp_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_payexp_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_payexp_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +TBL_PC* HP_guild_sd_check(int guild_id, int account_id, int char_id) { + int hIndex = 0; + TBL_PC* retVal___ = NULL; + if( HPMHooks.count.HP_guild_sd_check_pre ) { + TBL_PC* (*preHookFunc) (int *guild_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_sd_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_sd_check_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.sd_check(guild_id, account_id, char_id); + } + if( HPMHooks.count.HP_guild_sd_check_post ) { + TBL_PC* (*postHookFunc) (TBL_PC* retVal___, int *guild_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_sd_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_sd_check_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id); + } + } + return retVal___; +} +bool HP_guild_read_guildskill_tree_db(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_guild_read_guildskill_tree_db_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_read_guildskill_tree_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_read_guildskill_tree_db_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.read_guildskill_tree_db(split, columns, current); + } + if( HPMHooks.count.HP_guild_read_guildskill_tree_db_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_read_guildskill_tree_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_read_guildskill_tree_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_guild_read_castledb(char *str[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_guild_read_castledb_pre ) { + bool (*preHookFunc) (char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_read_castledb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_read_castledb_pre[hIndex].func; + retVal___ = preHookFunc(str, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.read_castledb(str, columns, current); + } + if( HPMHooks.count.HP_guild_read_castledb_post ) { + bool (*postHookFunc) (bool retVal___, char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_read_castledb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_read_castledb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &columns, ¤t); + } + } + return retVal___; +} +int HP_guild_payexp_timer_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_payexp_timer_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_payexp_timer_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_guild_payexp_timer_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.guild.payexp_timer_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_guild_payexp_timer_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_payexp_timer_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_guild_payexp_timer_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_guild_send_xy_timer_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_send_xy_timer_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_send_xy_timer_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_guild_send_xy_timer_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.guild.send_xy_timer_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_guild_send_xy_timer_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_send_xy_timer_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_guild_send_xy_timer_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_guild_send_xy_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_send_xy_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_send_xy_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_send_xy_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.send_xy_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_guild_send_xy_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_send_xy_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_send_xy_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +DBData HP_guild_create_expcache(DBKey key, va_list args) { + int hIndex = 0; + DBData retVal___; + memset(&retVal___, '\0', sizeof(DBData)); + if( HPMHooks.count.HP_guild_create_expcache_pre ) { + DBData (*preHookFunc) (DBKey *key, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_create_expcache_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_guild_create_expcache_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.guild.create_expcache(key, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_guild_create_expcache_post ) { + DBData (*postHookFunc) (DBData retVal___, DBKey *key, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_create_expcache_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_guild_create_expcache_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_guild_eventlist_db_final(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_eventlist_db_final_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_eventlist_db_final_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_guild_eventlist_db_final_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.guild.eventlist_db_final(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_guild_eventlist_db_final_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_eventlist_db_final_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_guild_eventlist_db_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_guild_expcache_db_final(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_expcache_db_final_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_expcache_db_final_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_guild_expcache_db_final_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.guild.expcache_db_final(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_guild_expcache_db_final_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_expcache_db_final_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_guild_expcache_db_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_guild_castle_db_final(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_castle_db_final_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_db_final_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_guild_castle_db_final_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.guild.castle_db_final(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_guild_castle_db_final_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_db_final_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_guild_castle_db_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_guild_broken_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_broken_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_broken_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_guild_broken_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.guild.broken_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_guild_broken_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_broken_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_guild_broken_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_guild_castle_broken_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_castle_broken_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_broken_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_guild_castle_broken_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.guild.castle_broken_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_guild_castle_broken_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_broken_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_guild_castle_broken_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_guild_makemember(struct guild_member *m, struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_makemember_pre ) { + void (*preHookFunc) (struct guild_member *m, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_makemember_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_makemember_pre[hIndex].func; + preHookFunc(m, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.guild.makemember(m, sd); + } + if( HPMHooks.count.HP_guild_makemember_post ) { + void (*postHookFunc) (struct guild_member *m, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_makemember_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_makemember_post[hIndex].func; + postHookFunc(m, sd); + } + } + return; +} +int HP_guild_check_member(struct guild *g) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_check_member_pre ) { + int (*preHookFunc) (struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_check_member_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_check_member_pre[hIndex].func; + retVal___ = preHookFunc(g); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.check_member(g); + } + if( HPMHooks.count.HP_guild_check_member_post ) { + int (*postHookFunc) (int retVal___, struct guild *g); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_check_member_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_check_member_post[hIndex].func; + retVal___ = postHookFunc(retVal___, g); + } + } + return retVal___; +} +int HP_guild_get_alliance_count(struct guild *g, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_guild_get_alliance_count_pre ) { + int (*preHookFunc) (struct guild *g, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_get_alliance_count_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_guild_get_alliance_count_pre[hIndex].func; + retVal___ = preHookFunc(g, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.guild.get_alliance_count(g, flag); + } + if( HPMHooks.count.HP_guild_get_alliance_count_post ) { + int (*postHookFunc) (int retVal___, struct guild *g, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_get_alliance_count_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_guild_get_alliance_count_post[hIndex].func; + retVal___ = postHookFunc(retVal___, g, &flag); + } + } + return retVal___; +} +void HP_guild_castle_reconnect_sub(void *key, void *data, va_list ap) { + int hIndex = 0; + if( HPMHooks.count.HP_guild_castle_reconnect_sub_pre ) { + void (*preHookFunc) (void *key, void *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_reconnect_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_guild_castle_reconnect_sub_pre[hIndex].func; + preHookFunc(key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + HPMHooks.source.guild.castle_reconnect_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_guild_castle_reconnect_sub_post ) { + void (*postHookFunc) (void *key, void *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_guild_castle_reconnect_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_guild_castle_reconnect_sub_post[hIndex].func; + postHookFunc(key, data, ap___copy); + va_end(ap___copy); + } + } + return; +} +/* gstorage */ +struct guild_storage* HP_gstorage_id2storage(int guild_id) { + int hIndex = 0; + struct guild_storage* retVal___ = NULL; + if( HPMHooks.count.HP_gstorage_id2storage_pre ) { + struct guild_storage* (*preHookFunc) (int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_id2storage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_id2storage_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.id2storage(guild_id); + } + if( HPMHooks.count.HP_gstorage_id2storage_post ) { + struct guild_storage* (*postHookFunc) (struct guild_storage* retVal___, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_id2storage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_id2storage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id); + } + } + return retVal___; +} +struct guild_storage* HP_gstorage_id2storage2(int guild_id) { + int hIndex = 0; + struct guild_storage* retVal___ = NULL; + if( HPMHooks.count.HP_gstorage_id2storage2_pre ) { + struct guild_storage* (*preHookFunc) (int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_id2storage2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_id2storage2_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.id2storage2(guild_id); + } + if( HPMHooks.count.HP_gstorage_id2storage2_post ) { + struct guild_storage* (*postHookFunc) (struct guild_storage* retVal___, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_id2storage2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_id2storage2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id); + } + } + return retVal___; +} +void HP_gstorage_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_gstorage_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.gstorage.init(); + } + if( HPMHooks.count.HP_gstorage_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_gstorage_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_gstorage_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.gstorage.final(); + } + if( HPMHooks.count.HP_gstorage_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_gstorage_delete(int guild_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_delete_pre ) { + int (*preHookFunc) (int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_delete_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.delete(guild_id); + } + if( HPMHooks.count.HP_gstorage_delete_post ) { + int (*postHookFunc) (int retVal___, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id); + } + } + return retVal___; +} +int HP_gstorage_open(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_open_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_open_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_open_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.open(sd); + } + if( HPMHooks.count.HP_gstorage_open_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_open_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_open_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_gstorage_additem(struct map_session_data *sd, struct guild_storage *stor, struct item *item_data, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_additem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct guild_storage *stor, struct item *item_data, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_additem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_additem_pre[hIndex].func; + retVal___ = preHookFunc(sd, stor, item_data, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.additem(sd, stor, item_data, amount); + } + if( HPMHooks.count.HP_gstorage_additem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct guild_storage *stor, struct item *item_data, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_additem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_additem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, stor, item_data, &amount); + } + } + return retVal___; +} +int HP_gstorage_delitem(struct map_session_data *sd, struct guild_storage *stor, int n, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_delitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct guild_storage *stor, int *n, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_delitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_delitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, stor, &n, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.delitem(sd, stor, n, amount); + } + if( HPMHooks.count.HP_gstorage_delitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct guild_storage *stor, int *n, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_delitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_delitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, stor, &n, &amount); + } + } + return retVal___; +} +int HP_gstorage_add(struct map_session_data *sd, int index, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_add_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_add_pre[hIndex].func; + retVal___ = preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.add(sd, index, amount); + } + if( HPMHooks.count.HP_gstorage_add_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_add_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &index, &amount); + } + } + return retVal___; +} +int HP_gstorage_get(struct map_session_data *sd, int index, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_get_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_get_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_get_pre[hIndex].func; + retVal___ = preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.get(sd, index, amount); + } + if( HPMHooks.count.HP_gstorage_get_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_get_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_get_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &index, &amount); + } + } + return retVal___; +} +int HP_gstorage_addfromcart(struct map_session_data *sd, int index, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_addfromcart_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_addfromcart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_addfromcart_pre[hIndex].func; + retVal___ = preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.addfromcart(sd, index, amount); + } + if( HPMHooks.count.HP_gstorage_addfromcart_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_addfromcart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_addfromcart_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &index, &amount); + } + } + return retVal___; +} +int HP_gstorage_gettocart(struct map_session_data *sd, int index, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_gettocart_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_gettocart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_gettocart_pre[hIndex].func; + retVal___ = preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.gettocart(sd, index, amount); + } + if( HPMHooks.count.HP_gstorage_gettocart_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_gettocart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_gettocart_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &index, &amount); + } + } + return retVal___; +} +int HP_gstorage_close(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_close_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_close_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.close(sd); + } + if( HPMHooks.count.HP_gstorage_close_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_close_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_gstorage_pc_quit(struct map_session_data *sd, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_pc_quit_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_pc_quit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_pc_quit_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.pc_quit(sd, flag); + } + if( HPMHooks.count.HP_gstorage_pc_quit_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_pc_quit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_pc_quit_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +int HP_gstorage_save(int account_id, int guild_id, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_save_pre ) { + int (*preHookFunc) (int *account_id, int *guild_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_save_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_save_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &guild_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.save(account_id, guild_id, flag); + } + if( HPMHooks.count.HP_gstorage_save_post ) { + int (*postHookFunc) (int retVal___, int *account_id, int *guild_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_save_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_save_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &guild_id, &flag); + } + } + return retVal___; +} +int HP_gstorage_saved(int guild_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_gstorage_saved_pre ) { + int (*preHookFunc) (int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_saved_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_gstorage_saved_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.gstorage.saved(guild_id); + } + if( HPMHooks.count.HP_gstorage_saved_post ) { + int (*postHookFunc) (int retVal___, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_saved_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_gstorage_saved_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id); + } + } + return retVal___; +} +DBData HP_gstorage_create(DBKey key, va_list args) { + int hIndex = 0; + DBData retVal___; + memset(&retVal___, '\0', sizeof(DBData)); + if( HPMHooks.count.HP_gstorage_create_pre ) { + DBData (*preHookFunc) (DBKey *key, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_create_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_gstorage_create_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.gstorage.create(key, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_gstorage_create_post ) { + DBData (*postHookFunc) (DBData retVal___, DBKey *key, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_gstorage_create_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_gstorage_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +/* homun */ +void HP_homun_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.init(); + } + if( HPMHooks.count.HP_homun_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_homun_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.final(); + } + if( HPMHooks.count.HP_homun_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_homun_reload(void) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_reload_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_reload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_reload_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.reload(); + } + if( HPMHooks.count.HP_homun_reload_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_reload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_reload_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_homun_reload_skill(void) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_reload_skill_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_reload_skill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_reload_skill_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.reload_skill(); + } + if( HPMHooks.count.HP_homun_reload_skill_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_reload_skill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_reload_skill_post[hIndex].func; + postHookFunc(); + } + } + return; +} +struct view_data* HP_homun_get_viewdata(int class_) { + int hIndex = 0; + struct view_data* retVal___ = NULL; + if( HPMHooks.count.HP_homun_get_viewdata_pre ) { + struct view_data* (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_get_viewdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_get_viewdata_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.get_viewdata(class_); + } + if( HPMHooks.count.HP_homun_get_viewdata_post ) { + struct view_data* (*postHookFunc) (struct view_data* retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_get_viewdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_get_viewdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +enum homun_type HP_homun_class2type(int class_) { + int hIndex = 0; + enum homun_type retVal___; + memset(&retVal___, '\0', sizeof(enum homun_type)); + if( HPMHooks.count.HP_homun_class2type_pre ) { + enum homun_type (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_class2type_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_class2type_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.class2type(class_); + } + if( HPMHooks.count.HP_homun_class2type_post ) { + enum homun_type (*postHookFunc) (enum homun_type retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_class2type_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_class2type_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +void HP_homun_damaged(struct homun_data *hd) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_damaged_pre ) { + void (*preHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_damaged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_damaged_pre[hIndex].func; + preHookFunc(hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.damaged(hd); + } + if( HPMHooks.count.HP_homun_damaged_post ) { + void (*postHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_damaged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_damaged_post[hIndex].func; + postHookFunc(hd); + } + } + return; +} +int HP_homun_dead(struct homun_data *hd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_dead_pre ) { + int (*preHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_dead_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_dead_pre[hIndex].func; + retVal___ = preHookFunc(hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.dead(hd); + } + if( HPMHooks.count.HP_homun_dead_post ) { + int (*postHookFunc) (int retVal___, struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_dead_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_dead_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd); + } + } + return retVal___; +} +int HP_homun_vaporize(struct map_session_data *sd, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_vaporize_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_vaporize_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_vaporize_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.vaporize(sd, flag); + } + if( HPMHooks.count.HP_homun_vaporize_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_vaporize_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_vaporize_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +int HP_homun_delete(struct homun_data *hd, int emote) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_delete_pre ) { + int (*preHookFunc) (struct homun_data *hd, int *emote); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_delete_pre[hIndex].func; + retVal___ = preHookFunc(hd, &emote); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.delete(hd, emote); + } + if( HPMHooks.count.HP_homun_delete_post ) { + int (*postHookFunc) (int retVal___, struct homun_data *hd, int *emote); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd, &emote); + } + } + return retVal___; +} +int HP_homun_checkskill(struct homun_data *hd, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_checkskill_pre ) { + int (*preHookFunc) (struct homun_data *hd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_checkskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_checkskill_pre[hIndex].func; + retVal___ = preHookFunc(hd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.checkskill(hd, skill_id); + } + if( HPMHooks.count.HP_homun_checkskill_post ) { + int (*postHookFunc) (int retVal___, struct homun_data *hd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_checkskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_checkskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd, &skill_id); + } + } + return retVal___; +} +int HP_homun_calc_skilltree(struct homun_data *hd, int flag_evolve) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_calc_skilltree_pre ) { + int (*preHookFunc) (struct homun_data *hd, int *flag_evolve); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_calc_skilltree_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_calc_skilltree_pre[hIndex].func; + retVal___ = preHookFunc(hd, &flag_evolve); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.calc_skilltree(hd, flag_evolve); + } + if( HPMHooks.count.HP_homun_calc_skilltree_post ) { + int (*postHookFunc) (int retVal___, struct homun_data *hd, int *flag_evolve); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_calc_skilltree_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_calc_skilltree_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd, &flag_evolve); + } + } + return retVal___; +} +int HP_homun_skill_tree_get_max(int id, int b_class) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_skill_tree_get_max_pre ) { + int (*preHookFunc) (int *id, int *b_class); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_skill_tree_get_max_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_skill_tree_get_max_pre[hIndex].func; + retVal___ = preHookFunc(&id, &b_class); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.skill_tree_get_max(id, b_class); + } + if( HPMHooks.count.HP_homun_skill_tree_get_max_post ) { + int (*postHookFunc) (int retVal___, int *id, int *b_class); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_skill_tree_get_max_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_skill_tree_get_max_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id, &b_class); + } + } + return retVal___; +} +void HP_homun_skillup(struct homun_data *hd, uint16 skill_id) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_skillup_pre ) { + void (*preHookFunc) (struct homun_data *hd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_skillup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_skillup_pre[hIndex].func; + preHookFunc(hd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.skillup(hd, skill_id); + } + if( HPMHooks.count.HP_homun_skillup_post ) { + void (*postHookFunc) (struct homun_data *hd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_skillup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_skillup_post[hIndex].func; + postHookFunc(hd, &skill_id); + } + } + return; +} +bool HP_homun_levelup(struct homun_data *hd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_levelup_pre ) { + bool (*preHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_levelup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_levelup_pre[hIndex].func; + retVal___ = preHookFunc(hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.levelup(hd); + } + if( HPMHooks.count.HP_homun_levelup_post ) { + bool (*postHookFunc) (bool retVal___, struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_levelup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_levelup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd); + } + } + return retVal___; +} +int HP_homun_change_class(struct homun_data *hd, short class_) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_change_class_pre ) { + int (*preHookFunc) (struct homun_data *hd, short *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_change_class_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_change_class_pre[hIndex].func; + retVal___ = preHookFunc(hd, &class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.change_class(hd, class_); + } + if( HPMHooks.count.HP_homun_change_class_post ) { + int (*postHookFunc) (int retVal___, struct homun_data *hd, short *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_change_class_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_change_class_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd, &class_); + } + } + return retVal___; +} +bool HP_homun_evolve(struct homun_data *hd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_evolve_pre ) { + bool (*preHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_evolve_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_evolve_pre[hIndex].func; + retVal___ = preHookFunc(hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.evolve(hd); + } + if( HPMHooks.count.HP_homun_evolve_post ) { + bool (*postHookFunc) (bool retVal___, struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_evolve_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_evolve_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd); + } + } + return retVal___; +} +bool HP_homun_mutate(struct homun_data *hd, int homun_id) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_mutate_pre ) { + bool (*preHookFunc) (struct homun_data *hd, int *homun_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_mutate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_mutate_pre[hIndex].func; + retVal___ = preHookFunc(hd, &homun_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.mutate(hd, homun_id); + } + if( HPMHooks.count.HP_homun_mutate_post ) { + bool (*postHookFunc) (bool retVal___, struct homun_data *hd, int *homun_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_mutate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_mutate_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd, &homun_id); + } + } + return retVal___; +} +int HP_homun_gainexp(struct homun_data *hd, unsigned int exp) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_gainexp_pre ) { + int (*preHookFunc) (struct homun_data *hd, unsigned int *exp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_gainexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_gainexp_pre[hIndex].func; + retVal___ = preHookFunc(hd, &exp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.gainexp(hd, exp); + } + if( HPMHooks.count.HP_homun_gainexp_post ) { + int (*postHookFunc) (int retVal___, struct homun_data *hd, unsigned int *exp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_gainexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_gainexp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd, &exp); + } + } + return retVal___; +} +unsigned int HP_homun_add_intimacy(struct homun_data *hd, unsigned int value) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_homun_add_intimacy_pre ) { + unsigned int (*preHookFunc) (struct homun_data *hd, unsigned int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_add_intimacy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_add_intimacy_pre[hIndex].func; + retVal___ = preHookFunc(hd, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.add_intimacy(hd, value); + } + if( HPMHooks.count.HP_homun_add_intimacy_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct homun_data *hd, unsigned int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_add_intimacy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_add_intimacy_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd, &value); + } + } + return retVal___; +} +unsigned int HP_homun_consume_intimacy(struct homun_data *hd, unsigned int value) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_homun_consume_intimacy_pre ) { + unsigned int (*preHookFunc) (struct homun_data *hd, unsigned int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_consume_intimacy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_consume_intimacy_pre[hIndex].func; + retVal___ = preHookFunc(hd, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.consume_intimacy(hd, value); + } + if( HPMHooks.count.HP_homun_consume_intimacy_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct homun_data *hd, unsigned int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_consume_intimacy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_consume_intimacy_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd, &value); + } + } + return retVal___; +} +void HP_homun_healed(struct homun_data *hd) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_healed_pre ) { + void (*preHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_healed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_healed_pre[hIndex].func; + preHookFunc(hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.healed(hd); + } + if( HPMHooks.count.HP_homun_healed_post ) { + void (*postHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_healed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_healed_post[hIndex].func; + postHookFunc(hd); + } + } + return; +} +void HP_homun_save(struct homun_data *hd) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_save_pre ) { + void (*preHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_save_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_save_pre[hIndex].func; + preHookFunc(hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.save(hd); + } + if( HPMHooks.count.HP_homun_save_post ) { + void (*postHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_save_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_save_post[hIndex].func; + postHookFunc(hd); + } + } + return; +} +unsigned char HP_homun_menu(struct map_session_data *sd, unsigned char menu_num) { + int hIndex = 0; + unsigned char retVal___; + memset(&retVal___, '\0', sizeof(unsigned char)); + if( HPMHooks.count.HP_homun_menu_pre ) { + unsigned char (*preHookFunc) (struct map_session_data *sd, unsigned char *menu_num); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_menu_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_menu_pre[hIndex].func; + retVal___ = preHookFunc(sd, &menu_num); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.menu(sd, menu_num); + } + if( HPMHooks.count.HP_homun_menu_post ) { + unsigned char (*postHookFunc) (unsigned char retVal___, struct map_session_data *sd, unsigned char *menu_num); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_menu_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_menu_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &menu_num); + } + } + return retVal___; +} +bool HP_homun_feed(struct map_session_data *sd, struct homun_data *hd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_feed_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_feed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_feed_pre[hIndex].func; + retVal___ = preHookFunc(sd, hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.feed(sd, hd); + } + if( HPMHooks.count.HP_homun_feed_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_feed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_feed_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, hd); + } + } + return retVal___; +} +int HP_homun_hunger_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_hunger_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_hunger_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_hunger_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.hunger_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_homun_hunger_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_hunger_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_hunger_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_homun_hunger_timer_delete(struct homun_data *hd) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_hunger_timer_delete_pre ) { + void (*preHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_hunger_timer_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_hunger_timer_delete_pre[hIndex].func; + preHookFunc(hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.hunger_timer_delete(hd); + } + if( HPMHooks.count.HP_homun_hunger_timer_delete_post ) { + void (*postHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_hunger_timer_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_hunger_timer_delete_post[hIndex].func; + postHookFunc(hd); + } + } + return; +} +int HP_homun_change_name(struct map_session_data *sd, char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_change_name_pre ) { + int (*preHookFunc) (struct map_session_data *sd, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_change_name_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_change_name_pre[hIndex].func; + retVal___ = preHookFunc(sd, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.change_name(sd, name); + } + if( HPMHooks.count.HP_homun_change_name_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_change_name_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_change_name_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, name); + } + } + return retVal___; +} +bool HP_homun_change_name_ack(struct map_session_data *sd, char *name, int flag) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_change_name_ack_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, char *name, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_change_name_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_change_name_ack_pre[hIndex].func; + retVal___ = preHookFunc(sd, name, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.change_name_ack(sd, name, flag); + } + if( HPMHooks.count.HP_homun_change_name_ack_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, char *name, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_change_name_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_change_name_ack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, name, &flag); + } + } + return retVal___; +} +int HP_homun_db_search(int key, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_homun_db_search_pre ) { + int (*preHookFunc) (int *key, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_db_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_db_search_pre[hIndex].func; + retVal___ = preHookFunc(&key, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.db_search(key, type); + } + if( HPMHooks.count.HP_homun_db_search_post ) { + int (*postHookFunc) (int retVal___, int *key, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_db_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_db_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, &type); + } + } + return retVal___; +} +bool HP_homun_create(struct map_session_data *sd, struct s_homunculus *hom) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_create_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, struct s_homunculus *hom); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_create_pre[hIndex].func; + retVal___ = preHookFunc(sd, hom); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.create(sd, hom); + } + if( HPMHooks.count.HP_homun_create_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct s_homunculus *hom); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, hom); + } + } + return retVal___; +} +void HP_homun_init_timers(struct homun_data *hd) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_init_timers_pre ) { + void (*preHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_init_timers_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_init_timers_pre[hIndex].func; + preHookFunc(hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.init_timers(hd); + } + if( HPMHooks.count.HP_homun_init_timers_post ) { + void (*postHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_init_timers_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_init_timers_post[hIndex].func; + postHookFunc(hd); + } + } + return; +} +bool HP_homun_call(struct map_session_data *sd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_call_pre ) { + bool (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_call_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_call_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.call(sd); + } + if( HPMHooks.count.HP_homun_call_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_call_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_call_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +bool HP_homun_recv_data(int account_id, struct s_homunculus *sh, int flag) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_recv_data_pre ) { + bool (*preHookFunc) (int *account_id, struct s_homunculus *sh, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_recv_data_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_recv_data_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, sh, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.recv_data(account_id, sh, flag); + } + if( HPMHooks.count.HP_homun_recv_data_post ) { + bool (*postHookFunc) (bool retVal___, int *account_id, struct s_homunculus *sh, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_recv_data_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_recv_data_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, sh, &flag); + } + } + return retVal___; +} +bool HP_homun_creation_request(struct map_session_data *sd, int class_) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_creation_request_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_creation_request_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_creation_request_pre[hIndex].func; + retVal___ = preHookFunc(sd, &class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.creation_request(sd, class_); + } + if( HPMHooks.count.HP_homun_creation_request_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_creation_request_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_creation_request_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &class_); + } + } + return retVal___; +} +bool HP_homun_ressurect(struct map_session_data *sd, unsigned char per, short x, short y) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_ressurect_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, unsigned char *per, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_ressurect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_ressurect_pre[hIndex].func; + retVal___ = preHookFunc(sd, &per, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.ressurect(sd, per, x, y); + } + if( HPMHooks.count.HP_homun_ressurect_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, unsigned char *per, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_ressurect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_ressurect_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &per, &x, &y); + } + } + return retVal___; +} +void HP_homun_revive(struct homun_data *hd, unsigned int hp, unsigned int sp) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_revive_pre ) { + void (*preHookFunc) (struct homun_data *hd, unsigned int *hp, unsigned int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_revive_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_revive_pre[hIndex].func; + preHookFunc(hd, &hp, &sp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.revive(hd, hp, sp); + } + if( HPMHooks.count.HP_homun_revive_post ) { + void (*postHookFunc) (struct homun_data *hd, unsigned int *hp, unsigned int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_revive_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_revive_post[hIndex].func; + postHookFunc(hd, &hp, &sp); + } + } + return; +} +void HP_homun_stat_reset(struct homun_data *hd) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_stat_reset_pre ) { + void (*preHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_stat_reset_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_stat_reset_pre[hIndex].func; + preHookFunc(hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.stat_reset(hd); + } + if( HPMHooks.count.HP_homun_stat_reset_post ) { + void (*postHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_stat_reset_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_stat_reset_post[hIndex].func; + postHookFunc(hd); + } + } + return; +} +bool HP_homun_shuffle(struct homun_data *hd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_shuffle_pre ) { + bool (*preHookFunc) (struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_shuffle_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_shuffle_pre[hIndex].func; + retVal___ = preHookFunc(hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.shuffle(hd); + } + if( HPMHooks.count.HP_homun_shuffle_post ) { + bool (*postHookFunc) (bool retVal___, struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_shuffle_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_shuffle_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd); + } + } + return retVal___; +} +bool HP_homun_read_db_sub(char *str[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_read_db_sub_pre ) { + bool (*preHookFunc) (char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_read_db_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_read_db_sub_pre[hIndex].func; + retVal___ = preHookFunc(str, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.read_db_sub(str, columns, current); + } + if( HPMHooks.count.HP_homun_read_db_sub_post ) { + bool (*postHookFunc) (bool retVal___, char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_read_db_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_read_db_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &columns, ¤t); + } + } + return retVal___; +} +void HP_homun_read_db(void) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_read_db_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_read_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_read_db_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.read_db(); + } + if( HPMHooks.count.HP_homun_read_db_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_read_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_read_db_post[hIndex].func; + postHookFunc(); + } + } + return; +} +bool HP_homun_read_skill_db_sub(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_homun_read_skill_db_sub_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_read_skill_db_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_read_skill_db_sub_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.homun.read_skill_db_sub(split, columns, current); + } + if( HPMHooks.count.HP_homun_read_skill_db_sub_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_read_skill_db_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_read_skill_db_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +void HP_homun_skill_db_read(void) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_skill_db_read_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_skill_db_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_skill_db_read_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.skill_db_read(); + } + if( HPMHooks.count.HP_homun_skill_db_read_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_skill_db_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_skill_db_read_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_homun_exp_db_read(void) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_exp_db_read_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_exp_db_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_exp_db_read_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.exp_db_read(); + } + if( HPMHooks.count.HP_homun_exp_db_read_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_exp_db_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_exp_db_read_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_homun_addspiritball(struct homun_data *hd, int max) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_addspiritball_pre ) { + void (*preHookFunc) (struct homun_data *hd, int *max); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_addspiritball_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_addspiritball_pre[hIndex].func; + preHookFunc(hd, &max); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.addspiritball(hd, max); + } + if( HPMHooks.count.HP_homun_addspiritball_post ) { + void (*postHookFunc) (struct homun_data *hd, int *max); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_addspiritball_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_addspiritball_post[hIndex].func; + postHookFunc(hd, &max); + } + } + return; +} +void HP_homun_delspiritball(struct homun_data *hd, int count, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_homun_delspiritball_pre ) { + void (*preHookFunc) (struct homun_data *hd, int *count, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_delspiritball_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_homun_delspiritball_pre[hIndex].func; + preHookFunc(hd, &count, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.homun.delspiritball(hd, count, type); + } + if( HPMHooks.count.HP_homun_delspiritball_post ) { + void (*postHookFunc) (struct homun_data *hd, int *count, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_homun_delspiritball_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_homun_delspiritball_post[hIndex].func; + postHookFunc(hd, &count, &type); + } + } + return; +} +/* instance */ +void HP_instance_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_instance_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.instance.init(); + } + if( HPMHooks.count.HP_instance_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_instance_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_instance_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.instance.final(); + } + if( HPMHooks.count.HP_instance_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_instance_create(int party_id, const char *name, enum instance_owner_type type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_instance_create_pre ) { + int (*preHookFunc) (int *party_id, const char *name, enum instance_owner_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_create_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, name, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.instance.create(party_id, name, type); + } + if( HPMHooks.count.HP_instance_create_post ) { + int (*postHookFunc) (int retVal___, int *party_id, const char *name, enum instance_owner_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, name, &type); + } + } + return retVal___; +} +int HP_instance_add_map(const char *name, int instance_id, bool usebasename, const char *map_name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_instance_add_map_pre ) { + int (*preHookFunc) (const char *name, int *instance_id, bool *usebasename, const char *map_name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_add_map_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_add_map_pre[hIndex].func; + retVal___ = preHookFunc(name, &instance_id, &usebasename, map_name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.instance.add_map(name, instance_id, usebasename, map_name); + } + if( HPMHooks.count.HP_instance_add_map_post ) { + int (*postHookFunc) (int retVal___, const char *name, int *instance_id, bool *usebasename, const char *map_name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_add_map_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_add_map_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name, &instance_id, &usebasename, map_name); + } + } + return retVal___; +} +void HP_instance_del_map(int16 m) { + int hIndex = 0; + if( HPMHooks.count.HP_instance_del_map_pre ) { + void (*preHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_del_map_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_del_map_pre[hIndex].func; + preHookFunc(&m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.instance.del_map(m); + } + if( HPMHooks.count.HP_instance_del_map_post ) { + void (*postHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_del_map_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_del_map_post[hIndex].func; + postHookFunc(&m); + } + } + return; +} +int HP_instance_map2imap(int16 m, int instance_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_instance_map2imap_pre ) { + int (*preHookFunc) (int16 *m, int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_map2imap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_map2imap_pre[hIndex].func; + retVal___ = preHookFunc(&m, &instance_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.instance.map2imap(m, instance_id); + } + if( HPMHooks.count.HP_instance_map2imap_post ) { + int (*postHookFunc) (int retVal___, int16 *m, int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_map2imap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_map2imap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, &instance_id); + } + } + return retVal___; +} +int HP_instance_mapid2imapid(int16 m, int instance_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_instance_mapid2imapid_pre ) { + int (*preHookFunc) (int16 *m, int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_mapid2imapid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_mapid2imapid_pre[hIndex].func; + retVal___ = preHookFunc(&m, &instance_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.instance.mapid2imapid(m, instance_id); + } + if( HPMHooks.count.HP_instance_mapid2imapid_post ) { + int (*postHookFunc) (int retVal___, int16 *m, int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_mapid2imapid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_mapid2imapid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, &instance_id); + } + } + return retVal___; +} +void HP_instance_destroy(int instance_id) { + int hIndex = 0; + if( HPMHooks.count.HP_instance_destroy_pre ) { + void (*preHookFunc) (int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_destroy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_destroy_pre[hIndex].func; + preHookFunc(&instance_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.instance.destroy(instance_id); + } + if( HPMHooks.count.HP_instance_destroy_post ) { + void (*postHookFunc) (int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_destroy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_destroy_post[hIndex].func; + postHookFunc(&instance_id); + } + } + return; +} +void HP_instance_start(int instance_id) { + int hIndex = 0; + if( HPMHooks.count.HP_instance_start_pre ) { + void (*preHookFunc) (int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_start_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_start_pre[hIndex].func; + preHookFunc(&instance_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.instance.start(instance_id); + } + if( HPMHooks.count.HP_instance_start_post ) { + void (*postHookFunc) (int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_start_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_start_post[hIndex].func; + postHookFunc(&instance_id); + } + } + return; +} +void HP_instance_check_idle(int instance_id) { + int hIndex = 0; + if( HPMHooks.count.HP_instance_check_idle_pre ) { + void (*preHookFunc) (int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_check_idle_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_check_idle_pre[hIndex].func; + preHookFunc(&instance_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.instance.check_idle(instance_id); + } + if( HPMHooks.count.HP_instance_check_idle_post ) { + void (*postHookFunc) (int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_check_idle_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_check_idle_post[hIndex].func; + postHookFunc(&instance_id); + } + } + return; +} +void HP_instance_check_kick(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_instance_check_kick_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_check_kick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_check_kick_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.instance.check_kick(sd); + } + if( HPMHooks.count.HP_instance_check_kick_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_check_kick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_check_kick_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_instance_set_timeout(int instance_id, unsigned int progress_timeout, unsigned int idle_timeout) { + int hIndex = 0; + if( HPMHooks.count.HP_instance_set_timeout_pre ) { + void (*preHookFunc) (int *instance_id, unsigned int *progress_timeout, unsigned int *idle_timeout); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_set_timeout_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_set_timeout_pre[hIndex].func; + preHookFunc(&instance_id, &progress_timeout, &idle_timeout); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.instance.set_timeout(instance_id, progress_timeout, idle_timeout); + } + if( HPMHooks.count.HP_instance_set_timeout_post ) { + void (*postHookFunc) (int *instance_id, unsigned int *progress_timeout, unsigned int *idle_timeout); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_set_timeout_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_set_timeout_post[hIndex].func; + postHookFunc(&instance_id, &progress_timeout, &idle_timeout); + } + } + return; +} +bool HP_instance_valid(int instance_id) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_instance_valid_pre ) { + bool (*preHookFunc) (int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_valid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_valid_pre[hIndex].func; + retVal___ = preHookFunc(&instance_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.instance.valid(instance_id); + } + if( HPMHooks.count.HP_instance_valid_post ) { + bool (*postHookFunc) (bool retVal___, int *instance_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_valid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_valid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &instance_id); + } + } + return retVal___; +} +int HP_instance_destroy_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_instance_destroy_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_destroy_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_instance_destroy_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.instance.destroy_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_instance_destroy_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_instance_destroy_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_instance_destroy_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +/* intif */ +int HP_intif_parse(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_parse_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_parse_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_parse_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.parse(fd); + } + if( HPMHooks.count.HP_intif_parse_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_parse_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_parse_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +int HP_intif_create_pet(int account_id, int char_id, short pet_type, short pet_lv, short pet_egg_id, short pet_equip, short intimate, short hungry, char rename_flag, char incuvate, char *pet_name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_create_pet_pre ) { + int (*preHookFunc) (int *account_id, int *char_id, short *pet_type, short *pet_lv, short *pet_egg_id, short *pet_equip, short *intimate, short *hungry, char *rename_flag, char *incuvate, char *pet_name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_create_pet_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_create_pet_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &char_id, &pet_type, &pet_lv, &pet_egg_id, &pet_equip, &intimate, &hungry, &rename_flag, &incuvate, pet_name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.create_pet(account_id, char_id, pet_type, pet_lv, pet_egg_id, pet_equip, intimate, hungry, rename_flag, incuvate, pet_name); + } + if( HPMHooks.count.HP_intif_create_pet_post ) { + int (*postHookFunc) (int retVal___, int *account_id, int *char_id, short *pet_type, short *pet_lv, short *pet_egg_id, short *pet_equip, short *intimate, short *hungry, char *rename_flag, char *incuvate, char *pet_name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_create_pet_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_create_pet_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &char_id, &pet_type, &pet_lv, &pet_egg_id, &pet_equip, &intimate, &hungry, &rename_flag, &incuvate, pet_name); + } + } + return retVal___; +} +int HP_intif_broadcast(const char *mes, int len, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_broadcast_pre ) { + int (*preHookFunc) (const char *mes, int *len, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_broadcast_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_broadcast_pre[hIndex].func; + retVal___ = preHookFunc(mes, &len, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.broadcast(mes, len, type); + } + if( HPMHooks.count.HP_intif_broadcast_post ) { + int (*postHookFunc) (int retVal___, const char *mes, int *len, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_broadcast_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_broadcast_post[hIndex].func; + retVal___ = postHookFunc(retVal___, mes, &len, &type); + } + } + return retVal___; +} +int HP_intif_broadcast2(const char *mes, int len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_broadcast2_pre ) { + int (*preHookFunc) (const char *mes, int *len, unsigned long *fontColor, short *fontType, short *fontSize, short *fontAlign, short *fontY); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_broadcast2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_broadcast2_pre[hIndex].func; + retVal___ = preHookFunc(mes, &len, &fontColor, &fontType, &fontSize, &fontAlign, &fontY); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.broadcast2(mes, len, fontColor, fontType, fontSize, fontAlign, fontY); + } + if( HPMHooks.count.HP_intif_broadcast2_post ) { + int (*postHookFunc) (int retVal___, const char *mes, int *len, unsigned long *fontColor, short *fontType, short *fontSize, short *fontAlign, short *fontY); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_broadcast2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_broadcast2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, mes, &len, &fontColor, &fontType, &fontSize, &fontAlign, &fontY); + } + } + return retVal___; +} +int HP_intif_main_message(struct map_session_data *sd, const char *message) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_main_message_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_main_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_main_message_pre[hIndex].func; + retVal___ = preHookFunc(sd, message); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.main_message(sd, message); + } + if( HPMHooks.count.HP_intif_main_message_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_main_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_main_message_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, message); + } + } + return retVal___; +} +int HP_intif_wis_message(struct map_session_data *sd, char *nick, char *mes, int mes_len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_wis_message_pre ) { + int (*preHookFunc) (struct map_session_data *sd, char *nick, char *mes, int *mes_len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_wis_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_wis_message_pre[hIndex].func; + retVal___ = preHookFunc(sd, nick, mes, &mes_len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.wis_message(sd, nick, mes, mes_len); + } + if( HPMHooks.count.HP_intif_wis_message_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, char *nick, char *mes, int *mes_len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_wis_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_wis_message_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, nick, mes, &mes_len); + } + } + return retVal___; +} +int HP_intif_wis_message_to_gm(char *Wisp_name, int permission, char *mes) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_wis_message_to_gm_pre ) { + int (*preHookFunc) (char *Wisp_name, int *permission, char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_wis_message_to_gm_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_wis_message_to_gm_pre[hIndex].func; + retVal___ = preHookFunc(Wisp_name, &permission, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.wis_message_to_gm(Wisp_name, permission, mes); + } + if( HPMHooks.count.HP_intif_wis_message_to_gm_post ) { + int (*postHookFunc) (int retVal___, char *Wisp_name, int *permission, char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_wis_message_to_gm_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_wis_message_to_gm_post[hIndex].func; + retVal___ = postHookFunc(retVal___, Wisp_name, &permission, mes); + } + } + return retVal___; +} +int HP_intif_saveregistry(struct map_session_data *sd, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_saveregistry_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_saveregistry_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_saveregistry_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.saveregistry(sd, type); + } + if( HPMHooks.count.HP_intif_saveregistry_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_saveregistry_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_saveregistry_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +int HP_intif_request_registry(struct map_session_data *sd, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_request_registry_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_registry_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_request_registry_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.request_registry(sd, flag); + } + if( HPMHooks.count.HP_intif_request_registry_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_registry_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_request_registry_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +int HP_intif_request_guild_storage(int account_id, int guild_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_request_guild_storage_pre ) { + int (*preHookFunc) (int *account_id, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_guild_storage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_request_guild_storage_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.request_guild_storage(account_id, guild_id); + } + if( HPMHooks.count.HP_intif_request_guild_storage_post ) { + int (*postHookFunc) (int retVal___, int *account_id, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_guild_storage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_request_guild_storage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &guild_id); + } + } + return retVal___; +} +int HP_intif_send_guild_storage(int account_id, struct guild_storage *gstor) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_send_guild_storage_pre ) { + int (*preHookFunc) (int *account_id, struct guild_storage *gstor); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_send_guild_storage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_send_guild_storage_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, gstor); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.send_guild_storage(account_id, gstor); + } + if( HPMHooks.count.HP_intif_send_guild_storage_post ) { + int (*postHookFunc) (int retVal___, int *account_id, struct guild_storage *gstor); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_send_guild_storage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_send_guild_storage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, gstor); + } + } + return retVal___; +} +int HP_intif_create_party(struct party_member *member, char *name, int item, int item2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_create_party_pre ) { + int (*preHookFunc) (struct party_member *member, char *name, int *item, int *item2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_create_party_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_create_party_pre[hIndex].func; + retVal___ = preHookFunc(member, name, &item, &item2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.create_party(member, name, item, item2); + } + if( HPMHooks.count.HP_intif_create_party_post ) { + int (*postHookFunc) (int retVal___, struct party_member *member, char *name, int *item, int *item2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_create_party_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_create_party_post[hIndex].func; + retVal___ = postHookFunc(retVal___, member, name, &item, &item2); + } + } + return retVal___; +} +int HP_intif_request_partyinfo(int party_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_request_partyinfo_pre ) { + int (*preHookFunc) (int *party_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_partyinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_request_partyinfo_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.request_partyinfo(party_id, char_id); + } + if( HPMHooks.count.HP_intif_request_partyinfo_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_partyinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_request_partyinfo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &char_id); + } + } + return retVal___; +} +int HP_intif_party_addmember(int party_id, struct party_member *member) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_party_addmember_pre ) { + int (*preHookFunc) (int *party_id, struct party_member *member); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_addmember_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_party_addmember_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, member); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.party_addmember(party_id, member); + } + if( HPMHooks.count.HP_intif_party_addmember_post ) { + int (*postHookFunc) (int retVal___, int *party_id, struct party_member *member); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_addmember_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_party_addmember_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, member); + } + } + return retVal___; +} +int HP_intif_party_changeoption(int party_id, int account_id, int exp, int item) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_party_changeoption_pre ) { + int (*preHookFunc) (int *party_id, int *account_id, int *exp, int *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_changeoption_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_party_changeoption_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &account_id, &exp, &item); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.party_changeoption(party_id, account_id, exp, item); + } + if( HPMHooks.count.HP_intif_party_changeoption_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *account_id, int *exp, int *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_changeoption_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_party_changeoption_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &account_id, &exp, &item); + } + } + return retVal___; +} +int HP_intif_party_leave(int party_id, int account_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_party_leave_pre ) { + int (*preHookFunc) (int *party_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_leave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_party_leave_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &account_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.party_leave(party_id, account_id, char_id); + } + if( HPMHooks.count.HP_intif_party_leave_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_leave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_party_leave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &account_id, &char_id); + } + } + return retVal___; +} +int HP_intif_party_changemap(struct map_session_data *sd, int online) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_party_changemap_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *online); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_changemap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_party_changemap_pre[hIndex].func; + retVal___ = preHookFunc(sd, &online); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.party_changemap(sd, online); + } + if( HPMHooks.count.HP_intif_party_changemap_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *online); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_changemap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_party_changemap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &online); + } + } + return retVal___; +} +int HP_intif_break_party(int party_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_break_party_pre ) { + int (*preHookFunc) (int *party_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_break_party_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_break_party_pre[hIndex].func; + retVal___ = preHookFunc(&party_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.break_party(party_id); + } + if( HPMHooks.count.HP_intif_break_party_post ) { + int (*postHookFunc) (int retVal___, int *party_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_break_party_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_break_party_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id); + } + } + return retVal___; +} +int HP_intif_party_message(int party_id, int account_id, const char *mes, int len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_party_message_pre ) { + int (*preHookFunc) (int *party_id, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_party_message_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &account_id, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.party_message(party_id, account_id, mes, len); + } + if( HPMHooks.count.HP_intif_party_message_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_party_message_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &account_id, mes, &len); + } + } + return retVal___; +} +int HP_intif_party_leaderchange(int party_id, int account_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_party_leaderchange_pre ) { + int (*preHookFunc) (int *party_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_leaderchange_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_party_leaderchange_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &account_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.party_leaderchange(party_id, account_id, char_id); + } + if( HPMHooks.count.HP_intif_party_leaderchange_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_party_leaderchange_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_party_leaderchange_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &account_id, &char_id); + } + } + return retVal___; +} +int HP_intif_guild_create(const char *name, const struct guild_member *master) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_create_pre ) { + int (*preHookFunc) (const char *name, const struct guild_member *master); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_create_pre[hIndex].func; + retVal___ = preHookFunc(name, master); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_create(name, master); + } + if( HPMHooks.count.HP_intif_guild_create_post ) { + int (*postHookFunc) (int retVal___, const char *name, const struct guild_member *master); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name, master); + } + } + return retVal___; +} +int HP_intif_guild_request_info(int guild_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_request_info_pre ) { + int (*preHookFunc) (int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_request_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_request_info_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_request_info(guild_id); + } + if( HPMHooks.count.HP_intif_guild_request_info_post ) { + int (*postHookFunc) (int retVal___, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_request_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_request_info_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id); + } + } + return retVal___; +} +int HP_intif_guild_addmember(int guild_id, struct guild_member *m) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_addmember_pre ) { + int (*preHookFunc) (int *guild_id, struct guild_member *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_addmember_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_addmember_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_addmember(guild_id, m); + } + if( HPMHooks.count.HP_intif_guild_addmember_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, struct guild_member *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_addmember_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_addmember_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, m); + } + } + return retVal___; +} +int HP_intif_guild_leave(int guild_id, int account_id, int char_id, int flag, const char *mes) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_leave_pre ) { + int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, int *flag, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_leave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_leave_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, &char_id, &flag, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_leave(guild_id, account_id, char_id, flag, mes); + } + if( HPMHooks.count.HP_intif_guild_leave_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, int *flag, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_leave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_leave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, &flag, mes); + } + } + return retVal___; +} +int HP_intif_guild_memberinfoshort(int guild_id, int account_id, int char_id, int online, int lv, int class_) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_memberinfoshort_pre ) { + int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, int *online, int *lv, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_memberinfoshort_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_memberinfoshort_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, &char_id, &online, &lv, &class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_memberinfoshort(guild_id, account_id, char_id, online, lv, class_); + } + if( HPMHooks.count.HP_intif_guild_memberinfoshort_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, int *online, int *lv, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_memberinfoshort_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_memberinfoshort_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, &online, &lv, &class_); + } + } + return retVal___; +} +int HP_intif_guild_break(int guild_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_break_pre ) { + int (*preHookFunc) (int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_break_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_break_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_break(guild_id); + } + if( HPMHooks.count.HP_intif_guild_break_post ) { + int (*postHookFunc) (int retVal___, int *guild_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_break_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_break_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id); + } + } + return retVal___; +} +int HP_intif_guild_message(int guild_id, int account_id, const char *mes, int len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_message_pre ) { + int (*preHookFunc) (int *guild_id, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_message_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_message(guild_id, account_id, mes, len); + } + if( HPMHooks.count.HP_intif_guild_message_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_message_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, mes, &len); + } + } + return retVal___; +} +int HP_intif_guild_change_gm(int guild_id, const char *name, int len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_change_gm_pre ) { + int (*preHookFunc) (int *guild_id, const char *name, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_change_gm_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_change_gm_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, name, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_change_gm(guild_id, name, len); + } + if( HPMHooks.count.HP_intif_guild_change_gm_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, const char *name, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_change_gm_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_change_gm_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, name, &len); + } + } + return retVal___; +} +int HP_intif_guild_change_basicinfo(int guild_id, int type, const void *data, int len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_change_basicinfo_pre ) { + int (*preHookFunc) (int *guild_id, int *type, const void *data, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_change_basicinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_change_basicinfo_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &type, data, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_change_basicinfo(guild_id, type, data, len); + } + if( HPMHooks.count.HP_intif_guild_change_basicinfo_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *type, const void *data, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_change_basicinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_change_basicinfo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &type, data, &len); + } + } + return retVal___; +} +int HP_intif_guild_change_memberinfo(int guild_id, int account_id, int char_id, int type, const void *data, int len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_change_memberinfo_pre ) { + int (*preHookFunc) (int *guild_id, int *account_id, int *char_id, int *type, const void *data, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_change_memberinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_change_memberinfo_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &account_id, &char_id, &type, data, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_change_memberinfo(guild_id, account_id, char_id, type, data, len); + } + if( HPMHooks.count.HP_intif_guild_change_memberinfo_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *account_id, int *char_id, int *type, const void *data, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_change_memberinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_change_memberinfo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &account_id, &char_id, &type, data, &len); + } + } + return retVal___; +} +int HP_intif_guild_position(int guild_id, int idx, struct guild_position *p) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_position_pre ) { + int (*preHookFunc) (int *guild_id, int *idx, struct guild_position *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_position_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_position_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &idx, p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_position(guild_id, idx, p); + } + if( HPMHooks.count.HP_intif_guild_position_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *idx, struct guild_position *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_position_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_position_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &idx, p); + } + } + return retVal___; +} +int HP_intif_guild_skillup(int guild_id, uint16 skill_id, int account_id, int max) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_skillup_pre ) { + int (*preHookFunc) (int *guild_id, uint16 *skill_id, int *account_id, int *max); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_skillup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_skillup_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &skill_id, &account_id, &max); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_skillup(guild_id, skill_id, account_id, max); + } + if( HPMHooks.count.HP_intif_guild_skillup_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, uint16 *skill_id, int *account_id, int *max); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_skillup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_skillup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &skill_id, &account_id, &max); + } + } + return retVal___; +} +int HP_intif_guild_alliance(int guild_id1, int guild_id2, int account_id1, int account_id2, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_alliance_pre ) { + int (*preHookFunc) (int *guild_id1, int *guild_id2, int *account_id1, int *account_id2, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_alliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_alliance_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id1, &guild_id2, &account_id1, &account_id2, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_alliance(guild_id1, guild_id2, account_id1, account_id2, flag); + } + if( HPMHooks.count.HP_intif_guild_alliance_post ) { + int (*postHookFunc) (int retVal___, int *guild_id1, int *guild_id2, int *account_id1, int *account_id2, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_alliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_alliance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id1, &guild_id2, &account_id1, &account_id2, &flag); + } + } + return retVal___; +} +int HP_intif_guild_notice(int guild_id, const char *mes1, const char *mes2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_notice_pre ) { + int (*preHookFunc) (int *guild_id, const char *mes1, const char *mes2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_notice_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_notice_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, mes1, mes2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_notice(guild_id, mes1, mes2); + } + if( HPMHooks.count.HP_intif_guild_notice_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, const char *mes1, const char *mes2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_notice_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_notice_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, mes1, mes2); + } + } + return retVal___; +} +int HP_intif_guild_emblem(int guild_id, int len, const char *data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_emblem_pre ) { + int (*preHookFunc) (int *guild_id, int *len, const char *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_emblem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_emblem_pre[hIndex].func; + retVal___ = preHookFunc(&guild_id, &len, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_emblem(guild_id, len, data); + } + if( HPMHooks.count.HP_intif_guild_emblem_post ) { + int (*postHookFunc) (int retVal___, int *guild_id, int *len, const char *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_emblem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_emblem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &guild_id, &len, data); + } + } + return retVal___; +} +int HP_intif_guild_castle_dataload(int num, int *castle_ids) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_castle_dataload_pre ) { + int (*preHookFunc) (int *num, int *castle_ids); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_castle_dataload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_castle_dataload_pre[hIndex].func; + retVal___ = preHookFunc(&num, castle_ids); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_castle_dataload(num, castle_ids); + } + if( HPMHooks.count.HP_intif_guild_castle_dataload_post ) { + int (*postHookFunc) (int retVal___, int *num, int *castle_ids); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_castle_dataload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_castle_dataload_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &num, castle_ids); + } + } + return retVal___; +} +int HP_intif_guild_castle_datasave(int castle_id, int index, int value) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_guild_castle_datasave_pre ) { + int (*preHookFunc) (int *castle_id, int *index, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_castle_datasave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_guild_castle_datasave_pre[hIndex].func; + retVal___ = preHookFunc(&castle_id, &index, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.guild_castle_datasave(castle_id, index, value); + } + if( HPMHooks.count.HP_intif_guild_castle_datasave_post ) { + int (*postHookFunc) (int retVal___, int *castle_id, int *index, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_guild_castle_datasave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_guild_castle_datasave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &castle_id, &index, &value); + } + } + return retVal___; +} +int HP_intif_request_petdata(int account_id, int char_id, int pet_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_request_petdata_pre ) { + int (*preHookFunc) (int *account_id, int *char_id, int *pet_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_petdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_request_petdata_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &char_id, &pet_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.request_petdata(account_id, char_id, pet_id); + } + if( HPMHooks.count.HP_intif_request_petdata_post ) { + int (*postHookFunc) (int retVal___, int *account_id, int *char_id, int *pet_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_petdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_request_petdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &char_id, &pet_id); + } + } + return retVal___; +} +int HP_intif_save_petdata(int account_id, struct s_pet *p) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_save_petdata_pre ) { + int (*preHookFunc) (int *account_id, struct s_pet *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_save_petdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_save_petdata_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.save_petdata(account_id, p); + } + if( HPMHooks.count.HP_intif_save_petdata_post ) { + int (*postHookFunc) (int retVal___, int *account_id, struct s_pet *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_save_petdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_save_petdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, p); + } + } + return retVal___; +} +int HP_intif_delete_petdata(int pet_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_delete_petdata_pre ) { + int (*preHookFunc) (int *pet_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_delete_petdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_delete_petdata_pre[hIndex].func; + retVal___ = preHookFunc(&pet_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.delete_petdata(pet_id); + } + if( HPMHooks.count.HP_intif_delete_petdata_post ) { + int (*postHookFunc) (int retVal___, int *pet_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_delete_petdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_delete_petdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &pet_id); + } + } + return retVal___; +} +int HP_intif_rename(struct map_session_data *sd, int type, char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_rename_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_rename_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_rename_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.rename(sd, type, name); + } + if( HPMHooks.count.HP_intif_rename_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_rename_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_rename_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, name); + } + } + return retVal___; +} +int HP_intif_homunculus_create(int account_id, struct s_homunculus *sh) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_homunculus_create_pre ) { + int (*preHookFunc) (int *account_id, struct s_homunculus *sh); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_homunculus_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_homunculus_create_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, sh); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.homunculus_create(account_id, sh); + } + if( HPMHooks.count.HP_intif_homunculus_create_post ) { + int (*postHookFunc) (int retVal___, int *account_id, struct s_homunculus *sh); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_homunculus_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_homunculus_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, sh); + } + } + return retVal___; +} +bool HP_intif_homunculus_requestload(int account_id, int homun_id) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_intif_homunculus_requestload_pre ) { + bool (*preHookFunc) (int *account_id, int *homun_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_homunculus_requestload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_homunculus_requestload_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &homun_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.homunculus_requestload(account_id, homun_id); + } + if( HPMHooks.count.HP_intif_homunculus_requestload_post ) { + bool (*postHookFunc) (bool retVal___, int *account_id, int *homun_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_homunculus_requestload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_homunculus_requestload_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &homun_id); + } + } + return retVal___; +} +int HP_intif_homunculus_requestsave(int account_id, struct s_homunculus *sh) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_homunculus_requestsave_pre ) { + int (*preHookFunc) (int *account_id, struct s_homunculus *sh); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_homunculus_requestsave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_homunculus_requestsave_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, sh); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.homunculus_requestsave(account_id, sh); + } + if( HPMHooks.count.HP_intif_homunculus_requestsave_post ) { + int (*postHookFunc) (int retVal___, int *account_id, struct s_homunculus *sh); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_homunculus_requestsave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_homunculus_requestsave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, sh); + } + } + return retVal___; +} +int HP_intif_homunculus_requestdelete(int homun_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_homunculus_requestdelete_pre ) { + int (*preHookFunc) (int *homun_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_homunculus_requestdelete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_homunculus_requestdelete_pre[hIndex].func; + retVal___ = preHookFunc(&homun_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.homunculus_requestdelete(homun_id); + } + if( HPMHooks.count.HP_intif_homunculus_requestdelete_post ) { + int (*postHookFunc) (int retVal___, int *homun_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_homunculus_requestdelete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_homunculus_requestdelete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &homun_id); + } + } + return retVal___; +} +int HP_intif_request_questlog(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_request_questlog_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_questlog_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_request_questlog_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.request_questlog(sd); + } + if( HPMHooks.count.HP_intif_request_questlog_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_questlog_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_request_questlog_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_intif_quest_save(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_quest_save_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_quest_save_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_quest_save_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.quest_save(sd); + } + if( HPMHooks.count.HP_intif_quest_save_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_quest_save_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_quest_save_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_intif_mercenary_create(struct s_mercenary *merc) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_mercenary_create_pre ) { + int (*preHookFunc) (struct s_mercenary *merc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_mercenary_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_mercenary_create_pre[hIndex].func; + retVal___ = preHookFunc(merc); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.mercenary_create(merc); + } + if( HPMHooks.count.HP_intif_mercenary_create_post ) { + int (*postHookFunc) (int retVal___, struct s_mercenary *merc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_mercenary_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_mercenary_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, merc); + } + } + return retVal___; +} +int HP_intif_mercenary_request(int merc_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_mercenary_request_pre ) { + int (*preHookFunc) (int *merc_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_mercenary_request_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_mercenary_request_pre[hIndex].func; + retVal___ = preHookFunc(&merc_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.mercenary_request(merc_id, char_id); + } + if( HPMHooks.count.HP_intif_mercenary_request_post ) { + int (*postHookFunc) (int retVal___, int *merc_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_mercenary_request_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_mercenary_request_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &merc_id, &char_id); + } + } + return retVal___; +} +int HP_intif_mercenary_delete(int merc_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_mercenary_delete_pre ) { + int (*preHookFunc) (int *merc_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_mercenary_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_mercenary_delete_pre[hIndex].func; + retVal___ = preHookFunc(&merc_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.mercenary_delete(merc_id); + } + if( HPMHooks.count.HP_intif_mercenary_delete_post ) { + int (*postHookFunc) (int retVal___, int *merc_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_mercenary_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_mercenary_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &merc_id); + } + } + return retVal___; +} +int HP_intif_mercenary_save(struct s_mercenary *merc) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_mercenary_save_pre ) { + int (*preHookFunc) (struct s_mercenary *merc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_mercenary_save_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_mercenary_save_pre[hIndex].func; + retVal___ = preHookFunc(merc); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.mercenary_save(merc); + } + if( HPMHooks.count.HP_intif_mercenary_save_post ) { + int (*postHookFunc) (int retVal___, struct s_mercenary *merc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_mercenary_save_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_mercenary_save_post[hIndex].func; + retVal___ = postHookFunc(retVal___, merc); + } + } + return retVal___; +} +int HP_intif_Mail_requestinbox(int char_id, unsigned char flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Mail_requestinbox_pre ) { + int (*preHookFunc) (int *char_id, unsigned char *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_requestinbox_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Mail_requestinbox_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Mail_requestinbox(char_id, flag); + } + if( HPMHooks.count.HP_intif_Mail_requestinbox_post ) { + int (*postHookFunc) (int retVal___, int *char_id, unsigned char *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_requestinbox_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Mail_requestinbox_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, &flag); + } + } + return retVal___; +} +int HP_intif_Mail_read(int mail_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Mail_read_pre ) { + int (*preHookFunc) (int *mail_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Mail_read_pre[hIndex].func; + retVal___ = preHookFunc(&mail_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Mail_read(mail_id); + } + if( HPMHooks.count.HP_intif_Mail_read_post ) { + int (*postHookFunc) (int retVal___, int *mail_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Mail_read_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &mail_id); + } + } + return retVal___; +} +int HP_intif_Mail_getattach(int char_id, int mail_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Mail_getattach_pre ) { + int (*preHookFunc) (int *char_id, int *mail_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_getattach_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Mail_getattach_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &mail_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Mail_getattach(char_id, mail_id); + } + if( HPMHooks.count.HP_intif_Mail_getattach_post ) { + int (*postHookFunc) (int retVal___, int *char_id, int *mail_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_getattach_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Mail_getattach_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, &mail_id); + } + } + return retVal___; +} +int HP_intif_Mail_delete(int char_id, int mail_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Mail_delete_pre ) { + int (*preHookFunc) (int *char_id, int *mail_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Mail_delete_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &mail_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Mail_delete(char_id, mail_id); + } + if( HPMHooks.count.HP_intif_Mail_delete_post ) { + int (*postHookFunc) (int retVal___, int *char_id, int *mail_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Mail_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, &mail_id); + } + } + return retVal___; +} +int HP_intif_Mail_return(int char_id, int mail_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Mail_return_pre ) { + int (*preHookFunc) (int *char_id, int *mail_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_return_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Mail_return_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &mail_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Mail_return(char_id, mail_id); + } + if( HPMHooks.count.HP_intif_Mail_return_post ) { + int (*postHookFunc) (int retVal___, int *char_id, int *mail_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_return_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Mail_return_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, &mail_id); + } + } + return retVal___; +} +int HP_intif_Mail_send(int account_id, struct mail_message *msg) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Mail_send_pre ) { + int (*preHookFunc) (int *account_id, struct mail_message *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_send_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Mail_send_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Mail_send(account_id, msg); + } + if( HPMHooks.count.HP_intif_Mail_send_post ) { + int (*postHookFunc) (int retVal___, int *account_id, struct mail_message *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Mail_send_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Mail_send_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, msg); + } + } + return retVal___; +} +int HP_intif_Auction_requestlist(int char_id, short type, int price, const char *searchtext, short page) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Auction_requestlist_pre ) { + int (*preHookFunc) (int *char_id, short *type, int *price, const char *searchtext, short *page); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Auction_requestlist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Auction_requestlist_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &type, &price, searchtext, &page); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Auction_requestlist(char_id, type, price, searchtext, page); + } + if( HPMHooks.count.HP_intif_Auction_requestlist_post ) { + int (*postHookFunc) (int retVal___, int *char_id, short *type, int *price, const char *searchtext, short *page); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Auction_requestlist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Auction_requestlist_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, &type, &price, searchtext, &page); + } + } + return retVal___; +} +int HP_intif_Auction_register(struct auction_data *auction) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Auction_register_pre ) { + int (*preHookFunc) (struct auction_data *auction); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Auction_register_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Auction_register_pre[hIndex].func; + retVal___ = preHookFunc(auction); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Auction_register(auction); + } + if( HPMHooks.count.HP_intif_Auction_register_post ) { + int (*postHookFunc) (int retVal___, struct auction_data *auction); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Auction_register_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Auction_register_post[hIndex].func; + retVal___ = postHookFunc(retVal___, auction); + } + } + return retVal___; +} +int HP_intif_Auction_cancel(int char_id, unsigned int auction_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Auction_cancel_pre ) { + int (*preHookFunc) (int *char_id, unsigned int *auction_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Auction_cancel_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Auction_cancel_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &auction_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Auction_cancel(char_id, auction_id); + } + if( HPMHooks.count.HP_intif_Auction_cancel_post ) { + int (*postHookFunc) (int retVal___, int *char_id, unsigned int *auction_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Auction_cancel_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Auction_cancel_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, &auction_id); + } + } + return retVal___; +} +int HP_intif_Auction_close(int char_id, unsigned int auction_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Auction_close_pre ) { + int (*preHookFunc) (int *char_id, unsigned int *auction_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Auction_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Auction_close_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &auction_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Auction_close(char_id, auction_id); + } + if( HPMHooks.count.HP_intif_Auction_close_post ) { + int (*postHookFunc) (int retVal___, int *char_id, unsigned int *auction_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Auction_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Auction_close_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, &auction_id); + } + } + return retVal___; +} +int HP_intif_Auction_bid(int char_id, const char *name, unsigned int auction_id, int bid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_Auction_bid_pre ) { + int (*preHookFunc) (int *char_id, const char *name, unsigned int *auction_id, int *bid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Auction_bid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_Auction_bid_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, name, &auction_id, &bid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.Auction_bid(char_id, name, auction_id, bid); + } + if( HPMHooks.count.HP_intif_Auction_bid_post ) { + int (*postHookFunc) (int retVal___, int *char_id, const char *name, unsigned int *auction_id, int *bid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_Auction_bid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_Auction_bid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, name, &auction_id, &bid); + } + } + return retVal___; +} +int HP_intif_elemental_create(struct s_elemental *ele) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_elemental_create_pre ) { + int (*preHookFunc) (struct s_elemental *ele); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_elemental_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_elemental_create_pre[hIndex].func; + retVal___ = preHookFunc(ele); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.elemental_create(ele); + } + if( HPMHooks.count.HP_intif_elemental_create_post ) { + int (*postHookFunc) (int retVal___, struct s_elemental *ele); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_elemental_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_elemental_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ele); + } + } + return retVal___; +} +int HP_intif_elemental_request(int ele_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_elemental_request_pre ) { + int (*preHookFunc) (int *ele_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_elemental_request_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_elemental_request_pre[hIndex].func; + retVal___ = preHookFunc(&ele_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.elemental_request(ele_id, char_id); + } + if( HPMHooks.count.HP_intif_elemental_request_post ) { + int (*postHookFunc) (int retVal___, int *ele_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_elemental_request_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_elemental_request_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &ele_id, &char_id); + } + } + return retVal___; +} +int HP_intif_elemental_delete(int ele_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_elemental_delete_pre ) { + int (*preHookFunc) (int *ele_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_elemental_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_elemental_delete_pre[hIndex].func; + retVal___ = preHookFunc(&ele_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.elemental_delete(ele_id); + } + if( HPMHooks.count.HP_intif_elemental_delete_post ) { + int (*postHookFunc) (int retVal___, int *ele_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_elemental_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_elemental_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &ele_id); + } + } + return retVal___; +} +int HP_intif_elemental_save(struct s_elemental *ele) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_elemental_save_pre ) { + int (*preHookFunc) (struct s_elemental *ele); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_elemental_save_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_elemental_save_pre[hIndex].func; + retVal___ = preHookFunc(ele); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.elemental_save(ele); + } + if( HPMHooks.count.HP_intif_elemental_save_post ) { + int (*postHookFunc) (int retVal___, struct s_elemental *ele); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_elemental_save_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_elemental_save_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ele); + } + } + return retVal___; +} +void HP_intif_request_accinfo(int u_fd, int aid, int group_lv, char *query) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_request_accinfo_pre ) { + void (*preHookFunc) (int *u_fd, int *aid, int *group_lv, char *query); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_accinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_request_accinfo_pre[hIndex].func; + preHookFunc(&u_fd, &aid, &group_lv, query); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.request_accinfo(u_fd, aid, group_lv, query); + } + if( HPMHooks.count.HP_intif_request_accinfo_post ) { + void (*postHookFunc) (int *u_fd, int *aid, int *group_lv, char *query); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_request_accinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_request_accinfo_post[hIndex].func; + postHookFunc(&u_fd, &aid, &group_lv, query); + } + } + return; +} +int HP_intif_CheckForCharServer(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_CheckForCharServer_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_CheckForCharServer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_CheckForCharServer_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.intif.CheckForCharServer(); + } + if( HPMHooks.count.HP_intif_CheckForCharServer_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_CheckForCharServer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_CheckForCharServer_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_intif_pWisMessage(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pWisMessage_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisMessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pWisMessage_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pWisMessage(fd); + } + if( HPMHooks.count.HP_intif_pWisMessage_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisMessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pWisMessage_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pWisEnd(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pWisEnd_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisEnd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pWisEnd_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pWisEnd(fd); + } + if( HPMHooks.count.HP_intif_pWisEnd_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisEnd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pWisEnd_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +int HP_intif_pWisToGM_sub(struct map_session_data *sd, va_list va) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_intif_pWisToGM_sub_pre ) { + int (*preHookFunc) (struct map_session_data *sd, va_list va); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisToGM_sub_pre; hIndex++ ) { + va_list va___copy; va_copy(va___copy, va); + preHookFunc = HPMHooks.list.HP_intif_pWisToGM_sub_pre[hIndex].func; + retVal___ = preHookFunc(sd, va___copy); + va_end(va___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list va___copy; va_copy(va___copy, va); + retVal___ = HPMHooks.source.intif.pWisToGM_sub(sd, va___copy); + va_end(va___copy); + } + if( HPMHooks.count.HP_intif_pWisToGM_sub_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list va); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisToGM_sub_post; hIndex++ ) { + va_list va___copy; va_copy(va___copy, va); + postHookFunc = HPMHooks.list.HP_intif_pWisToGM_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, va___copy); + va_end(va___copy); + } + } + return retVal___; +} +void HP_intif_pWisToGM(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pWisToGM_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisToGM_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pWisToGM_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pWisToGM(fd); + } + if( HPMHooks.count.HP_intif_pWisToGM_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pWisToGM_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pWisToGM_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pRegisters(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pRegisters_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pRegisters_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pRegisters_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pRegisters(fd); + } + if( HPMHooks.count.HP_intif_pRegisters_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pRegisters_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pRegisters_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pChangeNameOk(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pChangeNameOk_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pChangeNameOk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pChangeNameOk_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pChangeNameOk(fd); + } + if( HPMHooks.count.HP_intif_pChangeNameOk_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pChangeNameOk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pChangeNameOk_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pMessageToFD(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pMessageToFD_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMessageToFD_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pMessageToFD_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pMessageToFD(fd); + } + if( HPMHooks.count.HP_intif_pMessageToFD_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMessageToFD_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pMessageToFD_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pLoadGuildStorage(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pLoadGuildStorage_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pLoadGuildStorage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pLoadGuildStorage_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pLoadGuildStorage(fd); + } + if( HPMHooks.count.HP_intif_pLoadGuildStorage_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pLoadGuildStorage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pLoadGuildStorage_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pSaveGuildStorage(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pSaveGuildStorage_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pSaveGuildStorage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pSaveGuildStorage_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pSaveGuildStorage(fd); + } + if( HPMHooks.count.HP_intif_pSaveGuildStorage_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pSaveGuildStorage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pSaveGuildStorage_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pPartyCreated(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pPartyCreated_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyCreated_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pPartyCreated_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pPartyCreated(fd); + } + if( HPMHooks.count.HP_intif_pPartyCreated_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyCreated_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pPartyCreated_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pPartyInfo(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pPartyInfo_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyInfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pPartyInfo_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pPartyInfo(fd); + } + if( HPMHooks.count.HP_intif_pPartyInfo_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyInfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pPartyInfo_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pPartyMemberAdded(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pPartyMemberAdded_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyMemberAdded_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pPartyMemberAdded_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pPartyMemberAdded(fd); + } + if( HPMHooks.count.HP_intif_pPartyMemberAdded_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyMemberAdded_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pPartyMemberAdded_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pPartyOptionChanged(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pPartyOptionChanged_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyOptionChanged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pPartyOptionChanged_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pPartyOptionChanged(fd); + } + if( HPMHooks.count.HP_intif_pPartyOptionChanged_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyOptionChanged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pPartyOptionChanged_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pPartyMemberWithdraw(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pPartyMemberWithdraw_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyMemberWithdraw_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pPartyMemberWithdraw_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pPartyMemberWithdraw(fd); + } + if( HPMHooks.count.HP_intif_pPartyMemberWithdraw_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyMemberWithdraw_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pPartyMemberWithdraw_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pPartyMove(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pPartyMove_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyMove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pPartyMove_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pPartyMove(fd); + } + if( HPMHooks.count.HP_intif_pPartyMove_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyMove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pPartyMove_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pPartyBroken(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pPartyBroken_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyBroken_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pPartyBroken_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pPartyBroken(fd); + } + if( HPMHooks.count.HP_intif_pPartyBroken_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyBroken_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pPartyBroken_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pPartyMessage(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pPartyMessage_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyMessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pPartyMessage_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pPartyMessage(fd); + } + if( HPMHooks.count.HP_intif_pPartyMessage_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pPartyMessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pPartyMessage_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildCreated(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildCreated_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildCreated_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildCreated_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildCreated(fd); + } + if( HPMHooks.count.HP_intif_pGuildCreated_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildCreated_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildCreated_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildInfo(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildInfo_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildInfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildInfo_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildInfo(fd); + } + if( HPMHooks.count.HP_intif_pGuildInfo_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildInfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildInfo_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildMemberAdded(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildMemberAdded_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMemberAdded_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildMemberAdded_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildMemberAdded(fd); + } + if( HPMHooks.count.HP_intif_pGuildMemberAdded_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMemberAdded_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildMemberAdded_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildMemberWithdraw(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildMemberWithdraw_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMemberWithdraw_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildMemberWithdraw_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildMemberWithdraw(fd); + } + if( HPMHooks.count.HP_intif_pGuildMemberWithdraw_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMemberWithdraw_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildMemberWithdraw_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildMemberInfoShort(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildMemberInfoShort_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMemberInfoShort_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildMemberInfoShort_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildMemberInfoShort(fd); + } + if( HPMHooks.count.HP_intif_pGuildMemberInfoShort_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMemberInfoShort_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildMemberInfoShort_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildBroken(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildBroken_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildBroken_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildBroken_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildBroken(fd); + } + if( HPMHooks.count.HP_intif_pGuildBroken_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildBroken_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildBroken_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildMessage(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildMessage_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildMessage_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildMessage(fd); + } + if( HPMHooks.count.HP_intif_pGuildMessage_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildMessage_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildBasicInfoChanged(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildBasicInfoChanged_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildBasicInfoChanged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildBasicInfoChanged_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildBasicInfoChanged(fd); + } + if( HPMHooks.count.HP_intif_pGuildBasicInfoChanged_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildBasicInfoChanged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildBasicInfoChanged_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildMemberInfoChanged(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildMemberInfoChanged_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMemberInfoChanged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildMemberInfoChanged_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildMemberInfoChanged(fd); + } + if( HPMHooks.count.HP_intif_pGuildMemberInfoChanged_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMemberInfoChanged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildMemberInfoChanged_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildPosition(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildPosition_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildPosition_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildPosition_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildPosition(fd); + } + if( HPMHooks.count.HP_intif_pGuildPosition_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildPosition_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildPosition_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildSkillUp(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildSkillUp_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildSkillUp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildSkillUp_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildSkillUp(fd); + } + if( HPMHooks.count.HP_intif_pGuildSkillUp_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildSkillUp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildSkillUp_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildAlliance(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildAlliance_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildAlliance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildAlliance_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildAlliance(fd); + } + if( HPMHooks.count.HP_intif_pGuildAlliance_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildAlliance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildAlliance_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildNotice(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildNotice_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildNotice_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildNotice_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildNotice(fd); + } + if( HPMHooks.count.HP_intif_pGuildNotice_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildNotice_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildNotice_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildEmblem(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildEmblem_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildEmblem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildEmblem_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildEmblem(fd); + } + if( HPMHooks.count.HP_intif_pGuildEmblem_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildEmblem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildEmblem_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildCastleDataLoad(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildCastleDataLoad_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildCastleDataLoad_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildCastleDataLoad_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildCastleDataLoad(fd); + } + if( HPMHooks.count.HP_intif_pGuildCastleDataLoad_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildCastleDataLoad_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildCastleDataLoad_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pGuildMasterChanged(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pGuildMasterChanged_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMasterChanged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pGuildMasterChanged_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pGuildMasterChanged(fd); + } + if( HPMHooks.count.HP_intif_pGuildMasterChanged_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pGuildMasterChanged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pGuildMasterChanged_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pQuestLog(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pQuestLog_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pQuestLog_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pQuestLog_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pQuestLog(fd); + } + if( HPMHooks.count.HP_intif_pQuestLog_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pQuestLog_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pQuestLog_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pQuestSave(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pQuestSave_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pQuestSave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pQuestSave_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pQuestSave(fd); + } + if( HPMHooks.count.HP_intif_pQuestSave_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pQuestSave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pQuestSave_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pMailInboxReceived(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pMailInboxReceived_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailInboxReceived_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pMailInboxReceived_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pMailInboxReceived(fd); + } + if( HPMHooks.count.HP_intif_pMailInboxReceived_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailInboxReceived_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pMailInboxReceived_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pMailNew(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pMailNew_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailNew_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pMailNew_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pMailNew(fd); + } + if( HPMHooks.count.HP_intif_pMailNew_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailNew_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pMailNew_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pMailGetAttach(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pMailGetAttach_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailGetAttach_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pMailGetAttach_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pMailGetAttach(fd); + } + if( HPMHooks.count.HP_intif_pMailGetAttach_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailGetAttach_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pMailGetAttach_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pMailDelete(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pMailDelete_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailDelete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pMailDelete_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pMailDelete(fd); + } + if( HPMHooks.count.HP_intif_pMailDelete_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailDelete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pMailDelete_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pMailReturn(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pMailReturn_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailReturn_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pMailReturn_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pMailReturn(fd); + } + if( HPMHooks.count.HP_intif_pMailReturn_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailReturn_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pMailReturn_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pMailSend(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pMailSend_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailSend_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pMailSend_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pMailSend(fd); + } + if( HPMHooks.count.HP_intif_pMailSend_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMailSend_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pMailSend_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pAuctionResults(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pAuctionResults_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionResults_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pAuctionResults_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pAuctionResults(fd); + } + if( HPMHooks.count.HP_intif_pAuctionResults_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionResults_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pAuctionResults_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pAuctionRegister(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pAuctionRegister_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionRegister_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pAuctionRegister_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pAuctionRegister(fd); + } + if( HPMHooks.count.HP_intif_pAuctionRegister_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionRegister_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pAuctionRegister_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pAuctionCancel(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pAuctionCancel_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionCancel_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pAuctionCancel_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pAuctionCancel(fd); + } + if( HPMHooks.count.HP_intif_pAuctionCancel_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionCancel_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pAuctionCancel_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pAuctionClose(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pAuctionClose_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionClose_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pAuctionClose_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pAuctionClose(fd); + } + if( HPMHooks.count.HP_intif_pAuctionClose_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionClose_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pAuctionClose_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pAuctionMessage(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pAuctionMessage_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionMessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pAuctionMessage_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pAuctionMessage(fd); + } + if( HPMHooks.count.HP_intif_pAuctionMessage_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionMessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pAuctionMessage_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pAuctionBid(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pAuctionBid_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionBid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pAuctionBid_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pAuctionBid(fd); + } + if( HPMHooks.count.HP_intif_pAuctionBid_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pAuctionBid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pAuctionBid_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pMercenaryReceived(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pMercenaryReceived_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMercenaryReceived_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pMercenaryReceived_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pMercenaryReceived(fd); + } + if( HPMHooks.count.HP_intif_pMercenaryReceived_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMercenaryReceived_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pMercenaryReceived_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pMercenaryDeleted(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pMercenaryDeleted_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMercenaryDeleted_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pMercenaryDeleted_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pMercenaryDeleted(fd); + } + if( HPMHooks.count.HP_intif_pMercenaryDeleted_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMercenaryDeleted_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pMercenaryDeleted_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pMercenarySaved(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pMercenarySaved_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMercenarySaved_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pMercenarySaved_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pMercenarySaved(fd); + } + if( HPMHooks.count.HP_intif_pMercenarySaved_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pMercenarySaved_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pMercenarySaved_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pElementalReceived(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pElementalReceived_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pElementalReceived_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pElementalReceived_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pElementalReceived(fd); + } + if( HPMHooks.count.HP_intif_pElementalReceived_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pElementalReceived_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pElementalReceived_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pElementalDeleted(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pElementalDeleted_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pElementalDeleted_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pElementalDeleted_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pElementalDeleted(fd); + } + if( HPMHooks.count.HP_intif_pElementalDeleted_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pElementalDeleted_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pElementalDeleted_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pElementalSaved(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pElementalSaved_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pElementalSaved_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pElementalSaved_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pElementalSaved(fd); + } + if( HPMHooks.count.HP_intif_pElementalSaved_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pElementalSaved_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pElementalSaved_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pCreatePet(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pCreatePet_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pCreatePet_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pCreatePet_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pCreatePet(fd); + } + if( HPMHooks.count.HP_intif_pCreatePet_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pCreatePet_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pCreatePet_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pRecvPetData(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pRecvPetData_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pRecvPetData_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pRecvPetData_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pRecvPetData(fd); + } + if( HPMHooks.count.HP_intif_pRecvPetData_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pRecvPetData_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pRecvPetData_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pSavePetOk(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pSavePetOk_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pSavePetOk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pSavePetOk_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pSavePetOk(fd); + } + if( HPMHooks.count.HP_intif_pSavePetOk_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pSavePetOk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pSavePetOk_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pDeletePetOk(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pDeletePetOk_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pDeletePetOk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pDeletePetOk_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pDeletePetOk(fd); + } + if( HPMHooks.count.HP_intif_pDeletePetOk_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pDeletePetOk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pDeletePetOk_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pCreateHomunculus(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pCreateHomunculus_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pCreateHomunculus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pCreateHomunculus_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pCreateHomunculus(fd); + } + if( HPMHooks.count.HP_intif_pCreateHomunculus_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pCreateHomunculus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pCreateHomunculus_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pRecvHomunculusData(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pRecvHomunculusData_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pRecvHomunculusData_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pRecvHomunculusData_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pRecvHomunculusData(fd); + } + if( HPMHooks.count.HP_intif_pRecvHomunculusData_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pRecvHomunculusData_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pRecvHomunculusData_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pSaveHomunculusOk(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pSaveHomunculusOk_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pSaveHomunculusOk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pSaveHomunculusOk_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pSaveHomunculusOk(fd); + } + if( HPMHooks.count.HP_intif_pSaveHomunculusOk_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pSaveHomunculusOk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pSaveHomunculusOk_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +void HP_intif_pDeleteHomunculusOk(int fd) { + int hIndex = 0; + if( HPMHooks.count.HP_intif_pDeleteHomunculusOk_pre ) { + void (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pDeleteHomunculusOk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_intif_pDeleteHomunculusOk_pre[hIndex].func; + preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.intif.pDeleteHomunculusOk(fd); + } + if( HPMHooks.count.HP_intif_pDeleteHomunculusOk_post ) { + void (*postHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_intif_pDeleteHomunculusOk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_intif_pDeleteHomunculusOk_post[hIndex].func; + postHookFunc(&fd); + } + } + return; +} +/* ircbot */ +void HP_ircbot_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.init(); + } + if( HPMHooks.count.HP_ircbot_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_ircbot_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.final(); + } + if( HPMHooks.count.HP_ircbot_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_ircbot_parse(int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_ircbot_parse_pre ) { + int (*preHookFunc) (int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_parse_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_parse_pre[hIndex].func; + retVal___ = preHookFunc(&fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.ircbot.parse(fd); + } + if( HPMHooks.count.HP_ircbot_parse_post ) { + int (*postHookFunc) (int retVal___, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_parse_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_parse_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd); + } + } + return retVal___; +} +void HP_ircbot_parse_sub(int fd, char *str) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_parse_sub_pre ) { + void (*preHookFunc) (int *fd, char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_parse_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_parse_sub_pre[hIndex].func; + preHookFunc(&fd, str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.parse_sub(fd, str); + } + if( HPMHooks.count.HP_ircbot_parse_sub_post ) { + void (*postHookFunc) (int *fd, char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_parse_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_parse_sub_post[hIndex].func; + postHookFunc(&fd, str); + } + } + return; +} +void HP_ircbot_parse_source(char *source, char *nick, char *ident, char *host) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_parse_source_pre ) { + void (*preHookFunc) (char *source, char *nick, char *ident, char *host); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_parse_source_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_parse_source_pre[hIndex].func; + preHookFunc(source, nick, ident, host); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.parse_source(source, nick, ident, host); + } + if( HPMHooks.count.HP_ircbot_parse_source_post ) { + void (*postHookFunc) (char *source, char *nick, char *ident, char *host); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_parse_source_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_parse_source_post[hIndex].func; + postHookFunc(source, nick, ident, host); + } + } + return; +} +struct irc_func* HP_ircbot_func_search(char *function_name) { + int hIndex = 0; + struct irc_func* retVal___ = NULL; + if( HPMHooks.count.HP_ircbot_func_search_pre ) { + struct irc_func* (*preHookFunc) (char *function_name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_func_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_func_search_pre[hIndex].func; + retVal___ = preHookFunc(function_name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.ircbot.func_search(function_name); + } + if( HPMHooks.count.HP_ircbot_func_search_post ) { + struct irc_func* (*postHookFunc) (struct irc_func* retVal___, char *function_name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_func_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_func_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, function_name); + } + } + return retVal___; +} +int HP_ircbot_connect_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_ircbot_connect_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_connect_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_connect_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.ircbot.connect_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_ircbot_connect_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_connect_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_connect_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_ircbot_identify_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_ircbot_identify_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_identify_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_identify_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.ircbot.identify_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_ircbot_identify_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_identify_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_identify_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_ircbot_join_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_ircbot_join_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_join_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_join_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.ircbot.join_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_ircbot_join_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_join_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_join_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_ircbot_send(char *str) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_send_pre ) { + void (*preHookFunc) (char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_send_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_send_pre[hIndex].func; + preHookFunc(str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.send(str); + } + if( HPMHooks.count.HP_ircbot_send_post ) { + void (*postHookFunc) (char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_send_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_send_post[hIndex].func; + postHookFunc(str); + } + } + return; +} +void HP_ircbot_relay(char *name, const char *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_relay_pre ) { + void (*preHookFunc) (char *name, const char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_relay_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_relay_pre[hIndex].func; + preHookFunc(name, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.relay(name, msg); + } + if( HPMHooks.count.HP_ircbot_relay_post ) { + void (*postHookFunc) (char *name, const char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_relay_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_relay_post[hIndex].func; + postHookFunc(name, msg); + } + } + return; +} +void HP_ircbot_pong(int fd, char *cmd, char *source, char *target, char *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_pong_pre ) { + void (*preHookFunc) (int *fd, char *cmd, char *source, char *target, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_pong_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_pong_pre[hIndex].func; + preHookFunc(&fd, cmd, source, target, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.pong(fd, cmd, source, target, msg); + } + if( HPMHooks.count.HP_ircbot_pong_post ) { + void (*postHookFunc) (int *fd, char *cmd, char *source, char *target, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_pong_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_pong_post[hIndex].func; + postHookFunc(&fd, cmd, source, target, msg); + } + } + return; +} +void HP_ircbot_privmsg(int fd, char *cmd, char *source, char *target, char *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_privmsg_pre ) { + void (*preHookFunc) (int *fd, char *cmd, char *source, char *target, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_privmsg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_privmsg_pre[hIndex].func; + preHookFunc(&fd, cmd, source, target, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.privmsg(fd, cmd, source, target, msg); + } + if( HPMHooks.count.HP_ircbot_privmsg_post ) { + void (*postHookFunc) (int *fd, char *cmd, char *source, char *target, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_privmsg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_privmsg_post[hIndex].func; + postHookFunc(&fd, cmd, source, target, msg); + } + } + return; +} +void HP_ircbot_userjoin(int fd, char *cmd, char *source, char *target, char *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_userjoin_pre ) { + void (*preHookFunc) (int *fd, char *cmd, char *source, char *target, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_userjoin_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_userjoin_pre[hIndex].func; + preHookFunc(&fd, cmd, source, target, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.userjoin(fd, cmd, source, target, msg); + } + if( HPMHooks.count.HP_ircbot_userjoin_post ) { + void (*postHookFunc) (int *fd, char *cmd, char *source, char *target, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_userjoin_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_userjoin_post[hIndex].func; + postHookFunc(&fd, cmd, source, target, msg); + } + } + return; +} +void HP_ircbot_userleave(int fd, char *cmd, char *source, char *target, char *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_userleave_pre ) { + void (*preHookFunc) (int *fd, char *cmd, char *source, char *target, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_userleave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_userleave_pre[hIndex].func; + preHookFunc(&fd, cmd, source, target, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.userleave(fd, cmd, source, target, msg); + } + if( HPMHooks.count.HP_ircbot_userleave_post ) { + void (*postHookFunc) (int *fd, char *cmd, char *source, char *target, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_userleave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_userleave_post[hIndex].func; + postHookFunc(&fd, cmd, source, target, msg); + } + } + return; +} +void HP_ircbot_usernick(int fd, char *cmd, char *source, char *target, char *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_ircbot_usernick_pre ) { + void (*preHookFunc) (int *fd, char *cmd, char *source, char *target, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_usernick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_ircbot_usernick_pre[hIndex].func; + preHookFunc(&fd, cmd, source, target, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.ircbot.usernick(fd, cmd, source, target, msg); + } + if( HPMHooks.count.HP_ircbot_usernick_post ) { + void (*postHookFunc) (int *fd, char *cmd, char *source, char *target, char *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_ircbot_usernick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_ircbot_usernick_post[hIndex].func; + postHookFunc(&fd, cmd, source, target, msg); + } + } + return; +} +/* itemdb */ +void HP_itemdb_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.init(); + } + if( HPMHooks.count.HP_itemdb_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_itemdb_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.final(); + } + if( HPMHooks.count.HP_itemdb_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_itemdb_reload(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_reload_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_reload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_reload_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.reload(); + } + if( HPMHooks.count.HP_itemdb_reload_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_reload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_reload_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_itemdb_name_constants(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_name_constants_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_name_constants_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_name_constants_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.name_constants(); + } + if( HPMHooks.count.HP_itemdb_name_constants_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_name_constants_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_name_constants_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_itemdb_force_name_constants(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_force_name_constants_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_force_name_constants_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_force_name_constants_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.force_name_constants(); + } + if( HPMHooks.count.HP_itemdb_force_name_constants_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_force_name_constants_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_force_name_constants_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_itemdb_read_groups(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_read_groups_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_groups_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_groups_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.read_groups(); + } + if( HPMHooks.count.HP_itemdb_read_groups_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_groups_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_groups_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_itemdb_read_chains(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_read_chains_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_chains_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_chains_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.read_chains(); + } + if( HPMHooks.count.HP_itemdb_read_chains_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_chains_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_chains_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_itemdb_read_packages(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_read_packages_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_packages_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_packages_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.read_packages(); + } + if( HPMHooks.count.HP_itemdb_read_packages_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_packages_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_packages_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_itemdb_write_cached_packages(const char *config_filename) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_write_cached_packages_pre ) { + void (*preHookFunc) (const char *config_filename); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_write_cached_packages_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_write_cached_packages_pre[hIndex].func; + preHookFunc(config_filename); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.write_cached_packages(config_filename); + } + if( HPMHooks.count.HP_itemdb_write_cached_packages_post ) { + void (*postHookFunc) (const char *config_filename); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_write_cached_packages_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_write_cached_packages_post[hIndex].func; + postHookFunc(config_filename); + } + } + return; +} +bool HP_itemdb_read_cached_packages(const char *config_filename) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_itemdb_read_cached_packages_pre ) { + bool (*preHookFunc) (const char *config_filename); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_cached_packages_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_cached_packages_pre[hIndex].func; + retVal___ = preHookFunc(config_filename); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.read_cached_packages(config_filename); + } + if( HPMHooks.count.HP_itemdb_read_cached_packages_post ) { + bool (*postHookFunc) (bool retVal___, const char *config_filename); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_cached_packages_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_cached_packages_post[hIndex].func; + retVal___ = postHookFunc(retVal___, config_filename); + } + } + return retVal___; +} +struct item_data* HP_itemdb_name2id(const char *str) { + int hIndex = 0; + struct item_data* retVal___ = NULL; + if( HPMHooks.count.HP_itemdb_name2id_pre ) { + struct item_data* (*preHookFunc) (const char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_name2id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_name2id_pre[hIndex].func; + retVal___ = preHookFunc(str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.name2id(str); + } + if( HPMHooks.count.HP_itemdb_name2id_post ) { + struct item_data* (*postHookFunc) (struct item_data* retVal___, const char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_name2id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_name2id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str); + } + } + return retVal___; +} +struct item_data* HP_itemdb_search_name(const char *name) { + int hIndex = 0; + struct item_data* retVal___ = NULL; + if( HPMHooks.count.HP_itemdb_search_name_pre ) { + struct item_data* (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_search_name_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_search_name_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.search_name(name); + } + if( HPMHooks.count.HP_itemdb_search_name_post ) { + struct item_data* (*postHookFunc) (struct item_data* retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_search_name_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_search_name_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +int HP_itemdb_search_name_array(struct item_data **data, int size, const char *str, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_search_name_array_pre ) { + int (*preHookFunc) (struct item_data **data, int *size, const char *str, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_search_name_array_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_search_name_array_pre[hIndex].func; + retVal___ = preHookFunc(data, &size, str, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.search_name_array(data, size, str, flag); + } + if( HPMHooks.count.HP_itemdb_search_name_array_post ) { + int (*postHookFunc) (int retVal___, struct item_data **data, int *size, const char *str, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_search_name_array_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_search_name_array_post[hIndex].func; + retVal___ = postHookFunc(retVal___, data, &size, str, &flag); + } + } + return retVal___; +} +struct item_data* HP_itemdb_load(int nameid) { + int hIndex = 0; + struct item_data* retVal___ = NULL; + if( HPMHooks.count.HP_itemdb_load_pre ) { + struct item_data* (*preHookFunc) (int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_load_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_load_pre[hIndex].func; + retVal___ = preHookFunc(&nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.load(nameid); + } + if( HPMHooks.count.HP_itemdb_load_post ) { + struct item_data* (*postHookFunc) (struct item_data* retVal___, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_load_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_load_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &nameid); + } + } + return retVal___; +} +struct item_data* HP_itemdb_search(int nameid) { + int hIndex = 0; + struct item_data* retVal___ = NULL; + if( HPMHooks.count.HP_itemdb_search_pre ) { + struct item_data* (*preHookFunc) (int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_search_pre[hIndex].func; + retVal___ = preHookFunc(&nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.search(nameid); + } + if( HPMHooks.count.HP_itemdb_search_post ) { + struct item_data* (*postHookFunc) (struct item_data* retVal___, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &nameid); + } + } + return retVal___; +} +int HP_itemdb_parse_dbrow(char **str, const char *source, int line, int scriptopt) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_parse_dbrow_pre ) { + int (*preHookFunc) (char **str, const char *source, int *line, int *scriptopt); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_parse_dbrow_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_parse_dbrow_pre[hIndex].func; + retVal___ = preHookFunc(str, source, &line, &scriptopt); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.parse_dbrow(str, source, line, scriptopt); + } + if( HPMHooks.count.HP_itemdb_parse_dbrow_post ) { + int (*postHookFunc) (int retVal___, char **str, const char *source, int *line, int *scriptopt); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_parse_dbrow_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_parse_dbrow_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, source, &line, &scriptopt); + } + } + return retVal___; +} +struct item_data* HP_itemdb_exists(int nameid) { + int hIndex = 0; + struct item_data* retVal___ = NULL; + if( HPMHooks.count.HP_itemdb_exists_pre ) { + struct item_data* (*preHookFunc) (int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_exists_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_exists_pre[hIndex].func; + retVal___ = preHookFunc(&nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.exists(nameid); + } + if( HPMHooks.count.HP_itemdb_exists_post ) { + struct item_data* (*postHookFunc) (struct item_data* retVal___, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_exists_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_exists_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &nameid); + } + } + return retVal___; +} +bool HP_itemdb_in_group(struct item_group *group, int nameid) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_itemdb_in_group_pre ) { + bool (*preHookFunc) (struct item_group *group, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_in_group_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_in_group_pre[hIndex].func; + retVal___ = preHookFunc(group, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.in_group(group, nameid); + } + if( HPMHooks.count.HP_itemdb_in_group_post ) { + bool (*postHookFunc) (bool retVal___, struct item_group *group, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_in_group_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_in_group_post[hIndex].func; + retVal___ = postHookFunc(retVal___, group, &nameid); + } + } + return retVal___; +} +int HP_itemdb_group_item(struct item_group *group) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_group_item_pre ) { + int (*preHookFunc) (struct item_group *group); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_group_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_group_item_pre[hIndex].func; + retVal___ = preHookFunc(group); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.group_item(group); + } + if( HPMHooks.count.HP_itemdb_group_item_post ) { + int (*postHookFunc) (int retVal___, struct item_group *group); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_group_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_group_item_post[hIndex].func; + retVal___ = postHookFunc(retVal___, group); + } + } + return retVal___; +} +int HP_itemdb_chain_item(unsigned short chain_id, int *rate) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_chain_item_pre ) { + int (*preHookFunc) (unsigned short *chain_id, int *rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_chain_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_chain_item_pre[hIndex].func; + retVal___ = preHookFunc(&chain_id, rate); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.chain_item(chain_id, rate); + } + if( HPMHooks.count.HP_itemdb_chain_item_post ) { + int (*postHookFunc) (int retVal___, unsigned short *chain_id, int *rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_chain_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_chain_item_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &chain_id, rate); + } + } + return retVal___; +} +void HP_itemdb_package_item(struct map_session_data *sd, struct item_package *package) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_package_item_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct item_package *package); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_package_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_package_item_pre[hIndex].func; + preHookFunc(sd, package); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.package_item(sd, package); + } + if( HPMHooks.count.HP_itemdb_package_item_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct item_package *package); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_package_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_package_item_post[hIndex].func; + postHookFunc(sd, package); + } + } + return; +} +int HP_itemdb_searchname_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_searchname_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_searchname_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_itemdb_searchname_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.itemdb.searchname_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_itemdb_searchname_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_searchname_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_itemdb_searchname_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_itemdb_searchname_array_sub(DBKey key, DBData data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_searchname_array_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_searchname_array_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_itemdb_searchname_array_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, &data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.itemdb.searchname_array_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_itemdb_searchname_array_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_searchname_array_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_itemdb_searchname_array_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, &data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_itemdb_searchrandomid(struct item_group *group) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_searchrandomid_pre ) { + int (*preHookFunc) (struct item_group *group); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_searchrandomid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_searchrandomid_pre[hIndex].func; + retVal___ = preHookFunc(group); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.searchrandomid(group); + } + if( HPMHooks.count.HP_itemdb_searchrandomid_post ) { + int (*postHookFunc) (int retVal___, struct item_group *group); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_searchrandomid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_searchrandomid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, group); + } + } + return retVal___; +} +const char* HP_itemdb_typename(int type) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_itemdb_typename_pre ) { + const char* (*preHookFunc) (int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_typename_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_typename_pre[hIndex].func; + retVal___ = preHookFunc(&type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.typename(type); + } + if( HPMHooks.count.HP_itemdb_typename_post ) { + const char* (*postHookFunc) (const char* retVal___, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_typename_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_typename_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &type); + } + } + return retVal___; +} +void HP_itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_jobid2mapid_pre ) { + void (*preHookFunc) (unsigned int *bclass, unsigned int *jobmask); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_jobid2mapid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_jobid2mapid_pre[hIndex].func; + preHookFunc(bclass, &jobmask); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.jobid2mapid(bclass, jobmask); + } + if( HPMHooks.count.HP_itemdb_jobid2mapid_post ) { + void (*postHookFunc) (unsigned int *bclass, unsigned int *jobmask); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_jobid2mapid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_jobid2mapid_post[hIndex].func; + postHookFunc(bclass, &jobmask); + } + } + return; +} +void HP_itemdb_create_dummy_data(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_create_dummy_data_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_create_dummy_data_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_create_dummy_data_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.create_dummy_data(); + } + if( HPMHooks.count.HP_itemdb_create_dummy_data_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_create_dummy_data_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_create_dummy_data_post[hIndex].func; + postHookFunc(); + } + } + return; +} +struct item_data* HP_itemdb_create_item_data(int nameid) { + int hIndex = 0; + struct item_data* retVal___ = NULL; + if( HPMHooks.count.HP_itemdb_create_item_data_pre ) { + struct item_data* (*preHookFunc) (int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_create_item_data_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_create_item_data_pre[hIndex].func; + retVal___ = preHookFunc(&nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.create_item_data(nameid); + } + if( HPMHooks.count.HP_itemdb_create_item_data_post ) { + struct item_data* (*postHookFunc) (struct item_data* retVal___, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_create_item_data_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_create_item_data_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &nameid); + } + } + return retVal___; +} +int HP_itemdb_isequip(int nameid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_isequip_pre ) { + int (*preHookFunc) (int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isequip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_isequip_pre[hIndex].func; + retVal___ = preHookFunc(&nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.isequip(nameid); + } + if( HPMHooks.count.HP_itemdb_isequip_post ) { + int (*postHookFunc) (int retVal___, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isequip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_isequip_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &nameid); + } + } + return retVal___; +} +int HP_itemdb_isequip2(struct item_data *data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_isequip2_pre ) { + int (*preHookFunc) (struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isequip2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_isequip2_pre[hIndex].func; + retVal___ = preHookFunc(data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.isequip2(data); + } + if( HPMHooks.count.HP_itemdb_isequip2_post ) { + int (*postHookFunc) (int retVal___, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isequip2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_isequip2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, data); + } + } + return retVal___; +} +int HP_itemdb_isstackable(int nameid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_isstackable_pre ) { + int (*preHookFunc) (int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isstackable_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_isstackable_pre[hIndex].func; + retVal___ = preHookFunc(&nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.isstackable(nameid); + } + if( HPMHooks.count.HP_itemdb_isstackable_post ) { + int (*postHookFunc) (int retVal___, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isstackable_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_isstackable_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &nameid); + } + } + return retVal___; +} +int HP_itemdb_isstackable2(struct item_data *data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_isstackable2_pre ) { + int (*preHookFunc) (struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isstackable2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_isstackable2_pre[hIndex].func; + retVal___ = preHookFunc(data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.isstackable2(data); + } + if( HPMHooks.count.HP_itemdb_isstackable2_post ) { + int (*postHookFunc) (int retVal___, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isstackable2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_isstackable2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, data); + } + } + return retVal___; +} +int HP_itemdb_isdropable_sub(struct item_data *item, int gmlv, int unused) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_isdropable_sub_pre ) { + int (*preHookFunc) (struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isdropable_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_isdropable_sub_pre[hIndex].func; + retVal___ = preHookFunc(item, &gmlv, &unused); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.isdropable_sub(item, gmlv, unused); + } + if( HPMHooks.count.HP_itemdb_isdropable_sub_post ) { + int (*postHookFunc) (int retVal___, struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isdropable_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_isdropable_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item, &gmlv, &unused); + } + } + return retVal___; +} +int HP_itemdb_cantrade_sub(struct item_data *item, int gmlv, int gmlv2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_cantrade_sub_pre ) { + int (*preHookFunc) (struct item_data *item, int *gmlv, int *gmlv2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_cantrade_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_cantrade_sub_pre[hIndex].func; + retVal___ = preHookFunc(item, &gmlv, &gmlv2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.cantrade_sub(item, gmlv, gmlv2); + } + if( HPMHooks.count.HP_itemdb_cantrade_sub_post ) { + int (*postHookFunc) (int retVal___, struct item_data *item, int *gmlv, int *gmlv2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_cantrade_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_cantrade_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item, &gmlv, &gmlv2); + } + } + return retVal___; +} +int HP_itemdb_canpartnertrade_sub(struct item_data *item, int gmlv, int gmlv2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_canpartnertrade_sub_pre ) { + int (*preHookFunc) (struct item_data *item, int *gmlv, int *gmlv2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_canpartnertrade_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_canpartnertrade_sub_pre[hIndex].func; + retVal___ = preHookFunc(item, &gmlv, &gmlv2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.canpartnertrade_sub(item, gmlv, gmlv2); + } + if( HPMHooks.count.HP_itemdb_canpartnertrade_sub_post ) { + int (*postHookFunc) (int retVal___, struct item_data *item, int *gmlv, int *gmlv2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_canpartnertrade_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_canpartnertrade_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item, &gmlv, &gmlv2); + } + } + return retVal___; +} +int HP_itemdb_cansell_sub(struct item_data *item, int gmlv, int unused) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_cansell_sub_pre ) { + int (*preHookFunc) (struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_cansell_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_cansell_sub_pre[hIndex].func; + retVal___ = preHookFunc(item, &gmlv, &unused); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.cansell_sub(item, gmlv, unused); + } + if( HPMHooks.count.HP_itemdb_cansell_sub_post ) { + int (*postHookFunc) (int retVal___, struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_cansell_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_cansell_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item, &gmlv, &unused); + } + } + return retVal___; +} +int HP_itemdb_cancartstore_sub(struct item_data *item, int gmlv, int unused) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_cancartstore_sub_pre ) { + int (*preHookFunc) (struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_cancartstore_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_cancartstore_sub_pre[hIndex].func; + retVal___ = preHookFunc(item, &gmlv, &unused); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.cancartstore_sub(item, gmlv, unused); + } + if( HPMHooks.count.HP_itemdb_cancartstore_sub_post ) { + int (*postHookFunc) (int retVal___, struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_cancartstore_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_cancartstore_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item, &gmlv, &unused); + } + } + return retVal___; +} +int HP_itemdb_canstore_sub(struct item_data *item, int gmlv, int unused) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_canstore_sub_pre ) { + int (*preHookFunc) (struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_canstore_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_canstore_sub_pre[hIndex].func; + retVal___ = preHookFunc(item, &gmlv, &unused); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.canstore_sub(item, gmlv, unused); + } + if( HPMHooks.count.HP_itemdb_canstore_sub_post ) { + int (*postHookFunc) (int retVal___, struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_canstore_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_canstore_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item, &gmlv, &unused); + } + } + return retVal___; +} +int HP_itemdb_canguildstore_sub(struct item_data *item, int gmlv, int unused) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_canguildstore_sub_pre ) { + int (*preHookFunc) (struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_canguildstore_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_canguildstore_sub_pre[hIndex].func; + retVal___ = preHookFunc(item, &gmlv, &unused); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.canguildstore_sub(item, gmlv, unused); + } + if( HPMHooks.count.HP_itemdb_canguildstore_sub_post ) { + int (*postHookFunc) (int retVal___, struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_canguildstore_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_canguildstore_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item, &gmlv, &unused); + } + } + return retVal___; +} +int HP_itemdb_canmail_sub(struct item_data *item, int gmlv, int unused) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_canmail_sub_pre ) { + int (*preHookFunc) (struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_canmail_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_canmail_sub_pre[hIndex].func; + retVal___ = preHookFunc(item, &gmlv, &unused); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.canmail_sub(item, gmlv, unused); + } + if( HPMHooks.count.HP_itemdb_canmail_sub_post ) { + int (*postHookFunc) (int retVal___, struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_canmail_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_canmail_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item, &gmlv, &unused); + } + } + return retVal___; +} +int HP_itemdb_canauction_sub(struct item_data *item, int gmlv, int unused) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_canauction_sub_pre ) { + int (*preHookFunc) (struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_canauction_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_canauction_sub_pre[hIndex].func; + retVal___ = preHookFunc(item, &gmlv, &unused); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.canauction_sub(item, gmlv, unused); + } + if( HPMHooks.count.HP_itemdb_canauction_sub_post ) { + int (*postHookFunc) (int retVal___, struct item_data *item, int *gmlv, int *unused); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_canauction_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_canauction_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item, &gmlv, &unused); + } + } + return retVal___; +} +int HP_itemdb_isrestricted(struct item *item, int gmlv, int gmlv2, int ( *func ) (struct item_data *, int, int)) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_isrestricted_pre ) { + int (*preHookFunc) (struct item *item, int *gmlv, int *gmlv2, int ( *func ) (struct item_data *, int, int)); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isrestricted_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_isrestricted_pre[hIndex].func; + retVal___ = preHookFunc(item, &gmlv, &gmlv2, func); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.isrestricted(item, gmlv, gmlv2, func); + } + if( HPMHooks.count.HP_itemdb_isrestricted_post ) { + int (*postHookFunc) (int retVal___, struct item *item, int *gmlv, int *gmlv2, int ( *func ) (struct item_data *, int, int)); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isrestricted_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_isrestricted_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item, &gmlv, &gmlv2, func); + } + } + return retVal___; +} +int HP_itemdb_isidentified(int nameid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_isidentified_pre ) { + int (*preHookFunc) (int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isidentified_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_isidentified_pre[hIndex].func; + retVal___ = preHookFunc(&nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.isidentified(nameid); + } + if( HPMHooks.count.HP_itemdb_isidentified_post ) { + int (*postHookFunc) (int retVal___, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isidentified_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_isidentified_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &nameid); + } + } + return retVal___; +} +int HP_itemdb_isidentified2(struct item_data *data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_isidentified2_pre ) { + int (*preHookFunc) (struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isidentified2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_isidentified2_pre[hIndex].func; + retVal___ = preHookFunc(data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.isidentified2(data); + } + if( HPMHooks.count.HP_itemdb_isidentified2_post ) { + int (*postHookFunc) (int retVal___, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_isidentified2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_isidentified2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, data); + } + } + return retVal___; +} +bool HP_itemdb_read_itemavail(char *str[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_itemdb_read_itemavail_pre ) { + bool (*preHookFunc) (char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_itemavail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_itemavail_pre[hIndex].func; + retVal___ = preHookFunc(str, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.read_itemavail(str, columns, current); + } + if( HPMHooks.count.HP_itemdb_read_itemavail_post ) { + bool (*postHookFunc) (bool retVal___, char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_itemavail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_itemavail_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &columns, ¤t); + } + } + return retVal___; +} +bool HP_itemdb_read_itemtrade(char *str[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_itemdb_read_itemtrade_pre ) { + bool (*preHookFunc) (char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_itemtrade_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_itemtrade_pre[hIndex].func; + retVal___ = preHookFunc(str, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.read_itemtrade(str, columns, current); + } + if( HPMHooks.count.HP_itemdb_read_itemtrade_post ) { + bool (*postHookFunc) (bool retVal___, char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_itemtrade_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_itemtrade_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &columns, ¤t); + } + } + return retVal___; +} +bool HP_itemdb_read_itemdelay(char *str[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_itemdb_read_itemdelay_pre ) { + bool (*preHookFunc) (char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_itemdelay_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_itemdelay_pre[hIndex].func; + retVal___ = preHookFunc(str, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.read_itemdelay(str, columns, current); + } + if( HPMHooks.count.HP_itemdb_read_itemdelay_post ) { + bool (*postHookFunc) (bool retVal___, char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_itemdelay_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_itemdelay_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &columns, ¤t); + } + } + return retVal___; +} +bool HP_itemdb_read_stack(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_itemdb_read_stack_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_stack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_stack_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.read_stack(fields, columns, current); + } + if( HPMHooks.count.HP_itemdb_read_stack_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_stack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_stack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +bool HP_itemdb_read_buyingstore(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_itemdb_read_buyingstore_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_buyingstore_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_buyingstore_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.read_buyingstore(fields, columns, current); + } + if( HPMHooks.count.HP_itemdb_read_buyingstore_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_buyingstore_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_buyingstore_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +bool HP_itemdb_read_nouse(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_itemdb_read_nouse_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_nouse_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_nouse_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.read_nouse(fields, columns, current); + } + if( HPMHooks.count.HP_itemdb_read_nouse_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_nouse_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_nouse_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +int HP_itemdb_combo_split_atoi(char *str, int *val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_combo_split_atoi_pre ) { + int (*preHookFunc) (char *str, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_combo_split_atoi_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_combo_split_atoi_pre[hIndex].func; + retVal___ = preHookFunc(str, val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.combo_split_atoi(str, val); + } + if( HPMHooks.count.HP_itemdb_combo_split_atoi_post ) { + int (*postHookFunc) (int retVal___, char *str, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_combo_split_atoi_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_combo_split_atoi_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, val); + } + } + return retVal___; +} +void HP_itemdb_read_combos(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_read_combos_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_combos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_combos_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.read_combos(); + } + if( HPMHooks.count.HP_itemdb_read_combos_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_combos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_combos_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_itemdb_gendercheck(struct item_data *id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_gendercheck_pre ) { + int (*preHookFunc) (struct item_data *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_gendercheck_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_gendercheck_pre[hIndex].func; + retVal___ = preHookFunc(id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.gendercheck(id); + } + if( HPMHooks.count.HP_itemdb_gendercheck_post ) { + int (*postHookFunc) (int retVal___, struct item_data *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_gendercheck_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_gendercheck_post[hIndex].func; + retVal___ = postHookFunc(retVal___, id); + } + } + return retVal___; +} +void HP_itemdb_re_split_atoi(char *str, int *atk, int *matk) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_re_split_atoi_pre ) { + void (*preHookFunc) (char *str, int *atk, int *matk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_re_split_atoi_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_re_split_atoi_pre[hIndex].func; + preHookFunc(str, atk, matk); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.re_split_atoi(str, atk, matk); + } + if( HPMHooks.count.HP_itemdb_re_split_atoi_post ) { + void (*postHookFunc) (char *str, int *atk, int *matk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_re_split_atoi_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_re_split_atoi_post[hIndex].func; + postHookFunc(str, atk, matk); + } + } + return; +} +int HP_itemdb_readdb(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_readdb_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_readdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_readdb_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.readdb(); + } + if( HPMHooks.count.HP_itemdb_readdb_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_readdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_readdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_itemdb_read_sqldb(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_read_sqldb_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_sqldb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_sqldb_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.read_sqldb(); + } + if( HPMHooks.count.HP_itemdb_read_sqldb_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_sqldb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_sqldb_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +uint64 HP_itemdb_unique_id(int8 flag, int64 value) { + int hIndex = 0; + uint64 retVal___; + memset(&retVal___, '\0', sizeof(uint64)); + if( HPMHooks.count.HP_itemdb_unique_id_pre ) { + uint64 (*preHookFunc) (int8 *flag, int64 *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_unique_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_unique_id_pre[hIndex].func; + retVal___ = preHookFunc(&flag, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.unique_id(flag, value); + } + if( HPMHooks.count.HP_itemdb_unique_id_post ) { + uint64 (*postHookFunc) (uint64 retVal___, int8 *flag, int64 *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_unique_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_unique_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &flag, &value); + } + } + return retVal___; +} +int HP_itemdb_uid_load(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_uid_load_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_uid_load_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_uid_load_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.itemdb.uid_load(); + } + if( HPMHooks.count.HP_itemdb_uid_load_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_uid_load_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_uid_load_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_itemdb_read(void) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_read_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_read_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.read(); + } + if( HPMHooks.count.HP_itemdb_read_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_read_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_itemdb_destroy_item_data(struct item_data *self, int free_self) { + int hIndex = 0; + if( HPMHooks.count.HP_itemdb_destroy_item_data_pre ) { + void (*preHookFunc) (struct item_data *self, int *free_self); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_destroy_item_data_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_itemdb_destroy_item_data_pre[hIndex].func; + preHookFunc(self, &free_self); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.itemdb.destroy_item_data(self, free_self); + } + if( HPMHooks.count.HP_itemdb_destroy_item_data_post ) { + void (*postHookFunc) (struct item_data *self, int *free_self); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_destroy_item_data_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_itemdb_destroy_item_data_post[hIndex].func; + postHookFunc(self, &free_self); + } + } + return; +} +int HP_itemdb_final_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_itemdb_final_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_final_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_itemdb_final_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.itemdb.final_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_itemdb_final_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_itemdb_final_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_itemdb_final_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +/* logs */ +void HP_logs_pick_pc(struct map_session_data *sd, e_log_pick_type type, int amount, struct item *itm, struct item_data *data) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_pick_pc_pre ) { + void (*preHookFunc) (struct map_session_data *sd, e_log_pick_type *type, int *amount, struct item *itm, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_pick_pc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_pick_pc_pre[hIndex].func; + preHookFunc(sd, &type, &amount, itm, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.pick_pc(sd, type, amount, itm, data); + } + if( HPMHooks.count.HP_logs_pick_pc_post ) { + void (*postHookFunc) (struct map_session_data *sd, e_log_pick_type *type, int *amount, struct item *itm, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_pick_pc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_pick_pc_post[hIndex].func; + postHookFunc(sd, &type, &amount, itm, data); + } + } + return; +} +void HP_logs_pick_mob(struct mob_data *md, e_log_pick_type type, int amount, struct item *itm, struct item_data *data) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_pick_mob_pre ) { + void (*preHookFunc) (struct mob_data *md, e_log_pick_type *type, int *amount, struct item *itm, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_pick_mob_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_pick_mob_pre[hIndex].func; + preHookFunc(md, &type, &amount, itm, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.pick_mob(md, type, amount, itm, data); + } + if( HPMHooks.count.HP_logs_pick_mob_post ) { + void (*postHookFunc) (struct mob_data *md, e_log_pick_type *type, int *amount, struct item *itm, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_pick_mob_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_pick_mob_post[hIndex].func; + postHookFunc(md, &type, &amount, itm, data); + } + } + return; +} +void HP_logs_zeny(struct map_session_data *sd, e_log_pick_type type, struct map_session_data *src_sd, int amount) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_zeny_pre ) { + void (*preHookFunc) (struct map_session_data *sd, e_log_pick_type *type, struct map_session_data *src_sd, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_zeny_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_zeny_pre[hIndex].func; + preHookFunc(sd, &type, src_sd, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.zeny(sd, type, src_sd, amount); + } + if( HPMHooks.count.HP_logs_zeny_post ) { + void (*postHookFunc) (struct map_session_data *sd, e_log_pick_type *type, struct map_session_data *src_sd, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_zeny_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_zeny_post[hIndex].func; + postHookFunc(sd, &type, src_sd, &amount); + } + } + return; +} +void HP_logs_npc(struct map_session_data *sd, const char *message) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_npc_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_npc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_npc_pre[hIndex].func; + preHookFunc(sd, message); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.npc(sd, message); + } + if( HPMHooks.count.HP_logs_npc_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_npc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_npc_post[hIndex].func; + postHookFunc(sd, message); + } + } + return; +} +void HP_logs_chat(e_log_chat_type type, int type_id, int src_charid, int src_accid, const char *mapname, int x, int y, const char *dst_charname, const char *message) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_chat_pre ) { + void (*preHookFunc) (e_log_chat_type *type, int *type_id, int *src_charid, int *src_accid, const char *mapname, int *x, int *y, const char *dst_charname, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_chat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_chat_pre[hIndex].func; + preHookFunc(&type, &type_id, &src_charid, &src_accid, mapname, &x, &y, dst_charname, message); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.chat(type, type_id, src_charid, src_accid, mapname, x, y, dst_charname, message); + } + if( HPMHooks.count.HP_logs_chat_post ) { + void (*postHookFunc) (e_log_chat_type *type, int *type_id, int *src_charid, int *src_accid, const char *mapname, int *x, int *y, const char *dst_charname, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_chat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_chat_post[hIndex].func; + postHookFunc(&type, &type_id, &src_charid, &src_accid, mapname, &x, &y, dst_charname, message); + } + } + return; +} +void HP_logs_atcommand(struct map_session_data *sd, const char *message) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_atcommand_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_atcommand_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_atcommand_pre[hIndex].func; + preHookFunc(sd, message); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.atcommand(sd, message); + } + if( HPMHooks.count.HP_logs_atcommand_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_atcommand_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_atcommand_post[hIndex].func; + postHookFunc(sd, message); + } + } + return; +} +void HP_logs_branch(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_branch_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_branch_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_branch_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.branch(sd); + } + if( HPMHooks.count.HP_logs_branch_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_branch_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_branch_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_logs_mvpdrop(struct map_session_data *sd, int monster_id, int *log_mvp) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_mvpdrop_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *monster_id, int *log_mvp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_mvpdrop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_mvpdrop_pre[hIndex].func; + preHookFunc(sd, &monster_id, log_mvp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.mvpdrop(sd, monster_id, log_mvp); + } + if( HPMHooks.count.HP_logs_mvpdrop_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *monster_id, int *log_mvp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_mvpdrop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_mvpdrop_post[hIndex].func; + postHookFunc(sd, &monster_id, log_mvp); + } + } + return; +} +void HP_logs_pick_sub(int id, int16 m, e_log_pick_type type, int amount, struct item *itm, struct item_data *data) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_pick_sub_pre ) { + void (*preHookFunc) (int *id, int16 *m, e_log_pick_type *type, int *amount, struct item *itm, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_pick_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_pick_sub_pre[hIndex].func; + preHookFunc(&id, &m, &type, &amount, itm, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.pick_sub(id, m, type, amount, itm, data); + } + if( HPMHooks.count.HP_logs_pick_sub_post ) { + void (*postHookFunc) (int *id, int16 *m, e_log_pick_type *type, int *amount, struct item *itm, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_pick_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_pick_sub_post[hIndex].func; + postHookFunc(&id, &m, &type, &amount, itm, data); + } + } + return; +} +void HP_logs_zeny_sub(struct map_session_data *sd, e_log_pick_type type, struct map_session_data *src_sd, int amount) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_zeny_sub_pre ) { + void (*preHookFunc) (struct map_session_data *sd, e_log_pick_type *type, struct map_session_data *src_sd, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_zeny_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_zeny_sub_pre[hIndex].func; + preHookFunc(sd, &type, src_sd, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.zeny_sub(sd, type, src_sd, amount); + } + if( HPMHooks.count.HP_logs_zeny_sub_post ) { + void (*postHookFunc) (struct map_session_data *sd, e_log_pick_type *type, struct map_session_data *src_sd, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_zeny_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_zeny_sub_post[hIndex].func; + postHookFunc(sd, &type, src_sd, &amount); + } + } + return; +} +void HP_logs_npc_sub(struct map_session_data *sd, const char *message) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_npc_sub_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_npc_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_npc_sub_pre[hIndex].func; + preHookFunc(sd, message); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.npc_sub(sd, message); + } + if( HPMHooks.count.HP_logs_npc_sub_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_npc_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_npc_sub_post[hIndex].func; + postHookFunc(sd, message); + } + } + return; +} +void HP_logs_chat_sub(e_log_chat_type type, int type_id, int src_charid, int src_accid, const char *mapname, int x, int y, const char *dst_charname, const char *message) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_chat_sub_pre ) { + void (*preHookFunc) (e_log_chat_type *type, int *type_id, int *src_charid, int *src_accid, const char *mapname, int *x, int *y, const char *dst_charname, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_chat_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_chat_sub_pre[hIndex].func; + preHookFunc(&type, &type_id, &src_charid, &src_accid, mapname, &x, &y, dst_charname, message); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.chat_sub(type, type_id, src_charid, src_accid, mapname, x, y, dst_charname, message); + } + if( HPMHooks.count.HP_logs_chat_sub_post ) { + void (*postHookFunc) (e_log_chat_type *type, int *type_id, int *src_charid, int *src_accid, const char *mapname, int *x, int *y, const char *dst_charname, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_chat_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_chat_sub_post[hIndex].func; + postHookFunc(&type, &type_id, &src_charid, &src_accid, mapname, &x, &y, dst_charname, message); + } + } + return; +} +void HP_logs_atcommand_sub(struct map_session_data *sd, const char *message) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_atcommand_sub_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_atcommand_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_atcommand_sub_pre[hIndex].func; + preHookFunc(sd, message); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.atcommand_sub(sd, message); + } + if( HPMHooks.count.HP_logs_atcommand_sub_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *message); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_atcommand_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_atcommand_sub_post[hIndex].func; + postHookFunc(sd, message); + } + } + return; +} +void HP_logs_branch_sub(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_branch_sub_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_branch_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_branch_sub_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.branch_sub(sd); + } + if( HPMHooks.count.HP_logs_branch_sub_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_branch_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_branch_sub_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_logs_mvpdrop_sub(struct map_session_data *sd, int monster_id, int *log_mvp) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_mvpdrop_sub_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *monster_id, int *log_mvp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_mvpdrop_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_mvpdrop_sub_pre[hIndex].func; + preHookFunc(sd, &monster_id, log_mvp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.mvpdrop_sub(sd, monster_id, log_mvp); + } + if( HPMHooks.count.HP_logs_mvpdrop_sub_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *monster_id, int *log_mvp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_mvpdrop_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_mvpdrop_sub_post[hIndex].func; + postHookFunc(sd, &monster_id, log_mvp); + } + } + return; +} +int HP_logs_config_read(const char *cfgName) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_logs_config_read_pre ) { + int (*preHookFunc) (const char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_config_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_config_read_pre[hIndex].func; + retVal___ = preHookFunc(cfgName); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.logs.config_read(cfgName); + } + if( HPMHooks.count.HP_logs_config_read_post ) { + int (*postHookFunc) (int retVal___, const char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_config_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_config_read_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cfgName); + } + } + return retVal___; +} +void HP_logs_config_done(void) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_config_done_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_config_done_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_config_done_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.config_done(); + } + if( HPMHooks.count.HP_logs_config_done_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_config_done_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_config_done_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_logs_sql_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_sql_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_sql_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_sql_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.sql_init(); + } + if( HPMHooks.count.HP_logs_sql_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_sql_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_sql_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_logs_sql_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_logs_sql_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_sql_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_sql_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.logs.sql_final(); + } + if( HPMHooks.count.HP_logs_sql_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_sql_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_sql_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +char HP_logs_picktype2char(e_log_pick_type type) { + int hIndex = 0; + char retVal___; + memset(&retVal___, '\0', sizeof(char)); + if( HPMHooks.count.HP_logs_picktype2char_pre ) { + char (*preHookFunc) (e_log_pick_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_picktype2char_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_picktype2char_pre[hIndex].func; + retVal___ = preHookFunc(&type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.logs.picktype2char(type); + } + if( HPMHooks.count.HP_logs_picktype2char_post ) { + char (*postHookFunc) (char retVal___, e_log_pick_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_picktype2char_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_picktype2char_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &type); + } + } + return retVal___; +} +char HP_logs_chattype2char(e_log_chat_type type) { + int hIndex = 0; + char retVal___; + memset(&retVal___, '\0', sizeof(char)); + if( HPMHooks.count.HP_logs_chattype2char_pre ) { + char (*preHookFunc) (e_log_chat_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_chattype2char_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_chattype2char_pre[hIndex].func; + retVal___ = preHookFunc(&type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.logs.chattype2char(type); + } + if( HPMHooks.count.HP_logs_chattype2char_post ) { + char (*postHookFunc) (char retVal___, e_log_chat_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_chattype2char_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_chattype2char_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &type); + } + } + return retVal___; +} +bool HP_logs_should_log_item(int nameid, int amount, int refine, struct item_data *id) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_logs_should_log_item_pre ) { + bool (*preHookFunc) (int *nameid, int *amount, int *refine, struct item_data *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_should_log_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_logs_should_log_item_pre[hIndex].func; + retVal___ = preHookFunc(&nameid, &amount, &refine, id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.logs.should_log_item(nameid, amount, refine, id); + } + if( HPMHooks.count.HP_logs_should_log_item_post ) { + bool (*postHookFunc) (bool retVal___, int *nameid, int *amount, int *refine, struct item_data *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_logs_should_log_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_logs_should_log_item_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &nameid, &amount, &refine, id); + } + } + return retVal___; +} +/* mail */ +void HP_mail_clear(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_mail_clear_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_clear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mail_clear_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mail.clear(sd); + } + if( HPMHooks.count.HP_mail_clear_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_clear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mail_clear_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_mail_removeitem(struct map_session_data *sd, short flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mail_removeitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, short *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_removeitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mail_removeitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mail.removeitem(sd, flag); + } + if( HPMHooks.count.HP_mail_removeitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, short *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_removeitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mail_removeitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +int HP_mail_removezeny(struct map_session_data *sd, short flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mail_removezeny_pre ) { + int (*preHookFunc) (struct map_session_data *sd, short *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_removezeny_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mail_removezeny_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mail.removezeny(sd, flag); + } + if( HPMHooks.count.HP_mail_removezeny_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, short *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_removezeny_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mail_removezeny_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +unsigned char HP_mail_setitem(struct map_session_data *sd, int idx, int amount) { + int hIndex = 0; + unsigned char retVal___; + memset(&retVal___, '\0', sizeof(unsigned char)); + if( HPMHooks.count.HP_mail_setitem_pre ) { + unsigned char (*preHookFunc) (struct map_session_data *sd, int *idx, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_setitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mail_setitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &idx, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mail.setitem(sd, idx, amount); + } + if( HPMHooks.count.HP_mail_setitem_post ) { + unsigned char (*postHookFunc) (unsigned char retVal___, struct map_session_data *sd, int *idx, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_setitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mail_setitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &idx, &amount); + } + } + return retVal___; +} +bool HP_mail_setattachment(struct map_session_data *sd, struct mail_message *msg) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mail_setattachment_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, struct mail_message *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_setattachment_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mail_setattachment_pre[hIndex].func; + retVal___ = preHookFunc(sd, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mail.setattachment(sd, msg); + } + if( HPMHooks.count.HP_mail_setattachment_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct mail_message *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_setattachment_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mail_setattachment_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, msg); + } + } + return retVal___; +} +void HP_mail_getattachment(struct map_session_data *sd, int zeny, struct item *item) { + int hIndex = 0; + if( HPMHooks.count.HP_mail_getattachment_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *zeny, struct item *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_getattachment_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mail_getattachment_pre[hIndex].func; + preHookFunc(sd, &zeny, item); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mail.getattachment(sd, zeny, item); + } + if( HPMHooks.count.HP_mail_getattachment_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *zeny, struct item *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_getattachment_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mail_getattachment_post[hIndex].func; + postHookFunc(sd, &zeny, item); + } + } + return; +} +int HP_mail_openmail(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mail_openmail_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_openmail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mail_openmail_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mail.openmail(sd); + } + if( HPMHooks.count.HP_mail_openmail_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_openmail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mail_openmail_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +void HP_mail_deliveryfail(struct map_session_data *sd, struct mail_message *msg) { + int hIndex = 0; + if( HPMHooks.count.HP_mail_deliveryfail_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct mail_message *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_deliveryfail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mail_deliveryfail_pre[hIndex].func; + preHookFunc(sd, msg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mail.deliveryfail(sd, msg); + } + if( HPMHooks.count.HP_mail_deliveryfail_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct mail_message *msg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_deliveryfail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mail_deliveryfail_post[hIndex].func; + postHookFunc(sd, msg); + } + } + return; +} +bool HP_mail_invalid_operation(struct map_session_data *sd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mail_invalid_operation_pre ) { + bool (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_invalid_operation_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mail_invalid_operation_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mail.invalid_operation(sd); + } + if( HPMHooks.count.HP_mail_invalid_operation_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mail_invalid_operation_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mail_invalid_operation_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +/* map */ +void HP_map_zone_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_map_zone_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_zone_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.zone_init(); + } + if( HPMHooks.count.HP_map_zone_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_zone_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_map_zone_remove(int m) { + int hIndex = 0; + if( HPMHooks.count.HP_map_zone_remove_pre ) { + void (*preHookFunc) (int *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_zone_remove_pre[hIndex].func; + preHookFunc(&m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.zone_remove(m); + } + if( HPMHooks.count.HP_map_zone_remove_post ) { + void (*postHookFunc) (int *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_zone_remove_post[hIndex].func; + postHookFunc(&m); + } + } + return; +} +void HP_map_zone_apply(int m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath) { + int hIndex = 0; + if( HPMHooks.count.HP_map_zone_apply_pre ) { + void (*preHookFunc) (int *m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_apply_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_zone_apply_pre[hIndex].func; + preHookFunc(&m, zone, start, buffer, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.zone_apply(m, zone, start, buffer, filepath); + } + if( HPMHooks.count.HP_map_zone_apply_post ) { + void (*postHookFunc) (int *m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_apply_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_zone_apply_post[hIndex].func; + postHookFunc(&m, zone, start, buffer, filepath); + } + } + return; +} +void HP_map_zone_change(int m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath) { + int hIndex = 0; + if( HPMHooks.count.HP_map_zone_change_pre ) { + void (*preHookFunc) (int *m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_change_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_zone_change_pre[hIndex].func; + preHookFunc(&m, zone, start, buffer, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.zone_change(m, zone, start, buffer, filepath); + } + if( HPMHooks.count.HP_map_zone_change_post ) { + void (*postHookFunc) (int *m, struct map_zone_data *zone, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_change_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_zone_change_post[hIndex].func; + postHookFunc(&m, zone, start, buffer, filepath); + } + } + return; +} +void HP_map_zone_change2(int m, struct map_zone_data *zone) { + int hIndex = 0; + if( HPMHooks.count.HP_map_zone_change2_pre ) { + void (*preHookFunc) (int *m, struct map_zone_data *zone); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_change2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_zone_change2_pre[hIndex].func; + preHookFunc(&m, zone); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.zone_change2(m, zone); + } + if( HPMHooks.count.HP_map_zone_change2_post ) { + void (*postHookFunc) (int *m, struct map_zone_data *zone); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_change2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_zone_change2_post[hIndex].func; + postHookFunc(&m, zone); + } + } + return; +} +int HP_map_getcell(int16 m, int16 x, int16 y, cell_chk cellchk) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_getcell_pre ) { + int (*preHookFunc) (int16 *m, int16 *x, int16 *y, cell_chk *cellchk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_getcell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_getcell_pre[hIndex].func; + retVal___ = preHookFunc(&m, &x, &y, &cellchk); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.getcell(m, x, y, cellchk); + } + if( HPMHooks.count.HP_map_getcell_post ) { + int (*postHookFunc) (int retVal___, int16 *m, int16 *x, int16 *y, cell_chk *cellchk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_getcell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_getcell_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, &x, &y, &cellchk); + } + } + return retVal___; +} +void HP_map_setgatcell(int16 m, int16 x, int16 y, int gat) { + int hIndex = 0; + if( HPMHooks.count.HP_map_setgatcell_pre ) { + void (*preHookFunc) (int16 *m, int16 *x, int16 *y, int *gat); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_setgatcell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_setgatcell_pre[hIndex].func; + preHookFunc(&m, &x, &y, &gat); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.setgatcell(m, x, y, gat); + } + if( HPMHooks.count.HP_map_setgatcell_post ) { + void (*postHookFunc) (int16 *m, int16 *x, int16 *y, int *gat); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_setgatcell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_setgatcell_post[hIndex].func; + postHookFunc(&m, &x, &y, &gat); + } + } + return; +} +void HP_map_cellfromcache(struct map_data *m) { + int hIndex = 0; + if( HPMHooks.count.HP_map_cellfromcache_pre ) { + void (*preHookFunc) (struct map_data *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_cellfromcache_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_cellfromcache_pre[hIndex].func; + preHookFunc(m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.cellfromcache(m); + } + if( HPMHooks.count.HP_map_cellfromcache_post ) { + void (*postHookFunc) (struct map_data *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_cellfromcache_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_cellfromcache_post[hIndex].func; + postHookFunc(m); + } + } + return; +} +void HP_map_setusers(int p1) { + int hIndex = 0; + if( HPMHooks.count.HP_map_setusers_pre ) { + void (*preHookFunc) (int *p1); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_setusers_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_setusers_pre[hIndex].func; + preHookFunc(&p1); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.setusers(p1); + } + if( HPMHooks.count.HP_map_setusers_post ) { + void (*postHookFunc) (int *p1); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_setusers_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_setusers_post[hIndex].func; + postHookFunc(&p1); + } + } + return; +} +int HP_map_getusers(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_getusers_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_getusers_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_getusers_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.getusers(); + } + if( HPMHooks.count.HP_map_getusers_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_getusers_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_getusers_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_map_usercount(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_usercount_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_usercount_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_usercount_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.usercount(); + } + if( HPMHooks.count.HP_map_usercount_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_usercount_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_usercount_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_map_freeblock(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_freeblock_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_freeblock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_freeblock_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.freeblock(bl); + } + if( HPMHooks.count.HP_map_freeblock_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_freeblock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_freeblock_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_map_freeblock_lock(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_freeblock_lock_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_freeblock_lock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_freeblock_lock_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.freeblock_lock(); + } + if( HPMHooks.count.HP_map_freeblock_lock_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_freeblock_lock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_freeblock_lock_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_map_freeblock_unlock(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_freeblock_unlock_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_freeblock_unlock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_freeblock_unlock_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.freeblock_unlock(); + } + if( HPMHooks.count.HP_map_freeblock_unlock_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_freeblock_unlock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_freeblock_unlock_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_map_addblock(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_addblock_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addblock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_addblock_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.addblock(bl); + } + if( HPMHooks.count.HP_map_addblock_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addblock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_addblock_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_map_delblock(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_delblock_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_delblock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_delblock_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.delblock(bl); + } + if( HPMHooks.count.HP_map_delblock_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_delblock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_delblock_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_moveblock_pre ) { + int (*preHookFunc) (struct block_list *bl, int *x1, int *y1, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_moveblock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_moveblock_pre[hIndex].func; + retVal___ = preHookFunc(bl, &x1, &y1, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.moveblock(bl, x1, y1, tick); + } + if( HPMHooks.count.HP_map_moveblock_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *x1, int *y1, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_moveblock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_moveblock_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &x1, &y1, &tick); + } + } + return retVal___; +} +int HP_map_count_oncell(int16 m, int16 x, int16 y, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_count_oncell_pre ) { + int (*preHookFunc) (int16 *m, int16 *x, int16 *y, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_count_oncell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_count_oncell_pre[hIndex].func; + retVal___ = preHookFunc(&m, &x, &y, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.count_oncell(m, x, y, type); + } + if( HPMHooks.count.HP_map_count_oncell_post ) { + int (*postHookFunc) (int retVal___, int16 *m, int16 *x, int16 *y, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_count_oncell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_count_oncell_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, &x, &y, &type); + } + } + return retVal___; +} +struct skill_unit* HP_map_find_skill_unit_oncell(struct block_list *target, int16 x, int16 y, uint16 skill_id, struct skill_unit *out_unit, int flag) { + int hIndex = 0; + struct skill_unit* retVal___ = NULL; + if( HPMHooks.count.HP_map_find_skill_unit_oncell_pre ) { + struct skill_unit* (*preHookFunc) (struct block_list *target, int16 *x, int16 *y, uint16 *skill_id, struct skill_unit *out_unit, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_find_skill_unit_oncell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_find_skill_unit_oncell_pre[hIndex].func; + retVal___ = preHookFunc(target, &x, &y, &skill_id, out_unit, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.find_skill_unit_oncell(target, x, y, skill_id, out_unit, flag); + } + if( HPMHooks.count.HP_map_find_skill_unit_oncell_post ) { + struct skill_unit* (*postHookFunc) (struct skill_unit* retVal___, struct block_list *target, int16 *x, int16 *y, uint16 *skill_id, struct skill_unit *out_unit, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_find_skill_unit_oncell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_find_skill_unit_oncell_post[hIndex].func; + retVal___ = postHookFunc(retVal___, target, &x, &y, &skill_id, out_unit, &flag); + } + } + return retVal___; +} +int HP_map_get_new_object_id(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_get_new_object_id_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_get_new_object_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_get_new_object_id_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.get_new_object_id(); + } + if( HPMHooks.count.HP_map_get_new_object_id_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_get_new_object_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_get_new_object_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_map_search_freecell(struct block_list *src, int16 m, int16 *x, int16 *y, int16 rx, int16 ry, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_search_freecell_pre ) { + int (*preHookFunc) (struct block_list *src, int16 *m, int16 *x, int16 *y, int16 *rx, int16 *ry, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_search_freecell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_search_freecell_pre[hIndex].func; + retVal___ = preHookFunc(src, &m, x, y, &rx, &ry, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.search_freecell(src, m, x, y, rx, ry, flag); + } + if( HPMHooks.count.HP_map_search_freecell_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, int16 *m, int16 *x, int16 *y, int16 *rx, int16 *ry, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_search_freecell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_search_freecell_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &m, x, y, &rx, &ry, &flag); + } + } + return retVal___; +} +int HP_map_quit(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_quit_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_quit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_quit_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.quit(sd); + } + if( HPMHooks.count.HP_map_quit_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_quit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_quit_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +bool HP_map_addnpc(int16 m, struct npc_data *nd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_map_addnpc_pre ) { + bool (*preHookFunc) (int16 *m, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addnpc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_addnpc_pre[hIndex].func; + retVal___ = preHookFunc(&m, nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.addnpc(m, nd); + } + if( HPMHooks.count.HP_map_addnpc_post ) { + bool (*postHookFunc) (bool retVal___, int16 *m, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addnpc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_addnpc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, nd); + } + } + return retVal___; +} +int HP_map_clearflooritem_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_clearflooritem_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_clearflooritem_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_clearflooritem_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.clearflooritem_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_map_clearflooritem_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_clearflooritem_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_clearflooritem_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_map_removemobs_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_removemobs_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_removemobs_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_removemobs_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.removemobs_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_map_removemobs_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_removemobs_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_removemobs_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_map_clearflooritem(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_map_clearflooritem_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_clearflooritem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_clearflooritem_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.clearflooritem(bl); + } + if( HPMHooks.count.HP_map_clearflooritem_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_clearflooritem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_clearflooritem_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +int HP_map_addflooritem(struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_addflooritem_pre ) { + int (*preHookFunc) (struct item *item_data, int *amount, int16 *m, int16 *x, int16 *y, int *first_charid, int *second_charid, int *third_charid, int *flags); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addflooritem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_addflooritem_pre[hIndex].func; + retVal___ = preHookFunc(item_data, &amount, &m, &x, &y, &first_charid, &second_charid, &third_charid, &flags); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.addflooritem(item_data, amount, m, x, y, first_charid, second_charid, third_charid, flags); + } + if( HPMHooks.count.HP_map_addflooritem_post ) { + int (*postHookFunc) (int retVal___, struct item *item_data, int *amount, int16 *m, int16 *x, int16 *y, int *first_charid, int *second_charid, int *third_charid, int *flags); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addflooritem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_addflooritem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item_data, &amount, &m, &x, &y, &first_charid, &second_charid, &third_charid, &flags); + } + } + return retVal___; +} +void HP_map_addnickdb(int charid, const char *nick) { + int hIndex = 0; + if( HPMHooks.count.HP_map_addnickdb_pre ) { + void (*preHookFunc) (int *charid, const char *nick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addnickdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_addnickdb_pre[hIndex].func; + preHookFunc(&charid, nick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.addnickdb(charid, nick); + } + if( HPMHooks.count.HP_map_addnickdb_post ) { + void (*postHookFunc) (int *charid, const char *nick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addnickdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_addnickdb_post[hIndex].func; + postHookFunc(&charid, nick); + } + } + return; +} +void HP_map_delnickdb(int charid, const char *nick) { + int hIndex = 0; + if( HPMHooks.count.HP_map_delnickdb_pre ) { + void (*preHookFunc) (int *charid, const char *nick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_delnickdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_delnickdb_pre[hIndex].func; + preHookFunc(&charid, nick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.delnickdb(charid, nick); + } + if( HPMHooks.count.HP_map_delnickdb_post ) { + void (*postHookFunc) (int *charid, const char *nick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_delnickdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_delnickdb_post[hIndex].func; + postHookFunc(&charid, nick); + } + } + return; +} +void HP_map_reqnickdb(struct map_session_data *sd, int charid) { + int hIndex = 0; + if( HPMHooks.count.HP_map_reqnickdb_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *charid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_reqnickdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_reqnickdb_pre[hIndex].func; + preHookFunc(sd, &charid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.reqnickdb(sd, charid); + } + if( HPMHooks.count.HP_map_reqnickdb_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *charid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_reqnickdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_reqnickdb_post[hIndex].func; + postHookFunc(sd, &charid); + } + } + return; +} +const char* HP_map_charid2nick(int charid) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_map_charid2nick_pre ) { + const char* (*preHookFunc) (int *charid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_charid2nick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_charid2nick_pre[hIndex].func; + retVal___ = preHookFunc(&charid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.charid2nick(charid); + } + if( HPMHooks.count.HP_map_charid2nick_post ) { + const char* (*postHookFunc) (const char* retVal___, int *charid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_charid2nick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_charid2nick_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &charid); + } + } + return retVal___; +} +struct map_session_data* HP_map_charid2sd(int charid) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_map_charid2sd_pre ) { + struct map_session_data* (*preHookFunc) (int *charid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_charid2sd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_charid2sd_pre[hIndex].func; + retVal___ = preHookFunc(&charid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.charid2sd(charid); + } + if( HPMHooks.count.HP_map_charid2sd_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___, int *charid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_charid2sd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_charid2sd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &charid); + } + } + return retVal___; +} +void HP_map_vforeachpc(int ( *func ) (struct map_session_data *sd, va_list args), va_list args) { + int hIndex = 0; + if( HPMHooks.count.HP_map_vforeachpc_pre ) { + void (*preHookFunc) (int ( *func ) (struct map_session_data *sd, va_list args), va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachpc_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_map_vforeachpc_pre[hIndex].func; + preHookFunc(func, args___copy); + va_end(args___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + va_list args___copy; va_copy(args___copy, args); + HPMHooks.source.map.vforeachpc(func, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_map_vforeachpc_post ) { + void (*postHookFunc) (int ( *func ) (struct map_session_data *sd, va_list args), va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachpc_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_map_vforeachpc_post[hIndex].func; + postHookFunc(func, args___copy); + va_end(args___copy); + } + } + return; +} +void HP_map_vforeachmob(int ( *func ) (struct mob_data *md, va_list args), va_list args) { + int hIndex = 0; + if( HPMHooks.count.HP_map_vforeachmob_pre ) { + void (*preHookFunc) (int ( *func ) (struct mob_data *md, va_list args), va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachmob_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_map_vforeachmob_pre[hIndex].func; + preHookFunc(func, args___copy); + va_end(args___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + va_list args___copy; va_copy(args___copy, args); + HPMHooks.source.map.vforeachmob(func, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_map_vforeachmob_post ) { + void (*postHookFunc) (int ( *func ) (struct mob_data *md, va_list args), va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachmob_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_map_vforeachmob_post[hIndex].func; + postHookFunc(func, args___copy); + va_end(args___copy); + } + } + return; +} +void HP_map_vforeachnpc(int ( *func ) (struct npc_data *nd, va_list args), va_list args) { + int hIndex = 0; + if( HPMHooks.count.HP_map_vforeachnpc_pre ) { + void (*preHookFunc) (int ( *func ) (struct npc_data *nd, va_list args), va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachnpc_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_map_vforeachnpc_pre[hIndex].func; + preHookFunc(func, args___copy); + va_end(args___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + va_list args___copy; va_copy(args___copy, args); + HPMHooks.source.map.vforeachnpc(func, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_map_vforeachnpc_post ) { + void (*postHookFunc) (int ( *func ) (struct npc_data *nd, va_list args), va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachnpc_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_map_vforeachnpc_post[hIndex].func; + postHookFunc(func, args___copy); + va_end(args___copy); + } + } + return; +} +void HP_map_vforeachregen(int ( *func ) (struct block_list *bl, va_list args), va_list args) { + int hIndex = 0; + if( HPMHooks.count.HP_map_vforeachregen_pre ) { + void (*preHookFunc) (int ( *func ) (struct block_list *bl, va_list args), va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachregen_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_map_vforeachregen_pre[hIndex].func; + preHookFunc(func, args___copy); + va_end(args___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + va_list args___copy; va_copy(args___copy, args); + HPMHooks.source.map.vforeachregen(func, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_map_vforeachregen_post ) { + void (*postHookFunc) (int ( *func ) (struct block_list *bl, va_list args), va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachregen_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_map_vforeachregen_post[hIndex].func; + postHookFunc(func, args___copy); + va_end(args___copy); + } + } + return; +} +void HP_map_vforeachiddb(int ( *func ) (struct block_list *bl, va_list args), va_list args) { + int hIndex = 0; + if( HPMHooks.count.HP_map_vforeachiddb_pre ) { + void (*preHookFunc) (int ( *func ) (struct block_list *bl, va_list args), va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachiddb_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_map_vforeachiddb_pre[hIndex].func; + preHookFunc(func, args___copy); + va_end(args___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + va_list args___copy; va_copy(args___copy, args); + HPMHooks.source.map.vforeachiddb(func, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_map_vforeachiddb_post ) { + void (*postHookFunc) (int ( *func ) (struct block_list *bl, va_list args), va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachiddb_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_map_vforeachiddb_post[hIndex].func; + postHookFunc(func, args___copy); + va_end(args___copy); + } + } + return; +} +int HP_map_vforeachinrange(int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 range, int type, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_vforeachinrange_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 *range, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinrange_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_vforeachinrange_pre[hIndex].func; + retVal___ = preHookFunc(func, center, &range, &type, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.vforeachinrange(func, center, range, type, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_vforeachinrange_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 *range, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinrange_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_vforeachinrange_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, center, &range, &type, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_map_vforeachinshootrange(int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 range, int type, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_vforeachinshootrange_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 *range, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinshootrange_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_vforeachinshootrange_pre[hIndex].func; + retVal___ = preHookFunc(func, center, &range, &type, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.vforeachinshootrange(func, center, range, type, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_vforeachinshootrange_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 *range, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinshootrange_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_vforeachinshootrange_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, center, &range, &type, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_map_vforeachinarea(int ( *func ) (struct block_list *, va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int type, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_vforeachinarea_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinarea_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_vforeachinarea_pre[hIndex].func; + retVal___ = preHookFunc(func, &m, &x0, &y0, &x1, &y1, &type, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.vforeachinarea(func, m, x0, y0, x1, y1, type, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_vforeachinarea_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinarea_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_vforeachinarea_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, &m, &x0, &y0, &x1, &y1, &type, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_map_vforcountinrange(int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 range, int count, int type, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_vforcountinrange_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 *range, int *count, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforcountinrange_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_vforcountinrange_pre[hIndex].func; + retVal___ = preHookFunc(func, center, &range, &count, &type, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.vforcountinrange(func, center, range, count, type, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_vforcountinrange_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 *range, int *count, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforcountinrange_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_vforcountinrange_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, center, &range, &count, &type, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_map_vforcountinarea(int ( *func ) (struct block_list *, va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int count, int type, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_vforcountinarea_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, int *count, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforcountinarea_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_vforcountinarea_pre[hIndex].func; + retVal___ = preHookFunc(func, &m, &x0, &y0, &x1, &y1, &count, &type, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.vforcountinarea(func, m, x0, y0, x1, y1, count, type, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_vforcountinarea_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, int *count, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforcountinarea_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_vforcountinarea_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, &m, &x0, &y0, &x1, &y1, &count, &type, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_map_vforeachinmovearea(int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 range, int16 dx, int16 dy, int type, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_vforeachinmovearea_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 *range, int16 *dx, int16 *dy, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinmovearea_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_vforeachinmovearea_pre[hIndex].func; + retVal___ = preHookFunc(func, center, &range, &dx, &dy, &type, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.vforeachinmovearea(func, center, range, dx, dy, type, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_vforeachinmovearea_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), struct block_list *center, int16 *range, int16 *dx, int16 *dy, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinmovearea_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_vforeachinmovearea_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, center, &range, &dx, &dy, &type, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_map_vforeachincell(int ( *func ) (struct block_list *, va_list), int16 m, int16 x, int16 y, int type, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_vforeachincell_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), int16 *m, int16 *x, int16 *y, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachincell_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_vforeachincell_pre[hIndex].func; + retVal___ = preHookFunc(func, &m, &x, &y, &type, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.vforeachincell(func, m, x, y, type, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_vforeachincell_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), int16 *m, int16 *x, int16 *y, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachincell_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_vforeachincell_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, &m, &x, &y, &type, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_map_vforeachinpath(int ( *func ) (struct block_list *, va_list), int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int16 range, int length, int type, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_vforeachinpath_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, int16 *range, int *length, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinpath_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_vforeachinpath_pre[hIndex].func; + retVal___ = preHookFunc(func, &m, &x0, &y0, &x1, &y1, &range, &length, &type, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.vforeachinpath(func, m, x0, y0, x1, y1, range, length, type, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_vforeachinpath_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, int16 *range, int *length, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinpath_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_vforeachinpath_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, &m, &x0, &y0, &x1, &y1, &range, &length, &type, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_map_vforeachinmap(int ( *func ) (struct block_list *, va_list), int16 m, int type, va_list args) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_vforeachinmap_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), int16 *m, int *type, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinmap_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_map_vforeachinmap_pre[hIndex].func; + retVal___ = preHookFunc(func, &m, &type, 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.map.vforeachinmap(func, m, type, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_map_vforeachinmap_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), int16 *m, int *type, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachinmap_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_map_vforeachinmap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, &m, &type, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_map_vforeachininstance(int ( *func ) (struct block_list *, va_list), int16 instance_id, int type, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_vforeachininstance_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), int16 *instance_id, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachininstance_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_vforeachininstance_pre[hIndex].func; + retVal___ = preHookFunc(func, &instance_id, &type, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.vforeachininstance(func, instance_id, type, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_vforeachininstance_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), int16 *instance_id, int *type, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_vforeachininstance_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_vforeachininstance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, &instance_id, &type, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +struct map_session_data* HP_map_id2sd(int id) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_map_id2sd_pre ) { + struct map_session_data* (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2sd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_id2sd_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.id2sd(id); + } + if( HPMHooks.count.HP_map_id2sd_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2sd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_id2sd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +struct mob_data* HP_map_id2md(int id) { + int hIndex = 0; + struct mob_data* retVal___ = NULL; + if( HPMHooks.count.HP_map_id2md_pre ) { + struct mob_data* (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2md_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_id2md_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.id2md(id); + } + if( HPMHooks.count.HP_map_id2md_post ) { + struct mob_data* (*postHookFunc) (struct mob_data* retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2md_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_id2md_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +struct npc_data* HP_map_id2nd(int id) { + int hIndex = 0; + struct npc_data* retVal___ = NULL; + if( HPMHooks.count.HP_map_id2nd_pre ) { + struct npc_data* (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2nd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_id2nd_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.id2nd(id); + } + if( HPMHooks.count.HP_map_id2nd_post ) { + struct npc_data* (*postHookFunc) (struct npc_data* retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2nd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_id2nd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +struct homun_data* HP_map_id2hd(int id) { + int hIndex = 0; + struct homun_data* retVal___ = NULL; + if( HPMHooks.count.HP_map_id2hd_pre ) { + struct homun_data* (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2hd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_id2hd_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.id2hd(id); + } + if( HPMHooks.count.HP_map_id2hd_post ) { + struct homun_data* (*postHookFunc) (struct homun_data* retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2hd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_id2hd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +struct mercenary_data* HP_map_id2mc(int id) { + int hIndex = 0; + struct mercenary_data* retVal___ = NULL; + if( HPMHooks.count.HP_map_id2mc_pre ) { + struct mercenary_data* (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2mc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_id2mc_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.id2mc(id); + } + if( HPMHooks.count.HP_map_id2mc_post ) { + struct mercenary_data* (*postHookFunc) (struct mercenary_data* retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2mc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_id2mc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +struct chat_data* HP_map_id2cd(int id) { + int hIndex = 0; + struct chat_data* retVal___ = NULL; + if( HPMHooks.count.HP_map_id2cd_pre ) { + struct chat_data* (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2cd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_id2cd_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.id2cd(id); + } + if( HPMHooks.count.HP_map_id2cd_post ) { + struct chat_data* (*postHookFunc) (struct chat_data* retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2cd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_id2cd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +struct block_list* HP_map_id2bl(int id) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_map_id2bl_pre ) { + struct block_list* (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2bl_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_id2bl_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.id2bl(id); + } + if( HPMHooks.count.HP_map_id2bl_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2bl_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_id2bl_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +bool HP_map_blid_exists(int id) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_map_blid_exists_pre ) { + bool (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_blid_exists_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_blid_exists_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.blid_exists(id); + } + if( HPMHooks.count.HP_map_blid_exists_post ) { + bool (*postHookFunc) (bool retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_blid_exists_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_blid_exists_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +int16 HP_map_mapindex2mapid(unsigned short mapindex) { + int hIndex = 0; + int16 retVal___; + memset(&retVal___, '\0', sizeof(int16)); + if( HPMHooks.count.HP_map_mapindex2mapid_pre ) { + int16 (*preHookFunc) (unsigned short *mapindex); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_mapindex2mapid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_mapindex2mapid_pre[hIndex].func; + retVal___ = preHookFunc(&mapindex); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.mapindex2mapid(mapindex); + } + if( HPMHooks.count.HP_map_mapindex2mapid_post ) { + int16 (*postHookFunc) (int16 retVal___, unsigned short *mapindex); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_mapindex2mapid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_mapindex2mapid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &mapindex); + } + } + return retVal___; +} +int16 HP_map_mapname2mapid(const char *name) { + int hIndex = 0; + int16 retVal___; + memset(&retVal___, '\0', sizeof(int16)); + if( HPMHooks.count.HP_map_mapname2mapid_pre ) { + int16 (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_mapname2mapid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_mapname2mapid_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.mapname2mapid(name); + } + if( HPMHooks.count.HP_map_mapname2mapid_post ) { + int16 (*postHookFunc) (int16 retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_mapname2mapid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_mapname2mapid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +int HP_map_mapname2ipport(unsigned short name, uint32 *ip, uint16 *port) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_mapname2ipport_pre ) { + int (*preHookFunc) (unsigned short *name, uint32 *ip, uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_mapname2ipport_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_mapname2ipport_pre[hIndex].func; + retVal___ = preHookFunc(&name, ip, port); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.mapname2ipport(name, ip, port); + } + if( HPMHooks.count.HP_map_mapname2ipport_post ) { + int (*postHookFunc) (int retVal___, unsigned short *name, uint32 *ip, uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_mapname2ipport_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_mapname2ipport_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &name, ip, port); + } + } + return retVal___; +} +int HP_map_setipport(unsigned short mapindex, uint32 ip, uint16 port) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_setipport_pre ) { + int (*preHookFunc) (unsigned short *mapindex, uint32 *ip, uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_setipport_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_setipport_pre[hIndex].func; + retVal___ = preHookFunc(&mapindex, &ip, &port); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.setipport(mapindex, ip, port); + } + if( HPMHooks.count.HP_map_setipport_post ) { + int (*postHookFunc) (int retVal___, unsigned short *mapindex, uint32 *ip, uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_setipport_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_setipport_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &mapindex, &ip, &port); + } + } + return retVal___; +} +int HP_map_eraseipport(unsigned short mapindex, uint32 ip, uint16 port) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_eraseipport_pre ) { + int (*preHookFunc) (unsigned short *mapindex, uint32 *ip, uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_eraseipport_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_eraseipport_pre[hIndex].func; + retVal___ = preHookFunc(&mapindex, &ip, &port); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.eraseipport(mapindex, ip, port); + } + if( HPMHooks.count.HP_map_eraseipport_post ) { + int (*postHookFunc) (int retVal___, unsigned short *mapindex, uint32 *ip, uint16 *port); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_eraseipport_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_eraseipport_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &mapindex, &ip, &port); + } + } + return retVal___; +} +int HP_map_eraseallipport(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_eraseallipport_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_eraseallipport_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_eraseallipport_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.eraseallipport(); + } + if( HPMHooks.count.HP_map_eraseallipport_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_eraseallipport_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_eraseallipport_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_map_addiddb(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_map_addiddb_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addiddb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_addiddb_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.addiddb(bl); + } + if( HPMHooks.count.HP_map_addiddb_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addiddb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_addiddb_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_map_deliddb(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_map_deliddb_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_deliddb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_deliddb_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.deliddb(bl); + } + if( HPMHooks.count.HP_map_deliddb_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_deliddb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_deliddb_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +struct map_session_data* HP_map_nick2sd(const char *nick) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_map_nick2sd_pre ) { + struct map_session_data* (*preHookFunc) (const char *nick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_nick2sd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_nick2sd_pre[hIndex].func; + retVal___ = preHookFunc(nick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.nick2sd(nick); + } + if( HPMHooks.count.HP_map_nick2sd_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___, const char *nick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_nick2sd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_nick2sd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nick); + } + } + return retVal___; +} +struct mob_data* HP_map_getmob_boss(int16 m) { + int hIndex = 0; + struct mob_data* retVal___ = NULL; + if( HPMHooks.count.HP_map_getmob_boss_pre ) { + struct mob_data* (*preHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_getmob_boss_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_getmob_boss_pre[hIndex].func; + retVal___ = preHookFunc(&m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.getmob_boss(m); + } + if( HPMHooks.count.HP_map_getmob_boss_post ) { + struct mob_data* (*postHookFunc) (struct mob_data* retVal___, int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_getmob_boss_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_getmob_boss_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m); + } + } + return retVal___; +} +struct mob_data* HP_map_id2boss(int id) { + int hIndex = 0; + struct mob_data* retVal___ = NULL; + if( HPMHooks.count.HP_map_id2boss_pre ) { + struct mob_data* (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2boss_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_id2boss_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.id2boss(id); + } + if( HPMHooks.count.HP_map_id2boss_post ) { + struct mob_data* (*postHookFunc) (struct mob_data* retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_id2boss_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_id2boss_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +void HP_map_reloadnpc(bool clear) { + int hIndex = 0; + if( HPMHooks.count.HP_map_reloadnpc_pre ) { + void (*preHookFunc) (bool *clear); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_reloadnpc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_reloadnpc_pre[hIndex].func; + preHookFunc(&clear); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.reloadnpc(clear); + } + if( HPMHooks.count.HP_map_reloadnpc_post ) { + void (*postHookFunc) (bool *clear); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_reloadnpc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_reloadnpc_post[hIndex].func; + postHookFunc(&clear); + } + } + return; +} +int HP_map_check_dir(int s_dir, int t_dir) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_check_dir_pre ) { + int (*preHookFunc) (int *s_dir, int *t_dir); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_check_dir_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_check_dir_pre[hIndex].func; + retVal___ = preHookFunc(&s_dir, &t_dir); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.check_dir(s_dir, t_dir); + } + if( HPMHooks.count.HP_map_check_dir_post ) { + int (*postHookFunc) (int retVal___, int *s_dir, int *t_dir); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_check_dir_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_check_dir_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &s_dir, &t_dir); + } + } + return retVal___; +} +uint8 HP_map_calc_dir(struct block_list *src, int16 x, int16 y) { + int hIndex = 0; + uint8 retVal___; + memset(&retVal___, '\0', sizeof(uint8)); + if( HPMHooks.count.HP_map_calc_dir_pre ) { + uint8 (*preHookFunc) (struct block_list *src, int16 *x, int16 *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_calc_dir_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_calc_dir_pre[hIndex].func; + retVal___ = preHookFunc(src, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.calc_dir(src, x, y); + } + if( HPMHooks.count.HP_map_calc_dir_post ) { + uint8 (*postHookFunc) (uint8 retVal___, struct block_list *src, int16 *x, int16 *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_calc_dir_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_calc_dir_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &x, &y); + } + } + return retVal___; +} +int HP_map_random_dir(struct block_list *bl, short *x, short *y) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_random_dir_pre ) { + int (*preHookFunc) (struct block_list *bl, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_random_dir_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_random_dir_pre[hIndex].func; + retVal___ = preHookFunc(bl, x, y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.random_dir(bl, x, y); + } + if( HPMHooks.count.HP_map_random_dir_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_random_dir_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_random_dir_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, x, y); + } + } + return retVal___; +} +int HP_map_cleanup_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_cleanup_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_cleanup_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_cleanup_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.cleanup_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_cleanup_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_cleanup_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_cleanup_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_map_delmap(char *mapname) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_delmap_pre ) { + int (*preHookFunc) (char *mapname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_delmap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_delmap_pre[hIndex].func; + retVal___ = preHookFunc(mapname); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.delmap(mapname); + } + if( HPMHooks.count.HP_map_delmap_post ) { + int (*postHookFunc) (int retVal___, char *mapname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_delmap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_delmap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, mapname); + } + } + return retVal___; +} +void HP_map_flags_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_map_flags_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_flags_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_flags_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.flags_init(); + } + if( HPMHooks.count.HP_map_flags_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_flags_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_flags_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +bool HP_map_iwall_set(int16 m, int16 x, int16 y, int size, int8 dir, bool shootable, const char *wall_name) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_map_iwall_set_pre ) { + bool (*preHookFunc) (int16 *m, int16 *x, int16 *y, int *size, int8 *dir, bool *shootable, const char *wall_name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_iwall_set_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_iwall_set_pre[hIndex].func; + retVal___ = preHookFunc(&m, &x, &y, &size, &dir, &shootable, wall_name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.iwall_set(m, x, y, size, dir, shootable, wall_name); + } + if( HPMHooks.count.HP_map_iwall_set_post ) { + bool (*postHookFunc) (bool retVal___, int16 *m, int16 *x, int16 *y, int *size, int8 *dir, bool *shootable, const char *wall_name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_iwall_set_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_iwall_set_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, &x, &y, &size, &dir, &shootable, wall_name); + } + } + return retVal___; +} +void HP_map_iwall_get(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_map_iwall_get_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_iwall_get_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_iwall_get_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.iwall_get(sd); + } + if( HPMHooks.count.HP_map_iwall_get_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_iwall_get_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_iwall_get_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_map_iwall_remove(const char *wall_name) { + int hIndex = 0; + if( HPMHooks.count.HP_map_iwall_remove_pre ) { + void (*preHookFunc) (const char *wall_name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_iwall_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_iwall_remove_pre[hIndex].func; + preHookFunc(wall_name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.iwall_remove(wall_name); + } + if( HPMHooks.count.HP_map_iwall_remove_post ) { + void (*postHookFunc) (const char *wall_name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_iwall_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_iwall_remove_post[hIndex].func; + postHookFunc(wall_name); + } + } + return; +} +int HP_map_addmobtolist(unsigned short m, struct spawn_data *spawn) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_addmobtolist_pre ) { + int (*preHookFunc) (unsigned short *m, struct spawn_data *spawn); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addmobtolist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_addmobtolist_pre[hIndex].func; + retVal___ = preHookFunc(&m, spawn); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.addmobtolist(m, spawn); + } + if( HPMHooks.count.HP_map_addmobtolist_post ) { + int (*postHookFunc) (int retVal___, unsigned short *m, struct spawn_data *spawn); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addmobtolist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_addmobtolist_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, spawn); + } + } + return retVal___; +} +void HP_map_spawnmobs(int16 m) { + int hIndex = 0; + if( HPMHooks.count.HP_map_spawnmobs_pre ) { + void (*preHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_spawnmobs_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_spawnmobs_pre[hIndex].func; + preHookFunc(&m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.spawnmobs(m); + } + if( HPMHooks.count.HP_map_spawnmobs_post ) { + void (*postHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_spawnmobs_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_spawnmobs_post[hIndex].func; + postHookFunc(&m); + } + } + return; +} +void HP_map_removemobs(int16 m) { + int hIndex = 0; + if( HPMHooks.count.HP_map_removemobs_pre ) { + void (*preHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_removemobs_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_removemobs_pre[hIndex].func; + preHookFunc(&m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.removemobs(m); + } + if( HPMHooks.count.HP_map_removemobs_post ) { + void (*postHookFunc) (int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_removemobs_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_removemobs_post[hIndex].func; + postHookFunc(&m); + } + } + return; +} +void HP_map_addmap2db(struct map_data *m) { + int hIndex = 0; + if( HPMHooks.count.HP_map_addmap2db_pre ) { + void (*preHookFunc) (struct map_data *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addmap2db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_addmap2db_pre[hIndex].func; + preHookFunc(m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.addmap2db(m); + } + if( HPMHooks.count.HP_map_addmap2db_post ) { + void (*postHookFunc) (struct map_data *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addmap2db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_addmap2db_post[hIndex].func; + postHookFunc(m); + } + } + return; +} +void HP_map_removemapdb(struct map_data *m) { + int hIndex = 0; + if( HPMHooks.count.HP_map_removemapdb_pre ) { + void (*preHookFunc) (struct map_data *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_removemapdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_removemapdb_pre[hIndex].func; + preHookFunc(m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.removemapdb(m); + } + if( HPMHooks.count.HP_map_removemapdb_post ) { + void (*postHookFunc) (struct map_data *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_removemapdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_removemapdb_post[hIndex].func; + postHookFunc(m); + } + } + return; +} +void HP_map_clean(int i) { + int hIndex = 0; + if( HPMHooks.count.HP_map_clean_pre ) { + void (*preHookFunc) (int *i); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_clean_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_clean_pre[hIndex].func; + preHookFunc(&i); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.clean(i); + } + if( HPMHooks.count.HP_map_clean_post ) { + void (*postHookFunc) (int *i); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_clean_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_clean_post[hIndex].func; + postHookFunc(&i); + } + } + return; +} +void HP_map_do_shutdown(void) { + int hIndex = 0; + if( HPMHooks.count.HP_map_do_shutdown_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_do_shutdown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_do_shutdown_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.do_shutdown(); + } + if( HPMHooks.count.HP_map_do_shutdown_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_do_shutdown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_do_shutdown_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_map_freeblock_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_freeblock_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_freeblock_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_freeblock_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.freeblock_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_map_freeblock_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_freeblock_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_freeblock_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_map_searchrandfreecell(int16 m, int16 *x, int16 *y, int stack) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_searchrandfreecell_pre ) { + int (*preHookFunc) (int16 *m, int16 *x, int16 *y, int *stack); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_searchrandfreecell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_searchrandfreecell_pre[hIndex].func; + retVal___ = preHookFunc(&m, x, y, &stack); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.searchrandfreecell(m, x, y, stack); + } + if( HPMHooks.count.HP_map_searchrandfreecell_post ) { + int (*postHookFunc) (int retVal___, int16 *m, int16 *x, int16 *y, int *stack); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_searchrandfreecell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_searchrandfreecell_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, x, y, &stack); + } + } + return retVal___; +} +int HP_map_count_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_count_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_count_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_count_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.count_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_count_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_count_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_count_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +DBData HP_map_create_charid2nick(DBKey key, va_list args) { + int hIndex = 0; + DBData retVal___; + memset(&retVal___, '\0', sizeof(DBData)); + if( HPMHooks.count.HP_map_create_charid2nick_pre ) { + DBData (*preHookFunc) (DBKey *key, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_create_charid2nick_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_map_create_charid2nick_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.map.create_charid2nick(key, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_map_create_charid2nick_post ) { + DBData (*postHookFunc) (DBData retVal___, DBKey *key, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_create_charid2nick_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_map_create_charid2nick_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_map_removemobs_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_removemobs_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_removemobs_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_removemobs_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.removemobs_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_removemobs_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_removemobs_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_removemobs_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +struct mapcell HP_map_gat2cell(int gat) { + int hIndex = 0; + struct mapcell retVal___; + memset(&retVal___, '\0', sizeof(struct mapcell)); + if( HPMHooks.count.HP_map_gat2cell_pre ) { + struct mapcell (*preHookFunc) (int *gat); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_gat2cell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_gat2cell_pre[hIndex].func; + retVal___ = preHookFunc(&gat); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.gat2cell(gat); + } + if( HPMHooks.count.HP_map_gat2cell_post ) { + struct mapcell (*postHookFunc) (struct mapcell retVal___, int *gat); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_gat2cell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_gat2cell_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &gat); + } + } + return retVal___; +} +int HP_map_cell2gat(struct mapcell cell) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_cell2gat_pre ) { + int (*preHookFunc) (struct mapcell *cell); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_cell2gat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_cell2gat_pre[hIndex].func; + retVal___ = preHookFunc(&cell); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.cell2gat(cell); + } + if( HPMHooks.count.HP_map_cell2gat_post ) { + int (*postHookFunc) (int retVal___, struct mapcell *cell); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_cell2gat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_cell2gat_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &cell); + } + } + return retVal___; +} +int HP_map_getcellp(struct map_data *m, int16 x, int16 y, cell_chk cellchk) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_getcellp_pre ) { + int (*preHookFunc) (struct map_data *m, int16 *x, int16 *y, cell_chk *cellchk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_getcellp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_getcellp_pre[hIndex].func; + retVal___ = preHookFunc(m, &x, &y, &cellchk); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.getcellp(m, x, y, cellchk); + } + if( HPMHooks.count.HP_map_getcellp_post ) { + int (*postHookFunc) (int retVal___, struct map_data *m, int16 *x, int16 *y, cell_chk *cellchk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_getcellp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_getcellp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, m, &x, &y, &cellchk); + } + } + return retVal___; +} +void HP_map_setcell(int16 m, int16 x, int16 y, cell_t cell, bool flag) { + int hIndex = 0; + if( HPMHooks.count.HP_map_setcell_pre ) { + void (*preHookFunc) (int16 *m, int16 *x, int16 *y, cell_t *cell, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_setcell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_setcell_pre[hIndex].func; + preHookFunc(&m, &x, &y, &cell, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.setcell(m, x, y, cell, flag); + } + if( HPMHooks.count.HP_map_setcell_post ) { + void (*postHookFunc) (int16 *m, int16 *x, int16 *y, cell_t *cell, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_setcell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_setcell_post[hIndex].func; + postHookFunc(&m, &x, &y, &cell, &flag); + } + } + return; +} +int HP_map_sub_getcellp(struct map_data *m, int16 x, int16 y, cell_chk cellchk) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_sub_getcellp_pre ) { + int (*preHookFunc) (struct map_data *m, int16 *x, int16 *y, cell_chk *cellchk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_sub_getcellp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_sub_getcellp_pre[hIndex].func; + retVal___ = preHookFunc(m, &x, &y, &cellchk); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.sub_getcellp(m, x, y, cellchk); + } + if( HPMHooks.count.HP_map_sub_getcellp_post ) { + int (*postHookFunc) (int retVal___, struct map_data *m, int16 *x, int16 *y, cell_chk *cellchk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_sub_getcellp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_sub_getcellp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, m, &x, &y, &cellchk); + } + } + return retVal___; +} +void HP_map_sub_setcell(int16 m, int16 x, int16 y, cell_t cell, bool flag) { + int hIndex = 0; + if( HPMHooks.count.HP_map_sub_setcell_pre ) { + void (*preHookFunc) (int16 *m, int16 *x, int16 *y, cell_t *cell, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_sub_setcell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_sub_setcell_pre[hIndex].func; + preHookFunc(&m, &x, &y, &cell, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.sub_setcell(m, x, y, cell, flag); + } + if( HPMHooks.count.HP_map_sub_setcell_post ) { + void (*postHookFunc) (int16 *m, int16 *x, int16 *y, cell_t *cell, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_sub_setcell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_sub_setcell_post[hIndex].func; + postHookFunc(&m, &x, &y, &cell, &flag); + } + } + return; +} +void HP_map_iwall_nextxy(int16 x, int16 y, int8 dir, int pos, int16 *x1, int16 *y1) { + int hIndex = 0; + if( HPMHooks.count.HP_map_iwall_nextxy_pre ) { + void (*preHookFunc) (int16 *x, int16 *y, int8 *dir, int *pos, int16 *x1, int16 *y1); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_iwall_nextxy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_iwall_nextxy_pre[hIndex].func; + preHookFunc(&x, &y, &dir, &pos, x1, y1); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.iwall_nextxy(x, y, dir, pos, x1, y1); + } + if( HPMHooks.count.HP_map_iwall_nextxy_post ) { + void (*postHookFunc) (int16 *x, int16 *y, int8 *dir, int *pos, int16 *x1, int16 *y1); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_iwall_nextxy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_iwall_nextxy_post[hIndex].func; + postHookFunc(&x, &y, &dir, &pos, x1, y1); + } + } + return; +} +DBData HP_map_create_map_data_other_server(DBKey key, va_list args) { + int hIndex = 0; + DBData retVal___; + memset(&retVal___, '\0', sizeof(DBData)); + if( HPMHooks.count.HP_map_create_map_data_other_server_pre ) { + DBData (*preHookFunc) (DBKey *key, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_create_map_data_other_server_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_map_create_map_data_other_server_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.map.create_map_data_other_server(key, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_map_create_map_data_other_server_post ) { + DBData (*postHookFunc) (DBData retVal___, DBKey *key, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_create_map_data_other_server_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_map_create_map_data_other_server_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_map_eraseallipport_sub(DBKey key, DBData *data, va_list va) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_eraseallipport_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list va); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_eraseallipport_sub_pre; hIndex++ ) { + va_list va___copy; va_copy(va___copy, va); + preHookFunc = HPMHooks.list.HP_map_eraseallipport_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, va___copy); + va_end(va___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list va___copy; va_copy(va___copy, va); + retVal___ = HPMHooks.source.map.eraseallipport_sub(key, data, va___copy); + va_end(va___copy); + } + if( HPMHooks.count.HP_map_eraseallipport_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list va); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_eraseallipport_sub_post; hIndex++ ) { + va_list va___copy; va_copy(va___copy, va); + postHookFunc = HPMHooks.list.HP_map_eraseallipport_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, va___copy); + va_end(va___copy); + } + } + return retVal___; +} +char* HP_map_init_mapcache(FILE *fp) { + int hIndex = 0; + char* retVal___ = NULL; + if( HPMHooks.count.HP_map_init_mapcache_pre ) { + char* (*preHookFunc) (FILE *fp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_init_mapcache_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_init_mapcache_pre[hIndex].func; + retVal___ = preHookFunc(fp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.init_mapcache(fp); + } + if( HPMHooks.count.HP_map_init_mapcache_post ) { + char* (*postHookFunc) (char* retVal___, FILE *fp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_init_mapcache_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_init_mapcache_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fp); + } + } + return retVal___; +} +int HP_map_readfromcache(struct map_data *m, char *buffer) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_readfromcache_pre ) { + int (*preHookFunc) (struct map_data *m, char *buffer); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_readfromcache_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_readfromcache_pre[hIndex].func; + retVal___ = preHookFunc(m, buffer); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.readfromcache(m, buffer); + } + if( HPMHooks.count.HP_map_readfromcache_post ) { + int (*postHookFunc) (int retVal___, struct map_data *m, char *buffer); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_readfromcache_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_readfromcache_post[hIndex].func; + retVal___ = postHookFunc(retVal___, m, buffer); + } + } + return retVal___; +} +int HP_map_addmap(char *mapname) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_addmap_pre ) { + int (*preHookFunc) (char *mapname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addmap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_addmap_pre[hIndex].func; + retVal___ = preHookFunc(mapname); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.addmap(mapname); + } + if( HPMHooks.count.HP_map_addmap_post ) { + int (*postHookFunc) (int retVal___, char *mapname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addmap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_addmap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, mapname); + } + } + return retVal___; +} +void HP_map_delmapid(int id) { + int hIndex = 0; + if( HPMHooks.count.HP_map_delmapid_pre ) { + void (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_delmapid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_delmapid_pre[hIndex].func; + preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.delmapid(id); + } + if( HPMHooks.count.HP_map_delmapid_post ) { + void (*postHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_delmapid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_delmapid_post[hIndex].func; + postHookFunc(&id); + } + } + return; +} +void HP_map_zone_db_clear(void) { + int hIndex = 0; + if( HPMHooks.count.HP_map_zone_db_clear_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_db_clear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_zone_db_clear_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.zone_db_clear(); + } + if( HPMHooks.count.HP_map_zone_db_clear_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_db_clear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_zone_db_clear_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_map_list_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_map_list_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_list_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_list_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.list_final(); + } + if( HPMHooks.count.HP_map_list_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_list_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_list_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_map_waterheight(char *mapname) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_waterheight_pre ) { + int (*preHookFunc) (char *mapname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_waterheight_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_waterheight_pre[hIndex].func; + retVal___ = preHookFunc(mapname); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.waterheight(mapname); + } + if( HPMHooks.count.HP_map_waterheight_post ) { + int (*postHookFunc) (int retVal___, char *mapname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_waterheight_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_waterheight_post[hIndex].func; + retVal___ = postHookFunc(retVal___, mapname); + } + } + return retVal___; +} +int HP_map_readgat(struct map_data *m) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_readgat_pre ) { + int (*preHookFunc) (struct map_data *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_readgat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_readgat_pre[hIndex].func; + retVal___ = preHookFunc(m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.readgat(m); + } + if( HPMHooks.count.HP_map_readgat_post ) { + int (*postHookFunc) (int retVal___, struct map_data *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_readgat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_readgat_post[hIndex].func; + retVal___ = postHookFunc(retVal___, m); + } + } + return retVal___; +} +int HP_map_readallmaps(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_readallmaps_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_readallmaps_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_readallmaps_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.readallmaps(); + } + if( HPMHooks.count.HP_map_readallmaps_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_readallmaps_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_readallmaps_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_map_config_read(char *cfgName) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_config_read_pre ) { + int (*preHookFunc) (char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_config_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_config_read_pre[hIndex].func; + retVal___ = preHookFunc(cfgName); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.config_read(cfgName); + } + if( HPMHooks.count.HP_map_config_read_post ) { + int (*postHookFunc) (int retVal___, char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_config_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_config_read_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cfgName); + } + } + return retVal___; +} +int HP_map_config_read_sub(char *cfgName) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_config_read_sub_pre ) { + int (*preHookFunc) (char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_config_read_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_config_read_sub_pre[hIndex].func; + retVal___ = preHookFunc(cfgName); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.config_read_sub(cfgName); + } + if( HPMHooks.count.HP_map_config_read_sub_post ) { + int (*postHookFunc) (int retVal___, char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_config_read_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_config_read_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cfgName); + } + } + return retVal___; +} +void HP_map_reloadnpc_sub(char *cfgName) { + int hIndex = 0; + if( HPMHooks.count.HP_map_reloadnpc_sub_pre ) { + void (*preHookFunc) (char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_reloadnpc_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_reloadnpc_sub_pre[hIndex].func; + preHookFunc(cfgName); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.reloadnpc_sub(cfgName); + } + if( HPMHooks.count.HP_map_reloadnpc_sub_post ) { + void (*postHookFunc) (char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_reloadnpc_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_reloadnpc_sub_post[hIndex].func; + postHookFunc(cfgName); + } + } + return; +} +int HP_map_inter_config_read(char *cfgName) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_inter_config_read_pre ) { + int (*preHookFunc) (char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_inter_config_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_inter_config_read_pre[hIndex].func; + retVal___ = preHookFunc(cfgName); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.inter_config_read(cfgName); + } + if( HPMHooks.count.HP_map_inter_config_read_post ) { + int (*postHookFunc) (int retVal___, char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_inter_config_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_inter_config_read_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cfgName); + } + } + return retVal___; +} +int HP_map_sql_init(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_sql_init_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_sql_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_sql_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.sql_init(); + } + if( HPMHooks.count.HP_map_sql_init_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_sql_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_sql_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_map_sql_close(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_sql_close_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_sql_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_sql_close_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.sql_close(); + } + if( HPMHooks.count.HP_map_sql_close_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_sql_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_sql_close_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +bool HP_map_zone_mf_cache(int m, char *flag, char *params) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_map_zone_mf_cache_pre ) { + bool (*preHookFunc) (int *m, char *flag, char *params); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_mf_cache_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_zone_mf_cache_pre[hIndex].func; + retVal___ = preHookFunc(&m, flag, params); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.zone_mf_cache(m, flag, params); + } + if( HPMHooks.count.HP_map_zone_mf_cache_post ) { + bool (*postHookFunc) (bool retVal___, int *m, char *flag, char *params); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_mf_cache_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_zone_mf_cache_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, flag, params); + } + } + return retVal___; +} +unsigned short HP_map_zone_str2itemid(const char *name) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_map_zone_str2itemid_pre ) { + unsigned short (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_str2itemid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_zone_str2itemid_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.zone_str2itemid(name); + } + if( HPMHooks.count.HP_map_zone_str2itemid_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_str2itemid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_zone_str2itemid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +unsigned short HP_map_zone_str2skillid(const char *name) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_map_zone_str2skillid_pre ) { + unsigned short (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_str2skillid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_zone_str2skillid_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.zone_str2skillid(name); + } + if( HPMHooks.count.HP_map_zone_str2skillid_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_str2skillid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_zone_str2skillid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +enum bl_type HP_map_zone_bl_type(const char *entry, enum map_zone_skill_subtype *subtype) { + int hIndex = 0; + enum bl_type retVal___; + memset(&retVal___, '\0', sizeof(enum bl_type)); + if( HPMHooks.count.HP_map_zone_bl_type_pre ) { + enum bl_type (*preHookFunc) (const char *entry, enum map_zone_skill_subtype *subtype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_bl_type_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_zone_bl_type_pre[hIndex].func; + retVal___ = preHookFunc(entry, subtype); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.zone_bl_type(entry, subtype); + } + if( HPMHooks.count.HP_map_zone_bl_type_post ) { + enum bl_type (*postHookFunc) (enum bl_type retVal___, const char *entry, enum map_zone_skill_subtype *subtype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_zone_bl_type_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_zone_bl_type_post[hIndex].func; + retVal___ = postHookFunc(retVal___, entry, subtype); + } + } + return retVal___; +} +void HP_map_read_zone_db(void) { + int hIndex = 0; + if( HPMHooks.count.HP_map_read_zone_db_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_read_zone_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_read_zone_db_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.read_zone_db(); + } + if( HPMHooks.count.HP_map_read_zone_db_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_read_zone_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_read_zone_db_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_map_db_final(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_db_final_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_db_final_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_db_final_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.db_final(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_db_final_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_db_final_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_db_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_map_nick_db_final(DBKey key, DBData *data, va_list args) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_nick_db_final_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_nick_db_final_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_map_nick_db_final_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.map.nick_db_final(key, data, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_map_nick_db_final_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_nick_db_final_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_map_nick_db_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_map_cleanup_db_sub(DBKey key, DBData *data, va_list va) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_cleanup_db_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list va); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_cleanup_db_sub_pre; hIndex++ ) { + va_list va___copy; va_copy(va___copy, va); + preHookFunc = HPMHooks.list.HP_map_cleanup_db_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, va___copy); + va_end(va___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list va___copy; va_copy(va___copy, va); + retVal___ = HPMHooks.source.map.cleanup_db_sub(key, data, va___copy); + va_end(va___copy); + } + if( HPMHooks.count.HP_map_cleanup_db_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list va); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_cleanup_db_sub_post; hIndex++ ) { + va_list va___copy; va_copy(va___copy, va); + postHookFunc = HPMHooks.list.HP_map_cleanup_db_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, va___copy); + va_end(va___copy); + } + } + return retVal___; +} +int HP_map_abort_sub(struct map_session_data *sd, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_map_abort_sub_pre ) { + int (*preHookFunc) (struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_abort_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_map_abort_sub_pre[hIndex].func; + retVal___ = preHookFunc(sd, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.map.abort_sub(sd, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_map_abort_sub_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_abort_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_map_abort_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_map_helpscreen(bool do_exit) { + int hIndex = 0; + if( HPMHooks.count.HP_map_helpscreen_pre ) { + void (*preHookFunc) (bool *do_exit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_helpscreen_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_helpscreen_pre[hIndex].func; + preHookFunc(&do_exit); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.helpscreen(do_exit); + } + if( HPMHooks.count.HP_map_helpscreen_post ) { + void (*postHookFunc) (bool *do_exit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_helpscreen_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_helpscreen_post[hIndex].func; + postHookFunc(&do_exit); + } + } + return; +} +void HP_map_versionscreen(bool do_exit) { + int hIndex = 0; + if( HPMHooks.count.HP_map_versionscreen_pre ) { + void (*preHookFunc) (bool *do_exit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_versionscreen_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_versionscreen_pre[hIndex].func; + preHookFunc(&do_exit); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.versionscreen(do_exit); + } + if( HPMHooks.count.HP_map_versionscreen_post ) { + void (*postHookFunc) (bool *do_exit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_versionscreen_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_versionscreen_post[hIndex].func; + postHookFunc(&do_exit); + } + } + return; +} +bool HP_map_arg_next_value(const char *option, int i, int argc) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_map_arg_next_value_pre ) { + bool (*preHookFunc) (const char *option, int *i, int *argc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_arg_next_value_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_arg_next_value_pre[hIndex].func; + retVal___ = preHookFunc(option, &i, &argc); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.map.arg_next_value(option, i, argc); + } + if( HPMHooks.count.HP_map_arg_next_value_post ) { + bool (*postHookFunc) (bool retVal___, const char *option, int *i, int *argc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_arg_next_value_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_arg_next_value_post[hIndex].func; + retVal___ = postHookFunc(retVal___, option, &i, &argc); + } + } + return retVal___; +} +void HP_map_addblcell(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_map_addblcell_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addblcell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_addblcell_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.addblcell(bl); + } + if( HPMHooks.count.HP_map_addblcell_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_addblcell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_addblcell_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +void HP_map_delblcell(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_map_delblcell_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_delblcell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_map_delblcell_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.map.delblcell(bl); + } + if( HPMHooks.count.HP_map_delblcell_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_map_delblcell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_map_delblcell_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +/* mapit */ +struct s_mapiterator* HP_mapit_alloc(enum e_mapitflags flags, enum bl_type types) { + int hIndex = 0; + struct s_mapiterator* retVal___ = NULL; + if( HPMHooks.count.HP_mapit_alloc_pre ) { + struct s_mapiterator* (*preHookFunc) (enum e_mapitflags *flags, enum bl_type *types); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_alloc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapit_alloc_pre[hIndex].func; + retVal___ = preHookFunc(&flags, &types); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapit.alloc(flags, types); + } + if( HPMHooks.count.HP_mapit_alloc_post ) { + struct s_mapiterator* (*postHookFunc) (struct s_mapiterator* retVal___, enum e_mapitflags *flags, enum bl_type *types); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_alloc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapit_alloc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &flags, &types); + } + } + return retVal___; +} +void HP_mapit_free(struct s_mapiterator *iter) { + int hIndex = 0; + if( HPMHooks.count.HP_mapit_free_pre ) { + void (*preHookFunc) (struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_free_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapit_free_pre[hIndex].func; + preHookFunc(iter); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapit.free(iter); + } + if( HPMHooks.count.HP_mapit_free_post ) { + void (*postHookFunc) (struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_free_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapit_free_post[hIndex].func; + postHookFunc(iter); + } + } + return; +} +struct block_list* HP_mapit_first(struct s_mapiterator *iter) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_mapit_first_pre ) { + struct block_list* (*preHookFunc) (struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_first_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapit_first_pre[hIndex].func; + retVal___ = preHookFunc(iter); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapit.first(iter); + } + if( HPMHooks.count.HP_mapit_first_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_first_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapit_first_post[hIndex].func; + retVal___ = postHookFunc(retVal___, iter); + } + } + return retVal___; +} +struct block_list* HP_mapit_last(struct s_mapiterator *iter) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_mapit_last_pre ) { + struct block_list* (*preHookFunc) (struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_last_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapit_last_pre[hIndex].func; + retVal___ = preHookFunc(iter); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapit.last(iter); + } + if( HPMHooks.count.HP_mapit_last_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_last_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapit_last_post[hIndex].func; + retVal___ = postHookFunc(retVal___, iter); + } + } + return retVal___; +} +struct block_list* HP_mapit_next(struct s_mapiterator *iter) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_mapit_next_pre ) { + struct block_list* (*preHookFunc) (struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_next_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapit_next_pre[hIndex].func; + retVal___ = preHookFunc(iter); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapit.next(iter); + } + if( HPMHooks.count.HP_mapit_next_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_next_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapit_next_post[hIndex].func; + retVal___ = postHookFunc(retVal___, iter); + } + } + return retVal___; +} +struct block_list* HP_mapit_prev(struct s_mapiterator *iter) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_mapit_prev_pre ) { + struct block_list* (*preHookFunc) (struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_prev_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapit_prev_pre[hIndex].func; + retVal___ = preHookFunc(iter); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapit.prev(iter); + } + if( HPMHooks.count.HP_mapit_prev_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_prev_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapit_prev_post[hIndex].func; + retVal___ = postHookFunc(retVal___, iter); + } + } + return retVal___; +} +bool HP_mapit_exists(struct s_mapiterator *iter) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mapit_exists_pre ) { + bool (*preHookFunc) (struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_exists_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapit_exists_pre[hIndex].func; + retVal___ = preHookFunc(iter); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapit.exists(iter); + } + if( HPMHooks.count.HP_mapit_exists_post ) { + bool (*postHookFunc) (bool retVal___, struct s_mapiterator *iter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapit_exists_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapit_exists_post[hIndex].func; + retVal___ = postHookFunc(retVal___, iter); + } + } + return retVal___; +} +/* mapreg */ +void HP_mapreg_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mapreg_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.init(); + } + if( HPMHooks.count.HP_mapreg_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_mapreg_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mapreg_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.final(); + } + if( HPMHooks.count.HP_mapreg_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_mapreg_readreg(int uid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mapreg_readreg_pre ) { + int (*preHookFunc) (int *uid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_readreg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_readreg_pre[hIndex].func; + retVal___ = preHookFunc(&uid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapreg.readreg(uid); + } + if( HPMHooks.count.HP_mapreg_readreg_post ) { + int (*postHookFunc) (int retVal___, int *uid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_readreg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_readreg_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &uid); + } + } + return retVal___; +} +char* HP_mapreg_readregstr(int uid) { + int hIndex = 0; + char* retVal___ = NULL; + if( HPMHooks.count.HP_mapreg_readregstr_pre ) { + char* (*preHookFunc) (int *uid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_readregstr_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_readregstr_pre[hIndex].func; + retVal___ = preHookFunc(&uid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapreg.readregstr(uid); + } + if( HPMHooks.count.HP_mapreg_readregstr_post ) { + char* (*postHookFunc) (char* retVal___, int *uid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_readregstr_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_readregstr_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &uid); + } + } + return retVal___; +} +bool HP_mapreg_setreg(int uid, int val) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mapreg_setreg_pre ) { + bool (*preHookFunc) (int *uid, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_setreg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_setreg_pre[hIndex].func; + retVal___ = preHookFunc(&uid, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapreg.setreg(uid, val); + } + if( HPMHooks.count.HP_mapreg_setreg_post ) { + bool (*postHookFunc) (bool retVal___, int *uid, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_setreg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_setreg_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &uid, &val); + } + } + return retVal___; +} +bool HP_mapreg_setregstr(int uid, const char *str) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mapreg_setregstr_pre ) { + bool (*preHookFunc) (int *uid, const char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_setregstr_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_setregstr_pre[hIndex].func; + retVal___ = preHookFunc(&uid, str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapreg.setregstr(uid, str); + } + if( HPMHooks.count.HP_mapreg_setregstr_post ) { + bool (*postHookFunc) (bool retVal___, int *uid, const char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_setregstr_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_setregstr_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &uid, str); + } + } + return retVal___; +} +void HP_mapreg_load(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mapreg_load_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_load_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_load_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.load(); + } + if( HPMHooks.count.HP_mapreg_load_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_load_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_load_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_mapreg_save(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mapreg_save_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_save_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_save_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.save(); + } + if( HPMHooks.count.HP_mapreg_save_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_save_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_save_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_mapreg_save_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mapreg_save_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_save_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_save_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapreg.save_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_mapreg_save_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_save_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_save_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_mapreg_reload(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mapreg_reload_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_reload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_reload_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mapreg.reload(); + } + if( HPMHooks.count.HP_mapreg_reload_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_reload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_reload_post[hIndex].func; + postHookFunc(); + } + } + return; +} +bool HP_mapreg_config_read(const char *w1, const char *w2) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mapreg_config_read_pre ) { + bool (*preHookFunc) (const char *w1, const char *w2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_config_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mapreg_config_read_pre[hIndex].func; + retVal___ = preHookFunc(w1, w2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mapreg.config_read(w1, w2); + } + if( HPMHooks.count.HP_mapreg_config_read_post ) { + bool (*postHookFunc) (bool retVal___, const char *w1, const char *w2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mapreg_config_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mapreg_config_read_post[hIndex].func; + retVal___ = postHookFunc(retVal___, w1, w2); + } + } + return retVal___; +} +/* mercenary */ +void HP_mercenary_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mercenary_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mercenary.init(); + } + if( HPMHooks.count.HP_mercenary_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +bool HP_mercenary_class(int class_) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mercenary_class_pre ) { + bool (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_class_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_class_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.class(class_); + } + if( HPMHooks.count.HP_mercenary_class_post ) { + bool (*postHookFunc) (bool retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_class_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_class_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +struct view_data* HP_mercenary_get_viewdata(int class_) { + int hIndex = 0; + struct view_data* retVal___ = NULL; + if( HPMHooks.count.HP_mercenary_get_viewdata_pre ) { + struct view_data* (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_get_viewdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_get_viewdata_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.get_viewdata(class_); + } + if( HPMHooks.count.HP_mercenary_get_viewdata_post ) { + struct view_data* (*postHookFunc) (struct view_data* retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_get_viewdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_get_viewdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +int HP_mercenary_create(struct map_session_data *sd, int class_, unsigned int lifetime) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_create_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *class_, unsigned int *lifetime); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_create_pre[hIndex].func; + retVal___ = preHookFunc(sd, &class_, &lifetime); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.create(sd, class_, lifetime); + } + if( HPMHooks.count.HP_mercenary_create_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *class_, unsigned int *lifetime); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &class_, &lifetime); + } + } + return retVal___; +} +int HP_mercenary_data_received(struct s_mercenary *merc, bool flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_data_received_pre ) { + int (*preHookFunc) (struct s_mercenary *merc, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_data_received_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_data_received_pre[hIndex].func; + retVal___ = preHookFunc(merc, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.data_received(merc, flag); + } + if( HPMHooks.count.HP_mercenary_data_received_post ) { + int (*postHookFunc) (int retVal___, struct s_mercenary *merc, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_data_received_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_data_received_post[hIndex].func; + retVal___ = postHookFunc(retVal___, merc, &flag); + } + } + return retVal___; +} +int HP_mercenary_save(struct mercenary_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_save_pre ) { + int (*preHookFunc) (struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_save_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_save_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.save(md); + } + if( HPMHooks.count.HP_mercenary_save_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_save_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_save_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +void HP_mercenary_heal(struct mercenary_data *md, int hp, int sp) { + int hIndex = 0; + if( HPMHooks.count.HP_mercenary_heal_pre ) { + void (*preHookFunc) (struct mercenary_data *md, int *hp, int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_heal_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_heal_pre[hIndex].func; + preHookFunc(md, &hp, &sp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mercenary.heal(md, hp, sp); + } + if( HPMHooks.count.HP_mercenary_heal_post ) { + void (*postHookFunc) (struct mercenary_data *md, int *hp, int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_heal_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_heal_post[hIndex].func; + postHookFunc(md, &hp, &sp); + } + } + return; +} +int HP_mercenary_dead(struct mercenary_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_dead_pre ) { + int (*preHookFunc) (struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_dead_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_dead_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.dead(md); + } + if( HPMHooks.count.HP_mercenary_dead_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_dead_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_dead_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mercenary_delete(struct mercenary_data *md, int reply) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_delete_pre ) { + int (*preHookFunc) (struct mercenary_data *md, int *reply); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_delete_pre[hIndex].func; + retVal___ = preHookFunc(md, &reply); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.delete(md, reply); + } + if( HPMHooks.count.HP_mercenary_delete_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md, int *reply); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &reply); + } + } + return retVal___; +} +void HP_mercenary_contract_stop(struct mercenary_data *md) { + int hIndex = 0; + if( HPMHooks.count.HP_mercenary_contract_stop_pre ) { + void (*preHookFunc) (struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_contract_stop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_contract_stop_pre[hIndex].func; + preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mercenary.contract_stop(md); + } + if( HPMHooks.count.HP_mercenary_contract_stop_post ) { + void (*postHookFunc) (struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_contract_stop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_contract_stop_post[hIndex].func; + postHookFunc(md); + } + } + return; +} +int HP_mercenary_get_lifetime(struct mercenary_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_get_lifetime_pre ) { + int (*preHookFunc) (struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_get_lifetime_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_get_lifetime_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.get_lifetime(md); + } + if( HPMHooks.count.HP_mercenary_get_lifetime_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_get_lifetime_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_get_lifetime_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mercenary_get_guild(struct mercenary_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_get_guild_pre ) { + int (*preHookFunc) (struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_get_guild_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_get_guild_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.get_guild(md); + } + if( HPMHooks.count.HP_mercenary_get_guild_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_get_guild_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_get_guild_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mercenary_get_faith(struct mercenary_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_get_faith_pre ) { + int (*preHookFunc) (struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_get_faith_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_get_faith_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.get_faith(md); + } + if( HPMHooks.count.HP_mercenary_get_faith_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_get_faith_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_get_faith_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mercenary_set_faith(struct mercenary_data *md, int value) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_set_faith_pre ) { + int (*preHookFunc) (struct mercenary_data *md, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_set_faith_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_set_faith_pre[hIndex].func; + retVal___ = preHookFunc(md, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.set_faith(md, value); + } + if( HPMHooks.count.HP_mercenary_set_faith_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_set_faith_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_set_faith_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &value); + } + } + return retVal___; +} +int HP_mercenary_get_calls(struct mercenary_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_get_calls_pre ) { + int (*preHookFunc) (struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_get_calls_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_get_calls_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.get_calls(md); + } + if( HPMHooks.count.HP_mercenary_get_calls_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_get_calls_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_get_calls_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mercenary_set_calls(struct mercenary_data *md, int value) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_set_calls_pre ) { + int (*preHookFunc) (struct mercenary_data *md, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_set_calls_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_set_calls_pre[hIndex].func; + retVal___ = preHookFunc(md, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.set_calls(md, value); + } + if( HPMHooks.count.HP_mercenary_set_calls_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_set_calls_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_set_calls_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &value); + } + } + return retVal___; +} +int HP_mercenary_kills(struct mercenary_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_kills_pre ) { + int (*preHookFunc) (struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_kills_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_kills_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.kills(md); + } + if( HPMHooks.count.HP_mercenary_kills_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_kills_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_kills_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mercenary_checkskill(struct mercenary_data *md, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_checkskill_pre ) { + int (*preHookFunc) (struct mercenary_data *md, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_checkskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_checkskill_pre[hIndex].func; + retVal___ = preHookFunc(md, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.checkskill(md, skill_id); + } + if( HPMHooks.count.HP_mercenary_checkskill_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_checkskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_checkskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &skill_id); + } + } + return retVal___; +} +int HP_mercenary_read_db(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_read_db_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_read_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_read_db_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.read_db(); + } + if( HPMHooks.count.HP_mercenary_read_db_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_read_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_read_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_mercenary_read_skilldb(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_read_skilldb_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_read_skilldb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_read_skilldb_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.read_skilldb(); + } + if( HPMHooks.count.HP_mercenary_read_skilldb_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_read_skilldb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_read_skilldb_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_mercenary_killbonus(struct mercenary_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_killbonus_pre ) { + int (*preHookFunc) (struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_killbonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_killbonus_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.killbonus(md); + } + if( HPMHooks.count.HP_mercenary_killbonus_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_killbonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_killbonus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mercenary_search_index(int class_) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_search_index_pre ) { + int (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_search_index_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_search_index_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.search_index(class_); + } + if( HPMHooks.count.HP_mercenary_search_index_post ) { + int (*postHookFunc) (int retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_search_index_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_search_index_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +int HP_mercenary_contract_end_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mercenary_contract_end_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_contract_end_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_contract_end_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.contract_end_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_mercenary_contract_end_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_contract_end_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_contract_end_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +bool HP_mercenary_read_db_sub(char *str[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mercenary_read_db_sub_pre ) { + bool (*preHookFunc) (char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_read_db_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_read_db_sub_pre[hIndex].func; + retVal___ = preHookFunc(str, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.read_db_sub(str, columns, current); + } + if( HPMHooks.count.HP_mercenary_read_db_sub_post ) { + bool (*postHookFunc) (bool retVal___, char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_read_db_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_read_db_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &columns, ¤t); + } + } + return retVal___; +} +bool HP_mercenary_read_skill_db_sub(char *str[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mercenary_read_skill_db_sub_pre ) { + bool (*preHookFunc) (char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_read_skill_db_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mercenary_read_skill_db_sub_pre[hIndex].func; + retVal___ = preHookFunc(str, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mercenary.read_skill_db_sub(str, columns, current); + } + if( HPMHooks.count.HP_mercenary_read_skill_db_sub_post ) { + bool (*postHookFunc) (bool retVal___, char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mercenary_read_skill_db_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mercenary_read_skill_db_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &columns, ¤t); + } + } + return retVal___; +} +/* mob */ +int HP_mob_init(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_init_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.init(); + } + if( HPMHooks.count.HP_mob_init_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_mob_final(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_final_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_final_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.final(); + } + if( HPMHooks.count.HP_mob_final_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_mob_reload(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_reload_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_reload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_reload_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.reload(); + } + if( HPMHooks.count.HP_mob_reload_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_reload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_reload_post[hIndex].func; + postHookFunc(); + } + } + return; +} +struct mob_db* HP_mob_db(int index) { + int hIndex = 0; + struct mob_db* retVal___ = NULL; + if( HPMHooks.count.HP_mob_db_pre ) { + struct mob_db* (*preHookFunc) (int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_db_pre[hIndex].func; + retVal___ = preHookFunc(&index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.db(index); + } + if( HPMHooks.count.HP_mob_db_post ) { + struct mob_db* (*postHookFunc) (struct mob_db* retVal___, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &index); + } + } + return retVal___; +} +struct mob_chat* HP_mob_chat(short id) { + int hIndex = 0; + struct mob_chat* retVal___ = NULL; + if( HPMHooks.count.HP_mob_chat_pre ) { + struct mob_chat* (*preHookFunc) (short *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_chat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_chat_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.chat(id); + } + if( HPMHooks.count.HP_mob_chat_post ) { + struct mob_chat* (*postHookFunc) (struct mob_chat* retVal___, short *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_chat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_chat_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +int HP_mob_makedummymobdb(int p1) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_makedummymobdb_pre ) { + int (*preHookFunc) (int *p1); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_makedummymobdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_makedummymobdb_pre[hIndex].func; + retVal___ = preHookFunc(&p1); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.makedummymobdb(p1); + } + if( HPMHooks.count.HP_mob_makedummymobdb_post ) { + int (*postHookFunc) (int retVal___, int *p1); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_makedummymobdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_makedummymobdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &p1); + } + } + return retVal___; +} +int HP_mob_spawn_guardian_sub(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_spawn_guardian_sub_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_spawn_guardian_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_spawn_guardian_sub_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.spawn_guardian_sub(tid, tick, id, data); + } + if( HPMHooks.count.HP_mob_spawn_guardian_sub_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_spawn_guardian_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_spawn_guardian_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_mob_skill_id2skill_idx(int class_, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_skill_id2skill_idx_pre ) { + int (*preHookFunc) (int *class_, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_skill_id2skill_idx_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_skill_id2skill_idx_pre[hIndex].func; + retVal___ = preHookFunc(&class_, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.skill_id2skill_idx(class_, skill_id); + } + if( HPMHooks.count.HP_mob_skill_id2skill_idx_post ) { + int (*postHookFunc) (int retVal___, int *class_, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_skill_id2skill_idx_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_skill_id2skill_idx_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_, &skill_id); + } + } + return retVal___; +} +int HP_mob_db_searchname(const char *str) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_db_searchname_pre ) { + int (*preHookFunc) (const char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_db_searchname_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_db_searchname_pre[hIndex].func; + retVal___ = preHookFunc(str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.db_searchname(str); + } + if( HPMHooks.count.HP_mob_db_searchname_post ) { + int (*postHookFunc) (int retVal___, const char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_db_searchname_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_db_searchname_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str); + } + } + return retVal___; +} +int HP_mob_db_searchname_array_sub(struct mob_db *mob, const char *str, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_db_searchname_array_sub_pre ) { + int (*preHookFunc) (struct mob_db *mob, const char *str, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_db_searchname_array_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_db_searchname_array_sub_pre[hIndex].func; + retVal___ = preHookFunc(mob, str, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.db_searchname_array_sub(mob, str, flag); + } + if( HPMHooks.count.HP_mob_db_searchname_array_sub_post ) { + int (*postHookFunc) (int retVal___, struct mob_db *mob, const char *str, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_db_searchname_array_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_db_searchname_array_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, mob, str, &flag); + } + } + return retVal___; +} +void HP_mob_mvptomb_create(struct mob_data *md, char *killer, time_t time) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_mvptomb_create_pre ) { + void (*preHookFunc) (struct mob_data *md, char *killer, time_t *time); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_mvptomb_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_mvptomb_create_pre[hIndex].func; + preHookFunc(md, killer, &time); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.mvptomb_create(md, killer, time); + } + if( HPMHooks.count.HP_mob_mvptomb_create_post ) { + void (*postHookFunc) (struct mob_data *md, char *killer, time_t *time); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_mvptomb_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_mvptomb_create_post[hIndex].func; + postHookFunc(md, killer, &time); + } + } + return; +} +void HP_mob_mvptomb_destroy(struct mob_data *md) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_mvptomb_destroy_pre ) { + void (*preHookFunc) (struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_mvptomb_destroy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_mvptomb_destroy_pre[hIndex].func; + preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.mvptomb_destroy(md); + } + if( HPMHooks.count.HP_mob_mvptomb_destroy_post ) { + void (*postHookFunc) (struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_mvptomb_destroy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_mvptomb_destroy_post[hIndex].func; + postHookFunc(md); + } + } + return; +} +int HP_mob_db_searchname_array(struct mob_db **data, int size, const char *str, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_db_searchname_array_pre ) { + int (*preHookFunc) (struct mob_db **data, int *size, const char *str, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_db_searchname_array_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_db_searchname_array_pre[hIndex].func; + retVal___ = preHookFunc(data, &size, str, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.db_searchname_array(data, size, str, flag); + } + if( HPMHooks.count.HP_mob_db_searchname_array_post ) { + int (*postHookFunc) (int retVal___, struct mob_db **data, int *size, const char *str, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_db_searchname_array_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_db_searchname_array_post[hIndex].func; + retVal___ = postHookFunc(retVal___, data, &size, str, &flag); + } + } + return retVal___; +} +int HP_mob_db_checkid(const int id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_db_checkid_pre ) { + int (*preHookFunc) (const int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_db_checkid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_db_checkid_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.db_checkid(id); + } + if( HPMHooks.count.HP_mob_db_checkid_post ) { + int (*postHookFunc) (int retVal___, const int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_db_checkid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_db_checkid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +struct view_data* HP_mob_get_viewdata(int class_) { + int hIndex = 0; + struct view_data* retVal___ = NULL; + if( HPMHooks.count.HP_mob_get_viewdata_pre ) { + struct view_data* (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_get_viewdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_get_viewdata_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.get_viewdata(class_); + } + if( HPMHooks.count.HP_mob_get_viewdata_post ) { + struct view_data* (*postHookFunc) (struct view_data* retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_get_viewdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_get_viewdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +int HP_mob_parse_dataset(struct spawn_data *data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_parse_dataset_pre ) { + int (*preHookFunc) (struct spawn_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_parse_dataset_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_parse_dataset_pre[hIndex].func; + retVal___ = preHookFunc(data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.parse_dataset(data); + } + if( HPMHooks.count.HP_mob_parse_dataset_post ) { + int (*postHookFunc) (int retVal___, struct spawn_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_parse_dataset_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_parse_dataset_post[hIndex].func; + retVal___ = postHookFunc(retVal___, data); + } + } + return retVal___; +} +struct mob_data* HP_mob_spawn_dataset(struct spawn_data *data) { + int hIndex = 0; + struct mob_data* retVal___ = NULL; + if( HPMHooks.count.HP_mob_spawn_dataset_pre ) { + struct mob_data* (*preHookFunc) (struct spawn_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_spawn_dataset_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_spawn_dataset_pre[hIndex].func; + retVal___ = preHookFunc(data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.spawn_dataset(data); + } + if( HPMHooks.count.HP_mob_spawn_dataset_post ) { + struct mob_data* (*postHookFunc) (struct mob_data* retVal___, struct spawn_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_spawn_dataset_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_spawn_dataset_post[hIndex].func; + retVal___ = postHookFunc(retVal___, data); + } + } + return retVal___; +} +int HP_mob_get_random_id(int type, int flag, int lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_get_random_id_pre ) { + int (*preHookFunc) (int *type, int *flag, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_get_random_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_get_random_id_pre[hIndex].func; + retVal___ = preHookFunc(&type, &flag, &lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.get_random_id(type, flag, lv); + } + if( HPMHooks.count.HP_mob_get_random_id_post ) { + int (*postHookFunc) (int retVal___, int *type, int *flag, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_get_random_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_get_random_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &type, &flag, &lv); + } + } + return retVal___; +} +bool HP_mob_ksprotected(struct block_list *src, struct block_list *target) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mob_ksprotected_pre ) { + bool (*preHookFunc) (struct block_list *src, struct block_list *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ksprotected_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_ksprotected_pre[hIndex].func; + retVal___ = preHookFunc(src, target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.ksprotected(src, target); + } + if( HPMHooks.count.HP_mob_ksprotected_post ) { + bool (*postHookFunc) (bool retVal___, struct block_list *src, struct block_list *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ksprotected_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_ksprotected_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target); + } + } + return retVal___; +} +struct mob_data* HP_mob_once_spawn_sub(struct block_list *bl, int16 m, int16 x, int16 y, const char *mobname, int class_, const char *event, unsigned int size, unsigned int ai) { + int hIndex = 0; + struct mob_data* retVal___ = NULL; + if( HPMHooks.count.HP_mob_once_spawn_sub_pre ) { + struct mob_data* (*preHookFunc) (struct block_list *bl, int16 *m, int16 *x, int16 *y, const char *mobname, int *class_, const char *event, unsigned int *size, unsigned int *ai); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_once_spawn_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_once_spawn_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, &m, &x, &y, mobname, &class_, event, &size, &ai); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.once_spawn_sub(bl, m, x, y, mobname, class_, event, size, ai); + } + if( HPMHooks.count.HP_mob_once_spawn_sub_post ) { + struct mob_data* (*postHookFunc) (struct mob_data* retVal___, struct block_list *bl, int16 *m, int16 *x, int16 *y, const char *mobname, int *class_, const char *event, unsigned int *size, unsigned int *ai); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_once_spawn_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_once_spawn_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &m, &x, &y, mobname, &class_, event, &size, &ai); + } + } + return retVal___; +} +int HP_mob_once_spawn(struct map_session_data *sd, int16 m, int16 x, int16 y, const char *mobname, int class_, int amount, const char *event, unsigned int size, unsigned int ai) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_once_spawn_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int16 *m, int16 *x, int16 *y, const char *mobname, int *class_, int *amount, const char *event, unsigned int *size, unsigned int *ai); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_once_spawn_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_once_spawn_pre[hIndex].func; + retVal___ = preHookFunc(sd, &m, &x, &y, mobname, &class_, &amount, event, &size, &ai); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.once_spawn(sd, m, x, y, mobname, class_, amount, event, size, ai); + } + if( HPMHooks.count.HP_mob_once_spawn_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int16 *m, int16 *x, int16 *y, const char *mobname, int *class_, int *amount, const char *event, unsigned int *size, unsigned int *ai); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_once_spawn_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_once_spawn_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &m, &x, &y, mobname, &class_, &amount, event, &size, &ai); + } + } + return retVal___; +} +int HP_mob_once_spawn_area(struct map_session_data *sd, int16 m, int16 x0, int16 y0, int16 x1, int16 y1, const char *mobname, int class_, int amount, const char *event, unsigned int size, unsigned int ai) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_once_spawn_area_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, const char *mobname, int *class_, int *amount, const char *event, unsigned int *size, unsigned int *ai); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_once_spawn_area_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_once_spawn_area_pre[hIndex].func; + retVal___ = preHookFunc(sd, &m, &x0, &y0, &x1, &y1, mobname, &class_, &amount, event, &size, &ai); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.once_spawn_area(sd, m, x0, y0, x1, y1, mobname, class_, amount, event, size, ai); + } + if( HPMHooks.count.HP_mob_once_spawn_area_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, const char *mobname, int *class_, int *amount, const char *event, unsigned int *size, unsigned int *ai); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_once_spawn_area_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_once_spawn_area_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &m, &x0, &y0, &x1, &y1, mobname, &class_, &amount, event, &size, &ai); + } + } + return retVal___; +} +int HP_mob_spawn_guardian(const char *mapname, short x, short y, const char *mobname, int class_, const char *event, int guardian, bool has_index) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_spawn_guardian_pre ) { + int (*preHookFunc) (const char *mapname, short *x, short *y, const char *mobname, int *class_, const char *event, int *guardian, bool *has_index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_spawn_guardian_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_spawn_guardian_pre[hIndex].func; + retVal___ = preHookFunc(mapname, &x, &y, mobname, &class_, event, &guardian, &has_index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.spawn_guardian(mapname, x, y, mobname, class_, event, guardian, has_index); + } + if( HPMHooks.count.HP_mob_spawn_guardian_post ) { + int (*postHookFunc) (int retVal___, const char *mapname, short *x, short *y, const char *mobname, int *class_, const char *event, int *guardian, bool *has_index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_spawn_guardian_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_spawn_guardian_post[hIndex].func; + retVal___ = postHookFunc(retVal___, mapname, &x, &y, mobname, &class_, event, &guardian, &has_index); + } + } + return retVal___; +} +int HP_mob_spawn_bg(const char *mapname, short x, short y, const char *mobname, int class_, const char *event, unsigned int bg_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_spawn_bg_pre ) { + int (*preHookFunc) (const char *mapname, short *x, short *y, const char *mobname, int *class_, const char *event, unsigned int *bg_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_spawn_bg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_spawn_bg_pre[hIndex].func; + retVal___ = preHookFunc(mapname, &x, &y, mobname, &class_, event, &bg_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.spawn_bg(mapname, x, y, mobname, class_, event, bg_id); + } + if( HPMHooks.count.HP_mob_spawn_bg_post ) { + int (*postHookFunc) (int retVal___, const char *mapname, short *x, short *y, const char *mobname, int *class_, const char *event, unsigned int *bg_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_spawn_bg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_spawn_bg_post[hIndex].func; + retVal___ = postHookFunc(retVal___, mapname, &x, &y, mobname, &class_, event, &bg_id); + } + } + return retVal___; +} +int HP_mob_can_reach(struct mob_data *md, struct block_list *bl, int range, int state) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_can_reach_pre ) { + int (*preHookFunc) (struct mob_data *md, struct block_list *bl, int *range, int *state); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_can_reach_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_can_reach_pre[hIndex].func; + retVal___ = preHookFunc(md, bl, &range, &state); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.can_reach(md, bl, range, state); + } + if( HPMHooks.count.HP_mob_can_reach_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, struct block_list *bl, int *range, int *state); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_can_reach_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_can_reach_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, bl, &range, &state); + } + } + return retVal___; +} +int HP_mob_linksearch(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_linksearch_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_linksearch_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_linksearch_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.linksearch(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_linksearch_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_linksearch_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_linksearch_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_delayspawn(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_delayspawn_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_delayspawn_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_delayspawn_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.delayspawn(tid, tick, id, data); + } + if( HPMHooks.count.HP_mob_delayspawn_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_delayspawn_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_delayspawn_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_mob_setdelayspawn(struct mob_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_setdelayspawn_pre ) { + int (*preHookFunc) (struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_setdelayspawn_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_setdelayspawn_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.setdelayspawn(md); + } + if( HPMHooks.count.HP_mob_setdelayspawn_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_setdelayspawn_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_setdelayspawn_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mob_count_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_count_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_count_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_count_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.count_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_count_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_count_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_count_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_spawn(struct mob_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_spawn_pre ) { + int (*preHookFunc) (struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_spawn_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_spawn_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.spawn(md); + } + if( HPMHooks.count.HP_mob_spawn_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_spawn_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_spawn_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mob_can_changetarget(struct mob_data *md, struct block_list *target, int mode) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_can_changetarget_pre ) { + int (*preHookFunc) (struct mob_data *md, struct block_list *target, int *mode); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_can_changetarget_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_can_changetarget_pre[hIndex].func; + retVal___ = preHookFunc(md, target, &mode); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.can_changetarget(md, target, mode); + } + if( HPMHooks.count.HP_mob_can_changetarget_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, struct block_list *target, int *mode); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_can_changetarget_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_can_changetarget_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, target, &mode); + } + } + return retVal___; +} +int HP_mob_target(struct mob_data *md, struct block_list *bl, int dist) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_target_pre ) { + int (*preHookFunc) (struct mob_data *md, struct block_list *bl, int *dist); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_target_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_target_pre[hIndex].func; + retVal___ = preHookFunc(md, bl, &dist); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.target(md, bl, dist); + } + if( HPMHooks.count.HP_mob_target_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, struct block_list *bl, int *dist); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_target_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_target_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, bl, &dist); + } + } + return retVal___; +} +int HP_mob_ai_sub_hard_activesearch(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_ai_sub_hard_activesearch_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_activesearch_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_activesearch_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.ai_sub_hard_activesearch(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_ai_sub_hard_activesearch_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_activesearch_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_activesearch_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_ai_sub_hard_changechase(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_ai_sub_hard_changechase_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_changechase_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_changechase_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.ai_sub_hard_changechase(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_ai_sub_hard_changechase_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_changechase_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_changechase_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_ai_sub_hard_bg_ally(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_ai_sub_hard_bg_ally_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_bg_ally_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_bg_ally_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.ai_sub_hard_bg_ally(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_ai_sub_hard_bg_ally_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_bg_ally_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_bg_ally_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_ai_sub_hard_lootsearch(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_ai_sub_hard_lootsearch_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_lootsearch_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_lootsearch_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.ai_sub_hard_lootsearch(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_ai_sub_hard_lootsearch_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_lootsearch_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_lootsearch_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_warpchase_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_warpchase_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_warpchase_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_warpchase_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.warpchase_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_warpchase_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_warpchase_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_warpchase_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_ai_sub_hard_slavemob(struct mob_data *md, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_ai_sub_hard_slavemob_pre ) { + int (*preHookFunc) (struct mob_data *md, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_slavemob_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_slavemob_pre[hIndex].func; + retVal___ = preHookFunc(md, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.ai_sub_hard_slavemob(md, tick); + } + if( HPMHooks.count.HP_mob_ai_sub_hard_slavemob_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_slavemob_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_slavemob_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &tick); + } + } + return retVal___; +} +int HP_mob_unlocktarget(struct mob_data *md, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_unlocktarget_pre ) { + int (*preHookFunc) (struct mob_data *md, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_unlocktarget_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_unlocktarget_pre[hIndex].func; + retVal___ = preHookFunc(md, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.unlocktarget(md, tick); + } + if( HPMHooks.count.HP_mob_unlocktarget_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_unlocktarget_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_unlocktarget_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &tick); + } + } + return retVal___; +} +int HP_mob_randomwalk(struct mob_data *md, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_randomwalk_pre ) { + int (*preHookFunc) (struct mob_data *md, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_randomwalk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_randomwalk_pre[hIndex].func; + retVal___ = preHookFunc(md, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.randomwalk(md, tick); + } + if( HPMHooks.count.HP_mob_randomwalk_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_randomwalk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_randomwalk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &tick); + } + } + return retVal___; +} +int HP_mob_warpchase(struct mob_data *md, struct block_list *target) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_warpchase_pre ) { + int (*preHookFunc) (struct mob_data *md, struct block_list *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_warpchase_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_warpchase_pre[hIndex].func; + retVal___ = preHookFunc(md, target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.warpchase(md, target); + } + if( HPMHooks.count.HP_mob_warpchase_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, struct block_list *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_warpchase_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_warpchase_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, target); + } + } + return retVal___; +} +bool HP_mob_ai_sub_hard(struct mob_data *md, unsigned int tick) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mob_ai_sub_hard_pre ) { + bool (*preHookFunc) (struct mob_data *md, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_pre[hIndex].func; + retVal___ = preHookFunc(md, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.ai_sub_hard(md, tick); + } + if( HPMHooks.count.HP_mob_ai_sub_hard_post ) { + bool (*postHookFunc) (bool retVal___, struct mob_data *md, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &tick); + } + } + return retVal___; +} +int HP_mob_ai_sub_hard_timer(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_ai_sub_hard_timer_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_timer_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_timer_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.ai_sub_hard_timer(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_ai_sub_hard_timer_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_hard_timer_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_ai_sub_hard_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_ai_sub_foreachclient(struct map_session_data *sd, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_ai_sub_foreachclient_pre ) { + int (*preHookFunc) (struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_foreachclient_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_ai_sub_foreachclient_pre[hIndex].func; + retVal___ = preHookFunc(sd, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.ai_sub_foreachclient(sd, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_ai_sub_foreachclient_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_foreachclient_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_ai_sub_foreachclient_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_ai_sub_lazy(struct mob_data *md, va_list args) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_ai_sub_lazy_pre ) { + int (*preHookFunc) (struct mob_data *md, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_lazy_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_mob_ai_sub_lazy_pre[hIndex].func; + retVal___ = preHookFunc(md, 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.mob.ai_sub_lazy(md, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_mob_ai_sub_lazy_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_sub_lazy_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_mob_ai_sub_lazy_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_mob_ai_lazy(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_ai_lazy_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_lazy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_ai_lazy_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.ai_lazy(tid, tick, id, data); + } + if( HPMHooks.count.HP_mob_ai_lazy_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_lazy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_ai_lazy_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_mob_ai_hard(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_ai_hard_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_hard_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_ai_hard_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.ai_hard(tid, tick, id, data); + } + if( HPMHooks.count.HP_mob_ai_hard_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_ai_hard_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_ai_hard_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +struct item_drop* HP_mob_setdropitem(int nameid, int qty, struct item_data *data) { + int hIndex = 0; + struct item_drop* retVal___ = NULL; + if( HPMHooks.count.HP_mob_setdropitem_pre ) { + struct item_drop* (*preHookFunc) (int *nameid, int *qty, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_setdropitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_setdropitem_pre[hIndex].func; + retVal___ = preHookFunc(&nameid, &qty, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.setdropitem(nameid, qty, data); + } + if( HPMHooks.count.HP_mob_setdropitem_post ) { + struct item_drop* (*postHookFunc) (struct item_drop* retVal___, int *nameid, int *qty, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_setdropitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_setdropitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &nameid, &qty, data); + } + } + return retVal___; +} +struct item_drop* HP_mob_setlootitem(struct item *item) { + int hIndex = 0; + struct item_drop* retVal___ = NULL; + if( HPMHooks.count.HP_mob_setlootitem_pre ) { + struct item_drop* (*preHookFunc) (struct item *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_setlootitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_setlootitem_pre[hIndex].func; + retVal___ = preHookFunc(item); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.setlootitem(item); + } + if( HPMHooks.count.HP_mob_setlootitem_post ) { + struct item_drop* (*postHookFunc) (struct item_drop* retVal___, struct item *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_setlootitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_setlootitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, item); + } + } + return retVal___; +} +int HP_mob_delay_item_drop(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_delay_item_drop_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_delay_item_drop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_delay_item_drop_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.delay_item_drop(tid, tick, id, data); + } + if( HPMHooks.count.HP_mob_delay_item_drop_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_delay_item_drop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_delay_item_drop_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_mob_item_drop(struct mob_data *md, struct item_drop_list *dlist, struct item_drop *ditem, int loot, int drop_rate, unsigned short flag) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_item_drop_pre ) { + void (*preHookFunc) (struct mob_data *md, struct item_drop_list *dlist, struct item_drop *ditem, int *loot, int *drop_rate, unsigned short *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_item_drop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_item_drop_pre[hIndex].func; + preHookFunc(md, dlist, ditem, &loot, &drop_rate, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.item_drop(md, dlist, ditem, loot, drop_rate, flag); + } + if( HPMHooks.count.HP_mob_item_drop_post ) { + void (*postHookFunc) (struct mob_data *md, struct item_drop_list *dlist, struct item_drop *ditem, int *loot, int *drop_rate, unsigned short *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_item_drop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_item_drop_post[hIndex].func; + postHookFunc(md, dlist, ditem, &loot, &drop_rate, &flag); + } + } + return; +} +int HP_mob_timer_delete(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_timer_delete_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_timer_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_timer_delete_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.timer_delete(tid, tick, id, data); + } + if( HPMHooks.count.HP_mob_timer_delete_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_timer_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_timer_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_mob_deleteslave_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_deleteslave_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_deleteslave_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_deleteslave_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.deleteslave_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_deleteslave_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_deleteslave_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_deleteslave_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_deleteslave(struct mob_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_deleteslave_pre ) { + int (*preHookFunc) (struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_deleteslave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_deleteslave_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.deleteslave(md); + } + if( HPMHooks.count.HP_mob_deleteslave_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_deleteslave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_deleteslave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mob_respawn(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_respawn_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_respawn_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_respawn_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.respawn(tid, tick, id, data); + } + if( HPMHooks.count.HP_mob_respawn_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_respawn_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_respawn_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_mob_log_damage(struct mob_data *md, struct block_list *src, int damage) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_log_damage_pre ) { + void (*preHookFunc) (struct mob_data *md, struct block_list *src, int *damage); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_log_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_log_damage_pre[hIndex].func; + preHookFunc(md, src, &damage); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.log_damage(md, src, damage); + } + if( HPMHooks.count.HP_mob_log_damage_post ) { + void (*postHookFunc) (struct mob_data *md, struct block_list *src, int *damage); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_log_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_log_damage_post[hIndex].func; + postHookFunc(md, src, &damage); + } + } + return; +} +void HP_mob_damage(struct mob_data *md, struct block_list *src, int damage) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_damage_pre ) { + void (*preHookFunc) (struct mob_data *md, struct block_list *src, int *damage); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_damage_pre[hIndex].func; + preHookFunc(md, src, &damage); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.damage(md, src, damage); + } + if( HPMHooks.count.HP_mob_damage_post ) { + void (*postHookFunc) (struct mob_data *md, struct block_list *src, int *damage); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_damage_post[hIndex].func; + postHookFunc(md, src, &damage); + } + } + return; +} +int HP_mob_dead(struct mob_data *md, struct block_list *src, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_dead_pre ) { + int (*preHookFunc) (struct mob_data *md, struct block_list *src, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_dead_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_dead_pre[hIndex].func; + retVal___ = preHookFunc(md, src, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.dead(md, src, type); + } + if( HPMHooks.count.HP_mob_dead_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, struct block_list *src, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_dead_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_dead_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, src, &type); + } + } + return retVal___; +} +void HP_mob_revive(struct mob_data *md, unsigned int hp) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_revive_pre ) { + void (*preHookFunc) (struct mob_data *md, unsigned int *hp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_revive_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_revive_pre[hIndex].func; + preHookFunc(md, &hp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.revive(md, hp); + } + if( HPMHooks.count.HP_mob_revive_post ) { + void (*postHookFunc) (struct mob_data *md, unsigned int *hp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_revive_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_revive_post[hIndex].func; + postHookFunc(md, &hp); + } + } + return; +} +int HP_mob_guardian_guildchange(struct mob_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_guardian_guildchange_pre ) { + int (*preHookFunc) (struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_guardian_guildchange_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_guardian_guildchange_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.guardian_guildchange(md); + } + if( HPMHooks.count.HP_mob_guardian_guildchange_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_guardian_guildchange_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_guardian_guildchange_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_mob_random_class(int *value, size_t count) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_random_class_pre ) { + int (*preHookFunc) (int *value, size_t *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_random_class_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_random_class_pre[hIndex].func; + retVal___ = preHookFunc(value, &count); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.random_class(value, count); + } + if( HPMHooks.count.HP_mob_random_class_post ) { + int (*postHookFunc) (int retVal___, int *value, size_t *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_random_class_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_random_class_post[hIndex].func; + retVal___ = postHookFunc(retVal___, value, &count); + } + } + return retVal___; +} +int HP_mob_class_change(struct mob_data *md, int class_) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_class_change_pre ) { + int (*preHookFunc) (struct mob_data *md, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_class_change_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_class_change_pre[hIndex].func; + retVal___ = preHookFunc(md, &class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.class_change(md, class_); + } + if( HPMHooks.count.HP_mob_class_change_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_class_change_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_class_change_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &class_); + } + } + return retVal___; +} +void HP_mob_heal(struct mob_data *md, unsigned int heal) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_heal_pre ) { + void (*preHookFunc) (struct mob_data *md, unsigned int *heal); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_heal_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_heal_pre[hIndex].func; + preHookFunc(md, &heal); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.heal(md, heal); + } + if( HPMHooks.count.HP_mob_heal_post ) { + void (*postHookFunc) (struct mob_data *md, unsigned int *heal); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_heal_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_heal_post[hIndex].func; + postHookFunc(md, &heal); + } + } + return; +} +int HP_mob_warpslave_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_warpslave_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_warpslave_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_warpslave_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.warpslave_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_warpslave_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_warpslave_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_warpslave_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_warpslave(struct block_list *bl, int range) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_warpslave_pre ) { + int (*preHookFunc) (struct block_list *bl, int *range); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_warpslave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_warpslave_pre[hIndex].func; + retVal___ = preHookFunc(bl, &range); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.warpslave(bl, range); + } + if( HPMHooks.count.HP_mob_warpslave_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *range); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_warpslave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_warpslave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &range); + } + } + return retVal___; +} +int HP_mob_countslave_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_countslave_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_countslave_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_countslave_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.countslave_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_countslave_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_countslave_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_countslave_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_mob_countslave(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_countslave_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_countslave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_countslave_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.countslave(bl); + } + if( HPMHooks.count.HP_mob_countslave_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_countslave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_countslave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_mob_summonslave(struct mob_data *md2, int *value, int amount, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_summonslave_pre ) { + int (*preHookFunc) (struct mob_data *md2, int *value, int *amount, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_summonslave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_summonslave_pre[hIndex].func; + retVal___ = preHookFunc(md2, value, &amount, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.summonslave(md2, value, amount, skill_id); + } + if( HPMHooks.count.HP_mob_summonslave_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md2, int *value, int *amount, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_summonslave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_summonslave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md2, value, &amount, &skill_id); + } + } + return retVal___; +} +int HP_mob_getfriendhprate_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_getfriendhprate_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_getfriendhprate_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_getfriendhprate_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.getfriendhprate_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_getfriendhprate_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_getfriendhprate_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_getfriendhprate_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +struct block_list* HP_mob_getfriendhprate(struct mob_data *md, int min_rate, int max_rate) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_mob_getfriendhprate_pre ) { + struct block_list* (*preHookFunc) (struct mob_data *md, int *min_rate, int *max_rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_getfriendhprate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_getfriendhprate_pre[hIndex].func; + retVal___ = preHookFunc(md, &min_rate, &max_rate); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.getfriendhprate(md, min_rate, max_rate); + } + if( HPMHooks.count.HP_mob_getfriendhprate_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct mob_data *md, int *min_rate, int *max_rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_getfriendhprate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_getfriendhprate_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &min_rate, &max_rate); + } + } + return retVal___; +} +struct block_list* HP_mob_getmasterhpltmaxrate(struct mob_data *md, int rate) { + int hIndex = 0; + struct block_list* retVal___ = NULL; + if( HPMHooks.count.HP_mob_getmasterhpltmaxrate_pre ) { + struct block_list* (*preHookFunc) (struct mob_data *md, int *rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_getmasterhpltmaxrate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_getmasterhpltmaxrate_pre[hIndex].func; + retVal___ = preHookFunc(md, &rate); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.getmasterhpltmaxrate(md, rate); + } + if( HPMHooks.count.HP_mob_getmasterhpltmaxrate_post ) { + struct block_list* (*postHookFunc) (struct block_list* retVal___, struct mob_data *md, int *rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_getmasterhpltmaxrate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_getmasterhpltmaxrate_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &rate); + } + } + return retVal___; +} +int HP_mob_getfriendstatus_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_getfriendstatus_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_getfriendstatus_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_mob_getfriendstatus_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.mob.getfriendstatus_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_mob_getfriendstatus_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_getfriendstatus_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_mob_getfriendstatus_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +struct mob_data* HP_mob_getfriendstatus(struct mob_data *md, int cond1, int cond2) { + int hIndex = 0; + struct mob_data* retVal___ = NULL; + if( HPMHooks.count.HP_mob_getfriendstatus_pre ) { + struct mob_data* (*preHookFunc) (struct mob_data *md, int *cond1, int *cond2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_getfriendstatus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_getfriendstatus_pre[hIndex].func; + retVal___ = preHookFunc(md, &cond1, &cond2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.getfriendstatus(md, cond1, cond2); + } + if( HPMHooks.count.HP_mob_getfriendstatus_post ) { + struct mob_data* (*postHookFunc) (struct mob_data* retVal___, struct mob_data *md, int *cond1, int *cond2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_getfriendstatus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_getfriendstatus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &cond1, &cond2); + } + } + return retVal___; +} +int HP_mob_skill_use(struct mob_data *md, unsigned int tick, int event) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_skill_use_pre ) { + int (*preHookFunc) (struct mob_data *md, unsigned int *tick, int *event); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_skill_use_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_skill_use_pre[hIndex].func; + retVal___ = preHookFunc(md, &tick, &event); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.skill_use(md, tick, event); + } + if( HPMHooks.count.HP_mob_skill_use_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, unsigned int *tick, int *event); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_skill_use_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_skill_use_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &tick, &event); + } + } + return retVal___; +} +int HP_mob_skill_event(struct mob_data *md, struct block_list *src, unsigned int tick, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_skill_event_pre ) { + int (*preHookFunc) (struct mob_data *md, struct block_list *src, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_skill_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_skill_event_pre[hIndex].func; + retVal___ = preHookFunc(md, src, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.skill_event(md, src, tick, flag); + } + if( HPMHooks.count.HP_mob_skill_event_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, struct block_list *src, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_skill_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_skill_event_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, src, &tick, &flag); + } + } + return retVal___; +} +int HP_mob_is_clone(int class_) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_is_clone_pre ) { + int (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_is_clone_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_is_clone_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.is_clone(class_); + } + if( HPMHooks.count.HP_mob_is_clone_post ) { + int (*postHookFunc) (int retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_is_clone_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_is_clone_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +int HP_mob_clone_spawn(struct map_session_data *sd, int16 m, int16 x, int16 y, const char *event, int master_id, int mode, int flag, unsigned int duration) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_clone_spawn_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int16 *m, int16 *x, int16 *y, const char *event, int *master_id, int *mode, int *flag, unsigned int *duration); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_clone_spawn_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_clone_spawn_pre[hIndex].func; + retVal___ = preHookFunc(sd, &m, &x, &y, event, &master_id, &mode, &flag, &duration); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.clone_spawn(sd, m, x, y, event, master_id, mode, flag, duration); + } + if( HPMHooks.count.HP_mob_clone_spawn_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int16 *m, int16 *x, int16 *y, const char *event, int *master_id, int *mode, int *flag, unsigned int *duration); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_clone_spawn_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_clone_spawn_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &m, &x, &y, event, &master_id, &mode, &flag, &duration); + } + } + return retVal___; +} +int HP_mob_clone_delete(struct mob_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_clone_delete_pre ) { + int (*preHookFunc) (struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_clone_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_clone_delete_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.clone_delete(md); + } + if( HPMHooks.count.HP_mob_clone_delete_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_clone_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_clone_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +unsigned int HP_mob_drop_adjust(int baserate, int rate_adjust, unsigned short rate_min, unsigned short rate_max) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_mob_drop_adjust_pre ) { + unsigned int (*preHookFunc) (int *baserate, int *rate_adjust, unsigned short *rate_min, unsigned short *rate_max); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_drop_adjust_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_drop_adjust_pre[hIndex].func; + retVal___ = preHookFunc(&baserate, &rate_adjust, &rate_min, &rate_max); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.drop_adjust(baserate, rate_adjust, rate_min, rate_max); + } + if( HPMHooks.count.HP_mob_drop_adjust_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, int *baserate, int *rate_adjust, unsigned short *rate_min, unsigned short *rate_max); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_drop_adjust_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_drop_adjust_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &baserate, &rate_adjust, &rate_min, &rate_max); + } + } + return retVal___; +} +void HP_mob_item_dropratio_adjust(int nameid, int mob_id, int *rate_adjust) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_item_dropratio_adjust_pre ) { + void (*preHookFunc) (int *nameid, int *mob_id, int *rate_adjust); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_item_dropratio_adjust_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_item_dropratio_adjust_pre[hIndex].func; + preHookFunc(&nameid, &mob_id, rate_adjust); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.item_dropratio_adjust(nameid, mob_id, rate_adjust); + } + if( HPMHooks.count.HP_mob_item_dropratio_adjust_post ) { + void (*postHookFunc) (int *nameid, int *mob_id, int *rate_adjust); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_item_dropratio_adjust_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_item_dropratio_adjust_post[hIndex].func; + postHookFunc(&nameid, &mob_id, rate_adjust); + } + } + return; +} +bool HP_mob_parse_dbrow(char **str) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mob_parse_dbrow_pre ) { + bool (*preHookFunc) (char **str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_parse_dbrow_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_parse_dbrow_pre[hIndex].func; + retVal___ = preHookFunc(str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.parse_dbrow(str); + } + if( HPMHooks.count.HP_mob_parse_dbrow_post ) { + bool (*postHookFunc) (bool retVal___, char **str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_parse_dbrow_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_parse_dbrow_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str); + } + } + return retVal___; +} +bool HP_mob_readdb_sub(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mob_readdb_sub_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_readdb_sub_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.readdb_sub(fields, columns, current); + } + if( HPMHooks.count.HP_mob_readdb_sub_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_readdb_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +void HP_mob_readdb(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_readdb_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_readdb_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.readdb(); + } + if( HPMHooks.count.HP_mob_readdb_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_readdb_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_mob_read_sqldb(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_read_sqldb_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_read_sqldb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_read_sqldb_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.read_sqldb(); + } + if( HPMHooks.count.HP_mob_read_sqldb_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_read_sqldb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_read_sqldb_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +bool HP_mob_readdb_mobavail(char *str[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mob_readdb_mobavail_pre ) { + bool (*preHookFunc) (char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_mobavail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_readdb_mobavail_pre[hIndex].func; + retVal___ = preHookFunc(str, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.readdb_mobavail(str, columns, current); + } + if( HPMHooks.count.HP_mob_readdb_mobavail_post ) { + bool (*postHookFunc) (bool retVal___, char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_mobavail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_readdb_mobavail_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &columns, ¤t); + } + } + return retVal___; +} +int HP_mob_read_randommonster(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_read_randommonster_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_read_randommonster_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_read_randommonster_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.read_randommonster(); + } + if( HPMHooks.count.HP_mob_read_randommonster_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_read_randommonster_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_read_randommonster_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +bool HP_mob_parse_row_chatdb(char **str, const char *source, int line, int *last_msg_id) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mob_parse_row_chatdb_pre ) { + bool (*preHookFunc) (char **str, const char *source, int *line, int *last_msg_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_parse_row_chatdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_parse_row_chatdb_pre[hIndex].func; + retVal___ = preHookFunc(str, source, &line, last_msg_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.parse_row_chatdb(str, source, line, last_msg_id); + } + if( HPMHooks.count.HP_mob_parse_row_chatdb_post ) { + bool (*postHookFunc) (bool retVal___, char **str, const char *source, int *line, int *last_msg_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_parse_row_chatdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_parse_row_chatdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, source, &line, last_msg_id); + } + } + return retVal___; +} +void HP_mob_readchatdb(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_readchatdb_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readchatdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_readchatdb_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.readchatdb(); + } + if( HPMHooks.count.HP_mob_readchatdb_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readchatdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_readchatdb_post[hIndex].func; + postHookFunc(); + } + } + return; +} +bool HP_mob_parse_row_mobskilldb(char **str, int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mob_parse_row_mobskilldb_pre ) { + bool (*preHookFunc) (char **str, int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_parse_row_mobskilldb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_parse_row_mobskilldb_pre[hIndex].func; + retVal___ = preHookFunc(str, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.parse_row_mobskilldb(str, columns, current); + } + if( HPMHooks.count.HP_mob_parse_row_mobskilldb_post ) { + bool (*postHookFunc) (bool retVal___, char **str, int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_parse_row_mobskilldb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_parse_row_mobskilldb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &columns, ¤t); + } + } + return retVal___; +} +void HP_mob_readskilldb(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_readskilldb_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readskilldb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_readskilldb_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.readskilldb(); + } + if( HPMHooks.count.HP_mob_readskilldb_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readskilldb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_readskilldb_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_mob_read_sqlskilldb(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_mob_read_sqlskilldb_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_read_sqlskilldb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_read_sqlskilldb_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.read_sqlskilldb(); + } + if( HPMHooks.count.HP_mob_read_sqlskilldb_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_read_sqlskilldb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_read_sqlskilldb_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +bool HP_mob_readdb_race2(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mob_readdb_race2_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_race2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_readdb_race2_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.readdb_race2(fields, columns, current); + } + if( HPMHooks.count.HP_mob_readdb_race2_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_race2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_readdb_race2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +bool HP_mob_readdb_itemratio(char *str[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_mob_readdb_itemratio_pre ) { + bool (*preHookFunc) (char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_itemratio_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_readdb_itemratio_pre[hIndex].func; + retVal___ = preHookFunc(str, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.mob.readdb_itemratio(str, columns, current); + } + if( HPMHooks.count.HP_mob_readdb_itemratio_post ) { + bool (*postHookFunc) (bool retVal___, char *str[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_readdb_itemratio_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_readdb_itemratio_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &columns, ¤t); + } + } + return retVal___; +} +void HP_mob_load(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_load_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_load_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_load_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.load(); + } + if( HPMHooks.count.HP_mob_load_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_load_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_load_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_mob_clear_spawninfo(void) { + int hIndex = 0; + if( HPMHooks.count.HP_mob_clear_spawninfo_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_clear_spawninfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_mob_clear_spawninfo_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.mob.clear_spawninfo(); + } + if( HPMHooks.count.HP_mob_clear_spawninfo_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_mob_clear_spawninfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_mob_clear_spawninfo_post[hIndex].func; + postHookFunc(); + } + } + return; +} +/* npc */ +int HP_npc_init(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_init_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.init(); + } + if( HPMHooks.count.HP_npc_init_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_npc_final(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_final_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_final_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.final(); + } + if( HPMHooks.count.HP_npc_final_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_npc_get_new_npc_id(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_get_new_npc_id_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_get_new_npc_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_get_new_npc_id_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.get_new_npc_id(); + } + if( HPMHooks.count.HP_npc_get_new_npc_id_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_get_new_npc_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_get_new_npc_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +struct view_data* HP_npc_get_viewdata(int class_) { + int hIndex = 0; + struct view_data* retVal___ = NULL; + if( HPMHooks.count.HP_npc_get_viewdata_pre ) { + struct view_data* (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_get_viewdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_get_viewdata_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.get_viewdata(class_); + } + if( HPMHooks.count.HP_npc_get_viewdata_post ) { + struct view_data* (*postHookFunc) (struct view_data* retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_get_viewdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_get_viewdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +int HP_npc_isnear_sub(struct block_list *bl, va_list args) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_isnear_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_isnear_sub_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_npc_isnear_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, 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.npc.isnear_sub(bl, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_npc_isnear_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_isnear_sub_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_npc_isnear_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +bool HP_npc_isnear(struct block_list *bl) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_npc_isnear_pre ) { + bool (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_isnear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_isnear_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.isnear(bl); + } + if( HPMHooks.count.HP_npc_isnear_post ) { + bool (*postHookFunc) (bool retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_isnear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_isnear_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_npc_ontouch_event(struct map_session_data *sd, struct npc_data *nd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_ontouch_event_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_ontouch_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_ontouch_event_pre[hIndex].func; + retVal___ = preHookFunc(sd, nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.ontouch_event(sd, nd); + } + if( HPMHooks.count.HP_npc_ontouch_event_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_ontouch_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_ontouch_event_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, nd); + } + } + return retVal___; +} +int HP_npc_ontouch2_event(struct map_session_data *sd, struct npc_data *nd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_ontouch2_event_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_ontouch2_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_ontouch2_event_pre[hIndex].func; + retVal___ = preHookFunc(sd, nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.ontouch2_event(sd, nd); + } + if( HPMHooks.count.HP_npc_ontouch2_event_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_ontouch2_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_ontouch2_event_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, nd); + } + } + return retVal___; +} +int HP_npc_enable_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_enable_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_enable_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_npc_enable_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.npc.enable_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_npc_enable_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_enable_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_npc_enable_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_npc_enable(const char *name, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_enable_pre ) { + int (*preHookFunc) (const char *name, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_enable_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_enable_pre[hIndex].func; + retVal___ = preHookFunc(name, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.enable(name, flag); + } + if( HPMHooks.count.HP_npc_enable_post ) { + int (*postHookFunc) (int retVal___, const char *name, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_enable_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_enable_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name, &flag); + } + } + return retVal___; +} +struct npc_data* HP_npc_name2id(const char *name) { + int hIndex = 0; + struct npc_data* retVal___ = NULL; + if( HPMHooks.count.HP_npc_name2id_pre ) { + struct npc_data* (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_name2id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_name2id_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.name2id(name); + } + if( HPMHooks.count.HP_npc_name2id_post ) { + struct npc_data* (*postHookFunc) (struct npc_data* retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_name2id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_name2id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +int HP_npc_event_dequeue(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_event_dequeue_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_dequeue_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_event_dequeue_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.event_dequeue(sd); + } + if( HPMHooks.count.HP_npc_event_dequeue_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_dequeue_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_event_dequeue_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +DBData HP_npc_event_export_create(DBKey key, va_list args) { + int hIndex = 0; + DBData retVal___; + memset(&retVal___, '\0', sizeof(DBData)); + if( HPMHooks.count.HP_npc_event_export_create_pre ) { + DBData (*preHookFunc) (DBKey *key, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_export_create_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_npc_event_export_create_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.npc.event_export_create(key, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_npc_event_export_create_post ) { + DBData (*postHookFunc) (DBData retVal___, DBKey *key, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_export_create_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_npc_event_export_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_npc_event_export(struct npc_data *nd, int i) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_event_export_pre ) { + int (*preHookFunc) (struct npc_data *nd, int *i); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_export_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_event_export_pre[hIndex].func; + retVal___ = preHookFunc(nd, &i); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.event_export(nd, i); + } + if( HPMHooks.count.HP_npc_event_export_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd, int *i); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_export_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_event_export_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd, &i); + } + } + return retVal___; +} +int HP_npc_event_sub(struct map_session_data *sd, struct event_data *ev, const char *eventname) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_event_sub_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct event_data *ev, const char *eventname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_event_sub_pre[hIndex].func; + retVal___ = preHookFunc(sd, ev, eventname); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.event_sub(sd, ev, eventname); + } + if( HPMHooks.count.HP_npc_event_sub_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct event_data *ev, const char *eventname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_event_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ev, eventname); + } + } + return retVal___; +} +void HP_npc_event_doall_sub(void *key, void *data, va_list ap) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_event_doall_sub_pre ) { + void (*preHookFunc) (void *key, void *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_doall_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_npc_event_doall_sub_pre[hIndex].func; + preHookFunc(key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + HPMHooks.source.npc.event_doall_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_npc_event_doall_sub_post ) { + void (*postHookFunc) (void *key, void *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_doall_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_npc_event_doall_sub_post[hIndex].func; + postHookFunc(key, data, ap___copy); + va_end(ap___copy); + } + } + return; +} +int HP_npc_event_do(const char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_event_do_pre ) { + int (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_do_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_event_do_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.event_do(name); + } + if( HPMHooks.count.HP_npc_event_do_post ) { + int (*postHookFunc) (int retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_do_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_event_do_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +int HP_npc_event_doall_id(const char *name, int rid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_event_doall_id_pre ) { + int (*preHookFunc) (const char *name, int *rid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_doall_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_event_doall_id_pre[hIndex].func; + retVal___ = preHookFunc(name, &rid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.event_doall_id(name, rid); + } + if( HPMHooks.count.HP_npc_event_doall_id_post ) { + int (*postHookFunc) (int retVal___, const char *name, int *rid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_doall_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_event_doall_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name, &rid); + } + } + return retVal___; +} +int HP_npc_event_doall(const char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_event_doall_pre ) { + int (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_doall_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_event_doall_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.event_doall(name); + } + if( HPMHooks.count.HP_npc_event_doall_post ) { + int (*postHookFunc) (int retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_doall_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_event_doall_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +int HP_npc_event_do_clock(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_event_do_clock_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_do_clock_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_event_do_clock_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.event_do_clock(tid, tick, id, data); + } + if( HPMHooks.count.HP_npc_event_do_clock_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_do_clock_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_event_do_clock_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_npc_event_do_oninit(void) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_event_do_oninit_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_do_oninit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_event_do_oninit_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.event_do_oninit(); + } + if( HPMHooks.count.HP_npc_event_do_oninit_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_do_oninit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_event_do_oninit_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_npc_timerevent_export(struct npc_data *nd, int i) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_timerevent_export_pre ) { + int (*preHookFunc) (struct npc_data *nd, int *i); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_timerevent_export_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_timerevent_export_pre[hIndex].func; + retVal___ = preHookFunc(nd, &i); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.timerevent_export(nd, i); + } + if( HPMHooks.count.HP_npc_timerevent_export_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd, int *i); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_timerevent_export_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_timerevent_export_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd, &i); + } + } + return retVal___; +} +int HP_npc_timerevent(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_timerevent_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_timerevent_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_timerevent_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.timerevent(tid, tick, id, data); + } + if( HPMHooks.count.HP_npc_timerevent_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_timerevent_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_timerevent_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_npc_timerevent_start(struct npc_data *nd, int rid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_timerevent_start_pre ) { + int (*preHookFunc) (struct npc_data *nd, int *rid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_timerevent_start_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_timerevent_start_pre[hIndex].func; + retVal___ = preHookFunc(nd, &rid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.timerevent_start(nd, rid); + } + if( HPMHooks.count.HP_npc_timerevent_start_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd, int *rid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_timerevent_start_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_timerevent_start_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd, &rid); + } + } + return retVal___; +} +int HP_npc_timerevent_stop(struct npc_data *nd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_timerevent_stop_pre ) { + int (*preHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_timerevent_stop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_timerevent_stop_pre[hIndex].func; + retVal___ = preHookFunc(nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.timerevent_stop(nd); + } + if( HPMHooks.count.HP_npc_timerevent_stop_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_timerevent_stop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_timerevent_stop_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd); + } + } + return retVal___; +} +void HP_npc_timerevent_quit(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_timerevent_quit_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_timerevent_quit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_timerevent_quit_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.timerevent_quit(sd); + } + if( HPMHooks.count.HP_npc_timerevent_quit_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_timerevent_quit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_timerevent_quit_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_npc_gettimerevent_tick(struct npc_data *nd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_gettimerevent_tick_pre ) { + int (*preHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_gettimerevent_tick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_gettimerevent_tick_pre[hIndex].func; + retVal___ = preHookFunc(nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.gettimerevent_tick(nd); + } + if( HPMHooks.count.HP_npc_gettimerevent_tick_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_gettimerevent_tick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_gettimerevent_tick_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd); + } + } + return retVal___; +} +int HP_npc_settimerevent_tick(struct npc_data *nd, int newtimer) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_settimerevent_tick_pre ) { + int (*preHookFunc) (struct npc_data *nd, int *newtimer); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_settimerevent_tick_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_settimerevent_tick_pre[hIndex].func; + retVal___ = preHookFunc(nd, &newtimer); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.settimerevent_tick(nd, newtimer); + } + if( HPMHooks.count.HP_npc_settimerevent_tick_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd, int *newtimer); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_settimerevent_tick_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_settimerevent_tick_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd, &newtimer); + } + } + return retVal___; +} +int HP_npc_event(struct map_session_data *sd, const char *eventname, int ontouch) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_event_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *eventname, int *ontouch); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_event_pre[hIndex].func; + retVal___ = preHookFunc(sd, eventname, &ontouch); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.event(sd, eventname, ontouch); + } + if( HPMHooks.count.HP_npc_event_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *eventname, int *ontouch); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_event_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, eventname, &ontouch); + } + } + return retVal___; +} +int HP_npc_touch_areanpc_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_touch_areanpc_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_touch_areanpc_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_npc_touch_areanpc_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.npc.touch_areanpc_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_npc_touch_areanpc_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_touch_areanpc_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_npc_touch_areanpc_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_npc_touchnext_areanpc(struct map_session_data *sd, bool leavemap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_touchnext_areanpc_pre ) { + int (*preHookFunc) (struct map_session_data *sd, bool *leavemap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_touchnext_areanpc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_touchnext_areanpc_pre[hIndex].func; + retVal___ = preHookFunc(sd, &leavemap); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.touchnext_areanpc(sd, leavemap); + } + if( HPMHooks.count.HP_npc_touchnext_areanpc_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, bool *leavemap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_touchnext_areanpc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_touchnext_areanpc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &leavemap); + } + } + return retVal___; +} +int HP_npc_touch_areanpc(struct map_session_data *sd, int16 m, int16 x, int16 y) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_touch_areanpc_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int16 *m, int16 *x, int16 *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_touch_areanpc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_touch_areanpc_pre[hIndex].func; + retVal___ = preHookFunc(sd, &m, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.touch_areanpc(sd, m, x, y); + } + if( HPMHooks.count.HP_npc_touch_areanpc_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int16 *m, int16 *x, int16 *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_touch_areanpc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_touch_areanpc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &m, &x, &y); + } + } + return retVal___; +} +int HP_npc_touch_areanpc2(struct mob_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_touch_areanpc2_pre ) { + int (*preHookFunc) (struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_touch_areanpc2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_touch_areanpc2_pre[hIndex].func; + retVal___ = preHookFunc(md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.touch_areanpc2(md); + } + if( HPMHooks.count.HP_npc_touch_areanpc2_post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_touch_areanpc2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_touch_areanpc2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md); + } + } + return retVal___; +} +int HP_npc_check_areanpc(int flag, int16 m, int16 x, int16 y, int16 range) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_check_areanpc_pre ) { + int (*preHookFunc) (int *flag, int16 *m, int16 *x, int16 *y, int16 *range); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_check_areanpc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_check_areanpc_pre[hIndex].func; + retVal___ = preHookFunc(&flag, &m, &x, &y, &range); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.check_areanpc(flag, m, x, y, range); + } + if( HPMHooks.count.HP_npc_check_areanpc_post ) { + int (*postHookFunc) (int retVal___, int *flag, int16 *m, int16 *x, int16 *y, int16 *range); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_check_areanpc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_check_areanpc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &flag, &m, &x, &y, &range); + } + } + return retVal___; +} +struct npc_data* HP_npc_checknear(struct map_session_data *sd, struct block_list *bl) { + int hIndex = 0; + struct npc_data* retVal___ = NULL; + if( HPMHooks.count.HP_npc_checknear_pre ) { + struct npc_data* (*preHookFunc) (struct map_session_data *sd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_checknear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_checknear_pre[hIndex].func; + retVal___ = preHookFunc(sd, bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.checknear(sd, bl); + } + if( HPMHooks.count.HP_npc_checknear_post ) { + struct npc_data* (*postHookFunc) (struct npc_data* retVal___, struct map_session_data *sd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_checknear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_checknear_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, bl); + } + } + return retVal___; +} +int HP_npc_globalmessage(const char *name, const char *mes) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_globalmessage_pre ) { + int (*preHookFunc) (const char *name, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_globalmessage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_globalmessage_pre[hIndex].func; + retVal___ = preHookFunc(name, mes); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.globalmessage(name, mes); + } + if( HPMHooks.count.HP_npc_globalmessage_post ) { + int (*postHookFunc) (int retVal___, const char *name, const char *mes); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_globalmessage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_globalmessage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name, mes); + } + } + return retVal___; +} +void HP_npc_run_tomb(struct map_session_data *sd, struct npc_data *nd) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_run_tomb_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_run_tomb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_run_tomb_pre[hIndex].func; + preHookFunc(sd, nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.run_tomb(sd, nd); + } + if( HPMHooks.count.HP_npc_run_tomb_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_run_tomb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_run_tomb_post[hIndex].func; + postHookFunc(sd, nd); + } + } + return; +} +int HP_npc_click(struct map_session_data *sd, struct npc_data *nd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_click_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_click_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_click_pre[hIndex].func; + retVal___ = preHookFunc(sd, nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.click(sd, nd); + } + if( HPMHooks.count.HP_npc_click_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_click_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_click_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, nd); + } + } + return retVal___; +} +int HP_npc_scriptcont(struct map_session_data *sd, int id, bool closing) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_scriptcont_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *id, bool *closing); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_scriptcont_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_scriptcont_pre[hIndex].func; + retVal___ = preHookFunc(sd, &id, &closing); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.scriptcont(sd, id, closing); + } + if( HPMHooks.count.HP_npc_scriptcont_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *id, bool *closing); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_scriptcont_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_scriptcont_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &id, &closing); + } + } + return retVal___; +} +int HP_npc_buysellsel(struct map_session_data *sd, int id, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_buysellsel_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *id, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_buysellsel_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_buysellsel_pre[hIndex].func; + retVal___ = preHookFunc(sd, &id, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.buysellsel(sd, id, type); + } + if( HPMHooks.count.HP_npc_buysellsel_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *id, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_buysellsel_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_buysellsel_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &id, &type); + } + } + return retVal___; +} +int HP_npc_cashshop_buylist(struct map_session_data *sd, int points, int count, unsigned short *item_list) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_cashshop_buylist_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *points, int *count, unsigned short *item_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_cashshop_buylist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_cashshop_buylist_pre[hIndex].func; + retVal___ = preHookFunc(sd, &points, &count, item_list); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.cashshop_buylist(sd, points, count, item_list); + } + if( HPMHooks.count.HP_npc_cashshop_buylist_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *points, int *count, unsigned short *item_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_cashshop_buylist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_cashshop_buylist_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &points, &count, item_list); + } + } + return retVal___; +} +int HP_npc_buylist_sub(struct map_session_data *sd, int n, unsigned short *item_list, struct npc_data *nd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_buylist_sub_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, unsigned short *item_list, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_buylist_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_buylist_sub_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, item_list, nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.buylist_sub(sd, n, item_list, nd); + } + if( HPMHooks.count.HP_npc_buylist_sub_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, unsigned short *item_list, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_buylist_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_buylist_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, item_list, nd); + } + } + return retVal___; +} +int HP_npc_cashshop_buy(struct map_session_data *sd, int nameid, int amount, int points) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_cashshop_buy_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *nameid, int *amount, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_cashshop_buy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_cashshop_buy_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid, &amount, &points); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.cashshop_buy(sd, nameid, amount, points); + } + if( HPMHooks.count.HP_npc_cashshop_buy_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *nameid, int *amount, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_cashshop_buy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_cashshop_buy_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid, &amount, &points); + } + } + return retVal___; +} +int HP_npc_buylist(struct map_session_data *sd, int n, unsigned short *item_list) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_buylist_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, unsigned short *item_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_buylist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_buylist_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, item_list); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.buylist(sd, n, item_list); + } + if( HPMHooks.count.HP_npc_buylist_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, unsigned short *item_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_buylist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_buylist_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, item_list); + } + } + return retVal___; +} +int HP_npc_selllist_sub(struct map_session_data *sd, int n, unsigned short *item_list, struct npc_data *nd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_selllist_sub_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, unsigned short *item_list, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_selllist_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_selllist_sub_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, item_list, nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.selllist_sub(sd, n, item_list, nd); + } + if( HPMHooks.count.HP_npc_selllist_sub_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, unsigned short *item_list, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_selllist_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_selllist_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, item_list, nd); + } + } + return retVal___; +} +int HP_npc_selllist(struct map_session_data *sd, int n, unsigned short *item_list) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_selllist_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, unsigned short *item_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_selllist_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_selllist_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, item_list); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.selllist(sd, n, item_list); + } + if( HPMHooks.count.HP_npc_selllist_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, unsigned short *item_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_selllist_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_selllist_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, item_list); + } + } + return retVal___; +} +int HP_npc_remove_map(struct npc_data *nd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_remove_map_pre ) { + int (*preHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_remove_map_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_remove_map_pre[hIndex].func; + retVal___ = preHookFunc(nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.remove_map(nd); + } + if( HPMHooks.count.HP_npc_remove_map_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_remove_map_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_remove_map_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd); + } + } + return retVal___; +} +int HP_npc_unload_ev(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_unload_ev_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unload_ev_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_npc_unload_ev_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.npc.unload_ev(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_npc_unload_ev_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unload_ev_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_npc_unload_ev_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_npc_unload_ev_label(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_unload_ev_label_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unload_ev_label_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_npc_unload_ev_label_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.npc.unload_ev_label(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_npc_unload_ev_label_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unload_ev_label_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_npc_unload_ev_label_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_npc_unload_dup_sub(struct npc_data *nd, va_list args) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_unload_dup_sub_pre ) { + int (*preHookFunc) (struct npc_data *nd, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unload_dup_sub_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_npc_unload_dup_sub_pre[hIndex].func; + retVal___ = preHookFunc(nd, 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.npc.unload_dup_sub(nd, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_npc_unload_dup_sub_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unload_dup_sub_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_npc_unload_dup_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +void HP_npc_unload_duplicates(struct npc_data *nd) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_unload_duplicates_pre ) { + void (*preHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unload_duplicates_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_unload_duplicates_pre[hIndex].func; + preHookFunc(nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.unload_duplicates(nd); + } + if( HPMHooks.count.HP_npc_unload_duplicates_post ) { + void (*postHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unload_duplicates_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_unload_duplicates_post[hIndex].func; + postHookFunc(nd); + } + } + return; +} +int HP_npc_unload(struct npc_data *nd, bool single) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_unload_pre ) { + int (*preHookFunc) (struct npc_data *nd, bool *single); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_unload_pre[hIndex].func; + retVal___ = preHookFunc(nd, &single); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.unload(nd, single); + } + if( HPMHooks.count.HP_npc_unload_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd, bool *single); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_unload_post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd, &single); + } + } + return retVal___; +} +void HP_npc_clearsrcfile(void) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_clearsrcfile_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_clearsrcfile_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_clearsrcfile_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.clearsrcfile(); + } + if( HPMHooks.count.HP_npc_clearsrcfile_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_clearsrcfile_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_clearsrcfile_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_npc_addsrcfile(const char *name) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_addsrcfile_pre ) { + void (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_addsrcfile_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_addsrcfile_pre[hIndex].func; + preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.addsrcfile(name); + } + if( HPMHooks.count.HP_npc_addsrcfile_post ) { + void (*postHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_addsrcfile_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_addsrcfile_post[hIndex].func; + postHookFunc(name); + } + } + return; +} +void HP_npc_delsrcfile(const char *name) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_delsrcfile_pre ) { + void (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_delsrcfile_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_delsrcfile_pre[hIndex].func; + preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.delsrcfile(name); + } + if( HPMHooks.count.HP_npc_delsrcfile_post ) { + void (*postHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_delsrcfile_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_delsrcfile_post[hIndex].func; + postHookFunc(name); + } + } + return; +} +void HP_npc_parsename(struct npc_data *nd, const char *name, const char *start, const char *buffer, const char *filepath) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_parsename_pre ) { + void (*preHookFunc) (struct npc_data *nd, const char *name, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parsename_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_parsename_pre[hIndex].func; + preHookFunc(nd, name, start, buffer, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.parsename(nd, name, start, buffer, filepath); + } + if( HPMHooks.count.HP_npc_parsename_post ) { + void (*postHookFunc) (struct npc_data *nd, const char *name, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parsename_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_parsename_post[hIndex].func; + postHookFunc(nd, name, start, buffer, filepath); + } + } + return; +} +struct npc_data* HP_npc_add_warp(char *name, short from_mapid, short from_x, short from_y, short xs, short ys, unsigned short to_mapindex, short to_x, short to_y) { + int hIndex = 0; + struct npc_data* retVal___ = NULL; + if( HPMHooks.count.HP_npc_add_warp_pre ) { + struct npc_data* (*preHookFunc) (char *name, short *from_mapid, short *from_x, short *from_y, short *xs, short *ys, unsigned short *to_mapindex, short *to_x, short *to_y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_add_warp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_add_warp_pre[hIndex].func; + retVal___ = preHookFunc(name, &from_mapid, &from_x, &from_y, &xs, &ys, &to_mapindex, &to_x, &to_y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.add_warp(name, from_mapid, from_x, from_y, xs, ys, to_mapindex, to_x, to_y); + } + if( HPMHooks.count.HP_npc_add_warp_post ) { + struct npc_data* (*postHookFunc) (struct npc_data* retVal___, char *name, short *from_mapid, short *from_x, short *from_y, short *xs, short *ys, unsigned short *to_mapindex, short *to_x, short *to_y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_add_warp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_add_warp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name, &from_mapid, &from_x, &from_y, &xs, &ys, &to_mapindex, &to_x, &to_y); + } + } + return retVal___; +} +const char* HP_npc_parse_warp(char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_npc_parse_warp_pre ) { + const char* (*preHookFunc) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_warp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_parse_warp_pre[hIndex].func; + retVal___ = preHookFunc(w1, w2, w3, w4, start, buffer, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.parse_warp(w1, w2, w3, w4, start, buffer, filepath); + } + if( HPMHooks.count.HP_npc_parse_warp_post ) { + const char* (*postHookFunc) (const char* retVal___, char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_warp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_parse_warp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, w1, w2, w3, w4, start, buffer, filepath); + } + } + return retVal___; +} +const char* HP_npc_parse_shop(char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_npc_parse_shop_pre ) { + const char* (*preHookFunc) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_shop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_parse_shop_pre[hIndex].func; + retVal___ = preHookFunc(w1, w2, w3, w4, start, buffer, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.parse_shop(w1, w2, w3, w4, start, buffer, filepath); + } + if( HPMHooks.count.HP_npc_parse_shop_post ) { + const char* (*postHookFunc) (const char* retVal___, char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_shop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_parse_shop_post[hIndex].func; + retVal___ = postHookFunc(retVal___, w1, w2, w3, w4, start, buffer, filepath); + } + } + return retVal___; +} +void HP_npc_convertlabel_db(struct npc_label_list *label_list, const char *filepath) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_convertlabel_db_pre ) { + void (*preHookFunc) (struct npc_label_list *label_list, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_convertlabel_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_convertlabel_db_pre[hIndex].func; + preHookFunc(label_list, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.convertlabel_db(label_list, filepath); + } + if( HPMHooks.count.HP_npc_convertlabel_db_post ) { + void (*postHookFunc) (struct npc_label_list *label_list, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_convertlabel_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_convertlabel_db_post[hIndex].func; + postHookFunc(label_list, filepath); + } + } + return; +} +const char* HP_npc_skip_script(const char *start, const char *buffer, const char *filepath) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_npc_skip_script_pre ) { + const char* (*preHookFunc) (const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_skip_script_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_skip_script_pre[hIndex].func; + retVal___ = preHookFunc(start, buffer, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.skip_script(start, buffer, filepath); + } + if( HPMHooks.count.HP_npc_skip_script_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_skip_script_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_skip_script_post[hIndex].func; + retVal___ = postHookFunc(retVal___, start, buffer, filepath); + } + } + return retVal___; +} +const char* HP_npc_parse_script(char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, bool runOnInit) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_npc_parse_script_pre ) { + const char* (*preHookFunc) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, bool *runOnInit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_script_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_parse_script_pre[hIndex].func; + retVal___ = preHookFunc(w1, w2, w3, w4, start, buffer, filepath, &runOnInit); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.parse_script(w1, w2, w3, w4, start, buffer, filepath, runOnInit); + } + if( HPMHooks.count.HP_npc_parse_script_post ) { + const char* (*postHookFunc) (const char* retVal___, char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath, bool *runOnInit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_script_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_parse_script_post[hIndex].func; + retVal___ = postHookFunc(retVal___, w1, w2, w3, w4, start, buffer, filepath, &runOnInit); + } + } + return retVal___; +} +const char* HP_npc_parse_duplicate(char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_npc_parse_duplicate_pre ) { + const char* (*preHookFunc) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_duplicate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_parse_duplicate_pre[hIndex].func; + retVal___ = preHookFunc(w1, w2, w3, w4, start, buffer, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.parse_duplicate(w1, w2, w3, w4, start, buffer, filepath); + } + if( HPMHooks.count.HP_npc_parse_duplicate_post ) { + const char* (*postHookFunc) (const char* retVal___, char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_duplicate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_parse_duplicate_post[hIndex].func; + retVal___ = postHookFunc(retVal___, w1, w2, w3, w4, start, buffer, filepath); + } + } + return retVal___; +} +int HP_npc_duplicate4instance(struct npc_data *snd, int16 m) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_duplicate4instance_pre ) { + int (*preHookFunc) (struct npc_data *snd, int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_duplicate4instance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_duplicate4instance_pre[hIndex].func; + retVal___ = preHookFunc(snd, &m); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.duplicate4instance(snd, m); + } + if( HPMHooks.count.HP_npc_duplicate4instance_post ) { + int (*postHookFunc) (int retVal___, struct npc_data *snd, int16 *m); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_duplicate4instance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_duplicate4instance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, snd, &m); + } + } + return retVal___; +} +void HP_npc_setcells(struct npc_data *nd) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_setcells_pre ) { + void (*preHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_setcells_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_setcells_pre[hIndex].func; + preHookFunc(nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.setcells(nd); + } + if( HPMHooks.count.HP_npc_setcells_post ) { + void (*postHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_setcells_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_setcells_post[hIndex].func; + postHookFunc(nd); + } + } + return; +} +int HP_npc_unsetcells_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_unsetcells_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unsetcells_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_npc_unsetcells_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.npc.unsetcells_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_npc_unsetcells_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unsetcells_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_npc_unsetcells_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_npc_unsetcells(struct npc_data *nd) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_unsetcells_pre ) { + void (*preHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unsetcells_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_unsetcells_pre[hIndex].func; + preHookFunc(nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.unsetcells(nd); + } + if( HPMHooks.count.HP_npc_unsetcells_post ) { + void (*postHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unsetcells_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_unsetcells_post[hIndex].func; + postHookFunc(nd); + } + } + return; +} +void HP_npc_movenpc(struct npc_data *nd, int16 x, int16 y) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_movenpc_pre ) { + void (*preHookFunc) (struct npc_data *nd, int16 *x, int16 *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_movenpc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_movenpc_pre[hIndex].func; + preHookFunc(nd, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.movenpc(nd, x, y); + } + if( HPMHooks.count.HP_npc_movenpc_post ) { + void (*postHookFunc) (struct npc_data *nd, int16 *x, int16 *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_movenpc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_movenpc_post[hIndex].func; + postHookFunc(nd, &x, &y); + } + } + return; +} +void HP_npc_setdisplayname(struct npc_data *nd, const char *newname) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_setdisplayname_pre ) { + void (*preHookFunc) (struct npc_data *nd, const char *newname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_setdisplayname_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_setdisplayname_pre[hIndex].func; + preHookFunc(nd, newname); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.setdisplayname(nd, newname); + } + if( HPMHooks.count.HP_npc_setdisplayname_post ) { + void (*postHookFunc) (struct npc_data *nd, const char *newname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_setdisplayname_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_setdisplayname_post[hIndex].func; + postHookFunc(nd, newname); + } + } + return; +} +void HP_npc_setclass(struct npc_data *nd, short class_) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_setclass_pre ) { + void (*preHookFunc) (struct npc_data *nd, short *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_setclass_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_setclass_pre[hIndex].func; + preHookFunc(nd, &class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.setclass(nd, class_); + } + if( HPMHooks.count.HP_npc_setclass_post ) { + void (*postHookFunc) (struct npc_data *nd, short *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_setclass_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_setclass_post[hIndex].func; + postHookFunc(nd, &class_); + } + } + return; +} +int HP_npc_do_atcmd_event(struct map_session_data *sd, const char *command, const char *message, const char *eventname) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_do_atcmd_event_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *command, const char *message, const char *eventname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_do_atcmd_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_do_atcmd_event_pre[hIndex].func; + retVal___ = preHookFunc(sd, command, message, eventname); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.do_atcmd_event(sd, command, message, eventname); + } + if( HPMHooks.count.HP_npc_do_atcmd_event_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *command, const char *message, const char *eventname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_do_atcmd_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_do_atcmd_event_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, command, message, eventname); + } + } + return retVal___; +} +const char* HP_npc_parse_function(char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_npc_parse_function_pre ) { + const char* (*preHookFunc) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_function_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_parse_function_pre[hIndex].func; + retVal___ = preHookFunc(w1, w2, w3, w4, start, buffer, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.parse_function(w1, w2, w3, w4, start, buffer, filepath); + } + if( HPMHooks.count.HP_npc_parse_function_post ) { + const char* (*postHookFunc) (const char* retVal___, char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_function_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_parse_function_post[hIndex].func; + retVal___ = postHookFunc(retVal___, w1, w2, w3, w4, start, buffer, filepath); + } + } + return retVal___; +} +void HP_npc_parse_mob2(struct spawn_data *mobspawn) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_parse_mob2_pre ) { + void (*preHookFunc) (struct spawn_data *mobspawn); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_mob2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_parse_mob2_pre[hIndex].func; + preHookFunc(mobspawn); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.parse_mob2(mobspawn); + } + if( HPMHooks.count.HP_npc_parse_mob2_post ) { + void (*postHookFunc) (struct spawn_data *mobspawn); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_mob2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_parse_mob2_post[hIndex].func; + postHookFunc(mobspawn); + } + } + return; +} +const char* HP_npc_parse_mob(char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_npc_parse_mob_pre ) { + const char* (*preHookFunc) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_mob_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_parse_mob_pre[hIndex].func; + retVal___ = preHookFunc(w1, w2, w3, w4, start, buffer, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.parse_mob(w1, w2, w3, w4, start, buffer, filepath); + } + if( HPMHooks.count.HP_npc_parse_mob_post ) { + const char* (*postHookFunc) (const char* retVal___, char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_mob_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_parse_mob_post[hIndex].func; + retVal___ = postHookFunc(retVal___, w1, w2, w3, w4, start, buffer, filepath); + } + } + return retVal___; +} +const char* HP_npc_parse_mapflag(char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_npc_parse_mapflag_pre ) { + const char* (*preHookFunc) (char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_mapflag_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_parse_mapflag_pre[hIndex].func; + retVal___ = preHookFunc(w1, w2, w3, w4, start, buffer, filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.parse_mapflag(w1, w2, w3, w4, start, buffer, filepath); + } + if( HPMHooks.count.HP_npc_parse_mapflag_post ) { + const char* (*postHookFunc) (const char* retVal___, char *w1, char *w2, char *w3, char *w4, const char *start, const char *buffer, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parse_mapflag_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_parse_mapflag_post[hIndex].func; + retVal___ = postHookFunc(retVal___, w1, w2, w3, w4, start, buffer, filepath); + } + } + return retVal___; +} +void HP_npc_parsesrcfile(const char *filepath, bool runOnInit) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_parsesrcfile_pre ) { + void (*preHookFunc) (const char *filepath, bool *runOnInit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parsesrcfile_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_parsesrcfile_pre[hIndex].func; + preHookFunc(filepath, &runOnInit); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.parsesrcfile(filepath, runOnInit); + } + if( HPMHooks.count.HP_npc_parsesrcfile_post ) { + void (*postHookFunc) (const char *filepath, bool *runOnInit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_parsesrcfile_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_parsesrcfile_post[hIndex].func; + postHookFunc(filepath, &runOnInit); + } + } + return; +} +int HP_npc_script_event(struct map_session_data *sd, enum npce_event type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_script_event_pre ) { + int (*preHookFunc) (struct map_session_data *sd, enum npce_event *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_script_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_script_event_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.script_event(sd, type); + } + if( HPMHooks.count.HP_npc_script_event_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, enum npce_event *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_script_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_script_event_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +void HP_npc_read_event_script(void) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_read_event_script_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_read_event_script_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_read_event_script_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.read_event_script(); + } + if( HPMHooks.count.HP_npc_read_event_script_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_read_event_script_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_read_event_script_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_npc_path_db_clear_sub(DBKey key, DBData *data, va_list args) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_path_db_clear_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_path_db_clear_sub_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_npc_path_db_clear_sub_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.npc.path_db_clear_sub(key, data, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_npc_path_db_clear_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_path_db_clear_sub_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_npc_path_db_clear_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_npc_ev_label_db_clear_sub(DBKey key, DBData *data, va_list args) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_ev_label_db_clear_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_ev_label_db_clear_sub_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_npc_ev_label_db_clear_sub_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.npc.ev_label_db_clear_sub(key, data, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_npc_ev_label_db_clear_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_ev_label_db_clear_sub_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_npc_ev_label_db_clear_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_npc_reload(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_reload_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_reload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_reload_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.reload(); + } + if( HPMHooks.count.HP_npc_reload_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_reload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_reload_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +bool HP_npc_unloadfile(const char *filepath) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_npc_unloadfile_pre ) { + bool (*preHookFunc) (const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unloadfile_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_unloadfile_pre[hIndex].func; + retVal___ = preHookFunc(filepath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.unloadfile(filepath); + } + if( HPMHooks.count.HP_npc_unloadfile_post ) { + bool (*postHookFunc) (bool retVal___, const char *filepath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_unloadfile_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_unloadfile_post[hIndex].func; + retVal___ = postHookFunc(retVal___, filepath); + } + } + return retVal___; +} +void HP_npc_do_clear_npc(void) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_do_clear_npc_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_do_clear_npc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_do_clear_npc_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.do_clear_npc(); + } + if( HPMHooks.count.HP_npc_do_clear_npc_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_do_clear_npc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_do_clear_npc_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_npc_debug_warps_sub(struct npc_data *nd) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_debug_warps_sub_pre ) { + void (*preHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_debug_warps_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_debug_warps_sub_pre[hIndex].func; + preHookFunc(nd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.debug_warps_sub(nd); + } + if( HPMHooks.count.HP_npc_debug_warps_sub_post ) { + void (*postHookFunc) (struct npc_data *nd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_debug_warps_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_debug_warps_sub_post[hIndex].func; + postHookFunc(nd); + } + } + return; +} +void HP_npc_debug_warps(void) { + int hIndex = 0; + if( HPMHooks.count.HP_npc_debug_warps_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_debug_warps_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_debug_warps_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.npc.debug_warps(); + } + if( HPMHooks.count.HP_npc_debug_warps_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_debug_warps_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_debug_warps_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_npc_secure_timeout_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_npc_secure_timeout_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_secure_timeout_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_npc_secure_timeout_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.npc.secure_timeout_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_npc_secure_timeout_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_npc_secure_timeout_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_npc_secure_timeout_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +/* party */ +void HP_party_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_party_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.init(); + } + if( HPMHooks.count.HP_party_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_party_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_party_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.final(); + } + if( HPMHooks.count.HP_party_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +struct party_data* HP_party_search(int party_id) { + int hIndex = 0; + struct party_data* retVal___ = NULL; + if( HPMHooks.count.HP_party_search_pre ) { + struct party_data* (*preHookFunc) (int *party_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_search_pre[hIndex].func; + retVal___ = preHookFunc(&party_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.search(party_id); + } + if( HPMHooks.count.HP_party_search_post ) { + struct party_data* (*postHookFunc) (struct party_data* retVal___, int *party_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id); + } + } + return retVal___; +} +struct party_data* HP_party_searchname(const char *str) { + int hIndex = 0; + struct party_data* retVal___ = NULL; + if( HPMHooks.count.HP_party_searchname_pre ) { + struct party_data* (*preHookFunc) (const char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_searchname_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_searchname_pre[hIndex].func; + retVal___ = preHookFunc(str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.searchname(str); + } + if( HPMHooks.count.HP_party_searchname_post ) { + struct party_data* (*postHookFunc) (struct party_data* retVal___, const char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_searchname_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_searchname_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str); + } + } + return retVal___; +} +int HP_party_getmemberid(struct party_data *p, struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_getmemberid_pre ) { + int (*preHookFunc) (struct party_data *p, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_getmemberid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_getmemberid_pre[hIndex].func; + retVal___ = preHookFunc(p, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.getmemberid(p, sd); + } + if( HPMHooks.count.HP_party_getmemberid_post ) { + int (*postHookFunc) (int retVal___, struct party_data *p, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_getmemberid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_getmemberid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p, sd); + } + } + return retVal___; +} +struct map_session_data* HP_party_getavailablesd(struct party_data *p) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_party_getavailablesd_pre ) { + struct map_session_data* (*preHookFunc) (struct party_data *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_getavailablesd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_getavailablesd_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.getavailablesd(p); + } + if( HPMHooks.count.HP_party_getavailablesd_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___, struct party_data *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_getavailablesd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_getavailablesd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +int HP_party_create(struct map_session_data *sd, char *name, int item, int item2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_create_pre ) { + int (*preHookFunc) (struct map_session_data *sd, char *name, int *item, int *item2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_create_pre[hIndex].func; + retVal___ = preHookFunc(sd, name, &item, &item2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.create(sd, name, item, item2); + } + if( HPMHooks.count.HP_party_create_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, char *name, int *item, int *item2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, name, &item, &item2); + } + } + return retVal___; +} +void HP_party_created(int account_id, int char_id, int fail, int party_id, char *name) { + int hIndex = 0; + if( HPMHooks.count.HP_party_created_pre ) { + void (*preHookFunc) (int *account_id, int *char_id, int *fail, int *party_id, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_created_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_created_pre[hIndex].func; + preHookFunc(&account_id, &char_id, &fail, &party_id, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.created(account_id, char_id, fail, party_id, name); + } + if( HPMHooks.count.HP_party_created_post ) { + void (*postHookFunc) (int *account_id, int *char_id, int *fail, int *party_id, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_created_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_created_post[hIndex].func; + postHookFunc(&account_id, &char_id, &fail, &party_id, name); + } + } + return; +} +int HP_party_request_info(int party_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_request_info_pre ) { + int (*preHookFunc) (int *party_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_request_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_request_info_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.request_info(party_id, char_id); + } + if( HPMHooks.count.HP_party_request_info_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_request_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_request_info_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &char_id); + } + } + return retVal___; +} +int HP_party_invite(struct map_session_data *sd, struct map_session_data *tsd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_invite_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_invite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_invite_pre[hIndex].func; + retVal___ = preHookFunc(sd, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.invite(sd, tsd); + } + if( HPMHooks.count.HP_party_invite_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_invite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_invite_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, tsd); + } + } + return retVal___; +} +void HP_party_member_joined(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_party_member_joined_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_member_joined_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_member_joined_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.member_joined(sd); + } + if( HPMHooks.count.HP_party_member_joined_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_member_joined_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_member_joined_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_party_member_added(int party_id, int account_id, int char_id, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_member_added_pre ) { + int (*preHookFunc) (int *party_id, int *account_id, int *char_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_member_added_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_member_added_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &account_id, &char_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.member_added(party_id, account_id, char_id, flag); + } + if( HPMHooks.count.HP_party_member_added_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *account_id, int *char_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_member_added_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_member_added_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &account_id, &char_id, &flag); + } + } + return retVal___; +} +int HP_party_leave(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_leave_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_leave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_leave_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.leave(sd); + } + if( HPMHooks.count.HP_party_leave_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_leave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_leave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_party_removemember(struct map_session_data *sd, int account_id, char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_removemember_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *account_id, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_removemember_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_removemember_pre[hIndex].func; + retVal___ = preHookFunc(sd, &account_id, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.removemember(sd, account_id, name); + } + if( HPMHooks.count.HP_party_removemember_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *account_id, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_removemember_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_removemember_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &account_id, name); + } + } + return retVal___; +} +int HP_party_member_withdraw(int party_id, int account_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_member_withdraw_pre ) { + int (*preHookFunc) (int *party_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_member_withdraw_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_member_withdraw_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &account_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.member_withdraw(party_id, account_id, char_id); + } + if( HPMHooks.count.HP_party_member_withdraw_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_member_withdraw_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_member_withdraw_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &account_id, &char_id); + } + } + return retVal___; +} +void HP_party_reply_invite(struct map_session_data *sd, int party_id, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_party_reply_invite_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *party_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_reply_invite_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_reply_invite_pre[hIndex].func; + preHookFunc(sd, &party_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.reply_invite(sd, party_id, flag); + } + if( HPMHooks.count.HP_party_reply_invite_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *party_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_reply_invite_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_reply_invite_post[hIndex].func; + postHookFunc(sd, &party_id, &flag); + } + } + return; +} +int HP_party_recv_noinfo(int party_id, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_recv_noinfo_pre ) { + int (*preHookFunc) (int *party_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recv_noinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_recv_noinfo_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.recv_noinfo(party_id, char_id); + } + if( HPMHooks.count.HP_party_recv_noinfo_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recv_noinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_recv_noinfo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &char_id); + } + } + return retVal___; +} +int HP_party_recv_info(struct party *sp, int char_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_recv_info_pre ) { + int (*preHookFunc) (struct party *sp, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recv_info_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_recv_info_pre[hIndex].func; + retVal___ = preHookFunc(sp, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.recv_info(sp, char_id); + } + if( HPMHooks.count.HP_party_recv_info_post ) { + int (*postHookFunc) (int retVal___, struct party *sp, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recv_info_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_recv_info_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sp, &char_id); + } + } + return retVal___; +} +int HP_party_recv_movemap(int party_id, int account_id, int char_id, unsigned short mapid, int online, int lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_recv_movemap_pre ) { + int (*preHookFunc) (int *party_id, int *account_id, int *char_id, unsigned short *mapid, int *online, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recv_movemap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_recv_movemap_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &account_id, &char_id, &mapid, &online, &lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.recv_movemap(party_id, account_id, char_id, mapid, online, lv); + } + if( HPMHooks.count.HP_party_recv_movemap_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *account_id, int *char_id, unsigned short *mapid, int *online, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recv_movemap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_recv_movemap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &account_id, &char_id, &mapid, &online, &lv); + } + } + return retVal___; +} +int HP_party_broken(int party_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_broken_pre ) { + int (*preHookFunc) (int *party_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_broken_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_broken_pre[hIndex].func; + retVal___ = preHookFunc(&party_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.broken(party_id); + } + if( HPMHooks.count.HP_party_broken_post ) { + int (*postHookFunc) (int retVal___, int *party_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_broken_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_broken_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id); + } + } + return retVal___; +} +int HP_party_optionchanged(int party_id, int account_id, int exp, int item, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_optionchanged_pre ) { + int (*preHookFunc) (int *party_id, int *account_id, int *exp, int *item, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_optionchanged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_optionchanged_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &account_id, &exp, &item, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.optionchanged(party_id, account_id, exp, item, flag); + } + if( HPMHooks.count.HP_party_optionchanged_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *account_id, int *exp, int *item, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_optionchanged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_optionchanged_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &account_id, &exp, &item, &flag); + } + } + return retVal___; +} +int HP_party_changeoption(struct map_session_data *sd, int exp, int item) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_changeoption_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *exp, int *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_changeoption_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_changeoption_pre[hIndex].func; + retVal___ = preHookFunc(sd, &exp, &item); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.changeoption(sd, exp, item); + } + if( HPMHooks.count.HP_party_changeoption_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *exp, int *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_changeoption_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_changeoption_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &exp, &item); + } + } + return retVal___; +} +bool HP_party_changeleader(struct map_session_data *sd, struct map_session_data *t_sd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_party_changeleader_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, struct map_session_data *t_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_changeleader_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_changeleader_pre[hIndex].func; + retVal___ = preHookFunc(sd, t_sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.changeleader(sd, t_sd); + } + if( HPMHooks.count.HP_party_changeleader_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct map_session_data *t_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_changeleader_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_changeleader_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, t_sd); + } + } + return retVal___; +} +void HP_party_send_movemap(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_party_send_movemap_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_movemap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_send_movemap_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.send_movemap(sd); + } + if( HPMHooks.count.HP_party_send_movemap_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_movemap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_send_movemap_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_party_send_levelup(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_party_send_levelup_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_levelup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_send_levelup_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.send_levelup(sd); + } + if( HPMHooks.count.HP_party_send_levelup_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_levelup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_send_levelup_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_party_send_logout(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_send_logout_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_logout_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_send_logout_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.send_logout(sd); + } + if( HPMHooks.count.HP_party_send_logout_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_logout_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_send_logout_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_party_send_message(struct map_session_data *sd, const char *mes, int len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_send_message_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_send_message_pre[hIndex].func; + retVal___ = preHookFunc(sd, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.send_message(sd, mes, len); + } + if( HPMHooks.count.HP_party_send_message_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_send_message_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, mes, &len); + } + } + return retVal___; +} +int HP_party_recv_message(int party_id, int account_id, const char *mes, int len) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_recv_message_pre ) { + int (*preHookFunc) (int *party_id, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recv_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_recv_message_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &account_id, mes, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.recv_message(party_id, account_id, mes, len); + } + if( HPMHooks.count.HP_party_recv_message_post ) { + int (*postHookFunc) (int retVal___, int *party_id, int *account_id, const char *mes, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recv_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_recv_message_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &account_id, mes, &len); + } + } + return retVal___; +} +int HP_party_skill_check(struct map_session_data *sd, int party_id, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_skill_check_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *party_id, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_skill_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_skill_check_pre[hIndex].func; + retVal___ = preHookFunc(sd, &party_id, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.skill_check(sd, party_id, skill_id, skill_lv); + } + if( HPMHooks.count.HP_party_skill_check_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *party_id, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_skill_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_skill_check_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &party_id, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_party_send_xy_clear(struct party_data *p) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_send_xy_clear_pre ) { + int (*preHookFunc) (struct party_data *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_xy_clear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_send_xy_clear_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.send_xy_clear(p); + } + if( HPMHooks.count.HP_party_send_xy_clear_post ) { + int (*postHookFunc) (int retVal___, struct party_data *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_xy_clear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_send_xy_clear_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +int HP_party_exp_share(struct party_data *p, struct block_list *src, unsigned int base_exp, unsigned int job_exp, int zeny) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_exp_share_pre ) { + int (*preHookFunc) (struct party_data *p, struct block_list *src, unsigned int *base_exp, unsigned int *job_exp, int *zeny); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_exp_share_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_exp_share_pre[hIndex].func; + retVal___ = preHookFunc(p, src, &base_exp, &job_exp, &zeny); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.exp_share(p, src, base_exp, job_exp, zeny); + } + if( HPMHooks.count.HP_party_exp_share_post ) { + int (*postHookFunc) (int retVal___, struct party_data *p, struct block_list *src, unsigned int *base_exp, unsigned int *job_exp, int *zeny); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_exp_share_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_exp_share_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p, src, &base_exp, &job_exp, &zeny); + } + } + return retVal___; +} +int HP_party_share_loot(struct party_data *p, struct map_session_data *sd, struct item *item_data, int first_charid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_share_loot_pre ) { + int (*preHookFunc) (struct party_data *p, struct map_session_data *sd, struct item *item_data, int *first_charid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_share_loot_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_share_loot_pre[hIndex].func; + retVal___ = preHookFunc(p, sd, item_data, &first_charid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.share_loot(p, sd, item_data, first_charid); + } + if( HPMHooks.count.HP_party_share_loot_post ) { + int (*postHookFunc) (int retVal___, struct party_data *p, struct map_session_data *sd, struct item *item_data, int *first_charid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_share_loot_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_share_loot_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p, sd, item_data, &first_charid); + } + } + return retVal___; +} +int HP_party_send_dot_remove(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_send_dot_remove_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_dot_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_send_dot_remove_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.send_dot_remove(sd); + } + if( HPMHooks.count.HP_party_send_dot_remove_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_dot_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_send_dot_remove_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_party_sub_count(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_sub_count_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_sub_count_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_party_sub_count_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.party.sub_count(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_party_sub_count_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_sub_count_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_party_sub_count_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_party_booking_register(struct map_session_data *sd, short level, short mapid, short *job) { + int hIndex = 0; + if( HPMHooks.count.HP_party_booking_register_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *level, short *mapid, short *job); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_booking_register_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_booking_register_pre[hIndex].func; + preHookFunc(sd, &level, &mapid, job); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.booking_register(sd, level, mapid, job); + } + if( HPMHooks.count.HP_party_booking_register_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *level, short *mapid, short *job); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_booking_register_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_booking_register_post[hIndex].func; + postHookFunc(sd, &level, &mapid, job); + } + } + return; +} +void HP_party_booking_update(struct map_session_data *sd, short *job) { + int hIndex = 0; + if( HPMHooks.count.HP_party_booking_update_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *job); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_booking_update_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_booking_update_pre[hIndex].func; + preHookFunc(sd, job); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.booking_update(sd, job); + } + if( HPMHooks.count.HP_party_booking_update_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *job); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_booking_update_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_booking_update_post[hIndex].func; + postHookFunc(sd, job); + } + } + return; +} +void HP_party_booking_search(struct map_session_data *sd, short level, short mapid, short job, unsigned long lastindex, short resultcount) { + int hIndex = 0; + if( HPMHooks.count.HP_party_booking_search_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *level, short *mapid, short *job, unsigned long *lastindex, short *resultcount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_booking_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_booking_search_pre[hIndex].func; + preHookFunc(sd, &level, &mapid, &job, &lastindex, &resultcount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.booking_search(sd, level, mapid, job, lastindex, resultcount); + } + if( HPMHooks.count.HP_party_booking_search_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *level, short *mapid, short *job, unsigned long *lastindex, short *resultcount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_booking_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_booking_search_post[hIndex].func; + postHookFunc(sd, &level, &mapid, &job, &lastindex, &resultcount); + } + } + return; +} +void HP_party_recruit_register(struct map_session_data *sd, short level, const char *notice) { + int hIndex = 0; + if( HPMHooks.count.HP_party_recruit_register_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *level, const char *notice); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recruit_register_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_recruit_register_pre[hIndex].func; + preHookFunc(sd, &level, notice); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.recruit_register(sd, level, notice); + } + if( HPMHooks.count.HP_party_recruit_register_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *level, const char *notice); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recruit_register_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_recruit_register_post[hIndex].func; + postHookFunc(sd, &level, notice); + } + } + return; +} +void HP_party_recruit_update(struct map_session_data *sd, const char *notice) { + int hIndex = 0; + if( HPMHooks.count.HP_party_recruit_update_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *notice); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recruit_update_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_recruit_update_pre[hIndex].func; + preHookFunc(sd, notice); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.recruit_update(sd, notice); + } + if( HPMHooks.count.HP_party_recruit_update_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *notice); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recruit_update_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_recruit_update_post[hIndex].func; + postHookFunc(sd, notice); + } + } + return; +} +void HP_party_recruit_search(struct map_session_data *sd, short level, short mapid, unsigned long lastindex, short resultcount) { + int hIndex = 0; + if( HPMHooks.count.HP_party_recruit_search_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *level, short *mapid, unsigned long *lastindex, short *resultcount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recruit_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_recruit_search_pre[hIndex].func; + preHookFunc(sd, &level, &mapid, &lastindex, &resultcount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.recruit_search(sd, level, mapid, lastindex, resultcount); + } + if( HPMHooks.count.HP_party_recruit_search_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *level, short *mapid, unsigned long *lastindex, short *resultcount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_recruit_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_recruit_search_post[hIndex].func; + postHookFunc(sd, &level, &mapid, &lastindex, &resultcount); + } + } + return; +} +bool HP_party_booking_delete(struct map_session_data *sd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_party_booking_delete_pre ) { + bool (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_booking_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_booking_delete_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.booking_delete(sd); + } + if( HPMHooks.count.HP_party_booking_delete_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_booking_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_booking_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_party_vforeachsamemap(int ( *func ) (struct block_list *, va_list), struct map_session_data *sd, int range, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_vforeachsamemap_pre ) { + int (*preHookFunc) (int ( *func ) (struct block_list *, va_list), struct map_session_data *sd, int *range, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_vforeachsamemap_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_party_vforeachsamemap_pre[hIndex].func; + retVal___ = preHookFunc(func, sd, &range, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.party.vforeachsamemap(func, sd, range, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_party_vforeachsamemap_post ) { + int (*postHookFunc) (int retVal___, int ( *func ) (struct block_list *, va_list), struct map_session_data *sd, int *range, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_vforeachsamemap_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_party_vforeachsamemap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, func, sd, &range, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_party_send_xy_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_send_xy_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_xy_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_send_xy_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.send_xy_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_party_send_xy_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_send_xy_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_send_xy_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_party_fill_member(struct party_member *member, struct map_session_data *sd, unsigned int leader) { + int hIndex = 0; + if( HPMHooks.count.HP_party_fill_member_pre ) { + void (*preHookFunc) (struct party_member *member, struct map_session_data *sd, unsigned int *leader); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_fill_member_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_fill_member_pre[hIndex].func; + preHookFunc(member, sd, &leader); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.fill_member(member, sd, leader); + } + if( HPMHooks.count.HP_party_fill_member_post ) { + void (*postHookFunc) (struct party_member *member, struct map_session_data *sd, unsigned int *leader); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_fill_member_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_fill_member_post[hIndex].func; + postHookFunc(member, sd, &leader); + } + } + return; +} +TBL_PC* HP_party_sd_check(int party_id, int account_id, int char_id) { + int hIndex = 0; + TBL_PC* retVal___ = NULL; + if( HPMHooks.count.HP_party_sd_check_pre ) { + TBL_PC* (*preHookFunc) (int *party_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_sd_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_sd_check_pre[hIndex].func; + retVal___ = preHookFunc(&party_id, &account_id, &char_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.sd_check(party_id, account_id, char_id); + } + if( HPMHooks.count.HP_party_sd_check_post ) { + TBL_PC* (*postHookFunc) (TBL_PC* retVal___, int *party_id, int *account_id, int *char_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_sd_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_sd_check_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &party_id, &account_id, &char_id); + } + } + return retVal___; +} +void HP_party_check_state(struct party_data *p) { + int hIndex = 0; + if( HPMHooks.count.HP_party_check_state_pre ) { + void (*preHookFunc) (struct party_data *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_check_state_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_check_state_pre[hIndex].func; + preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.party.check_state(p); + } + if( HPMHooks.count.HP_party_check_state_post ) { + void (*postHookFunc) (struct party_data *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_check_state_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_check_state_post[hIndex].func; + postHookFunc(p); + } + } + return; +} +struct party_booking_ad_info* HP_party_create_booking_data(void) { + int hIndex = 0; + struct party_booking_ad_info* retVal___ = NULL; + if( HPMHooks.count.HP_party_create_booking_data_pre ) { + struct party_booking_ad_info* (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_create_booking_data_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_party_create_booking_data_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.party.create_booking_data(); + } + if( HPMHooks.count.HP_party_create_booking_data_post ) { + struct party_booking_ad_info* (*postHookFunc) (struct party_booking_ad_info* retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_create_booking_data_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_party_create_booking_data_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_party_db_final(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_party_db_final_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_db_final_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_party_db_final_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.party.db_final(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_party_db_final_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_party_db_final_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_party_db_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +/* path */ +int HP_path_blownpos(int16 m, int16 x0, int16 y0, int16 dx, int16 dy, int count) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_path_blownpos_pre ) { + int (*preHookFunc) (int16 *m, int16 *x0, int16 *y0, int16 *dx, int16 *dy, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_path_blownpos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_path_blownpos_pre[hIndex].func; + retVal___ = preHookFunc(&m, &x0, &y0, &dx, &dy, &count); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.path.blownpos(m, x0, y0, dx, dy, count); + } + if( HPMHooks.count.HP_path_blownpos_post ) { + int (*postHookFunc) (int retVal___, int16 *m, int16 *x0, int16 *y0, int16 *dx, int16 *dy, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_path_blownpos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_path_blownpos_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &m, &x0, &y0, &dx, &dy, &count); + } + } + return retVal___; +} +bool HP_path_search(struct walkpath_data *wpd, int16 m, int16 x0, int16 y0, int16 x1, int16 y1, int flag, cell_chk cell) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_path_search_pre ) { + bool (*preHookFunc) (struct walkpath_data *wpd, int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, int *flag, cell_chk *cell); + for(hIndex = 0; hIndex < HPMHooks.count.HP_path_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_path_search_pre[hIndex].func; + retVal___ = preHookFunc(wpd, &m, &x0, &y0, &x1, &y1, &flag, &cell); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.path.search(wpd, m, x0, y0, x1, y1, flag, cell); + } + if( HPMHooks.count.HP_path_search_post ) { + bool (*postHookFunc) (bool retVal___, struct walkpath_data *wpd, int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, int *flag, cell_chk *cell); + for(hIndex = 0; hIndex < HPMHooks.count.HP_path_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_path_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, wpd, &m, &x0, &y0, &x1, &y1, &flag, &cell); + } + } + return retVal___; +} +bool HP_path_search_long(struct shootpath_data *spd, int16 m, int16 x0, int16 y0, int16 x1, int16 y1, cell_chk cell) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_path_search_long_pre ) { + bool (*preHookFunc) (struct shootpath_data *spd, int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, cell_chk *cell); + for(hIndex = 0; hIndex < HPMHooks.count.HP_path_search_long_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_path_search_long_pre[hIndex].func; + retVal___ = preHookFunc(spd, &m, &x0, &y0, &x1, &y1, &cell); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.path.search_long(spd, m, x0, y0, x1, y1, cell); + } + if( HPMHooks.count.HP_path_search_long_post ) { + bool (*postHookFunc) (bool retVal___, struct shootpath_data *spd, int16 *m, int16 *x0, int16 *y0, int16 *x1, int16 *y1, cell_chk *cell); + for(hIndex = 0; hIndex < HPMHooks.count.HP_path_search_long_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_path_search_long_post[hIndex].func; + retVal___ = postHookFunc(retVal___, spd, &m, &x0, &y0, &x1, &y1, &cell); + } + } + return retVal___; +} +int HP_path_check_distance(int dx, int dy, int distance) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_path_check_distance_pre ) { + int (*preHookFunc) (int *dx, int *dy, int *distance); + for(hIndex = 0; hIndex < HPMHooks.count.HP_path_check_distance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_path_check_distance_pre[hIndex].func; + retVal___ = preHookFunc(&dx, &dy, &distance); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.path.check_distance(dx, dy, distance); + } + if( HPMHooks.count.HP_path_check_distance_post ) { + int (*postHookFunc) (int retVal___, int *dx, int *dy, int *distance); + for(hIndex = 0; hIndex < HPMHooks.count.HP_path_check_distance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_path_check_distance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &dx, &dy, &distance); + } + } + return retVal___; +} +unsigned int HP_path_distance(int dx, int dy) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_path_distance_pre ) { + unsigned int (*preHookFunc) (int *dx, int *dy); + for(hIndex = 0; hIndex < HPMHooks.count.HP_path_distance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_path_distance_pre[hIndex].func; + retVal___ = preHookFunc(&dx, &dy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.path.distance(dx, dy); + } + if( HPMHooks.count.HP_path_distance_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, int *dx, int *dy); + for(hIndex = 0; hIndex < HPMHooks.count.HP_path_distance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_path_distance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &dx, &dy); + } + } + return retVal___; +} +/* pc */ +void HP_pc_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.init(); + } + if( HPMHooks.count.HP_pc_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_pc_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.final(); + } + if( HPMHooks.count.HP_pc_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +struct map_session_data* HP_pc_get_dummy_sd(void) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_pc_get_dummy_sd_pre ) { + struct map_session_data* (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_dummy_sd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_get_dummy_sd_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.get_dummy_sd(); + } + if( HPMHooks.count.HP_pc_get_dummy_sd_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_dummy_sd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_get_dummy_sd_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_pc_class2idx(int class_) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_class2idx_pre ) { + int (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_class2idx_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_class2idx_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.class2idx(class_); + } + if( HPMHooks.count.HP_pc_class2idx_post ) { + int (*postHookFunc) (int retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_class2idx_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_class2idx_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +int HP_pc_get_group_level(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_get_group_level_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_group_level_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_get_group_level_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.get_group_level(sd); + } + if( HPMHooks.count.HP_pc_get_group_level_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_group_level_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_get_group_level_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +bool HP_pc_can_give_items(struct map_session_data *sd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_pc_can_give_items_pre ) { + bool (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_give_items_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_can_give_items_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.can_give_items(sd); + } + if( HPMHooks.count.HP_pc_can_give_items_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_give_items_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_can_give_items_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +bool HP_pc_can_use_command(struct map_session_data *sd, const char *command) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_pc_can_use_command_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, const char *command); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_use_command_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_can_use_command_pre[hIndex].func; + retVal___ = preHookFunc(sd, command); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.can_use_command(sd, command); + } + if( HPMHooks.count.HP_pc_can_use_command_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, const char *command); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_use_command_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_can_use_command_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, command); + } + } + return retVal___; +} +bool HP_pc_has_permission(struct map_session_data *sd, enum e_pc_permission permission) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_pc_has_permission_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, enum e_pc_permission *permission); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_has_permission_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_has_permission_pre[hIndex].func; + retVal___ = preHookFunc(sd, &permission); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.has_permission(sd, permission); + } + if( HPMHooks.count.HP_pc_has_permission_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, enum e_pc_permission *permission); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_has_permission_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_has_permission_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &permission); + } + } + return retVal___; +} +int HP_pc_set_group(struct map_session_data *sd, int group_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_set_group_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *group_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_set_group_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_set_group_pre[hIndex].func; + retVal___ = preHookFunc(sd, &group_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.set_group(sd, group_id); + } + if( HPMHooks.count.HP_pc_set_group_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *group_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_set_group_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_set_group_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &group_id); + } + } + return retVal___; +} +bool HP_pc_should_log_commands(struct map_session_data *sd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_pc_should_log_commands_pre ) { + bool (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_should_log_commands_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_should_log_commands_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.should_log_commands(sd); + } + if( HPMHooks.count.HP_pc_should_log_commands_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_should_log_commands_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_should_log_commands_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_setrestartvalue(struct map_session_data *sd, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setrestartvalue_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setrestartvalue_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setrestartvalue_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setrestartvalue(sd, type); + } + if( HPMHooks.count.HP_pc_setrestartvalue_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setrestartvalue_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setrestartvalue_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +int HP_pc_makesavestatus(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_makesavestatus_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_makesavestatus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_makesavestatus_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.makesavestatus(sd); + } + if( HPMHooks.count.HP_pc_makesavestatus_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_makesavestatus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_makesavestatus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +void HP_pc_respawn(struct map_session_data *sd, clr_type clrtype) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_respawn_pre ) { + void (*preHookFunc) (struct map_session_data *sd, clr_type *clrtype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_respawn_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_respawn_pre[hIndex].func; + preHookFunc(sd, &clrtype); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.respawn(sd, clrtype); + } + if( HPMHooks.count.HP_pc_respawn_post ) { + void (*postHookFunc) (struct map_session_data *sd, clr_type *clrtype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_respawn_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_respawn_post[hIndex].func; + postHookFunc(sd, &clrtype); + } + } + return; +} +int HP_pc_setnewpc(struct map_session_data *sd, int account_id, int char_id, int login_id1, unsigned int client_tick, int sex, int fd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setnewpc_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *account_id, int *char_id, int *login_id1, unsigned int *client_tick, int *sex, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setnewpc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setnewpc_pre[hIndex].func; + retVal___ = preHookFunc(sd, &account_id, &char_id, &login_id1, &client_tick, &sex, &fd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setnewpc(sd, account_id, char_id, login_id1, client_tick, sex, fd); + } + if( HPMHooks.count.HP_pc_setnewpc_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *account_id, int *char_id, int *login_id1, unsigned int *client_tick, int *sex, int *fd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setnewpc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setnewpc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &account_id, &char_id, &login_id1, &client_tick, &sex, &fd); + } + } + return retVal___; +} +bool HP_pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, struct mmo_charstatus *st, bool changing_mapservers) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_pc_authok_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, int *login_id2, time_t *expiration_time, int *group_id, struct mmo_charstatus *st, bool *changing_mapservers); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_authok_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_authok_pre[hIndex].func; + retVal___ = preHookFunc(sd, &login_id2, &expiration_time, &group_id, st, &changing_mapservers); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.authok(sd, login_id2, expiration_time, group_id, st, changing_mapservers); + } + if( HPMHooks.count.HP_pc_authok_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int *login_id2, time_t *expiration_time, int *group_id, struct mmo_charstatus *st, bool *changing_mapservers); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_authok_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_authok_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &login_id2, &expiration_time, &group_id, st, &changing_mapservers); + } + } + return retVal___; +} +void HP_pc_authfail(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_authfail_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_authfail_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_authfail_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.authfail(sd); + } + if( HPMHooks.count.HP_pc_authfail_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_authfail_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_authfail_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_pc_reg_received(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_reg_received_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_reg_received_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_reg_received_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.reg_received(sd); + } + if( HPMHooks.count.HP_pc_reg_received_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_reg_received_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_reg_received_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_isequip(struct map_session_data *sd, int n) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_isequip_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_isequip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_isequip_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.isequip(sd, n); + } + if( HPMHooks.count.HP_pc_isequip_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_isequip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_isequip_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n); + } + } + return retVal___; +} +int HP_pc_equippoint(struct map_session_data *sd, int n) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_equippoint_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_equippoint_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_equippoint_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.equippoint(sd, n); + } + if( HPMHooks.count.HP_pc_equippoint_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_equippoint_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_equippoint_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n); + } + } + return retVal___; +} +int HP_pc_setinventorydata(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setinventorydata_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setinventorydata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setinventorydata_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setinventorydata(sd); + } + if( HPMHooks.count.HP_pc_setinventorydata_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setinventorydata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setinventorydata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_checkskill(struct map_session_data *sd, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_checkskill_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_checkskill_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.checkskill(sd, skill_id); + } + if( HPMHooks.count.HP_pc_checkskill_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_checkskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id); + } + } + return retVal___; +} +int HP_pc_checkskill2(struct map_session_data *sd, uint16 index) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_checkskill2_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkskill2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_checkskill2_pre[hIndex].func; + retVal___ = preHookFunc(sd, &index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.checkskill2(sd, index); + } + if( HPMHooks.count.HP_pc_checkskill2_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkskill2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_checkskill2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &index); + } + } + return retVal___; +} +int HP_pc_checkallowskill(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_checkallowskill_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkallowskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_checkallowskill_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.checkallowskill(sd); + } + if( HPMHooks.count.HP_pc_checkallowskill_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkallowskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_checkallowskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_checkequip(struct map_session_data *sd, int pos) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_checkequip_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkequip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_checkequip_pre[hIndex].func; + retVal___ = preHookFunc(sd, &pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.checkequip(sd, pos); + } + if( HPMHooks.count.HP_pc_checkequip_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkequip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_checkequip_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &pos); + } + } + return retVal___; +} +int HP_pc_calc_skilltree(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_calc_skilltree_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calc_skilltree_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_calc_skilltree_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.calc_skilltree(sd); + } + if( HPMHooks.count.HP_pc_calc_skilltree_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calc_skilltree_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_calc_skilltree_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_calc_skilltree_normalize_job(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_calc_skilltree_normalize_job_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calc_skilltree_normalize_job_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_calc_skilltree_normalize_job_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.calc_skilltree_normalize_job(sd); + } + if( HPMHooks.count.HP_pc_calc_skilltree_normalize_job_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calc_skilltree_normalize_job_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_calc_skilltree_normalize_job_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_clean_skilltree(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_clean_skilltree_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_clean_skilltree_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_clean_skilltree_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.clean_skilltree(sd); + } + if( HPMHooks.count.HP_pc_clean_skilltree_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_clean_skilltree_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_clean_skilltree_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_setpos(struct map_session_data *sd, unsigned short mapindex, int x, int y, clr_type clrtype) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setpos_pre ) { + int (*preHookFunc) (struct map_session_data *sd, unsigned short *mapindex, int *x, int *y, clr_type *clrtype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setpos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setpos_pre[hIndex].func; + retVal___ = preHookFunc(sd, &mapindex, &x, &y, &clrtype); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setpos(sd, mapindex, x, y, clrtype); + } + if( HPMHooks.count.HP_pc_setpos_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, unsigned short *mapindex, int *x, int *y, clr_type *clrtype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setpos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setpos_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &mapindex, &x, &y, &clrtype); + } + } + return retVal___; +} +int HP_pc_setsavepoint(struct map_session_data *sd, short mapindex, int x, int y) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setsavepoint_pre ) { + int (*preHookFunc) (struct map_session_data *sd, short *mapindex, int *x, int *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setsavepoint_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setsavepoint_pre[hIndex].func; + retVal___ = preHookFunc(sd, &mapindex, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setsavepoint(sd, mapindex, x, y); + } + if( HPMHooks.count.HP_pc_setsavepoint_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, short *mapindex, int *x, int *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setsavepoint_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setsavepoint_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &mapindex, &x, &y); + } + } + return retVal___; +} +int HP_pc_randomwarp(struct map_session_data *sd, clr_type type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_randomwarp_pre ) { + int (*preHookFunc) (struct map_session_data *sd, clr_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_randomwarp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_randomwarp_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.randomwarp(sd, type); + } + if( HPMHooks.count.HP_pc_randomwarp_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, clr_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_randomwarp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_randomwarp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +int HP_pc_memo(struct map_session_data *sd, int pos) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_memo_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_memo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_memo_pre[hIndex].func; + retVal___ = preHookFunc(sd, &pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.memo(sd, pos); + } + if( HPMHooks.count.HP_pc_memo_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_memo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_memo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &pos); + } + } + return retVal___; +} +int HP_pc_checkadditem(struct map_session_data *sd, int nameid, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_checkadditem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *nameid, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkadditem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_checkadditem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.checkadditem(sd, nameid, amount); + } + if( HPMHooks.count.HP_pc_checkadditem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *nameid, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkadditem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_checkadditem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid, &amount); + } + } + return retVal___; +} +int HP_pc_inventoryblank(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_inventoryblank_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_inventoryblank_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_inventoryblank_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.inventoryblank(sd); + } + if( HPMHooks.count.HP_pc_inventoryblank_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_inventoryblank_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_inventoryblank_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_search_inventory(struct map_session_data *sd, int item_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_search_inventory_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *item_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_search_inventory_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_search_inventory_pre[hIndex].func; + retVal___ = preHookFunc(sd, &item_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.search_inventory(sd, item_id); + } + if( HPMHooks.count.HP_pc_search_inventory_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *item_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_search_inventory_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_search_inventory_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &item_id); + } + } + return retVal___; +} +int HP_pc_payzeny(struct map_session_data *sd, int zeny, enum e_log_pick_type type, struct map_session_data *tsd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_payzeny_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *zeny, enum e_log_pick_type *type, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_payzeny_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_payzeny_pre[hIndex].func; + retVal___ = preHookFunc(sd, &zeny, &type, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.payzeny(sd, zeny, type, tsd); + } + if( HPMHooks.count.HP_pc_payzeny_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *zeny, enum e_log_pick_type *type, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_payzeny_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_payzeny_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &zeny, &type, tsd); + } + } + return retVal___; +} +int HP_pc_additem(struct map_session_data *sd, struct item *item_data, int amount, e_log_pick_type log_type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_additem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct item *item_data, int *amount, e_log_pick_type *log_type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_additem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_additem_pre[hIndex].func; + retVal___ = preHookFunc(sd, item_data, &amount, &log_type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.additem(sd, item_data, amount, log_type); + } + if( HPMHooks.count.HP_pc_additem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct item *item_data, int *amount, e_log_pick_type *log_type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_additem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_additem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, item_data, &amount, &log_type); + } + } + return retVal___; +} +int HP_pc_getzeny(struct map_session_data *sd, int zeny, enum e_log_pick_type type, struct map_session_data *tsd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_getzeny_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *zeny, enum e_log_pick_type *type, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_getzeny_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_getzeny_pre[hIndex].func; + retVal___ = preHookFunc(sd, &zeny, &type, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.getzeny(sd, zeny, type, tsd); + } + if( HPMHooks.count.HP_pc_getzeny_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *zeny, enum e_log_pick_type *type, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_getzeny_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_getzeny_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &zeny, &type, tsd); + } + } + return retVal___; +} +int HP_pc_delitem(struct map_session_data *sd, int n, int amount, int type, short reason, e_log_pick_type log_type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_delitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, int *amount, int *type, short *reason, e_log_pick_type *log_type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_delitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_delitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, &amount, &type, &reason, &log_type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.delitem(sd, n, amount, type, reason, log_type); + } + if( HPMHooks.count.HP_pc_delitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, int *amount, int *type, short *reason, e_log_pick_type *log_type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_delitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_delitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, &amount, &type, &reason, &log_type); + } + } + return retVal___; +} +int HP_pc_paycash(struct map_session_data *sd, int price, int points) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_paycash_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *price, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_paycash_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_paycash_pre[hIndex].func; + retVal___ = preHookFunc(sd, &price, &points); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.paycash(sd, price, points); + } + if( HPMHooks.count.HP_pc_paycash_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *price, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_paycash_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_paycash_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &price, &points); + } + } + return retVal___; +} +int HP_pc_getcash(struct map_session_data *sd, int cash, int points) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_getcash_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *cash, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_getcash_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_getcash_pre[hIndex].func; + retVal___ = preHookFunc(sd, &cash, &points); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.getcash(sd, cash, points); + } + if( HPMHooks.count.HP_pc_getcash_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *cash, int *points); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_getcash_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_getcash_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &cash, &points); + } + } + return retVal___; +} +int HP_pc_cart_additem(struct map_session_data *sd, struct item *item_data, int amount, e_log_pick_type log_type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_cart_additem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct item *item_data, int *amount, e_log_pick_type *log_type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_cart_additem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_cart_additem_pre[hIndex].func; + retVal___ = preHookFunc(sd, item_data, &amount, &log_type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.cart_additem(sd, item_data, amount, log_type); + } + if( HPMHooks.count.HP_pc_cart_additem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct item *item_data, int *amount, e_log_pick_type *log_type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_cart_additem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_cart_additem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, item_data, &amount, &log_type); + } + } + return retVal___; +} +int HP_pc_cart_delitem(struct map_session_data *sd, int n, int amount, int type, e_log_pick_type log_type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_cart_delitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, int *amount, int *type, e_log_pick_type *log_type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_cart_delitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_cart_delitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, &amount, &type, &log_type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.cart_delitem(sd, n, amount, type, log_type); + } + if( HPMHooks.count.HP_pc_cart_delitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, int *amount, int *type, e_log_pick_type *log_type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_cart_delitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_cart_delitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, &amount, &type, &log_type); + } + } + return retVal___; +} +int HP_pc_putitemtocart(struct map_session_data *sd, int idx, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_putitemtocart_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *idx, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_putitemtocart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_putitemtocart_pre[hIndex].func; + retVal___ = preHookFunc(sd, &idx, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.putitemtocart(sd, idx, amount); + } + if( HPMHooks.count.HP_pc_putitemtocart_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *idx, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_putitemtocart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_putitemtocart_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &idx, &amount); + } + } + return retVal___; +} +int HP_pc_getitemfromcart(struct map_session_data *sd, int idx, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_getitemfromcart_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *idx, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_getitemfromcart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_getitemfromcart_pre[hIndex].func; + retVal___ = preHookFunc(sd, &idx, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.getitemfromcart(sd, idx, amount); + } + if( HPMHooks.count.HP_pc_getitemfromcart_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *idx, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_getitemfromcart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_getitemfromcart_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &idx, &amount); + } + } + return retVal___; +} +int HP_pc_cartitem_amount(struct map_session_data *sd, int idx, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_cartitem_amount_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *idx, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_cartitem_amount_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_cartitem_amount_pre[hIndex].func; + retVal___ = preHookFunc(sd, &idx, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.cartitem_amount(sd, idx, amount); + } + if( HPMHooks.count.HP_pc_cartitem_amount_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *idx, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_cartitem_amount_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_cartitem_amount_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &idx, &amount); + } + } + return retVal___; +} +int HP_pc_takeitem(struct map_session_data *sd, struct flooritem_data *fitem) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_takeitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct flooritem_data *fitem); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_takeitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_takeitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, fitem); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.takeitem(sd, fitem); + } + if( HPMHooks.count.HP_pc_takeitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct flooritem_data *fitem); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_takeitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_takeitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, fitem); + } + } + return retVal___; +} +int HP_pc_dropitem(struct map_session_data *sd, int n, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_dropitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_dropitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_dropitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.dropitem(sd, n, amount); + } + if( HPMHooks.count.HP_pc_dropitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_dropitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_dropitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, &amount); + } + } + return retVal___; +} +bool HP_pc_isequipped(struct map_session_data *sd, int nameid) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_pc_isequipped_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_isequipped_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_isequipped_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.isequipped(sd, nameid); + } + if( HPMHooks.count.HP_pc_isequipped_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_isequipped_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_isequipped_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid); + } + } + return retVal___; +} +bool HP_pc_can_Adopt(struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_pc_can_Adopt_pre ) { + bool (*preHookFunc) (struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_Adopt_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_can_Adopt_pre[hIndex].func; + retVal___ = preHookFunc(p1_sd, p2_sd, b_sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.can_Adopt(p1_sd, p2_sd, b_sd); + } + if( HPMHooks.count.HP_pc_can_Adopt_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_Adopt_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_can_Adopt_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p1_sd, p2_sd, b_sd); + } + } + return retVal___; +} +bool HP_pc_adoption(struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_pc_adoption_pre ) { + bool (*preHookFunc) (struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_adoption_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_adoption_pre[hIndex].func; + retVal___ = preHookFunc(p1_sd, p2_sd, b_sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.adoption(p1_sd, p2_sd, b_sd); + } + if( HPMHooks.count.HP_pc_adoption_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *p1_sd, struct map_session_data *p2_sd, struct map_session_data *b_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_adoption_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_adoption_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p1_sd, p2_sd, b_sd); + } + } + return retVal___; +} +int HP_pc_updateweightstatus(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_updateweightstatus_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_updateweightstatus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_updateweightstatus_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.updateweightstatus(sd); + } + if( HPMHooks.count.HP_pc_updateweightstatus_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_updateweightstatus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_updateweightstatus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_addautobonus(struct s_autobonus *bonus, char max, const char *bonus_script, short rate, unsigned int dur, short atk_type, const char *o_script, unsigned short pos, bool onskill) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_addautobonus_pre ) { + int (*preHookFunc) (struct s_autobonus *bonus, char *max, const char *bonus_script, short *rate, unsigned int *dur, short *atk_type, const char *o_script, unsigned short *pos, bool *onskill); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_addautobonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_addautobonus_pre[hIndex].func; + retVal___ = preHookFunc(bonus, &max, bonus_script, &rate, &dur, &atk_type, o_script, &pos, &onskill); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.addautobonus(bonus, max, bonus_script, rate, dur, atk_type, o_script, pos, onskill); + } + if( HPMHooks.count.HP_pc_addautobonus_post ) { + int (*postHookFunc) (int retVal___, struct s_autobonus *bonus, char *max, const char *bonus_script, short *rate, unsigned int *dur, short *atk_type, const char *o_script, unsigned short *pos, bool *onskill); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_addautobonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_addautobonus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bonus, &max, bonus_script, &rate, &dur, &atk_type, o_script, &pos, &onskill); + } + } + return retVal___; +} +int HP_pc_exeautobonus(struct map_session_data *sd, struct s_autobonus *bonus) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_exeautobonus_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct s_autobonus *bonus); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_exeautobonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_exeautobonus_pre[hIndex].func; + retVal___ = preHookFunc(sd, bonus); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.exeautobonus(sd, bonus); + } + if( HPMHooks.count.HP_pc_exeautobonus_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct s_autobonus *bonus); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_exeautobonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_exeautobonus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, bonus); + } + } + return retVal___; +} +int HP_pc_endautobonus(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_endautobonus_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_endautobonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_endautobonus_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.endautobonus(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_endautobonus_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_endautobonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_endautobonus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pc_delautobonus(struct map_session_data *sd, struct s_autobonus *bonus, char max, bool restore) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_delautobonus_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct s_autobonus *bonus, char *max, bool *restore); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_delautobonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_delautobonus_pre[hIndex].func; + retVal___ = preHookFunc(sd, bonus, &max, &restore); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.delautobonus(sd, bonus, max, restore); + } + if( HPMHooks.count.HP_pc_delautobonus_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct s_autobonus *bonus, char *max, bool *restore); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_delautobonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_delautobonus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, bonus, &max, &restore); + } + } + return retVal___; +} +int HP_pc_bonus(struct map_session_data *sd, int type, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_bonus_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bonus_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.bonus(sd, type, val); + } + if( HPMHooks.count.HP_pc_bonus_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bonus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, &val); + } + } + return retVal___; +} +int HP_pc_bonus2(struct map_session_data *sd, int type, int type2, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_bonus2_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, int *type2, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bonus2_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, &type2, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.bonus2(sd, type, type2, val); + } + if( HPMHooks.count.HP_pc_bonus2_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, int *type2, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bonus2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, &type2, &val); + } + } + return retVal___; +} +int HP_pc_bonus3(struct map_session_data *sd, int type, int type2, int type3, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_bonus3_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, int *type2, int *type3, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus3_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bonus3_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, &type2, &type3, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.bonus3(sd, type, type2, type3, val); + } + if( HPMHooks.count.HP_pc_bonus3_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, int *type2, int *type3, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus3_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bonus3_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, &type2, &type3, &val); + } + } + return retVal___; +} +int HP_pc_bonus4(struct map_session_data *sd, int type, int type2, int type3, int type4, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_bonus4_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, int *type2, int *type3, int *type4, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus4_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bonus4_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, &type2, &type3, &type4, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.bonus4(sd, type, type2, type3, type4, val); + } + if( HPMHooks.count.HP_pc_bonus4_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, int *type2, int *type3, int *type4, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus4_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bonus4_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, &type2, &type3, &type4, &val); + } + } + return retVal___; +} +int HP_pc_bonus5(struct map_session_data *sd, int type, int type2, int type3, int type4, int type5, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_bonus5_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, int *type2, int *type3, int *type4, int *type5, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus5_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bonus5_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, &type2, &type3, &type4, &type5, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.bonus5(sd, type, type2, type3, type4, type5, val); + } + if( HPMHooks.count.HP_pc_bonus5_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, int *type2, int *type3, int *type4, int *type5, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus5_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bonus5_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, &type2, &type3, &type4, &type5, &val); + } + } + return retVal___; +} +int HP_pc_skill(struct map_session_data *sd, int id, int level, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_skill_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *id, int *level, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_skill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_skill_pre[hIndex].func; + retVal___ = preHookFunc(sd, &id, &level, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.skill(sd, id, level, flag); + } + if( HPMHooks.count.HP_pc_skill_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *id, int *level, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_skill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_skill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &id, &level, &flag); + } + } + return retVal___; +} +int HP_pc_insert_card(struct map_session_data *sd, int idx_card, int idx_equip) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_insert_card_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *idx_card, int *idx_equip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_insert_card_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_insert_card_pre[hIndex].func; + retVal___ = preHookFunc(sd, &idx_card, &idx_equip); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.insert_card(sd, idx_card, idx_equip); + } + if( HPMHooks.count.HP_pc_insert_card_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *idx_card, int *idx_equip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_insert_card_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_insert_card_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &idx_card, &idx_equip); + } + } + return retVal___; +} +int HP_pc_steal_item(struct map_session_data *sd, struct block_list *bl, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_steal_item_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct block_list *bl, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_steal_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_steal_item_pre[hIndex].func; + retVal___ = preHookFunc(sd, bl, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.steal_item(sd, bl, skill_lv); + } + if( HPMHooks.count.HP_pc_steal_item_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct block_list *bl, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_steal_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_steal_item_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, bl, &skill_lv); + } + } + return retVal___; +} +int HP_pc_steal_coin(struct map_session_data *sd, struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_steal_coin_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_steal_coin_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_steal_coin_pre[hIndex].func; + retVal___ = preHookFunc(sd, bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.steal_coin(sd, bl); + } + if( HPMHooks.count.HP_pc_steal_coin_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_steal_coin_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_steal_coin_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, bl); + } + } + return retVal___; +} +int HP_pc_modifybuyvalue(struct map_session_data *sd, int orig_value) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_modifybuyvalue_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *orig_value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_modifybuyvalue_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_modifybuyvalue_pre[hIndex].func; + retVal___ = preHookFunc(sd, &orig_value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.modifybuyvalue(sd, orig_value); + } + if( HPMHooks.count.HP_pc_modifybuyvalue_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *orig_value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_modifybuyvalue_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_modifybuyvalue_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &orig_value); + } + } + return retVal___; +} +int HP_pc_modifysellvalue(struct map_session_data *sd, int orig_value) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_modifysellvalue_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *orig_value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_modifysellvalue_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_modifysellvalue_pre[hIndex].func; + retVal___ = preHookFunc(sd, &orig_value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.modifysellvalue(sd, orig_value); + } + if( HPMHooks.count.HP_pc_modifysellvalue_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *orig_value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_modifysellvalue_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_modifysellvalue_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &orig_value); + } + } + return retVal___; +} +int HP_pc_follow(struct map_session_data *sd, int target_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_follow_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_follow_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_follow_pre[hIndex].func; + retVal___ = preHookFunc(sd, &target_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.follow(sd, target_id); + } + if( HPMHooks.count.HP_pc_follow_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_follow_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_follow_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &target_id); + } + } + return retVal___; +} +int HP_pc_stop_following(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_stop_following_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_stop_following_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_stop_following_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.stop_following(sd); + } + if( HPMHooks.count.HP_pc_stop_following_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_stop_following_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_stop_following_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +unsigned int HP_pc_maxbaselv(struct map_session_data *sd) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_pc_maxbaselv_pre ) { + unsigned int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_maxbaselv_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_maxbaselv_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.maxbaselv(sd); + } + if( HPMHooks.count.HP_pc_maxbaselv_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_maxbaselv_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_maxbaselv_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +unsigned int HP_pc_maxjoblv(struct map_session_data *sd) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_pc_maxjoblv_pre ) { + unsigned int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_maxjoblv_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_maxjoblv_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.maxjoblv(sd); + } + if( HPMHooks.count.HP_pc_maxjoblv_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_maxjoblv_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_maxjoblv_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_checkbaselevelup(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_checkbaselevelup_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkbaselevelup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_checkbaselevelup_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.checkbaselevelup(sd); + } + if( HPMHooks.count.HP_pc_checkbaselevelup_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkbaselevelup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_checkbaselevelup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_checkjoblevelup(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_checkjoblevelup_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkjoblevelup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_checkjoblevelup_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.checkjoblevelup(sd); + } + if( HPMHooks.count.HP_pc_checkjoblevelup_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkjoblevelup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_checkjoblevelup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_gainexp(struct map_session_data *sd, struct block_list *src, unsigned int base_exp, unsigned int job_exp, bool is_quest) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_gainexp_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct block_list *src, unsigned int *base_exp, unsigned int *job_exp, bool *is_quest); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_gainexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_gainexp_pre[hIndex].func; + retVal___ = preHookFunc(sd, src, &base_exp, &job_exp, &is_quest); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.gainexp(sd, src, base_exp, job_exp, is_quest); + } + if( HPMHooks.count.HP_pc_gainexp_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct block_list *src, unsigned int *base_exp, unsigned int *job_exp, bool *is_quest); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_gainexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_gainexp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, src, &base_exp, &job_exp, &is_quest); + } + } + return retVal___; +} +unsigned int HP_pc_nextbaseexp(struct map_session_data *sd) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_pc_nextbaseexp_pre ) { + unsigned int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_nextbaseexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_nextbaseexp_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.nextbaseexp(sd); + } + if( HPMHooks.count.HP_pc_nextbaseexp_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_nextbaseexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_nextbaseexp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +unsigned int HP_pc_thisbaseexp(struct map_session_data *sd) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_pc_thisbaseexp_pre ) { + unsigned int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_thisbaseexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_thisbaseexp_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.thisbaseexp(sd); + } + if( HPMHooks.count.HP_pc_thisbaseexp_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_thisbaseexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_thisbaseexp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +unsigned int HP_pc_nextjobexp(struct map_session_data *sd) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_pc_nextjobexp_pre ) { + unsigned int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_nextjobexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_nextjobexp_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.nextjobexp(sd); + } + if( HPMHooks.count.HP_pc_nextjobexp_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_nextjobexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_nextjobexp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +unsigned int HP_pc_thisjobexp(struct map_session_data *sd) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_pc_thisjobexp_pre ) { + unsigned int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_thisjobexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_thisjobexp_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.thisjobexp(sd); + } + if( HPMHooks.count.HP_pc_thisjobexp_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_thisjobexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_thisjobexp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_gets_status_point(int level) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_gets_status_point_pre ) { + int (*preHookFunc) (int *level); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_gets_status_point_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_gets_status_point_pre[hIndex].func; + retVal___ = preHookFunc(&level); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.gets_status_point(level); + } + if( HPMHooks.count.HP_pc_gets_status_point_post ) { + int (*postHookFunc) (int retVal___, int *level); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_gets_status_point_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_gets_status_point_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &level); + } + } + return retVal___; +} +int HP_pc_need_status_point(struct map_session_data *sd, int type, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_need_status_point_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_need_status_point_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_need_status_point_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.need_status_point(sd, type, val); + } + if( HPMHooks.count.HP_pc_need_status_point_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_need_status_point_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_need_status_point_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, &val); + } + } + return retVal___; +} +int HP_pc_statusup(struct map_session_data *sd, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_statusup_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_statusup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_statusup_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.statusup(sd, type); + } + if( HPMHooks.count.HP_pc_statusup_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_statusup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_statusup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +int HP_pc_statusup2(struct map_session_data *sd, int type, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_statusup2_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_statusup2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_statusup2_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.statusup2(sd, type, val); + } + if( HPMHooks.count.HP_pc_statusup2_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_statusup2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_statusup2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, &val); + } + } + return retVal___; +} +int HP_pc_skillup(struct map_session_data *sd, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_skillup_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_skillup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_skillup_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.skillup(sd, skill_id); + } + if( HPMHooks.count.HP_pc_skillup_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_skillup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_skillup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id); + } + } + return retVal___; +} +int HP_pc_allskillup(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_allskillup_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_allskillup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_allskillup_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.allskillup(sd); + } + if( HPMHooks.count.HP_pc_allskillup_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_allskillup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_allskillup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_resetlvl(struct map_session_data *sd, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_resetlvl_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_resetlvl_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_resetlvl_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.resetlvl(sd, type); + } + if( HPMHooks.count.HP_pc_resetlvl_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_resetlvl_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_resetlvl_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +int HP_pc_resetstate(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_resetstate_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_resetstate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_resetstate_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.resetstate(sd); + } + if( HPMHooks.count.HP_pc_resetstate_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_resetstate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_resetstate_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_resetskill(struct map_session_data *sd, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_resetskill_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_resetskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_resetskill_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.resetskill(sd, flag); + } + if( HPMHooks.count.HP_pc_resetskill_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_resetskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_resetskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +int HP_pc_resetfeel(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_resetfeel_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_resetfeel_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_resetfeel_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.resetfeel(sd); + } + if( HPMHooks.count.HP_pc_resetfeel_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_resetfeel_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_resetfeel_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_resethate(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_resethate_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_resethate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_resethate_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.resethate(sd); + } + if( HPMHooks.count.HP_pc_resethate_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_resethate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_resethate_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_equipitem(struct map_session_data *sd, int n, int req_pos) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_equipitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, int *req_pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_equipitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_equipitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, &req_pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.equipitem(sd, n, req_pos); + } + if( HPMHooks.count.HP_pc_equipitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, int *req_pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_equipitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_equipitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, &req_pos); + } + } + return retVal___; +} +int HP_pc_unequipitem(struct map_session_data *sd, int n, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_unequipitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_unequipitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_unequipitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.unequipitem(sd, n, flag); + } + if( HPMHooks.count.HP_pc_unequipitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_unequipitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_unequipitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, &flag); + } + } + return retVal___; +} +int HP_pc_checkitem(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_checkitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_checkitem_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.checkitem(sd); + } + if( HPMHooks.count.HP_pc_checkitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_checkitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_useitem(struct map_session_data *sd, int n) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_useitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_useitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_useitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.useitem(sd, n); + } + if( HPMHooks.count.HP_pc_useitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_useitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_useitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n); + } + } + return retVal___; +} +int HP_pc_skillatk_bonus(struct map_session_data *sd, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_skillatk_bonus_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_skillatk_bonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_skillatk_bonus_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.skillatk_bonus(sd, skill_id); + } + if( HPMHooks.count.HP_pc_skillatk_bonus_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_skillatk_bonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_skillatk_bonus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id); + } + } + return retVal___; +} +int HP_pc_skillheal_bonus(struct map_session_data *sd, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_skillheal_bonus_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_skillheal_bonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_skillheal_bonus_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.skillheal_bonus(sd, skill_id); + } + if( HPMHooks.count.HP_pc_skillheal_bonus_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_skillheal_bonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_skillheal_bonus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id); + } + } + return retVal___; +} +int HP_pc_skillheal2_bonus(struct map_session_data *sd, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_skillheal2_bonus_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_skillheal2_bonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_skillheal2_bonus_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.skillheal2_bonus(sd, skill_id); + } + if( HPMHooks.count.HP_pc_skillheal2_bonus_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_skillheal2_bonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_skillheal2_bonus_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id); + } + } + return retVal___; +} +void HP_pc_damage(struct map_session_data *sd, struct block_list *src, unsigned int hp, unsigned int sp) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_damage_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct block_list *src, unsigned int *hp, unsigned int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_damage_pre[hIndex].func; + preHookFunc(sd, src, &hp, &sp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.damage(sd, src, hp, sp); + } + if( HPMHooks.count.HP_pc_damage_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct block_list *src, unsigned int *hp, unsigned int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_damage_post[hIndex].func; + postHookFunc(sd, src, &hp, &sp); + } + } + return; +} +int HP_pc_dead(struct map_session_data *sd, struct block_list *src) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_dead_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_dead_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_dead_pre[hIndex].func; + retVal___ = preHookFunc(sd, src); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.dead(sd, src); + } + if( HPMHooks.count.HP_pc_dead_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_dead_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_dead_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, src); + } + } + return retVal___; +} +void HP_pc_revive(struct map_session_data *sd, unsigned int hp, unsigned int sp) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_revive_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned int *hp, unsigned int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_revive_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_revive_pre[hIndex].func; + preHookFunc(sd, &hp, &sp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.revive(sd, hp, sp); + } + if( HPMHooks.count.HP_pc_revive_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int *hp, unsigned int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_revive_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_revive_post[hIndex].func; + postHookFunc(sd, &hp, &sp); + } + } + return; +} +void HP_pc_heal(struct map_session_data *sd, unsigned int hp, unsigned int sp, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_heal_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned int *hp, unsigned int *sp, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_heal_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_heal_pre[hIndex].func; + preHookFunc(sd, &hp, &sp, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.heal(sd, hp, sp, type); + } + if( HPMHooks.count.HP_pc_heal_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int *hp, unsigned int *sp, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_heal_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_heal_post[hIndex].func; + postHookFunc(sd, &hp, &sp, &type); + } + } + return; +} +int HP_pc_itemheal(struct map_session_data *sd, int itemid, int hp, int sp) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_itemheal_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *itemid, int *hp, int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_itemheal_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_itemheal_pre[hIndex].func; + retVal___ = preHookFunc(sd, &itemid, &hp, &sp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.itemheal(sd, itemid, hp, sp); + } + if( HPMHooks.count.HP_pc_itemheal_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *itemid, int *hp, int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_itemheal_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_itemheal_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &itemid, &hp, &sp); + } + } + return retVal___; +} +int HP_pc_percentheal(struct map_session_data *sd, int hp, int sp) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_percentheal_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *hp, int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_percentheal_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_percentheal_pre[hIndex].func; + retVal___ = preHookFunc(sd, &hp, &sp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.percentheal(sd, hp, sp); + } + if( HPMHooks.count.HP_pc_percentheal_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *hp, int *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_percentheal_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_percentheal_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &hp, &sp); + } + } + return retVal___; +} +int HP_pc_jobchange(struct map_session_data *sd, int job, int upper) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_jobchange_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *job, int *upper); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_jobchange_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_jobchange_pre[hIndex].func; + retVal___ = preHookFunc(sd, &job, &upper); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.jobchange(sd, job, upper); + } + if( HPMHooks.count.HP_pc_jobchange_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *job, int *upper); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_jobchange_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_jobchange_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &job, &upper); + } + } + return retVal___; +} +int HP_pc_setoption(struct map_session_data *sd, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setoption_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setoption_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setoption_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setoption(sd, type); + } + if( HPMHooks.count.HP_pc_setoption_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setoption_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setoption_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +int HP_pc_setcart(struct map_session_data *sd, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setcart_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setcart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setcart_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setcart(sd, type); + } + if( HPMHooks.count.HP_pc_setcart_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setcart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setcart_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +int HP_pc_setfalcon(struct map_session_data *sd, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setfalcon_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setfalcon_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setfalcon_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setfalcon(sd, flag); + } + if( HPMHooks.count.HP_pc_setfalcon_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setfalcon_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setfalcon_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +int HP_pc_setriding(struct map_session_data *sd, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setriding_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setriding_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setriding_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setriding(sd, flag); + } + if( HPMHooks.count.HP_pc_setriding_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setriding_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setriding_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +int HP_pc_setmadogear(struct map_session_data *sd, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setmadogear_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setmadogear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setmadogear_pre[hIndex].func; + retVal___ = preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setmadogear(sd, flag); + } + if( HPMHooks.count.HP_pc_setmadogear_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setmadogear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setmadogear_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &flag); + } + } + return retVal___; +} +int HP_pc_changelook(struct map_session_data *sd, int type, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_changelook_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_changelook_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_changelook_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.changelook(sd, type, val); + } + if( HPMHooks.count.HP_pc_changelook_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_changelook_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_changelook_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, &val); + } + } + return retVal___; +} +int HP_pc_equiplookall(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_equiplookall_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_equiplookall_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_equiplookall_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.equiplookall(sd); + } + if( HPMHooks.count.HP_pc_equiplookall_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_equiplookall_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_equiplookall_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_readparam(struct map_session_data *sd, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_readparam_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readparam_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_readparam_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.readparam(sd, type); + } + if( HPMHooks.count.HP_pc_readparam_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readparam_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_readparam_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +int HP_pc_setparam(struct map_session_data *sd, int type, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setparam_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setparam_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setparam_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setparam(sd, type, val); + } + if( HPMHooks.count.HP_pc_setparam_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setparam_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setparam_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, &val); + } + } + return retVal___; +} +int HP_pc_readreg(struct map_session_data *sd, int reg) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_readreg_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *reg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readreg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_readreg_pre[hIndex].func; + retVal___ = preHookFunc(sd, ®); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.readreg(sd, reg); + } + if( HPMHooks.count.HP_pc_readreg_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *reg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readreg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_readreg_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ®); + } + } + return retVal___; +} +int HP_pc_setreg(struct map_session_data *sd, int reg, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setreg_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *reg, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setreg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setreg_pre[hIndex].func; + retVal___ = preHookFunc(sd, ®, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setreg(sd, reg, val); + } + if( HPMHooks.count.HP_pc_setreg_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *reg, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setreg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setreg_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ®, &val); + } + } + return retVal___; +} +char* HP_pc_readregstr(struct map_session_data *sd, int reg) { + int hIndex = 0; + char* retVal___ = NULL; + if( HPMHooks.count.HP_pc_readregstr_pre ) { + char* (*preHookFunc) (struct map_session_data *sd, int *reg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readregstr_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_readregstr_pre[hIndex].func; + retVal___ = preHookFunc(sd, ®); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.readregstr(sd, reg); + } + if( HPMHooks.count.HP_pc_readregstr_post ) { + char* (*postHookFunc) (char* retVal___, struct map_session_data *sd, int *reg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readregstr_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_readregstr_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ®); + } + } + return retVal___; +} +int HP_pc_setregstr(struct map_session_data *sd, int reg, const char *str) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setregstr_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *reg, const char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setregstr_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setregstr_pre[hIndex].func; + retVal___ = preHookFunc(sd, ®, str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setregstr(sd, reg, str); + } + if( HPMHooks.count.HP_pc_setregstr_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *reg, const char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setregstr_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setregstr_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ®, str); + } + } + return retVal___; +} +int HP_pc_readregistry(struct map_session_data *sd, const char *reg, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_readregistry_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *reg, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readregistry_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_readregistry_pre[hIndex].func; + retVal___ = preHookFunc(sd, reg, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.readregistry(sd, reg, type); + } + if( HPMHooks.count.HP_pc_readregistry_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *reg, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readregistry_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_readregistry_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, reg, &type); + } + } + return retVal___; +} +int HP_pc_setregistry(struct map_session_data *sd, const char *reg, int val, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setregistry_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *reg, int *val, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setregistry_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setregistry_pre[hIndex].func; + retVal___ = preHookFunc(sd, reg, &val, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setregistry(sd, reg, val, type); + } + if( HPMHooks.count.HP_pc_setregistry_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *reg, int *val, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setregistry_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setregistry_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, reg, &val, &type); + } + } + return retVal___; +} +char* HP_pc_readregistry_str(struct map_session_data *sd, const char *reg, int type) { + int hIndex = 0; + char* retVal___ = NULL; + if( HPMHooks.count.HP_pc_readregistry_str_pre ) { + char* (*preHookFunc) (struct map_session_data *sd, const char *reg, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readregistry_str_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_readregistry_str_pre[hIndex].func; + retVal___ = preHookFunc(sd, reg, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.readregistry_str(sd, reg, type); + } + if( HPMHooks.count.HP_pc_readregistry_str_post ) { + char* (*postHookFunc) (char* retVal___, struct map_session_data *sd, const char *reg, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readregistry_str_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_readregistry_str_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, reg, &type); + } + } + return retVal___; +} +int HP_pc_setregistry_str(struct map_session_data *sd, const char *reg, const char *val, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setregistry_str_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *reg, const char *val, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setregistry_str_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setregistry_str_pre[hIndex].func; + retVal___ = preHookFunc(sd, reg, val, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setregistry_str(sd, reg, val, type); + } + if( HPMHooks.count.HP_pc_setregistry_str_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *reg, const char *val, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setregistry_str_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setregistry_str_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, reg, val, &type); + } + } + return retVal___; +} +int HP_pc_addeventtimer(struct map_session_data *sd, int tick, const char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_addeventtimer_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *tick, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_addeventtimer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_addeventtimer_pre[hIndex].func; + retVal___ = preHookFunc(sd, &tick, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.addeventtimer(sd, tick, name); + } + if( HPMHooks.count.HP_pc_addeventtimer_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *tick, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_addeventtimer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_addeventtimer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &tick, name); + } + } + return retVal___; +} +int HP_pc_deleventtimer(struct map_session_data *sd, const char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_deleventtimer_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_deleventtimer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_deleventtimer_pre[hIndex].func; + retVal___ = preHookFunc(sd, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.deleventtimer(sd, name); + } + if( HPMHooks.count.HP_pc_deleventtimer_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_deleventtimer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_deleventtimer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, name); + } + } + return retVal___; +} +int HP_pc_cleareventtimer(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_cleareventtimer_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_cleareventtimer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_cleareventtimer_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.cleareventtimer(sd); + } + if( HPMHooks.count.HP_pc_cleareventtimer_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_cleareventtimer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_cleareventtimer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_addeventtimercount(struct map_session_data *sd, const char *name, int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_addeventtimercount_pre ) { + int (*preHookFunc) (struct map_session_data *sd, const char *name, int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_addeventtimercount_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_addeventtimercount_pre[hIndex].func; + retVal___ = preHookFunc(sd, name, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.addeventtimercount(sd, name, tick); + } + if( HPMHooks.count.HP_pc_addeventtimercount_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, const char *name, int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_addeventtimercount_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_addeventtimercount_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, name, &tick); + } + } + return retVal___; +} +int HP_pc_calc_pvprank(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_calc_pvprank_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calc_pvprank_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_calc_pvprank_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.calc_pvprank(sd); + } + if( HPMHooks.count.HP_pc_calc_pvprank_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calc_pvprank_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_calc_pvprank_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_calc_pvprank_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_calc_pvprank_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calc_pvprank_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_calc_pvprank_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.calc_pvprank_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_calc_pvprank_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calc_pvprank_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_calc_pvprank_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pc_ismarried(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_ismarried_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_ismarried_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_ismarried_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.ismarried(sd); + } + if( HPMHooks.count.HP_pc_ismarried_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_ismarried_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_ismarried_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_marriage(struct map_session_data *sd, struct map_session_data *dstsd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_marriage_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct map_session_data *dstsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_marriage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_marriage_pre[hIndex].func; + retVal___ = preHookFunc(sd, dstsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.marriage(sd, dstsd); + } + if( HPMHooks.count.HP_pc_marriage_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct map_session_data *dstsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_marriage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_marriage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, dstsd); + } + } + return retVal___; +} +int HP_pc_divorce(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_divorce_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_divorce_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_divorce_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.divorce(sd); + } + if( HPMHooks.count.HP_pc_divorce_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_divorce_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_divorce_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +struct map_session_data* HP_pc_get_partner(struct map_session_data *sd) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_pc_get_partner_pre ) { + struct map_session_data* (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_partner_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_get_partner_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.get_partner(sd); + } + if( HPMHooks.count.HP_pc_get_partner_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_partner_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_get_partner_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +struct map_session_data* HP_pc_get_father(struct map_session_data *sd) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_pc_get_father_pre ) { + struct map_session_data* (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_father_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_get_father_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.get_father(sd); + } + if( HPMHooks.count.HP_pc_get_father_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_father_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_get_father_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +struct map_session_data* HP_pc_get_mother(struct map_session_data *sd) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_pc_get_mother_pre ) { + struct map_session_data* (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_mother_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_get_mother_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.get_mother(sd); + } + if( HPMHooks.count.HP_pc_get_mother_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_mother_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_get_mother_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +struct map_session_data* HP_pc_get_child(struct map_session_data *sd) { + int hIndex = 0; + struct map_session_data* retVal___ = NULL; + if( HPMHooks.count.HP_pc_get_child_pre ) { + struct map_session_data* (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_child_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_get_child_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.get_child(sd); + } + if( HPMHooks.count.HP_pc_get_child_post ) { + struct map_session_data* (*postHookFunc) (struct map_session_data* retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_get_child_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_get_child_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +void HP_pc_bleeding(struct map_session_data *sd, unsigned int diff_tick) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_bleeding_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned int *diff_tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bleeding_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bleeding_pre[hIndex].func; + preHookFunc(sd, &diff_tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.bleeding(sd, diff_tick); + } + if( HPMHooks.count.HP_pc_bleeding_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int *diff_tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bleeding_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bleeding_post[hIndex].func; + postHookFunc(sd, &diff_tick); + } + } + return; +} +void HP_pc_regen(struct map_session_data *sd, unsigned int diff_tick) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_regen_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned int *diff_tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_regen_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_regen_pre[hIndex].func; + preHookFunc(sd, &diff_tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.regen(sd, diff_tick); + } + if( HPMHooks.count.HP_pc_regen_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int *diff_tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_regen_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_regen_post[hIndex].func; + postHookFunc(sd, &diff_tick); + } + } + return; +} +void HP_pc_setstand(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_setstand_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setstand_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setstand_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.setstand(sd); + } + if( HPMHooks.count.HP_pc_setstand_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setstand_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setstand_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_pc_candrop(struct map_session_data *sd, struct item *item) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_candrop_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct item *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_candrop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_candrop_pre[hIndex].func; + retVal___ = preHookFunc(sd, item); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.candrop(sd, item); + } + if( HPMHooks.count.HP_pc_candrop_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct item *item); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_candrop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_candrop_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, item); + } + } + return retVal___; +} +int HP_pc_jobid2mapid(unsigned short b_class) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_jobid2mapid_pre ) { + int (*preHookFunc) (unsigned short *b_class); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_jobid2mapid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_jobid2mapid_pre[hIndex].func; + retVal___ = preHookFunc(&b_class); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.jobid2mapid(b_class); + } + if( HPMHooks.count.HP_pc_jobid2mapid_post ) { + int (*postHookFunc) (int retVal___, unsigned short *b_class); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_jobid2mapid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_jobid2mapid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &b_class); + } + } + return retVal___; +} +int HP_pc_mapid2jobid(unsigned short class_, int sex) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_mapid2jobid_pre ) { + int (*preHookFunc) (unsigned short *class_, int *sex); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_mapid2jobid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_mapid2jobid_pre[hIndex].func; + retVal___ = preHookFunc(&class_, &sex); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.mapid2jobid(class_, sex); + } + if( HPMHooks.count.HP_pc_mapid2jobid_post ) { + int (*postHookFunc) (int retVal___, unsigned short *class_, int *sex); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_mapid2jobid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_mapid2jobid_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_, &sex); + } + } + return retVal___; +} +const char* HP_pc_job_name(int class_) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_pc_job_name_pre ) { + const char* (*preHookFunc) (int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_job_name_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_job_name_pre[hIndex].func; + retVal___ = preHookFunc(&class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.job_name(class_); + } + if( HPMHooks.count.HP_pc_job_name_post ) { + const char* (*postHookFunc) (const char* retVal___, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_job_name_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_job_name_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &class_); + } + } + return retVal___; +} +void HP_pc_setinvincibletimer(struct map_session_data *sd, int val) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_setinvincibletimer_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setinvincibletimer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setinvincibletimer_pre[hIndex].func; + preHookFunc(sd, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.setinvincibletimer(sd, val); + } + if( HPMHooks.count.HP_pc_setinvincibletimer_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setinvincibletimer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setinvincibletimer_post[hIndex].func; + postHookFunc(sd, &val); + } + } + return; +} +void HP_pc_delinvincibletimer(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_delinvincibletimer_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_delinvincibletimer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_delinvincibletimer_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.delinvincibletimer(sd); + } + if( HPMHooks.count.HP_pc_delinvincibletimer_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_delinvincibletimer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_delinvincibletimer_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_pc_addspiritball(struct map_session_data *sd, int interval, int max) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_addspiritball_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *interval, int *max); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_addspiritball_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_addspiritball_pre[hIndex].func; + retVal___ = preHookFunc(sd, &interval, &max); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.addspiritball(sd, interval, max); + } + if( HPMHooks.count.HP_pc_addspiritball_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *interval, int *max); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_addspiritball_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_addspiritball_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &interval, &max); + } + } + return retVal___; +} +int HP_pc_delspiritball(struct map_session_data *sd, int count, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_delspiritball_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *count, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_delspiritball_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_delspiritball_pre[hIndex].func; + retVal___ = preHookFunc(sd, &count, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.delspiritball(sd, count, type); + } + if( HPMHooks.count.HP_pc_delspiritball_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *count, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_delspiritball_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_delspiritball_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &count, &type); + } + } + return retVal___; +} +void HP_pc_addfame(struct map_session_data *sd, int count) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_addfame_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_addfame_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_addfame_pre[hIndex].func; + preHookFunc(sd, &count); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.addfame(sd, count); + } + if( HPMHooks.count.HP_pc_addfame_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_addfame_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_addfame_post[hIndex].func; + postHookFunc(sd, &count); + } + } + return; +} +unsigned char HP_pc_famerank(int char_id, int job) { + int hIndex = 0; + unsigned char retVal___; + memset(&retVal___, '\0', sizeof(unsigned char)); + if( HPMHooks.count.HP_pc_famerank_pre ) { + unsigned char (*preHookFunc) (int *char_id, int *job); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_famerank_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_famerank_pre[hIndex].func; + retVal___ = preHookFunc(&char_id, &job); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.famerank(char_id, job); + } + if( HPMHooks.count.HP_pc_famerank_post ) { + unsigned char (*postHookFunc) (unsigned char retVal___, int *char_id, int *job); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_famerank_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_famerank_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &char_id, &job); + } + } + return retVal___; +} +int HP_pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_set_hate_mob_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *pos, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_set_hate_mob_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_set_hate_mob_pre[hIndex].func; + retVal___ = preHookFunc(sd, &pos, bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.set_hate_mob(sd, pos, bl); + } + if( HPMHooks.count.HP_pc_set_hate_mob_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *pos, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_set_hate_mob_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_set_hate_mob_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &pos, bl); + } + } + return retVal___; +} +int HP_pc_readdb(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_readdb_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_readdb_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.readdb(); + } + if( HPMHooks.count.HP_pc_readdb_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_readdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_pc_map_day_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_map_day_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_map_day_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_map_day_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.map_day_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_map_day_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_map_day_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_map_day_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pc_map_night_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_map_night_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_map_night_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_map_night_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.map_night_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_map_night_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_map_night_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_map_night_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_pc_inventory_rentals(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_inventory_rentals_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_inventory_rentals_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_inventory_rentals_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.inventory_rentals(sd); + } + if( HPMHooks.count.HP_pc_inventory_rentals_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_inventory_rentals_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_inventory_rentals_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_pc_inventory_rental_clear(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_inventory_rental_clear_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_inventory_rental_clear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_inventory_rental_clear_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.inventory_rental_clear(sd); + } + if( HPMHooks.count.HP_pc_inventory_rental_clear_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_inventory_rental_clear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_inventory_rental_clear_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +void HP_pc_inventory_rental_add(struct map_session_data *sd, int seconds) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_inventory_rental_add_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *seconds); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_inventory_rental_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_inventory_rental_add_pre[hIndex].func; + preHookFunc(sd, &seconds); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.inventory_rental_add(sd, seconds); + } + if( HPMHooks.count.HP_pc_inventory_rental_add_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *seconds); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_inventory_rental_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_inventory_rental_add_post[hIndex].func; + postHookFunc(sd, &seconds); + } + } + return; +} +int HP_pc_disguise(struct map_session_data *sd, int class_) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_disguise_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_disguise_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_disguise_pre[hIndex].func; + retVal___ = preHookFunc(sd, &class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.disguise(sd, class_); + } + if( HPMHooks.count.HP_pc_disguise_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_disguise_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_disguise_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &class_); + } + } + return retVal___; +} +bool HP_pc_isautolooting(struct map_session_data *sd, int nameid) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_pc_isautolooting_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_isautolooting_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_isautolooting_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.isautolooting(sd, nameid); + } + if( HPMHooks.count.HP_pc_isautolooting_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_isautolooting_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_isautolooting_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid); + } + } + return retVal___; +} +void HP_pc_overheat(struct map_session_data *sd, int val) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_overheat_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_overheat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_overheat_pre[hIndex].func; + preHookFunc(sd, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.overheat(sd, val); + } + if( HPMHooks.count.HP_pc_overheat_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_overheat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_overheat_post[hIndex].func; + postHookFunc(sd, &val); + } + } + return; +} +int HP_pc_banding(struct map_session_data *sd, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_banding_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_banding_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_banding_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.banding(sd, skill_lv); + } + if( HPMHooks.count.HP_pc_banding_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_banding_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_banding_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_lv); + } + } + return retVal___; +} +void HP_pc_itemcd_do(struct map_session_data *sd, bool load) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_itemcd_do_pre ) { + void (*preHookFunc) (struct map_session_data *sd, bool *load); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_itemcd_do_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_itemcd_do_pre[hIndex].func; + preHookFunc(sd, &load); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.itemcd_do(sd, load); + } + if( HPMHooks.count.HP_pc_itemcd_do_post ) { + void (*postHookFunc) (struct map_session_data *sd, bool *load); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_itemcd_do_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_itemcd_do_post[hIndex].func; + postHookFunc(sd, &load); + } + } + return; +} +int HP_pc_load_combo(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_load_combo_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_load_combo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_load_combo_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.load_combo(sd); + } + if( HPMHooks.count.HP_pc_load_combo_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_load_combo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_load_combo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_add_charm(struct map_session_data *sd, int interval, int max, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_add_charm_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *interval, int *max, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_add_charm_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_add_charm_pre[hIndex].func; + retVal___ = preHookFunc(sd, &interval, &max, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.add_charm(sd, interval, max, type); + } + if( HPMHooks.count.HP_pc_add_charm_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *interval, int *max, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_add_charm_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_add_charm_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &interval, &max, &type); + } + } + return retVal___; +} +int HP_pc_del_charm(struct map_session_data *sd, int count, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_del_charm_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *count, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_del_charm_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_del_charm_pre[hIndex].func; + retVal___ = preHookFunc(sd, &count, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.del_charm(sd, count, type); + } + if( HPMHooks.count.HP_pc_del_charm_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *count, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_del_charm_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_del_charm_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &count, &type); + } + } + return retVal___; +} +void HP_pc_baselevelchanged(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_baselevelchanged_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_baselevelchanged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_baselevelchanged_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.baselevelchanged(sd); + } + if( HPMHooks.count.HP_pc_baselevelchanged_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_baselevelchanged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_baselevelchanged_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_pc_level_penalty_mod(int diff, unsigned char race, unsigned short mode, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_level_penalty_mod_pre ) { + int (*preHookFunc) (int *diff, unsigned char *race, unsigned short *mode, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_level_penalty_mod_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_level_penalty_mod_pre[hIndex].func; + retVal___ = preHookFunc(&diff, &race, &mode, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.level_penalty_mod(diff, race, mode, type); + } + if( HPMHooks.count.HP_pc_level_penalty_mod_post ) { + int (*postHookFunc) (int retVal___, int *diff, unsigned char *race, unsigned short *mode, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_level_penalty_mod_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_level_penalty_mod_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &diff, &race, &mode, &type); + } + } + return retVal___; +} +int HP_pc_calc_skillpoint(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_calc_skillpoint_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calc_skillpoint_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_calc_skillpoint_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.calc_skillpoint(sd); + } + if( HPMHooks.count.HP_pc_calc_skillpoint_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calc_skillpoint_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_calc_skillpoint_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_invincible_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_invincible_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_invincible_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_invincible_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.invincible_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_invincible_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_invincible_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_invincible_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pc_spiritball_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_spiritball_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_spiritball_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_spiritball_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.spiritball_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_spiritball_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_spiritball_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_spiritball_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pc_check_banding(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_check_banding_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_check_banding_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_pc_check_banding_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.pc.check_banding(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_pc_check_banding_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_check_banding_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_pc_check_banding_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_pc_inventory_rental_end(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_inventory_rental_end_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_inventory_rental_end_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_inventory_rental_end_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.inventory_rental_end(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_inventory_rental_end_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_inventory_rental_end_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_inventory_rental_end_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_pc_check_skilltree(struct map_session_data *sd, int skill_id) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_check_skilltree_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_check_skilltree_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_check_skilltree_pre[hIndex].func; + preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.check_skilltree(sd, skill_id); + } + if( HPMHooks.count.HP_pc_check_skilltree_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_check_skilltree_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_check_skilltree_post[hIndex].func; + postHookFunc(sd, &skill_id); + } + } + return; +} +int HP_pc_bonus_autospell(struct s_autospell *spell, int max, short id, short lv, short rate, short flag, short card_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_bonus_autospell_pre ) { + int (*preHookFunc) (struct s_autospell *spell, int *max, short *id, short *lv, short *rate, short *flag, short *card_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_autospell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bonus_autospell_pre[hIndex].func; + retVal___ = preHookFunc(spell, &max, &id, &lv, &rate, &flag, &card_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.bonus_autospell(spell, max, id, lv, rate, flag, card_id); + } + if( HPMHooks.count.HP_pc_bonus_autospell_post ) { + int (*postHookFunc) (int retVal___, struct s_autospell *spell, int *max, short *id, short *lv, short *rate, short *flag, short *card_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_autospell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bonus_autospell_post[hIndex].func; + retVal___ = postHookFunc(retVal___, spell, &max, &id, &lv, &rate, &flag, &card_id); + } + } + return retVal___; +} +int HP_pc_bonus_autospell_onskill(struct s_autospell *spell, int max, short src_skill, short id, short lv, short rate, short card_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_bonus_autospell_onskill_pre ) { + int (*preHookFunc) (struct s_autospell *spell, int *max, short *src_skill, short *id, short *lv, short *rate, short *card_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_autospell_onskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bonus_autospell_onskill_pre[hIndex].func; + retVal___ = preHookFunc(spell, &max, &src_skill, &id, &lv, &rate, &card_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.bonus_autospell_onskill(spell, max, src_skill, id, lv, rate, card_id); + } + if( HPMHooks.count.HP_pc_bonus_autospell_onskill_post ) { + int (*postHookFunc) (int retVal___, struct s_autospell *spell, int *max, short *src_skill, short *id, short *lv, short *rate, short *card_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_autospell_onskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bonus_autospell_onskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, spell, &max, &src_skill, &id, &lv, &rate, &card_id); + } + } + return retVal___; +} +int HP_pc_bonus_addeff(struct s_addeffect *effect, int max, enum sc_type id, short rate, short arrow_rate, unsigned char flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_bonus_addeff_pre ) { + int (*preHookFunc) (struct s_addeffect *effect, int *max, enum sc_type *id, short *rate, short *arrow_rate, unsigned char *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_addeff_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bonus_addeff_pre[hIndex].func; + retVal___ = preHookFunc(effect, &max, &id, &rate, &arrow_rate, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.bonus_addeff(effect, max, id, rate, arrow_rate, flag); + } + if( HPMHooks.count.HP_pc_bonus_addeff_post ) { + int (*postHookFunc) (int retVal___, struct s_addeffect *effect, int *max, enum sc_type *id, short *rate, short *arrow_rate, unsigned char *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_addeff_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bonus_addeff_post[hIndex].func; + retVal___ = postHookFunc(retVal___, effect, &max, &id, &rate, &arrow_rate, &flag); + } + } + return retVal___; +} +int HP_pc_bonus_addeff_onskill(struct s_addeffectonskill *effect, int max, enum sc_type id, short rate, short skill_id, unsigned char target) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_bonus_addeff_onskill_pre ) { + int (*preHookFunc) (struct s_addeffectonskill *effect, int *max, enum sc_type *id, short *rate, short *skill_id, unsigned char *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_addeff_onskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bonus_addeff_onskill_pre[hIndex].func; + retVal___ = preHookFunc(effect, &max, &id, &rate, &skill_id, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.bonus_addeff_onskill(effect, max, id, rate, skill_id, target); + } + if( HPMHooks.count.HP_pc_bonus_addeff_onskill_post ) { + int (*postHookFunc) (int retVal___, struct s_addeffectonskill *effect, int *max, enum sc_type *id, short *rate, short *skill_id, unsigned char *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_addeff_onskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bonus_addeff_onskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, effect, &max, &id, &rate, &skill_id, &target); + } + } + return retVal___; +} +int HP_pc_bonus_item_drop(struct s_add_drop *drop, const short max, short id, short group, int race, int rate) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_bonus_item_drop_pre ) { + int (*preHookFunc) (struct s_add_drop *drop, const short *max, short *id, short *group, int *race, int *rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_item_drop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_bonus_item_drop_pre[hIndex].func; + retVal___ = preHookFunc(drop, &max, &id, &group, &race, &rate); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.bonus_item_drop(drop, max, id, group, race, rate); + } + if( HPMHooks.count.HP_pc_bonus_item_drop_post ) { + int (*postHookFunc) (int retVal___, struct s_add_drop *drop, const short *max, short *id, short *group, int *race, int *rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_bonus_item_drop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_bonus_item_drop_post[hIndex].func; + retVal___ = postHookFunc(retVal___, drop, &max, &id, &group, &race, &rate); + } + } + return retVal___; +} +void HP_pc_calcexp(struct map_session_data *sd, unsigned int *base_exp, unsigned int *job_exp, struct block_list *src) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_calcexp_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned int *base_exp, unsigned int *job_exp, struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calcexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_calcexp_pre[hIndex].func; + preHookFunc(sd, base_exp, job_exp, src); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.calcexp(sd, base_exp, job_exp, src); + } + if( HPMHooks.count.HP_pc_calcexp_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int *base_exp, unsigned int *job_exp, struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calcexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_calcexp_post[hIndex].func; + postHookFunc(sd, base_exp, job_exp, src); + } + } + return; +} +int HP_pc_respawn_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_respawn_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_respawn_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_respawn_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.respawn_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_respawn_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_respawn_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_respawn_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pc_jobchange_killclone(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_jobchange_killclone_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_jobchange_killclone_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_pc_jobchange_killclone_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.pc.jobchange_killclone(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_pc_jobchange_killclone_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_jobchange_killclone_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_pc_jobchange_killclone_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_pc_getstat(struct map_session_data *sd, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_getstat_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_getstat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_getstat_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.getstat(sd, type); + } + if( HPMHooks.count.HP_pc_getstat_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_getstat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_getstat_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +int HP_pc_setstat(struct map_session_data *sd, int type, int val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_setstat_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setstat_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_setstat_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type, &val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.setstat(sd, type, val); + } + if( HPMHooks.count.HP_pc_setstat_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_setstat_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_setstat_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type, &val); + } + } + return retVal___; +} +int HP_pc_eventtimer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_eventtimer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_eventtimer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_eventtimer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.eventtimer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_eventtimer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_eventtimer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_eventtimer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pc_daynight_timer_sub(struct map_session_data *sd, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_daynight_timer_sub_pre ) { + int (*preHookFunc) (struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_daynight_timer_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_pc_daynight_timer_sub_pre[hIndex].func; + retVal___ = preHookFunc(sd, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.pc.daynight_timer_sub(sd, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_pc_daynight_timer_sub_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_daynight_timer_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_pc_daynight_timer_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_pc_charm_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_charm_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_charm_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_charm_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.charm_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_charm_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_charm_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_charm_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +bool HP_pc_readdb_levelpenalty(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_pc_readdb_levelpenalty_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readdb_levelpenalty_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_readdb_levelpenalty_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.readdb_levelpenalty(fields, columns, current); + } + if( HPMHooks.count.HP_pc_readdb_levelpenalty_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_readdb_levelpenalty_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_readdb_levelpenalty_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +int HP_pc_autosave(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_autosave_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_autosave_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_autosave_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.autosave(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_autosave_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_autosave_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_autosave_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pc_follow_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_follow_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_follow_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_follow_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.follow_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pc_follow_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_follow_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_follow_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +void HP_pc_read_skill_tree(void) { + int hIndex = 0; + if( HPMHooks.count.HP_pc_read_skill_tree_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_read_skill_tree_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_read_skill_tree_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pc.read_skill_tree(); + } + if( HPMHooks.count.HP_pc_read_skill_tree_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_read_skill_tree_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_read_skill_tree_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_pc_isUseitem(struct map_session_data *sd, int n) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_isUseitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_isUseitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_isUseitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.isUseitem(sd, n); + } + if( HPMHooks.count.HP_pc_isUseitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_isUseitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_isUseitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n); + } + } + return retVal___; +} +int HP_pc_show_steal(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_show_steal_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_show_steal_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_pc_show_steal_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.pc.show_steal(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_pc_show_steal_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_show_steal_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_pc_show_steal_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_pc_checkcombo(struct map_session_data *sd, struct item_data *data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_checkcombo_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkcombo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_checkcombo_pre[hIndex].func; + retVal___ = preHookFunc(sd, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.checkcombo(sd, data); + } + if( HPMHooks.count.HP_pc_checkcombo_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_checkcombo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_checkcombo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, data); + } + } + return retVal___; +} +int HP_pc_calcweapontype(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_calcweapontype_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calcweapontype_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_calcweapontype_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.calcweapontype(sd); + } + if( HPMHooks.count.HP_pc_calcweapontype_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_calcweapontype_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_calcweapontype_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_pc_removecombo(struct map_session_data *sd, struct item_data *data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pc_removecombo_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_removecombo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_removecombo_pre[hIndex].func; + retVal___ = preHookFunc(sd, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.removecombo(sd, data); + } + if( HPMHooks.count.HP_pc_removecombo_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct item_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_removecombo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_removecombo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, data); + } + } + return retVal___; +} +/* pet */ +int HP_pet_init(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_init_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.init(); + } + if( HPMHooks.count.HP_pet_init_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_pet_final(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_final_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_final_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.final(); + } + if( HPMHooks.count.HP_pet_final_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_pet_hungry_val(struct pet_data *pd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_hungry_val_pre ) { + int (*preHookFunc) (struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_hungry_val_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_hungry_val_pre[hIndex].func; + retVal___ = preHookFunc(pd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.hungry_val(pd); + } + if( HPMHooks.count.HP_pet_hungry_val_post ) { + int (*postHookFunc) (int retVal___, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_hungry_val_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_hungry_val_post[hIndex].func; + retVal___ = postHookFunc(retVal___, pd); + } + } + return retVal___; +} +void HP_pet_set_intimate(struct pet_data *pd, int value) { + int hIndex = 0; + if( HPMHooks.count.HP_pet_set_intimate_pre ) { + void (*preHookFunc) (struct pet_data *pd, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_set_intimate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_set_intimate_pre[hIndex].func; + preHookFunc(pd, &value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.pet.set_intimate(pd, value); + } + if( HPMHooks.count.HP_pet_set_intimate_post ) { + void (*postHookFunc) (struct pet_data *pd, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_set_intimate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_set_intimate_post[hIndex].func; + postHookFunc(pd, &value); + } + } + return; +} +int HP_pet_create_egg(struct map_session_data *sd, int item_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_create_egg_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *item_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_create_egg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_create_egg_pre[hIndex].func; + retVal___ = preHookFunc(sd, &item_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.create_egg(sd, item_id); + } + if( HPMHooks.count.HP_pet_create_egg_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *item_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_create_egg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_create_egg_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &item_id); + } + } + return retVal___; +} +int HP_pet_unlocktarget(struct pet_data *pd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_unlocktarget_pre ) { + int (*preHookFunc) (struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_unlocktarget_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_unlocktarget_pre[hIndex].func; + retVal___ = preHookFunc(pd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.unlocktarget(pd); + } + if( HPMHooks.count.HP_pet_unlocktarget_post ) { + int (*postHookFunc) (int retVal___, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_unlocktarget_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_unlocktarget_post[hIndex].func; + retVal___ = postHookFunc(retVal___, pd); + } + } + return retVal___; +} +int HP_pet_attackskill(struct pet_data *pd, int target_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_attackskill_pre ) { + int (*preHookFunc) (struct pet_data *pd, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_attackskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_attackskill_pre[hIndex].func; + retVal___ = preHookFunc(pd, &target_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.attackskill(pd, target_id); + } + if( HPMHooks.count.HP_pet_attackskill_post ) { + int (*postHookFunc) (int retVal___, struct pet_data *pd, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_attackskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_attackskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, pd, &target_id); + } + } + return retVal___; +} +int HP_pet_target_check(struct map_session_data *sd, struct block_list *bl, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_target_check_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_target_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_target_check_pre[hIndex].func; + retVal___ = preHookFunc(sd, bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.target_check(sd, bl, type); + } + if( HPMHooks.count.HP_pet_target_check_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_target_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_target_check_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, bl, &type); + } + } + return retVal___; +} +int HP_pet_sc_check(struct map_session_data *sd, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_sc_check_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_sc_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_sc_check_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.sc_check(sd, type); + } + if( HPMHooks.count.HP_pet_sc_check_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_sc_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_sc_check_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +int HP_pet_hungry(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_hungry_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_hungry_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_hungry_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.hungry(tid, tick, id, data); + } + if( HPMHooks.count.HP_pet_hungry_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_hungry_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_hungry_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pet_search_petDB_index(int key, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_search_petDB_index_pre ) { + int (*preHookFunc) (int *key, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_search_petDB_index_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_search_petDB_index_pre[hIndex].func; + retVal___ = preHookFunc(&key, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.search_petDB_index(key, type); + } + if( HPMHooks.count.HP_pet_search_petDB_index_post ) { + int (*postHookFunc) (int retVal___, int *key, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_search_petDB_index_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_search_petDB_index_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, &type); + } + } + return retVal___; +} +int HP_pet_hungry_timer_delete(struct pet_data *pd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_hungry_timer_delete_pre ) { + int (*preHookFunc) (struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_hungry_timer_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_hungry_timer_delete_pre[hIndex].func; + retVal___ = preHookFunc(pd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.hungry_timer_delete(pd); + } + if( HPMHooks.count.HP_pet_hungry_timer_delete_post ) { + int (*postHookFunc) (int retVal___, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_hungry_timer_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_hungry_timer_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, pd); + } + } + return retVal___; +} +int HP_pet_performance(struct map_session_data *sd, struct pet_data *pd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_performance_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_performance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_performance_pre[hIndex].func; + retVal___ = preHookFunc(sd, pd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.performance(sd, pd); + } + if( HPMHooks.count.HP_pet_performance_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_performance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_performance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, pd); + } + } + return retVal___; +} +int HP_pet_return_egg(struct map_session_data *sd, struct pet_data *pd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_return_egg_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_return_egg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_return_egg_pre[hIndex].func; + retVal___ = preHookFunc(sd, pd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.return_egg(sd, pd); + } + if( HPMHooks.count.HP_pet_return_egg_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_return_egg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_return_egg_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, pd); + } + } + return retVal___; +} +int HP_pet_data_init(struct map_session_data *sd, struct s_pet *petinfo) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_data_init_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct s_pet *petinfo); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_data_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_data_init_pre[hIndex].func; + retVal___ = preHookFunc(sd, petinfo); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.data_init(sd, petinfo); + } + if( HPMHooks.count.HP_pet_data_init_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct s_pet *petinfo); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_data_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_data_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, petinfo); + } + } + return retVal___; +} +int HP_pet_birth_process(struct map_session_data *sd, struct s_pet *petinfo) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_birth_process_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct s_pet *petinfo); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_birth_process_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_birth_process_pre[hIndex].func; + retVal___ = preHookFunc(sd, petinfo); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.birth_process(sd, petinfo); + } + if( HPMHooks.count.HP_pet_birth_process_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct s_pet *petinfo); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_birth_process_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_birth_process_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, petinfo); + } + } + return retVal___; +} +int HP_pet_recv_petdata(int account_id, struct s_pet *p, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_recv_petdata_pre ) { + int (*preHookFunc) (int *account_id, struct s_pet *p, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_recv_petdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_recv_petdata_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, p, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.recv_petdata(account_id, p, flag); + } + if( HPMHooks.count.HP_pet_recv_petdata_post ) { + int (*postHookFunc) (int retVal___, int *account_id, struct s_pet *p, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_recv_petdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_recv_petdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, p, &flag); + } + } + return retVal___; +} +int HP_pet_select_egg(struct map_session_data *sd, short egg_index) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_select_egg_pre ) { + int (*preHookFunc) (struct map_session_data *sd, short *egg_index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_select_egg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_select_egg_pre[hIndex].func; + retVal___ = preHookFunc(sd, &egg_index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.select_egg(sd, egg_index); + } + if( HPMHooks.count.HP_pet_select_egg_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, short *egg_index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_select_egg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_select_egg_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &egg_index); + } + } + return retVal___; +} +int HP_pet_catch_process1(struct map_session_data *sd, int target_class) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_catch_process1_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *target_class); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_catch_process1_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_catch_process1_pre[hIndex].func; + retVal___ = preHookFunc(sd, &target_class); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.catch_process1(sd, target_class); + } + if( HPMHooks.count.HP_pet_catch_process1_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *target_class); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_catch_process1_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_catch_process1_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &target_class); + } + } + return retVal___; +} +int HP_pet_catch_process2(struct map_session_data *sd, int target_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_catch_process2_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_catch_process2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_catch_process2_pre[hIndex].func; + retVal___ = preHookFunc(sd, &target_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.catch_process2(sd, target_id); + } + if( HPMHooks.count.HP_pet_catch_process2_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_catch_process2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_catch_process2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &target_id); + } + } + return retVal___; +} +int HP_pet_get_egg(int account_id, int pet_id, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_get_egg_pre ) { + int (*preHookFunc) (int *account_id, int *pet_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_get_egg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_get_egg_pre[hIndex].func; + retVal___ = preHookFunc(&account_id, &pet_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.get_egg(account_id, pet_id, flag); + } + if( HPMHooks.count.HP_pet_get_egg_post ) { + int (*postHookFunc) (int retVal___, int *account_id, int *pet_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_get_egg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_get_egg_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &account_id, &pet_id, &flag); + } + } + return retVal___; +} +int HP_pet_unequipitem(struct map_session_data *sd, struct pet_data *pd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_unequipitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_unequipitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_unequipitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, pd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.unequipitem(sd, pd); + } + if( HPMHooks.count.HP_pet_unequipitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_unequipitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_unequipitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, pd); + } + } + return retVal___; +} +int HP_pet_food(struct map_session_data *sd, struct pet_data *pd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_food_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_food_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_food_pre[hIndex].func; + retVal___ = preHookFunc(sd, pd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.food(sd, pd); + } + if( HPMHooks.count.HP_pet_food_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct pet_data *pd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_food_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_food_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, pd); + } + } + return retVal___; +} +int HP_pet_ai_sub_hard_lootsearch(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_ai_sub_hard_lootsearch_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_ai_sub_hard_lootsearch_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_pet_ai_sub_hard_lootsearch_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.pet.ai_sub_hard_lootsearch(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_pet_ai_sub_hard_lootsearch_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_ai_sub_hard_lootsearch_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_pet_ai_sub_hard_lootsearch_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_pet_menu(struct map_session_data *sd, int menunum) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_menu_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *menunum); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_menu_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_menu_pre[hIndex].func; + retVal___ = preHookFunc(sd, &menunum); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.menu(sd, menunum); + } + if( HPMHooks.count.HP_pet_menu_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *menunum); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_menu_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_menu_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &menunum); + } + } + return retVal___; +} +int HP_pet_change_name(struct map_session_data *sd, char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_change_name_pre ) { + int (*preHookFunc) (struct map_session_data *sd, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_change_name_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_change_name_pre[hIndex].func; + retVal___ = preHookFunc(sd, name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.change_name(sd, name); + } + if( HPMHooks.count.HP_pet_change_name_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_change_name_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_change_name_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, name); + } + } + return retVal___; +} +int HP_pet_change_name_ack(struct map_session_data *sd, char *name, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_change_name_ack_pre ) { + int (*preHookFunc) (struct map_session_data *sd, char *name, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_change_name_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_change_name_ack_pre[hIndex].func; + retVal___ = preHookFunc(sd, name, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.change_name_ack(sd, name, flag); + } + if( HPMHooks.count.HP_pet_change_name_ack_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, char *name, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_change_name_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_change_name_ack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, name, &flag); + } + } + return retVal___; +} +int HP_pet_equipitem(struct map_session_data *sd, int index) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_equipitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_equipitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_equipitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.equipitem(sd, index); + } + if( HPMHooks.count.HP_pet_equipitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_equipitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_equipitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &index); + } + } + return retVal___; +} +int HP_pet_randomwalk(struct pet_data *pd, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_randomwalk_pre ) { + int (*preHookFunc) (struct pet_data *pd, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_randomwalk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_randomwalk_pre[hIndex].func; + retVal___ = preHookFunc(pd, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.randomwalk(pd, tick); + } + if( HPMHooks.count.HP_pet_randomwalk_post ) { + int (*postHookFunc) (int retVal___, struct pet_data *pd, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_randomwalk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_randomwalk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, pd, &tick); + } + } + return retVal___; +} +int HP_pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_ai_sub_hard_pre ) { + int (*preHookFunc) (struct pet_data *pd, struct map_session_data *sd, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_ai_sub_hard_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_ai_sub_hard_pre[hIndex].func; + retVal___ = preHookFunc(pd, sd, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.ai_sub_hard(pd, sd, tick); + } + if( HPMHooks.count.HP_pet_ai_sub_hard_post ) { + int (*postHookFunc) (int retVal___, struct pet_data *pd, struct map_session_data *sd, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_ai_sub_hard_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_ai_sub_hard_post[hIndex].func; + retVal___ = postHookFunc(retVal___, pd, sd, &tick); + } + } + return retVal___; +} +int HP_pet_ai_sub_foreachclient(struct map_session_data *sd, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_ai_sub_foreachclient_pre ) { + int (*preHookFunc) (struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_ai_sub_foreachclient_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_pet_ai_sub_foreachclient_pre[hIndex].func; + retVal___ = preHookFunc(sd, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.pet.ai_sub_foreachclient(sd, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_pet_ai_sub_foreachclient_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_ai_sub_foreachclient_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_pet_ai_sub_foreachclient_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_pet_ai_hard(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_ai_hard_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_ai_hard_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_ai_hard_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.ai_hard(tid, tick, id, data); + } + if( HPMHooks.count.HP_pet_ai_hard_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_ai_hard_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_ai_hard_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pet_delay_item_drop(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_delay_item_drop_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_delay_item_drop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_delay_item_drop_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.delay_item_drop(tid, tick, id, data); + } + if( HPMHooks.count.HP_pet_delay_item_drop_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_delay_item_drop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_delay_item_drop_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pet_lootitem_drop(struct pet_data *pd, struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_lootitem_drop_pre ) { + int (*preHookFunc) (struct pet_data *pd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_lootitem_drop_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_lootitem_drop_pre[hIndex].func; + retVal___ = preHookFunc(pd, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.lootitem_drop(pd, sd); + } + if( HPMHooks.count.HP_pet_lootitem_drop_post ) { + int (*postHookFunc) (int retVal___, struct pet_data *pd, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_lootitem_drop_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_lootitem_drop_post[hIndex].func; + retVal___ = postHookFunc(retVal___, pd, sd); + } + } + return retVal___; +} +int HP_pet_skill_bonus_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_skill_bonus_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_skill_bonus_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_skill_bonus_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.skill_bonus_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pet_skill_bonus_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_skill_bonus_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_skill_bonus_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pet_recovery_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_recovery_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_recovery_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_recovery_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.recovery_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pet_recovery_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_recovery_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_recovery_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pet_heal_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_heal_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_heal_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_heal_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.heal_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pet_heal_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_heal_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_heal_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pet_skill_support_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_skill_support_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_skill_support_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_skill_support_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.skill_support_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_pet_skill_support_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_skill_support_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_skill_support_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_pet_read_db(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_pet_read_db_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_read_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pet_read_db_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pet.read_db(); + } + if( HPMHooks.count.HP_pet_read_db_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pet_read_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pet_read_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +/* quest */ +void HP_quest_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_quest_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.quest.init(); + } + if( HPMHooks.count.HP_quest_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_quest_reload(void) { + int hIndex = 0; + if( HPMHooks.count.HP_quest_reload_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_reload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_reload_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.quest.reload(); + } + if( HPMHooks.count.HP_quest_reload_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_reload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_reload_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_quest_search_db(int quest_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_quest_search_db_pre ) { + int (*preHookFunc) (int *quest_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_search_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_search_db_pre[hIndex].func; + retVal___ = preHookFunc(&quest_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.quest.search_db(quest_id); + } + if( HPMHooks.count.HP_quest_search_db_post ) { + int (*postHookFunc) (int retVal___, int *quest_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_search_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_search_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &quest_id); + } + } + return retVal___; +} +int HP_quest_pc_login(TBL_PC *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_quest_pc_login_pre ) { + int (*preHookFunc) (TBL_PC *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_pc_login_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_pc_login_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.quest.pc_login(sd); + } + if( HPMHooks.count.HP_quest_pc_login_post ) { + int (*postHookFunc) (int retVal___, TBL_PC *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_pc_login_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_pc_login_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_quest_add(TBL_PC *sd, int quest_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_quest_add_pre ) { + int (*preHookFunc) (TBL_PC *sd, int *quest_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_add_pre[hIndex].func; + retVal___ = preHookFunc(sd, &quest_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.quest.add(sd, quest_id); + } + if( HPMHooks.count.HP_quest_add_post ) { + int (*postHookFunc) (int retVal___, TBL_PC *sd, int *quest_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_add_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &quest_id); + } + } + return retVal___; +} +int HP_quest_change(TBL_PC *sd, int qid1, int qid2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_quest_change_pre ) { + int (*preHookFunc) (TBL_PC *sd, int *qid1, int *qid2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_change_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_change_pre[hIndex].func; + retVal___ = preHookFunc(sd, &qid1, &qid2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.quest.change(sd, qid1, qid2); + } + if( HPMHooks.count.HP_quest_change_post ) { + int (*postHookFunc) (int retVal___, TBL_PC *sd, int *qid1, int *qid2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_change_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_change_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &qid1, &qid2); + } + } + return retVal___; +} +int HP_quest_delete(TBL_PC *sd, int quest_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_quest_delete_pre ) { + int (*preHookFunc) (TBL_PC *sd, int *quest_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_delete_pre[hIndex].func; + retVal___ = preHookFunc(sd, &quest_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.quest.delete(sd, quest_id); + } + if( HPMHooks.count.HP_quest_delete_post ) { + int (*postHookFunc) (int retVal___, TBL_PC *sd, int *quest_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_delete_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &quest_id); + } + } + return retVal___; +} +int HP_quest_update_objective_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_quest_update_objective_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_update_objective_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_quest_update_objective_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.quest.update_objective_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_quest_update_objective_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_update_objective_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_quest_update_objective_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_quest_update_objective(TBL_PC *sd, int mob_id) { + int hIndex = 0; + if( HPMHooks.count.HP_quest_update_objective_pre ) { + void (*preHookFunc) (TBL_PC *sd, int *mob_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_update_objective_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_update_objective_pre[hIndex].func; + preHookFunc(sd, &mob_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.quest.update_objective(sd, mob_id); + } + if( HPMHooks.count.HP_quest_update_objective_post ) { + void (*postHookFunc) (TBL_PC *sd, int *mob_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_update_objective_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_update_objective_post[hIndex].func; + postHookFunc(sd, &mob_id); + } + } + return; +} +int HP_quest_update_status(TBL_PC *sd, int quest_id, quest_state qs) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_quest_update_status_pre ) { + int (*preHookFunc) (TBL_PC *sd, int *quest_id, quest_state *qs); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_update_status_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_update_status_pre[hIndex].func; + retVal___ = preHookFunc(sd, &quest_id, &qs); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.quest.update_status(sd, quest_id, qs); + } + if( HPMHooks.count.HP_quest_update_status_post ) { + int (*postHookFunc) (int retVal___, TBL_PC *sd, int *quest_id, quest_state *qs); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_update_status_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_update_status_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &quest_id, &qs); + } + } + return retVal___; +} +int HP_quest_check(TBL_PC *sd, int quest_id, quest_check_type type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_quest_check_pre ) { + int (*preHookFunc) (TBL_PC *sd, int *quest_id, quest_check_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_check_pre[hIndex].func; + retVal___ = preHookFunc(sd, &quest_id, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.quest.check(sd, quest_id, type); + } + if( HPMHooks.count.HP_quest_check_post ) { + int (*postHookFunc) (int retVal___, TBL_PC *sd, int *quest_id, quest_check_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_check_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &quest_id, &type); + } + } + return retVal___; +} +int HP_quest_read_db(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_quest_read_db_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_read_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_quest_read_db_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.quest.read_db(); + } + if( HPMHooks.count.HP_quest_read_db_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_quest_read_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_quest_read_db_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +/* script */ +void HP_script_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_script_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.init(); + } + if( HPMHooks.count.HP_script_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_script_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_script_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.final(); + } + if( HPMHooks.count.HP_script_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_script_reload(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_reload_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_reload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_reload_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.reload(); + } + if( HPMHooks.count.HP_script_reload_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_reload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_reload_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +struct script_code* HP_script_parse(const char *src, const char *file, int line, int options) { + int hIndex = 0; + struct script_code* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_pre ) { + struct script_code* (*preHookFunc) (const char *src, const char *file, int *line, int *options); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_pre[hIndex].func; + retVal___ = preHookFunc(src, file, &line, &options); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse(src, file, line, options); + } + if( HPMHooks.count.HP_script_parse_post ) { + struct script_code* (*postHookFunc) (struct script_code* retVal___, const char *src, const char *file, int *line, int *options); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, file, &line, &options); + } + } + return retVal___; +} +void HP_script_parse_builtin(void) { + int hIndex = 0; + if( HPMHooks.count.HP_script_parse_builtin_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_builtin_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_builtin_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.parse_builtin(); + } + if( HPMHooks.count.HP_script_parse_builtin_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_builtin_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_builtin_post[hIndex].func; + postHookFunc(); + } + } + return; +} +const char* HP_script_parse_subexpr(const char *p, int limit) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_subexpr_pre ) { + const char* (*preHookFunc) (const char *p, int *limit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_subexpr_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_subexpr_pre[hIndex].func; + retVal___ = preHookFunc(p, &limit); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_subexpr(p, limit); + } + if( HPMHooks.count.HP_script_parse_subexpr_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p, int *limit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_subexpr_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_subexpr_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p, &limit); + } + } + return retVal___; +} +const char* HP_script_skip_space(const char *p) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_skip_space_pre ) { + const char* (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_skip_space_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_skip_space_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.skip_space(p); + } + if( HPMHooks.count.HP_script_skip_space_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_skip_space_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_skip_space_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +void HP_script_error(const char *src, const char *file, int start_line, const char *error_msg, const char *error_pos) { + int hIndex = 0; + if( HPMHooks.count.HP_script_error_pre ) { + void (*preHookFunc) (const char *src, const char *file, int *start_line, const char *error_msg, const char *error_pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_error_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_error_pre[hIndex].func; + preHookFunc(src, file, &start_line, error_msg, error_pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.error(src, file, start_line, error_msg, error_pos); + } + if( HPMHooks.count.HP_script_error_post ) { + void (*postHookFunc) (const char *src, const char *file, int *start_line, const char *error_msg, const char *error_pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_error_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_error_post[hIndex].func; + postHookFunc(src, file, &start_line, error_msg, error_pos); + } + } + return; +} +void HP_script_warning(const char *src, const char *file, int start_line, const char *error_msg, const char *error_pos) { + int hIndex = 0; + if( HPMHooks.count.HP_script_warning_pre ) { + void (*preHookFunc) (const char *src, const char *file, int *start_line, const char *error_msg, const char *error_pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_warning_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_warning_pre[hIndex].func; + preHookFunc(src, file, &start_line, error_msg, error_pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.warning(src, file, start_line, error_msg, error_pos); + } + if( HPMHooks.count.HP_script_warning_post ) { + void (*postHookFunc) (const char *src, const char *file, int *start_line, const char *error_msg, const char *error_pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_warning_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_warning_post[hIndex].func; + postHookFunc(src, file, &start_line, error_msg, error_pos); + } + } + return; +} +bool HP_script_addScript(char *name, char *args, bool ( *func ) (struct script_state *st)) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_script_addScript_pre ) { + bool (*preHookFunc) (char *name, char *args, bool ( *func ) (struct script_state *st)); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addScript_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_addScript_pre[hIndex].func; + retVal___ = preHookFunc(name, args, func); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.addScript(name, args, func); + } + if( HPMHooks.count.HP_script_addScript_post ) { + bool (*postHookFunc) (bool retVal___, char *name, char *args, bool ( *func ) (struct script_state *st)); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addScript_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_addScript_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name, args, func); + } + } + return retVal___; +} +int HP_script_conv_num(struct script_state *st, struct script_data *data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_conv_num_pre ) { + int (*preHookFunc) (struct script_state *st, struct script_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_conv_num_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_conv_num_pre[hIndex].func; + retVal___ = preHookFunc(st, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.conv_num(st, data); + } + if( HPMHooks.count.HP_script_conv_num_post ) { + int (*postHookFunc) (int retVal___, struct script_state *st, struct script_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_conv_num_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_conv_num_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st, data); + } + } + return retVal___; +} +const char* HP_script_conv_str(struct script_state *st, struct script_data *data) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_conv_str_pre ) { + const char* (*preHookFunc) (struct script_state *st, struct script_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_conv_str_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_conv_str_pre[hIndex].func; + retVal___ = preHookFunc(st, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.conv_str(st, data); + } + if( HPMHooks.count.HP_script_conv_str_post ) { + const char* (*postHookFunc) (const char* retVal___, struct script_state *st, struct script_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_conv_str_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_conv_str_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st, data); + } + } + return retVal___; +} +TBL_PC* HP_script_rid2sd(struct script_state *st) { + int hIndex = 0; + TBL_PC* retVal___ = NULL; + if( HPMHooks.count.HP_script_rid2sd_pre ) { + TBL_PC* (*preHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_rid2sd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_rid2sd_pre[hIndex].func; + retVal___ = preHookFunc(st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.rid2sd(st); + } + if( HPMHooks.count.HP_script_rid2sd_post ) { + TBL_PC* (*postHookFunc) (TBL_PC* retVal___, struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_rid2sd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_rid2sd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st); + } + } + return retVal___; +} +void HP_script_detach_rid(struct script_state *st) { + int hIndex = 0; + if( HPMHooks.count.HP_script_detach_rid_pre ) { + void (*preHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_detach_rid_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_detach_rid_pre[hIndex].func; + preHookFunc(st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.detach_rid(st); + } + if( HPMHooks.count.HP_script_detach_rid_post ) { + void (*postHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_detach_rid_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_detach_rid_post[hIndex].func; + postHookFunc(st); + } + } + return; +} +struct script_data* HP_script_push_val(struct script_stack *stack, enum c_op type, int val, struct DBMap **ref) { + int hIndex = 0; + struct script_data* retVal___ = NULL; + if( HPMHooks.count.HP_script_push_val_pre ) { + struct script_data* (*preHookFunc) (struct script_stack *stack, enum c_op *type, int *val, struct DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_push_val_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_push_val_pre[hIndex].func; + retVal___ = preHookFunc(stack, &type, &val, ref); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.push_val(stack, type, val, ref); + } + if( HPMHooks.count.HP_script_push_val_post ) { + struct script_data* (*postHookFunc) (struct script_data* retVal___, struct script_stack *stack, enum c_op *type, int *val, struct DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_push_val_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_push_val_post[hIndex].func; + retVal___ = postHookFunc(retVal___, stack, &type, &val, ref); + } + } + return retVal___; +} +void HP_script_get_val(struct script_state *st, struct script_data *data) { + int hIndex = 0; + if( HPMHooks.count.HP_script_get_val_pre ) { + void (*preHookFunc) (struct script_state *st, struct script_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_val_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_get_val_pre[hIndex].func; + preHookFunc(st, data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.get_val(st, data); + } + if( HPMHooks.count.HP_script_get_val_post ) { + void (*postHookFunc) (struct script_state *st, struct script_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_val_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_get_val_post[hIndex].func; + postHookFunc(st, data); + } + } + return; +} +void* HP_script_get_val2(struct script_state *st, int uid, struct DBMap **ref) { + int hIndex = 0; + void* retVal___ = NULL; + if( HPMHooks.count.HP_script_get_val2_pre ) { + void* (*preHookFunc) (struct script_state *st, int *uid, struct DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_val2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_get_val2_pre[hIndex].func; + retVal___ = preHookFunc(st, &uid, ref); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.get_val2(st, uid, ref); + } + if( HPMHooks.count.HP_script_get_val2_post ) { + void* (*postHookFunc) (void* retVal___, struct script_state *st, int *uid, struct DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_val2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_get_val2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st, &uid, ref); + } + } + return retVal___; +} +struct script_data* HP_script_push_str(struct script_stack *stack, enum c_op type, char *str) { + int hIndex = 0; + struct script_data* retVal___ = NULL; + if( HPMHooks.count.HP_script_push_str_pre ) { + struct script_data* (*preHookFunc) (struct script_stack *stack, enum c_op *type, char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_push_str_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_push_str_pre[hIndex].func; + retVal___ = preHookFunc(stack, &type, str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.push_str(stack, type, str); + } + if( HPMHooks.count.HP_script_push_str_post ) { + struct script_data* (*postHookFunc) (struct script_data* retVal___, struct script_stack *stack, enum c_op *type, char *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_push_str_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_push_str_post[hIndex].func; + retVal___ = postHookFunc(retVal___, stack, &type, str); + } + } + return retVal___; +} +struct script_data* HP_script_push_copy(struct script_stack *stack, int pos) { + int hIndex = 0; + struct script_data* retVal___ = NULL; + if( HPMHooks.count.HP_script_push_copy_pre ) { + struct script_data* (*preHookFunc) (struct script_stack *stack, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_push_copy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_push_copy_pre[hIndex].func; + retVal___ = preHookFunc(stack, &pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.push_copy(stack, pos); + } + if( HPMHooks.count.HP_script_push_copy_post ) { + struct script_data* (*postHookFunc) (struct script_data* retVal___, struct script_stack *stack, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_push_copy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_push_copy_post[hIndex].func; + retVal___ = postHookFunc(retVal___, stack, &pos); + } + } + return retVal___; +} +void HP_script_pop_stack(struct script_state *st, int start, int end) { + int hIndex = 0; + if( HPMHooks.count.HP_script_pop_stack_pre ) { + void (*preHookFunc) (struct script_state *st, int *start, int *end); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_pop_stack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_pop_stack_pre[hIndex].func; + preHookFunc(st, &start, &end); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.pop_stack(st, start, end); + } + if( HPMHooks.count.HP_script_pop_stack_post ) { + void (*postHookFunc) (struct script_state *st, int *start, int *end); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_pop_stack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_pop_stack_post[hIndex].func; + postHookFunc(st, &start, &end); + } + } + return; +} +void HP_script_set_constant(const char *name, int value, bool isparameter) { + int hIndex = 0; + if( HPMHooks.count.HP_script_set_constant_pre ) { + void (*preHookFunc) (const char *name, int *value, bool *isparameter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_constant_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_set_constant_pre[hIndex].func; + preHookFunc(name, &value, &isparameter); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.set_constant(name, value, isparameter); + } + if( HPMHooks.count.HP_script_set_constant_post ) { + void (*postHookFunc) (const char *name, int *value, bool *isparameter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_constant_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_set_constant_post[hIndex].func; + postHookFunc(name, &value, &isparameter); + } + } + return; +} +void HP_script_set_constant2(const char *name, int value, bool isparameter) { + int hIndex = 0; + if( HPMHooks.count.HP_script_set_constant2_pre ) { + void (*preHookFunc) (const char *name, int *value, bool *isparameter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_constant2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_set_constant2_pre[hIndex].func; + preHookFunc(name, &value, &isparameter); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.set_constant2(name, value, isparameter); + } + if( HPMHooks.count.HP_script_set_constant2_post ) { + void (*postHookFunc) (const char *name, int *value, bool *isparameter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_constant2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_set_constant2_post[hIndex].func; + postHookFunc(name, &value, &isparameter); + } + } + return; +} +void HP_script_set_constant_force(const char *name, int value, bool isparameter) { + int hIndex = 0; + if( HPMHooks.count.HP_script_set_constant_force_pre ) { + void (*preHookFunc) (const char *name, int *value, bool *isparameter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_constant_force_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_set_constant_force_pre[hIndex].func; + preHookFunc(name, &value, &isparameter); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.set_constant_force(name, value, isparameter); + } + if( HPMHooks.count.HP_script_set_constant_force_post ) { + void (*postHookFunc) (const char *name, int *value, bool *isparameter); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_constant_force_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_set_constant_force_post[hIndex].func; + postHookFunc(name, &value, &isparameter); + } + } + return; +} +bool HP_script_get_constant(const char *name, int *value) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_script_get_constant_pre ) { + bool (*preHookFunc) (const char *name, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_constant_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_get_constant_pre[hIndex].func; + retVal___ = preHookFunc(name, value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.get_constant(name, value); + } + if( HPMHooks.count.HP_script_get_constant_post ) { + bool (*postHookFunc) (bool retVal___, const char *name, int *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_constant_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_get_constant_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name, value); + } + } + return retVal___; +} +void HP_script_label_add(int key, int pos) { + int hIndex = 0; + if( HPMHooks.count.HP_script_label_add_pre ) { + void (*preHookFunc) (int *key, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_label_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_label_add_pre[hIndex].func; + preHookFunc(&key, &pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.label_add(key, pos); + } + if( HPMHooks.count.HP_script_label_add_post ) { + void (*postHookFunc) (int *key, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_label_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_label_add_post[hIndex].func; + postHookFunc(&key, &pos); + } + } + return; +} +void HP_script_run(struct script_code *rootscript, int pos, int rid, int oid) { + int hIndex = 0; + if( HPMHooks.count.HP_script_run_pre ) { + void (*preHookFunc) (struct script_code *rootscript, int *pos, int *rid, int *oid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_run_pre[hIndex].func; + preHookFunc(rootscript, &pos, &rid, &oid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.run(rootscript, pos, rid, oid); + } + if( HPMHooks.count.HP_script_run_post ) { + void (*postHookFunc) (struct script_code *rootscript, int *pos, int *rid, int *oid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_run_post[hIndex].func; + postHookFunc(rootscript, &pos, &rid, &oid); + } + } + return; +} +void HP_script_run_main(struct script_state *st) { + int hIndex = 0; + if( HPMHooks.count.HP_script_run_main_pre ) { + void (*preHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_main_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_run_main_pre[hIndex].func; + preHookFunc(st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.run_main(st); + } + if( HPMHooks.count.HP_script_run_main_post ) { + void (*postHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_main_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_run_main_post[hIndex].func; + postHookFunc(st); + } + } + return; +} +int HP_script_run_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_run_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_run_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.run_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_script_run_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_run_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_script_set_var(struct map_session_data *sd, char *name, void *val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_set_var_pre ) { + int (*preHookFunc) (struct map_session_data *sd, char *name, void *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_var_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_set_var_pre[hIndex].func; + retVal___ = preHookFunc(sd, name, val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.set_var(sd, name, val); + } + if( HPMHooks.count.HP_script_set_var_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, char *name, void *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_var_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_set_var_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, name, val); + } + } + return retVal___; +} +void HP_script_stop_instances(struct script_code *code) { + int hIndex = 0; + if( HPMHooks.count.HP_script_stop_instances_pre ) { + void (*preHookFunc) (struct script_code *code); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_stop_instances_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_stop_instances_pre[hIndex].func; + preHookFunc(code); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.stop_instances(code); + } + if( HPMHooks.count.HP_script_stop_instances_post ) { + void (*postHookFunc) (struct script_code *code); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_stop_instances_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_stop_instances_post[hIndex].func; + postHookFunc(code); + } + } + return; +} +void HP_script_free_code(struct script_code *code) { + int hIndex = 0; + if( HPMHooks.count.HP_script_free_code_pre ) { + void (*preHookFunc) (struct script_code *code); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_free_code_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_free_code_pre[hIndex].func; + preHookFunc(code); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.free_code(code); + } + if( HPMHooks.count.HP_script_free_code_post ) { + void (*postHookFunc) (struct script_code *code); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_free_code_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_free_code_post[hIndex].func; + postHookFunc(code); + } + } + return; +} +void HP_script_free_vars(struct DBMap *var_storage) { + int hIndex = 0; + if( HPMHooks.count.HP_script_free_vars_pre ) { + void (*preHookFunc) (struct DBMap *var_storage); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_free_vars_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_free_vars_pre[hIndex].func; + preHookFunc(var_storage); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.free_vars(var_storage); + } + if( HPMHooks.count.HP_script_free_vars_post ) { + void (*postHookFunc) (struct DBMap *var_storage); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_free_vars_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_free_vars_post[hIndex].func; + postHookFunc(var_storage); + } + } + return; +} +struct script_state* HP_script_alloc_state(struct script_code *rootscript, int pos, int rid, int oid) { + int hIndex = 0; + struct script_state* retVal___ = NULL; + if( HPMHooks.count.HP_script_alloc_state_pre ) { + struct script_state* (*preHookFunc) (struct script_code *rootscript, int *pos, int *rid, int *oid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_alloc_state_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_alloc_state_pre[hIndex].func; + retVal___ = preHookFunc(rootscript, &pos, &rid, &oid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.alloc_state(rootscript, pos, rid, oid); + } + if( HPMHooks.count.HP_script_alloc_state_post ) { + struct script_state* (*postHookFunc) (struct script_state* retVal___, struct script_code *rootscript, int *pos, int *rid, int *oid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_alloc_state_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_alloc_state_post[hIndex].func; + retVal___ = postHookFunc(retVal___, rootscript, &pos, &rid, &oid); + } + } + return retVal___; +} +void HP_script_free_state(struct script_state *st) { + int hIndex = 0; + if( HPMHooks.count.HP_script_free_state_pre ) { + void (*preHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_free_state_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_free_state_pre[hIndex].func; + preHookFunc(st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.free_state(st); + } + if( HPMHooks.count.HP_script_free_state_post ) { + void (*postHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_free_state_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_free_state_post[hIndex].func; + postHookFunc(st); + } + } + return; +} +void HP_script_run_autobonus(const char *autobonus, int id, int pos) { + int hIndex = 0; + if( HPMHooks.count.HP_script_run_autobonus_pre ) { + void (*preHookFunc) (const char *autobonus, int *id, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_autobonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_run_autobonus_pre[hIndex].func; + preHookFunc(autobonus, &id, &pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.run_autobonus(autobonus, id, pos); + } + if( HPMHooks.count.HP_script_run_autobonus_post ) { + void (*postHookFunc) (const char *autobonus, int *id, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_autobonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_run_autobonus_post[hIndex].func; + postHookFunc(autobonus, &id, &pos); + } + } + return; +} +void HP_script_cleararray_pc(struct map_session_data *sd, const char *varname, void *value) { + int hIndex = 0; + if( HPMHooks.count.HP_script_cleararray_pc_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *varname, void *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_cleararray_pc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_cleararray_pc_pre[hIndex].func; + preHookFunc(sd, varname, value); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.cleararray_pc(sd, varname, value); + } + if( HPMHooks.count.HP_script_cleararray_pc_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *varname, void *value); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_cleararray_pc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_cleararray_pc_post[hIndex].func; + postHookFunc(sd, varname, value); + } + } + return; +} +void HP_script_setarray_pc(struct map_session_data *sd, const char *varname, uint8 idx, void *value, int *refcache) { + int hIndex = 0; + if( HPMHooks.count.HP_script_setarray_pc_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *varname, uint8 *idx, void *value, int *refcache); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_setarray_pc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_setarray_pc_pre[hIndex].func; + preHookFunc(sd, varname, &idx, value, refcache); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.setarray_pc(sd, varname, idx, value, refcache); + } + if( HPMHooks.count.HP_script_setarray_pc_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *varname, uint8 *idx, void *value, int *refcache); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_setarray_pc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_setarray_pc_post[hIndex].func; + postHookFunc(sd, varname, &idx, value, refcache); + } + } + return; +} +int HP_script_config_read(char *cfgName) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_config_read_pre ) { + int (*preHookFunc) (char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_config_read_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_config_read_pre[hIndex].func; + retVal___ = preHookFunc(cfgName); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.config_read(cfgName); + } + if( HPMHooks.count.HP_script_config_read_post ) { + int (*postHookFunc) (int retVal___, char *cfgName); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_config_read_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_config_read_post[hIndex].func; + retVal___ = postHookFunc(retVal___, cfgName); + } + } + return retVal___; +} +int HP_script_add_str(const char *p) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_add_str_pre ) { + int (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_add_str_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_add_str_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.add_str(p); + } + if( HPMHooks.count.HP_script_add_str_post ) { + int (*postHookFunc) (int retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_add_str_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_add_str_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +const char* HP_script_get_str(int id) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_get_str_pre ) { + const char* (*preHookFunc) (int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_str_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_get_str_pre[hIndex].func; + retVal___ = preHookFunc(&id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.get_str(id); + } + if( HPMHooks.count.HP_script_get_str_post ) { + const char* (*postHookFunc) (const char* retVal___, int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_str_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_get_str_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &id); + } + } + return retVal___; +} +int HP_script_search_str(const char *p) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_search_str_pre ) { + int (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_search_str_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_search_str_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.search_str(p); + } + if( HPMHooks.count.HP_script_search_str_post ) { + int (*postHookFunc) (int retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_search_str_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_search_str_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +void HP_script_setd_sub(struct script_state *st, struct map_session_data *sd, const char *varname, int elem, void *value, struct DBMap **ref) { + int hIndex = 0; + if( HPMHooks.count.HP_script_setd_sub_pre ) { + void (*preHookFunc) (struct script_state *st, struct map_session_data *sd, const char *varname, int *elem, void *value, struct DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_setd_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_setd_sub_pre[hIndex].func; + preHookFunc(st, sd, varname, &elem, value, ref); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.setd_sub(st, sd, varname, elem, value, ref); + } + if( HPMHooks.count.HP_script_setd_sub_post ) { + void (*postHookFunc) (struct script_state *st, struct map_session_data *sd, const char *varname, int *elem, void *value, struct DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_setd_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_setd_sub_post[hIndex].func; + postHookFunc(st, sd, varname, &elem, value, ref); + } + } + return; +} +void HP_script_attach_state(struct script_state *st) { + int hIndex = 0; + if( HPMHooks.count.HP_script_attach_state_pre ) { + void (*preHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_attach_state_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_attach_state_pre[hIndex].func; + preHookFunc(st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.attach_state(st); + } + if( HPMHooks.count.HP_script_attach_state_post ) { + void (*postHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_attach_state_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_attach_state_post[hIndex].func; + postHookFunc(st); + } + } + return; +} +struct hQueue* HP_script_queue(int idx) { + int hIndex = 0; + struct hQueue* retVal___ = NULL; + if( HPMHooks.count.HP_script_queue_pre ) { + struct hQueue* (*preHookFunc) (int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_queue_pre[hIndex].func; + retVal___ = preHookFunc(&idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.queue(idx); + } + if( HPMHooks.count.HP_script_queue_post ) { + struct hQueue* (*postHookFunc) (struct hQueue* retVal___, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_queue_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &idx); + } + } + return retVal___; +} +bool HP_script_queue_add(int idx, int var) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_script_queue_add_pre ) { + bool (*preHookFunc) (int *idx, int *var); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_queue_add_pre[hIndex].func; + retVal___ = preHookFunc(&idx, &var); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.queue_add(idx, var); + } + if( HPMHooks.count.HP_script_queue_add_post ) { + bool (*postHookFunc) (bool retVal___, int *idx, int *var); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_queue_add_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &idx, &var); + } + } + return retVal___; +} +bool HP_script_queue_del(int idx) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_script_queue_del_pre ) { + bool (*preHookFunc) (int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_del_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_queue_del_pre[hIndex].func; + retVal___ = preHookFunc(&idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.queue_del(idx); + } + if( HPMHooks.count.HP_script_queue_del_post ) { + bool (*postHookFunc) (bool retVal___, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_del_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_queue_del_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &idx); + } + } + return retVal___; +} +bool HP_script_queue_remove(int idx, int var) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_script_queue_remove_pre ) { + bool (*preHookFunc) (int *idx, int *var); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_queue_remove_pre[hIndex].func; + retVal___ = preHookFunc(&idx, &var); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.queue_remove(idx, var); + } + if( HPMHooks.count.HP_script_queue_remove_post ) { + bool (*postHookFunc) (bool retVal___, int *idx, int *var); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_queue_remove_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &idx, &var); + } + } + return retVal___; +} +int HP_script_queue_create(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_queue_create_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_queue_create_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.queue_create(); + } + if( HPMHooks.count.HP_script_queue_create_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_queue_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_script_queue_clear(int idx) { + int hIndex = 0; + if( HPMHooks.count.HP_script_queue_clear_pre ) { + void (*preHookFunc) (int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_clear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_queue_clear_pre[hIndex].func; + preHookFunc(&idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.queue_clear(idx); + } + if( HPMHooks.count.HP_script_queue_clear_post ) { + void (*postHookFunc) (int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_queue_clear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_queue_clear_post[hIndex].func; + postHookFunc(&idx); + } + } + return; +} +const char* HP_script_parse_curly_close(const char *p) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_curly_close_pre ) { + const char* (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_curly_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_curly_close_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_curly_close(p); + } + if( HPMHooks.count.HP_script_parse_curly_close_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_curly_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_curly_close_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +const char* HP_script_parse_syntax_close(const char *p) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_syntax_close_pre ) { + const char* (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_syntax_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_syntax_close_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_syntax_close(p); + } + if( HPMHooks.count.HP_script_parse_syntax_close_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_syntax_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_syntax_close_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +const char* HP_script_parse_syntax_close_sub(const char *p, int *flag) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_syntax_close_sub_pre ) { + const char* (*preHookFunc) (const char *p, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_syntax_close_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_syntax_close_sub_pre[hIndex].func; + retVal___ = preHookFunc(p, flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_syntax_close_sub(p, flag); + } + if( HPMHooks.count.HP_script_parse_syntax_close_sub_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_syntax_close_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_syntax_close_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p, flag); + } + } + return retVal___; +} +const char* HP_script_parse_syntax(const char *p) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_syntax_pre ) { + const char* (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_syntax_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_syntax_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_syntax(p); + } + if( HPMHooks.count.HP_script_parse_syntax_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_syntax_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_syntax_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +c_op HP_script_get_com(unsigned char *scriptbuf, int *pos) { + int hIndex = 0; + c_op retVal___; + memset(&retVal___, '\0', sizeof(c_op)); + if( HPMHooks.count.HP_script_get_com_pre ) { + c_op (*preHookFunc) (unsigned char *scriptbuf, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_com_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_get_com_pre[hIndex].func; + retVal___ = preHookFunc(scriptbuf, pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.get_com(scriptbuf, pos); + } + if( HPMHooks.count.HP_script_get_com_post ) { + c_op (*postHookFunc) (c_op retVal___, unsigned char *scriptbuf, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_com_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_get_com_post[hIndex].func; + retVal___ = postHookFunc(retVal___, scriptbuf, pos); + } + } + return retVal___; +} +int HP_script_get_num(unsigned char *scriptbuf, int *pos) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_get_num_pre ) { + int (*preHookFunc) (unsigned char *scriptbuf, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_num_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_get_num_pre[hIndex].func; + retVal___ = preHookFunc(scriptbuf, pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.get_num(scriptbuf, pos); + } + if( HPMHooks.count.HP_script_get_num_post ) { + int (*postHookFunc) (int retVal___, unsigned char *scriptbuf, int *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_get_num_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_get_num_post[hIndex].func; + retVal___ = postHookFunc(retVal___, scriptbuf, pos); + } + } + return retVal___; +} +const char* HP_script_op2name(int op) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_op2name_pre ) { + const char* (*preHookFunc) (int *op); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op2name_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_op2name_pre[hIndex].func; + retVal___ = preHookFunc(&op); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.op2name(op); + } + if( HPMHooks.count.HP_script_op2name_post ) { + const char* (*postHookFunc) (const char* retVal___, int *op); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op2name_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_op2name_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &op); + } + } + return retVal___; +} +void HP_script_reportsrc(struct script_state *st) { + int hIndex = 0; + if( HPMHooks.count.HP_script_reportsrc_pre ) { + void (*preHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_reportsrc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_reportsrc_pre[hIndex].func; + preHookFunc(st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.reportsrc(st); + } + if( HPMHooks.count.HP_script_reportsrc_post ) { + void (*postHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_reportsrc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_reportsrc_post[hIndex].func; + postHookFunc(st); + } + } + return; +} +void HP_script_reportdata(struct script_data *data) { + int hIndex = 0; + if( HPMHooks.count.HP_script_reportdata_pre ) { + void (*preHookFunc) (struct script_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_reportdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_reportdata_pre[hIndex].func; + preHookFunc(data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.reportdata(data); + } + if( HPMHooks.count.HP_script_reportdata_post ) { + void (*postHookFunc) (struct script_data *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_reportdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_reportdata_post[hIndex].func; + postHookFunc(data); + } + } + return; +} +void HP_script_reportfunc(struct script_state *st) { + int hIndex = 0; + if( HPMHooks.count.HP_script_reportfunc_pre ) { + void (*preHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_reportfunc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_reportfunc_pre[hIndex].func; + preHookFunc(st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.reportfunc(st); + } + if( HPMHooks.count.HP_script_reportfunc_post ) { + void (*postHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_reportfunc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_reportfunc_post[hIndex].func; + postHookFunc(st); + } + } + return; +} +void HP_script_disp_error_message2(const char *mes, const char *pos, int report) { + int hIndex = 0; + if( HPMHooks.count.HP_script_disp_error_message2_pre ) { + void (*preHookFunc) (const char *mes, const char *pos, int *report); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_disp_error_message2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_disp_error_message2_pre[hIndex].func; + preHookFunc(mes, pos, &report); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.disp_error_message2(mes, pos, report); + } + if( HPMHooks.count.HP_script_disp_error_message2_post ) { + void (*postHookFunc) (const char *mes, const char *pos, int *report); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_disp_error_message2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_disp_error_message2_post[hIndex].func; + postHookFunc(mes, pos, &report); + } + } + return; +} +void HP_script_disp_warning_message(const char *mes, const char *pos) { + int hIndex = 0; + if( HPMHooks.count.HP_script_disp_warning_message_pre ) { + void (*preHookFunc) (const char *mes, const char *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_disp_warning_message_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_disp_warning_message_pre[hIndex].func; + preHookFunc(mes, pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.disp_warning_message(mes, pos); + } + if( HPMHooks.count.HP_script_disp_warning_message_post ) { + void (*postHookFunc) (const char *mes, const char *pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_disp_warning_message_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_disp_warning_message_post[hIndex].func; + postHookFunc(mes, pos); + } + } + return; +} +void HP_script_check_event(struct script_state *st, const char *evt) { + int hIndex = 0; + if( HPMHooks.count.HP_script_check_event_pre ) { + void (*preHookFunc) (struct script_state *st, const char *evt); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_check_event_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_check_event_pre[hIndex].func; + preHookFunc(st, evt); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.check_event(st, evt); + } + if( HPMHooks.count.HP_script_check_event_post ) { + void (*postHookFunc) (struct script_state *st, const char *evt); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_check_event_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_check_event_post[hIndex].func; + postHookFunc(st, evt); + } + } + return; +} +unsigned int HP_script_calc_hash(const char *p) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_script_calc_hash_pre ) { + unsigned int (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_calc_hash_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_calc_hash_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.calc_hash(p); + } + if( HPMHooks.count.HP_script_calc_hash_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_calc_hash_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_calc_hash_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +void HP_script_addb(int a) { + int hIndex = 0; + if( HPMHooks.count.HP_script_addb_pre ) { + void (*preHookFunc) (int *a); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_addb_pre[hIndex].func; + preHookFunc(&a); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.addb(a); + } + if( HPMHooks.count.HP_script_addb_post ) { + void (*postHookFunc) (int *a); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_addb_post[hIndex].func; + postHookFunc(&a); + } + } + return; +} +void HP_script_addc(int a) { + int hIndex = 0; + if( HPMHooks.count.HP_script_addc_pre ) { + void (*preHookFunc) (int *a); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_addc_pre[hIndex].func; + preHookFunc(&a); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.addc(a); + } + if( HPMHooks.count.HP_script_addc_post ) { + void (*postHookFunc) (int *a); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_addc_post[hIndex].func; + postHookFunc(&a); + } + } + return; +} +void HP_script_addi(int a) { + int hIndex = 0; + if( HPMHooks.count.HP_script_addi_pre ) { + void (*preHookFunc) (int *a); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addi_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_addi_pre[hIndex].func; + preHookFunc(&a); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.addi(a); + } + if( HPMHooks.count.HP_script_addi_post ) { + void (*postHookFunc) (int *a); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addi_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_addi_post[hIndex].func; + postHookFunc(&a); + } + } + return; +} +void HP_script_addl(int l) { + int hIndex = 0; + if( HPMHooks.count.HP_script_addl_pre ) { + void (*preHookFunc) (int *l); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addl_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_addl_pre[hIndex].func; + preHookFunc(&l); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.addl(l); + } + if( HPMHooks.count.HP_script_addl_post ) { + void (*postHookFunc) (int *l); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_addl_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_addl_post[hIndex].func; + postHookFunc(&l); + } + } + return; +} +void HP_script_set_label(int l, int pos, const char *script_pos) { + int hIndex = 0; + if( HPMHooks.count.HP_script_set_label_pre ) { + void (*preHookFunc) (int *l, int *pos, const char *script_pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_label_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_set_label_pre[hIndex].func; + preHookFunc(&l, &pos, script_pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.set_label(l, pos, script_pos); + } + if( HPMHooks.count.HP_script_set_label_post ) { + void (*postHookFunc) (int *l, int *pos, const char *script_pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_label_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_set_label_post[hIndex].func; + postHookFunc(&l, &pos, script_pos); + } + } + return; +} +const char* HP_script_skip_word(const char *p) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_skip_word_pre ) { + const char* (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_skip_word_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_skip_word_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.skip_word(p); + } + if( HPMHooks.count.HP_script_skip_word_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_skip_word_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_skip_word_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +int HP_script_add_word(const char *p) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_add_word_pre ) { + int (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_add_word_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_add_word_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.add_word(p); + } + if( HPMHooks.count.HP_script_add_word_post ) { + int (*postHookFunc) (int retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_add_word_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_add_word_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +const char* HP_script_parse_callfunc(const char *p, int require_paren, int is_custom) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_callfunc_pre ) { + const char* (*preHookFunc) (const char *p, int *require_paren, int *is_custom); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_callfunc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_callfunc_pre[hIndex].func; + retVal___ = preHookFunc(p, &require_paren, &is_custom); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_callfunc(p, require_paren, is_custom); + } + if( HPMHooks.count.HP_script_parse_callfunc_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p, int *require_paren, int *is_custom); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_callfunc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_callfunc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p, &require_paren, &is_custom); + } + } + return retVal___; +} +void HP_script_parse_nextline(bool first, const char *p) { + int hIndex = 0; + if( HPMHooks.count.HP_script_parse_nextline_pre ) { + void (*preHookFunc) (bool *first, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_nextline_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_nextline_pre[hIndex].func; + preHookFunc(&first, p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.parse_nextline(first, p); + } + if( HPMHooks.count.HP_script_parse_nextline_post ) { + void (*postHookFunc) (bool *first, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_nextline_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_nextline_post[hIndex].func; + postHookFunc(&first, p); + } + } + return; +} +const char* HP_script_parse_variable(const char *p) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_variable_pre ) { + const char* (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_variable_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_variable_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_variable(p); + } + if( HPMHooks.count.HP_script_parse_variable_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_variable_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_variable_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +const char* HP_script_parse_simpleexpr(const char *p) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_simpleexpr_pre ) { + const char* (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_simpleexpr_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_simpleexpr_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_simpleexpr(p); + } + if( HPMHooks.count.HP_script_parse_simpleexpr_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_simpleexpr_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_simpleexpr_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +const char* HP_script_parse_expr(const char *p) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_expr_pre ) { + const char* (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_expr_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_expr_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_expr(p); + } + if( HPMHooks.count.HP_script_parse_expr_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_expr_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_expr_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +const char* HP_script_parse_line(const char *p) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_parse_line_pre ) { + const char* (*preHookFunc) (const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_line_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_parse_line_pre[hIndex].func; + retVal___ = preHookFunc(p); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.parse_line(p); + } + if( HPMHooks.count.HP_script_parse_line_post ) { + const char* (*postHookFunc) (const char* retVal___, const char *p); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_parse_line_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_parse_line_post[hIndex].func; + retVal___ = postHookFunc(retVal___, p); + } + } + return retVal___; +} +void HP_script_read_constdb(void) { + int hIndex = 0; + if( HPMHooks.count.HP_script_read_constdb_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_read_constdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_read_constdb_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.read_constdb(); + } + if( HPMHooks.count.HP_script_read_constdb_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_read_constdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_read_constdb_post[hIndex].func; + postHookFunc(); + } + } + return; +} +const char* HP_script_print_line(StringBuf *buf, const char *p, const char *mark, int line) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_script_print_line_pre ) { + const char* (*preHookFunc) (StringBuf *buf, const char *p, const char *mark, int *line); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_print_line_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_print_line_pre[hIndex].func; + retVal___ = preHookFunc(buf, p, mark, &line); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.print_line(buf, p, mark, line); + } + if( HPMHooks.count.HP_script_print_line_post ) { + const char* (*postHookFunc) (const char* retVal___, StringBuf *buf, const char *p, const char *mark, int *line); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_print_line_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_print_line_post[hIndex].func; + retVal___ = postHookFunc(retVal___, buf, p, mark, &line); + } + } + return retVal___; +} +void HP_script_errorwarning_sub(StringBuf *buf, const char *src, const char *file, int start_line, const char *error_msg, const char *error_pos) { + int hIndex = 0; + if( HPMHooks.count.HP_script_errorwarning_sub_pre ) { + void (*preHookFunc) (StringBuf *buf, const char *src, const char *file, int *start_line, const char *error_msg, const char *error_pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_errorwarning_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_errorwarning_sub_pre[hIndex].func; + preHookFunc(buf, src, file, &start_line, error_msg, error_pos); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.errorwarning_sub(buf, src, file, start_line, error_msg, error_pos); + } + if( HPMHooks.count.HP_script_errorwarning_sub_post ) { + void (*postHookFunc) (StringBuf *buf, const char *src, const char *file, int *start_line, const char *error_msg, const char *error_pos); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_errorwarning_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_errorwarning_sub_post[hIndex].func; + postHookFunc(buf, src, file, &start_line, error_msg, error_pos); + } + } + return; +} +int HP_script_set_reg(struct script_state *st, TBL_PC *sd, int num, const char *name, const void *value, struct DBMap **ref) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_set_reg_pre ) { + int (*preHookFunc) (struct script_state *st, TBL_PC *sd, int *num, const char *name, const void *value, struct DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_reg_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_set_reg_pre[hIndex].func; + retVal___ = preHookFunc(st, sd, &num, name, value, ref); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.set_reg(st, sd, num, name, value, ref); + } + if( HPMHooks.count.HP_script_set_reg_post ) { + int (*postHookFunc) (int retVal___, struct script_state *st, TBL_PC *sd, int *num, const char *name, const void *value, struct DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_set_reg_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_set_reg_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st, sd, &num, name, value, ref); + } + } + return retVal___; +} +void HP_script_stack_expand(struct script_stack *stack) { + int hIndex = 0; + if( HPMHooks.count.HP_script_stack_expand_pre ) { + void (*preHookFunc) (struct script_stack *stack); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_stack_expand_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_stack_expand_pre[hIndex].func; + preHookFunc(stack); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.stack_expand(stack); + } + if( HPMHooks.count.HP_script_stack_expand_post ) { + void (*postHookFunc) (struct script_stack *stack); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_stack_expand_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_stack_expand_post[hIndex].func; + postHookFunc(stack); + } + } + return; +} +struct script_data* HP_script_push_retinfo(struct script_stack *stack, struct script_retinfo *ri, DBMap **ref) { + int hIndex = 0; + struct script_data* retVal___ = NULL; + if( HPMHooks.count.HP_script_push_retinfo_pre ) { + struct script_data* (*preHookFunc) (struct script_stack *stack, struct script_retinfo *ri, DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_push_retinfo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_push_retinfo_pre[hIndex].func; + retVal___ = preHookFunc(stack, ri, ref); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.push_retinfo(stack, ri, ref); + } + if( HPMHooks.count.HP_script_push_retinfo_post ) { + struct script_data* (*postHookFunc) (struct script_data* retVal___, struct script_stack *stack, struct script_retinfo *ri, DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_push_retinfo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_push_retinfo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, stack, ri, ref); + } + } + return retVal___; +} +int HP_script_pop_val(struct script_state *st) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_pop_val_pre ) { + int (*preHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_pop_val_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_pop_val_pre[hIndex].func; + retVal___ = preHookFunc(st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.pop_val(st); + } + if( HPMHooks.count.HP_script_pop_val_post ) { + int (*postHookFunc) (int retVal___, struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_pop_val_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_pop_val_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st); + } + } + return retVal___; +} +void HP_script_op_3(struct script_state *st, int op) { + int hIndex = 0; + if( HPMHooks.count.HP_script_op_3_pre ) { + void (*preHookFunc) (struct script_state *st, int *op); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op_3_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_op_3_pre[hIndex].func; + preHookFunc(st, &op); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.op_3(st, op); + } + if( HPMHooks.count.HP_script_op_3_post ) { + void (*postHookFunc) (struct script_state *st, int *op); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op_3_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_op_3_post[hIndex].func; + postHookFunc(st, &op); + } + } + return; +} +void HP_script_op_2str(struct script_state *st, int op, const char *s1, const char *s2) { + int hIndex = 0; + if( HPMHooks.count.HP_script_op_2str_pre ) { + void (*preHookFunc) (struct script_state *st, int *op, const char *s1, const char *s2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op_2str_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_op_2str_pre[hIndex].func; + preHookFunc(st, &op, s1, s2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.op_2str(st, op, s1, s2); + } + if( HPMHooks.count.HP_script_op_2str_post ) { + void (*postHookFunc) (struct script_state *st, int *op, const char *s1, const char *s2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op_2str_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_op_2str_post[hIndex].func; + postHookFunc(st, &op, s1, s2); + } + } + return; +} +void HP_script_op_2num(struct script_state *st, int op, int i1, int i2) { + int hIndex = 0; + if( HPMHooks.count.HP_script_op_2num_pre ) { + void (*preHookFunc) (struct script_state *st, int *op, int *i1, int *i2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op_2num_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_op_2num_pre[hIndex].func; + preHookFunc(st, &op, &i1, &i2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.op_2num(st, op, i1, i2); + } + if( HPMHooks.count.HP_script_op_2num_post ) { + void (*postHookFunc) (struct script_state *st, int *op, int *i1, int *i2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op_2num_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_op_2num_post[hIndex].func; + postHookFunc(st, &op, &i1, &i2); + } + } + return; +} +void HP_script_op_2(struct script_state *st, int op) { + int hIndex = 0; + if( HPMHooks.count.HP_script_op_2_pre ) { + void (*preHookFunc) (struct script_state *st, int *op); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op_2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_op_2_pre[hIndex].func; + preHookFunc(st, &op); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.op_2(st, op); + } + if( HPMHooks.count.HP_script_op_2_post ) { + void (*postHookFunc) (struct script_state *st, int *op); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op_2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_op_2_post[hIndex].func; + postHookFunc(st, &op); + } + } + return; +} +void HP_script_op_1(struct script_state *st, int op) { + int hIndex = 0; + if( HPMHooks.count.HP_script_op_1_pre ) { + void (*preHookFunc) (struct script_state *st, int *op); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op_1_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_op_1_pre[hIndex].func; + preHookFunc(st, &op); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.op_1(st, op); + } + if( HPMHooks.count.HP_script_op_1_post ) { + void (*postHookFunc) (struct script_state *st, int *op); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_op_1_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_op_1_post[hIndex].func; + postHookFunc(st, &op); + } + } + return; +} +void HP_script_check_buildin_argtype(struct script_state *st, int func) { + int hIndex = 0; + if( HPMHooks.count.HP_script_check_buildin_argtype_pre ) { + void (*preHookFunc) (struct script_state *st, int *func); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_check_buildin_argtype_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_check_buildin_argtype_pre[hIndex].func; + preHookFunc(st, &func); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.check_buildin_argtype(st, func); + } + if( HPMHooks.count.HP_script_check_buildin_argtype_post ) { + void (*postHookFunc) (struct script_state *st, int *func); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_check_buildin_argtype_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_check_buildin_argtype_post[hIndex].func; + postHookFunc(st, &func); + } + } + return; +} +void HP_script_detach_state(struct script_state *st, bool dequeue_event) { + int hIndex = 0; + if( HPMHooks.count.HP_script_detach_state_pre ) { + void (*preHookFunc) (struct script_state *st, bool *dequeue_event); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_detach_state_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_detach_state_pre[hIndex].func; + preHookFunc(st, &dequeue_event); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.detach_state(st, dequeue_event); + } + if( HPMHooks.count.HP_script_detach_state_post ) { + void (*postHookFunc) (struct script_state *st, bool *dequeue_event); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_detach_state_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_detach_state_post[hIndex].func; + postHookFunc(st, &dequeue_event); + } + } + return; +} +int HP_script_db_free_code_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_db_free_code_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_db_free_code_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_db_free_code_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.db_free_code_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_db_free_code_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_db_free_code_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_db_free_code_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_script_add_autobonus(const char *autobonus) { + int hIndex = 0; + if( HPMHooks.count.HP_script_add_autobonus_pre ) { + void (*preHookFunc) (const char *autobonus); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_add_autobonus_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_add_autobonus_pre[hIndex].func; + preHookFunc(autobonus); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.add_autobonus(autobonus); + } + if( HPMHooks.count.HP_script_add_autobonus_post ) { + void (*postHookFunc) (const char *autobonus); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_add_autobonus_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_add_autobonus_post[hIndex].func; + postHookFunc(autobonus); + } + } + return; +} +int HP_script_menu_countoptions(const char *str, int max_count, int *total) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_menu_countoptions_pre ) { + int (*preHookFunc) (const char *str, int *max_count, int *total); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_menu_countoptions_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_menu_countoptions_pre[hIndex].func; + retVal___ = preHookFunc(str, &max_count, total); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.menu_countoptions(str, max_count, total); + } + if( HPMHooks.count.HP_script_menu_countoptions_post ) { + int (*postHookFunc) (int retVal___, const char *str, int *max_count, int *total); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_menu_countoptions_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_menu_countoptions_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, &max_count, total); + } + } + return retVal___; +} +int HP_script_buildin_areawarp_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_areawarp_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_areawarp_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_areawarp_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_areawarp_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_areawarp_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_areawarp_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_areawarp_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_areapercentheal_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_areapercentheal_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_areapercentheal_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_areapercentheal_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_areapercentheal_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_areapercentheal_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_areapercentheal_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_areapercentheal_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int32 HP_script_getarraysize(struct script_state *st, int32 id, int32 idx, int isstring, struct DBMap **ref) { + int hIndex = 0; + int32 retVal___; + memset(&retVal___, '\0', sizeof(int32)); + if( HPMHooks.count.HP_script_getarraysize_pre ) { + int32 (*preHookFunc) (struct script_state *st, int32 *id, int32 *idx, int *isstring, struct DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_getarraysize_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_getarraysize_pre[hIndex].func; + retVal___ = preHookFunc(st, &id, &idx, &isstring, ref); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.getarraysize(st, id, idx, isstring, ref); + } + if( HPMHooks.count.HP_script_getarraysize_post ) { + int32 (*postHookFunc) (int32 retVal___, struct script_state *st, int32 *id, int32 *idx, int *isstring, struct DBMap **ref); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_getarraysize_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_getarraysize_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st, &id, &idx, &isstring, ref); + } + } + return retVal___; +} +void HP_script_buildin_delitem_delete(struct map_session_data *sd, int idx, int *amount, bool delete_items) { + int hIndex = 0; + if( HPMHooks.count.HP_script_buildin_delitem_delete_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *idx, int *amount, bool *delete_items); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_delitem_delete_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_buildin_delitem_delete_pre[hIndex].func; + preHookFunc(sd, &idx, amount, &delete_items); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.buildin_delitem_delete(sd, idx, amount, delete_items); + } + if( HPMHooks.count.HP_script_buildin_delitem_delete_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *idx, int *amount, bool *delete_items); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_delitem_delete_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_buildin_delitem_delete_post[hIndex].func; + postHookFunc(sd, &idx, amount, &delete_items); + } + } + return; +} +bool HP_script_buildin_delitem_search(struct map_session_data *sd, struct item *it, bool exact_match) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_script_buildin_delitem_search_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, struct item *it, bool *exact_match); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_delitem_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_buildin_delitem_search_pre[hIndex].func; + retVal___ = preHookFunc(sd, it, &exact_match); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.buildin_delitem_search(sd, it, exact_match); + } + if( HPMHooks.count.HP_script_buildin_delitem_search_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, struct item *it, bool *exact_match); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_delitem_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_buildin_delitem_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, it, &exact_match); + } + } + return retVal___; +} +int HP_script_buildin_killmonster_sub_strip(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_killmonster_sub_strip_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_killmonster_sub_strip_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_killmonster_sub_strip_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_killmonster_sub_strip(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_killmonster_sub_strip_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_killmonster_sub_strip_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_killmonster_sub_strip_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_killmonster_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_killmonster_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_killmonster_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_killmonster_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_killmonster_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_killmonster_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_killmonster_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_killmonster_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_killmonsterall_sub_strip(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_killmonsterall_sub_strip_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_killmonsterall_sub_strip_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_killmonsterall_sub_strip_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_killmonsterall_sub_strip(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_killmonsterall_sub_strip_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_killmonsterall_sub_strip_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_killmonsterall_sub_strip_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_killmonsterall_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_killmonsterall_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_killmonsterall_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_killmonsterall_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_killmonsterall_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_killmonsterall_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_killmonsterall_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_killmonsterall_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_announce_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_announce_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_announce_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_announce_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_announce_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_announce_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_announce_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_announce_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_getareausers_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_getareausers_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_getareausers_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_getareausers_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_getareausers_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_getareausers_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_getareausers_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_getareausers_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_getareadropitem_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_getareadropitem_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_getareadropitem_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_getareadropitem_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_getareadropitem_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_getareadropitem_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_getareadropitem_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_getareadropitem_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_mapflag_pvp_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_mapflag_pvp_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_mapflag_pvp_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_mapflag_pvp_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.mapflag_pvp_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_mapflag_pvp_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_mapflag_pvp_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_mapflag_pvp_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_pvpoff_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_pvpoff_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_pvpoff_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_pvpoff_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_pvpoff_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_pvpoff_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_pvpoff_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_pvpoff_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_maprespawnguildid_sub_pc(struct map_session_data *sd, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_maprespawnguildid_sub_pc_pre ) { + int (*preHookFunc) (struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_maprespawnguildid_sub_pc_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_maprespawnguildid_sub_pc_pre[hIndex].func; + retVal___ = preHookFunc(sd, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_maprespawnguildid_sub_pc(sd, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_maprespawnguildid_sub_pc_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_maprespawnguildid_sub_pc_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_maprespawnguildid_sub_pc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_maprespawnguildid_sub_mob(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_maprespawnguildid_sub_mob_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_maprespawnguildid_sub_mob_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_maprespawnguildid_sub_mob_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_maprespawnguildid_sub_mob(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_maprespawnguildid_sub_mob_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_maprespawnguildid_sub_mob_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_maprespawnguildid_sub_mob_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_mobcount_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_mobcount_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_mobcount_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_mobcount_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_mobcount_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_mobcount_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_mobcount_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_mobcount_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_playBGM_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_playBGM_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_playBGM_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_playBGM_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.playBGM_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_playBGM_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_playBGM_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_playBGM_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_playBGM_foreachpc_sub(struct map_session_data *sd, va_list args) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_playBGM_foreachpc_sub_pre ) { + int (*preHookFunc) (struct map_session_data *sd, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_playBGM_foreachpc_sub_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_script_playBGM_foreachpc_sub_pre[hIndex].func; + retVal___ = preHookFunc(sd, 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.script.playBGM_foreachpc_sub(sd, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_script_playBGM_foreachpc_sub_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_playBGM_foreachpc_sub_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_script_playBGM_foreachpc_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_script_soundeffect_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_soundeffect_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_soundeffect_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_soundeffect_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.soundeffect_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_soundeffect_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_soundeffect_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_soundeffect_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_query_sql_sub(struct script_state *st, Sql *handle) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_query_sql_sub_pre ) { + int (*preHookFunc) (struct script_state *st, Sql *handle); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_query_sql_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_buildin_query_sql_sub_pre[hIndex].func; + retVal___ = preHookFunc(st, handle); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.buildin_query_sql_sub(st, handle); + } + if( HPMHooks.count.HP_script_buildin_query_sql_sub_post ) { + int (*postHookFunc) (int retVal___, struct script_state *st, Sql *handle); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_query_sql_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_buildin_query_sql_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st, handle); + } + } + return retVal___; +} +int HP_script_axtoi(const char *hexStg) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_axtoi_pre ) { + int (*preHookFunc) (const char *hexStg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_axtoi_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_axtoi_pre[hIndex].func; + retVal___ = preHookFunc(hexStg); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.axtoi(hexStg); + } + if( HPMHooks.count.HP_script_axtoi_post ) { + int (*postHookFunc) (int retVal___, const char *hexStg); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_axtoi_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_axtoi_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hexStg); + } + } + return retVal___; +} +int HP_script_buildin_instance_warpall_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_instance_warpall_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_instance_warpall_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_instance_warpall_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_instance_warpall_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_instance_warpall_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_instance_warpall_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_instance_warpall_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_buildin_mobuseskill_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_buildin_mobuseskill_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_mobuseskill_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_buildin_mobuseskill_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.buildin_mobuseskill_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_buildin_mobuseskill_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_buildin_mobuseskill_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_buildin_mobuseskill_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_cleanfloor_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_cleanfloor_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_cleanfloor_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_script_cleanfloor_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.script.cleanfloor_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_script_cleanfloor_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_cleanfloor_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_script_cleanfloor_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_script_run_func(struct script_state *st) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_script_run_func_pre ) { + int (*preHookFunc) (struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_func_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_run_func_pre[hIndex].func; + retVal___ = preHookFunc(st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.script.run_func(st); + } + if( HPMHooks.count.HP_script_run_func_post ) { + int (*postHookFunc) (int retVal___, struct script_state *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_func_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_run_func_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st); + } + } + return retVal___; +} +/* searchstore */ +bool HP_searchstore_open(struct map_session_data *sd, unsigned int uses, unsigned short effect) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_searchstore_open_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, unsigned int *uses, unsigned short *effect); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_open_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_searchstore_open_pre[hIndex].func; + retVal___ = preHookFunc(sd, &uses, &effect); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.searchstore.open(sd, uses, effect); + } + if( HPMHooks.count.HP_searchstore_open_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, unsigned int *uses, unsigned short *effect); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_open_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_searchstore_open_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &uses, &effect); + } + } + return retVal___; +} +void HP_searchstore_query(struct map_session_data *sd, unsigned char type, unsigned int min_price, unsigned int max_price, const unsigned short *itemlist, unsigned int item_count, const unsigned short *cardlist, unsigned int card_count) { + int hIndex = 0; + if( HPMHooks.count.HP_searchstore_query_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned char *type, unsigned int *min_price, unsigned int *max_price, const unsigned short *itemlist, unsigned int *item_count, const unsigned short *cardlist, unsigned int *card_count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_query_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_searchstore_query_pre[hIndex].func; + preHookFunc(sd, &type, &min_price, &max_price, itemlist, &item_count, cardlist, &card_count); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.searchstore.query(sd, type, min_price, max_price, itemlist, item_count, cardlist, card_count); + } + if( HPMHooks.count.HP_searchstore_query_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned char *type, unsigned int *min_price, unsigned int *max_price, const unsigned short *itemlist, unsigned int *item_count, const unsigned short *cardlist, unsigned int *card_count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_query_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_searchstore_query_post[hIndex].func; + postHookFunc(sd, &type, &min_price, &max_price, itemlist, &item_count, cardlist, &card_count); + } + } + return; +} +bool HP_searchstore_querynext(struct map_session_data *sd) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_searchstore_querynext_pre ) { + bool (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_querynext_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_searchstore_querynext_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.searchstore.querynext(sd); + } + if( HPMHooks.count.HP_searchstore_querynext_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_querynext_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_searchstore_querynext_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +void HP_searchstore_next(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_searchstore_next_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_next_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_searchstore_next_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.searchstore.next(sd); + } + if( HPMHooks.count.HP_searchstore_next_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_next_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_searchstore_next_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_searchstore_clear(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_searchstore_clear_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_clear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_searchstore_clear_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.searchstore.clear(sd); + } + if( HPMHooks.count.HP_searchstore_clear_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_clear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_searchstore_clear_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_searchstore_close(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_searchstore_close_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_searchstore_close_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.searchstore.close(sd); + } + if( HPMHooks.count.HP_searchstore_close_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_searchstore_close_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_searchstore_click(struct map_session_data *sd, int account_id, int store_id, unsigned short nameid) { + int hIndex = 0; + if( HPMHooks.count.HP_searchstore_click_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *account_id, int *store_id, unsigned short *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_click_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_searchstore_click_pre[hIndex].func; + preHookFunc(sd, &account_id, &store_id, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.searchstore.click(sd, account_id, store_id, nameid); + } + if( HPMHooks.count.HP_searchstore_click_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *account_id, int *store_id, unsigned short *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_click_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_searchstore_click_post[hIndex].func; + postHookFunc(sd, &account_id, &store_id, &nameid); + } + } + return; +} +bool HP_searchstore_queryremote(struct map_session_data *sd, int account_id) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_searchstore_queryremote_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, int *account_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_queryremote_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_searchstore_queryremote_pre[hIndex].func; + retVal___ = preHookFunc(sd, &account_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.searchstore.queryremote(sd, account_id); + } + if( HPMHooks.count.HP_searchstore_queryremote_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int *account_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_queryremote_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_searchstore_queryremote_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &account_id); + } + } + return retVal___; +} +void HP_searchstore_clearremote(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_searchstore_clearremote_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_clearremote_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_searchstore_clearremote_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.searchstore.clearremote(sd); + } + if( HPMHooks.count.HP_searchstore_clearremote_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_clearremote_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_searchstore_clearremote_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +bool HP_searchstore_result(struct map_session_data *sd, unsigned int store_id, int account_id, const char *store_name, unsigned short nameid, unsigned short amount, unsigned int price, const short *card, unsigned char refine) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_searchstore_result_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, unsigned int *store_id, int *account_id, const char *store_name, unsigned short *nameid, unsigned short *amount, unsigned int *price, const short *card, unsigned char *refine); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_result_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_searchstore_result_pre[hIndex].func; + retVal___ = preHookFunc(sd, &store_id, &account_id, store_name, &nameid, &amount, &price, card, &refine); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.searchstore.result(sd, store_id, account_id, store_name, nameid, amount, price, card, refine); + } + if( HPMHooks.count.HP_searchstore_result_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, unsigned int *store_id, int *account_id, const char *store_name, unsigned short *nameid, unsigned short *amount, unsigned int *price, const short *card, unsigned char *refine); + for(hIndex = 0; hIndex < HPMHooks.count.HP_searchstore_result_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_searchstore_result_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &store_id, &account_id, store_name, &nameid, &amount, &price, card, &refine); + } + } + return retVal___; +} +/* skill */ +int HP_skill_init(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_init_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.init(); + } + if( HPMHooks.count.HP_skill_init_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_skill_final(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_final_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_final_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.final(); + } + if( HPMHooks.count.HP_skill_final_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_skill_reload(void) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_reload_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_reload_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_reload_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.reload(); + } + if( HPMHooks.count.HP_skill_reload_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_reload_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_reload_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_skill_read_db(void) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_read_db_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_read_db_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_read_db_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.read_db(); + } + if( HPMHooks.count.HP_skill_read_db_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_read_db_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_read_db_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_skill_get_index(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_index_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_index_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_index_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_index(skill_id); + } + if( HPMHooks.count.HP_skill_get_index_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_index_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_index_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_type(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_type_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_type_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_type_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_type(skill_id); + } + if( HPMHooks.count.HP_skill_get_type_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_type_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_type_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_hit(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_hit_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_hit_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_hit(skill_id); + } + if( HPMHooks.count.HP_skill_get_hit_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_hit_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_inf(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_inf_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_inf_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_inf(skill_id); + } + if( HPMHooks.count.HP_skill_get_inf_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_inf_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_ele(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_ele_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ele_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_ele_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_ele(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_ele_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ele_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_ele_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_nk(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_nk_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_nk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_nk_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_nk(skill_id); + } + if( HPMHooks.count.HP_skill_get_nk_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_nk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_nk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_max(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_max_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_max_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_max_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_max(skill_id); + } + if( HPMHooks.count.HP_skill_get_max_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_max_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_max_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_range(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_range_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_range_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_range(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_range_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_range_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_range2(struct block_list *bl, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_range2_pre ) { + int (*preHookFunc) (struct block_list *bl, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_range2_pre[hIndex].func; + retVal___ = preHookFunc(bl, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_range2(bl, skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_range2_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_range2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_splash(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_splash_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_splash_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_splash_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_splash(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_splash_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_splash_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_splash_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_hp(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_hp_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_hp_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_hp(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_hp_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_hp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_mhp(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_mhp_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_mhp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_mhp_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_mhp(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_mhp_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_mhp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_mhp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_sp(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_sp_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_sp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_sp_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_sp(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_sp_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_sp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_sp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_state(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_state_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_state_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_state_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_state(skill_id); + } + if( HPMHooks.count.HP_skill_get_state_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_state_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_state_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_spiritball(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_spiritball_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_spiritball_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_spiritball_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_spiritball(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_spiritball_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_spiritball_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_spiritball_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_zeny(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_zeny_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_zeny_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_zeny_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_zeny(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_zeny_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_zeny_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_zeny_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_num(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_num_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_num_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_num_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_num(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_num_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_num_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_num_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_cast(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_cast_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cast_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_cast_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_cast(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_cast_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cast_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_cast_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_delay(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_delay_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delay_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_delay_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_delay(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_delay_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delay_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_delay_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_walkdelay(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_walkdelay_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_walkdelay_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_walkdelay_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_walkdelay(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_walkdelay_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_walkdelay_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_walkdelay_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_time(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_time_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_time_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_time(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_time_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_time_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_time2(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_time2_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_time2_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_time2(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_time2_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_time2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_castnodex(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_castnodex_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castnodex_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_castnodex_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_castnodex(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_castnodex_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castnodex_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_castnodex_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_delaynodex(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_delaynodex_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delaynodex_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_delaynodex_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_delaynodex(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_delaynodex_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delaynodex_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_delaynodex_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_castdef(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_castdef_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castdef_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_castdef_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_castdef(skill_id); + } + if( HPMHooks.count.HP_skill_get_castdef_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castdef_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_castdef_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_weapontype(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_weapontype_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_weapontype_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_weapontype_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_weapontype(skill_id); + } + if( HPMHooks.count.HP_skill_get_weapontype_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_weapontype_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_weapontype_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_ammotype(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_ammotype_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammotype_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_ammotype_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_ammotype(skill_id); + } + if( HPMHooks.count.HP_skill_get_ammotype_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammotype_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_ammotype_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_ammo_qty(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_ammo_qty_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammo_qty_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_ammo_qty_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_ammo_qty(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_ammo_qty_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammo_qty_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_ammo_qty_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_unit_id(uint16 skill_id, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_unit_id_pre ) { + int (*preHookFunc) (uint16 *skill_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_unit_id_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_unit_id(skill_id, flag); + } + if( HPMHooks.count.HP_skill_get_unit_id_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_unit_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &flag); + } + } + return retVal___; +} +int HP_skill_get_inf2(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_inf2_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_inf2_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_inf2(skill_id); + } + if( HPMHooks.count.HP_skill_get_inf2_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_inf2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_castcancel(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_castcancel_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castcancel_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_castcancel_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_castcancel(skill_id); + } + if( HPMHooks.count.HP_skill_get_castcancel_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castcancel_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_castcancel_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_maxcount(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_maxcount_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_maxcount_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_maxcount_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_maxcount(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_maxcount_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_maxcount_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_maxcount_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_blewcount(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_blewcount_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_blewcount_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_blewcount_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_blewcount(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_blewcount_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_blewcount_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_blewcount_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_unit_flag(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_unit_flag_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_flag_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_unit_flag_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_unit_flag(skill_id); + } + if( HPMHooks.count.HP_skill_get_unit_flag_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_flag_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_unit_flag_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_unit_target(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_unit_target_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_target_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_unit_target_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_unit_target(skill_id); + } + if( HPMHooks.count.HP_skill_get_unit_target_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_target_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_unit_target_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_unit_interval(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_unit_interval_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_interval_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_unit_interval_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_unit_interval(skill_id); + } + if( HPMHooks.count.HP_skill_get_unit_interval_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_interval_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_unit_interval_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_unit_bl_target(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_unit_bl_target_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_bl_target_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_unit_bl_target_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_unit_bl_target(skill_id); + } + if( HPMHooks.count.HP_skill_get_unit_bl_target_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_bl_target_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_unit_bl_target_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_unit_layout_type(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_unit_layout_type_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_layout_type_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_unit_layout_type_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_unit_layout_type(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_unit_layout_type_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_layout_type_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_unit_layout_type_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_unit_range(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_unit_range_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_range_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_unit_range_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_unit_range(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_unit_range_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_range_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_unit_range_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_get_cooldown(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_cooldown_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cooldown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_cooldown_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_cooldown(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_cooldown_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cooldown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_cooldown_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_tree_get_max(uint16 skill_id, int b_class) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_tree_get_max_pre ) { + int (*preHookFunc) (uint16 *skill_id, int *b_class); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_tree_get_max_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_tree_get_max_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &b_class); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.tree_get_max(skill_id, b_class); + } + if( HPMHooks.count.HP_skill_tree_get_max_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, int *b_class); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_tree_get_max_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_tree_get_max_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &b_class); + } + } + return retVal___; +} +const char* HP_skill_get_name(uint16 skill_id) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_skill_get_name_pre ) { + const char* (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_name_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_name_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_name(skill_id); + } + if( HPMHooks.count.HP_skill_get_name_post ) { + const char* (*postHookFunc) (const char* retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_name_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_name_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +const char* HP_skill_get_desc(uint16 skill_id) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_skill_get_desc_pre ) { + const char* (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_desc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_desc_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_desc(skill_id); + } + if( HPMHooks.count.HP_skill_get_desc_post ) { + const char* (*postHookFunc) (const char* retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_desc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_desc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +void HP_skill_chk(uint16 *skill_id) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_chk_pre ) { + void (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_chk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_chk_pre[hIndex].func; + preHookFunc(skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.chk(skill_id); + } + if( HPMHooks.count.HP_skill_chk_post ) { + void (*postHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_chk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_chk_post[hIndex].func; + postHookFunc(skill_id); + } + } + return; +} +int HP_skill_get_casttype(uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_casttype_pre ) { + int (*preHookFunc) (uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_casttype_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_casttype(skill_id); + } + if( HPMHooks.count.HP_skill_get_casttype_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_casttype_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_skill_get_casttype2(uint16 index) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_casttype2_pre ) { + int (*preHookFunc) (uint16 *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_casttype2_pre[hIndex].func; + retVal___ = preHookFunc(&index); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_casttype2(index); + } + if( HPMHooks.count.HP_skill_get_casttype2_post ) { + int (*postHookFunc) (int retVal___, uint16 *index); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_casttype2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &index); + } + } + return retVal___; +} +int HP_skill_name2id(const char *name) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_name2id_pre ) { + int (*preHookFunc) (const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_name2id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_name2id_pre[hIndex].func; + retVal___ = preHookFunc(name); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.name2id(name); + } + if( HPMHooks.count.HP_skill_name2id_post ) { + int (*postHookFunc) (int retVal___, const char *name); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_name2id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_name2id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, name); + } + } + return retVal___; +} +int HP_skill_isammotype(struct map_session_data *sd, int skill) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_isammotype_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *skill); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_isammotype_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_isammotype_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.isammotype(sd, skill); + } + if( HPMHooks.count.HP_skill_isammotype_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *skill); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_isammotype_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_isammotype_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill); + } + } + return retVal___; +} +int HP_skill_castend_id(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_castend_id_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_castend_id_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.castend_id(tid, tick, id, data); + } + if( HPMHooks.count.HP_skill_castend_id_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_castend_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_skill_castend_pos(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_castend_pos_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_pos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_castend_pos_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.castend_pos(tid, tick, id, data); + } + if( HPMHooks.count.HP_skill_castend_pos_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_pos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_castend_pos_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_skill_castend_map(struct map_session_data *sd, uint16 skill_id, const char *mapname) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_castend_map_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, const char *mapname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_map_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_castend_map_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id, mapname); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.castend_map(sd, skill_id, mapname); + } + if( HPMHooks.count.HP_skill_castend_map_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id, const char *mapname); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_map_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_castend_map_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id, mapname); + } + } + return retVal___; +} +int HP_skill_cleartimerskill(struct block_list *src) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_cleartimerskill_pre ) { + int (*preHookFunc) (struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cleartimerskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_cleartimerskill_pre[hIndex].func; + retVal___ = preHookFunc(src); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.cleartimerskill(src); + } + if( HPMHooks.count.HP_skill_cleartimerskill_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cleartimerskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_cleartimerskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src); + } + } + return retVal___; +} +int HP_skill_addtimerskill(struct block_list *src, unsigned int tick, int target, int x, int y, uint16 skill_id, uint16 skill_lv, int type, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_addtimerskill_pre ) { + int (*preHookFunc) (struct block_list *src, unsigned int *tick, int *target, int *x, int *y, uint16 *skill_id, uint16 *skill_lv, int *type, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_addtimerskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_addtimerskill_pre[hIndex].func; + retVal___ = preHookFunc(src, &tick, &target, &x, &y, &skill_id, &skill_lv, &type, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.addtimerskill(src, tick, target, x, y, skill_id, skill_lv, type, flag); + } + if( HPMHooks.count.HP_skill_addtimerskill_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, unsigned int *tick, int *target, int *x, int *y, uint16 *skill_id, uint16 *skill_lv, int *type, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_addtimerskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_addtimerskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &tick, &target, &x, &y, &skill_id, &skill_lv, &type, &flag); + } + } + return retVal___; +} +int HP_skill_additional_effect(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int attack_type, int dmg_lv, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_additional_effect_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int *attack_type, int *dmg_lv, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_additional_effect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_additional_effect_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &skill_id, &skill_lv, &attack_type, &dmg_lv, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.additional_effect(src, bl, skill_id, skill_lv, attack_type, dmg_lv, tick); + } + if( HPMHooks.count.HP_skill_additional_effect_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int *attack_type, int *dmg_lv, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_additional_effect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_additional_effect_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &skill_id, &skill_lv, &attack_type, &dmg_lv, &tick); + } + } + return retVal___; +} +int HP_skill_counter_additional_effect(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int attack_type, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_counter_additional_effect_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int *attack_type, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_counter_additional_effect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_counter_additional_effect_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &skill_id, &skill_lv, &attack_type, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.counter_additional_effect(src, bl, skill_id, skill_lv, attack_type, tick); + } + if( HPMHooks.count.HP_skill_counter_additional_effect_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, int *attack_type, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_counter_additional_effect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_counter_additional_effect_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &skill_id, &skill_lv, &attack_type, &tick); + } + } + return retVal___; +} +int HP_skill_blown(struct block_list *src, struct block_list *target, int count, int8 dir, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_blown_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *target, int *count, int8 *dir, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_blown_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &count, &dir, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.blown(src, target, count, dir, flag); + } + if( HPMHooks.count.HP_skill_blown_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, int *count, int8 *dir, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_blown_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &count, &dir, &flag); + } + } + return retVal___; +} +int HP_skill_break_equip(struct block_list *bl, unsigned short where, int rate, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_break_equip_pre ) { + int (*preHookFunc) (struct block_list *bl, unsigned short *where, int *rate, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_break_equip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_break_equip_pre[hIndex].func; + retVal___ = preHookFunc(bl, &where, &rate, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.break_equip(bl, where, rate, flag); + } + if( HPMHooks.count.HP_skill_break_equip_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned short *where, int *rate, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_break_equip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_break_equip_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &where, &rate, &flag); + } + } + return retVal___; +} +int HP_skill_strip_equip(struct block_list *bl, unsigned short where, int rate, int lv, int time) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_strip_equip_pre ) { + int (*preHookFunc) (struct block_list *bl, unsigned short *where, int *rate, int *lv, int *time); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_strip_equip_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_strip_equip_pre[hIndex].func; + retVal___ = preHookFunc(bl, &where, &rate, &lv, &time); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.strip_equip(bl, where, rate, lv, time); + } + if( HPMHooks.count.HP_skill_strip_equip_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned short *where, int *rate, int *lv, int *time); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_strip_equip_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_strip_equip_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &where, &rate, &lv, &time); + } + } + return retVal___; +} +struct skill_unit_group* HP_skill_id2group(int group_id) { + int hIndex = 0; + struct skill_unit_group* retVal___ = NULL; + if( HPMHooks.count.HP_skill_id2group_pre ) { + struct skill_unit_group* (*preHookFunc) (int *group_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_id2group_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_id2group_pre[hIndex].func; + retVal___ = preHookFunc(&group_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.id2group(group_id); + } + if( HPMHooks.count.HP_skill_id2group_post ) { + struct skill_unit_group* (*postHookFunc) (struct skill_unit_group* retVal___, int *group_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_id2group_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_id2group_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &group_id); + } + } + return retVal___; +} +struct skill_unit_group* HP_skill_unitsetting(struct block_list *src, uint16 skill_id, uint16 skill_lv, short x, short y, int flag) { + int hIndex = 0; + struct skill_unit_group* retVal___ = NULL; + if( HPMHooks.count.HP_skill_unitsetting_pre ) { + struct skill_unit_group* (*preHookFunc) (struct block_list *src, uint16 *skill_id, uint16 *skill_lv, short *x, short *y, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unitsetting_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unitsetting_pre[hIndex].func; + retVal___ = preHookFunc(src, &skill_id, &skill_lv, &x, &y, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.unitsetting(src, skill_id, skill_lv, x, y, flag); + } + if( HPMHooks.count.HP_skill_unitsetting_post ) { + struct skill_unit_group* (*postHookFunc) (struct skill_unit_group* retVal___, struct block_list *src, uint16 *skill_id, uint16 *skill_lv, short *x, short *y, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unitsetting_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unitsetting_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &skill_id, &skill_lv, &x, &y, &flag); + } + } + return retVal___; +} +struct skill_unit* HP_skill_initunit(struct skill_unit_group *group, int idx, int x, int y, int val1, int val2) { + int hIndex = 0; + struct skill_unit* retVal___ = NULL; + if( HPMHooks.count.HP_skill_initunit_pre ) { + struct skill_unit* (*preHookFunc) (struct skill_unit_group *group, int *idx, int *x, int *y, int *val1, int *val2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_initunit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_initunit_pre[hIndex].func; + retVal___ = preHookFunc(group, &idx, &x, &y, &val1, &val2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.initunit(group, idx, x, y, val1, val2); + } + if( HPMHooks.count.HP_skill_initunit_post ) { + struct skill_unit* (*postHookFunc) (struct skill_unit* retVal___, struct skill_unit_group *group, int *idx, int *x, int *y, int *val1, int *val2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_initunit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_initunit_post[hIndex].func; + retVal___ = postHookFunc(retVal___, group, &idx, &x, &y, &val1, &val2); + } + } + return retVal___; +} +int HP_skill_delunit(struct skill_unit *su) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_delunit_pre ) { + int (*preHookFunc) (struct skill_unit *su); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_delunit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_delunit_pre[hIndex].func; + retVal___ = preHookFunc(su); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.delunit(su); + } + if( HPMHooks.count.HP_skill_delunit_post ) { + int (*postHookFunc) (int retVal___, struct skill_unit *su); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_delunit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_delunit_post[hIndex].func; + retVal___ = postHookFunc(retVal___, su); + } + } + return retVal___; +} +struct skill_unit_group* HP_skill_init_unitgroup(struct block_list *src, int count, uint16 skill_id, uint16 skill_lv, int unit_id, int limit, int interval) { + int hIndex = 0; + struct skill_unit_group* retVal___ = NULL; + if( HPMHooks.count.HP_skill_init_unitgroup_pre ) { + struct skill_unit_group* (*preHookFunc) (struct block_list *src, int *count, uint16 *skill_id, uint16 *skill_lv, int *unit_id, int *limit, int *interval); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_init_unitgroup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_init_unitgroup_pre[hIndex].func; + retVal___ = preHookFunc(src, &count, &skill_id, &skill_lv, &unit_id, &limit, &interval); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.init_unitgroup(src, count, skill_id, skill_lv, unit_id, limit, interval); + } + if( HPMHooks.count.HP_skill_init_unitgroup_post ) { + struct skill_unit_group* (*postHookFunc) (struct skill_unit_group* retVal___, struct block_list *src, int *count, uint16 *skill_id, uint16 *skill_lv, int *unit_id, int *limit, int *interval); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_init_unitgroup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_init_unitgroup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &count, &skill_id, &skill_lv, &unit_id, &limit, &interval); + } + } + return retVal___; +} +int HP_skill_del_unitgroup(struct skill_unit_group *group, const char *file, int line, const char *func) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_del_unitgroup_pre ) { + int (*preHookFunc) (struct skill_unit_group *group, const char *file, int *line, const char *func); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_del_unitgroup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_del_unitgroup_pre[hIndex].func; + retVal___ = preHookFunc(group, file, &line, func); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.del_unitgroup(group, file, line, func); + } + if( HPMHooks.count.HP_skill_del_unitgroup_post ) { + int (*postHookFunc) (int retVal___, struct skill_unit_group *group, const char *file, int *line, const char *func); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_del_unitgroup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_del_unitgroup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, group, file, &line, func); + } + } + return retVal___; +} +int HP_skill_clear_unitgroup(struct block_list *src) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_clear_unitgroup_pre ) { + int (*preHookFunc) (struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_clear_unitgroup_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_clear_unitgroup_pre[hIndex].func; + retVal___ = preHookFunc(src); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.clear_unitgroup(src); + } + if( HPMHooks.count.HP_skill_clear_unitgroup_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_clear_unitgroup_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_clear_unitgroup_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src); + } + } + return retVal___; +} +int HP_skill_clear_group(struct block_list *bl, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_clear_group_pre ) { + int (*preHookFunc) (struct block_list *bl, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_clear_group_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_clear_group_pre[hIndex].func; + retVal___ = preHookFunc(bl, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.clear_group(bl, flag); + } + if( HPMHooks.count.HP_skill_clear_group_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_clear_group_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_clear_group_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &flag); + } + } + return retVal___; +} +int HP_skill_unit_onplace(struct skill_unit *src, struct block_list *bl, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_onplace_pre ) { + int (*preHookFunc) (struct skill_unit *src, struct block_list *bl, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_onplace_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unit_onplace_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.unit_onplace(src, bl, tick); + } + if( HPMHooks.count.HP_skill_unit_onplace_post ) { + int (*postHookFunc) (int retVal___, struct skill_unit *src, struct block_list *bl, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_onplace_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unit_onplace_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &tick); + } + } + return retVal___; +} +int HP_skill_unit_ondamaged(struct skill_unit *src, struct block_list *bl, int64 damage, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_ondamaged_pre ) { + int (*preHookFunc) (struct skill_unit *src, struct block_list *bl, int64 *damage, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_ondamaged_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unit_ondamaged_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &damage, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.unit_ondamaged(src, bl, damage, tick); + } + if( HPMHooks.count.HP_skill_unit_ondamaged_post ) { + int (*postHookFunc) (int retVal___, struct skill_unit *src, struct block_list *bl, int64 *damage, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_ondamaged_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unit_ondamaged_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &damage, &tick); + } + } + return retVal___; +} +int HP_skill_cast_fix(struct block_list *bl, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_cast_fix_pre ) { + int (*preHookFunc) (struct block_list *bl, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cast_fix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_cast_fix_pre[hIndex].func; + retVal___ = preHookFunc(bl, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.cast_fix(bl, skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_cast_fix_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cast_fix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_cast_fix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_cast_fix_sc(struct block_list *bl, int time) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_cast_fix_sc_pre ) { + int (*preHookFunc) (struct block_list *bl, int *time); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cast_fix_sc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_cast_fix_sc_pre[hIndex].func; + retVal___ = preHookFunc(bl, &time); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.cast_fix_sc(bl, time); + } + if( HPMHooks.count.HP_skill_cast_fix_sc_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *time); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cast_fix_sc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_cast_fix_sc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &time); + } + } + return retVal___; +} +int HP_skill_vf_cast_fix(struct block_list *bl, double time, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_vf_cast_fix_pre ) { + int (*preHookFunc) (struct block_list *bl, double *time, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_vf_cast_fix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_vf_cast_fix_pre[hIndex].func; + retVal___ = preHookFunc(bl, &time, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.vf_cast_fix(bl, time, skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_vf_cast_fix_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, double *time, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_vf_cast_fix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_vf_cast_fix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &time, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_delay_fix(struct block_list *bl, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_delay_fix_pre ) { + int (*preHookFunc) (struct block_list *bl, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_delay_fix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_delay_fix_pre[hIndex].func; + retVal___ = preHookFunc(bl, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.delay_fix(bl, skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_delay_fix_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_delay_fix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_delay_fix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_check_condition_castbegin(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_check_condition_castbegin_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_castbegin_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_check_condition_castbegin_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.check_condition_castbegin(sd, skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_check_condition_castbegin_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_castbegin_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_check_condition_castbegin_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_check_condition_castend(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_check_condition_castend_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_castend_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_check_condition_castend_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.check_condition_castend(sd, skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_check_condition_castend_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_castend_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_check_condition_castend_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_consume_requirement(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, short type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_consume_requirement_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv, short *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_consume_requirement_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_consume_requirement_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id, &skill_lv, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.consume_requirement(sd, skill_id, skill_lv, type); + } + if( HPMHooks.count.HP_skill_consume_requirement_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv, short *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_consume_requirement_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_consume_requirement_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id, &skill_lv, &type); + } + } + return retVal___; +} +struct skill_condition HP_skill_get_requirement(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + struct skill_condition retVal___; + memset(&retVal___, '\0', sizeof(struct skill_condition)); + if( HPMHooks.count.HP_skill_get_requirement_pre ) { + struct skill_condition (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_requirement_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_requirement_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_requirement(sd, skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_requirement_post ) { + struct skill_condition (*postHookFunc) (struct skill_condition retVal___, struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_requirement_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_requirement_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_check_pc_partner(struct map_session_data *sd, uint16 skill_id, uint16 *skill_lv, int range, int cast_flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_check_pc_partner_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv, int *range, int *cast_flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_pc_partner_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_check_pc_partner_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id, skill_lv, &range, &cast_flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.check_pc_partner(sd, skill_id, skill_lv, range, cast_flag); + } + if( HPMHooks.count.HP_skill_check_pc_partner_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv, int *range, int *cast_flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_pc_partner_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_check_pc_partner_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id, skill_lv, &range, &cast_flag); + } + } + return retVal___; +} +int HP_skill_unit_move(struct block_list *bl, unsigned int tick, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_move_pre ) { + int (*preHookFunc) (struct block_list *bl, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_move_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unit_move_pre[hIndex].func; + retVal___ = preHookFunc(bl, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.unit_move(bl, tick, flag); + } + if( HPMHooks.count.HP_skill_unit_move_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_move_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unit_move_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &tick, &flag); + } + } + return retVal___; +} +int HP_skill_unit_onleft(uint16 skill_id, struct block_list *bl, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_onleft_pre ) { + int (*preHookFunc) (uint16 *skill_id, struct block_list *bl, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_onleft_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unit_onleft_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, bl, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.unit_onleft(skill_id, bl, tick); + } + if( HPMHooks.count.HP_skill_unit_onleft_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, struct block_list *bl, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_onleft_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unit_onleft_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, bl, &tick); + } + } + return retVal___; +} +int HP_skill_unit_onout(struct skill_unit *src, struct block_list *bl, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_onout_pre ) { + int (*preHookFunc) (struct skill_unit *src, struct block_list *bl, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_onout_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unit_onout_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.unit_onout(src, bl, tick); + } + if( HPMHooks.count.HP_skill_unit_onout_post ) { + int (*postHookFunc) (int retVal___, struct skill_unit *src, struct block_list *bl, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_onout_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unit_onout_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &tick); + } + } + return retVal___; +} +int HP_skill_unit_move_unit_group(struct skill_unit_group *group, int16 m, int16 dx, int16 dy) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_move_unit_group_pre ) { + int (*preHookFunc) (struct skill_unit_group *group, int16 *m, int16 *dx, int16 *dy); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_move_unit_group_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unit_move_unit_group_pre[hIndex].func; + retVal___ = preHookFunc(group, &m, &dx, &dy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.unit_move_unit_group(group, m, dx, dy); + } + if( HPMHooks.count.HP_skill_unit_move_unit_group_post ) { + int (*postHookFunc) (int retVal___, struct skill_unit_group *group, int16 *m, int16 *dx, int16 *dy); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_move_unit_group_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unit_move_unit_group_post[hIndex].func; + retVal___ = postHookFunc(retVal___, group, &m, &dx, &dy); + } + } + return retVal___; +} +int HP_skill_sit(struct map_session_data *sd, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_sit_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_sit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_sit_pre[hIndex].func; + retVal___ = preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.sit(sd, type); + } + if( HPMHooks.count.HP_skill_sit_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_sit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_sit_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &type); + } + } + return retVal___; +} +void HP_skill_brandishspear(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_brandishspear_pre ) { + void (*preHookFunc) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_brandishspear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_brandishspear_pre[hIndex].func; + preHookFunc(src, bl, &skill_id, &skill_lv, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.brandishspear(src, bl, skill_id, skill_lv, tick, flag); + } + if( HPMHooks.count.HP_skill_brandishspear_post ) { + void (*postHookFunc) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_brandishspear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_brandishspear_post[hIndex].func; + postHookFunc(src, bl, &skill_id, &skill_lv, &tick, &flag); + } + } + return; +} +void HP_skill_repairweapon(struct map_session_data *sd, int idx) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_repairweapon_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_repairweapon_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_repairweapon_pre[hIndex].func; + preHookFunc(sd, &idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.repairweapon(sd, idx); + } + if( HPMHooks.count.HP_skill_repairweapon_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_repairweapon_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_repairweapon_post[hIndex].func; + postHookFunc(sd, &idx); + } + } + return; +} +void HP_skill_identify(struct map_session_data *sd, int idx) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_identify_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_identify_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_identify_pre[hIndex].func; + preHookFunc(sd, &idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.identify(sd, idx); + } + if( HPMHooks.count.HP_skill_identify_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_identify_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_identify_post[hIndex].func; + postHookFunc(sd, &idx); + } + } + return; +} +void HP_skill_weaponrefine(struct map_session_data *sd, int idx) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_weaponrefine_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_weaponrefine_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_weaponrefine_pre[hIndex].func; + preHookFunc(sd, &idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.weaponrefine(sd, idx); + } + if( HPMHooks.count.HP_skill_weaponrefine_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_weaponrefine_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_weaponrefine_post[hIndex].func; + postHookFunc(sd, &idx); + } + } + return; +} +int HP_skill_autospell(struct map_session_data *md, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_autospell_pre ) { + int (*preHookFunc) (struct map_session_data *md, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_autospell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_autospell_pre[hIndex].func; + retVal___ = preHookFunc(md, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.autospell(md, skill_id); + } + if( HPMHooks.count.HP_skill_autospell_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *md, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_autospell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_autospell_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &skill_id); + } + } + return retVal___; +} +int HP_skill_calc_heal(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, bool heal) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_calc_heal_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, bool *heal); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_calc_heal_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_calc_heal_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &skill_id, &skill_lv, &heal); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.calc_heal(src, target, skill_id, skill_lv, heal); + } + if( HPMHooks.count.HP_skill_calc_heal_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, bool *heal); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_calc_heal_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_calc_heal_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &skill_id, &skill_lv, &heal); + } + } + return retVal___; +} +bool HP_skill_check_cloaking(struct block_list *bl, struct status_change_entry *sce) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_check_cloaking_pre ) { + bool (*preHookFunc) (struct block_list *bl, struct status_change_entry *sce); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_cloaking_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_check_cloaking_pre[hIndex].func; + retVal___ = preHookFunc(bl, sce); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.check_cloaking(bl, sce); + } + if( HPMHooks.count.HP_skill_check_cloaking_post ) { + bool (*postHookFunc) (bool retVal___, struct block_list *bl, struct status_change_entry *sce); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_cloaking_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_check_cloaking_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sce); + } + } + return retVal___; +} +int HP_skill_enchant_elemental_end(struct block_list *bl, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_enchant_elemental_end_pre ) { + int (*preHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_enchant_elemental_end_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_enchant_elemental_end_pre[hIndex].func; + retVal___ = preHookFunc(bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.enchant_elemental_end(bl, type); + } + if( HPMHooks.count.HP_skill_enchant_elemental_end_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_enchant_elemental_end_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_enchant_elemental_end_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &type); + } + } + return retVal___; +} +int HP_skill_not_ok(uint16 skill_id, struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_not_ok_pre ) { + int (*preHookFunc) (uint16 *skill_id, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_not_ok_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_not_ok_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.not_ok(skill_id, sd); + } + if( HPMHooks.count.HP_skill_not_ok_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_not_ok_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_not_ok_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, sd); + } + } + return retVal___; +} +int HP_skill_not_ok_hom(uint16 skill_id, struct homun_data *hd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_not_ok_hom_pre ) { + int (*preHookFunc) (uint16 *skill_id, struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_not_ok_hom_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_not_ok_hom_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.not_ok_hom(skill_id, hd); + } + if( HPMHooks.count.HP_skill_not_ok_hom_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_not_ok_hom_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_not_ok_hom_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, hd); + } + } + return retVal___; +} +int HP_skill_not_ok_mercenary(uint16 skill_id, struct mercenary_data *md) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_not_ok_mercenary_pre ) { + int (*preHookFunc) (uint16 *skill_id, struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_not_ok_mercenary_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_not_ok_mercenary_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, md); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.not_ok_mercenary(skill_id, md); + } + if( HPMHooks.count.HP_skill_not_ok_mercenary_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, struct mercenary_data *md); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_not_ok_mercenary_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_not_ok_mercenary_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, md); + } + } + return retVal___; +} +int HP_skill_chastle_mob_changetarget(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_chastle_mob_changetarget_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_chastle_mob_changetarget_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_chastle_mob_changetarget_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.chastle_mob_changetarget(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_chastle_mob_changetarget_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_chastle_mob_changetarget_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_chastle_mob_changetarget_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_can_produce_mix(struct map_session_data *sd, int nameid, int trigger, int qty) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_can_produce_mix_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *nameid, int *trigger, int *qty); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_can_produce_mix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_can_produce_mix_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid, &trigger, &qty); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.can_produce_mix(sd, nameid, trigger, qty); + } + if( HPMHooks.count.HP_skill_can_produce_mix_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *nameid, int *trigger, int *qty); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_can_produce_mix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_can_produce_mix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid, &trigger, &qty); + } + } + return retVal___; +} +int HP_skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid, int slot1, int slot2, int slot3, int qty) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_produce_mix_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, int *nameid, int *slot1, int *slot2, int *slot3, int *qty); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_produce_mix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_produce_mix_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id, &nameid, &slot1, &slot2, &slot3, &qty); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.produce_mix(sd, skill_id, nameid, slot1, slot2, slot3, qty); + } + if( HPMHooks.count.HP_skill_produce_mix_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id, int *nameid, int *slot1, int *slot2, int *slot3, int *qty); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_produce_mix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_produce_mix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id, &nameid, &slot1, &slot2, &slot3, &qty); + } + } + return retVal___; +} +int HP_skill_arrow_create(struct map_session_data *sd, int nameid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_arrow_create_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_arrow_create_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_arrow_create_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.arrow_create(sd, nameid); + } + if( HPMHooks.count.HP_skill_arrow_create_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_arrow_create_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_arrow_create_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid); + } + } + return retVal___; +} +int HP_skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_castend_nodamage_id_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_nodamage_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_castend_nodamage_id_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &skill_id, &skill_lv, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.castend_nodamage_id(src, bl, skill_id, skill_lv, tick, flag); + } + if( HPMHooks.count.HP_skill_castend_nodamage_id_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_nodamage_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_castend_nodamage_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &skill_id, &skill_lv, &tick, &flag); + } + } + return retVal___; +} +int HP_skill_castend_damage_id(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_castend_damage_id_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_damage_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_castend_damage_id_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &skill_id, &skill_lv, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.castend_damage_id(src, bl, skill_id, skill_lv, tick, flag); + } + if( HPMHooks.count.HP_skill_castend_damage_id_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_damage_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_castend_damage_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &skill_id, &skill_lv, &tick, &flag); + } + } + return retVal___; +} +int HP_skill_castend_pos2(struct block_list *src, int x, int y, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_castend_pos2_pre ) { + int (*preHookFunc) (struct block_list *src, int *x, int *y, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_pos2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_castend_pos2_pre[hIndex].func; + retVal___ = preHookFunc(src, &x, &y, &skill_id, &skill_lv, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.castend_pos2(src, x, y, skill_id, skill_lv, tick, flag); + } + if( HPMHooks.count.HP_skill_castend_pos2_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, int *x, int *y, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_pos2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_castend_pos2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &x, &y, &skill_id, &skill_lv, &tick, &flag); + } + } + return retVal___; +} +int HP_skill_blockpc_start(struct map_session_data *sd, uint16 skill_id, int tick, bool load) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_blockpc_start_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, int *tick, bool *load); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockpc_start_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_blockpc_start_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id, &tick, &load); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.blockpc_start(sd, skill_id, tick, load); + } + if( HPMHooks.count.HP_skill_blockpc_start_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id, int *tick, bool *load); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockpc_start_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_blockpc_start_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id, &tick, &load); + } + } + return retVal___; +} +int HP_skill_blockhomun_start(struct homun_data *hd, uint16 skill_id, int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_blockhomun_start_pre ) { + int (*preHookFunc) (struct homun_data *hd, uint16 *skill_id, int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockhomun_start_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_blockhomun_start_pre[hIndex].func; + retVal___ = preHookFunc(hd, &skill_id, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.blockhomun_start(hd, skill_id, tick); + } + if( HPMHooks.count.HP_skill_blockhomun_start_post ) { + int (*postHookFunc) (int retVal___, struct homun_data *hd, uint16 *skill_id, int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockhomun_start_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_blockhomun_start_post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd, &skill_id, &tick); + } + } + return retVal___; +} +int HP_skill_blockmerc_start(struct mercenary_data *md, uint16 skill_id, int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_blockmerc_start_pre ) { + int (*preHookFunc) (struct mercenary_data *md, uint16 *skill_id, int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockmerc_start_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_blockmerc_start_pre[hIndex].func; + retVal___ = preHookFunc(md, &skill_id, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.blockmerc_start(md, skill_id, tick); + } + if( HPMHooks.count.HP_skill_blockmerc_start_post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md, uint16 *skill_id, int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockmerc_start_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_blockmerc_start_post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &skill_id, &tick); + } + } + return retVal___; +} +int HP_skill_attack(int attack_type, struct block_list *src, struct block_list *dsrc, struct block_list *bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_attack_pre ) { + int (*preHookFunc) (int *attack_type, struct block_list *src, struct block_list *dsrc, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_attack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_attack_pre[hIndex].func; + retVal___ = preHookFunc(&attack_type, src, dsrc, bl, &skill_id, &skill_lv, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.attack(attack_type, src, dsrc, bl, skill_id, skill_lv, tick, flag); + } + if( HPMHooks.count.HP_skill_attack_post ) { + int (*postHookFunc) (int retVal___, int *attack_type, struct block_list *src, struct block_list *dsrc, struct block_list *bl, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_attack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_attack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &attack_type, src, dsrc, bl, &skill_id, &skill_lv, &tick, &flag); + } + } + return retVal___; +} +int HP_skill_attack_area(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_attack_area_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_attack_area_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_attack_area_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.attack_area(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_attack_area_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_attack_area_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_attack_area_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_area_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_area_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_area_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_area_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.area_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_area_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_area_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_area_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_area_sub_count(struct block_list *src, struct block_list *target, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_area_sub_count_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_area_sub_count_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_area_sub_count_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &skill_id, &skill_lv, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.area_sub_count(src, target, skill_id, skill_lv, tick, flag); + } + if( HPMHooks.count.HP_skill_area_sub_count_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, uint16 *skill_id, uint16 *skill_lv, unsigned int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_area_sub_count_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_area_sub_count_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &skill_id, &skill_lv, &tick, &flag); + } + } + return retVal___; +} +int HP_skill_check_unit_range(struct block_list *bl, int x, int y, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_check_unit_range_pre ) { + int (*preHookFunc) (struct block_list *bl, int *x, int *y, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_unit_range_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_check_unit_range_pre[hIndex].func; + retVal___ = preHookFunc(bl, &x, &y, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.check_unit_range(bl, x, y, skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_check_unit_range_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *x, int *y, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_unit_range_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_check_unit_range_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &x, &y, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_check_unit_range_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_check_unit_range_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_unit_range_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_check_unit_range_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.check_unit_range_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_check_unit_range_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_unit_range_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_check_unit_range_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_check_unit_range2(struct block_list *bl, int x, int y, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_check_unit_range2_pre ) { + int (*preHookFunc) (struct block_list *bl, int *x, int *y, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_unit_range2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_check_unit_range2_pre[hIndex].func; + retVal___ = preHookFunc(bl, &x, &y, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.check_unit_range2(bl, x, y, skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_check_unit_range2_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *x, int *y, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_unit_range2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_check_unit_range2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &x, &y, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_check_unit_range2_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_check_unit_range2_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_unit_range2_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_check_unit_range2_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.check_unit_range2_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_check_unit_range2_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_unit_range2_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_check_unit_range2_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_skill_toggle_magicpower(struct block_list *bl, uint16 skill_id) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_toggle_magicpower_pre ) { + void (*preHookFunc) (struct block_list *bl, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_toggle_magicpower_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_toggle_magicpower_pre[hIndex].func; + preHookFunc(bl, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.toggle_magicpower(bl, skill_id); + } + if( HPMHooks.count.HP_skill_toggle_magicpower_post ) { + void (*postHookFunc) (struct block_list *bl, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_toggle_magicpower_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_toggle_magicpower_post[hIndex].func; + postHookFunc(bl, &skill_id); + } + } + return; +} +int HP_skill_magic_reflect(struct block_list *src, struct block_list *bl, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_magic_reflect_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_magic_reflect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_magic_reflect_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.magic_reflect(src, bl, type); + } + if( HPMHooks.count.HP_skill_magic_reflect_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_magic_reflect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_magic_reflect_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &type); + } + } + return retVal___; +} +int HP_skill_onskillusage(struct map_session_data *sd, struct block_list *bl, uint16 skill_id, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_onskillusage_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct block_list *bl, uint16 *skill_id, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_onskillusage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_onskillusage_pre[hIndex].func; + retVal___ = preHookFunc(sd, bl, &skill_id, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.onskillusage(sd, bl, skill_id, tick); + } + if( HPMHooks.count.HP_skill_onskillusage_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct block_list *bl, uint16 *skill_id, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_onskillusage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_onskillusage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, bl, &skill_id, &tick); + } + } + return retVal___; +} +int HP_skill_cell_overlap(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_cell_overlap_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cell_overlap_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_cell_overlap_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.cell_overlap(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_cell_overlap_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cell_overlap_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_cell_overlap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_timerskill(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_timerskill_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_timerskill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_timerskill_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.timerskill(tid, tick, id, data); + } + if( HPMHooks.count.HP_skill_timerskill_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_timerskill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_timerskill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_skill_trap_splash(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_trap_splash_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_trap_splash_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_trap_splash_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.trap_splash(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_trap_splash_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_trap_splash_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_trap_splash_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_check_condition_mercenary(struct block_list *bl, int skill_id, int lv, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_check_condition_mercenary_pre ) { + int (*preHookFunc) (struct block_list *bl, int *skill_id, int *lv, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_mercenary_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_check_condition_mercenary_pre[hIndex].func; + retVal___ = preHookFunc(bl, &skill_id, &lv, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.check_condition_mercenary(bl, skill_id, lv, type); + } + if( HPMHooks.count.HP_skill_check_condition_mercenary_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *skill_id, int *lv, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_mercenary_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_check_condition_mercenary_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &skill_id, &lv, &type); + } + } + return retVal___; +} +struct skill_unit_group* HP_skill_locate_element_field(struct block_list *bl) { + int hIndex = 0; + struct skill_unit_group* retVal___ = NULL; + if( HPMHooks.count.HP_skill_locate_element_field_pre ) { + struct skill_unit_group* (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_locate_element_field_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_locate_element_field_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.locate_element_field(bl); + } + if( HPMHooks.count.HP_skill_locate_element_field_post ) { + struct skill_unit_group* (*postHookFunc) (struct skill_unit_group* retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_locate_element_field_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_locate_element_field_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_skill_graffitiremover(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_graffitiremover_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_graffitiremover_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_graffitiremover_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.graffitiremover(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_graffitiremover_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_graffitiremover_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_graffitiremover_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_activate_reverberation(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_activate_reverberation_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_activate_reverberation_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_activate_reverberation_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.activate_reverberation(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_activate_reverberation_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_activate_reverberation_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_activate_reverberation_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_dance_overlap_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_dance_overlap_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_dance_overlap_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_dance_overlap_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.dance_overlap_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_dance_overlap_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_dance_overlap_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_dance_overlap_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_dance_overlap(struct skill_unit *su, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_dance_overlap_pre ) { + int (*preHookFunc) (struct skill_unit *su, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_dance_overlap_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_dance_overlap_pre[hIndex].func; + retVal___ = preHookFunc(su, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.dance_overlap(su, flag); + } + if( HPMHooks.count.HP_skill_dance_overlap_post ) { + int (*postHookFunc) (int retVal___, struct skill_unit *su, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_dance_overlap_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_dance_overlap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, su, &flag); + } + } + return retVal___; +} +struct s_skill_unit_layout* HP_skill_get_unit_layout(uint16 skill_id, uint16 skill_lv, struct block_list *src, int x, int y) { + int hIndex = 0; + struct s_skill_unit_layout* retVal___ = NULL; + if( HPMHooks.count.HP_skill_get_unit_layout_pre ) { + struct s_skill_unit_layout* (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv, struct block_list *src, int *x, int *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_layout_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_unit_layout_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv, src, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_unit_layout(skill_id, skill_lv, src, x, y); + } + if( HPMHooks.count.HP_skill_get_unit_layout_post ) { + struct s_skill_unit_layout* (*postHookFunc) (struct s_skill_unit_layout* retVal___, uint16 *skill_id, uint16 *skill_lv, struct block_list *src, int *x, int *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_layout_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_unit_layout_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv, src, &x, &y); + } + } + return retVal___; +} +int HP_skill_frostjoke_scream(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_frostjoke_scream_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_frostjoke_scream_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_frostjoke_scream_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.frostjoke_scream(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_frostjoke_scream_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_frostjoke_scream_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_frostjoke_scream_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_greed(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_greed_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_greed_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_greed_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.greed(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_greed_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_greed_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_greed_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_destroy_trap(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_destroy_trap_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_destroy_trap_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_destroy_trap_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.destroy_trap(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_destroy_trap_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_destroy_trap_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_destroy_trap_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_icewall_block(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_icewall_block_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_icewall_block_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_icewall_block_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.icewall_block(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_icewall_block_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_icewall_block_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_icewall_block_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +struct skill_unit_group_tickset* HP_skill_unitgrouptickset_search(struct block_list *bl, struct skill_unit_group *group, int tick) { + int hIndex = 0; + struct skill_unit_group_tickset* retVal___ = NULL; + if( HPMHooks.count.HP_skill_unitgrouptickset_search_pre ) { + struct skill_unit_group_tickset* (*preHookFunc) (struct block_list *bl, struct skill_unit_group *group, int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unitgrouptickset_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unitgrouptickset_search_pre[hIndex].func; + retVal___ = preHookFunc(bl, group, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.unitgrouptickset_search(bl, group, tick); + } + if( HPMHooks.count.HP_skill_unitgrouptickset_search_post ) { + struct skill_unit_group_tickset* (*postHookFunc) (struct skill_unit_group_tickset* retVal___, struct block_list *bl, struct skill_unit_group *group, int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unitgrouptickset_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unitgrouptickset_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, group, &tick); + } + } + return retVal___; +} +bool HP_skill_dance_switch(struct skill_unit *su, int flag) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_dance_switch_pre ) { + bool (*preHookFunc) (struct skill_unit *su, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_dance_switch_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_dance_switch_pre[hIndex].func; + retVal___ = preHookFunc(su, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.dance_switch(su, flag); + } + if( HPMHooks.count.HP_skill_dance_switch_post ) { + bool (*postHookFunc) (bool retVal___, struct skill_unit *su, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_dance_switch_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_dance_switch_post[hIndex].func; + retVal___ = postHookFunc(retVal___, su, &flag); + } + } + return retVal___; +} +int HP_skill_check_condition_char_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_check_condition_char_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_char_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_check_condition_char_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.check_condition_char_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_check_condition_char_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_char_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_check_condition_char_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_check_condition_mob_master_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_check_condition_mob_master_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_mob_master_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_check_condition_mob_master_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.check_condition_mob_master_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_check_condition_mob_master_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_condition_mob_master_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_check_condition_mob_master_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_skill_brandishspear_first(struct square *tc, uint8 dir, int16 x, int16 y) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_brandishspear_first_pre ) { + void (*preHookFunc) (struct square *tc, uint8 *dir, int16 *x, int16 *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_brandishspear_first_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_brandishspear_first_pre[hIndex].func; + preHookFunc(tc, &dir, &x, &y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.brandishspear_first(tc, dir, x, y); + } + if( HPMHooks.count.HP_skill_brandishspear_first_post ) { + void (*postHookFunc) (struct square *tc, uint8 *dir, int16 *x, int16 *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_brandishspear_first_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_brandishspear_first_post[hIndex].func; + postHookFunc(tc, &dir, &x, &y); + } + } + return; +} +void HP_skill_brandishspear_dir(struct square *tc, uint8 dir, int are) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_brandishspear_dir_pre ) { + void (*preHookFunc) (struct square *tc, uint8 *dir, int *are); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_brandishspear_dir_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_brandishspear_dir_pre[hIndex].func; + preHookFunc(tc, &dir, &are); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.brandishspear_dir(tc, dir, are); + } + if( HPMHooks.count.HP_skill_brandishspear_dir_post ) { + void (*postHookFunc) (struct square *tc, uint8 *dir, int *are); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_brandishspear_dir_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_brandishspear_dir_post[hIndex].func; + postHookFunc(tc, &dir, &are); + } + } + return; +} +int HP_skill_get_fixed_cast(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_fixed_cast_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_fixed_cast_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_fixed_cast_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_fixed_cast(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_fixed_cast_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_fixed_cast_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_fixed_cast_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_skill_sit_count(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_sit_count_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_sit_count_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_sit_count_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.sit_count(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_sit_count_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_sit_count_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_sit_count_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_sit_in(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_sit_in_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_sit_in_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_sit_in_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.sit_in(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_sit_in_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_sit_in_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_sit_in_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_sit_out(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_sit_out_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_sit_out_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_sit_out_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.sit_out(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_sit_out_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_sit_out_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_sit_out_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_skill_unitsetmapcell(struct skill_unit *src, uint16 skill_id, uint16 skill_lv, cell_t cell, bool flag) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_unitsetmapcell_pre ) { + void (*preHookFunc) (struct skill_unit *src, uint16 *skill_id, uint16 *skill_lv, cell_t *cell, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unitsetmapcell_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unitsetmapcell_pre[hIndex].func; + preHookFunc(src, &skill_id, &skill_lv, &cell, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.unitsetmapcell(src, skill_id, skill_lv, cell, flag); + } + if( HPMHooks.count.HP_skill_unitsetmapcell_post ) { + void (*postHookFunc) (struct skill_unit *src, uint16 *skill_id, uint16 *skill_lv, cell_t *cell, bool *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unitsetmapcell_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unitsetmapcell_post[hIndex].func; + postHookFunc(src, &skill_id, &skill_lv, &cell, &flag); + } + } + return; +} +int HP_skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_onplace_timer_pre ) { + int (*preHookFunc) (struct skill_unit *src, struct block_list *bl, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_onplace_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unit_onplace_timer_pre[hIndex].func; + retVal___ = preHookFunc(src, bl, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.unit_onplace_timer(src, bl, tick); + } + if( HPMHooks.count.HP_skill_unit_onplace_timer_post ) { + int (*postHookFunc) (int retVal___, struct skill_unit *src, struct block_list *bl, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_onplace_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unit_onplace_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, &tick); + } + } + return retVal___; +} +int HP_skill_unit_effect(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_effect_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_effect_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_unit_effect_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.unit_effect(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_unit_effect_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_effect_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_unit_effect_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_unit_timer_sub_onplace(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_timer_sub_onplace_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_timer_sub_onplace_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_unit_timer_sub_onplace_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.unit_timer_sub_onplace(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_unit_timer_sub_onplace_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_timer_sub_onplace_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_unit_timer_sub_onplace_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_unit_move_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_move_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_move_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_unit_move_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.unit_move_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_unit_move_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_move_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_unit_move_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_blockpc_end(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_blockpc_end_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockpc_end_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_blockpc_end_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.blockpc_end(tid, tick, id, data); + } + if( HPMHooks.count.HP_skill_blockpc_end_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockpc_end_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_blockpc_end_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_skill_blockhomun_end(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_blockhomun_end_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockhomun_end_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_blockhomun_end_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.blockhomun_end(tid, tick, id, data); + } + if( HPMHooks.count.HP_skill_blockhomun_end_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockhomun_end_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_blockhomun_end_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_skill_blockmerc_end(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_blockmerc_end_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockmerc_end_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_blockmerc_end_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.blockmerc_end(tid, tick, id, data); + } + if( HPMHooks.count.HP_skill_blockmerc_end_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_blockmerc_end_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_blockmerc_end_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_skill_split_atoi(char *str, int *val) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_split_atoi_pre ) { + int (*preHookFunc) (char *str, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_split_atoi_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_split_atoi_pre[hIndex].func; + retVal___ = preHookFunc(str, val); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.split_atoi(str, val); + } + if( HPMHooks.count.HP_skill_split_atoi_post ) { + int (*postHookFunc) (int retVal___, char *str, int *val); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_split_atoi_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_split_atoi_post[hIndex].func; + retVal___ = postHookFunc(retVal___, str, val); + } + } + return retVal___; +} +int HP_skill_unit_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unit_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.unit_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_skill_unit_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unit_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_skill_unit_timer_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_unit_timer_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_timer_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_unit_timer_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.unit_timer_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_unit_timer_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_timer_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_unit_timer_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +void HP_skill_init_unit_layout(void) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_init_unit_layout_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_init_unit_layout_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_init_unit_layout_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.init_unit_layout(); + } + if( HPMHooks.count.HP_skill_init_unit_layout_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_init_unit_layout_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_init_unit_layout_post[hIndex].func; + postHookFunc(); + } + } + return; +} +bool HP_skill_parse_row_skilldb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_skilldb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_skilldb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_skilldb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_skilldb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_skilldb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_skilldb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_skilldb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_requiredb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_requiredb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_requiredb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_requiredb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_requiredb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_requiredb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_requiredb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_requiredb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_castdb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_castdb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_castdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_castdb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_castdb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_castdb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_castdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_castdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_castnodexdb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_castnodexdb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_castnodexdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_castnodexdb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_castnodexdb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_castnodexdb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_castnodexdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_castnodexdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_unitdb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_unitdb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_unitdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_unitdb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_unitdb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_unitdb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_unitdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_unitdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_producedb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_producedb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_producedb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_producedb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_producedb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_producedb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_producedb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_producedb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_createarrowdb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_createarrowdb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_createarrowdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_createarrowdb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_createarrowdb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_createarrowdb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_createarrowdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_createarrowdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_abradb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_abradb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_abradb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_abradb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_abradb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_abradb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_abradb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_abradb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_spellbookdb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_spellbookdb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_spellbookdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_spellbookdb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_spellbookdb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_spellbookdb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_spellbookdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_spellbookdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_magicmushroomdb(char *split[], int column, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_magicmushroomdb_pre ) { + bool (*preHookFunc) (char *split[], int *column, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_magicmushroomdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_magicmushroomdb_pre[hIndex].func; + retVal___ = preHookFunc(split, &column, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_magicmushroomdb(split, column, current); + } + if( HPMHooks.count.HP_skill_parse_row_magicmushroomdb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *column, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_magicmushroomdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_magicmushroomdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &column, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_reproducedb(char *split[], int column, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_reproducedb_pre ) { + bool (*preHookFunc) (char *split[], int *column, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_reproducedb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_reproducedb_pre[hIndex].func; + retVal___ = preHookFunc(split, &column, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_reproducedb(split, column, current); + } + if( HPMHooks.count.HP_skill_parse_row_reproducedb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *column, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_reproducedb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_reproducedb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &column, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_improvisedb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_improvisedb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_improvisedb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_improvisedb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_improvisedb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_improvisedb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_improvisedb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_improvisedb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +bool HP_skill_parse_row_changematerialdb(char *split[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_parse_row_changematerialdb_pre ) { + bool (*preHookFunc) (char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_changematerialdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_parse_row_changematerialdb_pre[hIndex].func; + retVal___ = preHookFunc(split, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.parse_row_changematerialdb(split, columns, current); + } + if( HPMHooks.count.HP_skill_parse_row_changematerialdb_post ) { + bool (*postHookFunc) (bool retVal___, char *split[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_changematerialdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_parse_row_changematerialdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___, split, &columns, ¤t); + } + } + return retVal___; +} +void HP_skill_usave_add(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_usave_add_pre ) { + void (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_usave_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_usave_add_pre[hIndex].func; + preHookFunc(sd, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.usave_add(sd, skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_usave_add_post ) { + void (*postHookFunc) (struct map_session_data *sd, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_usave_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_usave_add_post[hIndex].func; + postHookFunc(sd, &skill_id, &skill_lv); + } + } + return; +} +void HP_skill_usave_trigger(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_usave_trigger_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_usave_trigger_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_usave_trigger_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.usave_trigger(sd); + } + if( HPMHooks.count.HP_skill_usave_trigger_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_usave_trigger_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_usave_trigger_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_skill_cooldown_load(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_cooldown_load_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cooldown_load_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_cooldown_load_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.cooldown_load(sd); + } + if( HPMHooks.count.HP_skill_cooldown_load_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cooldown_load_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_cooldown_load_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_skill_spellbook(struct map_session_data *sd, int nameid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_spellbook_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_spellbook_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_spellbook_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.spellbook(sd, nameid); + } + if( HPMHooks.count.HP_skill_spellbook_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_spellbook_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_spellbook_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid); + } + } + return retVal___; +} +int HP_skill_block_check(struct block_list *bl, enum sc_type type, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_block_check_pre ) { + int (*preHookFunc) (struct block_list *bl, enum sc_type *type, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_block_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_block_check_pre[hIndex].func; + retVal___ = preHookFunc(bl, &type, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.block_check(bl, type, skill_id); + } + if( HPMHooks.count.HP_skill_block_check_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, enum sc_type *type, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_block_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_block_check_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &type, &skill_id); + } + } + return retVal___; +} +int HP_skill_detonator(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_detonator_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_detonator_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_detonator_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.detonator(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_detonator_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_detonator_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_detonator_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +bool HP_skill_check_camouflage(struct block_list *bl, struct status_change_entry *sce) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_skill_check_camouflage_pre ) { + bool (*preHookFunc) (struct block_list *bl, struct status_change_entry *sce); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_camouflage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_check_camouflage_pre[hIndex].func; + retVal___ = preHookFunc(bl, sce); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.check_camouflage(bl, sce); + } + if( HPMHooks.count.HP_skill_check_camouflage_post ) { + bool (*postHookFunc) (bool retVal___, struct block_list *bl, struct status_change_entry *sce); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_check_camouflage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_check_camouflage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sce); + } + } + return retVal___; +} +int HP_skill_magicdecoy(struct map_session_data *sd, int nameid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_magicdecoy_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_magicdecoy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_magicdecoy_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.magicdecoy(sd, nameid); + } + if( HPMHooks.count.HP_skill_magicdecoy_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_magicdecoy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_magicdecoy_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid); + } + } + return retVal___; +} +int HP_skill_poisoningweapon(struct map_session_data *sd, int nameid) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_poisoningweapon_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_poisoningweapon_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_poisoningweapon_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.poisoningweapon(sd, nameid); + } + if( HPMHooks.count.HP_skill_poisoningweapon_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_poisoningweapon_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_poisoningweapon_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid); + } + } + return retVal___; +} +int HP_skill_select_menu(struct map_session_data *sd, uint16 skill_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_select_menu_pre ) { + int (*preHookFunc) (struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_select_menu_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_select_menu_pre[hIndex].func; + retVal___ = preHookFunc(sd, &skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.select_menu(sd, skill_id); + } + if( HPMHooks.count.HP_skill_select_menu_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, uint16 *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_select_menu_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_select_menu_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &skill_id); + } + } + return retVal___; +} +int HP_skill_elementalanalysis(struct map_session_data *sd, int n, uint16 skill_lv, unsigned short *item_list) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_elementalanalysis_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, uint16 *skill_lv, unsigned short *item_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_elementalanalysis_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_elementalanalysis_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, &skill_lv, item_list); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.elementalanalysis(sd, n, skill_lv, item_list); + } + if( HPMHooks.count.HP_skill_elementalanalysis_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, uint16 *skill_lv, unsigned short *item_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_elementalanalysis_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_elementalanalysis_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, &skill_lv, item_list); + } + } + return retVal___; +} +int HP_skill_changematerial(struct map_session_data *sd, int n, unsigned short *item_list) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_changematerial_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, unsigned short *item_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_changematerial_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_changematerial_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, item_list); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.changematerial(sd, n, item_list); + } + if( HPMHooks.count.HP_skill_changematerial_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, unsigned short *item_list); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_changematerial_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_changematerial_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, item_list); + } + } + return retVal___; +} +int HP_skill_get_elemental_type(uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_elemental_type_pre ) { + int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_elemental_type_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_elemental_type_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_elemental_type(skill_id, skill_lv); + } + if( HPMHooks.count.HP_skill_get_elemental_type_post ) { + int (*postHookFunc) (int retVal___, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_elemental_type_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_elemental_type_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id, &skill_lv); + } + } + return retVal___; +} +void HP_skill_cooldown_save(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_cooldown_save_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cooldown_save_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_cooldown_save_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.cooldown_save(sd); + } + if( HPMHooks.count.HP_skill_cooldown_save_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cooldown_save_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_cooldown_save_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_skill_maelstrom_suction(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_maelstrom_suction_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_maelstrom_suction_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_skill_maelstrom_suction_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.skill.maelstrom_suction(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_skill_maelstrom_suction_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_maelstrom_suction_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_skill_maelstrom_suction_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_skill_get_new_group_id(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_skill_get_new_group_id_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_new_group_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_get_new_group_id_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.get_new_group_id(); + } + if( HPMHooks.count.HP_skill_get_new_group_id_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_new_group_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_get_new_group_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +/* status */ +int HP_status_init(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_init_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.init(); + } + if( HPMHooks.count.HP_status_init_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_status_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_status_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.final(); + } + if( HPMHooks.count.HP_status_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_status_get_refine_chance(enum refine_type wlv, int refine) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_refine_chance_pre ) { + int (*preHookFunc) (enum refine_type *wlv, int *refine); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_refine_chance_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_refine_chance_pre[hIndex].func; + retVal___ = preHookFunc(&wlv, &refine); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_refine_chance(wlv, refine); + } + if( HPMHooks.count.HP_status_get_refine_chance_post ) { + int (*postHookFunc) (int retVal___, enum refine_type *wlv, int *refine); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_refine_chance_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_refine_chance_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &wlv, &refine); + } + } + return retVal___; +} +sc_type HP_status_skill2sc(int skill_id) { + int hIndex = 0; + sc_type retVal___; + memset(&retVal___, '\0', sizeof(sc_type)); + if( HPMHooks.count.HP_status_skill2sc_pre ) { + sc_type (*preHookFunc) (int *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_skill2sc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_skill2sc_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.skill2sc(skill_id); + } + if( HPMHooks.count.HP_status_skill2sc_post ) { + sc_type (*postHookFunc) (sc_type retVal___, int *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_skill2sc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_skill2sc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); + } + } + return retVal___; +} +int HP_status_sc2skill(sc_type sc) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_sc2skill_pre ) { + int (*preHookFunc) (sc_type *sc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_sc2skill_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_sc2skill_pre[hIndex].func; + retVal___ = preHookFunc(&sc); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.sc2skill(sc); + } + if( HPMHooks.count.HP_status_sc2skill_post ) { + int (*postHookFunc) (int retVal___, sc_type *sc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_sc2skill_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_sc2skill_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &sc); + } + } + return retVal___; +} +unsigned int HP_status_sc2scb_flag(sc_type sc) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_status_sc2scb_flag_pre ) { + unsigned int (*preHookFunc) (sc_type *sc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_sc2scb_flag_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_sc2scb_flag_pre[hIndex].func; + retVal___ = preHookFunc(&sc); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.sc2scb_flag(sc); + } + if( HPMHooks.count.HP_status_sc2scb_flag_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, sc_type *sc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_sc2scb_flag_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_sc2scb_flag_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &sc); + } + } + return retVal___; +} +int HP_status_type2relevant_bl_types(int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_type2relevant_bl_types_pre ) { + int (*preHookFunc) (int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_type2relevant_bl_types_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_type2relevant_bl_types_pre[hIndex].func; + retVal___ = preHookFunc(&type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.type2relevant_bl_types(type); + } + if( HPMHooks.count.HP_status_type2relevant_bl_types_post ) { + int (*postHookFunc) (int retVal___, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_type2relevant_bl_types_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_type2relevant_bl_types_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &type); + } + } + return retVal___; +} +int HP_status_get_sc_type(sc_type idx) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_sc_type_pre ) { + int (*preHookFunc) (sc_type *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_sc_type_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_sc_type_pre[hIndex].func; + retVal___ = preHookFunc(&idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_sc_type(idx); + } + if( HPMHooks.count.HP_status_get_sc_type_post ) { + int (*postHookFunc) (int retVal___, sc_type *idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_sc_type_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_sc_type_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &idx); + } + } + return retVal___; +} +int HP_status_damage(struct block_list *src, struct block_list *target, int64 hp, int64 sp, int walkdelay, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_damage_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *target, int64 *hp, int64 *sp, int *walkdelay, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_damage_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &hp, &sp, &walkdelay, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.damage(src, target, hp, sp, walkdelay, flag); + } + if( HPMHooks.count.HP_status_damage_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, int64 *hp, int64 *sp, int *walkdelay, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &hp, &sp, &walkdelay, &flag); + } + } + return retVal___; +} +int HP_status_charge(struct block_list *bl, int64 hp, int64 sp) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_charge_pre ) { + int (*preHookFunc) (struct block_list *bl, int64 *hp, int64 *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_charge_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_charge_pre[hIndex].func; + retVal___ = preHookFunc(bl, &hp, &sp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.charge(bl, hp, sp); + } + if( HPMHooks.count.HP_status_charge_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int64 *hp, int64 *sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_charge_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_charge_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &hp, &sp); + } + } + return retVal___; +} +int HP_status_percent_change(struct block_list *src, struct block_list *target, signed char hp_rate, signed char sp_rate, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_percent_change_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *target, signed char *hp_rate, signed char *sp_rate, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_percent_change_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_percent_change_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &hp_rate, &sp_rate, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.percent_change(src, target, hp_rate, sp_rate, flag); + } + if( HPMHooks.count.HP_status_percent_change_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, signed char *hp_rate, signed char *sp_rate, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_percent_change_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_percent_change_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &hp_rate, &sp_rate, &flag); + } + } + return retVal___; +} +int HP_status_set_hp(struct block_list *bl, unsigned int hp, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_set_hp_pre ) { + int (*preHookFunc) (struct block_list *bl, unsigned int *hp, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_set_hp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_set_hp_pre[hIndex].func; + retVal___ = preHookFunc(bl, &hp, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.set_hp(bl, hp, flag); + } + if( HPMHooks.count.HP_status_set_hp_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned int *hp, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_set_hp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_set_hp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &hp, &flag); + } + } + return retVal___; +} +int HP_status_set_sp(struct block_list *bl, unsigned int sp, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_set_sp_pre ) { + int (*preHookFunc) (struct block_list *bl, unsigned int *sp, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_set_sp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_set_sp_pre[hIndex].func; + retVal___ = preHookFunc(bl, &sp, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.set_sp(bl, sp, flag); + } + if( HPMHooks.count.HP_status_set_sp_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned int *sp, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_set_sp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_set_sp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &sp, &flag); + } + } + return retVal___; +} +int HP_status_heal(struct block_list *bl, int64 hp, int64 sp, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_heal_pre ) { + int (*preHookFunc) (struct block_list *bl, int64 *hp, int64 *sp, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_heal_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_heal_pre[hIndex].func; + retVal___ = preHookFunc(bl, &hp, &sp, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.heal(bl, hp, sp, flag); + } + if( HPMHooks.count.HP_status_heal_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int64 *hp, int64 *sp, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_heal_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_heal_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &hp, &sp, &flag); + } + } + return retVal___; +} +int HP_status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per_sp) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_revive_pre ) { + int (*preHookFunc) (struct block_list *bl, unsigned char *per_hp, unsigned char *per_sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_revive_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_revive_pre[hIndex].func; + retVal___ = preHookFunc(bl, &per_hp, &per_sp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.revive(bl, per_hp, per_sp); + } + if( HPMHooks.count.HP_status_revive_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned char *per_hp, unsigned char *per_sp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_revive_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_revive_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &per_hp, &per_sp); + } + } + return retVal___; +} +struct regen_data* HP_status_get_regen_data(struct block_list *bl) { + int hIndex = 0; + struct regen_data* retVal___ = NULL; + if( HPMHooks.count.HP_status_get_regen_data_pre ) { + struct regen_data* (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_regen_data_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_regen_data_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_regen_data(bl); + } + if( HPMHooks.count.HP_status_get_regen_data_post ) { + struct regen_data* (*postHookFunc) (struct regen_data* retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_regen_data_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_regen_data_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +struct status_data* HP_status_get_status_data(struct block_list *bl) { + int hIndex = 0; + struct status_data* retVal___ = NULL; + if( HPMHooks.count.HP_status_get_status_data_pre ) { + struct status_data* (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_status_data_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_status_data_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_status_data(bl); + } + if( HPMHooks.count.HP_status_get_status_data_post ) { + struct status_data* (*postHookFunc) (struct status_data* retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_status_data_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_status_data_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +struct status_data* HP_status_get_base_status(struct block_list *bl) { + int hIndex = 0; + struct status_data* retVal___ = NULL; + if( HPMHooks.count.HP_status_get_base_status_pre ) { + struct status_data* (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_base_status_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_base_status_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_base_status(bl); + } + if( HPMHooks.count.HP_status_get_base_status_post ) { + struct status_data* (*postHookFunc) (struct status_data* retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_base_status_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_base_status_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +const char* HP_status_get_name(struct block_list *bl) { + int hIndex = 0; + const char* retVal___ = NULL; + if( HPMHooks.count.HP_status_get_name_pre ) { + const char* (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_name_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_name_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_name(bl); + } + if( HPMHooks.count.HP_status_get_name_post ) { + const char* (*postHookFunc) (const char* retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_name_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_name_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_status_get_class(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_class_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_class_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_class_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_class(bl); + } + if( HPMHooks.count.HP_status_get_class_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_class_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_class_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_status_get_lv(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_lv_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_lv_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_lv_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_lv(bl); + } + if( HPMHooks.count.HP_status_get_lv_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_lv_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_lv_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +defType HP_status_get_def(struct block_list *bl) { + int hIndex = 0; + defType retVal___; + memset(&retVal___, '\0', sizeof(defType)); + if( HPMHooks.count.HP_status_get_def_pre ) { + defType (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_def_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_def_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_def(bl); + } + if( HPMHooks.count.HP_status_get_def_post ) { + defType (*postHookFunc) (defType retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_def_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_def_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +unsigned short HP_status_get_speed(struct block_list *bl) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_get_speed_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_speed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_speed_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_speed(bl); + } + if( HPMHooks.count.HP_status_get_speed_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_speed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_speed_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +unsigned char HP_status_calc_attack_element(struct block_list *bl, struct status_change *sc, int element) { + int hIndex = 0; + unsigned char retVal___; + memset(&retVal___, '\0', sizeof(unsigned char)); + if( HPMHooks.count.HP_status_calc_attack_element_pre ) { + unsigned char (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *element); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_attack_element_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_attack_element_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &element); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_attack_element(bl, sc, element); + } + if( HPMHooks.count.HP_status_calc_attack_element_post ) { + unsigned char (*postHookFunc) (unsigned char retVal___, struct block_list *bl, struct status_change *sc, int *element); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_attack_element_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_attack_element_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &element); + } + } + return retVal___; +} +int HP_status_get_party_id(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_party_id_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_party_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_party_id_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_party_id(bl); + } + if( HPMHooks.count.HP_status_get_party_id_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_party_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_party_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_status_get_guild_id(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_guild_id_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_guild_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_guild_id_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_guild_id(bl); + } + if( HPMHooks.count.HP_status_get_guild_id_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_guild_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_guild_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_status_get_emblem_id(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_emblem_id_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_emblem_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_emblem_id_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_emblem_id(bl); + } + if( HPMHooks.count.HP_status_get_emblem_id_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_emblem_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_emblem_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_status_get_mexp(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_mexp_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_mexp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_mexp_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_mexp(bl); + } + if( HPMHooks.count.HP_status_get_mexp_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_mexp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_mexp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_status_get_race2(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_race2_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_race2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_race2_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_race2(bl); + } + if( HPMHooks.count.HP_status_get_race2_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_race2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_race2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +struct view_data* HP_status_get_viewdata(struct block_list *bl) { + int hIndex = 0; + struct view_data* retVal___ = NULL; + if( HPMHooks.count.HP_status_get_viewdata_pre ) { + struct view_data* (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_viewdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_viewdata_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_viewdata(bl); + } + if( HPMHooks.count.HP_status_get_viewdata_post ) { + struct view_data* (*postHookFunc) (struct view_data* retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_viewdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_viewdata_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +void HP_status_set_viewdata(struct block_list *bl, int class_) { + int hIndex = 0; + if( HPMHooks.count.HP_status_set_viewdata_pre ) { + void (*preHookFunc) (struct block_list *bl, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_set_viewdata_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_set_viewdata_pre[hIndex].func; + preHookFunc(bl, &class_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.set_viewdata(bl, class_); + } + if( HPMHooks.count.HP_status_set_viewdata_post ) { + void (*postHookFunc) (struct block_list *bl, int *class_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_set_viewdata_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_set_viewdata_post[hIndex].func; + postHookFunc(bl, &class_); + } + } + return; +} +void HP_status_change_init(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_status_change_init_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_change_init_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.change_init(bl); + } + if( HPMHooks.count.HP_status_change_init_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_change_init_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +struct status_change* HP_status_get_sc(struct block_list *bl) { + int hIndex = 0; + struct status_change* retVal___ = NULL; + if( HPMHooks.count.HP_status_get_sc_pre ) { + struct status_change* (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_sc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_sc_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_sc(bl); + } + if( HPMHooks.count.HP_status_get_sc_post ) { + struct status_change* (*postHookFunc) (struct status_change* retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_sc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_sc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_status_isdead(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_isdead_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_isdead_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_isdead_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.isdead(bl); + } + if( HPMHooks.count.HP_status_isdead_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_isdead_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_isdead_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_status_isimmune(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_isimmune_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_isimmune_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_isimmune_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.isimmune(bl); + } + if( HPMHooks.count.HP_status_isimmune_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_isimmune_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_isimmune_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int tick, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_sc_def_pre ) { + int (*preHookFunc) (struct block_list *bl, enum sc_type *type, int *rate, int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_sc_def_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_sc_def_pre[hIndex].func; + retVal___ = preHookFunc(bl, &type, &rate, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_sc_def(bl, type, rate, tick, flag); + } + if( HPMHooks.count.HP_status_get_sc_def_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, enum sc_type *type, int *rate, int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_sc_def_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_sc_def_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &type, &rate, &tick, &flag); + } + } + return retVal___; +} +int HP_status_change_start(struct block_list *bl, enum sc_type type, int rate, int val1, int val2, int val3, int val4, int tick, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_change_start_pre ) { + int (*preHookFunc) (struct block_list *bl, enum sc_type *type, int *rate, int *val1, int *val2, int *val3, int *val4, int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_start_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_change_start_pre[hIndex].func; + retVal___ = preHookFunc(bl, &type, &rate, &val1, &val2, &val3, &val4, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.change_start(bl, type, rate, val1, val2, val3, val4, tick, flag); + } + if( HPMHooks.count.HP_status_change_start_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, enum sc_type *type, int *rate, int *val1, int *val2, int *val3, int *val4, int *tick, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_start_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_change_start_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &type, &rate, &val1, &val2, &val3, &val4, &tick, &flag); + } + } + return retVal___; +} +int HP_status_change_end_(struct block_list *bl, enum sc_type type, int tid, const char *file, int line) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_change_end__pre ) { + int (*preHookFunc) (struct block_list *bl, enum sc_type *type, int *tid, const char *file, int *line); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_end__pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_change_end__pre[hIndex].func; + retVal___ = preHookFunc(bl, &type, &tid, file, &line); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.change_end_(bl, type, tid, file, line); + } + if( HPMHooks.count.HP_status_change_end__post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, enum sc_type *type, int *tid, const char *file, int *line); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_end__post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_change_end__post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &type, &tid, file, &line); + } + } + return retVal___; +} +int HP_status_kaahi_heal_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_kaahi_heal_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_kaahi_heal_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_kaahi_heal_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.kaahi_heal_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_status_kaahi_heal_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_kaahi_heal_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_kaahi_heal_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_status_change_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_change_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_change_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.change_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_status_change_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_change_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_status_change_timer_sub(struct block_list *bl, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_change_timer_sub_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_timer_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_status_change_timer_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.status.change_timer_sub(bl, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_status_change_timer_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_timer_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_status_change_timer_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +int HP_status_change_clear(struct block_list *bl, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_change_clear_pre ) { + int (*preHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_clear_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_change_clear_pre[hIndex].func; + retVal___ = preHookFunc(bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.change_clear(bl, type); + } + if( HPMHooks.count.HP_status_change_clear_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_clear_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_change_clear_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &type); + } + } + return retVal___; +} +int HP_status_change_clear_buffs(struct block_list *bl, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_change_clear_buffs_pre ) { + int (*preHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_clear_buffs_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_change_clear_buffs_pre[hIndex].func; + retVal___ = preHookFunc(bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.change_clear_buffs(bl, type); + } + if( HPMHooks.count.HP_status_change_clear_buffs_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_clear_buffs_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_change_clear_buffs_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &type); + } + } + return retVal___; +} +void HP_status_calc_bl_(struct block_list *bl, enum scb_flag flag, bool first) { + int hIndex = 0; + if( HPMHooks.count.HP_status_calc_bl__pre ) { + void (*preHookFunc) (struct block_list *bl, enum scb_flag *flag, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_bl__pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_bl__pre[hIndex].func; + preHookFunc(bl, &flag, &first); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.calc_bl_(bl, flag, first); + } + if( HPMHooks.count.HP_status_calc_bl__post ) { + void (*postHookFunc) (struct block_list *bl, enum scb_flag *flag, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_bl__post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_bl__post[hIndex].func; + postHookFunc(bl, &flag, &first); + } + } + return; +} +int HP_status_calc_mob_(struct mob_data *md, bool first) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_calc_mob__pre ) { + int (*preHookFunc) (struct mob_data *md, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_mob__pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_mob__pre[hIndex].func; + retVal___ = preHookFunc(md, &first); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_mob_(md, first); + } + if( HPMHooks.count.HP_status_calc_mob__post ) { + int (*postHookFunc) (int retVal___, struct mob_data *md, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_mob__post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_mob__post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &first); + } + } + return retVal___; +} +int HP_status_calc_pet_(struct pet_data *pd, bool first) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_calc_pet__pre ) { + int (*preHookFunc) (struct pet_data *pd, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_pet__pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_pet__pre[hIndex].func; + retVal___ = preHookFunc(pd, &first); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_pet_(pd, first); + } + if( HPMHooks.count.HP_status_calc_pet__post ) { + int (*postHookFunc) (int retVal___, struct pet_data *pd, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_pet__post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_pet__post[hIndex].func; + retVal___ = postHookFunc(retVal___, pd, &first); + } + } + return retVal___; +} +int HP_status_calc_pc_(struct map_session_data *sd, bool first) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_calc_pc__pre ) { + int (*preHookFunc) (struct map_session_data *sd, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_pc__pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_pc__pre[hIndex].func; + retVal___ = preHookFunc(sd, &first); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_pc_(sd, first); + } + if( HPMHooks.count.HP_status_calc_pc__post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_pc__post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_pc__post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &first); + } + } + return retVal___; +} +int HP_status_calc_homunculus_(struct homun_data *hd, bool first) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_calc_homunculus__pre ) { + int (*preHookFunc) (struct homun_data *hd, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_homunculus__pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_homunculus__pre[hIndex].func; + retVal___ = preHookFunc(hd, &first); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_homunculus_(hd, first); + } + if( HPMHooks.count.HP_status_calc_homunculus__post ) { + int (*postHookFunc) (int retVal___, struct homun_data *hd, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_homunculus__post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_homunculus__post[hIndex].func; + retVal___ = postHookFunc(retVal___, hd, &first); + } + } + return retVal___; +} +int HP_status_calc_mercenary_(struct mercenary_data *md, bool first) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_calc_mercenary__pre ) { + int (*preHookFunc) (struct mercenary_data *md, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_mercenary__pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_mercenary__pre[hIndex].func; + retVal___ = preHookFunc(md, &first); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_mercenary_(md, first); + } + if( HPMHooks.count.HP_status_calc_mercenary__post ) { + int (*postHookFunc) (int retVal___, struct mercenary_data *md, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_mercenary__post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_mercenary__post[hIndex].func; + retVal___ = postHookFunc(retVal___, md, &first); + } + } + return retVal___; +} +int HP_status_calc_elemental_(struct elemental_data *ed, bool first) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_calc_elemental__pre ) { + int (*preHookFunc) (struct elemental_data *ed, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_elemental__pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_elemental__pre[hIndex].func; + retVal___ = preHookFunc(ed, &first); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_elemental_(ed, first); + } + if( HPMHooks.count.HP_status_calc_elemental__post ) { + int (*postHookFunc) (int retVal___, struct elemental_data *ed, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_elemental__post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_elemental__post[hIndex].func; + retVal___ = postHookFunc(retVal___, ed, &first); + } + } + return retVal___; +} +void HP_status_calc_misc(struct block_list *bl, struct status_data *status, int level) { + int hIndex = 0; + if( HPMHooks.count.HP_status_calc_misc_pre ) { + void (*preHookFunc) (struct block_list *bl, struct status_data *status, int *level); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_misc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_misc_pre[hIndex].func; + preHookFunc(bl, status, &level); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.calc_misc(bl, status, level); + } + if( HPMHooks.count.HP_status_calc_misc_post ) { + void (*postHookFunc) (struct block_list *bl, struct status_data *status, int *level); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_misc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_misc_post[hIndex].func; + postHookFunc(bl, status, &level); + } + } + return; +} +void HP_status_calc_regen(struct block_list *bl, struct status_data *st, struct regen_data *regen) { + int hIndex = 0; + if( HPMHooks.count.HP_status_calc_regen_pre ) { + void (*preHookFunc) (struct block_list *bl, struct status_data *st, struct regen_data *regen); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_regen_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_regen_pre[hIndex].func; + preHookFunc(bl, st, regen); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.calc_regen(bl, st, regen); + } + if( HPMHooks.count.HP_status_calc_regen_post ) { + void (*postHookFunc) (struct block_list *bl, struct status_data *st, struct regen_data *regen); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_regen_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_regen_post[hIndex].func; + postHookFunc(bl, st, regen); + } + } + return; +} +void HP_status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, struct status_change *sc) { + int hIndex = 0; + if( HPMHooks.count.HP_status_calc_regen_rate_pre ) { + void (*preHookFunc) (struct block_list *bl, struct regen_data *regen, struct status_change *sc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_regen_rate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_regen_rate_pre[hIndex].func; + preHookFunc(bl, regen, sc); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.calc_regen_rate(bl, regen, sc); + } + if( HPMHooks.count.HP_status_calc_regen_rate_post ) { + void (*postHookFunc) (struct block_list *bl, struct regen_data *regen, struct status_change *sc); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_regen_rate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_regen_rate_post[hIndex].func; + postHookFunc(bl, regen, sc); + } + } + return; +} +int HP_status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_check_skilluse_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *target, uint16 *skill_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_check_skilluse_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_check_skilluse_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &skill_id, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.check_skilluse(src, target, skill_id, flag); + } + if( HPMHooks.count.HP_status_check_skilluse_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, uint16 *skill_id, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_check_skilluse_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_check_skilluse_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &skill_id, &flag); + } + } + return retVal___; +} +int HP_status_check_visibility(struct block_list *src, struct block_list *target) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_check_visibility_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_check_visibility_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_check_visibility_pre[hIndex].func; + retVal___ = preHookFunc(src, target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.check_visibility(src, target); + } + if( HPMHooks.count.HP_status_check_visibility_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_check_visibility_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_check_visibility_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target); + } + } + return retVal___; +} +int HP_status_change_spread(struct block_list *src, struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_change_spread_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_spread_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_change_spread_pre[hIndex].func; + retVal___ = preHookFunc(src, bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.change_spread(src, bl); + } + if( HPMHooks.count.HP_status_change_spread_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_change_spread_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_change_spread_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl); + } + } + return retVal___; +} +defType HP_status_calc_def(struct block_list *bl, struct status_change *sc, int def, bool viewable) { + int hIndex = 0; + defType retVal___; + memset(&retVal___, '\0', sizeof(defType)); + if( HPMHooks.count.HP_status_calc_def_pre ) { + defType (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *def, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_def_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_def_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &def, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_def(bl, sc, def, viewable); + } + if( HPMHooks.count.HP_status_calc_def_post ) { + defType (*postHookFunc) (defType retVal___, struct block_list *bl, struct status_change *sc, int *def, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_def_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_def_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &def, &viewable); + } + } + return retVal___; +} +short HP_status_calc_def2(struct block_list *bl, struct status_change *sc, int def2, bool viewable) { + int hIndex = 0; + short retVal___; + memset(&retVal___, '\0', sizeof(short)); + if( HPMHooks.count.HP_status_calc_def2_pre ) { + short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *def2, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_def2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_def2_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &def2, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_def2(bl, sc, def2, viewable); + } + if( HPMHooks.count.HP_status_calc_def2_post ) { + short (*postHookFunc) (short retVal___, struct block_list *bl, struct status_change *sc, int *def2, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_def2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_def2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &def2, &viewable); + } + } + return retVal___; +} +defType HP_status_calc_mdef(struct block_list *bl, struct status_change *sc, int mdef, bool viewable) { + int hIndex = 0; + defType retVal___; + memset(&retVal___, '\0', sizeof(defType)); + if( HPMHooks.count.HP_status_calc_mdef_pre ) { + defType (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *mdef, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_mdef_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_mdef_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &mdef, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_mdef(bl, sc, mdef, viewable); + } + if( HPMHooks.count.HP_status_calc_mdef_post ) { + defType (*postHookFunc) (defType retVal___, struct block_list *bl, struct status_change *sc, int *mdef, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_mdef_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_mdef_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &mdef, &viewable); + } + } + return retVal___; +} +short HP_status_calc_mdef2(struct block_list *bl, struct status_change *sc, int mdef2, bool viewable) { + int hIndex = 0; + short retVal___; + memset(&retVal___, '\0', sizeof(short)); + if( HPMHooks.count.HP_status_calc_mdef2_pre ) { + short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *mdef2, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_mdef2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_mdef2_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &mdef2, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_mdef2(bl, sc, mdef2, viewable); + } + if( HPMHooks.count.HP_status_calc_mdef2_post ) { + short (*postHookFunc) (short retVal___, struct block_list *bl, struct status_change *sc, int *mdef2, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_mdef2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_mdef2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &mdef2, &viewable); + } + } + return retVal___; +} +unsigned short HP_status_calc_batk(struct block_list *bl, struct status_change *sc, int batk, bool viewable) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_batk_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *batk, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_batk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_batk_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &batk, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_batk(bl, sc, batk, viewable); + } + if( HPMHooks.count.HP_status_calc_batk_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *batk, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_batk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_batk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &batk, &viewable); + } + } + return retVal___; +} +unsigned short HP_status_base_matk(const struct status_data *st, int level) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_base_matk_pre ) { + unsigned short (*preHookFunc) (const struct status_data *st, int *level); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_matk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_base_matk_pre[hIndex].func; + retVal___ = preHookFunc(st, &level); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.base_matk(st, level); + } + if( HPMHooks.count.HP_status_base_matk_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, const struct status_data *st, int *level); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_matk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_base_matk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, st, &level); + } + } + return retVal___; +} +int HP_status_get_weapon_atk(struct block_list *src, struct weapon_atk *watk, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_weapon_atk_pre ) { + int (*preHookFunc) (struct block_list *src, struct weapon_atk *watk, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_weapon_atk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_weapon_atk_pre[hIndex].func; + retVal___ = preHookFunc(src, watk, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_weapon_atk(src, watk, flag); + } + if( HPMHooks.count.HP_status_get_weapon_atk_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct weapon_atk *watk, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_weapon_atk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_weapon_atk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, watk, &flag); + } + } + return retVal___; +} +int HP_status_get_total_mdef(struct block_list *src) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_total_mdef_pre ) { + int (*preHookFunc) (struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_total_mdef_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_total_mdef_pre[hIndex].func; + retVal___ = preHookFunc(src); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_total_mdef(src); + } + if( HPMHooks.count.HP_status_get_total_mdef_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_total_mdef_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_total_mdef_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src); + } + } + return retVal___; +} +int HP_status_get_total_def(struct block_list *src) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_total_def_pre ) { + int (*preHookFunc) (struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_total_def_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_total_def_pre[hIndex].func; + retVal___ = preHookFunc(src); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_total_def(src); + } + if( HPMHooks.count.HP_status_get_total_def_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_total_def_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_total_def_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src); + } + } + return retVal___; +} +int HP_status_get_matk(struct block_list *src, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_get_matk_pre ) { + int (*preHookFunc) (struct block_list *src, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_matk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_get_matk_pre[hIndex].func; + retVal___ = preHookFunc(src, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.get_matk(src, flag); + } + if( HPMHooks.count.HP_status_get_matk_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_get_matk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_get_matk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &flag); + } + } + return retVal___; +} +int HP_status_readdb(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_readdb_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_readdb_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.readdb(); + } + if( HPMHooks.count.HP_status_readdb_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_readdb_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +void HP_status_initChangeTables(void) { + int hIndex = 0; + if( HPMHooks.count.HP_status_initChangeTables_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_initChangeTables_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_initChangeTables_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.initChangeTables(); + } + if( HPMHooks.count.HP_status_initChangeTables_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_initChangeTables_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_initChangeTables_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_status_initDummyData(void) { + int hIndex = 0; + if( HPMHooks.count.HP_status_initDummyData_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_initDummyData_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_initDummyData_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.initDummyData(); + } + if( HPMHooks.count.HP_status_initDummyData_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_initDummyData_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_initDummyData_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_status_base_amotion_pc(struct map_session_data *sd, struct status_data *st) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_base_amotion_pc_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct status_data *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_amotion_pc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_base_amotion_pc_pre[hIndex].func; + retVal___ = preHookFunc(sd, st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.base_amotion_pc(sd, st); + } + if( HPMHooks.count.HP_status_base_amotion_pc_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct status_data *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_amotion_pc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_base_amotion_pc_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, st); + } + } + return retVal___; +} +unsigned short HP_status_base_atk(const struct block_list *bl, const struct status_data *st) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_base_atk_pre ) { + unsigned short (*preHookFunc) (const struct block_list *bl, const struct status_data *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_atk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_base_atk_pre[hIndex].func; + retVal___ = preHookFunc(bl, st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.base_atk(bl, st); + } + if( HPMHooks.count.HP_status_base_atk_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, const struct block_list *bl, const struct status_data *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_atk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_base_atk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, st); + } + } + return retVal___; +} +void HP_status_calc_sigma(void) { + int hIndex = 0; + if( HPMHooks.count.HP_status_calc_sigma_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_sigma_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_sigma_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.calc_sigma(); + } + if( HPMHooks.count.HP_status_calc_sigma_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_sigma_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_sigma_post[hIndex].func; + postHookFunc(); + } + } + return; +} +unsigned int HP_status_base_pc_maxhp(struct map_session_data *sd, struct status_data *st) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_status_base_pc_maxhp_pre ) { + unsigned int (*preHookFunc) (struct map_session_data *sd, struct status_data *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_pc_maxhp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_base_pc_maxhp_pre[hIndex].func; + retVal___ = preHookFunc(sd, st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.base_pc_maxhp(sd, st); + } + if( HPMHooks.count.HP_status_base_pc_maxhp_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct map_session_data *sd, struct status_data *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_pc_maxhp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_base_pc_maxhp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, st); + } + } + return retVal___; +} +unsigned int HP_status_base_pc_maxsp(struct map_session_data *sd, struct status_data *st) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_status_base_pc_maxsp_pre ) { + unsigned int (*preHookFunc) (struct map_session_data *sd, struct status_data *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_pc_maxsp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_base_pc_maxsp_pre[hIndex].func; + retVal___ = preHookFunc(sd, st); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.base_pc_maxsp(sd, st); + } + if( HPMHooks.count.HP_status_base_pc_maxsp_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct map_session_data *sd, struct status_data *st); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_base_pc_maxsp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_base_pc_maxsp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, st); + } + } + return retVal___; +} +int HP_status_calc_npc_(struct npc_data *nd, bool first) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_calc_npc__pre ) { + int (*preHookFunc) (struct npc_data *nd, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_npc__pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_npc__pre[hIndex].func; + retVal___ = preHookFunc(nd, &first); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_npc_(nd, first); + } + if( HPMHooks.count.HP_status_calc_npc__post ) { + int (*postHookFunc) (int retVal___, struct npc_data *nd, bool *first); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_npc__post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_npc__post[hIndex].func; + retVal___ = postHookFunc(retVal___, nd, &first); + } + } + return retVal___; +} +unsigned short HP_status_calc_str(struct block_list *bl, struct status_change *sc, int str) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_str_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_str_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_str_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &str); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_str(bl, sc, str); + } + if( HPMHooks.count.HP_status_calc_str_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *str); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_str_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_str_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &str); + } + } + return retVal___; +} +unsigned short HP_status_calc_agi(struct block_list *bl, struct status_change *sc, int agi) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_agi_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *agi); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_agi_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_agi_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &agi); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_agi(bl, sc, agi); + } + if( HPMHooks.count.HP_status_calc_agi_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *agi); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_agi_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_agi_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &agi); + } + } + return retVal___; +} +unsigned short HP_status_calc_vit(struct block_list *bl, struct status_change *sc, int vit) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_vit_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *vit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_vit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_vit_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &vit); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_vit(bl, sc, vit); + } + if( HPMHooks.count.HP_status_calc_vit_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *vit); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_vit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_vit_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &vit); + } + } + return retVal___; +} +unsigned short HP_status_calc_int(struct block_list *bl, struct status_change *sc, int int_) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_int_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *int_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_int_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_int_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &int_); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_int(bl, sc, int_); + } + if( HPMHooks.count.HP_status_calc_int_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *int_); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_int_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_int_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &int_); + } + } + return retVal___; +} +unsigned short HP_status_calc_dex(struct block_list *bl, struct status_change *sc, int dex) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_dex_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *dex); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_dex_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_dex_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &dex); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_dex(bl, sc, dex); + } + if( HPMHooks.count.HP_status_calc_dex_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *dex); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_dex_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_dex_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &dex); + } + } + return retVal___; +} +unsigned short HP_status_calc_luk(struct block_list *bl, struct status_change *sc, int luk) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_luk_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *luk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_luk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_luk_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &luk); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_luk(bl, sc, luk); + } + if( HPMHooks.count.HP_status_calc_luk_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *luk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_luk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_luk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &luk); + } + } + return retVal___; +} +unsigned short HP_status_calc_watk(struct block_list *bl, struct status_change *sc, int watk, bool viewable) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_watk_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *watk, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_watk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_watk_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &watk, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_watk(bl, sc, watk, viewable); + } + if( HPMHooks.count.HP_status_calc_watk_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *watk, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_watk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_watk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &watk, &viewable); + } + } + return retVal___; +} +unsigned short HP_status_calc_matk(struct block_list *bl, struct status_change *sc, int matk, bool viewable) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_matk_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *matk, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_matk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_matk_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &matk, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_matk(bl, sc, matk, viewable); + } + if( HPMHooks.count.HP_status_calc_matk_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *matk, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_matk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_matk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &matk, &viewable); + } + } + return retVal___; +} +signed short HP_status_calc_hit(struct block_list *bl, struct status_change *sc, int hit, bool viewable) { + int hIndex = 0; + signed short retVal___; + memset(&retVal___, '\0', sizeof(signed short)); + if( HPMHooks.count.HP_status_calc_hit_pre ) { + signed short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *hit, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_hit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_hit_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &hit, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_hit(bl, sc, hit, viewable); + } + if( HPMHooks.count.HP_status_calc_hit_post ) { + signed short (*postHookFunc) (signed short retVal___, struct block_list *bl, struct status_change *sc, int *hit, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_hit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_hit_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &hit, &viewable); + } + } + return retVal___; +} +signed short HP_status_calc_critical(struct block_list *bl, struct status_change *sc, int critical, bool viewable) { + int hIndex = 0; + signed short retVal___; + memset(&retVal___, '\0', sizeof(signed short)); + if( HPMHooks.count.HP_status_calc_critical_pre ) { + signed short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *critical, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_critical_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_critical_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &critical, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_critical(bl, sc, critical, viewable); + } + if( HPMHooks.count.HP_status_calc_critical_post ) { + signed short (*postHookFunc) (signed short retVal___, struct block_list *bl, struct status_change *sc, int *critical, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_critical_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_critical_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &critical, &viewable); + } + } + return retVal___; +} +signed short HP_status_calc_flee(struct block_list *bl, struct status_change *sc, int flee, bool viewable) { + int hIndex = 0; + signed short retVal___; + memset(&retVal___, '\0', sizeof(signed short)); + if( HPMHooks.count.HP_status_calc_flee_pre ) { + signed short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *flee, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_flee_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_flee_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &flee, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_flee(bl, sc, flee, viewable); + } + if( HPMHooks.count.HP_status_calc_flee_post ) { + signed short (*postHookFunc) (signed short retVal___, struct block_list *bl, struct status_change *sc, int *flee, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_flee_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_flee_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &flee, &viewable); + } + } + return retVal___; +} +signed short HP_status_calc_flee2(struct block_list *bl, struct status_change *sc, int flee2, bool viewable) { + int hIndex = 0; + signed short retVal___; + memset(&retVal___, '\0', sizeof(signed short)); + if( HPMHooks.count.HP_status_calc_flee2_pre ) { + signed short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *flee2, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_flee2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_flee2_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &flee2, &viewable); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_flee2(bl, sc, flee2, viewable); + } + if( HPMHooks.count.HP_status_calc_flee2_post ) { + signed short (*postHookFunc) (signed short retVal___, struct block_list *bl, struct status_change *sc, int *flee2, bool *viewable); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_flee2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_flee2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &flee2, &viewable); + } + } + return retVal___; +} +unsigned short HP_status_calc_speed(struct block_list *bl, struct status_change *sc, int speed) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_speed_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *speed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_speed_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_speed_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &speed); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_speed(bl, sc, speed); + } + if( HPMHooks.count.HP_status_calc_speed_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *speed); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_speed_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_speed_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &speed); + } + } + return retVal___; +} +short HP_status_calc_aspd_rate(struct block_list *bl, struct status_change *sc, int aspd_rate) { + int hIndex = 0; + short retVal___; + memset(&retVal___, '\0', sizeof(short)); + if( HPMHooks.count.HP_status_calc_aspd_rate_pre ) { + short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *aspd_rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_aspd_rate_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_aspd_rate_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &aspd_rate); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_aspd_rate(bl, sc, aspd_rate); + } + if( HPMHooks.count.HP_status_calc_aspd_rate_post ) { + short (*postHookFunc) (short retVal___, struct block_list *bl, struct status_change *sc, int *aspd_rate); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_aspd_rate_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_aspd_rate_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &aspd_rate); + } + } + return retVal___; +} +unsigned short HP_status_calc_dmotion(struct block_list *bl, struct status_change *sc, int dmotion) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_dmotion_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *dmotion); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_dmotion_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_dmotion_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &dmotion); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_dmotion(bl, sc, dmotion); + } + if( HPMHooks.count.HP_status_calc_dmotion_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *dmotion); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_dmotion_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_dmotion_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &dmotion); + } + } + return retVal___; +} +short HP_status_calc_aspd(struct block_list *bl, struct status_change *sc, short flag) { + int hIndex = 0; + short retVal___; + memset(&retVal___, '\0', sizeof(short)); + if( HPMHooks.count.HP_status_calc_aspd_pre ) { + short (*preHookFunc) (struct block_list *bl, struct status_change *sc, short *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_aspd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_aspd_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_aspd(bl, sc, flag); + } + if( HPMHooks.count.HP_status_calc_aspd_post ) { + short (*postHookFunc) (short retVal___, struct block_list *bl, struct status_change *sc, short *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_aspd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_aspd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &flag); + } + } + return retVal___; +} +short HP_status_calc_fix_aspd(struct block_list *bl, struct status_change *sc, int aspd) { + int hIndex = 0; + short retVal___; + memset(&retVal___, '\0', sizeof(short)); + if( HPMHooks.count.HP_status_calc_fix_aspd_pre ) { + short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *aspd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_fix_aspd_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_fix_aspd_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &aspd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_fix_aspd(bl, sc, aspd); + } + if( HPMHooks.count.HP_status_calc_fix_aspd_post ) { + short (*postHookFunc) (short retVal___, struct block_list *bl, struct status_change *sc, int *aspd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_fix_aspd_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_fix_aspd_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &aspd); + } + } + return retVal___; +} +unsigned int HP_status_calc_maxhp(struct block_list *bl, struct status_change *sc, uint64 maxhp) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_status_calc_maxhp_pre ) { + unsigned int (*preHookFunc) (struct block_list *bl, struct status_change *sc, uint64 *maxhp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_maxhp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_maxhp_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &maxhp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_maxhp(bl, sc, maxhp); + } + if( HPMHooks.count.HP_status_calc_maxhp_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct block_list *bl, struct status_change *sc, uint64 *maxhp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_maxhp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_maxhp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &maxhp); + } + } + return retVal___; +} +unsigned int HP_status_calc_maxsp(struct block_list *bl, struct status_change *sc, unsigned int maxsp) { + int hIndex = 0; + unsigned int retVal___; + memset(&retVal___, '\0', sizeof(unsigned int)); + if( HPMHooks.count.HP_status_calc_maxsp_pre ) { + unsigned int (*preHookFunc) (struct block_list *bl, struct status_change *sc, unsigned int *maxsp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_maxsp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_maxsp_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &maxsp); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_maxsp(bl, sc, maxsp); + } + if( HPMHooks.count.HP_status_calc_maxsp_post ) { + unsigned int (*postHookFunc) (unsigned int retVal___, struct block_list *bl, struct status_change *sc, unsigned int *maxsp); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_maxsp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_maxsp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &maxsp); + } + } + return retVal___; +} +unsigned char HP_status_calc_element(struct block_list *bl, struct status_change *sc, int element) { + int hIndex = 0; + unsigned char retVal___; + memset(&retVal___, '\0', sizeof(unsigned char)); + if( HPMHooks.count.HP_status_calc_element_pre ) { + unsigned char (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *element); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_element_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_element_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &element); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_element(bl, sc, element); + } + if( HPMHooks.count.HP_status_calc_element_post ) { + unsigned char (*postHookFunc) (unsigned char retVal___, struct block_list *bl, struct status_change *sc, int *element); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_element_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_element_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &element); + } + } + return retVal___; +} +unsigned char HP_status_calc_element_lv(struct block_list *bl, struct status_change *sc, int lv) { + int hIndex = 0; + unsigned char retVal___; + memset(&retVal___, '\0', sizeof(unsigned char)); + if( HPMHooks.count.HP_status_calc_element_lv_pre ) { + unsigned char (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_element_lv_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_element_lv_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_element_lv(bl, sc, lv); + } + if( HPMHooks.count.HP_status_calc_element_lv_post ) { + unsigned char (*postHookFunc) (unsigned char retVal___, struct block_list *bl, struct status_change *sc, int *lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_element_lv_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_element_lv_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &lv); + } + } + return retVal___; +} +unsigned short HP_status_calc_mode(struct block_list *bl, struct status_change *sc, int mode) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_mode_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *mode); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_mode_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_mode_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &mode); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_mode(bl, sc, mode); + } + if( HPMHooks.count.HP_status_calc_mode_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *mode); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_mode_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_mode_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &mode); + } + } + return retVal___; +} +unsigned short HP_status_calc_ematk(struct block_list *bl, struct status_change *sc, int matk) { + int hIndex = 0; + unsigned short retVal___; + memset(&retVal___, '\0', sizeof(unsigned short)); + if( HPMHooks.count.HP_status_calc_ematk_pre ) { + unsigned short (*preHookFunc) (struct block_list *bl, struct status_change *sc, int *matk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_ematk_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_ematk_pre[hIndex].func; + retVal___ = preHookFunc(bl, sc, &matk); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.calc_ematk(bl, sc, matk); + } + if( HPMHooks.count.HP_status_calc_ematk_post ) { + unsigned short (*postHookFunc) (unsigned short retVal___, struct block_list *bl, struct status_change *sc, int *matk); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_ematk_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_ematk_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sc, &matk); + } + } + return retVal___; +} +void HP_status_calc_bl_main(struct block_list *bl, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_status_calc_bl_main_pre ) { + void (*preHookFunc) (struct block_list *bl, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_bl_main_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_calc_bl_main_pre[hIndex].func; + preHookFunc(bl, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.calc_bl_main(bl, flag); + } + if( HPMHooks.count.HP_status_calc_bl_main_post ) { + void (*postHookFunc) (struct block_list *bl, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_calc_bl_main_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_calc_bl_main_post[hIndex].func; + postHookFunc(bl, &flag); + } + } + return; +} +void HP_status_display_add(struct map_session_data *sd, enum sc_type type, int dval1, int dval2, int dval3) { + int hIndex = 0; + if( HPMHooks.count.HP_status_display_add_pre ) { + void (*preHookFunc) (struct map_session_data *sd, enum sc_type *type, int *dval1, int *dval2, int *dval3); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_display_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_display_add_pre[hIndex].func; + preHookFunc(sd, &type, &dval1, &dval2, &dval3); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.display_add(sd, type, dval1, dval2, dval3); + } + if( HPMHooks.count.HP_status_display_add_post ) { + void (*postHookFunc) (struct map_session_data *sd, enum sc_type *type, int *dval1, int *dval2, int *dval3); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_display_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_display_add_post[hIndex].func; + postHookFunc(sd, &type, &dval1, &dval2, &dval3); + } + } + return; +} +void HP_status_display_remove(struct map_session_data *sd, enum sc_type type) { + int hIndex = 0; + if( HPMHooks.count.HP_status_display_remove_pre ) { + void (*preHookFunc) (struct map_session_data *sd, enum sc_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_display_remove_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_display_remove_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.status.display_remove(sd, type); + } + if( HPMHooks.count.HP_status_display_remove_post ) { + void (*postHookFunc) (struct map_session_data *sd, enum sc_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_display_remove_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_display_remove_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +int HP_status_natural_heal(struct block_list *bl, va_list args) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_natural_heal_pre ) { + int (*preHookFunc) (struct block_list *bl, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_natural_heal_pre; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + preHookFunc = HPMHooks.list.HP_status_natural_heal_pre[hIndex].func; + retVal___ = preHookFunc(bl, 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.status.natural_heal(bl, args___copy); + va_end(args___copy); + } + if( HPMHooks.count.HP_status_natural_heal_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, va_list args); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_natural_heal_post; hIndex++ ) { + va_list args___copy; va_copy(args___copy, args); + postHookFunc = HPMHooks.list.HP_status_natural_heal_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, args___copy); + va_end(args___copy); + } + } + return retVal___; +} +int HP_status_natural_heal_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_status_natural_heal_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_natural_heal_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_natural_heal_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.natural_heal_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_status_natural_heal_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_natural_heal_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_natural_heal_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +bool HP_status_readdb_job1(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_status_readdb_job1_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_job1_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_readdb_job1_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.readdb_job1(fields, columns, current); + } + if( HPMHooks.count.HP_status_readdb_job1_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_job1_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_readdb_job1_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +bool HP_status_readdb_job2(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_status_readdb_job2_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_job2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_readdb_job2_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.readdb_job2(fields, columns, current); + } + if( HPMHooks.count.HP_status_readdb_job2_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_job2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_readdb_job2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +bool HP_status_readdb_sizefix(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_status_readdb_sizefix_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_sizefix_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_readdb_sizefix_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.readdb_sizefix(fields, columns, current); + } + if( HPMHooks.count.HP_status_readdb_sizefix_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_sizefix_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_readdb_sizefix_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +bool HP_status_readdb_refine(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_status_readdb_refine_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_refine_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_readdb_refine_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.readdb_refine(fields, columns, current); + } + if( HPMHooks.count.HP_status_readdb_refine_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_refine_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_readdb_refine_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +bool HP_status_readdb_scconfig(char *fields[], int columns, int current) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_status_readdb_scconfig_pre ) { + bool (*preHookFunc) (char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_scconfig_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_status_readdb_scconfig_pre[hIndex].func; + retVal___ = preHookFunc(fields, &columns, ¤t); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.status.readdb_scconfig(fields, columns, current); + } + if( HPMHooks.count.HP_status_readdb_scconfig_post ) { + bool (*postHookFunc) (bool retVal___, char *fields[], int *columns, int *current); + for(hIndex = 0; hIndex < HPMHooks.count.HP_status_readdb_scconfig_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_status_readdb_scconfig_post[hIndex].func; + retVal___ = postHookFunc(retVal___, fields, &columns, ¤t); + } + } + return retVal___; +} +/* storage */ +void HP_storage_reconnect(void) { + int hIndex = 0; + if( HPMHooks.count.HP_storage_reconnect_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_reconnect_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_reconnect_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.storage.reconnect(); + } + if( HPMHooks.count.HP_storage_reconnect_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_reconnect_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_reconnect_post[hIndex].func; + postHookFunc(); + } + } + return; +} +int HP_storage_delitem(struct map_session_data *sd, int n, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_storage_delitem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *n, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_delitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_delitem_pre[hIndex].func; + retVal___ = preHookFunc(sd, &n, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.storage.delitem(sd, n, amount); + } + if( HPMHooks.count.HP_storage_delitem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *n, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_delitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_delitem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &n, &amount); + } + } + return retVal___; +} +int HP_storage_open(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_storage_open_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_open_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_open_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.storage.open(sd); + } + if( HPMHooks.count.HP_storage_open_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_open_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_open_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_storage_add(struct map_session_data *sd, int index, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_storage_add_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_add_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_add_pre[hIndex].func; + retVal___ = preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.storage.add(sd, index, amount); + } + if( HPMHooks.count.HP_storage_add_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_add_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_add_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &index, &amount); + } + } + return retVal___; +} +int HP_storage_get(struct map_session_data *sd, int index, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_storage_get_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_get_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_get_pre[hIndex].func; + retVal___ = preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.storage.get(sd, index, amount); + } + if( HPMHooks.count.HP_storage_get_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_get_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_get_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &index, &amount); + } + } + return retVal___; +} +int HP_storage_additem(struct map_session_data *sd, struct item *item_data, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_storage_additem_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct item *item_data, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_additem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_additem_pre[hIndex].func; + retVal___ = preHookFunc(sd, item_data, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.storage.additem(sd, item_data, amount); + } + if( HPMHooks.count.HP_storage_additem_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct item *item_data, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_additem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_additem_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, item_data, &amount); + } + } + return retVal___; +} +int HP_storage_addfromcart(struct map_session_data *sd, int index, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_storage_addfromcart_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_addfromcart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_addfromcart_pre[hIndex].func; + retVal___ = preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.storage.addfromcart(sd, index, amount); + } + if( HPMHooks.count.HP_storage_addfromcart_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_addfromcart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_addfromcart_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &index, &amount); + } + } + return retVal___; +} +int HP_storage_gettocart(struct map_session_data *sd, int index, int amount) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_storage_gettocart_pre ) { + int (*preHookFunc) (struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_gettocart_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_gettocart_pre[hIndex].func; + retVal___ = preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.storage.gettocart(sd, index, amount); + } + if( HPMHooks.count.HP_storage_gettocart_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, int *index, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_gettocart_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_gettocart_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &index, &amount); + } + } + return retVal___; +} +void HP_storage_close(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_storage_close_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_close_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.storage.close(sd); + } + if( HPMHooks.count.HP_storage_close_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_close_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_storage_pc_quit(struct map_session_data *sd, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_storage_pc_quit_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_pc_quit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_pc_quit_pre[hIndex].func; + preHookFunc(sd, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.storage.pc_quit(sd, flag); + } + if( HPMHooks.count.HP_storage_pc_quit_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_pc_quit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_pc_quit_post[hIndex].func; + postHookFunc(sd, &flag); + } + } + return; +} +int HP_storage_comp_item(const void *_i1, const void *_i2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_storage_comp_item_pre ) { + int (*preHookFunc) (const void *_i1, const void *_i2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_comp_item_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_comp_item_pre[hIndex].func; + retVal___ = preHookFunc(_i1, _i2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.storage.comp_item(_i1, _i2); + } + if( HPMHooks.count.HP_storage_comp_item_post ) { + int (*postHookFunc) (int retVal___, const void *_i1, const void *_i2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_comp_item_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_comp_item_post[hIndex].func; + retVal___ = postHookFunc(retVal___, _i1, _i2); + } + } + return retVal___; +} +void HP_storage_sortitem(struct item *items, unsigned int size) { + int hIndex = 0; + if( HPMHooks.count.HP_storage_sortitem_pre ) { + void (*preHookFunc) (struct item *items, unsigned int *size); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_sortitem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_storage_sortitem_pre[hIndex].func; + preHookFunc(items, &size); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.storage.sortitem(items, size); + } + if( HPMHooks.count.HP_storage_sortitem_post ) { + void (*postHookFunc) (struct item *items, unsigned int *size); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_sortitem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_storage_sortitem_post[hIndex].func; + postHookFunc(items, &size); + } + } + return; +} +int HP_storage_reconnect_sub(DBKey key, DBData *data, va_list ap) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_storage_reconnect_sub_pre ) { + int (*preHookFunc) (DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_reconnect_sub_pre; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + preHookFunc = HPMHooks.list.HP_storage_reconnect_sub_pre[hIndex].func; + retVal___ = preHookFunc(&key, data, ap___copy); + va_end(ap___copy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + va_list ap___copy; va_copy(ap___copy, ap); + retVal___ = HPMHooks.source.storage.reconnect_sub(key, data, ap___copy); + va_end(ap___copy); + } + if( HPMHooks.count.HP_storage_reconnect_sub_post ) { + int (*postHookFunc) (int retVal___, DBKey *key, DBData *data, va_list ap); + for(hIndex = 0; hIndex < HPMHooks.count.HP_storage_reconnect_sub_post; hIndex++ ) { + va_list ap___copy; va_copy(ap___copy, ap); + postHookFunc = HPMHooks.list.HP_storage_reconnect_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &key, data, ap___copy); + va_end(ap___copy); + } + } + return retVal___; +} +/* trade */ +void HP_trade_request(struct map_session_data *sd, struct map_session_data *target_sd) { + int hIndex = 0; + if( HPMHooks.count.HP_trade_request_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct map_session_data *target_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_request_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_trade_request_pre[hIndex].func; + preHookFunc(sd, target_sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.trade.request(sd, target_sd); + } + if( HPMHooks.count.HP_trade_request_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct map_session_data *target_sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_request_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_trade_request_post[hIndex].func; + postHookFunc(sd, target_sd); + } + } + return; +} +void HP_trade_ack(struct map_session_data *sd, int type) { + int hIndex = 0; + if( HPMHooks.count.HP_trade_ack_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_ack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_trade_ack_pre[hIndex].func; + preHookFunc(sd, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.trade.ack(sd, type); + } + if( HPMHooks.count.HP_trade_ack_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_ack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_trade_ack_post[hIndex].func; + postHookFunc(sd, &type); + } + } + return; +} +int HP_trade_check_impossible(struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_trade_check_impossible_pre ) { + int (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_check_impossible_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_trade_check_impossible_pre[hIndex].func; + retVal___ = preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.trade.check_impossible(sd); + } + if( HPMHooks.count.HP_trade_check_impossible_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_check_impossible_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_trade_check_impossible_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd); + } + } + return retVal___; +} +int HP_trade_check(struct map_session_data *sd, struct map_session_data *tsd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_trade_check_pre ) { + int (*preHookFunc) (struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_trade_check_pre[hIndex].func; + retVal___ = preHookFunc(sd, tsd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.trade.check(sd, tsd); + } + if( HPMHooks.count.HP_trade_check_post ) { + int (*postHookFunc) (int retVal___, struct map_session_data *sd, struct map_session_data *tsd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_trade_check_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, tsd); + } + } + return retVal___; +} +void HP_trade_additem(struct map_session_data *sd, short index, short amount) { + int hIndex = 0; + if( HPMHooks.count.HP_trade_additem_pre ) { + void (*preHookFunc) (struct map_session_data *sd, short *index, short *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_additem_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_trade_additem_pre[hIndex].func; + preHookFunc(sd, &index, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.trade.additem(sd, index, amount); + } + if( HPMHooks.count.HP_trade_additem_post ) { + void (*postHookFunc) (struct map_session_data *sd, short *index, short *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_additem_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_trade_additem_post[hIndex].func; + postHookFunc(sd, &index, &amount); + } + } + return; +} +void HP_trade_addzeny(struct map_session_data *sd, int amount) { + int hIndex = 0; + if( HPMHooks.count.HP_trade_addzeny_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_addzeny_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_trade_addzeny_pre[hIndex].func; + preHookFunc(sd, &amount); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.trade.addzeny(sd, amount); + } + if( HPMHooks.count.HP_trade_addzeny_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *amount); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_addzeny_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_trade_addzeny_post[hIndex].func; + postHookFunc(sd, &amount); + } + } + return; +} +void HP_trade_ok(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_trade_ok_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_ok_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_trade_ok_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.trade.ok(sd); + } + if( HPMHooks.count.HP_trade_ok_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_ok_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_trade_ok_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_trade_cancel(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_trade_cancel_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_cancel_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_trade_cancel_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.trade.cancel(sd); + } + if( HPMHooks.count.HP_trade_cancel_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_cancel_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_trade_cancel_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_trade_commit(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_trade_commit_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_commit_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_trade_commit_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.trade.commit(sd); + } + if( HPMHooks.count.HP_trade_commit_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_trade_commit_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_trade_commit_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +/* unit */ +int HP_unit_init(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_init_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_init_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.init(); + } + if( HPMHooks.count.HP_unit_init_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_init_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +int HP_unit_final(void) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_final_pre ) { + int (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_final_pre[hIndex].func; + retVal___ = preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.final(); + } + if( HPMHooks.count.HP_unit_final_post ) { + int (*postHookFunc) (int retVal___); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_final_post[hIndex].func; + retVal___ = postHookFunc(retVal___); + } + } + return retVal___; +} +struct unit_data* HP_unit_bl2ud(struct block_list *bl) { + int hIndex = 0; + struct unit_data* retVal___ = NULL; + if( HPMHooks.count.HP_unit_bl2ud_pre ) { + struct unit_data* (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_bl2ud_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_bl2ud_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.bl2ud(bl); + } + if( HPMHooks.count.HP_unit_bl2ud_post ) { + struct unit_data* (*postHookFunc) (struct unit_data* retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_bl2ud_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_bl2ud_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +struct unit_data* HP_unit_bl2ud2(struct block_list *bl) { + int hIndex = 0; + struct unit_data* retVal___ = NULL; + if( HPMHooks.count.HP_unit_bl2ud2_pre ) { + struct unit_data* (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_bl2ud2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_bl2ud2_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.bl2ud2(bl); + } + if( HPMHooks.count.HP_unit_bl2ud2_post ) { + struct unit_data* (*postHookFunc) (struct unit_data* retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_bl2ud2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_bl2ud2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_unit_attack_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_attack_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_attack_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_attack_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.attack_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_unit_attack_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_attack_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_attack_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_walktoxy_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_walktoxy_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_walktoxy_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.walktoxy_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_unit_walktoxy_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_walktoxy_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_walktoxy_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_unit_walktoxy_sub(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_walktoxy_sub_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_walktoxy_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_walktoxy_sub_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.walktoxy_sub(bl); + } + if( HPMHooks.count.HP_unit_walktoxy_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_walktoxy_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_walktoxy_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_unit_delay_walktoxy_timer(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_delay_walktoxy_timer_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_delay_walktoxy_timer_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_delay_walktoxy_timer_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.delay_walktoxy_timer(tid, tick, id, data); + } + if( HPMHooks.count.HP_unit_delay_walktoxy_timer_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_delay_walktoxy_timer_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_delay_walktoxy_timer_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_unit_walktoxy(struct block_list *bl, short x, short y, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_walktoxy_pre ) { + int (*preHookFunc) (struct block_list *bl, short *x, short *y, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_walktoxy_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_walktoxy_pre[hIndex].func; + retVal___ = preHookFunc(bl, &x, &y, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.walktoxy(bl, x, y, flag); + } + if( HPMHooks.count.HP_unit_walktoxy_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, short *x, short *y, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_walktoxy_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_walktoxy_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &x, &y, &flag); + } + } + return retVal___; +} +int HP_unit_walktobl_sub(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_walktobl_sub_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_walktobl_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_walktobl_sub_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.walktobl_sub(tid, tick, id, data); + } + if( HPMHooks.count.HP_unit_walktobl_sub_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_walktobl_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_walktobl_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_walktobl_pre ) { + int (*preHookFunc) (struct block_list *bl, struct block_list *tbl, int *range, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_walktobl_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_walktobl_pre[hIndex].func; + retVal___ = preHookFunc(bl, tbl, &range, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.walktobl(bl, tbl, range, flag); + } + if( HPMHooks.count.HP_unit_walktobl_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, struct block_list *tbl, int *range, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_walktobl_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_walktobl_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, tbl, &range, &flag); + } + } + return retVal___; +} +int HP_unit_run(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_run_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_run_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_run_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.run(bl); + } + if( HPMHooks.count.HP_unit_run_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_run_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_run_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_unit_wugdash(struct block_list *bl, struct map_session_data *sd) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_wugdash_pre ) { + int (*preHookFunc) (struct block_list *bl, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_wugdash_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_wugdash_pre[hIndex].func; + retVal___ = preHookFunc(bl, sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.wugdash(bl, sd); + } + if( HPMHooks.count.HP_unit_wugdash_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_wugdash_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_wugdash_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, sd); + } + } + return retVal___; +} +int HP_unit_escape(struct block_list *bl, struct block_list *target, short dist) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_escape_pre ) { + int (*preHookFunc) (struct block_list *bl, struct block_list *target, short *dist); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_escape_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_escape_pre[hIndex].func; + retVal___ = preHookFunc(bl, target, &dist); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.escape(bl, target, dist); + } + if( HPMHooks.count.HP_unit_escape_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, struct block_list *target, short *dist); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_escape_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_escape_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, target, &dist); + } + } + return retVal___; +} +int HP_unit_movepos(struct block_list *bl, short dst_x, short dst_y, int easy, bool checkpath) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_movepos_pre ) { + int (*preHookFunc) (struct block_list *bl, short *dst_x, short *dst_y, int *easy, bool *checkpath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_movepos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_movepos_pre[hIndex].func; + retVal___ = preHookFunc(bl, &dst_x, &dst_y, &easy, &checkpath); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.movepos(bl, dst_x, dst_y, easy, checkpath); + } + if( HPMHooks.count.HP_unit_movepos_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, short *dst_x, short *dst_y, int *easy, bool *checkpath); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_movepos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_movepos_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &dst_x, &dst_y, &easy, &checkpath); + } + } + return retVal___; +} +int HP_unit_setdir(struct block_list *bl, unsigned char dir) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_setdir_pre ) { + int (*preHookFunc) (struct block_list *bl, unsigned char *dir); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_setdir_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_setdir_pre[hIndex].func; + retVal___ = preHookFunc(bl, &dir); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.setdir(bl, dir); + } + if( HPMHooks.count.HP_unit_setdir_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned char *dir); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_setdir_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_setdir_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &dir); + } + } + return retVal___; +} +uint8 HP_unit_getdir(struct block_list *bl) { + int hIndex = 0; + uint8 retVal___; + memset(&retVal___, '\0', sizeof(uint8)); + if( HPMHooks.count.HP_unit_getdir_pre ) { + uint8 (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_getdir_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_getdir_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.getdir(bl); + } + if( HPMHooks.count.HP_unit_getdir_post ) { + uint8 (*postHookFunc) (uint8 retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_getdir_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_getdir_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_unit_blown(struct block_list *bl, int dx, int dy, int count, int flag) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_blown_pre ) { + int (*preHookFunc) (struct block_list *bl, int *dx, int *dy, int *count, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_blown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_blown_pre[hIndex].func; + retVal___ = preHookFunc(bl, &dx, &dy, &count, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.blown(bl, dx, dy, count, flag); + } + if( HPMHooks.count.HP_unit_blown_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *dx, int *dy, int *count, int *flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_blown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_blown_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &dx, &dy, &count, &flag); + } + } + return retVal___; +} +int HP_unit_warp(struct block_list *bl, short m, short x, short y, clr_type type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_warp_pre ) { + int (*preHookFunc) (struct block_list *bl, short *m, short *x, short *y, clr_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_warp_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_warp_pre[hIndex].func; + retVal___ = preHookFunc(bl, &m, &x, &y, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.warp(bl, m, x, y, type); + } + if( HPMHooks.count.HP_unit_warp_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, short *m, short *x, short *y, clr_type *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_warp_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_warp_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &m, &x, &y, &type); + } + } + return retVal___; +} +int HP_unit_stop_walking(struct block_list *bl, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_stop_walking_pre ) { + int (*preHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_stop_walking_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_stop_walking_pre[hIndex].func; + retVal___ = preHookFunc(bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.stop_walking(bl, type); + } + if( HPMHooks.count.HP_unit_stop_walking_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_stop_walking_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_stop_walking_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &type); + } + } + return retVal___; +} +int HP_unit_skilluse_id(struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_skilluse_id_pre ) { + int (*preHookFunc) (struct block_list *src, int *target_id, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_skilluse_id_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_skilluse_id_pre[hIndex].func; + retVal___ = preHookFunc(src, &target_id, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.skilluse_id(src, target_id, skill_id, skill_lv); + } + if( HPMHooks.count.HP_unit_skilluse_id_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, int *target_id, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_skilluse_id_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_skilluse_id_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &target_id, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_unit_is_walking(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_is_walking_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_is_walking_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_is_walking_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.is_walking(bl); + } + if( HPMHooks.count.HP_unit_is_walking_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_is_walking_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_is_walking_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_unit_can_move(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_can_move_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_can_move_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_can_move_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.can_move(bl); + } + if( HPMHooks.count.HP_unit_can_move_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_can_move_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_can_move_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_unit_resume_running(int tid, unsigned int tick, int id, intptr_t data) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_resume_running_pre ) { + int (*preHookFunc) (int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_resume_running_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_resume_running_pre[hIndex].func; + retVal___ = preHookFunc(&tid, &tick, &id, &data); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.resume_running(tid, tick, id, data); + } + if( HPMHooks.count.HP_unit_resume_running_post ) { + int (*postHookFunc) (int retVal___, int *tid, unsigned int *tick, int *id, intptr_t *data); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_resume_running_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_resume_running_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data); + } + } + return retVal___; +} +int HP_unit_set_walkdelay(struct block_list *bl, unsigned int tick, int delay, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_set_walkdelay_pre ) { + int (*preHookFunc) (struct block_list *bl, unsigned int *tick, int *delay, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_set_walkdelay_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_set_walkdelay_pre[hIndex].func; + retVal___ = preHookFunc(bl, &tick, &delay, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.set_walkdelay(bl, tick, delay, type); + } + if( HPMHooks.count.HP_unit_set_walkdelay_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, unsigned int *tick, int *delay, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_set_walkdelay_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_set_walkdelay_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &tick, &delay, &type); + } + } + return retVal___; +} +int HP_unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_skilluse_id2_pre ) { + int (*preHookFunc) (struct block_list *src, int *target_id, uint16 *skill_id, uint16 *skill_lv, int *casttime, int *castcancel); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_skilluse_id2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_skilluse_id2_pre[hIndex].func; + retVal___ = preHookFunc(src, &target_id, &skill_id, &skill_lv, &casttime, &castcancel); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.skilluse_id2(src, target_id, skill_id, skill_lv, casttime, castcancel); + } + if( HPMHooks.count.HP_unit_skilluse_id2_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, int *target_id, uint16 *skill_id, uint16 *skill_lv, int *casttime, int *castcancel); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_skilluse_id2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_skilluse_id2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &target_id, &skill_id, &skill_lv, &casttime, &castcancel); + } + } + return retVal___; +} +int HP_unit_skilluse_pos(struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_skilluse_pos_pre ) { + int (*preHookFunc) (struct block_list *src, short *skill_x, short *skill_y, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_skilluse_pos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_skilluse_pos_pre[hIndex].func; + retVal___ = preHookFunc(src, &skill_x, &skill_y, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.skilluse_pos(src, skill_x, skill_y, skill_id, skill_lv); + } + if( HPMHooks.count.HP_unit_skilluse_pos_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, short *skill_x, short *skill_y, uint16 *skill_id, uint16 *skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_skilluse_pos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_skilluse_pos_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &skill_x, &skill_y, &skill_id, &skill_lv); + } + } + return retVal___; +} +int HP_unit_skilluse_pos2(struct block_list *src, short skill_x, short skill_y, uint16 skill_id, uint16 skill_lv, int casttime, int castcancel) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_skilluse_pos2_pre ) { + int (*preHookFunc) (struct block_list *src, short *skill_x, short *skill_y, uint16 *skill_id, uint16 *skill_lv, int *casttime, int *castcancel); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_skilluse_pos2_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_skilluse_pos2_pre[hIndex].func; + retVal___ = preHookFunc(src, &skill_x, &skill_y, &skill_id, &skill_lv, &casttime, &castcancel); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.skilluse_pos2(src, skill_x, skill_y, skill_id, skill_lv, casttime, castcancel); + } + if( HPMHooks.count.HP_unit_skilluse_pos2_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, short *skill_x, short *skill_y, uint16 *skill_id, uint16 *skill_lv, int *casttime, int *castcancel); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_skilluse_pos2_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_skilluse_pos2_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &skill_x, &skill_y, &skill_id, &skill_lv, &casttime, &castcancel); + } + } + return retVal___; +} +int HP_unit_set_target(struct unit_data *ud, int target_id) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_set_target_pre ) { + int (*preHookFunc) (struct unit_data *ud, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_set_target_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_set_target_pre[hIndex].func; + retVal___ = preHookFunc(ud, &target_id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.set_target(ud, target_id); + } + if( HPMHooks.count.HP_unit_set_target_post ) { + int (*postHookFunc) (int retVal___, struct unit_data *ud, int *target_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_set_target_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_set_target_post[hIndex].func; + retVal___ = postHookFunc(retVal___, ud, &target_id); + } + } + return retVal___; +} +int HP_unit_stop_attack(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_stop_attack_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_stop_attack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_stop_attack_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.stop_attack(bl); + } + if( HPMHooks.count.HP_unit_stop_attack_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_stop_attack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_stop_attack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_unit_unattackable(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_unattackable_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_unattackable_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_unattackable_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.unattackable(bl); + } + if( HPMHooks.count.HP_unit_unattackable_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_unattackable_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_unattackable_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_unit_attack(struct block_list *src, int target_id, int continuous) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_attack_pre ) { + int (*preHookFunc) (struct block_list *src, int *target_id, int *continuous); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_attack_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_attack_pre[hIndex].func; + retVal___ = preHookFunc(src, &target_id, &continuous); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.attack(src, target_id, continuous); + } + if( HPMHooks.count.HP_unit_attack_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, int *target_id, int *continuous); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_attack_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_attack_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &target_id, &continuous); + } + } + return retVal___; +} +int HP_unit_cancel_combo(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_cancel_combo_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_cancel_combo_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_cancel_combo_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.cancel_combo(bl); + } + if( HPMHooks.count.HP_unit_cancel_combo_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_cancel_combo_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_cancel_combo_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +bool HP_unit_can_reach_pos(struct block_list *bl, int x, int y, int easy) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_unit_can_reach_pos_pre ) { + bool (*preHookFunc) (struct block_list *bl, int *x, int *y, int *easy); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_can_reach_pos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_can_reach_pos_pre[hIndex].func; + retVal___ = preHookFunc(bl, &x, &y, &easy); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.can_reach_pos(bl, x, y, easy); + } + if( HPMHooks.count.HP_unit_can_reach_pos_post ) { + bool (*postHookFunc) (bool retVal___, struct block_list *bl, int *x, int *y, int *easy); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_can_reach_pos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_can_reach_pos_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &x, &y, &easy); + } + } + return retVal___; +} +bool HP_unit_can_reach_bl(struct block_list *bl, struct block_list *tbl, int range, int easy, short *x, short *y) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_unit_can_reach_bl_pre ) { + bool (*preHookFunc) (struct block_list *bl, struct block_list *tbl, int *range, int *easy, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_can_reach_bl_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_can_reach_bl_pre[hIndex].func; + retVal___ = preHookFunc(bl, tbl, &range, &easy, x, y); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.can_reach_bl(bl, tbl, range, easy, x, y); + } + if( HPMHooks.count.HP_unit_can_reach_bl_post ) { + bool (*postHookFunc) (bool retVal___, struct block_list *bl, struct block_list *tbl, int *range, int *easy, short *x, short *y); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_can_reach_bl_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_can_reach_bl_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, tbl, &range, &easy, x, y); + } + } + return retVal___; +} +int HP_unit_calc_pos(struct block_list *bl, int tx, int ty, uint8 dir) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_calc_pos_pre ) { + int (*preHookFunc) (struct block_list *bl, int *tx, int *ty, uint8 *dir); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_calc_pos_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_calc_pos_pre[hIndex].func; + retVal___ = preHookFunc(bl, &tx, &ty, &dir); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.calc_pos(bl, tx, ty, dir); + } + if( HPMHooks.count.HP_unit_calc_pos_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *tx, int *ty, uint8 *dir); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_calc_pos_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_calc_pos_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &tx, &ty, &dir); + } + } + return retVal___; +} +int HP_unit_attack_timer_sub(struct block_list *src, int tid, unsigned int tick) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_attack_timer_sub_pre ) { + int (*preHookFunc) (struct block_list *src, int *tid, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_attack_timer_sub_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_attack_timer_sub_pre[hIndex].func; + retVal___ = preHookFunc(src, &tid, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.attack_timer_sub(src, tid, tick); + } + if( HPMHooks.count.HP_unit_attack_timer_sub_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, int *tid, unsigned int *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_attack_timer_sub_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_attack_timer_sub_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, &tid, &tick); + } + } + return retVal___; +} +int HP_unit_skillcastcancel(struct block_list *bl, int type) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_skillcastcancel_pre ) { + int (*preHookFunc) (struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_skillcastcancel_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_skillcastcancel_pre[hIndex].func; + retVal___ = preHookFunc(bl, &type); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.skillcastcancel(bl, type); + } + if( HPMHooks.count.HP_unit_skillcastcancel_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, int *type); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_skillcastcancel_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_skillcastcancel_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &type); + } + } + return retVal___; +} +void HP_unit_dataset(struct block_list *bl) { + int hIndex = 0; + if( HPMHooks.count.HP_unit_dataset_pre ) { + void (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_dataset_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_dataset_pre[hIndex].func; + preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.unit.dataset(bl); + } + if( HPMHooks.count.HP_unit_dataset_post ) { + void (*postHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_dataset_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_dataset_post[hIndex].func; + postHookFunc(bl); + } + } + return; +} +int HP_unit_counttargeted(struct block_list *bl) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_counttargeted_pre ) { + int (*preHookFunc) (struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_counttargeted_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_counttargeted_pre[hIndex].func; + retVal___ = preHookFunc(bl); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.counttargeted(bl); + } + if( HPMHooks.count.HP_unit_counttargeted_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_counttargeted_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_counttargeted_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl); + } + } + return retVal___; +} +int HP_unit_fixdamage(struct block_list *src, struct block_list *target, unsigned int tick, int sdelay, int ddelay, int64 damage, int div, int type, int64 damage2) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_fixdamage_pre ) { + int (*preHookFunc) (struct block_list *src, struct block_list *target, unsigned int *tick, int *sdelay, int *ddelay, int64 *damage, int *div, int *type, int64 *damage2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_fixdamage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_fixdamage_pre[hIndex].func; + retVal___ = preHookFunc(src, target, &tick, &sdelay, &ddelay, &damage, &div, &type, &damage2); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.fixdamage(src, target, tick, sdelay, ddelay, damage, div, type, damage2); + } + if( HPMHooks.count.HP_unit_fixdamage_post ) { + int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, unsigned int *tick, int *sdelay, int *ddelay, int64 *damage, int *div, int *type, int64 *damage2); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_fixdamage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_fixdamage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, target, &tick, &sdelay, &ddelay, &damage, &div, &type, &damage2); + } + } + return retVal___; +} +int HP_unit_changeviewsize(struct block_list *bl, short size) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_changeviewsize_pre ) { + int (*preHookFunc) (struct block_list *bl, short *size); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_changeviewsize_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_changeviewsize_pre[hIndex].func; + retVal___ = preHookFunc(bl, &size); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.changeviewsize(bl, size); + } + if( HPMHooks.count.HP_unit_changeviewsize_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, short *size); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_changeviewsize_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_changeviewsize_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &size); + } + } + return retVal___; +} +int HP_unit_remove_map(struct block_list *bl, clr_type clrtype, const char *file, int line, const char *func) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_remove_map_pre ) { + int (*preHookFunc) (struct block_list *bl, clr_type *clrtype, const char *file, int *line, const char *func); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_remove_map_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_remove_map_pre[hIndex].func; + retVal___ = preHookFunc(bl, &clrtype, file, &line, func); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.remove_map(bl, clrtype, file, line, func); + } + if( HPMHooks.count.HP_unit_remove_map_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, clr_type *clrtype, const char *file, int *line, const char *func); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_remove_map_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_remove_map_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &clrtype, file, &line, func); + } + } + return retVal___; +} +void HP_unit_remove_map_pc(struct map_session_data *sd, clr_type clrtype) { + int hIndex = 0; + if( HPMHooks.count.HP_unit_remove_map_pc_pre ) { + void (*preHookFunc) (struct map_session_data *sd, clr_type *clrtype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_remove_map_pc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_remove_map_pc_pre[hIndex].func; + preHookFunc(sd, &clrtype); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.unit.remove_map_pc(sd, clrtype); + } + if( HPMHooks.count.HP_unit_remove_map_pc_post ) { + void (*postHookFunc) (struct map_session_data *sd, clr_type *clrtype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_remove_map_pc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_remove_map_pc_post[hIndex].func; + postHookFunc(sd, &clrtype); + } + } + return; +} +void HP_unit_free_pc(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_unit_free_pc_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_free_pc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_free_pc_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.unit.free_pc(sd); + } + if( HPMHooks.count.HP_unit_free_pc_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_free_pc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_free_pc_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +int HP_unit_free(struct block_list *bl, clr_type clrtype) { + int hIndex = 0; + int retVal___; + memset(&retVal___, '\0', sizeof(int)); + if( HPMHooks.count.HP_unit_free_pre ) { + int (*preHookFunc) (struct block_list *bl, clr_type *clrtype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_free_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_unit_free_pre[hIndex].func; + retVal___ = preHookFunc(bl, &clrtype); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.unit.free(bl, clrtype); + } + if( HPMHooks.count.HP_unit_free_post ) { + int (*postHookFunc) (int retVal___, struct block_list *bl, clr_type *clrtype); + for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_free_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_unit_free_post[hIndex].func; + retVal___ = postHookFunc(retVal___, bl, &clrtype); + } + } + return retVal___; +} +/* vending */ +void HP_vending_init(void) { + int hIndex = 0; + if( HPMHooks.count.HP_vending_init_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_init_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_vending_init_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.vending.init(); + } + if( HPMHooks.count.HP_vending_init_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_init_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_vending_init_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_vending_final(void) { + int hIndex = 0; + if( HPMHooks.count.HP_vending_final_pre ) { + void (*preHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_final_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_vending_final_pre[hIndex].func; + preHookFunc(); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.vending.final(); + } + if( HPMHooks.count.HP_vending_final_post ) { + void (*postHookFunc) (void); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_final_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_vending_final_post[hIndex].func; + postHookFunc(); + } + } + return; +} +void HP_vending_close(struct map_session_data *sd) { + int hIndex = 0; + if( HPMHooks.count.HP_vending_close_pre ) { + void (*preHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_close_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_vending_close_pre[hIndex].func; + preHookFunc(sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.vending.close(sd); + } + if( HPMHooks.count.HP_vending_close_post ) { + void (*postHookFunc) (struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_close_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_vending_close_post[hIndex].func; + postHookFunc(sd); + } + } + return; +} +void HP_vending_open(struct map_session_data *sd, const char *message, const uint8 *data, int count) { + int hIndex = 0; + if( HPMHooks.count.HP_vending_open_pre ) { + void (*preHookFunc) (struct map_session_data *sd, const char *message, const uint8 *data, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_open_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_vending_open_pre[hIndex].func; + preHookFunc(sd, message, data, &count); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.vending.open(sd, message, data, count); + } + if( HPMHooks.count.HP_vending_open_post ) { + void (*postHookFunc) (struct map_session_data *sd, const char *message, const uint8 *data, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_open_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_vending_open_post[hIndex].func; + postHookFunc(sd, message, data, &count); + } + } + return; +} +void HP_vending_list(struct map_session_data *sd, unsigned int id) { + int hIndex = 0; + if( HPMHooks.count.HP_vending_list_pre ) { + void (*preHookFunc) (struct map_session_data *sd, unsigned int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_list_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_vending_list_pre[hIndex].func; + preHookFunc(sd, &id); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.vending.list(sd, id); + } + if( HPMHooks.count.HP_vending_list_post ) { + void (*postHookFunc) (struct map_session_data *sd, unsigned int *id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_list_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_vending_list_post[hIndex].func; + postHookFunc(sd, &id); + } + } + return; +} +void HP_vending_purchase(struct map_session_data *sd, int aid, unsigned int uid, const uint8 *data, int count) { + int hIndex = 0; + if( HPMHooks.count.HP_vending_purchase_pre ) { + void (*preHookFunc) (struct map_session_data *sd, int *aid, unsigned int *uid, const uint8 *data, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_purchase_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_vending_purchase_pre[hIndex].func; + preHookFunc(sd, &aid, &uid, data, &count); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.vending.purchase(sd, aid, uid, data, count); + } + if( HPMHooks.count.HP_vending_purchase_post ) { + void (*postHookFunc) (struct map_session_data *sd, int *aid, unsigned int *uid, const uint8 *data, int *count); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_purchase_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_vending_purchase_post[hIndex].func; + postHookFunc(sd, &aid, &uid, data, &count); + } + } + return; +} +bool HP_vending_search(struct map_session_data *sd, unsigned short nameid) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_vending_search_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, unsigned short *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_search_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_vending_search_pre[hIndex].func; + retVal___ = preHookFunc(sd, &nameid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.vending.search(sd, nameid); + } + if( HPMHooks.count.HP_vending_search_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, unsigned short *nameid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_search_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_vending_search_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &nameid); + } + } + return retVal___; +} +bool HP_vending_searchall(struct map_session_data *sd, const struct s_search_store_search *s) { + int hIndex = 0; + bool retVal___; + memset(&retVal___, '\0', sizeof(bool)); + if( HPMHooks.count.HP_vending_searchall_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, const struct s_search_store_search *s); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_searchall_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_vending_searchall_pre[hIndex].func; + retVal___ = preHookFunc(sd, s); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.vending.searchall(sd, s); + } + if( HPMHooks.count.HP_vending_searchall_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, const struct s_search_store_search *s); + for(hIndex = 0; hIndex < HPMHooks.count.HP_vending_searchall_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_vending_searchall_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, s); + } + } + return retVal___; +} diff --git a/src/plugins/HPMHooking/HPMHooking.sources.inc b/src/plugins/HPMHooking/HPMHooking.sources.inc new file mode 100644 index 000000000..89a668e0c --- /dev/null +++ b/src/plugins/HPMHooking/HPMHooking.sources.inc @@ -0,0 +1,37 @@ +memcpy(&HPMHooks.source.atcommand, atcommand, sizeof(struct atcommand_interface)); +memcpy(&HPMHooks.source.battle, battle, sizeof(struct battle_interface)); +memcpy(&HPMHooks.source.bg, bg, sizeof(struct battleground_interface)); +memcpy(&HPMHooks.source.buyingstore, buyingstore, sizeof(struct buyingstore_interface)); +memcpy(&HPMHooks.source.chat, chat, sizeof(struct chat_interface)); +memcpy(&HPMHooks.source.chrif, chrif, sizeof(struct chrif_interface)); +memcpy(&HPMHooks.source.clif, clif, sizeof(struct clif_interface)); +memcpy(&HPMHooks.source.duel, duel, sizeof(struct duel_interface)); +memcpy(&HPMHooks.source.elemental, elemental, sizeof(struct elemental_interface)); +memcpy(&HPMHooks.source.guild, guild, sizeof(struct guild_interface)); +memcpy(&HPMHooks.source.gstorage, gstorage, sizeof(struct guild_storage_interface)); +memcpy(&HPMHooks.source.homun, homun, sizeof(struct homunculus_interface)); +memcpy(&HPMHooks.source.instance, instance, sizeof(struct instance_interface)); +memcpy(&HPMHooks.source.intif, intif, sizeof(struct intif_interface)); +memcpy(&HPMHooks.source.ircbot, ircbot, sizeof(struct irc_bot_interface)); +memcpy(&HPMHooks.source.itemdb, itemdb, sizeof(struct itemdb_interface)); +memcpy(&HPMHooks.source.logs, logs, sizeof(struct log_interface)); +memcpy(&HPMHooks.source.mail, mail, sizeof(struct mail_interface)); +memcpy(&HPMHooks.source.map, map, sizeof(struct map_interface)); +memcpy(&HPMHooks.source.mapit, mapit, sizeof(struct mapit_interface)); +memcpy(&HPMHooks.source.mapreg, mapreg, sizeof(struct mapreg_interface)); +memcpy(&HPMHooks.source.mercenary, mercenary, sizeof(struct mercenary_interface)); +memcpy(&HPMHooks.source.mob, mob, sizeof(struct mob_interface)); +memcpy(&HPMHooks.source.npc, npc, sizeof(struct npc_interface)); +memcpy(&HPMHooks.source.party, party, sizeof(struct party_interface)); +memcpy(&HPMHooks.source.path, path, sizeof(struct path_interface)); +memcpy(&HPMHooks.source.pc, pc, sizeof(struct pc_interface)); +memcpy(&HPMHooks.source.pet, pet, sizeof(struct pet_interface)); +memcpy(&HPMHooks.source.quest, quest, sizeof(struct quest_interface)); +memcpy(&HPMHooks.source.script, script, sizeof(struct script_interface)); +memcpy(&HPMHooks.source.searchstore, searchstore, sizeof(struct searchstore_interface)); +memcpy(&HPMHooks.source.skill, skill, sizeof(struct skill_interface)); +memcpy(&HPMHooks.source.status, status, sizeof(struct status_interface)); +memcpy(&HPMHooks.source.storage, storage, sizeof(struct storage_interface)); +memcpy(&HPMHooks.source.trade, trade, sizeof(struct trade_interface)); +memcpy(&HPMHooks.source.unit, unit, sizeof(struct unit_interface)); +memcpy(&HPMHooks.source.vending, vending, sizeof(struct vending_interface)); diff --git a/src/plugins/Makefile.in b/src/plugins/Makefile.in index ff7d5b2e2..53f44a0b4 100644 --- a/src/plugins/Makefile.in +++ b/src/plugins/Makefile.in @@ -1,7 +1,26 @@ +################ PLUGIN CONFIGURATION ############################## +# # +# When you add a plugin, add its name here: # +# Example: if you have a plugin named my_cool_plugin.c and another # +# one named my_second_plugin.c, add them to the list like this: # +# # +# MYPLUGINS = my_cool_plugin my_second_plugin # +# # +# Note: DO NOT include the .c extension!!! # -COMMON_H = ../common/HPMi.h ../common/cbasetypes.h +MYPLUGINS = -PLUGINS = sample db2sql +# # +######### DO NOT EDIT ANYTHING BELOW THIS LINE!!! ################## + +PLUGINS = sample db2sql HPMHooking $(MYPLUGINS) + +COMMON_H = $(shell ls ../common/*.h) +CONFIG_H = $(shell ls ../config/*.h ../config/*/*.h) +MAP_H = $(shell ls ../map/*.h) +CHAR_H = $(shell ls ../char/*.h) +LOGIN_H = $(shell ls ../login/*.h) +ALL_H = $(COMMON_H) $(CONFIG_H) $(MAP_H) $(CHAR_H) $(LOGIN_H) @SET_MAKE@ @@ -9,28 +28,38 @@ CC = @CC@ export CC ##################################################################### -.PHONY: all $(PLUGINS) sample db2sql clean help +.PHONY: all $(PLUGINS) clean buildclean help all: $(PLUGINS) Makefile -sample: sample@DLLEXT@ - -db2sql: db2sql@DLLEXT@ +$(PLUGINS): %: ../../plugins/%@DLLEXT@ -clean: - @echo " CLEAN plugins" +buildclean: + @echo " CLEAN plugins (build temp files)" @rm -rf *.o + +clean: buildclean + @echo " CLEAN plugins" + @rm -rf ../../plugins/*@DLLEXT@ help: @echo "possible targets are $(PLUGINS:%='%') 'all' 'clean' 'help'" - @echo "'sample' - sample plugin" - @echo "'help' - outputs this message" + @echo "" + @echo "$(PLUGINS:%='%')" + @echo " - builds a specific plugin" + @echo "'all' - builds all above targets" + @echo "'clean' - cleans builds and objects" + @echo "'buildclean' - cleans build temporary (object) files, without deleting the" + @echo " compiled plugins" + @echo "'help' - outputs this message" ##################################################################### Makefile: Makefile.in @$(MAKE) -C ../.. src/plugins/Makefile -%@DLLEXT@: %.c $(COMMON_H) +.SECONDEXPANSION: + +../../plugins/%@DLLEXT@: %.c $(ALL_H) $$(shell ls %/* 2>/dev/null) @echo " CC $<" - @$(CC) @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o ../../plugins/$@ $< + @$(CC) @DEFS@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ @SOFLAGS@ -o $@ $< diff --git a/src/plugins/sample.c b/src/plugins/sample.c index 4f9e34f74..d1a95c71d 100644 --- a/src/plugins/sample.c +++ b/src/plugins/sample.c @@ -88,6 +88,26 @@ void sample_packet0f3(int fd) { clif->pGlobalMessage(fd,sd); } +int my_pc_dropitem_storage;/* storage var */ +/* my custom prehook for pc_dropitem, checks if amount of item being dropped is higher than 1 and if so cap it to 1 and store the value of how much it was */ +int my_pc_dropitem_pre(struct map_session_data *sd,int *n,int *amount) { + my_pc_dropitem_storage = 0; + if( *amount > 1 ) { + my_pc_dropitem_storage = *amount; + *amount = 1; + } + return 0; +} +/* postHook receive retVal as the first param, allows posthook to act accordingly to whatever the original was going to return */ +int my_pc_dropitem_post(int retVal, struct map_session_data *sd,int *n,int *amount) { + if( retVal != 1 ) return retVal;/* we don't do anything if pc_dropitem didn't return 1 (success) */ + if( my_pc_dropitem_storage ) {/* signs whether pre-hook did this */ + char output[99]; + snprintf(output,99,"[ Warning ] you can only drop 1 item at a time, capped from %d to 1",my_pc_dropitem_storage); + clif->colormes(sd->fd,COLOR_RED,output); + } + return 1; +} /* run when server starts */ HPExport void plugin_init (void) { char *server_type; @@ -103,6 +123,7 @@ HPExport void plugin_init (void) { /* map-server interfaces */ script = GET_SYMBOL("script"); clif = GET_SYMBOL("clif"); + pc = GET_SYMBOL("pc"); /* session[] */ session = GET_SYMBOL("session"); @@ -132,7 +153,16 @@ HPExport void plugin_init (void) { if( HPMi->addPacket != NULL ) {//link our 'sample' packet to map-server HPMi->addPacket(0xf3,-1,sample_packet0f3,hpClif_Parse,HPMi->pid); } - + + /* in this sample we add a PreHook to pc->dropitem */ + /* to identify whether the item being dropped is on amount higher than 1 */ + /* if so, it stores the amount on a variable (my_pc_dropitem_storage) and changes the amount to 1 */ + addHookPre("pc->dropitem",my_pc_dropitem_pre); + /* in this sample we add a PostHook to pc->dropitem */ + /* if the original pc->dropitem was successful and the amount stored on my_pc_dropitem_storage is higher than 1, */ + /* our posthook will display a message to the user about the cap */ + /* - by checking whether it was successful (retVal value) it allows for the originals conditions to take place */ + addHookPost("pc->dropitem",my_pc_dropitem_post); } /* run when server is ready (online) */ HPExport void server_online (void) { diff --git a/src/test/Makefile.in b/src/test/Makefile.in index cb99e7004..0c6d15c6b 100644 --- a/src/test/Makefile.in +++ b/src/test/Makefile.in @@ -24,13 +24,17 @@ CC = @CC@ export CC ##################################################################### -.PHONY: all test_spinlock +.PHONY: all test_spinlock clean buildclean all: test_spinlock Makefile -clean: +buildclean: + @echo " CLEAN test (build temp files)" + @rm -rf *.o obj + +clean: buildclean @echo " CLEAN test" - @rm -rf *.o obj ../../test_spinlock@EXEEXT@ + @rm -rf ../../test_spinlock@EXEEXT@ ##################################################################### diff --git a/src/tool/Makefile.in b/src/tool/Makefile.in index baf4a0327..ee448a16a 100644 --- a/src/tool/Makefile.in +++ b/src/tool/Makefile.in @@ -22,7 +22,7 @@ CC = @CC@ export CC ##################################################################### -.PHONY: all mapcache clean help +.PHONY: all mapcache clean buildclean help all: mapcache Makefile @@ -32,16 +32,22 @@ mapcache: ../../mapcache@EXEEXT@ @echo " LD $(notdir $@)" @$(CC) @LDFLAGS@ $(LIBCONFIG_INCLUDE) -o ../../mapcache@EXEEXT@ $(MAPCACHE_OBJ) $(COMMON_OBJ) $(LIBCONFIG_OBJ) @LIBS@ -clean: +buildclean: + @echo " CLEAN tool (build temp files)" + @rm -rf obj_all/*.o + +clean: buildclean @echo " CLEAN tool" - @rm -rf obj_all/*.o ../../mapcache@EXEEXT@ + @rm -rf ../../mapcache@EXEEXT@ help: @echo "possible targets are 'mapcache' 'all' 'clean' 'help'" - @echo "'mapcache' - mapcache generator" - @echo "'all' - builds all above targets" - @echo "'clean' - cleans builds and objects" - @echo "'help' - outputs this message" + @echo "'mapcache' - mapcache generator" + @echo "'all' - builds all above targets" + @echo "'clean' - cleans builds and objects" + @echo "'buildclean' - cleans build temporary (object) files, without deleting the" + @echo " executables" + @echo "'help' - outputs this message" ##################################################################### |