Maelstrom: Maelstrom builds on Windows again. Yay!

https://github.com/libsdl-org/Maelstrom/commit/c053886c65c5f58cfb1ff2b48732e3b542bd935f

From c053886c65c5f58cfb1ff2b48732e3b542bd935f Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 29 Nov 2011 02:18:37 -0500
Subject: [PATCH] Maelstrom builds on Windows again.  Yay!

---
 Makefile.am                      |    2 +-
 Makefile.in                      |    6 +-
 VisualC.zip                      |  Bin 5380 -> 0 bytes
 VisualC/Maelstrom.ico            |  Bin 0 -> 766 bytes
 VisualC/Maelstrom.rc             |  114 +++
 VisualC/Maelstrom_VS2008.sln     |   20 +
 VisualC/Maelstrom_VS2008.vcproj  | 1179 ++++++++++++++++++++++++++++++
 VisualC/clean.sh                 |    6 +
 VisualC/resource.h               |   15 +
 game/MaelstromUI.cpp             |   54 +-
 game/MaelstromUI.h               |    2 +-
 game/controls.cpp                |    2 +-
 game/game.cpp                    |   30 +-
 game/load.cpp                    |    2 +-
 game/main.cpp                    |   24 +-
 game/myerror.cpp                 |   19 +-
 game/myerror.h                   |    1 -
 game/netplay.cpp                 |    4 +-
 maclib/Mac_FontServ.cpp          |   12 +-
 maclib/Mac_FontServ.h            |   17 +-
 maclib/Mac_Sound.cpp             |    4 +-
 maclib/Mac_Sound.h               |   25 +-
 main.cpp => mainstub.cpp         |    0
 screenlib/SDL_FrameBuf.cpp       |    2 +-
 screenlib/SDL_FrameBuf.h         |    2 +-
 screenlib/UIArea.cpp             |   18 +-
 screenlib/UIArea.h               |    2 +-
 screenlib/UIBaseElement.cpp      |    2 +
 screenlib/UIContainer.cpp        |    2 +
 screenlib/UIDrawEngine.h         |    2 +-
 screenlib/UIElement.cpp          |    8 +-
 screenlib/UIElementEditbox.h     |    2 +-
 screenlib/UIManager.cpp          |   10 +-
 screenlib/UITemplates.cpp        |    6 +-
 {screenlib => utils}/ErrorBase.h |    2 +-
 utils/hashtable.c                |    4 +-
 utils/prefs.cpp                  |    1 +
 utils/prefs.h                    |    2 +-
 utils/rapidxml.hpp               |    8 +-
 39 files changed, 1455 insertions(+), 156 deletions(-)
 delete mode 100644 VisualC.zip
 create mode 100644 VisualC/Maelstrom.ico
 create mode 100644 VisualC/Maelstrom.rc
 create mode 100644 VisualC/Maelstrom_VS2008.sln
 create mode 100644 VisualC/Maelstrom_VS2008.vcproj
 create mode 100755 VisualC/clean.sh
 create mode 100644 VisualC/resource.h
 rename main.cpp => mainstub.cpp (100%)
 rename {screenlib => utils}/ErrorBase.h (96%)

diff --git a/Makefile.am b/Makefile.am
index a85b25ac..150004ec 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,7 +4,7 @@ ACLOCAL_AMFLAGS = -I acinclude
 bin_PROGRAMS = Maelstrom
 noinst_PROGRAMS = MaelstromLobby
 
-Maelstrom_SOURCES = main.cpp
+Maelstrom_SOURCES = mainstub.cpp
 
 Maelstrom_LDADD = 			\
 	game/libgame.a		\
diff --git a/Makefile.in b/Makefile.in
index 9ddfb171..c01dbdc4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -55,7 +55,7 @@ CONFIG_CLEAN_FILES = Maelstrom.spec
 am__installdirs = "$(DESTDIR)$(bindir)"
 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
-am_Maelstrom_OBJECTS = main.$(OBJEXT)
+am_Maelstrom_OBJECTS = mainstub.$(OBJEXT)
 Maelstrom_OBJECTS = $(am_Maelstrom_OBJECTS)
 Maelstrom_DEPENDENCIES = game/libgame.a screenlib/libSDLscreen.a \
 	maclib/libSDLmac.a utils/libutils.a
@@ -204,7 +204,7 @@ target_vendor = @target_vendor@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 ACLOCAL_AMFLAGS = -I acinclude
-Maelstrom_SOURCES = main.cpp
+Maelstrom_SOURCES = mainstub.cpp
 Maelstrom_LDADD = \
 	game/libgame.a		\
 	screenlib/libSDLscreen.a	\
@@ -314,7 +314,7 @@ distclean-compile:
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MaelstromLobby.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mainstub.Po@am__quote@
 
 .cpp.o:
 @am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
