Prechádzať zdrojové kódy

- Major reconfiguration of the trunk VS8 project files, read the changelog for details
- Also removed some deprecated code that was causing linking conflicts
- And fixed a missing md5calc reference in stable's VS8 files

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9619 54d463be-8e91-2dee-dedb-b68131a5f0ec

ultramage 18 rokov pred
rodič
commit
59b38494b7

+ 17 - 0
Changelog-Trunk.txt

@@ -3,6 +3,23 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2007/01/05
+	* Also discarded some veeery old utils code that has got equivalents
+	  in the std libs (and therefore is silently causing a nasty collision).
+	* Major reconfiguration of the VS8 project files. [ultramage]
+	- Removed the migration binding to a VS71 template.
+	- Disabled the setting that defines char -> unsigned char (non-conformant).
+	- Switched all projects to use the common C runtime library DLL
+	  instead of linking the static version to each exe.
+	- Enabled edit&continue on the TXT version (SQL already had it).
+	- Reconfigured the linker to use only the really required dependencies.
+	- Enabled full optimization and whole program optimization,
+	  with additional speed-improving settings for the release build.
+	- Set the compiler/linker to produce detailed debug information even for release builds
+	  (no performance penalty because the debug info is stored in a separate .pdb file!).
+	- I tested all 4 build combinations and it works for me, and it should work for you.
+	- There is still one very useful thing missing - setting the working dir to '..'.
+	  I don't know how to do that, tho' since VS stores it in a separate user file.
 2007/01/04
 	* Fixed old @go bug (it ignored einbech) [Lupus]
 	* Added Au{R}oN's updated version of the effect list.

+ 0 - 89
src/common/utils.c

@@ -51,95 +51,6 @@ void dump(unsigned char *buffer, int num)
    printf("\n");
 }
 
