diff options
45 files changed, 3103 insertions, 333 deletions
diff --git a/Hercules-14.sln b/Hercules-14.sln new file mode 100644 index 000000000..0abbb1102 --- /dev/null +++ b/Hercules-14.sln @@ -0,0 +1,64 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server", "vcproj-14\char-server.vcxproj", "{D356871D-58E1-450B-967A-E4E9646175AF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server", "vcproj-14\login-server.vcxproj", "{D356871D-58E1-450B-967A-E5E9646175AF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-14\mapcache.vcxproj", "{D356871D-58E1-450B-967A-E7E9646175AF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server", "vcproj-14\map-server.vcxproj", "{D356871D-58E1-450B-967A-E6E9646175AF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-sample", "vcproj-14\plugin-sample.vcxproj", "{E64C56D3-CDFB-483B-900B-A62D216B6D2F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_map", "vcproj-14\plugin-HPMHooking_map.vcxproj", "{745D4A8C-6A68-4721-A43A-D81BF59860A1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_char", "vcproj-14\plugin-HPMHooking_char.vcxproj", "{D495824D-24D3-4623-A28C-4CA506084A09}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "plugin-HPMHooking_login", "vcproj-14\plugin-HPMHooking_login.vcxproj", "{544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D356871D-58E1-450B-967A-E4E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32 + {D356871D-58E1-450B-967A-E4E9646175AF}.Debug|Win32.Build.0 = Debug|Win32 + {D356871D-58E1-450B-967A-E4E9646175AF}.Release|Win32.ActiveCfg = Release|Win32 + {D356871D-58E1-450B-967A-E4E9646175AF}.Release|Win32.Build.0 = Release|Win32 + {D356871D-58E1-450B-967A-E5E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32 + {D356871D-58E1-450B-967A-E5E9646175AF}.Debug|Win32.Build.0 = Debug|Win32 + {D356871D-58E1-450B-967A-E5E9646175AF}.Release|Win32.ActiveCfg = Release|Win32 + {D356871D-58E1-450B-967A-E5E9646175AF}.Release|Win32.Build.0 = Release|Win32 + {D356871D-58E1-450B-967A-E7E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32 + {D356871D-58E1-450B-967A-E7E9646175AF}.Debug|Win32.Build.0 = Debug|Win32 + {D356871D-58E1-450B-967A-E7E9646175AF}.Release|Win32.ActiveCfg = Release|Win32 + {D356871D-58E1-450B-967A-E7E9646175AF}.Release|Win32.Build.0 = Release|Win32 + {D356871D-58E1-450B-967A-E6E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32 + {D356871D-58E1-450B-967A-E6E9646175AF}.Debug|Win32.Build.0 = Debug|Win32 + {D356871D-58E1-450B-967A-E6E9646175AF}.Release|Win32.ActiveCfg = Release|Win32 + {D356871D-58E1-450B-967A-E6E9646175AF}.Release|Win32.Build.0 = Release|Win32 + {E64C56D3-CDFB-483B-900B-A62D216B6D2F}.Debug|Win32.ActiveCfg = Debug|Win32 + {E64C56D3-CDFB-483B-900B-A62D216B6D2F}.Debug|Win32.Build.0 = Debug|Win32 + {E64C56D3-CDFB-483B-900B-A62D216B6D2F}.Release|Win32.ActiveCfg = Release|Win32 + {E64C56D3-CDFB-483B-900B-A62D216B6D2F}.Release|Win32.Build.0 = Release|Win32 + {745D4A8C-6A68-4721-A43A-D81BF59860A1}.Debug|Win32.ActiveCfg = Debug|Win32 + {745D4A8C-6A68-4721-A43A-D81BF59860A1}.Debug|Win32.Build.0 = Debug|Win32 + {745D4A8C-6A68-4721-A43A-D81BF59860A1}.Release|Win32.ActiveCfg = Release|Win32 + {745D4A8C-6A68-4721-A43A-D81BF59860A1}.Release|Win32.Build.0 = Release|Win32 + {D495824D-24D3-4623-A28C-4CA506084A09}.Debug|Win32.ActiveCfg = Debug|Win32 + {D495824D-24D3-4623-A28C-4CA506084A09}.Debug|Win32.Build.0 = Debug|Win32 + {D495824D-24D3-4623-A28C-4CA506084A09}.Release|Win32.ActiveCfg = Release|Win32 + {D495824D-24D3-4623-A28C-4CA506084A09}.Release|Win32.Build.0 = Release|Win32 + {544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}.Debug|Win32.ActiveCfg = Debug|Win32 + {544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}.Debug|Win32.Build.0 = Debug|Win32 + {544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}.Release|Win32.ActiveCfg = Release|Win32 + {544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/conf/network.conf b/conf/network.conf new file mode 100644 index 000000000..b355acb25 --- /dev/null +++ b/conf/network.conf @@ -0,0 +1,37 @@ +// Network configuration file + +/* + * List here any LAN subnets this server is in. + * Example: + * - char- (or map-) server's IP in LAN is 192.168.0.10 + * - Public IP is 198.51.100.37 + * If the list contains "192.168.0.10:255.255.255.0", any clients connecting + * from the same 192.168.0.0/24 network will be presented with the LAN IP + * (192.168.0.10) in the server list, rather than the public IP (198.51.100.37). + */ +lan_subnets: ( + "127.0.0.1:255.0.0.0", + // "192.168.1.1:255.255.255.0", +) + +/* + * List here any IP ranges a char- or map-server can connect from. + * A wildcard of "0.0.0.0:0.0.0.0" means that server connections are allowed + * from ANY IP. (not recommended). + */ +allowed: ( + "0.0.0.0:0.0.0.0", + // "127.0.0.1:255.0.0.0", +) + +/* + * List here any IP ranges a char- or map-server can connect from. These ranges + * will also be excluded from the automatic ipban in casee of password failure. + * Any entry present in this list is also automatically included in the + * allowed IP list. + * Note: This may be a security threat. Only edit this list if you know what + * you are doing. + */ +trusted: ( + "127.0.0.1:255.0.0.0", +) diff --git a/conf/subnet.conf b/conf/subnet.conf deleted file mode 100644 index 5f2c75a99..000000000 --- a/conf/subnet.conf +++ /dev/null @@ -1,7 +0,0 @@ -// Subnet support file -// Format is: -// subnet: net-submask:char_ip:map_ip -// you can add more than one subnet - -subnet: 255.0.0.0:127.0.0.1:127.0.0.1 -subnet: 0.0.0.0:127.0.0.1:127.0.0.1 diff --git a/src/char/char.c b/src/char/char.c index b6ce70985..c731c89ee 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -121,14 +121,6 @@ int log_inter = 1; // logging inter or not [devil] int char_aegis_delete = 0; // Verify if char is in guild/party or char and reacts as Aegis does (doesn't allow deletion), see chr->delete2_req for more information -// Advanced subnet check [LuzZza] -struct s_subnet { - uint32 mask; - uint32 char_ip; - uint32 map_ip; -} subnet[16]; -int subnet_count = 0; - int max_connect_user = -1; int gm_allow_group = -1; int autosave_interval = DEFAULT_AUTOSAVE_INTERVAL; @@ -4171,20 +4163,22 @@ static int char_mapif_init(int fd) return inter->mapif_init(fd); } -//-------------------------------------------- -// Test to know if an IP come from LAN or WAN. -//-------------------------------------------- -int char_lan_subnetcheck(uint32 ip) +/** + * Checks whether the given IP comes from LAN or WAN. + * + * @param ip IP address to check. + * @retval 0 if it is a WAN IP. + * @return the appropriate LAN server address to send, if it is a LAN IP. + */ +uint32 char_lan_subnet_check(uint32 ip) { - int i; - ARR_FIND( 0, subnet_count, i, (subnet[i].char_ip & subnet[i].mask) == (ip & subnet[i].mask) ); - if( i < subnet_count ) { - ShowInfo("Subnet check [%u.%u.%u.%u]: Matches "CL_CYAN"%u.%u.%u.%u/%u.%u.%u.%u"CL_RESET"\n", CONVIP(ip), CONVIP(subnet[i].char_ip & subnet[i].mask), CONVIP(subnet[i].mask)); - return subnet[i].map_ip; - } else { - ShowInfo("Subnet check [%u.%u.%u.%u]: "CL_CYAN"WAN"CL_RESET"\n", CONVIP(ip)); - return 0; + struct s_subnet lan = {0}; + if (sockt->lan_subnet_check(ip, &lan)) { + ShowInfo("Subnet check [%u.%u.%u.%u]: Matches "CL_CYAN"%u.%u.%u.%u/%u.%u.%u.%u"CL_RESET"\n", CONVIP(ip), CONVIP(lan.ip & lan.mask), CONVIP(lan.mask)); + return lan.ip; } + ShowInfo("Subnet check [%u.%u.%u.%u]: "CL_CYAN"WAN"CL_RESET"\n", CONVIP(ip)); + return 0; } @@ -4662,7 +4656,7 @@ void char_parse_char_select(int fd, struct char_session_data* sd, uint32 ipl) return; } - subnet_map_ip = chr->lan_subnetcheck(ipl); // Advanced subnet check [LuzZza] + subnet_map_ip = chr->lan_subnet_check(ipl); //Send player to map chr->send_map_info(fd, i, subnet_map_ip, cd); @@ -4971,7 +4965,7 @@ void char_parse_char_login_map_server(int fd, uint32 ipl) i == ARRAYLENGTH(chr->server) || strcmp(l_user, chr->userid) != 0 || strcmp(l_pass, chr->passwd) != 0 || - !chr->lan_subnetcheck(ipl)) + !sockt->allowed_ip_check(ipl)) { chr->login_map_server_ack(fd, 3); // Failure } else { @@ -5449,60 +5443,6 @@ static int char_online_data_cleanup(int tid, int64 tick, int id, intptr_t data) return 0; } -//---------------------------------- -// Reading LAN Support configuration -// Rewrote: Advanced subnet check [LuzZza] -//---------------------------------- -int char_lan_config_read(const char *lancfgName) -{ - FILE *fp; - int line_num = 0; - char line[1024], w1[64], w2[64], w3[64], w4[64]; - - if((fp = fopen(lancfgName, "r")) == NULL) { - ShowWarning("LAN Support configuration file is not found: %s\n", lancfgName); - return 1; - } - - while(fgets(line, sizeof(line), fp)) { - line_num++; - if ((line[0] == '/' && line[1] == '/') || line[0] == '\n' || line[1] == '\n') - continue; - - if (sscanf(line,"%63[^:]: %63[^:]:%63[^:]:%63[^\r\n]", w1, w2, w3, w4) != 4) { - - ShowWarning("Error syntax of configuration file %s in line %d.\n", lancfgName, line_num); - continue; - } - - remove_control_chars(w1); - remove_control_chars(w2); - remove_control_chars(w3); - remove_control_chars(w4); - - if( strcmpi(w1, "subnet") == 0 ) - { - subnet[subnet_count].mask = str2ip(w2); - subnet[subnet_count].char_ip = str2ip(w3); - subnet[subnet_count].map_ip = str2ip(w4); - - if( (subnet[subnet_count].char_ip & subnet[subnet_count].mask) != (subnet[subnet_count].map_ip & subnet[subnet_count].mask) ) - { - ShowError("%s: Configuration Error: The char server (%s) and map server (%s) belong to different subnetworks!\n", lancfgName, w3, w4); - continue; - } - - subnet_count++; - } - } - - if( subnet_count > 1 ) /* only useful if there is more than 1 */ - ShowStatus("Read information about %d subnetworks.\n", subnet_count); - - fclose(fp); - return 0; -} - void char_sql_config_read(const char* cfgName) { char line[1024], w1[1024], w2[1024]; @@ -5826,7 +5766,7 @@ int do_final(void) { aFree(chr->server[i].map); aFree(chr->CHAR_CONF_NAME); - aFree(chr->LAN_CONF_NAME); + aFree(chr->NET_CONF_NAME); aFree(chr->SQL_CONF_NAME); aFree(chr->INTER_CONF_NAME); @@ -5911,15 +5851,15 @@ static CMDLINEARG(interconfig) return true; } /** - * --lan-config handler + * --net-config handler * - * Overrides the default subnet configuration file. + * Overrides the default network configuration file. * @see cmdline->exec */ -static CMDLINEARG(lanconfig) +static CMDLINEARG(netconfig) { - aFree(chr->LAN_CONF_NAME); - chr->LAN_CONF_NAME = aStrdup(params); + aFree(chr->NET_CONF_NAME); + chr->NET_CONF_NAME = aStrdup(params); return true; } /** @@ -5929,7 +5869,7 @@ void cmdline_args_init_local(void) { CMDLINEARG_DEF2(char-config, charconfig, "Alternative char-server configuration.", CMDLINE_OPT_PARAM); CMDLINEARG_DEF2(inter-config, interconfig, "Alternative inter-server configuration.", CMDLINE_OPT_PARAM); - CMDLINEARG_DEF2(lan-config, lanconfig, "Alternative subnet configuration.", CMDLINE_OPT_PARAM); + CMDLINEARG_DEF2(net-config, netconfig, "Alternative network configuration.", CMDLINE_OPT_PARAM); } int do_init(int argc, char **argv) { @@ -5939,7 +5879,7 @@ int do_init(int argc, char **argv) { char_load_defaults(); chr->CHAR_CONF_NAME = aStrdup("conf/char-server.conf"); - chr->LAN_CONF_NAME = aStrdup("conf/subnet.conf"); + chr->NET_CONF_NAME = aStrdup("conf/network.conf"); chr->SQL_CONF_NAME = aStrdup("conf/inter-server.conf"); chr->INTER_CONF_NAME = aStrdup("conf/inter-server.conf"); @@ -5958,7 +5898,7 @@ int do_init(int argc, char **argv) { cmdline->exec(argc, argv, CMDLINE_OPT_NORMAL); chr->config_read(chr->CHAR_CONF_NAME); - chr->lan_config_read(chr->LAN_CONF_NAME); + sockt->net_config_read(chr->NET_CONF_NAME); chr->sql_config_read(chr->SQL_CONF_NAME); if (strcmp(chr->userid, "s1")==0 && strcmp(chr->passwd, "p1")==0) { @@ -6194,7 +6134,7 @@ void char_defaults(void) chr->parse_frommap = char_parse_frommap; chr->search_mapserver = char_search_mapserver; chr->mapif_init = char_mapif_init; - chr->lan_subnetcheck = char_lan_subnetcheck; + chr->lan_subnet_check = char_lan_subnet_check; chr->delete2_ack = char_delete2_ack; chr->delete2_accept_actual_ack = char_delete2_accept_actual_ack; chr->delete2_accept_ack = char_delete2_accept_ack; @@ -6243,7 +6183,6 @@ void char_defaults(void) chr->check_connect_login_server = char_check_connect_login_server; chr->online_data_cleanup_sub = char_online_data_cleanup_sub; chr->online_data_cleanup = char_online_data_cleanup; - chr->lan_config_read = char_lan_config_read; chr->sql_config_read = char_sql_config_read; chr->config_dispatch = char_config_dispatch; chr->config_read = char_config_read; diff --git a/src/char/char.h b/src/char/char.h index b3aa7bc34..3b6e0fa8c 100644 --- a/src/char/char.h +++ b/src/char/char.h @@ -145,7 +145,7 @@ struct char_interface { int new_display; char *CHAR_CONF_NAME; - char *LAN_CONF_NAME; + char *NET_CONF_NAME; ///< Network config filename char *SQL_CONF_NAME; char *INTER_CONF_NAME; @@ -256,7 +256,7 @@ struct char_interface { int (*parse_frommap) (int fd); int (*search_mapserver) (unsigned short map, uint32 ip, uint16 port); int (*mapif_init) (int fd); - int (*lan_subnetcheck) (uint32 ip); + uint32 (*lan_subnet_check) (uint32 ip); void (*delete2_ack) (int fd, int char_id, uint32 result, time_t delete_date); void (*delete2_accept_actual_ack) (int fd, int char_id, uint32 result); void (*delete2_accept_ack) (int fd, int char_id, uint32 result); @@ -305,7 +305,6 @@ struct char_interface { int (*check_connect_login_server) (int tid, int64 tick, int id, intptr_t data); int (*online_data_cleanup_sub) (DBKey key, DBData *data, va_list ap); int (*online_data_cleanup) (int tid, int64 tick, int id, intptr_t data); - int (*lan_config_read) (const char *lancfgName); void (*sql_config_read) (const char* cfgName); void (*config_dispatch) (char *w1, char *w2); int (*config_read) (const char* cfgName); diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h index a27dbeb07..584cab5c9 100644 --- a/src/common/HPMDataCheck.h +++ b/src/common/HPMDataCheck.h @@ -187,6 +187,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = { #endif // COMMON_NULLPO_H #ifdef COMMON_SOCKET_H { "hSockOpt", sizeof(struct hSockOpt), SERVER_TYPE_ALL }, + { "s_subnet", sizeof(struct s_subnet), SERVER_TYPE_ALL }, { "socket_data", sizeof(struct socket_data), SERVER_TYPE_ALL }, { "socket_interface", sizeof(struct socket_interface), SERVER_TYPE_ALL }, #else diff --git a/src/common/HPMi.h b/src/common/HPMi.h index b700c1b73..bf4eb83c8 100644 --- a/src/common/HPMi.h +++ b/src/common/HPMi.h @@ -200,7 +200,7 @@ enum HPluginConfType { #define addGroupPermission(pcgname,maskptr) HPMi->addPCGPermission(HPMi->pid,pcgname,&maskptr) /* Hercules Plugin Mananger Include Interface */ -HPExport struct HPMi_interface { +struct HPMi_interface { /* */ unsigned int pid; /* */ diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h index ce8fc6bcf..575428f96 100644 --- a/src/common/cbasetypes.h +++ b/src/common/cbasetypes.h @@ -240,7 +240,9 @@ typedef uintptr_t uintptr; #define strcasecmp stricmp #define strncasecmp strnicmp #define strncmpi strnicmp +#if defined(__BORLANDC__) || _MSC_VER < 1900 #define snprintf _snprintf +#endif #if defined(_MSC_VER) && _MSC_VER < 1400 #define vsnprintf _vsnprintf #endif diff --git a/src/common/socket.c b/src/common/socket.c index 17c31db50..830877044 100644 --- a/src/common/socket.c +++ b/src/common/socket.c @@ -14,6 +14,7 @@ #include "common/db.h" #include "common/malloc.h" #include "common/mmo.h" +#include "common/nullpo.h" #include "common/showmsg.h" #include "common/strlib.h" #include "common/timer.h" @@ -1228,6 +1229,21 @@ void socket_final(void) aFree(session[0]); aFree(session); + + if (sockt->lan_subnet) + aFree(sockt->lan_subnet); + sockt->lan_subnet = NULL; + sockt->lan_subnet_count = 0; + + if (sockt->allowed_ip) + aFree(sockt->allowed_ip); + sockt->allowed_ip = NULL; + sockt->allowed_ip_count = 0; + + if (sockt->trusted_ip) + aFree(sockt->trusted_ip); + sockt->trusted_ip = NULL; + sockt->trusted_ip_count = 0; } /// Closes a socket. @@ -1589,6 +1605,164 @@ void send_shortlist_do_sends() } #endif +/** + * Checks whether the given IP comes from LAN or WAN. + * + * @param[in] ip IP address to check. + * @param[out] info Verbose output, if requested. Filled with the matching entry. Ignored if NULL. + * @retval 0 if it is a WAN IP. + * @return the appropriate LAN server address to send, if it is a LAN IP. + */ +uint32 socket_lan_subnet_check(uint32 ip, struct s_subnet *info) +{ + int i; + ARR_FIND(0, sockt->lan_subnet_count, i, (sockt->lan_subnet[i].ip & sockt->lan_subnet[i].mask) == (ip & sockt->lan_subnet[i].mask)); + if (i < sockt->lan_subnet_count) { + if (info) { + info->ip = sockt->lan_subnet[i].ip; + info->mask = sockt->lan_subnet[i].mask; + } + return sockt->lan_subnet[i].ip; + } + if (info) { + info->ip = info->mask = 0; + } + return 0; +} + +/** + * Checks whether the given IP is allowed to connect as a server. + * + * @param ip IP address to check. + * @retval true if we allow server connections from the given IP. + * @retval false otherwise. + */ +bool socket_allowed_ip_check(uint32 ip) +{ + int i; + ARR_FIND(0, sockt->allowed_ip_count, i, (sockt->allowed_ip[i].ip & sockt->allowed_ip[i].mask) == (ip & sockt->allowed_ip[i].mask) ); + if (i < sockt->allowed_ip_count) + return true; + return sockt->trusted_ip_check(ip); // If an address is trusted, it's automatically also allowed. +} + +/** + * Checks whether the given IP is trusted and can skip ipban checks. + * + * @param ip IP address to check. + * @retval true if we trust the given IP. + * @retval false otherwise. + */ +bool socket_trusted_ip_check(uint32 ip) +{ + int i; + ARR_FIND(0, sockt->trusted_ip_count, i, (sockt->trusted_ip[i].ip & sockt->trusted_ip[i].mask) == (ip & sockt->trusted_ip[i].mask)); + if (i < sockt->trusted_ip_count) + return true; + return false; +} + +/** + * Helper function to read a list of network.conf values. + * + * Entries will be appended to the variable-size array pointed to by list/count. + * + * @param[in] t The list to parse. + * @param[in,out] list Pointer to the head of the output array to append to. Must not be NULL (but the array may be empty). + * @param[in,out] count Pointer to the counter of the output array to append to. Must not be NULL (but it may contain zero). + * @param[in] filename Current filename, for output/logging reasons. + * @param[in] groupname Current group name, for output/logging reasons. + * @return The amount of entries read, zero in case of errors. + */ +int socket_net_config_read_sub(config_setting_t *t, struct s_subnet **list, int *count, const char *filename, const char *groupname) +{ + int i, len; + char ipbuf[64], maskbuf[64]; + + nullpo_retr(0, list); + nullpo_retr(0, count); + + if (t == NULL) + return 0; + + len = libconfig->setting_length(t); + + for (i = 0; i < len; ++i) { + const char *subnet = libconfig->setting_get_string_elem(t, i); + struct s_subnet *l = NULL; + + if (sscanf(subnet, "%63[^:]:%63[^:]", ipbuf, maskbuf) != 2) { + ShowWarning("Invalid IP:Subnet entry in configuration file %s: '%s' (%s)\n", filename, subnet, groupname); + } + RECREATE(*list, struct s_subnet, *count + 1); + l = *list; + l[*count].ip = str2ip(ipbuf); + l[*count].mask = str2ip(maskbuf); + ++*count; + } + return *count; +} + +/** + * Reads the network configuration file. + * + * @param filename The filename to read from. + */ +void socket_net_config_read(const char *filename) +{ + config_t network_config; + int i; + nullpo_retv(filename); + + if (libconfig->read_file(&network_config, filename)) { + ShowError("LAN Support configuration file is not found: '%s'. This server won't be able to accept connections from any servers.\n", filename); + return; + } + + if (sockt->lan_subnet) { + aFree(sockt->lan_subnet); + sockt->lan_subnet = NULL; + } + sockt->lan_subnet_count = 0; + if (sockt->net_config_read_sub(libconfig->lookup(&network_config, "lan_subnets"), &sockt->lan_subnet, &sockt->lan_subnet_count, filename, "lan_subnets") > 0) + ShowStatus("Read information about %d LAN subnets.\n", sockt->lan_subnet_count); + + if (sockt->trusted_ip) { + aFree(sockt->trusted_ip); + sockt->trusted_ip = NULL; + } + sockt->trusted_ip_count = 0; + if (sockt->net_config_read_sub(libconfig->lookup(&network_config, "trusted"), &sockt->trusted_ip, &sockt->trusted_ip_count, filename, "trusted") > 0) + ShowStatus("Read information about %d trusted IP ranges.\n", sockt->trusted_ip_count); + for (i = 0; i < sockt->allowed_ip_count; ++i) { + if ((sockt->allowed_ip[i].ip & sockt->allowed_ip[i].mask) == 0) { + ShowError("Using a wildcard IP range in the trusted server IPs is NOT RECOMMENDED.\n"); + ShowNotice("Please edit your '%s' trusted list to fit your network configuration.\n", filename); + break; + } + } + + if (sockt->allowed_ip) { + aFree(sockt->allowed_ip); + sockt->allowed_ip = NULL; + } + sockt->allowed_ip_count = 0; + if (sockt->net_config_read_sub(libconfig->lookup(&network_config, "allowed"), &sockt->allowed_ip, &sockt->allowed_ip_count, filename, "allowed") > 0) + ShowStatus("Read information about %d allowed server IP ranges.\n", sockt->allowed_ip_count); + if (sockt->allowed_ip_count == 0) { + ShowError("No allowed server IP ranges configured. This server won't be able to accept connections from any char servers.\n"); + } + for (i = 0; i < sockt->allowed_ip_count; ++i) { + if ((sockt->allowed_ip[i].ip & sockt->allowed_ip[i].mask) == 0) { + ShowWarning("Using a wildcard IP range in the allowed server IPs is NOT RECOMMENDED.\n"); + ShowNotice("Please edit your '%s' allowed list to fit your network configuration.\n", filename); + break; + } + } + libconfig->destroy(&network_config); + return; +} + void socket_defaults(void) { sockt = &sockt_s; @@ -1600,6 +1774,13 @@ void socket_defaults(void) { memset(&sockt->addr_, 0, sizeof(sockt->addr_)); sockt->naddr_ = 0; /* */ + sockt->lan_subnet_count = 0; + sockt->lan_subnet = NULL; + sockt->allowed_ip_count = 0; + sockt->allowed_ip = NULL; + sockt->trusted_ip_count = 0; + sockt->trusted_ip = NULL; + sockt->init = socket_init; sockt->final = socket_final; /* */ @@ -1628,4 +1809,10 @@ void socket_defaults(void) { sockt->ntows = ntows; sockt->getips = socket_getips; sockt->set_eof = set_eof; + + sockt->lan_subnet_check = socket_lan_subnet_check; + sockt->allowed_ip_check = socket_allowed_ip_check; + sockt->trusted_ip_check = socket_trusted_ip_check; + sockt->net_config_read_sub = socket_net_config_read_sub; + sockt->net_config_read = socket_net_config_read; } diff --git a/src/common/socket.h b/src/common/socket.h index bd5d9baa2..26b674d43 100644 --- a/src/common/socket.h +++ b/src/common/socket.h @@ -6,6 +6,7 @@ #define COMMON_SOCKET_H #include "common/cbasetypes.h" +#include "common/conf.h" #ifdef WIN32 # include "common/winapi.h" @@ -105,6 +106,12 @@ struct hSockOpt { unsigned int setTimeo : 1; }; +/// Subnet/IP range in the IP/Mask format. +struct s_subnet { + uint32 ip; + uint32 mask; +}; + /// Use a shortlist of sockets instead of iterating all sessions for sockets /// that have data to send or need eof handling. /// Adapted to use a static array instead of a linked list. @@ -132,6 +139,14 @@ struct socket_interface { /* */ uint32 addr_[16]; // ip addresses of local host (host byte order) int naddr_; // # of ip addresses + + struct s_subnet *lan_subnet; ///< LAN subnets array + int lan_subnet_count; ///< LAN subnets count + struct s_subnet *trusted_ip; ///< Trusted IP ranges array + int trusted_ip_count; ///< Trusted IP ranges count + struct s_subnet *allowed_ip; ///< Allowed server IP ranges array + int allowed_ip_count; ///< Allowed server IP ranges count + /* */ void (*init) (void); void (*final) (void); @@ -165,6 +180,12 @@ struct socket_interface { int (*getips) (uint32* ips, int max); /* */ void (*set_eof) (int fd); + + uint32 (*lan_subnet_check) (uint32 ip, struct s_subnet *info); + bool (*allowed_ip_check) (uint32 ip); + bool (*trusted_ip_check) (uint32 ip); + int (*net_config_read_sub) (config_setting_t *t, struct s_subnet **list, int *count, const char *filename, const char *groupname); + void (*net_config_read) (const char *filename); }; struct socket_interface *sockt; diff --git a/src/common/sysinfo.c b/src/common/sysinfo.c index a27357e7e..105f300ad 100644 --- a/src/common/sysinfo.c +++ b/src/common/sysinfo.c @@ -197,7 +197,9 @@ enum windows_ver_suite { #define SYSINFO_COMPILER "Microsoft Visual C++ 2012 (v" EXPAND_AND_QUOTE(_MSC_VER) ")" #elif _MSC_VER >= 1800 && _MSC_VER < 1900 #define SYSINFO_COMPILER "Microsoft Visual C++ 2013 (v" EXPAND_AND_QUOTE(_MSC_VER) ")" -#else // < 1300 || >= 1900 +#elif _MSC_VER >= 1900 && _MSC_VER < 2000 +#define SYSINFO_COMPILER "Microsoft Visual C++ 2015 (v" EXPAND_AND_QUOTE(_MSC_VER) ")" +#else // < 1300 || >= 2000 #define SYSINFO_COMPILER "Microsoft Visual C++ v" EXPAND_AND_QUOTE(_MSC_VER) #endif #else diff --git a/src/login/login.c b/src/login/login.c index caace34da..141ab5e2b 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -12,6 +12,7 @@ #include "login/loginlog.h" #include "common/HPM.h" #include "common/cbasetypes.h" +#include "common/conf.h" #include "common/core.h" #include "common/db.h" #include "common/malloc.h" @@ -238,65 +239,17 @@ bool login_check_password(const char* md5key, int passwdenc, const char* passwd, } } -//-------------------------------------------- -// Test to know if an IP come from LAN or WAN. -//-------------------------------------------- -int login_lan_subnetcheck(uint32 ip) -{ - int i; - ARR_FIND( 0, login_config.subnet_count, i, (login_config.subnet[i].char_ip & login_config.subnet[i].mask) == (ip & login_config.subnet[i].mask) ); - return ( i < login_config.subnet_count ) ? login_config.subnet[i].char_ip : 0; -} -//---------------------------------- -// Reading LAN Support configuration -//---------------------------------- -int login_lan_config_read(const char *lancfgName) +/** + * Checks whether the given IP comes from LAN or WAN. + * + * @param ip IP address to check. + * @retval 0 if it is a WAN IP. + * @return the appropriate LAN server address to send, if it is a LAN IP. + */ +uint32 login_lan_subnet_check(uint32 ip) { - FILE *fp; - int line_num = 0; - char line[1024], w1[64], w2[64], w3[64], w4[64]; - - nullpo_ret(lancfgName); - if((fp = fopen(lancfgName, "r")) == NULL) { - ShowWarning("LAN Support configuration file is not found: %s\n", lancfgName); - return 1; - } - - while(fgets(line, sizeof(line), fp)) - { - line_num++; - if ((line[0] == '/' && line[1] == '/') || line[0] == '\n' || line[1] == '\n') - continue; - - if (sscanf(line, "%63[^:]: %63[^:]:%63[^:]:%63[^\r\n]", w1, w2, w3, w4) != 4) { - ShowWarning("Error syntax of configuration file %s in line %d.\n", lancfgName, line_num); - continue; - } - - if( strcmpi(w1, "subnet") == 0 ) - { - login_config.subnet[login_config.subnet_count].mask = str2ip(w2); - login_config.subnet[login_config.subnet_count].char_ip = str2ip(w3); - login_config.subnet[login_config.subnet_count].map_ip = str2ip(w4); - - if( (login_config.subnet[login_config.subnet_count].char_ip - & login_config.subnet[login_config.subnet_count].mask) != (login_config.subnet[login_config.subnet_count].map_ip - & login_config.subnet[login_config.subnet_count].mask) ) - { - ShowError("%s: Configuration Error: The char server (%s) and map server (%s) belong to different subnetworks!\n", lancfgName, w3, w4); - continue; - } - - login_config.subnet_count++; - } - } - - if( login_config.subnet_count > 1 ) /* only useful if there is more than 1 available */ - ShowStatus("Read information about %d subnetworks.\n", login_config.subnet_count); - - fclose(fp); - return 0; + return sockt->lan_subnet_check(ip, NULL); } void login_fromchar_auth_ack(int fd, int account_id, uint32 login_id1, uint32 login_id2, uint8 sex, int request_id, struct login_auth_node* node) @@ -1233,7 +1186,6 @@ void login_auth_ok(struct login_session_data* sd) int fd = 0; uint32 ip; uint8 server_num, n; - uint32 subnet_char_ip; struct login_auth_node* node; int i; @@ -1308,12 +1260,13 @@ void login_auth_ok(struct login_session_data* sd) memset(WFIFOP(fd,20), 0, 24); WFIFOW(fd,44) = 0; // unknown WFIFOB(fd,46) = sex_str2num(sd->sex); - for( i = 0, n = 0; i < ARRAYLENGTH(server); ++i ) - { + for (i = 0, n = 0; i < ARRAYLENGTH(server); ++i) { + uint32 subnet_char_ip; + if( !session_isValid(server[i].fd) ) continue; - subnet_char_ip = login->lan_subnetcheck(ip); // Advanced subnet check [LuzZza] + subnet_char_ip = login->lan_subnet_check(ip); WFIFOL(fd,47+n*32) = htonl((subnet_char_ip) ? subnet_char_ip : server[i].ip); WFIFOW(fd,47+n*32+4) = ntows(htons(server[i].port)); // [!] LE byte order here [!] memcpy(WFIFOP(fd,47+n*32+6), server[i].name, 20); @@ -1393,7 +1346,7 @@ void login_auth_failed(struct login_session_data* sd, int result) login_log(ip, sd->userid, result, error); // FIXME: result can be 100, conflicting with the value 100 we use for successful login... } - if( result == 1 && login_config.dynamic_pass_failure_ban ) + if (result == 1 && login_config.dynamic_pass_failure_ban && !sockt->trusted_ip_check(ip)) ipban_log(ip); // log failed password attempt #if PACKETVER >= 20120000 /* not sure when this started */ @@ -1590,7 +1543,7 @@ void login_parse_request_connection(int fd, struct login_session_data* sd, const sd->account_id >= 0 && sd->account_id < ARRAYLENGTH(server) && !session_isValid(server[sd->account_id].fd) && - login->lan_subnetcheck(ipl)) + sockt->allowed_ip_check(ipl)) { ShowStatus("Connection of the char-server '%s' accepted.\n", server_name); safestrncpy(server[sd->account_id].name, server_name, sizeof(server[sd->account_id].name)); @@ -1637,7 +1590,7 @@ int login_parse_login(int fd) if( sd == NULL ) { // Perform ip-ban check - if( login_config.ipban && ipban_check(ipl) ) + if (login_config.ipban && !sockt->trusted_ip_check(ipl) && ipban_check(ipl)) { ShowStatus("Connection refused: IP isn't authorized (deny/allow, ip: %s).\n", ip); login_log(ipl, "unknown", -3, "ip banned"); @@ -1759,7 +1712,6 @@ void login_set_defaults() login_config.client_hash_check = 0; login_config.client_hash_nodes = NULL; - login_config.subnet_count = 0; } //----------------------------------- @@ -1929,7 +1881,7 @@ int do_final(void) { HPM_login_do_final(); aFree(login->LOGIN_CONF_NAME); - aFree(login->LAN_CONF_NAME); + aFree(login->NET_CONF_NAME); HPM->event(HPET_POST_FINAL); @@ -1984,15 +1936,15 @@ static CMDLINEARG(loginconfig) return true; } /** - * --lan-config handler + * --net-config handler * * Overrides the default subnet configuration file. * @see cmdline->exec */ -static CMDLINEARG(lanconfig) +static CMDLINEARG(netconfig) { - aFree(login->LAN_CONF_NAME); - login->LAN_CONF_NAME = aStrdup(params); + aFree(login->NET_CONF_NAME); + login->NET_CONF_NAME = aStrdup(params); return true; } /** @@ -2001,7 +1953,7 @@ static CMDLINEARG(lanconfig) void cmdline_args_init_local(void) { CMDLINEARG_DEF2(login-config, loginconfig, "Alternative login-server configuration.", CMDLINE_OPT_PARAM); - CMDLINEARG_DEF2(lan-config, lanconfig, "Alternative subnet configuration.", CMDLINE_OPT_PARAM); + CMDLINEARG_DEF2(net-config, netconfig, "Alternative subnet configuration.", CMDLINE_OPT_PARAM); } //------------------------------ @@ -2025,7 +1977,7 @@ int do_init(int argc, char** argv) login_set_defaults(); login->LOGIN_CONF_NAME = aStrdup("conf/login-server.conf"); - login->LAN_CONF_NAME = aStrdup("conf/subnet.conf"); + login->NET_CONF_NAME = aStrdup("conf/network.conf"); HPM_login_do_init(); HPM->symbol_defaults_sub = login_hp_symbols; @@ -2035,7 +1987,7 @@ int do_init(int argc, char** argv) cmdline->exec(argc, argv, CMDLINE_OPT_NORMAL); login_config_read(login->LOGIN_CONF_NAME); - login->lan_config_read(login->LAN_CONF_NAME); + sockt->net_config_read(login->NET_CONF_NAME); for( i = 0; i < ARRAYLENGTH(server); ++i ) chrif_server_init(i); @@ -2112,8 +2064,7 @@ void login_defaults(void) { login->sync_ip_addresses = login_sync_ip_addresses; login->check_encrypted = login_check_encrypted; login->check_password = login_check_password; - login->lan_subnetcheck = login_lan_subnetcheck; - login->lan_config_read = login_lan_config_read; + login->lan_subnet_check = login_lan_subnet_check; login->fromchar_auth_ack = login_fromchar_auth_ack; login->fromchar_accinfo = login_fromchar_accinfo; @@ -2159,5 +2110,5 @@ void login_defaults(void) { login->send_coding_key = login_send_coding_key; login->LOGIN_CONF_NAME = NULL; - login->LAN_CONF_NAME = NULL; + login->NET_CONF_NAME = NULL; } diff --git a/src/login/login.h b/src/login/login.h index de504db07..6dc4c875b 100644 --- a/src/login/login.h +++ b/src/login/login.h @@ -101,14 +101,6 @@ struct Login_Config { int client_hash_check; ///< flags for checking client md5 struct client_hash_node *client_hash_nodes; ///< linked list containg md5 hash for each gm group - - /// Advanced subnet check [LuzZza] - struct s_subnet { - uint32 mask; - uint32 char_ip; - uint32 map_ip; - } subnet[16]; - int subnet_count; }; struct login_auth_node { @@ -163,8 +155,7 @@ struct login_interface { int (*sync_ip_addresses) (int tid, int64 tick, int id, intptr_t data); bool (*check_encrypted) (const char* str1, const char* str2, const char* passwd); bool (*check_password) (const char* md5key, int passwdenc, const char* passwd, const char* refpass); - int (*lan_subnetcheck) (uint32 ip); - int (*lan_config_read) (const char *lancfgName); + uint32 (*lan_subnet_check) (uint32 ip); void (*fromchar_accinfo) (int fd, int account_id, int u_fd, int u_aid, int u_group, int map_fd, struct mmo_account *acc); void (*fromchar_account) (int fd, int account_id, struct mmo_account *acc); void (*fromchar_account_update_other) (int account_id, unsigned int state); @@ -207,7 +198,7 @@ struct login_interface { void (*parse_request_connection) (int fd, struct login_session_data* sd, const char *ip, uint32 ipl); int (*parse_login) (int fd); char *LOGIN_CONF_NAME; - char *LAN_CONF_NAME; + char *NET_CONF_NAME; ///< Network configuration filename }; struct login_interface *login; diff --git a/src/map/instance.c b/src/map/instance.c index f5688d02c..92acd1bbb 100644 --- a/src/map/instance.c +++ b/src/map/instance.c @@ -357,7 +357,7 @@ int instance_init_npc(struct block_list* bl, va_list args) { snprintf(evname, EVENT_NAME_LENGTH, "%s::OnInstanceInit", nd->exname); if( ( ev = strdb_get(npc->ev_db, evname) ) ) - script->run(ev->nd->u.scr.script, ev->pos, 0, ev->nd->bl.id); + script->run_npc(ev->nd->u.scr.script, ev->pos, 0, ev->nd->bl.id); return 1; } diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 7de99cf7e..644c16a00 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -75,7 +75,7 @@ struct item_data* itemdb_searchname(const char *str) { return item; //Second priority to Client displayed name. - if( item2 != 0 && strcasecmp(item->jname,str) == 0 ) + if (!item2 && strcasecmp(item->jname,str) == 0) item2 = item; } diff --git a/src/map/map.c b/src/map/map.c index 4da555cd5..e43d4d7f6 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -3770,7 +3770,7 @@ int inter_config_read(char *cfgName) { else if(strcmpi(w1,"use_sql_mob_skill_db")==0) { map->db_use_sql_mob_skill_db = config_switch(w2); ShowStatus ("Using monster skill database as SQL: '%s'\n", w2); - if (map->db_use_sql_mob_db) { + if (map->db_use_sql_mob_skill_db) { // Deprecated 2015-08-09 [Haru] ShowWarning("Support for the SQL monster skill database is deprecated and it will removed in future versions. " "Please upgrade to the non-sql version as soon as possible. " diff --git a/src/map/npc.c b/src/map/npc.c index 6acb93266..8733ee7e4 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -396,7 +396,7 @@ void npc_event_doall_sub(void *key, void *data, va_list ap) npc->event_sub(map->id2sd(rid), ev, buf); } else { - script->run(ev->nd->u.scr.script, ev->pos, rid, ev->nd->bl.id); + script->run_npc(ev->nd->u.scr.script, ev->pos, rid, ev->nd->bl.id); } (*c)++; } @@ -411,7 +411,7 @@ int npc_event_do(const char* name) else { struct event_data *ev = strdb_get(npc->ev_db, name); if (ev) { - script->run(ev->nd->u.scr.script, ev->pos, 0, ev->nd->bl.id); + script->run_npc(ev->nd->u.scr.script, ev->pos, 0, ev->nd->bl.id); return 1; } } @@ -596,7 +596,7 @@ int npc_timerevent(int tid, int64 tick, int id, intptr_t data) { } // Run the script - script->run(nd->u.scr.script,te->pos,nd->u.scr.rid,nd->bl.id); + script->run_npc(nd->u.scr.script,te->pos,nd->u.scr.rid,nd->bl.id); nd->u.scr.rid = old_rid; // Attached-rid should be restored anyway. if( sd ) @@ -745,7 +745,7 @@ void npc_timerevent_quit(struct map_session_data* sd) nd->u.scr.timer = ted->time; //Execute label - script->run(nd->u.scr.script,ev->pos,sd->bl.id,nd->bl.id); + script->run_npc(nd->u.scr.script,ev->pos,sd->bl.id,nd->bl.id); //Restore previous data. nd->u.scr.rid = old_rid; @@ -822,7 +822,7 @@ int npc_event_sub(struct map_session_data* sd, struct event_data* ev, const char npc->event_dequeue(sd); return 2; } - script->run(ev->nd->u.scr.script,ev->pos,sd->bl.id,ev->nd->bl.id); + script->run_npc(ev->nd->u.scr.script,ev->pos,sd->bl.id,ev->nd->bl.id); return 0; } @@ -1067,7 +1067,7 @@ int npc_touch_areanpc2(struct mob_data *md) break; // No OnTouchNPC Event 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); + script->run_npc(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 break; } @@ -1255,7 +1255,7 @@ int npc_click(struct map_session_data* sd, struct npc_data* nd) if( !npc->trader_open(sd,nd) ) return 1; } else - script->run(nd->u.scr.script,0,sd->bl.id,nd->bl.id); + script->run_npc(nd->u.scr.script,0,sd->bl.id,nd->bl.id); break; case TOMB: npc->run_tomb(sd,nd); @@ -1654,7 +1654,7 @@ void npc_trader_count_funds(struct npc_data *nd, struct map_session_data *sd) { snprintf(evname, EVENT_NAME_LENGTH, "%s::OnCountFunds",nd->exname); if ( (ev = strdb_get(npc->ev_db, evname)) ) - script->run(ev->nd->u.scr.script, ev->pos, sd->bl.id, ev->nd->bl.id); + script->run_npc(ev->nd->u.scr.script, ev->pos, sd->bl.id, ev->nd->bl.id); else ShowError("npc_trader_count_funds: '%s' event '%s' not found, operation failed\n",nd->exname,evname); @@ -1682,7 +1682,7 @@ bool npc_trader_pay(struct npc_data *nd, struct map_session_data *sd, int price, pc->setreg(sd,script->add_str("@price"),price); pc->setreg(sd,script->add_str("@points"),points); - script->run(ev->nd->u.scr.script, ev->pos, sd->bl.id, ev->nd->bl.id); + script->run_npc(ev->nd->u.scr.script, ev->pos, sd->bl.id, ev->nd->bl.id); } else ShowError("npc_trader_pay: '%s' event '%s' not found, operation failed\n",nd->exname,evname); @@ -3037,7 +3037,7 @@ const char* npc_parse_script(char* w1, char* w2, char* w3, char* w4, const char* if( ( ev = (struct event_data*)strdb_get(npc->ev_db, evname) ) ) { //Execute OnInit - script->run(nd->u.scr.script,ev->pos,0,nd->bl.id); + script->run_npc(nd->u.scr.script,ev->pos,0,nd->bl.id); } } @@ -3208,7 +3208,7 @@ const char* npc_parse_duplicate(char* w1, char* w2, char* w3, char* w4, const ch if( ( ev = (struct event_data*)strdb_get(npc->ev_db, evname) ) ) { //Execute OnInit - script->run(nd->u.scr.script,ev->pos,0,nd->bl.id); + script->run_npc(nd->u.scr.script,ev->pos,0,nd->bl.id); } } diff --git a/src/map/npc_chat.c b/src/map/npc_chat.c index 3fe379f36..67b78dcea 100644 --- a/src/map/npc_chat.c +++ b/src/map/npc_chat.c @@ -371,7 +371,7 @@ int npc_chat_sub(struct block_list* bl, va_list ap) } // run the npc script - script->run(nd->u.scr.script,lst[i].pos,sd->bl.id,nd->bl.id); + script->run_npc(nd->u.scr.script,lst[i].pos,sd->bl.id,nd->bl.id); return 0; } } diff --git a/src/map/pc.c b/src/map/pc.c index 5abf1050f..bc45f9184 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4882,7 +4882,7 @@ int pc_isUseitem(struct map_session_data *sd,int n) int pc_useitem(struct map_session_data *sd,int n) { int64 tick = timer->gettick(); int amount, nameid, i; - struct script_code *item_script; + bool removeItem = false; nullpo_ret(sd); @@ -4994,38 +4994,36 @@ int pc_useitem(struct map_session_data *sd,int n) { sd->catch_target_class = -1; amount = sd->status.inventory[n].amount; - item_script = sd->inventory_data[n]->script; //Check if the item is to be consumed immediately [Skotlex] if (sd->inventory_data[n]->flag.delay_consume || sd->inventory_data[n]->flag.keepafteruse) clif->useitemack(sd,n,amount,true); else { if (sd->status.inventory[n].expire_time == 0) { clif->useitemack(sd, n, amount - 1, true); - pc->delitem(sd, n, 1, 1, DELITEM_NORMAL, LOG_TYPE_CONSUME); // Rental Usable Items are not deleted until expiration + removeItem = true; } else { clif->useitemack(sd, n, 0, false); } } + if(sd->status.inventory[n].card[0]==CARD0_CREATE && pc->famerank(MakeDWord(sd->status.inventory[n].card[2],sd->status.inventory[n].card[3]), MAPID_ALCHEMIST)) { - script->potion_flag = 2; // Famous player's potions have 50% more efficiency - if (sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_ROGUE) - script->potion_flag = 3; //Even more effective potions. + script->potion_flag = 2; // Famous player's potions have 50% more efficiency + if (sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_ROGUE) + script->potion_flag = 3; //Even more effective potions. } //Update item use time. sd->canuseitem_tick = tick + battle_config.item_use_interval; if( itemdb_iscashfood(nameid) ) sd->canusecashfood_tick = tick + battle_config.cashfood_use_interval; - - script->current_item_id = nameid; - - script->run(item_script,0,sd->bl.id,npc->fake_nd->bl.id); - - script->current_item_id = 0; + + script->run_use_script(sd, sd->inventory_data[n], npc->fake_nd->bl.id); script->potion_flag = 0; - + + if (removeItem) + pc->delitem(sd, n, 1, 1, DELITEM_NORMAL, LOG_TYPE_CONSUME); return 1; } @@ -9642,7 +9640,8 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos) //OnEquip script [Skotlex] if (id->equip_script) - script->run(id->equip_script,0,sd->bl.id,npc->fake_nd->bl.id); + script->run_item_equip_script(sd, id, npc->fake_nd->bl.id); + if(itemdb_isspecial(sd->status.inventory[n].card[0])) ; //No cards else { @@ -9651,8 +9650,8 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos) if (!sd->status.inventory[n].card[i]) continue; if ( ( data = itemdb->exists(sd->status.inventory[n].card[i]) ) != NULL ) { - if( data->equip_script ) - script->run(data->equip_script,0,sd->bl.id,npc->fake_nd->bl.id); + if (data->equip_script) + script->run_item_equip_script(sd, data, npc->fake_nd->bl.id); } } } @@ -9819,10 +9818,10 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) if ( battle_config.unequip_restricted_equipment & 1 ) { ARR_FIND(0, map->list[sd->bl.m].zone->disabled_items_count, i, map->list[sd->bl.m].zone->disabled_items[i] == sd->status.inventory[n].nameid); if ( i == map->list[sd->bl.m].zone->disabled_items_count ) - script->run(sd->inventory_data[n]->unequip_script,0,sd->bl.id,npc->fake_nd->bl.id); + script->run_item_unequip_script(sd, sd->inventory_data[n], npc->fake_nd->bl.id); } else - script->run(sd->inventory_data[n]->unequip_script,0,sd->bl.id,npc->fake_nd->bl.id); + script->run_item_unequip_script(sd, sd->inventory_data[n], npc->fake_nd->bl.id); } if(itemdb_isspecial(sd->status.inventory[n].card[0])) ; //No cards @@ -9838,10 +9837,10 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) int j; ARR_FIND(0, map->list[sd->bl.m].zone->disabled_items_count, j, map->list[sd->bl.m].zone->disabled_items[j] == sd->status.inventory[n].card[i]); if ( j == map->list[sd->bl.m].zone->disabled_items_count ) - script->run(data->unequip_script,0,sd->bl.id,npc->fake_nd->bl.id); + script->run_item_unequip_script(sd, data, npc->fake_nd->bl.id); } else - script->run(data->unequip_script,0,sd->bl.id,npc->fake_nd->bl.id); + script->run_item_unequip_script(sd, data, npc->fake_nd->bl.id); } } diff --git a/src/map/pet.c b/src/map/pet.c index 2379ec984..b612a9505 100644 --- a/src/map/pet.c +++ b/src/map/pet.c @@ -367,7 +367,7 @@ int pet_data_init(struct map_session_data *sd, struct s_pet *petinfo) pd->state.skillbonus = 0; if( battle_config.pet_status_support ) - script->run(pet->db[i].pet_script,0,sd->bl.id,0); + script->run_pet(pet->db[i].pet_script,0,sd->bl.id,0); if( pd->petDB ) { if( pd->petDB->equip_script ) diff --git a/src/map/script.c b/src/map/script.c index 4c669bf20..23c6af0f8 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -4035,7 +4035,7 @@ int run_func(struct script_state *st) /*========================================== * script execution *------------------------------------------*/ -void run_script(struct script_code *rootscript,int pos,int rid,int oid) { +void run_script(struct script_code *rootscript, int pos, int rid, int oid) { struct script_state *st; if( rootscript == NULL || pos < 0 ) @@ -10453,7 +10453,7 @@ BUILDIN(itemeffect) { } } - script->run( item_data->script, 0, sd->bl.id, nd->bl.id ); + script->run_use_script(sd, item_data, nd->bl.id); return true; } @@ -19834,6 +19834,54 @@ bool script_hp_add(char *name, char *args, bool (*func)(struct script_state *st) return script->add_builtin(&buildin, true); } +void script_run_use_script(struct map_session_data *sd, struct item_data *data, int oid) __attribute__((nonnull (1))); + +/** + * Run use script for item. + * + * @param sd player session data. Must be correct and checked before. + * @param n item index in inventory. Must be correct and checked before. + * @param oid npc id. Can be also 0 or fake npc id. + */ +void script_run_use_script(struct map_session_data *sd, struct item_data *data, int oid) +{ + script->current_item_id = data->nameid; + script->run(data->script, 0, sd->bl.id, oid); + script->current_item_id = 0; +} + +void script_run_item_equip_script(struct map_session_data *sd, struct item_data *data, int oid) __attribute__((nonnull (1, 2))); + +/** + * Run item equip script for item. + * + * @param sd player session data. Must be correct and checked before. + * @param data equipped item data. Must be correct and checked before. + * @param oid npc id. Can be also 0 or fake npc id. + */ +void script_run_item_equip_script(struct map_session_data *sd, struct item_data *data, int oid) +{ + script->current_item_id = data->nameid; + script->run(data->equip_script, 0, sd->bl.id, oid); + script->current_item_id = 0; +} + +void script_run_item_unequip_script(struct map_session_data *sd, struct item_data *data, int oid) __attribute__((nonnull (1, 2))); + +/** + * Run item unequip script for item. + * + * @param sd player session data. Must be correct and checked before. + * @param data unequipped item data. Must be correct and checked before. + * @param oid npc id. Can be also 0 or fake npc id. + */ +void script_run_item_unequip_script(struct map_session_data *sd, struct item_data *data, int oid) +{ + script->current_item_id = data->nameid; + script->run(data->unequip_script, 0, sd->bl.id, oid); + script->current_item_id = 0; +} + #define BUILDIN_DEF(x,args) { buildin_ ## x , #x , args, false } #define BUILDIN_DEF2(x,x2,args) { buildin_ ## x , x2 , args, false } #define BUILDIN_DEF_DEPRECATED(x,args) { buildin_ ## x , #x , args, true } @@ -20613,6 +20661,8 @@ void script_defaults(void) { script->get_constant = script_get_constant; script->label_add = script_label_add; script->run = run_script; + script->run_npc = run_script; + script->run_pet = run_script; script->run_main = run_script_main; script->run_timer = run_script_timer; script->set_var = set_var; @@ -20778,5 +20828,8 @@ void script_defaults(void) { script->add_language = script_add_language; script->get_translation_file_name = script_get_translation_file_name; script->parser_clean_leftovers = script_parser_clean_leftovers; - + + script->run_use_script = script_run_use_script; + script->run_item_equip_script = script_run_item_equip_script; + script->run_item_unequip_script = script_run_item_unequip_script; } diff --git a/src/map/script.h b/src/map/script.h index 93d60f416..b3d2a3c8a 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -19,6 +19,7 @@ * Declarations **/ struct eri; +struct item_data; /** * Defines @@ -636,7 +637,9 @@ struct script_interface { void (*set_constant2) (const char *name, int value, bool isparameter); bool (*get_constant) (const char* name, int* value); void (*label_add)(int key, int pos); - void (*run) (struct script_code *rootscript,int pos,int rid,int oid); + void (*run) (struct script_code *rootscript, int pos, int rid, int oid); + void (*run_npc) (struct script_code *rootscript, int pos, int rid, int oid); + void (*run_pet) (struct script_code *rootscript, int pos, int rid, int oid); void (*run_main) (struct script_state *st); int (*run_timer) (int tid, int64 tick, int id, intptr_t data); int (*set_var) (struct map_session_data *sd, char *name, void *val); @@ -765,6 +768,9 @@ struct script_interface { uint8 (*add_language) (const char *name); const char *(*get_translation_file_name) (const char *file); void (*parser_clean_leftovers) (void); + void (*run_use_script) (struct map_session_data *sd, struct item_data *data, int oid); + void (*run_item_equip_script) (struct map_session_data *sd, struct item_data *data, int oid); + void (*run_item_unequip_script) (struct map_session_data *sd, struct item_data *data, int oid); }; struct script_interface *script; diff --git a/src/map/skill.c b/src/map/skill.c index f2154aa22..e3f85f8d1 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6858,7 +6858,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin script->potion_flag = 1; script->potion_hp = script->potion_sp = script->potion_per_hp = script->potion_per_sp = 0; script->potion_target = bl->id; - script->run(sd->inventory_data[i]->script,0,sd->bl.id,0); + script->run_use_script(sd, sd->inventory_data[i], 0); script->potion_flag = script->potion_target = 0; if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_ALCHEMIST ) bonus += sd->status.base_level; @@ -10539,7 +10539,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui script->potion_flag = 1; script->potion_hp = 0; script->potion_sp = 0; - script->run(sd->inventory_data[j]->script,0,sd->bl.id,0); + script->run_use_script(sd, sd->inventory_data[j], 0); script->potion_flag = 0; //Apply skill bonuses i = pc->checkskill(sd,CR_SLIMPITCHER)*10 diff --git a/src/map/status.c b/src/map/status.c index b513c6975..e70fb1eb1 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -2267,7 +2267,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) { if (opt&SCO_FIRST && sd->inventory_data[index]->equip_script) { //Execute equip-script on login - script->run(sd->inventory_data[index]->equip_script,0,sd->bl.id,0); + script->run_item_equip_script(sd, sd->inventory_data[index], 0); if (!calculating) return 1; } @@ -2308,10 +2308,10 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) { if(sd->inventory_data[index]->script) { if (wd == &sd->left_weapon) { sd->state.lr_flag = 1; - script->run(sd->inventory_data[index]->script,0,sd->bl.id,0); + script->run_use_script(sd, sd->inventory_data[index], 0); sd->state.lr_flag = 0; } else - script->run(sd->inventory_data[index]->script,0,sd->bl.id,0); + script->run_use_script(sd, sd->inventory_data[index], 0); if (!calculating) //Abort, script->run retriggered this. [Skotlex] return 1; } @@ -2334,7 +2334,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) { if(sd->inventory_data[index]->script) { if( i == EQI_HAND_L ) //Shield sd->state.lr_flag = 3; - script->run(sd->inventory_data[index]->script,0,sd->bl.id,0); + script->run_use_script(sd, sd->inventory_data[index], 0); if( i == EQI_HAND_L ) //Shield sd->state.lr_flag = 0; if (!calculating) //Abort, script->run retriggered this. [Skotlex] @@ -2350,7 +2350,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) { sd->bonus.arrow_atk += sd->inventory_data[index]->atk; sd->state.lr_flag = 2; if( !itemdb_is_GNthrowable(sd->inventory_data[index]->nameid) ) //don't run scripts on throwable items - script->run(sd->inventory_data[index]->script,0,sd->bl.id,0); + script->run_use_script(sd, sd->inventory_data[index], 0); sd->state.lr_flag = 0; if (!calculating) //Abort, script->run retriggered status_calc_pc. [Skotlex] return 1; @@ -2428,7 +2428,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) { continue; if(opt&SCO_FIRST && data->equip_script) {//Execute equip-script on login - script->run(data->equip_script,0,sd->bl.id,0); + script->run_item_equip_script(sd, data, 0); if (!calculating) return 1; } @@ -2438,10 +2438,10 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) { if(i == EQI_HAND_L && sd->status.inventory[index].equip == EQP_HAND_L) { //Left hand status. sd->state.lr_flag = 1; - script->run(data->script,0,sd->bl.id,0); + script->run_use_script(sd, data, 0); sd->state.lr_flag = 0; } else - script->run(data->script,0,sd->bl.id,0); + script->run_use_script(sd, data, 0); if (!calculating) //Abort, script->run his function. [Skotlex] return 1; } @@ -2451,7 +2451,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt) { if( sc->count && sc->data[SC_ITEMSCRIPT] ) { struct item_data *data = itemdb->exists(sc->data[SC_ITEMSCRIPT]->val1); if( data && data->script ) - script->run(data->script,0,sd->bl.id,0); + script->run_use_script(sd, data, 0); } status->calc_pc_additional(sd, opt); diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc index 09d6ce1b6..bcda4332d 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc @@ -219,8 +219,8 @@ struct { struct HPMHookPoint *HP_chr_search_mapserver_post; struct HPMHookPoint *HP_chr_mapif_init_pre; struct HPMHookPoint *HP_chr_mapif_init_post; - struct HPMHookPoint *HP_chr_lan_subnetcheck_pre; - struct HPMHookPoint *HP_chr_lan_subnetcheck_post; + struct HPMHookPoint *HP_chr_lan_subnet_check_pre; + struct HPMHookPoint *HP_chr_lan_subnet_check_post; struct HPMHookPoint *HP_chr_delete2_ack_pre; struct HPMHookPoint *HP_chr_delete2_ack_post; struct HPMHookPoint *HP_chr_delete2_accept_actual_ack_pre; @@ -317,8 +317,6 @@ struct { struct HPMHookPoint *HP_chr_online_data_cleanup_sub_post; struct HPMHookPoint *HP_chr_online_data_cleanup_pre; struct HPMHookPoint *HP_chr_online_data_cleanup_post; - struct HPMHookPoint *HP_chr_lan_config_read_pre; - struct HPMHookPoint *HP_chr_lan_config_read_post; struct HPMHookPoint *HP_chr_sql_config_read_pre; struct HPMHookPoint *HP_chr_sql_config_read_post; struct HPMHookPoint *HP_chr_config_dispatch_pre; @@ -1118,8 +1116,8 @@ struct { int HP_chr_search_mapserver_post; int HP_chr_mapif_init_pre; int HP_chr_mapif_init_post; - int HP_chr_lan_subnetcheck_pre; - int HP_chr_lan_subnetcheck_post; + int HP_chr_lan_subnet_check_pre; + int HP_chr_lan_subnet_check_post; int HP_chr_delete2_ack_pre; int HP_chr_delete2_ack_post; int HP_chr_delete2_accept_actual_ack_pre; @@ -1216,8 +1214,6 @@ struct { int HP_chr_online_data_cleanup_sub_post; int HP_chr_online_data_cleanup_pre; int HP_chr_online_data_cleanup_post; - int HP_chr_lan_config_read_pre; - int HP_chr_lan_config_read_post; int HP_chr_sql_config_read_pre; int HP_chr_sql_config_read_post; int HP_chr_config_dispatch_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc index 631544248..b11149cf1 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc @@ -113,7 +113,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(chr->parse_frommap, HP_chr_parse_frommap) }, { HP_POP(chr->search_mapserver, HP_chr_search_mapserver) }, { HP_POP(chr->mapif_init, HP_chr_mapif_init) }, - { HP_POP(chr->lan_subnetcheck, HP_chr_lan_subnetcheck) }, + { HP_POP(chr->lan_subnet_check, HP_chr_lan_subnet_check) }, { HP_POP(chr->delete2_ack, HP_chr_delete2_ack) }, { HP_POP(chr->delete2_accept_actual_ack, HP_chr_delete2_accept_actual_ack) }, { HP_POP(chr->delete2_accept_ack, HP_chr_delete2_accept_ack) }, @@ -162,7 +162,6 @@ struct HookingPointData HookingPoints[] = { { HP_POP(chr->check_connect_login_server, HP_chr_check_connect_login_server) }, { HP_POP(chr->online_data_cleanup_sub, HP_chr_online_data_cleanup_sub) }, { HP_POP(chr->online_data_cleanup, HP_chr_online_data_cleanup) }, - { HP_POP(chr->lan_config_read, HP_chr_lan_config_read) }, { HP_POP(chr->sql_config_read, HP_chr_sql_config_read) }, { HP_POP(chr->config_dispatch, HP_chr_config_dispatch) }, { HP_POP(chr->config_read, HP_chr_config_read) }, diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc index c6cca0b0c..f8d01cb28 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc @@ -2847,14 +2847,14 @@ int HP_chr_mapif_init(int fd) { } return retVal___; } -int HP_chr_lan_subnetcheck(uint32 ip) { +uint32 HP_chr_lan_subnet_check(uint32 ip) { int hIndex = 0; - int retVal___ = 0; - if( HPMHooks.count.HP_chr_lan_subnetcheck_pre ) { - int (*preHookFunc) (uint32 *ip); + uint32 retVal___ = 0; + if( HPMHooks.count.HP_chr_lan_subnet_check_pre ) { + uint32 (*preHookFunc) (uint32 *ip); *HPMforce_return = false; - for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_lan_subnetcheck_pre; hIndex++ ) { - preHookFunc = HPMHooks.list.HP_chr_lan_subnetcheck_pre[hIndex].func; + for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_lan_subnet_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_chr_lan_subnet_check_pre[hIndex].func; retVal___ = preHookFunc(&ip); } if( *HPMforce_return ) { @@ -2863,12 +2863,12 @@ int HP_chr_lan_subnetcheck(uint32 ip) { } } { - retVal___ = HPMHooks.source.chr.lan_subnetcheck(ip); + retVal___ = HPMHooks.source.chr.lan_subnet_check(ip); } - if( HPMHooks.count.HP_chr_lan_subnetcheck_post ) { - int (*postHookFunc) (int retVal___, uint32 *ip); - for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_lan_subnetcheck_post; hIndex++ ) { - postHookFunc = HPMHooks.list.HP_chr_lan_subnetcheck_post[hIndex].func; + if( HPMHooks.count.HP_chr_lan_subnet_check_post ) { + uint32 (*postHookFunc) (uint32 retVal___, uint32 *ip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_lan_subnet_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_chr_lan_subnet_check_post[hIndex].func; retVal___ = postHookFunc(retVal___, &ip); } } @@ -4143,33 +4143,6 @@ int HP_chr_online_data_cleanup(int tid, int64 tick, int id, intptr_t data) { } return retVal___; } -int HP_chr_lan_config_read(const char *lancfgName) { - int hIndex = 0; - int retVal___ = 0; - if( HPMHooks.count.HP_chr_lan_config_read_pre ) { - int (*preHookFunc) (const char *lancfgName); - *HPMforce_return = false; - for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_lan_config_read_pre; hIndex++ ) { - preHookFunc = HPMHooks.list.HP_chr_lan_config_read_pre[hIndex].func; - retVal___ = preHookFunc(lancfgName); - } - if( *HPMforce_return ) { - *HPMforce_return = false; - return retVal___; - } - } - { - retVal___ = HPMHooks.source.chr.lan_config_read(lancfgName); - } - if( HPMHooks.count.HP_chr_lan_config_read_post ) { - int (*postHookFunc) (int retVal___, const char *lancfgName); - for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_lan_config_read_post; hIndex++ ) { - postHookFunc = HPMHooks.list.HP_chr_lan_config_read_post[hIndex].func; - retVal___ = postHookFunc(retVal___, lancfgName); - } - } - return retVal___; -} void HP_chr_sql_config_read(const char *cfgName) { int hIndex = 0; if( HPMHooks.count.HP_chr_sql_config_read_pre ) { diff --git a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc index af7e7250c..31cd3d710 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc @@ -29,10 +29,8 @@ struct { struct HPMHookPoint *HP_login_check_encrypted_post; struct HPMHookPoint *HP_login_check_password_pre; struct HPMHookPoint *HP_login_check_password_post; - struct HPMHookPoint *HP_login_lan_subnetcheck_pre; - struct HPMHookPoint *HP_login_lan_subnetcheck_post; - struct HPMHookPoint *HP_login_lan_config_read_pre; - struct HPMHookPoint *HP_login_lan_config_read_post; + struct HPMHookPoint *HP_login_lan_subnet_check_pre; + struct HPMHookPoint *HP_login_lan_subnet_check_post; struct HPMHookPoint *HP_login_fromchar_accinfo_pre; struct HPMHookPoint *HP_login_fromchar_accinfo_post; struct HPMHookPoint *HP_login_fromchar_account_pre; @@ -142,10 +140,8 @@ struct { int HP_login_check_encrypted_post; int HP_login_check_password_pre; int HP_login_check_password_post; - int HP_login_lan_subnetcheck_pre; - int HP_login_lan_subnetcheck_post; - int HP_login_lan_config_read_pre; - int HP_login_lan_config_read_post; + int HP_login_lan_subnet_check_pre; + int HP_login_lan_subnet_check_post; int HP_login_fromchar_accinfo_pre; int HP_login_fromchar_accinfo_post; int HP_login_fromchar_account_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc index a4a9db119..00cdfc8c9 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc @@ -18,8 +18,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(login->sync_ip_addresses, HP_login_sync_ip_addresses) }, { HP_POP(login->check_encrypted, HP_login_check_encrypted) }, { HP_POP(login->check_password, HP_login_check_password) }, - { HP_POP(login->lan_subnetcheck, HP_login_lan_subnetcheck) }, - { HP_POP(login->lan_config_read, HP_login_lan_config_read) }, + { HP_POP(login->lan_subnet_check, HP_login_lan_subnet_check) }, { HP_POP(login->fromchar_accinfo, HP_login_fromchar_accinfo) }, { HP_POP(login->fromchar_account, HP_login_fromchar_account) }, { HP_POP(login->fromchar_account_update_other, HP_login_fromchar_account_update_other) }, diff --git a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc index 375b78e11..18195af77 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc @@ -347,14 +347,14 @@ bool HP_login_check_password(const char *md5key, int passwdenc, const char *pass } return retVal___; } -int HP_login_lan_subnetcheck(uint32 ip) { +uint32 HP_login_lan_subnet_check(uint32 ip) { int hIndex = 0; - int retVal___ = 0; - if( HPMHooks.count.HP_login_lan_subnetcheck_pre ) { - int (*preHookFunc) (uint32 *ip); + uint32 retVal___ = 0; + if( HPMHooks.count.HP_login_lan_subnet_check_pre ) { + uint32 (*preHookFunc) (uint32 *ip); *HPMforce_return = false; - for(hIndex = 0; hIndex < HPMHooks.count.HP_login_lan_subnetcheck_pre; hIndex++ ) { - preHookFunc = HPMHooks.list.HP_login_lan_subnetcheck_pre[hIndex].func; + for(hIndex = 0; hIndex < HPMHooks.count.HP_login_lan_subnet_check_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_login_lan_subnet_check_pre[hIndex].func; retVal___ = preHookFunc(&ip); } if( *HPMforce_return ) { @@ -363,44 +363,17 @@ int HP_login_lan_subnetcheck(uint32 ip) { } } { - retVal___ = HPMHooks.source.login.lan_subnetcheck(ip); + retVal___ = HPMHooks.source.login.lan_subnet_check(ip); } - if( HPMHooks.count.HP_login_lan_subnetcheck_post ) { - int (*postHookFunc) (int retVal___, uint32 *ip); - for(hIndex = 0; hIndex < HPMHooks.count.HP_login_lan_subnetcheck_post; hIndex++ ) { - postHookFunc = HPMHooks.list.HP_login_lan_subnetcheck_post[hIndex].func; + if( HPMHooks.count.HP_login_lan_subnet_check_post ) { + uint32 (*postHookFunc) (uint32 retVal___, uint32 *ip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_login_lan_subnet_check_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_login_lan_subnet_check_post[hIndex].func; retVal___ = postHookFunc(retVal___, &ip); } } return retVal___; } -int HP_login_lan_config_read(const char *lancfgName) { - int hIndex = 0; - int retVal___ = 0; - if( HPMHooks.count.HP_login_lan_config_read_pre ) { - int (*preHookFunc) (const char *lancfgName); - *HPMforce_return = false; - for(hIndex = 0; hIndex < HPMHooks.count.HP_login_lan_config_read_pre; hIndex++ ) { - preHookFunc = HPMHooks.list.HP_login_lan_config_read_pre[hIndex].func; - retVal___ = preHookFunc(lancfgName); - } - if( *HPMforce_return ) { - *HPMforce_return = false; - return retVal___; - } - } - { - retVal___ = HPMHooks.source.login.lan_config_read(lancfgName); - } - if( HPMHooks.count.HP_login_lan_config_read_post ) { - int (*postHookFunc) (int retVal___, const char *lancfgName); - for(hIndex = 0; hIndex < HPMHooks.count.HP_login_lan_config_read_post; hIndex++ ) { - postHookFunc = HPMHooks.list.HP_login_lan_config_read_post[hIndex].func; - retVal___ = postHookFunc(retVal___, lancfgName); - } - } - return retVal___; -} void HP_login_fromchar_accinfo(int fd, int account_id, int u_fd, int u_aid, int u_group, int map_fd, struct mmo_account *acc) { int hIndex = 0; if( HPMHooks.count.HP_login_fromchar_accinfo_pre ) { diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index 650f31d35..33c991933 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -4159,6 +4159,10 @@ struct { struct HPMHookPoint *HP_script_label_add_post; struct HPMHookPoint *HP_script_run_pre; struct HPMHookPoint *HP_script_run_post; + struct HPMHookPoint *HP_script_run_npc_pre; + struct HPMHookPoint *HP_script_run_npc_post; + struct HPMHookPoint *HP_script_run_pet_pre; + struct HPMHookPoint *HP_script_run_pet_post; struct HPMHookPoint *HP_script_run_main_pre; struct HPMHookPoint *HP_script_run_main_post; struct HPMHookPoint *HP_script_run_timer_pre; @@ -4391,6 +4395,12 @@ struct { struct HPMHookPoint *HP_script_get_translation_file_name_post; struct HPMHookPoint *HP_script_parser_clean_leftovers_pre; struct HPMHookPoint *HP_script_parser_clean_leftovers_post; + struct HPMHookPoint *HP_script_run_use_script_pre; + struct HPMHookPoint *HP_script_run_use_script_post; + struct HPMHookPoint *HP_script_run_item_equip_script_pre; + struct HPMHookPoint *HP_script_run_item_equip_script_post; + struct HPMHookPoint *HP_script_run_item_unequip_script_pre; + struct HPMHookPoint *HP_script_run_item_unequip_script_post; struct HPMHookPoint *HP_searchstore_open_pre; struct HPMHookPoint *HP_searchstore_open_post; struct HPMHookPoint *HP_searchstore_query_pre; @@ -9380,6 +9390,10 @@ struct { int HP_script_label_add_post; int HP_script_run_pre; int HP_script_run_post; + int HP_script_run_npc_pre; + int HP_script_run_npc_post; + int HP_script_run_pet_pre; + int HP_script_run_pet_post; int HP_script_run_main_pre; int HP_script_run_main_post; int HP_script_run_timer_pre; @@ -9612,6 +9626,12 @@ struct { int HP_script_get_translation_file_name_post; int HP_script_parser_clean_leftovers_pre; int HP_script_parser_clean_leftovers_post; + int HP_script_run_use_script_pre; + int HP_script_run_use_script_post; + int HP_script_run_item_equip_script_pre; + int HP_script_run_item_equip_script_post; + int HP_script_run_item_unequip_script_pre; + int HP_script_run_item_unequip_script_post; int HP_searchstore_open_pre; int HP_searchstore_open_post; int HP_searchstore_query_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index 33e6cd053..720d76b6c 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -2114,6 +2114,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(script->get_constant, HP_script_get_constant) }, { HP_POP(script->label_add, HP_script_label_add) }, { HP_POP(script->run, HP_script_run) }, + { HP_POP(script->run_npc, HP_script_run_npc) }, + { HP_POP(script->run_pet, HP_script_run_pet) }, { HP_POP(script->run_main, HP_script_run_main) }, { HP_POP(script->run_timer, HP_script_run_timer) }, { HP_POP(script->set_var, HP_script_set_var) }, @@ -2230,6 +2232,9 @@ struct HookingPointData HookingPoints[] = { { HP_POP(script->add_language, HP_script_add_language) }, { HP_POP(script->get_translation_file_name, HP_script_get_translation_file_name) }, { HP_POP(script->parser_clean_leftovers, HP_script_parser_clean_leftovers) }, + { HP_POP(script->run_use_script, HP_script_run_use_script) }, + { HP_POP(script->run_item_equip_script, HP_script_run_item_equip_script) }, + { HP_POP(script->run_item_unequip_script, HP_script_run_item_unequip_script) }, /* searchstore */ { HP_POP(searchstore->open, HP_searchstore_open) }, { HP_POP(searchstore->query, HP_searchstore_query) }, diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index b8dd9db2f..402f146ba 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -55686,6 +55686,58 @@ void HP_script_run(struct script_code *rootscript, int pos, int rid, int oid) { } return; } +void HP_script_run_npc(struct script_code *rootscript, int pos, int rid, int oid) { + int hIndex = 0; + if( HPMHooks.count.HP_script_run_npc_pre ) { + void (*preHookFunc) (struct script_code *rootscript, int *pos, int *rid, int *oid); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_npc_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_run_npc_pre[hIndex].func; + preHookFunc(rootscript, &pos, &rid, &oid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.run_npc(rootscript, pos, rid, oid); + } + if( HPMHooks.count.HP_script_run_npc_post ) { + void (*postHookFunc) (struct script_code *rootscript, int *pos, int *rid, int *oid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_npc_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_run_npc_post[hIndex].func; + postHookFunc(rootscript, &pos, &rid, &oid); + } + } + return; +} +void HP_script_run_pet(struct script_code *rootscript, int pos, int rid, int oid) { + int hIndex = 0; + if( HPMHooks.count.HP_script_run_pet_pre ) { + void (*preHookFunc) (struct script_code *rootscript, int *pos, int *rid, int *oid); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_pet_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_run_pet_pre[hIndex].func; + preHookFunc(rootscript, &pos, &rid, &oid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.run_pet(rootscript, pos, rid, oid); + } + if( HPMHooks.count.HP_script_run_pet_post ) { + void (*postHookFunc) (struct script_code *rootscript, int *pos, int *rid, int *oid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_pet_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_run_pet_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 ) { @@ -58915,6 +58967,84 @@ void HP_script_parser_clean_leftovers(void) { } return; } +void HP_script_run_use_script(struct map_session_data *sd, struct item_data *data, int oid) { + int hIndex = 0; + if( HPMHooks.count.HP_script_run_use_script_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct item_data *data, int *oid); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_use_script_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_run_use_script_pre[hIndex].func; + preHookFunc(sd, data, &oid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.run_use_script(sd, data, oid); + } + if( HPMHooks.count.HP_script_run_use_script_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct item_data *data, int *oid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_use_script_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_run_use_script_post[hIndex].func; + postHookFunc(sd, data, &oid); + } + } + return; +} +void HP_script_run_item_equip_script(struct map_session_data *sd, struct item_data *data, int oid) { + int hIndex = 0; + if( HPMHooks.count.HP_script_run_item_equip_script_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct item_data *data, int *oid); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_item_equip_script_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_run_item_equip_script_pre[hIndex].func; + preHookFunc(sd, data, &oid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.run_item_equip_script(sd, data, oid); + } + if( HPMHooks.count.HP_script_run_item_equip_script_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct item_data *data, int *oid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_item_equip_script_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_run_item_equip_script_post[hIndex].func; + postHookFunc(sd, data, &oid); + } + } + return; +} +void HP_script_run_item_unequip_script(struct map_session_data *sd, struct item_data *data, int oid) { + int hIndex = 0; + if( HPMHooks.count.HP_script_run_item_unequip_script_pre ) { + void (*preHookFunc) (struct map_session_data *sd, struct item_data *data, int *oid); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_item_unequip_script_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_script_run_item_unequip_script_pre[hIndex].func; + preHookFunc(sd, data, &oid); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.script.run_item_unequip_script(sd, data, oid); + } + if( HPMHooks.count.HP_script_run_item_unequip_script_post ) { + void (*postHookFunc) (struct map_session_data *sd, struct item_data *data, int *oid); + for(hIndex = 0; hIndex < HPMHooks.count.HP_script_run_item_unequip_script_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_script_run_item_unequip_script_post[hIndex].func; + postHookFunc(sd, data, &oid); + } + } + return; +} /* searchstore */ bool HP_searchstore_open(struct map_session_data *sd, unsigned int uses, unsigned short effect) { int hIndex = 0; diff --git a/vcproj-14/char-server.vcxproj b/vcproj-14/char-server.vcxproj new file mode 100644 index 000000000..9ab262fd8 --- /dev/null +++ b/vcproj-14/char-server.vcxproj @@ -0,0 +1,230 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{D356871D-58E1-450B-967A-E4E9646175AF}</ProjectGuid> + <RootNamespace>char-server</RootNamespace> + <Keyword>Win32Proj</Keyword> + <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">char-server</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">char-server</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessToFile>false</PreprocessToFile> + <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers> + <ExceptionHandling> + </ExceptionHandling> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <AdditionalOptions> + </AdditionalOptions> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <CompileAs>CompileAsC</CompileAs> + <DisableSpecificWarnings>4800;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <AdditionalDependencies>libcmtd.lib;oldnames.lib;ws2_32.lib;libmysql.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile> + <AdditionalLibraryDirectories>..\3rdparty\mysql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile> + <SubSystem>Console</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> + <IntrinsicFunctions>true</IntrinsicFunctions> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <OmitFramePointers>true</OmitFramePointers> + <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> + <WholeProgramOptimization>true</WholeProgramOptimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LIBCONFIG_STATIC;YY_USE_CONST;FD_SETSIZE=4096;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <AdditionalOptions> + </AdditionalOptions> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <CompileAs>CompileAsC</CompileAs> + <DisableSpecificWarnings>4800;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <AdditionalDependencies>libcmt.lib;oldnames.lib;ws2_32.lib;libmysql.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile> + <AdditionalLibraryDirectories>..\3rdparty\mysql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> + <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="..\3rdparty\libconfig\grammar.h" /> + <ClInclude Include="..\3rdparty\libconfig\libconfig.h" /> + <ClInclude Include="..\3rdparty\libconfig\parsectx.h" /> + <ClInclude Include="..\3rdparty\libconfig\scanctx.h" /> + <ClInclude Include="..\3rdparty\libconfig\scanner.h" /> + <ClInclude Include="..\3rdparty\libconfig\strbuf.h" /> + <ClInclude Include="..\3rdparty\libconfig\wincompat.h" /> + <ClInclude Include="..\3rdparty\mt19937ar\mt19937ar.h" /> + <ClInclude Include="..\src\common\cbasetypes.h" /> + <ClInclude Include="..\src\common\conf.h" /> + <ClInclude Include="..\src\common\core.h" /> + <ClInclude Include="..\src\common\console.h" /> + <ClInclude Include="..\src\common\db.h" /> + <ClInclude Include="..\src\common\ers.h" /> + <ClInclude Include="..\src\common\HPM.h" /> + <ClInclude Include="..\src\common\HPMi.h" /> + <ClInclude Include="..\src\common\malloc.h" /> + <ClInclude Include="..\src\common\mapindex.h" /> + <ClInclude Include="..\src\common\mmo.h" /> + <ClInclude Include="..\src\common\mutex.h" /> + <ClInclude Include="..\src\common\nullpo.h" /> + <ClInclude Include="..\src\common\random.h" /> + <ClInclude Include="..\src\common\showmsg.h" /> + <ClInclude Include="..\src\common\socket.h" /> + <ClInclude Include="..\src\common\sql.h" /> + <ClInclude Include="..\src\common\strlib.h" /> + <ClInclude Include="..\src\common\sysinfo.h" /> + <ClInclude Include="..\src\common\thread.h" /> + <ClInclude Include="..\src\common\timer.h" /> + <ClInclude Include="..\src\common\utils.h" /> + <ClInclude Include="..\src\common\winapi.h" /> + <ClInclude Include="..\src\char\HPMchar.h" /> + <ClInclude Include="..\src\char\char.h" /> + <ClInclude Include="..\src\char\geoip.h" /> + <ClInclude Include="..\src\char\int_auction.h" /> + <ClInclude Include="..\src\char\int_elemental.h" /> + <ClInclude Include="..\src\char\int_guild.h" /> + <ClInclude Include="..\src\char\int_homun.h" /> + <ClInclude Include="..\src\char\int_mail.h" /> + <ClInclude Include="..\src\char\int_mercenary.h" /> + <ClInclude Include="..\src\char\int_party.h" /> + <ClInclude Include="..\src\char\int_pet.h" /> + <ClInclude Include="..\src\char\int_quest.h" /> + <ClInclude Include="..\src\char\int_storage.h" /> + <ClInclude Include="..\src\char\inter.h" /> + <ClInclude Include="..\src\char\loginif.h" /> + <ClInclude Include="..\src\char\mapif.h" /> + <ClInclude Include="..\src\char\pincode.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\3rdparty\libconfig\grammar.c" /> + <ClCompile Include="..\3rdparty\libconfig\libconfig.c" /> + <ClCompile Include="..\3rdparty\libconfig\scanctx.c" /> + <ClCompile Include="..\3rdparty\libconfig\scanner.c" /> + <ClCompile Include="..\3rdparty\libconfig\strbuf.c" /> + <ClCompile Include="..\3rdparty\mt19937ar\mt19937ar.c" /> + <ClCompile Include="..\src\common\conf.c" /> + <ClCompile Include="..\src\common\core.c" /> + <ClCompile Include="..\src\common\console.c" /> + <ClCompile Include="..\src\common\db.c" /> + <ClCompile Include="..\src\common\ers.c" /> + <ClCompile Include="..\src\common\HPM.c" /> + <ClCompile Include="..\src\common\malloc.c" /> + <ClCompile Include="..\src\common\mapindex.c" /> + <ClCompile Include="..\src\common\mutex.c" /> + <ClCompile Include="..\src\common\nullpo.c" /> + <ClCompile Include="..\src\common\random.c" /> + <ClCompile Include="..\src\common\showmsg.c" /> + <ClCompile Include="..\src\common\socket.c" /> + <ClCompile Include="..\src\common\sql.c" /> + <ClCompile Include="..\src\common\strlib.c" /> + <ClCompile Include="..\src\common\sysinfo.c" /> + <ClCompile Include="..\src\common\thread.c" /> + <ClCompile Include="..\src\common\timer.c" /> + <ClCompile Include="..\src\common\utils.c" /> + <ClCompile Include="..\src\char\HPMchar.c" /> + <ClCompile Include="..\src\char\char.c" /> + <ClCompile Include="..\src\char\geoip.c" /> + <ClCompile Include="..\src\char\int_auction.c" /> + <ClCompile Include="..\src\char\int_elemental.c" /> + <ClCompile Include="..\src\char\int_guild.c" /> + <ClCompile Include="..\src\char\int_homun.c" /> + <ClCompile Include="..\src\char\int_mail.c" /> + <ClCompile Include="..\src\char\int_mercenary.c" /> + <ClCompile Include="..\src\char\int_party.c" /> + <ClCompile Include="..\src\char\int_pet.c" /> + <ClCompile Include="..\src\char\int_quest.c" /> + <ClCompile Include="..\src\char\int_storage.c" /> + <ClCompile Include="..\src\char\inter.c" /> + <ClCompile Include="..\src\char\loginif.c" /> + <ClCompile Include="..\src\char\mapif.c" /> + <ClCompile Include="..\src\char\pincode.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/vcproj-14/char-server.vcxproj.filters b/vcproj-14/char-server.vcxproj.filters new file mode 100644 index 000000000..b3b9e49cd --- /dev/null +++ b/vcproj-14/char-server.vcxproj.filters @@ -0,0 +1,294 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClCompile Include="..\src\common\conf.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\core.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\console.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\db.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\ers.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\HPM.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\malloc.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\mapindex.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\nullpo.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\random.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\showmsg.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\socket.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\sql.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\strlib.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\sysinfo.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\timer.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\utils.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\char\HPMchar.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\char.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\geoip.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\int_auction.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\int_elemental.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\int_guild.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\int_homun.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\int_mail.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\int_mercenary.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\int_party.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\int_pet.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\int_quest.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\int_storage.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\inter.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\loginif.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\mapif.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\char\pincode.c"> + <Filter>char_sql</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\mt19937ar\mt19937ar.c"> + <Filter>3rdparty\mt19937ar</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\grammar.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\libconfig.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\scanctx.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\scanner.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\strbuf.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\src\common\thread.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\mutex.c"> + <Filter>common</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\src\common\cbasetypes.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\conf.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\core.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\console.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\db.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\ers.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\HPM.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\HPMi.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\malloc.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\mapindex.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\mmo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\nullpo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\random.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\showmsg.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\socket.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\sql.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\strlib.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\sysinfo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\timer.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\utils.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\char\HPMchar.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\char.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\geoip.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\int_auction.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\int_elemental.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\int_guild.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\int_homun.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\int_mail.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\int_mercenary.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\int_party.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\int_pet.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\int_quest.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\int_storage.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\inter.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\loginif.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\mapif.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\char\pincode.h"> + <Filter>char_sql</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\mt19937ar\mt19937ar.h"> + <Filter>3rdparty\mt19937ar</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\grammar.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\libconfig.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\parsectx.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\scanctx.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\scanner.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\strbuf.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\wincompat.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\src\common\winapi.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\thread.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\mutex.h"> + <Filter>common</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Filter Include="common"> + <UniqueIdentifier>{623f21b1-c166-4848-83d8-8b4fe0e2e2df}</UniqueIdentifier> + </Filter> + <Filter Include="char_sql"> + <UniqueIdentifier>{83b1ecf5-21d1-4dac-915f-95ff77a90899}</UniqueIdentifier> + </Filter> + <Filter Include="3rdparty"> + <UniqueIdentifier>{b3f5c857-79c0-4a55-b8c5-7e7f56a8f948}</UniqueIdentifier> + </Filter> + <Filter Include="3rdparty\mt19937ar"> + <UniqueIdentifier>{847768ab-8c4b-431b-8667-00f8ae3b915c}</UniqueIdentifier> + </Filter> + <Filter Include="3rdparty\libconfig"> + <UniqueIdentifier>{9e8badd7-548f-4eb4-9e87-613e87e772ff}</UniqueIdentifier> + </Filter> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/vcproj-14/login-server.vcxproj b/vcproj-14/login-server.vcxproj new file mode 100644 index 000000000..2d1aa40cf --- /dev/null +++ b/vcproj-14/login-server.vcxproj @@ -0,0 +1,209 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{D356871D-58E1-450B-967A-E5E9646175AF}</ProjectGuid> + <RootNamespace>login-server</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">login-server</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">login-server</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessToFile>false</PreprocessToFile> + <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers> + <ExceptionHandling> + </ExceptionHandling> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <AdditionalOptions> + </AdditionalOptions> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <CompileAs>CompileAsC</CompileAs> + <DisableSpecificWarnings>4100;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <AdditionalDependencies>libcmtd.lib;oldnames.lib;ws2_32.lib;libmysql.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile> + <AdditionalLibraryDirectories>..\3rdparty\mysql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile> + <SubSystem>Console</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> + <IntrinsicFunctions>true</IntrinsicFunctions> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <OmitFramePointers>true</OmitFramePointers> + <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> + <WholeProgramOptimization>true</WholeProgramOptimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;WITH_SQL;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <AdditionalOptions> + </AdditionalOptions> + <PrecompiledHeader> + </PrecompiledHeader> + <PrecompiledHeaderFile> + </PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile> + </PrecompiledHeaderOutputFile> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <CompileAs>CompileAsC</CompileAs> + <DisableSpecificWarnings>4100;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <AdditionalDependencies>libcmt.lib;oldnames.lib;ws2_32.lib;libmysql.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile> + <AdditionalLibraryDirectories>..\3rdparty\mysql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> + <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="..\3rdparty\libconfig\grammar.h" /> + <ClInclude Include="..\3rdparty\libconfig\libconfig.h" /> + <ClInclude Include="..\3rdparty\libconfig\parsectx.h" /> + <ClInclude Include="..\3rdparty\libconfig\scanctx.h" /> + <ClInclude Include="..\3rdparty\libconfig\scanner.h" /> + <ClInclude Include="..\3rdparty\libconfig\strbuf.h" /> + <ClInclude Include="..\3rdparty\libconfig\wincompat.h" /> + <ClInclude Include="..\src\common\mutex.h" /> + <ClInclude Include="..\src\common\thread.h" /> + <ClInclude Include="..\src\common\winapi.h" /> + <ClInclude Include="..\src\login\account.h" /> + <ClInclude Include="..\src\login\HPMlogin.h" /> + <ClInclude Include="..\src\login\ipban.h" /> + <ClInclude Include="..\src\login\login.h" /> + <ClInclude Include="..\src\login\loginlog.h" /> + <ClInclude Include="..\src\common\cbasetypes.h" /> + <ClInclude Include="..\src\common\conf.h" /> + <ClInclude Include="..\src\common\core.h" /> + <ClInclude Include="..\src\common\console.h" /> + <ClInclude Include="..\src\common\db.h" /> + <ClInclude Include="..\src\common\ers.h" /> + <ClInclude Include="..\src\common\HPM.h" /> + <ClInclude Include="..\src\common\HPMi.h" /> + <ClInclude Include="..\src\common\malloc.h" /> + <ClInclude Include="..\src\common\md5calc.h" /> + <ClInclude Include="..\src\common\mmo.h" /> + <ClInclude Include="..\src\common\nullpo.h" /> + <ClInclude Include="..\src\common\random.h" /> + <ClInclude Include="..\src\common\showmsg.h" /> + <ClInclude Include="..\src\common\socket.h" /> + <ClInclude Include="..\src\common\sql.h" /> + <ClInclude Include="..\src\common\strlib.h" /> + <ClInclude Include="..\src\common\sysinfo.h" /> + <ClInclude Include="..\src\common\timer.h" /> + <ClInclude Include="..\src\common\utils.h" /> + <ClInclude Include="..\3rdparty\mt19937ar\mt19937ar.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\3rdparty\libconfig\grammar.c" /> + <ClCompile Include="..\3rdparty\libconfig\libconfig.c" /> + <ClCompile Include="..\3rdparty\libconfig\scanctx.c" /> + <ClCompile Include="..\3rdparty\libconfig\scanner.c" /> + <ClCompile Include="..\3rdparty\libconfig\strbuf.c" /> + <ClCompile Include="..\src\common\mutex.c" /> + <ClCompile Include="..\src\common\thread.c" /> + <ClCompile Include="..\src\login\account_sql.c" /> + <ClCompile Include="..\src\login\HPMlogin.c" /> + <ClCompile Include="..\src\login\ipban_sql.c" /> + <ClCompile Include="..\src\login\login.c" /> + <ClCompile Include="..\src\login\loginlog_sql.c" /> + <ClCompile Include="..\src\common\conf.c" /> + <ClCompile Include="..\src\common\core.c" /> + <ClCompile Include="..\src\common\console.c" /> + <ClCompile Include="..\src\common\db.c" /> + <ClCompile Include="..\src\common\ers.c" /> + <ClCompile Include="..\src\common\HPM.c" /> + <ClCompile Include="..\src\common\malloc.c" /> + <ClCompile Include="..\src\common\md5calc.c" /> + <ClCompile Include="..\src\common\nullpo.c" /> + <ClCompile Include="..\src\common\random.c" /> + <ClCompile Include="..\src\common\showmsg.c" /> + <ClCompile Include="..\src\common\socket.c" /> + <ClCompile Include="..\src\common\sql.c" /> + <ClCompile Include="..\src\common\strlib.c" /> + <ClCompile Include="..\src\common\sysinfo.c" /> + <ClCompile Include="..\src\common\timer.c" /> + <ClCompile Include="..\src\common\utils.c" /> + <ClCompile Include="..\3rdparty\mt19937ar\mt19937ar.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/vcproj-14/login-server.vcxproj.filters b/vcproj-14/login-server.vcxproj.filters new file mode 100644 index 000000000..3bdb93f6f --- /dev/null +++ b/vcproj-14/login-server.vcxproj.filters @@ -0,0 +1,222 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClCompile Include="..\src\login\account_sql.c"> + <Filter>login_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\login\HPMlogin.c"> + <Filter>login_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\login\ipban_sql.c"> + <Filter>login_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\login\login.c"> + <Filter>login_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\login\loginlog_sql.c"> + <Filter>login_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\common\conf.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\core.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\console.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\db.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\ers.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\HPM.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\malloc.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\md5calc.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\nullpo.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\random.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\showmsg.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\socket.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\sql.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\strlib.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\sysinfo.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\timer.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\utils.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\mt19937ar\mt19937ar.c"> + <Filter>3rdparty\mt19937ar</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\grammar.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\libconfig.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\scanctx.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\scanner.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\strbuf.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\src\common\thread.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\mutex.c"> + <Filter>common</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\src\login\account.h"> + <Filter>login_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\login\HPMlogin.h"> + <Filter>login_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\login\ipban.h"> + <Filter>login_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\login\loginlog.h"> + <Filter>login_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\login\login.h"> + <Filter>login_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\common\cbasetypes.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\conf.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\core.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\console.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\db.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\ers.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\HPM.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\HPMi.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\malloc.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\md5calc.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\mmo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\nullpo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\random.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\showmsg.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\socket.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\sql.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\strlib.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\sysinfo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\timer.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\utils.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\mt19937ar\mt19937ar.h"> + <Filter>3rdparty\mt19937ar</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\grammar.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\libconfig.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\parsectx.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\scanctx.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\scanner.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\strbuf.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\wincompat.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\src\common\winapi.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\thread.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\mutex.h"> + <Filter>common</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Filter Include="common"> + <UniqueIdentifier>{b50ee803-e71d-4d41-8f7d-2dad5839df50}</UniqueIdentifier> + </Filter> + <Filter Include="login_sql"> + <UniqueIdentifier>{8eea96ed-d379-4694-ae2e-ffb0be95170c}</UniqueIdentifier> + </Filter> + <Filter Include="3rdparty"> + <UniqueIdentifier>{ab5c90ec-923d-4847-a214-45b40818211e}</UniqueIdentifier> + </Filter> + <Filter Include="3rdparty\mt19937ar"> + <UniqueIdentifier>{68e3bcee-28d9-4b2d-8701-614d50f32999}</UniqueIdentifier> + </Filter> + <Filter Include="3rdparty\libconfig"> + <UniqueIdentifier>{779e8145-9bb2-4a88-9149-60586ab0bdd4}</UniqueIdentifier> + </Filter> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/vcproj-14/map-server.vcxproj b/vcproj-14/map-server.vcxproj new file mode 100644 index 000000000..66c407db5 --- /dev/null +++ b/vcproj-14/map-server.vcxproj @@ -0,0 +1,297 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{D356871D-58E1-450B-967A-E6E9646175AF}</ProjectGuid> + <RootNamespace>map-server</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">map-server</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">map-server</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\zlib\include;..\3rdparty\pcre\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessToFile>false</PreprocessToFile> + <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers> + <ExceptionHandling> + </ExceptionHandling> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <AdditionalOptions> + </AdditionalOptions> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <CompileAs>CompileAsC</CompileAs> + <DisableSpecificWarnings>4018;4100;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <AdditionalDependencies>libcmtd.lib;oldnames.lib;ws2_32.lib;libmysql.lib;zdll.lib;pcre.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile> + <AdditionalLibraryDirectories>..\3rdparty\mysql\lib;..\3rdparty\zlib\lib;..\3rdparty\pcre\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile> + <SubSystem>Console</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> + <IntrinsicFunctions>true</IntrinsicFunctions> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <OmitFramePointers>true</OmitFramePointers> + <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> + <WholeProgramOptimization>true</WholeProgramOptimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\mysql\include;..\3rdparty\zlib\include;..\3rdparty\pcre\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;PCRE_SUPPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <AdditionalOptions> + </AdditionalOptions> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <CompileAs>CompileAsC</CompileAs> + <DisableSpecificWarnings>4018;4100;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <AdditionalDependencies>libcmt.lib;oldnames.lib;ws2_32.lib;libmysql.lib;zdll.lib;pcre.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile> + <AdditionalLibraryDirectories>..\3rdparty\mysql\lib;..\3rdparty\zlib\lib;..\3rdparty\pcre\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> + <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="..\3rdparty\libconfig\grammar.h" /> + <ClInclude Include="..\3rdparty\libconfig\libconfig.h" /> + <ClInclude Include="..\3rdparty\libconfig\parsectx.h" /> + <ClInclude Include="..\3rdparty\libconfig\scanctx.h" /> + <ClInclude Include="..\3rdparty\libconfig\scanner.h" /> + <ClInclude Include="..\3rdparty\libconfig\strbuf.h" /> + <ClInclude Include="..\3rdparty\libconfig\wincompat.h" /> + <ClInclude Include="..\3rdparty\mt19937ar\mt19937ar.h" /> + <ClInclude Include="..\src\common\cbasetypes.h" /> + <ClInclude Include="..\src\common\conf.h" /> + <ClInclude Include="..\src\common\core.h" /> + <ClInclude Include="..\src\common\console.h" /> + <ClInclude Include="..\src\common\db.h" /> + <ClInclude Include="..\src\common\des.h" /> + <ClInclude Include="..\src\common\ers.h" /> + <ClInclude Include="..\src\common\grfio.h" /> + <ClInclude Include="..\src\common\HPM.h" /> + <ClInclude Include="..\src\common\HPMi.h" /> + <ClInclude Include="..\src\common\malloc.h" /> + <ClInclude Include="..\src\common\mapindex.h" /> + <ClInclude Include="..\src\common\md5calc.h" /> + <ClInclude Include="..\src\common\mmo.h" /> + <ClInclude Include="..\src\common\mutex.h" /> + <ClInclude Include="..\src\common\nullpo.h" /> + <ClInclude Include="..\src\common\random.h" /> + <ClInclude Include="..\src\common\showmsg.h" /> + <ClInclude Include="..\src\common\socket.h" /> + <ClInclude Include="..\src\common\sql.h" /> + <ClInclude Include="..\src\common\strlib.h" /> + <ClInclude Include="..\src\common\sysinfo.h" /> + <ClInclude Include="..\src\common\thread.h" /> + <ClInclude Include="..\src\common\timer.h" /> + <ClInclude Include="..\src\common\utils.h" /> + <ClInclude Include="..\src\common\winapi.h" /> + <ClInclude Include="..\src\map\atcommand.h" /> + <ClInclude Include="..\src\map\battle.h" /> + <ClInclude Include="..\src\map\battleground.h" /> + <ClInclude Include="..\src\map\buyingstore.h" /> + <ClInclude Include="..\src\map\channel.h" /> + <ClInclude Include="..\src\map\chat.h" /> + <ClInclude Include="..\src\map\chrif.h" /> + <ClInclude Include="..\src\map\clif.h" /> + <ClInclude Include="..\src\map\date.h" /> + <ClInclude Include="..\src\map\duel.h" /> + <ClInclude Include="..\src\map\elemental.h" /> + <ClInclude Include="..\src\map\guild.h" /> + <ClInclude Include="..\src\map\intif.h" /> + <ClInclude Include="..\src\map\irc-bot.h" /> + <ClInclude Include="..\src\map\itemdb.h" /> + <ClInclude Include="..\src\map\log.h" /> + <ClInclude Include="..\src\map\mail.h" /> + <ClInclude Include="..\src\map\map.h" /> + <ClInclude Include="..\src\map\mapreg.h" /> + <ClInclude Include="..\src\map\homunculus.h" /> + <ClInclude Include="..\src\map\HPMmap.h" /> + <ClInclude Include="..\src\map\instance.h" /> + <ClInclude Include="..\src\map\mercenary.h" /> + <ClInclude Include="..\src\map\mob.h" /> + <ClInclude Include="..\src\map\npc.h" /> + <ClInclude Include="..\src\map\packets.h" /> + <ClInclude Include="..\src\map\packets_struct.h" /> + <ClInclude Include="..\src\map\party.h" /> + <ClInclude Include="..\src\map\path.h" /> + <ClInclude Include="..\src\map\pc.h" /> + <ClInclude Include="..\src\map\pc_groups.h" /> + <ClInclude Include="..\src\map\pet.h" /> + <ClInclude Include="..\src\map\quest.h" /> + <ClInclude Include="..\src\config\const.h" /> + <ClInclude Include="..\src\config\core.h" /> + <ClInclude Include="..\src\config\renewal.h" /> + <ClInclude Include="..\src\config\secure.h" /> + <ClInclude Include="..\src\config\classes\general.h" /> + <ClInclude Include="..\src\map\script.h" /> + <ClInclude Include="..\src\map\searchstore.h" /> + <ClInclude Include="..\src\map\skill.h" /> + <ClInclude Include="..\src\map\status.h" /> + <ClInclude Include="..\src\map\storage.h" /> + <ClInclude Include="..\src\map\trade.h" /> + <ClInclude Include="..\src\map\unit.h" /> + <ClInclude Include="..\src\map\vending.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\3rdparty\libconfig\grammar.c" /> + <ClCompile Include="..\3rdparty\libconfig\libconfig.c" /> + <ClCompile Include="..\3rdparty\libconfig\scanctx.c" /> + <ClCompile Include="..\3rdparty\libconfig\scanner.c" /> + <ClCompile Include="..\3rdparty\libconfig\strbuf.c" /> + <ClCompile Include="..\3rdparty\mt19937ar\mt19937ar.c" /> + <ClCompile Include="..\src\common\conf.c" /> + <ClCompile Include="..\src\common\core.c" /> + <ClCompile Include="..\src\common\console.c" /> + <ClCompile Include="..\src\common\db.c" /> + <ClCompile Include="..\src\common\des.c" /> + <ClCompile Include="..\src\common\ers.c" /> + <ClCompile Include="..\src\common\grfio.c" /> + <ClCompile Include="..\src\common\HPM.c" /> + <ClCompile Include="..\src\common\malloc.c" /> + <ClCompile Include="..\src\common\mapindex.c" /> + <ClCompile Include="..\src\common\md5calc.c" /> + <ClCompile Include="..\src\common\mutex.c" /> + <ClCompile Include="..\src\common\nullpo.c" /> + <ClCompile Include="..\src\common\random.c" /> + <ClCompile Include="..\src\common\showmsg.c" /> + <ClCompile Include="..\src\common\socket.c" /> + <ClCompile Include="..\src\common\sql.c" /> + <ClCompile Include="..\src\common\strlib.c" /> + <ClCompile Include="..\src\common\sysinfo.c" /> + <ClCompile Include="..\src\common\thread.c" /> + <ClCompile Include="..\src\common\timer.c" /> + <ClCompile Include="..\src\common\utils.c" /> + <ClCompile Include="..\src\map\atcommand.c" /> + <ClCompile Include="..\src\map\battle.c" /> + <ClCompile Include="..\src\map\battleground.c" /> + <ClCompile Include="..\src\map\buyingstore.c" /> + <ClCompile Include="..\src\map\channel.c" /> + <ClCompile Include="..\src\map\chat.c" /> + <ClCompile Include="..\src\map\chrif.c" /> + <ClCompile Include="..\src\map\clif.c" /> + <ClCompile Include="..\src\map\date.c" /> + <ClCompile Include="..\src\map\duel.c" /> + <ClCompile Include="..\src\map\elemental.c" /> + <ClCompile Include="..\src\map\guild.c" /> + <ClCompile Include="..\src\map\intif.c" /> + <ClCompile Include="..\src\map\irc-bot.c" /> + <ClCompile Include="..\src\map\itemdb.c" /> + <ClCompile Include="..\src\map\log.c" /> + <ClCompile Include="..\src\map\mail.c" /> + <ClCompile Include="..\src\map\map.c" /> + <ClCompile Include="..\src\map\mapreg_sql.c" /> + <ClCompile Include="..\src\map\homunculus.c" /> + <ClCompile Include="..\src\map\HPMmap.c" /> + <ClCompile Include="..\src\map\instance.c" /> + <ClCompile Include="..\src\map\mercenary.c" /> + <ClCompile Include="..\src\map\mob.c" /> + <ClCompile Include="..\src\map\npc.c" /> + <ClCompile Include="..\src\map\npc_chat.c" /> + <ClCompile Include="..\src\map\party.c" /> + <ClCompile Include="..\src\map\path.c" /> + <ClCompile Include="..\src\map\pc.c" /> + <ClCompile Include="..\src\map\pc_groups.c" /> + <ClCompile Include="..\src\map\pet.c" /> + <ClCompile Include="..\src\map\quest.c" /> + <ClCompile Include="..\src\map\script.c" /> + <ClCompile Include="..\src\map\searchstore.c" /> + <ClCompile Include="..\src\map\skill.c" /> + <ClCompile Include="..\src\map\status.c" /> + <ClCompile Include="..\src\map\storage.c" /> + <ClCompile Include="..\src\map\trade.c" /> + <ClCompile Include="..\src\map\unit.c" /> + <ClCompile Include="..\src\map\vending.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> + <Target Name="AfterBuild"> + <Copy SourceFiles="..\conf\import-tmpl\battle_conf.txt" DestinationFolder="..\conf\import\" ContinueOnError="true" Condition="!Exists('..\conf\import\battle_conf.txt')" /> + <Copy SourceFiles="..\conf\import-tmpl\char_conf.txt" DestinationFolder="..\conf\import\" ContinueOnError="true" Condition="!Exists('..\conf\import\char_conf.txt')" /> + <Copy SourceFiles="..\conf\import-tmpl\inter_conf.txt" DestinationFolder="..\conf\import\" ContinueOnError="true" Condition="!Exists('..\conf\import\inter_conf.txt')" /> + <Copy SourceFiles="..\conf\import-tmpl\log_conf.txt" DestinationFolder="..\conf\import\" ContinueOnError="true" Condition="!Exists('..\conf\import\log_conf.txt')" /> + <Copy SourceFiles="..\conf\import-tmpl\login_conf.txt" DestinationFolder="..\conf\import\" ContinueOnError="true" Condition="!Exists('..\conf\import\login_conf.txt')" /> + <Copy SourceFiles="..\conf\import-tmpl\map_conf.txt" DestinationFolder="..\conf\import\" ContinueOnError="true" Condition="!Exists('..\conf\import\map_conf.txt')" /> + <Copy SourceFiles="..\conf\import-tmpl\msg_conf.txt" DestinationFolder="..\conf\import\" ContinueOnError="true" Condition="!Exists('..\conf\import\msg_conf.txt')" /> + <Copy SourceFiles="..\conf\import-tmpl\packet_conf.txt" DestinationFolder="..\conf\import\" ContinueOnError="true" Condition="!Exists('..\conf\import\packet_conf.txt')" /> + <Copy SourceFiles="..\conf\import-tmpl\script_conf.txt" DestinationFolder="..\conf\import\" ContinueOnError="true" Condition="!Exists('..\conf\import\script_conf.txt')" /> + </Target> +</Project>
\ No newline at end of file diff --git a/vcproj-14/map-server.vcxproj.filters b/vcproj-14/map-server.vcxproj.filters new file mode 100644 index 000000000..8347c134a --- /dev/null +++ b/vcproj-14/map-server.vcxproj.filters @@ -0,0 +1,454 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClCompile Include="..\src\map\atcommand.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\battle.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\battleground.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\buyingstore.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\chat.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\chrif.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\clif.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\date.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\duel.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\elemental.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\guild.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\homunculus.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\HPMmap.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\instance.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\intif.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\irc-bot.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\itemdb.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\log.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\mail.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\map.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\mapreg_sql.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\mercenary.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\mob.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\npc.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\npc_chat.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\party.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\path.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\pc.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\pet.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\quest.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\script.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\searchstore.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\skill.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\status.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\storage.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\trade.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\unit.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\map\vending.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\common\core.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\console.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\des.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\db.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\ers.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\grfio.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\HPM.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\malloc.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\mapindex.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\md5calc.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\nullpo.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\random.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\socket.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\sql.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\strlib.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\sysinfo.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\timer.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\utils.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\conf.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\map\pc_groups.c"> + <Filter>map_sql</Filter> + </ClCompile> + <ClCompile Include="..\src\common\showmsg.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\mt19937ar\mt19937ar.c"> + <Filter>3rdparty\mt19937ar</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\grammar.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\libconfig.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\scanctx.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\scanner.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\3rdparty\libconfig\strbuf.c"> + <Filter>3rdparty\libconfig</Filter> + </ClCompile> + <ClCompile Include="..\src\common\thread.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\mutex.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\map\channel.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\src\map\atcommand.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\battle.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\battleground.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\buyingstore.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\chat.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\chrif.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\clif.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\date.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\duel.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\elemental.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\guild.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\homunculus.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\HPMmap.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\instance.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\intif.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\irc-bot.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\itemdb.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\log.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\mail.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\map.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\mapreg.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\mercenary.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\mob.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\npc.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\packets.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\packets_struct.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\party.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\path.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\pc.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\pet.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\quest.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\script.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\searchstore.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\skill.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\status.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\storage.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\trade.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\unit.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\map\vending.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\common\cbasetypes.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\core.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\console.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\db.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\des.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\ers.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\grfio.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\HPM.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\HPMi.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\malloc.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\mapindex.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\md5calc.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\mmo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\nullpo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\random.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\socket.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\sql.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\strlib.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\sysinfo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\timer.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\utils.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\config\const.h" /> + <ClInclude Include="..\src\config\core.h" /> + <ClInclude Include="..\src\config\renewal.h" /> + <ClInclude Include="..\src\config\secure.h" /> + <ClInclude Include="..\src\config\classes\general.h" /> + <ClInclude Include="..\src\common\conf.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\map\pc_groups.h"> + <Filter>map_sql</Filter> + </ClInclude> + <ClInclude Include="..\src\common\showmsg.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\mt19937ar\mt19937ar.h"> + <Filter>3rdparty\mt19937ar</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\grammar.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\libconfig.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\parsectx.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\scanctx.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\scanner.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\strbuf.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\3rdparty\libconfig\wincompat.h"> + <Filter>3rdparty\libconfig</Filter> + </ClInclude> + <ClInclude Include="..\src\common\winapi.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\thread.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\mutex.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\map\channel.h" /> + </ItemGroup> + <ItemGroup> + <Filter Include="common"> + <UniqueIdentifier>{3a137217-ebf7-44ee-95d9-3d7c51d2a199}</UniqueIdentifier> + </Filter> + <Filter Include="map_sql"> + <UniqueIdentifier>{8c01a080-5a78-4fb7-96f2-862c33a02230}</UniqueIdentifier> + </Filter> + <Filter Include="3rdparty"> + <UniqueIdentifier>{c4845ea8-bcc7-411b-af29-e3842adb6714}</UniqueIdentifier> + </Filter> + <Filter Include="3rdparty\mt19937ar"> + <UniqueIdentifier>{fcf23386-ddba-4a72-9b41-62f8e2d0e6c0}</UniqueIdentifier> + </Filter> + <Filter Include="3rdparty\libconfig"> + <UniqueIdentifier>{9caf40b7-c4d1-43b4-bd1f-0376b4f920e7}</UniqueIdentifier> + </Filter> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/vcproj-14/mapcache.vcxproj b/vcproj-14/mapcache.vcxproj new file mode 100644 index 000000000..e8392f8f0 --- /dev/null +++ b/vcproj-14/mapcache.vcxproj @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{D356871D-58E1-450B-967A-E7E9646175AF}</ProjectGuid> + <RootNamespace>mapcache</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">mapcache</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">mapcache</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\zlib\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;MINICORE;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessToFile>false</PreprocessToFile> + <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers> + <ExceptionHandling> + </ExceptionHandling> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <AdditionalOptions> + </AdditionalOptions> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <CompileAs>CompileAsC</CompileAs> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <AdditionalOptions>/FIXED:NO %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>libcmtd.lib;oldnames.lib;zdll.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)mapcache.exe</OutputFile> + <AdditionalLibraryDirectories>..\3rdparty\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile> + <SubSystem>Console</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> + <IntrinsicFunctions>true</IntrinsicFunctions> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <OmitFramePointers>true</OmitFramePointers> + <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations> + <WholeProgramOptimization>true</WholeProgramOptimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\zlib\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;MINICORE;LIBCONFIG_STATIC;YY_USE_CONST;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <FunctionLevelLinking>false</FunctionLevelLinking> + <AdditionalOptions> + </AdditionalOptions> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <CompileAs>CompileAsC</CompileAs> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <AdditionalDependencies>libcmt.lib;oldnames.lib;zdll.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(OutDir)mapcache.exe</OutputFile> + <AdditionalLibraryDirectories>..\3rdparty\zlib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\src\common\core.c" /> + <ClCompile Include="..\src\common\console.c" /> + <ClCompile Include="..\src\common\des.c" /> + <ClCompile Include="..\src\common\grfio.c" /> + <ClCompile Include="..\src\common\malloc.c" /> + <ClCompile Include="..\src\common\showmsg.c" /> + <ClCompile Include="..\src\common\strlib.c" /> + <ClCompile Include="..\src\common\sysinfo.c" /> + <ClCompile Include="..\src\common\utils.c" /> + <ClCompile Include="..\src\common\nullpo.c" /> + <ClCompile Include="..\src\tool\mapcache.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\src\common\cbasetypes.h" /> + <ClInclude Include="..\src\common\core.h" /> + <ClInclude Include="..\src\common\console.h" /> + <ClInclude Include="..\src\common\des.h" /> + <ClInclude Include="..\src\common\grfio.h" /> + <ClInclude Include="..\src\common\malloc.h" /> + <ClInclude Include="..\src\common\mmo.h" /> + <ClInclude Include="..\src\common\showmsg.h" /> + <ClInclude Include="..\src\common\strlib.h" /> + <ClInclude Include="..\src\common\sysinfo.h" /> + <ClInclude Include="..\src\common\utils.h" /> + <ClInclude Include="..\src\common\winapi.h" /> + <ClInclude Include="..\src\common\nullpo.h" /> + <ClInclude Include="..\src\config\renewal.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/vcproj-14/mapcache.vcxproj.filters b/vcproj-14/mapcache.vcxproj.filters new file mode 100644 index 000000000..d5c2fbb83 --- /dev/null +++ b/vcproj-14/mapcache.vcxproj.filters @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClCompile Include="..\src\common\core.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\console.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\des.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\grfio.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\malloc.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\showmsg.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\strlib.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\sysinfo.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\utils.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\common\nullpo.c"> + <Filter>common</Filter> + </ClCompile> + <ClCompile Include="..\src\tool\mapcache.c"> + <Filter>mapcache</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\src\common\cbasetypes.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\core.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\console.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\des.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\grfio.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\malloc.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\mmo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\showmsg.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\strlib.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\sysinfo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\utils.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\winapi.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\common\nullpo.h"> + <Filter>common</Filter> + </ClInclude> + <ClInclude Include="..\src\config\renewal.h" /> + </ItemGroup> + <ItemGroup> + <Filter Include="common"> + <UniqueIdentifier>{a9c2444c-ffec-4e89-8412-e530231d79dc}</UniqueIdentifier> + </Filter> + <Filter Include="mapcache"> + <UniqueIdentifier>{5ea9d6f7-0a10-4bfb-ad39-478e4b1d8a0d}</UniqueIdentifier> + </Filter> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/vcproj-14/plugin-HPMHooking_char.vcxproj b/vcproj-14/plugin-HPMHooking_char.vcxproj new file mode 100644 index 000000000..832f46e7b --- /dev/null +++ b/vcproj-14/plugin-HPMHooking_char.vcxproj @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{D495824D-24D3-4623-A28C-4CA506084A09}</ProjectGuid> + <RootNamespace>plugin-HPMHooking_char</RootNamespace> + <Keyword>Win32Proj</Keyword> + <ProjectName>plugin-HPMHooking_char</ProjectName> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\plugins\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\plugins\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NativeRecommendedRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_char</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_char</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x0417</Culture> + </ResourceCompile> + <Link> + <OutputFile>$(OutDir)$(TargetName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_CHAR;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x0417</Culture> + </ResourceCompile> + <Link> + <OutputFile>$(OutDir)$(TargetName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\src\plugins\HPMHooking.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/vcproj-14/plugin-HPMHooking_login.vcxproj b/vcproj-14/plugin-HPMHooking_login.vcxproj new file mode 100644 index 000000000..5fc9ff10c --- /dev/null +++ b/vcproj-14/plugin-HPMHooking_login.vcxproj @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{544AD8E8-0309-49DE-9F8D-F9FEA24D92F1}</ProjectGuid> + <RootNamespace>plugin-HPMHooking_login</RootNamespace> + <Keyword>Win32Proj</Keyword> + <ProjectName>plugin-HPMHooking_login</ProjectName> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\plugins\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\plugins\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NativeRecommendedRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_login</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_login</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x0417</Culture> + </ResourceCompile> + <Link> + <OutputFile>$(OutDir)$(TargetName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_LOGIN;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x0417</Culture> + </ResourceCompile> + <Link> + <OutputFile>$(OutDir)$(TargetName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\src\plugins\HPMHooking.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/vcproj-14/plugin-HPMHooking_map.vcxproj b/vcproj-14/plugin-HPMHooking_map.vcxproj new file mode 100644 index 000000000..01e042841 --- /dev/null +++ b/vcproj-14/plugin-HPMHooking_map.vcxproj @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{745D4A8C-6A68-4721-A43A-D81BF59860A1}</ProjectGuid> + <RootNamespace>plugin-HPMHooking_map</RootNamespace> + <Keyword>Win32Proj</Keyword> + <ProjectName>plugin-HPMHooking_map</ProjectName> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\plugins\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\plugins\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NativeRecommendedRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">HPMHooking_map</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">HPMHooking_map</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x0417</Culture> + </ResourceCompile> + <Link> + <OutputFile>$(OutDir)$(TargetName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;HPMHOOKING_MAP;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x0417</Culture> + </ResourceCompile> + <Link> + <OutputFile>$(OutDir)$(TargetName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\src\plugins\HPMHooking.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/vcproj-14/plugin-sample.vcxproj b/vcproj-14/plugin-sample.vcxproj new file mode 100644 index 000000000..d2baea444 --- /dev/null +++ b/vcproj-14/plugin-sample.vcxproj @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{E64C56D3-CDFB-483B-900B-A62D216B6D2F}</ProjectGuid> + <RootNamespace>plugin-sample</RootNamespace> + <Keyword>Win32Proj</Keyword> + <ProjectName>plugin-sample</ProjectName> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\plugins\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\plugins\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NativeRecommendedRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" /> + <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet> + <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" /> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">plugin-sample</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">plugin-sample</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x0417</Culture> + </ResourceCompile> + <Link> + <OutputFile>$(OutDir)$(TargetName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions> + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\src;..\3rdparty;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x0417</Culture> + </ResourceCompile> + <Link> + <OutputFile>$(OutDir)$(TargetName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\src\plugins\sample.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file |