diff --git a/VisualC.zip b/VisualC.zip
deleted file mode 100644
index 4c8a18f6b5e1a0f270862c377a49e7b209f82ebb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5380
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
PAi8`_FV*(qH#hzdv-)gB

diff --git a/VisualC/Maelstrom.ico b/VisualC/Maelstrom.ico
new file mode 100644
index 0000000000000000000000000000000000000000..6c04e4430cc1e0c1a60710af85a2a698e9cfd754
GIT binary patch
literal 766
zcmc&yJ8r`;41Ey-Lu04TL?(|tLXQ%lK(1hoL<__`mXFh0xR0b%)J^x&q@?!|ZOaBu
zyhNVh@mYXp&NE9`udEZ!92wO94h5J{&50wI*tU(c3wtE?-B&DLPWkXF*5weo9`%mv
zU<cMtbZiPHBk{Wd)%=wLmm6_m4IO6Gop8M}o2H@na|5Q-!&gmc4u6eC&NAsQutq0|
z#K5x9Ni^`fv^NsIF`sAgZkKP2dbei9E~#IEo3$1V>7TjP8LK+^es<}h=`WIxQb|XD
z!Q{7^UL-JOkqZ0hI*&v6(z6afaK9GN()at3)c6~+ANdi{e*n&p`0zR7Ab!~YfB6MH
CziUYV

literal 0
HcmV?d00001

diff --git a/VisualC/Maelstrom.rc b/VisualC/Maelstrom.rc
new file mode 100644
index 00000000..01c935df
--- /dev/null
+++ b/VisualC/Maelstrom.rc
@@ -0,0 +1,114 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 4,0,0,0
+ PRODUCTVERSION 4,0,0,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName", "\0"
+            VALUE "FileDescription", "Maelstrom\0"
+            VALUE "FileVersion", "4, 0, 0, 0\0"
+            VALUE "InternalName", "Maelstrom\0"
+            VALUE "LegalCopyright", "Copyright © 2011 Sam Lantinga\0"
+            VALUE "OriginalFilename", "Maelstrom.exe\0"
+            VALUE "ProductName", "Maelstrom\0"
+            VALUE "ProductVersion", "4, 0, 0, 0\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
+#endif    // !_MAC
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+MAELSTROM               ICON    DISCARDABLE     "Maelstrom.ico"
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/VisualC/Maelstrom_VS2008.sln b/VisualC/Maelstrom_VS2008.sln
new file mode 100644
index 00000000..d9b60ee9
--- /dev/null
+++ b/VisualC/Maelstrom_VS2008.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Maelstrom", "Maelstrom_VS2008.vcproj", "{E2652516-8AC0-403D-B271-795443AB5B1C}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{E2652516-8AC0-403D-B271-795443AB5B1C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{E2652516-8AC0-403D-B271-795443AB5B1C}.Debug|Win32.Build.0 = Debug|Win32
+		{E2652516-8AC0-403D-B271-795443AB5B1C}.Release|Win32.ActiveCfg = Release|Win32
+		{E2652516-8AC0-403D-B271-795443AB5B1C}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/VisualC/Maelstrom_VS2008.vcproj b/VisualC/Maelstrom_VS2008.vcproj
new file mode 100644
index 00000000..ab7db81b
--- /dev/null
+++ b/VisualC/Maelstrom_VS2008.vcproj
@@ -0,0 +1,1179 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="Maelstrom"
+	ProjectGUID="{E2652516-8AC0-403D-B271-795443AB5B1C}"
+	RootNamespace="Maelstrom_VS2008"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="SDLmain.lib SDL.lib SDL_net.lib physfs.lib zdll.lib"
+				LinkIncremental="2"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				EnableIntrinsicFunctions="true"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="SDLmain.lib SDL.lib SDL_net.lib physfs.lib zdll.lib"
+				LinkIncremental="1"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\game\about.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\controls.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\fastrand.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\game.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\gameinfo.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\utils\hashtable.c"
+				>
+			</File>
+			<File
+				RelativePath="..\game\init.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\load.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\lobby.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\maclib\Mac_FontServ.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\maclib\Mac_Sound.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\MacDialog.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\MaelstromUI.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\main.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\mainstub.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\game\make.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\myerror.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\netplay.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\object.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\objects.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\utils\physfsrwops.c"
+				>
+			</File>
+			<File
+				RelativePath="..\game\player.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\utils\prefs.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\game\rect.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\replay.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\game\scores.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\screenlib\SDL_FrameBuf.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\screenlib\UIArea.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\screenlib\UIBaseElement.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\screenlib\UIContainer.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\screenlib\UIDialog.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\screenlib\UIDialogButton.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\screenlib\UIDrawEngine.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\screenlib\UIElement.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="

(Patch may be truncated, please check the link at the top of this post.)