-//NOTE: There is no need to use this function as the standard sqrt is plenty fast as it is. [Skotlex]
-int newt_sqrt(int input)
-{
-	int new_value, value = input/2, count = 0;
-	if (!value) //Division by zero fix, pointed out by Shinomori. [Skotlex]
-		return input;
-	do
-	{
-		new_value = (value + input/value)>>1;
-		if (abs(value - new_value) <= 1)
-			return new_value;
-		value = new_value;
-	}
-	while (count++ < 25);
-	return new_value;
-}
-
-#if defined(_WIN32) && !defined(MINGW)
-char *rindex(char *str, char c)
-{
-        char *sptr;
-
-        sptr = str;
-        while(*sptr)
-                ++sptr;
-        if (c == '\0')
-                return(sptr);
-        while(str != sptr)
-                if (*sptr-- == c)
-                        return(++sptr);
-        return(NULL);
-}
-
-int strcasecmp(const char *arg1, const char *arg2)
-{
-  int chk, i;
-
-  if (arg1 == NULL || arg2 == NULL) {
-    ShowError("strcasecmp: received a NULL pointer, %p or %p.\n", arg1, arg2);
-    return (0);
-  }
-
-  for (i = 0; arg1[i] || arg2[i]; i++)
-    if ((chk = LOWER(arg1[i]) - LOWER(arg2[i])) != 0)
-      return (chk);	/* not equal */
-
-  return (0);
-}
-
-int strncasecmp(const char *arg1, const char *arg2, size_t n)
-{
-  int chk, i;
-
-  if (arg1 == NULL || arg2 == NULL) {
-    ShowError("strncasecmp(): received a NULL pointer, %p or %p.\n", arg1, arg2);
-    return (0);
-  }
-
-  for (i = 0; (arg1[i] || arg2[i]) && (n > 0); i++, n--)
-    if ((chk = LOWER(arg1[i]) - LOWER(arg2[i])) != 0)
-      return (chk);	/* not equal */
-
-  return (0);
-}
-
-void str_upper(char *name)
-{
-
-  int len = (int)strlen(name);
-  while (len--) {
-	if (*name >= 'a' && *name <= 'z')
-    	*name -= ('a' - 'A');
-     name++;
-  }
-}
-
-void str_lower(char *name)
-{
-  int len = (int)strlen(name);
-
-  while (len--) {
-	if (*name >= 'A' && *name <= 'Z')
-    	*name += ('a' - 'A');
-    name++;
-  }
-}
-
-#endif
-
 // Allocate a StringBuf  [MouseJstr]
 struct StringBuf * StringBuf_Malloc() 
 {

+ 0 - 10
src/common/utils.h

@@ -13,17 +13,7 @@
 #define LOWER(c)   (((c)>='A'  && (c) <= 'Z') ? ((c)+('a'-'A')) : (c))
 #define UPPER(c)   (((c)>='a'  && (c) <= 'z') ? ((c)+('A'-'a')) : (c) )
 
-/* strcasecmp -> stricmp -> str_cmp */
-#if defined(_WIN32) && !defined(MINGW)
-	int	strcasecmp(const char *arg1, const char *arg2);
-	int	strncasecmp(const char *arg1, const char *arg2, size_t n);
-	void str_upper(char *name);
-	void str_lower(char *name);
-    char *rindex(char *str, char c);
-#endif
-
 void dump(unsigned char *buffer, int num);
-int newt_sqrt(int value); //Newton aproximation for getting a fast sqrt.
 
 struct StringBuf {
 	char *buf_;

+ 69 - 36
vcproj-8/char-server_sql.vcproj

@@ -46,8 +46,9 @@
 				GeneratePreprocessedFile="0"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
-				DefaultCharIsUnsigned="true"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				DefaultCharIsUnsigned="false"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
@@ -65,13 +66,14 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib libmysql.lib zdll.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib libmysql.lib zdll.lib"
 				OutputFile="../char-server_sql.exe"
 				LinkIncremental="2"
 				AdditionalLibraryDirectories="..\lib"
-				IgnoreDefaultLibraryNames="LIBCMT"
+				IgnoreAllDefaultLibraries="true"
+				IgnoreDefaultLibraryNames=""
 				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/eAthena.pdb"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				TargetMachine="1"
 			/>
@@ -125,18 +127,21 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
+				Optimization="3"
+				InlineFunctionExpansion="2"
 				EnableIntrinsicFunctions="true"
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="true"
 				EnableFiberSafeOptimizations="true"
+				WholeProgramOptimization="true"
 				AdditionalIncludeDirectories="..\src\common;..\src\zlib;..\src\mysql"
 				PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION"
-				RuntimeLibrary="0"
-				DefaultCharIsUnsigned="true"
+				RuntimeLibrary="2"
+				DefaultCharIsUnsigned="false"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="0"
+				DebugInformationFormat="3"
 				CompileAs="1"
 			/>
 			<Tool
@@ -150,15 +155,18 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib libmysql.lib zdll.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib libmysql.lib zdll.lib"
 				OutputFile="../char-server_sql.exe"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="..\lib"
+				IgnoreAllDefaultLibraries="true"
 				IgnoreDefaultLibraryNames=""
-				GenerateDebugInformation="false"
+				GenerateDebugInformation="true"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				OptimizeReferences="2"
 				EnableCOMDATFolding="2"
+				LinkTimeCodeGeneration="1"
 				TargetMachine="1"
 			/>
 			<Tool
@@ -302,81 +310,106 @@
 		</Filter>
 		<Filter
 			Name="Header Files"
-			Filter="">
+			>
 			<File
-				RelativePath="..\src\char_sql\char.h">
+				RelativePath="..\src\char_sql\char.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\core.h">
+				RelativePath="..\src\common\core.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\db.h">
+				RelativePath="..\src\common\db.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\graph.h">
+				RelativePath="..\src\common\graph.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\grfio.h">
+				RelativePath="..\src\common\grfio.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\char_sql\int_guild.h">
+				RelativePath="..\src\char_sql\int_guild.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\char_sql\int_homun.h">
+				RelativePath="..\src\char_sql\int_homun.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\char_sql\int_party.h">
+				RelativePath="..\src\char_sql\int_party.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\char_sql\int_pet.h">
+				RelativePath="..\src\char_sql\int_pet.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\char_sql\int_storage.h">
+				RelativePath="..\src\char_sql\int_storage.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\char_sql\inter.h">
+				RelativePath="..\src\char_sql\inter.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\char_sql\itemdb.h">
+				RelativePath="..\src\char_sql\itemdb.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\lock.h">
+				RelativePath="..\src\common\lock.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\malloc.h">
+				RelativePath="..\src\common\malloc.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\mapindex.h">
+				RelativePath="..\src\common\mapindex.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\mmo.h">
+				RelativePath="..\src\common\mmo.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\nullpo.h">
+				RelativePath="..\src\common\nullpo.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\plugin.h">
+				RelativePath="..\src\common\plugin.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\plugins.h">
+				RelativePath="..\src\common\plugins.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\showmsg.h">
+				RelativePath="..\src\common\showmsg.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\socket.h">
+				RelativePath="..\src\common\socket.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\strlib.h">
+				RelativePath="..\src\common\strlib.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\timer.h">
+				RelativePath="..\src\common\timer.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\utils.h">
+				RelativePath="..\src\common\utils.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\version.h">
+				RelativePath="..\src\common\version.h"
+				>
 			</File>
 		</Filter>
 	</Files>

+ 19 - 10
vcproj-8/char-server_txt.vcproj

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
 	ProjectType="Visual C++"
-	Version="8,00"
+	Version="8.00"
 	Name="char-server_txt"
 	ProjectGUID="{D356871D-58E1-450B-967A-E3E9646175AF}"
 	RootNamespace="char-server_txt"
@@ -46,8 +46,9 @@
 				GeneratePreprocessedFile="0"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
-				DefaultCharIsUnsigned="true"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				DefaultCharIsUnsigned="false"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
@@ -65,12 +66,13 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib zdll.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib zdll.lib"
 				OutputFile="..\char-server.exe"
 				LinkIncremental="2"
 				AdditionalLibraryDirectories="..\lib"
+				IgnoreAllDefaultLibraries="true"
 				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/eAthena.pdb"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				TargetMachine="1"
 			/>
@@ -124,18 +126,22 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
+				Optimization="3"
+				InlineFunctionExpansion="2"
 				EnableIntrinsicFunctions="true"
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="true"
 				EnableFiberSafeOptimizations="true"
+				WholeProgramOptimization="true"
 				AdditionalIncludeDirectories="..\src\common;..\src\zlib"
 				PreprocessorDefinitions="WIN32;_WIN32;__WIN32;TXT_ONLY;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION"
-				RuntimeLibrary="0"
-				DefaultCharIsUnsigned="true"
+				StringPooling="true"
+				RuntimeLibrary="2"
+				DefaultCharIsUnsigned="false"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="0"
+				DebugInformationFormat="3"
 				CompileAs="1"
 			/>
 			<Tool
@@ -149,14 +155,17 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib zdll.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib zdll.lib"
 				OutputFile="..\char-server.exe"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="..\lib"
-				GenerateDebugInformation="false"
+				IgnoreAllDefaultLibraries="true"
+				GenerateDebugInformation="true"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				OptimizeReferences="2"
 				EnableCOMDATFolding="2"
+				LinkTimeCodeGeneration="1"
 				TargetMachine="1"
 			/>
 			<Tool

+ 47 - 27
vcproj-8/login-server_sql.vcproj

@@ -47,7 +47,7 @@
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="1"
-				DefaultCharIsUnsigned="true"
+				DefaultCharIsUnsigned="false"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
@@ -65,13 +65,14 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib libmysql.lib zdll.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib libmysql.lib zdll.lib"
 				OutputFile="..\login-server_sql.exe"
 				LinkIncremental="2"
 				AdditionalLibraryDirectories="..\lib"
+				IgnoreAllDefaultLibraries="true"
 				IgnoreDefaultLibraryNames="LIBCMT"
 				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/eAthena.pdb"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				TargetMachine="1"
 			/>
@@ -132,13 +133,13 @@
 				AdditionalIncludeDirectories="..\src\common;..\src\zlib;..\src\mysql"
 				PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION"
 				RuntimeLibrary="0"
-				DefaultCharIsUnsigned="true"
+				DefaultCharIsUnsigned="false"
 				UsePrecompiledHeader="0"
 				PrecompiledHeaderThrough=""
 				PrecompiledHeaderFile=""
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="0"
+				DebugInformationFormat="3"
 				CompileAs="1"
 			/>
 			<Tool
@@ -152,13 +153,14 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib libmysql.lib zdll.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib libmysql.lib zdll.lib"
 				OutputFile="..\login-server_sql.exe"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="..\lib"
-				IgnoreAllDefaultLibraries="false"
+				IgnoreAllDefaultLibraries="true"
 				IgnoreDefaultLibraryNames=""
-				GenerateDebugInformation="false"
+				GenerateDebugInformation="true"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				OptimizeReferences="2"
 				EnableCOMDATFolding="2"
@@ -277,60 +279,78 @@
 		</Filter>
 		<Filter
 			Name="Header Files"
-			Filter="">
+			>
 			<File
-				RelativePath="..\src\common\core.h">
+				RelativePath="..\src\common\core.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\db.h">
+				RelativePath="..\src\common\db.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\graph.h">
+				RelativePath="..\src\common\graph.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\grfio.h">
+				RelativePath="..\src\common\grfio.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\lock.h">
+				RelativePath="..\src\common\lock.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\login_sql\login.h">
+				RelativePath="..\src\login_sql\login.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\malloc.h">
+				RelativePath="..\src\common\malloc.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\md5calc.h">
+				RelativePath="..\src\common\md5calc.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\mmo.h">
+				RelativePath="..\src\common\mmo.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\nullpo.h">
+				RelativePath="..\src\common\nullpo.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\plugin.h">
+				RelativePath="..\src\common\plugin.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\plugins.h">
+				RelativePath="..\src\common\plugins.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\showmsg.h">
+				RelativePath="..\src\common\showmsg.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\socket.h">
+				RelativePath="..\src\common\socket.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\strlib.h">
+				RelativePath="..\src\common\strlib.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\timer.h">
+				RelativePath="..\src\common\timer.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\utils.h">
+				RelativePath="..\src\common\utils.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\version.h">
+				RelativePath="..\src\common\version.h"
+				>
 			</File>
 		</Filter>
 	</Files>

+ 54 - 30
vcproj-8/login-server_txt.vcproj

@@ -20,7 +20,6 @@
 			OutputDirectory="Debug-login"
 			IntermediateDirectory="Debug-login"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
 			CharacterSet="2"
 			>
 			<Tool
@@ -46,11 +45,11 @@
 				GeneratePreprocessedFile="0"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
+				RuntimeLibrary="3"
 				BufferSecurityCheck="true"
 				EnableFunctionLevelLinking="true"
 				DisableLanguageExtensions="false"
-				DefaultCharIsUnsigned="true"
+				DefaultCharIsUnsigned="false"
 				TreatWChar_tAsBuiltInType="true"
 				ForceConformanceInForLoopScope="true"
 				RuntimeTypeInfo="true"
@@ -72,13 +71,14 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib zdll.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib zdll.lib"
 				ShowProgress="0"
 				OutputFile="..\login-server.exe"
 				LinkIncremental="2"
 				AdditionalLibraryDirectories="..\lib"
+				IgnoreAllDefaultLibraries="true"
 				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/eAthena.pdb"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				TargetMachine="1"
 			/>
@@ -112,8 +112,8 @@
 			OutputDirectory="Release-login"
 			IntermediateDirectory="Release-login"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
 			CharacterSet="2"
+			WholeProgramOptimization="1"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -132,18 +132,22 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
+				Optimization="3"
+				InlineFunctionExpansion="2"
 				EnableIntrinsicFunctions="true"
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="true"
 				EnableFiberSafeOptimizations="true"
+				WholeProgramOptimization="true"
 				AdditionalIncludeDirectories="..\src\common;..\src\zlib"
 				PreprocessorDefinitions="WIN32;_WIN32;__WIN32;TXT_ONLY;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION"
-				RuntimeLibrary="0"
-				DefaultCharIsUnsigned="true"
+				StringPooling="true"
+				RuntimeLibrary="2"
+				DefaultCharIsUnsigned="false"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="0"
+				DebugInformationFormat="3"
 				CompileAs="1"
 			/>
 			<Tool
@@ -157,11 +161,13 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib zdll.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib zdll.lib"
 				OutputFile="..\login-server.exe"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="..\lib"
-				GenerateDebugInformation="false"
+				IgnoreAllDefaultLibraries="true"
+				GenerateDebugInformation="true"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				OptimizeReferences="2"
 				EnableCOMDATFolding="2"
@@ -280,60 +286,78 @@
 		</Filter>
 		<Filter
 			Name="Header Files"
-			Filter="">
+			>
 			<File
-				RelativePath="..\src\common\core.h">
+				RelativePath="..\src\common\core.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\db.h">
+				RelativePath="..\src\common\db.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\graph.h">
+				RelativePath="..\src\common\graph.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\grfio.h">
+				RelativePath="..\src\common\grfio.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\lock.h">
+				RelativePath="..\src\common\lock.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\login\login.h">
+				RelativePath="..\src\login\login.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\malloc.h">
+				RelativePath="..\src\common\malloc.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\md5calc.h">
+				RelativePath="..\src\common\md5calc.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\mmo.h">
+				RelativePath="..\src\common\mmo.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\nullpo.h">
+				RelativePath="..\src\common\nullpo.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\plugin.h">
+				RelativePath="..\src\common\plugin.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\plugins.h">
+				RelativePath="..\src\common\plugins.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\showmsg.h">
+				RelativePath="..\src\common\showmsg.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\socket.h">
+				RelativePath="..\src\common\socket.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\strlib.h">
+				RelativePath="..\src\common\strlib.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\timer.h">
+				RelativePath="..\src\common\timer.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\utils.h">
+				RelativePath="..\src\common\utils.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\version.h">
+				RelativePath="..\src\common\version.h"
+				>
 			</File>
 		</Filter>
 	</Files>

+ 117 - 62
vcproj-8/map-server_sql.vcproj

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
 	ProjectType="Visual C++"
-	Version="8,00"
+	Version="8.00"
 	Name="map-server_sql"
 	ProjectGUID="{D356871D-58E1-450B-967A-E6E9646175AF}"
 	RootNamespace="map-server_sql"
@@ -20,7 +20,6 @@
 			OutputDirectory="Debug-sqlmap"
 			IntermediateDirectory="Debug-sqlmap"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
 			CharacterSet="2"
 			>
 			<Tool
@@ -46,8 +45,9 @@
 				GeneratePreprocessedFile="0"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
-				DefaultCharIsUnsigned="true"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				DefaultCharIsUnsigned="false"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
@@ -65,13 +65,14 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib libmysql.lib zdll.lib pcre.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib libmysql.lib zdll.lib pcre.lib"
 				OutputFile="..\map-server_sql.exe"
 				LinkIncremental="2"
 				AdditionalLibraryDirectories="..\lib"
-				IgnoreDefaultLibraryNames="LIBCMT"
+				IgnoreAllDefaultLibraries="true"
+				IgnoreDefaultLibraryNames=""
 				GenerateDebugInformation="true"
-				ProgramDatabaseFile="..\map-server_sql.pdb"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				TargetMachine="1"
 			/>
@@ -107,6 +108,7 @@
 			ConfigurationType="1"
 			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
 			CharacterSet="2"
+			WholeProgramOptimization="1"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -125,18 +127,20 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
+				Optimization="3"
+				InlineFunctionExpansion="2"
 				EnableIntrinsicFunctions="true"
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="true"
 				EnableFiberSafeOptimizations="true"
 				AdditionalIncludeDirectories="..\src\common;..\src\zlib;..\src\mysql"
 				PreprocessorDefinitions="WIN32;_WIN32;__WIN32;PCRE_SUPPORT;MAPREGSQL;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION"
-				RuntimeLibrary="0"
-				DefaultCharIsUnsigned="true"
+				RuntimeLibrary="2"
+				DefaultCharIsUnsigned="false"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="0"
+				DebugInformationFormat="3"
 				CompileAs="1"
 			/>
 			<Tool
@@ -150,12 +154,14 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib libmysql.lib zdll.lib pcre.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib libmysql.lib zdll.lib pcre.lib"
 				OutputFile="..\map-server_sql.exe"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="..\lib"
+				IgnoreAllDefaultLibraries="true"
 				IgnoreDefaultLibraryNames=""
-				GenerateDebugInformation="false"
+				GenerateDebugInformation="true"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				OptimizeReferences="2"
 				EnableCOMDATFolding="2"
@@ -390,153 +396,202 @@
 		</Filter>
 		<Filter
 			Name="Header Files"
-			Filter="">
+			>
 			<File
-				RelativePath="..\src\map\atcommand.h">
+				RelativePath="..\src\map\atcommand.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\battle.h">
+				RelativePath="..\src\map\battle.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\cbasetypes.h">
+				RelativePath="..\src\common\cbasetypes.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\charcommand.h">
+				RelativePath="..\src\map\charcommand.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\charsave.h">
+				RelativePath="..\src\map\charsave.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\chat.h">
+				RelativePath="..\src\map\chat.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\chrif.h">
+				RelativePath="..\src\map\chrif.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\clif.h">
+				RelativePath="..\src\map\clif.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\core.h">
+				RelativePath="..\src\common\core.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\date.h">
+				RelativePath="..\src\map\date.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\db.h">
+				RelativePath="..\src\common\db.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\ers.h">
+				RelativePath="..\src\common\ers.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\graph.h">
+				RelativePath="..\src\common\graph.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\grfio.h">
+				RelativePath="..\src\common\grfio.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\guild.h">
+				RelativePath="..\src\map\guild.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\intif.h">
+				RelativePath="..\src\map\intif.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\irc.h">
+				RelativePath="..\src\map\irc.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\itemdb.h">
+				RelativePath="..\src\map\itemdb.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\limits.h">
+				RelativePath="..\src\common\limits.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\lock.h">
+				RelativePath="..\src\common\lock.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\log.h">
+				RelativePath="..\src\map\log.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\mail.h">
+				RelativePath="..\src\map\mail.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\malloc.h">
+				RelativePath="..\src\common\malloc.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\map.h">
+				RelativePath="..\src\map\map.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\mapindex.h">
+				RelativePath="..\src\common\mapindex.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\mercenary.h">
+				RelativePath="..\src\map\mercenary.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\mmo.h">
+				RelativePath="..\src\common\mmo.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\mob.h">
+				RelativePath="..\src\map\mob.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\npc.h">
+				RelativePath="..\src\map\npc.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\nullpo.h">
+				RelativePath="..\src\common\nullpo.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\party.h">
+				RelativePath="..\src\map\party.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\pc.h">
+				RelativePath="..\src\map\pc.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\pcre.h">
+				RelativePath="..\src\map\pcre.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\pet.h">
+				RelativePath="..\src\map\pet.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\plugin.h">
+				RelativePath="..\src\common\plugin.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\plugins.h">
+				RelativePath="..\src\common\plugins.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\script.h">
+				RelativePath="..\src\map\script.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\showmsg.h">
+				RelativePath="..\src\common\showmsg.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\skill.h">
+				RelativePath="..\src\map\skill.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\socket.h">
+				RelativePath="..\src\common\socket.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\status.h">
+				RelativePath="..\src\map\status.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\storage.h">
+				RelativePath="..\src\map\storage.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\strlib.h">
+				RelativePath="..\src\common\strlib.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\timer.h">
+				RelativePath="..\src\common\timer.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\trade.h">
+				RelativePath="..\src\map\trade.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\unit.h">
+				RelativePath="..\src\map\unit.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\utils.h">
+				RelativePath="..\src\common\utils.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\map\vending.h">
+				RelativePath="..\src\map\vending.h"
+				>
 			</File>
 			<File
-				RelativePath="..\src\common\version.h">
+				RelativePath="..\src\common\version.h"
+				>
 			</File>
 		</Filter>
 	</Files>

+ 20 - 14
vcproj-8/map-server_txt.vcproj

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
 	ProjectType="Visual C++"
-	Version="8,00"
+	Version="8.00"
 	Name="map-server_txt"
 	ProjectGUID="{D356871D-58E1-450B-967A-E1E9646175AF}"
 	RootNamespace="map-server_txt"
@@ -20,7 +20,6 @@
 			OutputDirectory="Debug-map"
 			IntermediateDirectory="Debug-map"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
 			CharacterSet="2"
 			>
 			<Tool
@@ -47,13 +46,14 @@
 				MinimalRebuild="true"
 				ExceptionHandling="0"
 				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
-				DefaultCharIsUnsigned="true"
+				RuntimeLibrary="3"
+				EnableFunctionLevelLinking="true"
+				DefaultCharIsUnsigned="false"
 				ForceConformanceInForLoopScope="true"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
+				DebugInformationFormat="4"
 				CompileAs="1"
 			/>
 			<Tool
@@ -68,12 +68,13 @@
 			<Tool
 				Name="VCLinkerTool"
 				AdditionalOptions="/FIXED:NO"
-				AdditionalDependencies="WSOCK32.lib zdll.lib pcre.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib zdll.lib pcre.lib"
 				OutputFile="..\map-server.exe"
-				LinkIncremental="1"
+				LinkIncremental="2"
 				AdditionalLibraryDirectories="..\lib"
+				IgnoreAllDefaultLibraries="true"
 				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/eAthena.pdb"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				TargetMachine="1"
 			/>
@@ -107,8 +108,8 @@
 			OutputDirectory="Release-map"
 			IntermediateDirectory="Release-map"
 			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
 			CharacterSet="2"
+			WholeProgramOptimization="1"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -128,18 +129,21 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="2"
+				InlineFunctionExpansion="2"
 				EnableIntrinsicFunctions="true"
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="true"
 				EnableFiberSafeOptimizations="true"
 				AdditionalIncludeDirectories="..\src\common;..\src\zlib"
 				PreprocessorDefinitions="WIN32;_WIN32;__WIN32;PCRE_SUPPORT;TXT_ONLY;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FD_SETSIZE=4096;DB_MANUAL_CAST_TO_UNION"
-				RuntimeLibrary="0"
-				DefaultCharIsUnsigned="true"
+				StringPooling="true"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="false"
+				DefaultCharIsUnsigned="false"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="0"
+				DebugInformationFormat="3"
 				CompileAs="1"
 			/>
 			<Tool
@@ -153,11 +157,13 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="WSOCK32.lib zdll.lib pcre.lib"
+				AdditionalDependencies="msvcrt.lib oldnames.lib ws2_32.lib zdll.lib pcre.lib"
 				OutputFile="..\map-server.exe"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="..\lib"
-				GenerateDebugInformation="false"
+				IgnoreAllDefaultLibraries="true"
+				GenerateDebugInformation="true"
+				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="1"
 				OptimizeReferences="2"
 				EnableCOMDATFolding="2"