Browse Source

It's now possible to build each module individually (as a DLL).

rude 16 years ago
parent
commit
8e681b4204
59 changed files with 5316 additions and 401 deletions
  1. 10 12
      .hgignore
  2. 423 0
      platform/msvc2008/audio/audio.vcproj
  3. 240 0
      platform/msvc2008/common/common.vcproj
  4. 215 0
      platform/msvc2008/event/event.vcproj
  5. 231 0
      platform/msvc2008/filesystem/filesystem.vcproj
  6. 307 0
      platform/msvc2008/font/font.vcproj
  7. 459 0
      platform/msvc2008/graphics/graphics.vcproj
  8. 263 0
      platform/msvc2008/image/image.vcproj
  9. 215 0
      platform/msvc2008/joystick/joystick.vcproj
  10. 215 0
      platform/msvc2008/keyboard/keyboard.vcproj
  11. 129 0
      platform/msvc2008/love.sln
  12. 0 8
      platform/msvc2008/love.vcproj
  13. 215 0
      platform/msvc2008/mouse/mouse.vcproj
  14. 244 0
      platform/msvc2008/native/native.vcproj
  15. 1031 0
      platform/msvc2008/physics/physics.vcproj
  16. 359 0
      platform/msvc2008/sound/sound.vcproj
  17. 211 0
      platform/msvc2008/timer/timer.vcproj
  18. 1 0
      src/common/Data.h
  19. 3 0
      src/common/Object.h
  20. 7 16
      src/common/config.h
  21. 0 279
      src/common/constants.cpp
  22. 69 5
      src/common/runtime.cpp
  23. 22 1
      src/common/runtime.h
  24. 11 15
      src/common/version.h
  25. 27 33
      src/love.cpp
  26. 0 1
      src/modules/audio/openal/Audio.h
  27. 7 4
      src/modules/audio/wrap_Audio.cpp
  28. 1 0
      src/modules/audio/wrap_Audio.h
  29. 18 1
      src/modules/event/sdl/wrap_Event.cpp
  30. 3 0
      src/modules/event/sdl/wrap_Event.h
  31. 11 2
      src/modules/filesystem/physfs/Filesystem.cpp
  32. 0 1
      src/modules/filesystem/physfs/Filesystem.h
  33. 14 1
      src/modules/filesystem/physfs/wrap_Filesystem.cpp
  34. 2 0
      src/modules/filesystem/physfs/wrap_Filesystem.h
  35. 3 2
      src/modules/font/GlyphData.h
  36. 7 2
      src/modules/font/freetype/wrap_Font.cpp
  37. 3 0
      src/modules/font/freetype/wrap_Font.h
  38. 3 1
      src/modules/graphics/opengl/GLee.h
  39. 1 0
      src/modules/graphics/opengl/Glyph.cpp
  40. 59 5
      src/modules/graphics/opengl/wrap_Graphics.cpp
  41. 2 0
      src/modules/graphics/opengl/wrap_Graphics.h
  42. 1 0
      src/modules/image/Image.h
  43. 6 1
      src/modules/image/wrap_Image.cpp
  44. 2 0
      src/modules/image/wrap_Image.h
  45. 23 1
      src/modules/joystick/sdl/wrap_Joystick.cpp
  46. 3 0
      src/modules/joystick/sdl/wrap_Joystick.h
  47. 161 1
      src/modules/keyboard/sdl/wrap_Keyboard.cpp
  48. 3 0
      src/modules/keyboard/sdl/wrap_Keyboard.h
  49. 17 2
      src/modules/mouse/sdl/wrap_Mouse.cpp
  50. 4 0
      src/modules/mouse/sdl/wrap_Mouse.h
  51. 6 1
      src/modules/native/tcc/wrap_Native.cpp
  52. 3 0
      src/modules/native/tcc/wrap_Native.h
  53. 22 1
      src/modules/physics/box2d/wrap_Physics.cpp
  54. 3 0
      src/modules/physics/box2d/wrap_Physics.h
  55. 3 3
      src/modules/sound/SoundData.h
  56. 6 1
      src/modules/sound/wrap_Sound.cpp
  57. 3 0
      src/modules/sound/wrap_Sound.h
  58. 6 1
      src/modules/timer/sdl/wrap_Timer.cpp
  59. 3 0
      src/modules/timer/sdl/wrap_Timer.h

+ 10 - 12
.hgignore

@@ -1,20 +1,18 @@
 relre:platform/msvc2008/include/
 relre:platform/msvc2008/include/
-glob:platform/msvc2008/Debug/
-glob:platform/msvc2008/Release/
 glob:platform/msvc2008/lib/
 glob:platform/msvc2008/lib/
-relre:platform/msvc2008/(.*)user
-relre:platform/msvc2008/(.*)dll
-relre:platform/msvc2008/(.*)ncb
 relre:platform/msvc2008/(.*)txt
 relre:platform/msvc2008/(.*)txt
 relre:platform/msvc2008/(.*)suo
 relre:platform/msvc2008/(.*)suo
-relre:src/scripts/(.*)exe
-relre:src/scripts/(.*)bat
 glob:extra/reshax/Release/
 glob:extra/reshax/Release/
 glob:extra/reshax/Debug/
 glob:extra/reshax/Debug/
-relre:src/resources/(.*)bat
-relre:src/resources/(.*)exe
-relre:extra/reshax/(.*)ncb
-relre:extra/reshax/(.*)suo
-relre:extra/reshax/(.*)user
 glob:extra/reshax/resources.h
 glob:extra/reshax/resources.h
 glob:extra/reshax/resources.cpp
 glob:extra/reshax/resources.cpp
+glob:*.obj
+glob:*.dll
+glob:*.user
+glob:*.suo
+glob:*/Release*
+glob:*/Debug*
+glob:*.lib
+glob:*.ncb
+glob:*.exe
+glob:*.bat

+ 423 - 0
platform/msvc2008/audio/audio.vcproj

@@ -0,0 +1,423 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="audio"
+	ProjectGUID="{1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}"
+	RootNamespace="audio"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules;../include/SDL"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;AUDIO_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="openal32.lib SDL.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;AUDIO_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="openal"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\audio\openal\Audio.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\audio\openal\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\openal\Audio.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\openal\Music.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\audio\openal\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\openal\Music.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\openal\Pool.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\audio\openal\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\openal\Pool.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\openal\Sound.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\audio\openal\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\openal\Sound.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\openal\Source.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\audio\openal\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\openal\Source.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="null"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\audio\null\Audio.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\audio\null\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\null\Audio.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\null\Music.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\audio\null\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\null\Music.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\null\Sound.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\audio\null\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\null\Sound.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\null\Source.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\audio\null\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\audio\null\Source.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\audio\Audible.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\Audio.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\Music.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\Sound.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\Source.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\audio\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\Source.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\wrap_Audio.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\audio\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\wrap_Audio.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\wrap_Music.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\audio\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\wrap_Music.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\wrap_Sound.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\audio\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\wrap_Sound.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\wrap_Source.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\audio\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\audio\wrap_Source.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 240 - 0
platform/msvc2008/common/common.vcproj

@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="common"
+	ProjectGUID="{8273822F-45A4-4BE3-82F3-B8B3223C578C}"
+	RootNamespace="common"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				AdditionalDependencies="lua5.1.lib"
+				AdditionalLibraryDirectories="..\lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			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;_LIB"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<File
+			RelativePath="..\..\..\src\common\config.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Data.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Exception.cpp"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Exception.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\math.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Matrix.cpp"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Matrix.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\MemoryData.cpp"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\MemoryData.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Module.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Object.cpp"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Object.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Reference.cpp"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Reference.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\runtime.cpp"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\runtime.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\types.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Vector.cpp"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\Vector.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\version.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\wrap_Data.cpp"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\common\wrap_Data.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 215 - 0
platform/msvc2008/event/event.vcproj

@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="event"
+	ProjectGUID="{62C66448-36CB-4350-9D6E-02F49F05EDB4}"
+	RootNamespace="event"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules;../include/SDL"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EVENT_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="lua5.1.lib SDL.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;EVENT_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="sdl"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\event\sdl\Event.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\event\sdl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\event\sdl\Event.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\event\sdl\wrap_Event.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\event\sdl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\event\sdl\wrap_Event.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\event\Event.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 231 - 0
platform/msvc2008/filesystem/filesystem.vcproj

@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="filesystem"
+	ProjectGUID="{0A2BDA60-43BB-4837-921A-2E4955FD8AEC}"
+	RootNamespace="filesystem"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LOVE_FILESYSTEM_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="lua5.1.lib physfs.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;FILESYSTEM_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="filesystem"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\filesystem\physfs\File.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\filesystem\physfs\File.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\filesystem\physfs\Filesystem.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\filesystem\physfs\Filesystem.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\filesystem\physfs\wrap_File.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\filesystem\physfs\wrap_File.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\filesystem\physfs\wrap_FileData.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\filesystem\physfs\wrap_FileData.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\filesystem\physfs\wrap_Filesystem.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\filesystem\physfs\wrap_Filesystem.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\filesystem\File.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\filesystem\FileData.cpp"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\filesystem\FileData.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 307 - 0
platform/msvc2008/font/font.vcproj

@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="font"
+	ProjectGUID="{0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}"
+	RootNamespace="font"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FONT_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="freetype.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;FONT_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="freetype"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\font\freetype\Font.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\font\freetype\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\font\freetype\Font.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\font\freetype\TrueTypeRasterizer.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\font\freetype\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\font\freetype\TrueTypeRasterizer.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\font\freetype\wrap_Font.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\font\freetype\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\font\freetype\wrap_Font.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\font\GlyphData.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\font\freetype\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\font\GlyphData.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\font\ImageRasterizer.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\font\freetype\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\font\ImageRasterizer.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\font\Rasterizer.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\font\freetype\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\font\Rasterizer.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\font\wrap_GlyphData.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\font\freetype\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\font\wrap_GlyphData.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\font\wrap_Rasterizer.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\font\freetype\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\font\wrap_Rasterizer.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 459 - 0
platform/msvc2008/graphics/graphics.vcproj

@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="graphics"
+	ProjectGUID="{8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}"
+	RootNamespace="graphics"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules;../include/SDL"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;GRAPHICS_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="opengl32.lib glu32.lib SDL.lib freetype.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;GRAPHICS_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="opengl"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\Font.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\Font.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\Frame.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\Frame.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\GLee.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\GLee.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\Glyph.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\Glyph.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\Graphics.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\Graphics.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\Image.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\Image.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\ImageFont.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\ImageFont.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\SpriteBatch.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\SpriteBatch.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\TrueTypeFont.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\TrueTypeFont.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_Font.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_Font.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_Frame.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_Frame.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_Glyph.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_Glyph.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_Graphics.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_Graphics.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_Image.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_Image.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_SpriteBatch.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\graphics\opengl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\graphics\opengl\wrap_SpriteBatch.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\graphics\Drawable.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\graphics\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\graphics\Drawable.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\graphics\Graphics.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\graphics\Image.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\graphics\Volatile.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\graphics\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\graphics\Volatile.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 263 - 0
platform/msvc2008/image/image.vcproj

@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="image"
+	ProjectGUID="{55F35AEA-2D84-4A39-BF98-505106A15FF7}"
+	RootNamespace="image"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;IMAGE_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="lua5.1.lib DevIL.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;IMAGE_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="devil"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\image\devil\Image.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\image\devil\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\image\devil\Image.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\image\devil\ImageData.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\image\devil\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\image\devil\ImageData.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\image\Image.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\image\ImageData.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\image\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\image\ImageData.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\image\wrap_Image.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\image\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\image\wrap_Image.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\image\wrap_ImageData.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\image\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\image\wrap_ImageData.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 215 - 0
platform/msvc2008/joystick/joystick.vcproj

@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="joystick"
+	ProjectGUID="{C6C174AC-B339-4A39-A353-CFF523327B53}"
+	RootNamespace="joystick"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules;../include/SDL"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EVENT_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="lua5.1.lib SDL.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;EVENT_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="sdl"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\joystick\sdl\Joystick.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\joystick\sdl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\joystick\sdl\Joystick.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\joystick\sdl\wrap_Joystick.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\joystick\sdl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\joystick\sdl\wrap_Joystick.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\joystick\Joystick.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 215 - 0
platform/msvc2008/keyboard/keyboard.vcproj

@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="keyboard"
+	ProjectGUID="{F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}"
+	RootNamespace="keyboard"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules;../include/SDL"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;KEYBOARD_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="lua5.1.lib SDL.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;KEYBOARD_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="sdl"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\keyboard\sdl\Keyboard.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\keyboard\sdlkeyboard\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\keyboard\sdl\Keyboard.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\keyboard\sdl\wrap_Keyboard.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\keyboard\sdlkeyboard\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\keyboard\sdl\wrap_Keyboard.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\keyboard\Keyboard.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 129 - 0
platform/msvc2008/love.sln

@@ -3,6 +3,79 @@ Microsoft Visual Studio Solution File, Format Version 10.00
 # Visual C++ Express 2008
 # Visual C++ Express 2008
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "love", "love.vcproj", "{F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}"
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "love", "love.vcproj", "{F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}"
 EndProject
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common\common.vcproj", "{8273822F-45A4-4BE3-82F3-B8B3223C578C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filesystem", "filesystem\filesystem.vcproj", "{0A2BDA60-43BB-4837-921A-2E4955FD8AEC}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "image", "image\image.vcproj", "{55F35AEA-2D84-4A39-BF98-505106A15FF7}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+		{0A2BDA60-43BB-4837-921A-2E4955FD8AEC} = {0A2BDA60-43BB-4837-921A-2E4955FD8AEC}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sound", "sound\sound.vcproj", "{3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+		{0A2BDA60-43BB-4837-921A-2E4955FD8AEC} = {0A2BDA60-43BB-4837-921A-2E4955FD8AEC}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mouse", "mouse\mouse.vcproj", "{88881251-6818-485E-A262-DE1283096589}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "graphics\graphics.vcproj", "{8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+		{0E3ACF52-EEB5-4E35-8631-43B3E9F4577E} = {0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}
+		{55F35AEA-2D84-4A39-BF98-505106A15FF7} = {55F35AEA-2D84-4A39-BF98-505106A15FF7}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "font", "font\font.vcproj", "{0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+		{0A2BDA60-43BB-4837-921A-2E4955FD8AEC} = {0A2BDA60-43BB-4837-921A-2E4955FD8AEC}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keyboard", "keyboard\keyboard.vcproj", "{F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "audio", "audio\audio.vcproj", "{1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+		{3D59D1E2-2682-4317-BB8D-D85E9BBC02E3} = {3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "physics", "physics\physics.vcproj", "{39CDF8C8-016D-423E-94BA-7DD798CF0E15}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event", "event\event.vcproj", "{62C66448-36CB-4350-9D6E-02F49F05EDB4}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "joystick", "joystick\joystick.vcproj", "{C6C174AC-B339-4A39-A353-CFF523327B53}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timer", "timer\timer.vcproj", "{3DFF2849-C47D-4251-B2AC-E60EDBC29511}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "native", "native\native.vcproj", "{CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C}
+	EndProjectSection
+EndProject
 Global
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
 		Debug|Win32 = Debug|Win32
@@ -13,6 +86,62 @@ Global
 		{F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}.Debug|Win32.Build.0 = Debug|Win32
 		{F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}.Debug|Win32.Build.0 = Debug|Win32
 		{F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}.Release|Win32.ActiveCfg = Release|Win32
 		{F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}.Release|Win32.ActiveCfg = Release|Win32
 		{F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}.Release|Win32.Build.0 = Release|Win32
 		{F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}.Release|Win32.Build.0 = Release|Win32
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C}.Debug|Win32.Build.0 = Debug|Win32
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C}.Release|Win32.ActiveCfg = Release|Win32
+		{8273822F-45A4-4BE3-82F3-B8B3223C578C}.Release|Win32.Build.0 = Release|Win32
+		{0A2BDA60-43BB-4837-921A-2E4955FD8AEC}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0A2BDA60-43BB-4837-921A-2E4955FD8AEC}.Debug|Win32.Build.0 = Debug|Win32
+		{0A2BDA60-43BB-4837-921A-2E4955FD8AEC}.Release|Win32.ActiveCfg = Release|Win32
+		{0A2BDA60-43BB-4837-921A-2E4955FD8AEC}.Release|Win32.Build.0 = Release|Win32
+		{55F35AEA-2D84-4A39-BF98-505106A15FF7}.Debug|Win32.ActiveCfg = Debug|Win32
+		{55F35AEA-2D84-4A39-BF98-505106A15FF7}.Debug|Win32.Build.0 = Debug|Win32
+		{55F35AEA-2D84-4A39-BF98-505106A15FF7}.Release|Win32.ActiveCfg = Release|Win32
+		{55F35AEA-2D84-4A39-BF98-505106A15FF7}.Release|Win32.Build.0 = Release|Win32
+		{3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}.Debug|Win32.Build.0 = Debug|Win32
+		{3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}.Release|Win32.ActiveCfg = Release|Win32
+		{3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}.Release|Win32.Build.0 = Release|Win32
+		{88881251-6818-485E-A262-DE1283096589}.Debug|Win32.ActiveCfg = Debug|Win32
+		{88881251-6818-485E-A262-DE1283096589}.Debug|Win32.Build.0 = Debug|Win32
+		{88881251-6818-485E-A262-DE1283096589}.Release|Win32.ActiveCfg = Release|Win32
+		{88881251-6818-485E-A262-DE1283096589}.Release|Win32.Build.0 = Release|Win32
+		{8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}.Debug|Win32.Build.0 = Debug|Win32
+		{8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}.Release|Win32.ActiveCfg = Release|Win32
+		{8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}.Release|Win32.Build.0 = Release|Win32
+		{0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}.Debug|Win32.Build.0 = Debug|Win32
+		{0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}.Release|Win32.ActiveCfg = Release|Win32
+		{0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}.Release|Win32.Build.0 = Release|Win32
+		{F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}.Debug|Win32.ActiveCfg = Debug|Win32
+		{F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}.Debug|Win32.Build.0 = Debug|Win32
+		{F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}.Release|Win32.ActiveCfg = Release|Win32
+		{F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}.Release|Win32.Build.0 = Release|Win32
+		{1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}.Debug|Win32.ActiveCfg = Debug|Win32
+		{1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}.Debug|Win32.Build.0 = Debug|Win32
+		{1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}.Release|Win32.ActiveCfg = Release|Win32
+		{1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}.Release|Win32.Build.0 = Release|Win32
+		{39CDF8C8-016D-423E-94BA-7DD798CF0E15}.Debug|Win32.ActiveCfg = Debug|Win32
+		{39CDF8C8-016D-423E-94BA-7DD798CF0E15}.Debug|Win32.Build.0 = Debug|Win32
+		{39CDF8C8-016D-423E-94BA-7DD798CF0E15}.Release|Win32.ActiveCfg = Release|Win32
+		{39CDF8C8-016D-423E-94BA-7DD798CF0E15}.Release|Win32.Build.0 = Release|Win32
+		{62C66448-36CB-4350-9D6E-02F49F05EDB4}.Debug|Win32.ActiveCfg = Debug|Win32
+		{62C66448-36CB-4350-9D6E-02F49F05EDB4}.Debug|Win32.Build.0 = Debug|Win32
+		{62C66448-36CB-4350-9D6E-02F49F05EDB4}.Release|Win32.ActiveCfg = Release|Win32
+		{62C66448-36CB-4350-9D6E-02F49F05EDB4}.Release|Win32.Build.0 = Release|Win32
+		{C6C174AC-B339-4A39-A353-CFF523327B53}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C6C174AC-B339-4A39-A353-CFF523327B53}.Debug|Win32.Build.0 = Debug|Win32
+		{C6C174AC-B339-4A39-A353-CFF523327B53}.Release|Win32.ActiveCfg = Release|Win32
+		{C6C174AC-B339-4A39-A353-CFF523327B53}.Release|Win32.Build.0 = Release|Win32
+		{3DFF2849-C47D-4251-B2AC-E60EDBC29511}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3DFF2849-C47D-4251-B2AC-E60EDBC29511}.Debug|Win32.Build.0 = Debug|Win32
+		{3DFF2849-C47D-4251-B2AC-E60EDBC29511}.Release|Win32.ActiveCfg = Release|Win32
+		{3DFF2849-C47D-4251-B2AC-E60EDBC29511}.Release|Win32.Build.0 = Release|Win32
+		{CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}.Debug|Win32.ActiveCfg = Debug|Win32
+		{CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}.Debug|Win32.Build.0 = Debug|Win32
+		{CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}.Release|Win32.ActiveCfg = Release|Win32
+		{CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}.Release|Win32.Build.0 = Release|Win32
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 		HideSolutionNode = FALSE

+ 0 - 8
platform/msvc2008/love.vcproj

@@ -3297,14 +3297,6 @@
 				RelativePath="..\..\src\common\config.h"
 				RelativePath="..\..\src\common\config.h"
 				>
 				>
 			</File>
 			</File>
-			<File
-				RelativePath="..\..\src\common\constants.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\common\constants.h"
-				>
-			</File>
 			<File
 			<File
 				RelativePath="..\..\src\common\Data.h"
 				RelativePath="..\..\src\common\Data.h"
 				>
 				>

+ 215 - 0
platform/msvc2008/mouse/mouse.vcproj

@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="mouse"
+	ProjectGUID="{88881251-6818-485E-A262-DE1283096589}"
+	RootNamespace="mouse"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules;../include/SDL"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOUSE_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="lua5.1.lib SDL.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;MOUSE_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="sdl"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\mouse\sdl\Mouse.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\mouse\sdlmouse\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\mouse\sdl\Mouse.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\mouse\sdl\wrap_Mouse.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\mouse\sdlmouse\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\mouse\sdl\wrap_Mouse.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\mouse\Mouse.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 244 - 0
platform/msvc2008/native/native.vcproj

@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="native"
+	ProjectGUID="{CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}"
+	RootNamespace="native"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules;../include/SDL"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EVENT_EXPORTS;_CRT_SECURE_NO_WARNINGS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="lua5.1.lib SDL.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;EVENT_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="tcc"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\native\tcc\api.c"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\native\tcc\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\native\tcc\api.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\native\tcc\Native.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\native\tcc\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\native\tcc\Native.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\native\tcc\wrap_Native.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\native\tcc\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\native\tcc\wrap_Native.h"
+				>
+			</File>
+			<Filter
+				Name="libtcc"
+				>
+				<File
+					RelativePath="..\..\..\src\modules\native\tcc\libtcc\libtcc.c"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\native\tcc\libtcc\"
+							WarningLevel="0"
+						/>
+					</FileConfiguration>
+				</File>
+			</Filter>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 1031 - 0
platform/msvc2008/physics/physics.vcproj

@@ -0,0 +1,1031 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="physics"
+	ProjectGUID="{39CDF8C8-016D-423E-94BA-7DD798CF0E15}"
+	RootNamespace="physics"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules;"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PHYSICS_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="lua5.1.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;PHYSICS_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="box2d"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\Body.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\Body.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\CircleShape.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\CircleShape.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\Contact.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\Contact.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\DistanceJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\DistanceJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\GearJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\GearJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\Joint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\Joint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\MouseJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\MouseJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\Physics.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\Physics.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\PolygonShape.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\PolygonShape.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\PrismaticJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\PrismaticJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\PulleyJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\PulleyJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\RevoluteJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\RevoluteJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\Shape.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\Shape.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\World.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\World.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_Body.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_Body.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_CircleShape.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_CircleShape.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_Contact.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_Contact.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_DistanceJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_DistanceJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_GearJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_GearJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_Joint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_Joint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_MouseJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_MouseJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_Physics.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_Physics.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_PolygonShape.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_PolygonShape.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_PrismaticJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_PrismaticJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_PulleyJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_PulleyJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_RevoluteJoint.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_RevoluteJoint.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_Shape.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_Shape.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_World.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\physics\box2d\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\physics\box2d\wrap_World.h"
+				>
+			</File>
+			<Filter
+				Name="lib"
+				>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Common\b2BlockAllocator.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\b2Body.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Collision\b2BroadPhase.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Contacts\b2CircleContact.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Collision\Shapes\b2CircleShape.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Collision\b2CollideCircle.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Collision\b2CollidePoly.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Collision\b2Collision.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Contacts\b2Contact.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\b2ContactManager.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Contacts\b2ContactSolver.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Collision\b2Distance.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Joints\b2DistanceJoint.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Joints\b2GearJoint.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\b2Island.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Joints\b2Joint.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Common\b2Math.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Joints\b2MouseJoint.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Collision\b2PairManager.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Contacts\b2PolyAndCircleContact.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Contacts\b2PolyContact.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Collision\Shapes\b2PolygonShape.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Joints\b2PrismaticJoint.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Joints\b2PulleyJoint.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\Joints\b2RevoluteJoint.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Common\b2Settings.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Collision\Shapes\b2Shape.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Common\b2StackAllocator.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Collision\b2TimeOfImpact.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\b2World.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\Source\Dynamics\b2WorldCallbacks.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\lib\"
+						/>
+					</FileConfiguration>
+				</File>
+			</Filter>
+			<Filter
+				Name="graham"
+				>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\graham\GrahamScanConvexHull.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+							ObjectFile="$(IntDir)\physics\box2d\graham\"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
+					RelativePath="..\..\..\src\modules\physics\box2d\graham\GrahamScanConvexHull.h"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\physics\Joint.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\physics\Shape.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 359 - 0
platform/msvc2008/sound/sound.vcproj

@@ -0,0 +1,359 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="sound"
+	ProjectGUID="{3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}"
+	RootNamespace="sound"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SOUND_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="libmodplug.lib libmpg123.lib libogg.lib libvorbis.lib libvorbisfile.lib libFLAC_static_d.lib libFLAC++_static_d.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;SOUND_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="lullaby"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\Decoder.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\sound\lullaby\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\Decoder.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\FLACDecoder.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\sound\lullaby\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\FLACDecoder.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\ModPlugDecoder.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\sound\lullaby\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\ModPlugDecoder.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\Mpg123Decoder.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\sound\lullaby\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\Mpg123Decoder.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\Sound.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\sound\lullaby\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\Sound.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\VorbisDecoder.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\sound\lullaby\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\sound\lullaby\VorbisDecoder.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\..\src\modules\sound\Decoder.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\sound\Sound.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\sound\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\sound\Sound.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\sound\SoundData.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\sound\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\sound\SoundData.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\sound\wrap_Decoder.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\sound\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\sound\wrap_Decoder.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\sound\wrap_Sound.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\sound\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\sound\wrap_Sound.h"
+			>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\sound\wrap_SoundData.cpp"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCLCompilerTool"
+					ObjectFile="$(IntDir)\sound\"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
+			RelativePath="..\..\..\src\modules\sound\wrap_SoundData.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 211 - 0
platform/msvc2008/timer/timer.vcproj

@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="timer"
+	ProjectGUID="{3DFF2849-C47D-4251-B2AC-E60EDBC29511}"
+	RootNamespace="timer"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="2"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="../include;../../../src;../../../src/modules;../include/SDL"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EVENT_EXPORTS"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="lua5.1.lib SDL.lib"
+				OutputFile="$(OutDir)\love\$(ProjectName).dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories="..\lib"
+				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="2"
+			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;_USRDLL;EVENT_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				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="sdl"
+			>
+			<File
+				RelativePath="..\..\..\src\modules\timer\sdl\Timer.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\timer\sdl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\timer\sdl\Timer.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\timer\sdl\wrap_Timer.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ObjectFile="$(IntDir)\timer\sdl\"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\..\src\modules\timer\sdl\wrap_Timer.h"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 1 - 0
src/common/Data.h

@@ -22,6 +22,7 @@
 #define LOVE_DATA_H
 #define LOVE_DATA_H
 
 
 // LOVE
 // LOVE
+#include "config.h"
 #include "Object.h"
 #include "Object.h"
 
 
 namespace love
 namespace love

+ 3 - 0
src/common/Object.h

@@ -21,6 +21,9 @@
 #ifndef LOVE_OBJECT_H
 #ifndef LOVE_OBJECT_H
 #define LOVE_OBJECT_H
 #define LOVE_OBJECT_H
 
 
+// LOVE
+#include "config.h"
+
 namespace love
 namespace love
 {
 {
 	/**
 	/**

+ 7 - 16
src/common/config.h

@@ -21,9 +21,6 @@
 #ifndef LOVE_CONFIG_H
 #ifndef LOVE_CONFIG_H
 #define LOVE_CONFIG_H
 #define LOVE_CONFIG_H
 
 
-// STD
-#include <string>
-
 // Platform stuff.
 // Platform stuff.
 #if defined(WIN32) || defined(_WIN32)
 #if defined(WIN32) || defined(_WIN32)
 #	define LOVE_WINDOWS 1
 #	define LOVE_WINDOWS 1
@@ -38,26 +35,20 @@
 #	define LOVE_MACOS 1
 #	define LOVE_MACOS 1
 #endif
 #endif
 
 
+// Warnings.
+#ifndef _CRT_SECURE_NO_WARNINGS
+#	define _CRT_SECURE_NO_WARNINGS
+#endif
+
 // Build.
 // Build.
 #define LOVE_BUILD_EXE 1
 #define LOVE_BUILD_EXE 1
 #define LOVE_BUILD_DLL 0
 #define LOVE_BUILD_DLL 0
 
 
-// Version stuff.
-const int LOVE_VERSION = 060;
-const int LOVE_VERSION_COMPATIBILITY[] =  { 0 };
-const std::string LOVE_VERSION_STR = "0.6.0";
-const std::string LOVE_VERSION_CODENAME = "Jiggly Juice";
-const std::string LOVE_VERSION_FULL_STR = std::string("LOVE ") + LOVE_VERSION_STR + std::string(" (") + LOVE_VERSION_CODENAME + std::string(")");
-
 // DLL-stuff.
 // DLL-stuff.
 #ifdef LOVE_WINDOWS
 #ifdef LOVE_WINDOWS
-#	ifndef DECLSPEC
-#		define DECLSPEC __declspec(dllexport)
-#	endif
+#	define LOVE_EXPORT __declspec(dllexport)
 #else
 #else
-#	ifndef DECLSPEC
-#		define DECLSPEC
-#	endif
+#	define LOVE_EXPORT
 #endif
 #endif
 
 
 #endif // LOVE_CONFIG_H
 #endif // LOVE_CONFIG_H

+ 0 - 279
src/common/constants.cpp

@@ -1,279 +0,0 @@
-/**
-* Copyright (c) 2006-2009 LOVE Development Team
-* 
-* This software is provided 'as-is', without any express or implied
-* warranty.  In no event will the authors be held liable for any damages
-* arising from the use of this software.
-* 
-* Permission is granted to anyone to use this software for any purpose,
-* including commercial applications, and to alter it and redistribute it
-* freely, subject to the following restrictions:
-* 
-* 1. The origin of this software must not be misrepresented; you must not
-*    claim that you wrote the original software. If you use this software
-*    in a product, an acknowledgment in the product documentation would be
-*    appreciated but is not required.
-* 2. Altered source versions must be plainly marked as such, and must not be
-*    misrepresented as being the original software.
-* 3. This notice may not be removed or altered from any source distribution.
-**/
-
-#include "constants.h"
-
-#include <filesystem/File.h>
-#include <event/Event.h>
-#include <mouse/Mouse.h>
-#include <keyboard/Keyboard.h>
-#include <joystick/Joystick.h>
-#include <graphics/Graphics.h>
-#include <graphics/Image.h>
-#include <physics/Shape.h>
-#include <physics/Joint.h>
-
-namespace love
-{
-	// Constants.
-	const lua_constant_entry lua_constants[] = 
-	{
-		{ "key_unknown", 0 },
-		{ "key_first", 0 },
-		{ "key_backspace", 8 },
-		{ "key_tab", 9 },
-		{ "key_clear", 12 },
-		{ "key_return", 13 },
-		{ "key_pause", 19 },
-		{ "key_escape", 27 },
-		{ "key_space", 32 },
-		{ "key_exclaim", 33 },
-		{ "key_quotedbl", 34 },
-		{ "key_hash", 35 },
-		{ "key_dollar", 36 },
-		{ "key_ampersand", 38 },
-		{ "key_quote", 39 },
-		{ "key_leftparen", 40 },
-		{ "key_rightparen", 41 },
-		{ "key_asterisk", 42 },
-		{ "key_plus", 43 },
-		{ "key_comma", 44 },
-		{ "key_minus", 45 },
-		{ "key_period", 46 },
-		{ "key_slash", 47 },
-
-		{ "key_0", 48 },
-		{ "key_1", 49 },
-		{ "key_2", 50 },
-		{ "key_3", 51 },
-		{ "key_4", 52 },
-		{ "key_5", 53 },
-		{ "key_6", 54 },
-		{ "key_7", 55 },
-		{ "key_8", 56 },
-		{ "key_9", 57 },
-
-		{ "key_colon", 58 },
-		{ "key_semicolon", 59 },
-		{ "key_less", 60 },
-		{ "key_equals", 61 },
-		{ "key_greater", 62 },
-		{ "key_question", 63 },
-		{ "key_at", 64 },
-
-		{ "key_leftbracket", 91 },
-		{ "key_backslash", 92 },
-		{ "key_rightbracket", 93 },
-		{ "key_caret", 94 },
-		{ "key_underscore", 95 },
-		{ "key_backquote", 96 },
-
-		{ "key_a", 97 },
-		{ "key_b", 98 },
-		{ "key_c", 99 },
-		{ "key_d", 100 },
-		{ "key_e", 101 },
-		{ "key_f", 102 },
-		{ "key_g", 103 },
-		{ "key_h", 104 },
-		{ "key_i", 105 },
-		{ "key_j", 106 },
-		{ "key_k", 107 },
-		{ "key_l", 108 },
-		{ "key_m", 109 },
-		{ "key_n", 110 },
-		{ "key_o", 111 },
-		{ "key_p", 112 },
-		{ "key_q", 113 },
-		{ "key_r", 114 },
-		{ "key_s", 115 },
-		{ "key_t", 116 },
-		{ "key_u", 117 },
-		{ "key_v", 118 },
-		{ "key_w", 119 },
-		{ "key_x", 120 },
-		{ "key_y", 121 },
-		{ "key_z", 122 },
-		{ "key_delete", 127 },
-
-		{ "key_kp0", 256 },
-		{ "key_kp1", 257 },
-		{ "key_kp2", 258 },
-		{ "key_kp3", 259 },
-		{ "key_kp4", 260 },
-		{ "key_kp5", 261 },
-		{ "key_kp6", 262 },
-		{ "key_kp7", 263 },
-		{ "key_kp8", 264 },
-		{ "key_kp9", 265 },
-		{ "key_kp_period", 266 },
-		{ "key_kp_divide", 267 },
-		{ "key_kp_multiply", 268 },
-		{ "key_kp_minus", 269 },
-		{ "key_kp_plus", 270 },
-		{ "key_kp_enter", 271 },
-		{ "key_kp_equals", 272 },
-
-		{ "key_up", 273 },
-		{ "key_down", 274 },
-		{ "key_right", 275 },
-		{ "key_left", 276 },
-		{ "key_insert", 277 },
-		{ "key_home", 278 },
-		{ "key_end", 279 },
-		{ "key_pageup", 280 },
-		{ "key_pagedown", 281 },
-
-		{ "key_f1", 282 },
-		{ "key_f2", 283 },
-		{ "key_f3", 284 },
-		{ "key_f4", 285 },
-		{ "key_f5", 286 },
-		{ "key_f6", 287 },
-		{ "key_f7", 288 },
-		{ "key_f8", 289 },
-		{ "key_f9", 290 },
-		{ "key_f10", 291 },
-		{ "key_f11", 292 },
-		{ "key_f12", 293 },
-		{ "key_f13", 294 },
-		{ "key_f14", 295 },
-		{ "key_f15", 296 },
-
-		{ "key_numlock", 300 },
-		{ "key_capslock", 301 },
-		{ "key_scrollock", 302 },
-		{ "key_rshift", 303 },
-		{ "key_lshift", 304 },
-		{ "key_rctrl", 305 },
-		{ "key_lctrl", 306 },
-		{ "key_ralt", 307 },
-		{ "key_lalt", 308 },
-		{ "key_rmeta", 309 },
-		{ "key_lmeta", 310 },
-		{ "key_lsuper", 311 },
-		{ "key_rsuper", 312 },
-		{ "key_mode", 313 },
-		{ "key_compose", 314 },
-
-		{ "key_help", 315 },
-		{ "key_print", 316 },
-		{ "key_sysreq", 317 },
-		{ "key_break", 318 },
-		{ "key_menu", 319 },
-		{ "key_power", 320 },
-		{ "key_euro", 321 },
-		{ "key_undo", 322 },
-
-		{ "key_repeat_delay", keyboard::Keyboard::KEY_REPEAT_DELAY },
-		{ "key_repeat_interval", keyboard::Keyboard::KEY_REPEAT_INTERVAL },
-
-		{ "mouse_left", mouse::Mouse::MOUSE_LEFT },
-		{ "mouse_middle", mouse::Mouse::MOUSE_MIDDLE },
-		{ "mouse_right", mouse::Mouse::MOUSE_RIGHT },
-		{ "mouse_wheelup", mouse::Mouse::MOUSE_WHEELUP },
-		{ "mouse_wheeldown", mouse::Mouse::MOUSE_WHEELDOWN },
-
-		{ "align_left", graphics::Graphics::ALIGN_LEFT },
-		{ "align_right", graphics::Graphics::ALIGN_RIGHT },
-		{ "align_center", graphics::Graphics::ALIGN_CENTER },
-
-		{ "blend_alpha", graphics::Graphics::BLEND_ALPHA },
-		{ "blend_additive", graphics::Graphics::BLEND_ADDITIVE },
-		{ "color_replace", graphics::Graphics::COLOR_REPLACE },
-		{ "color_modulate", graphics::Graphics::COLOR_MODULATE },
-
-		{ "file_closed", filesystem::File::CLOSED },
-		{ "file_read", filesystem::File::READ },
-		{ "file_write", filesystem::File::WRITE },
-		{ "file_append", filesystem::File::APPEND },
-
-		{ "draw_line", graphics::Graphics::DRAW_LINE },
-		{ "draw_fill", graphics::Graphics::DRAW_FILL },
-
-		{ "line_smooth", graphics::Graphics::LINE_SMOOTH },
-		{ "line_rough", graphics::Graphics::LINE_ROUGH },
-
-		{ "point_smooth", graphics::Graphics::POINT_SMOOTH },
-		{ "point_rough", graphics::Graphics::POINT_ROUGH },
-
-		{ "shape_circle", physics::Shape::SHAPE_CIRCLE },
-		{ "shape_polygon", physics::Shape::SHAPE_POLYGON },
-
-		{ "joint_distance", physics::Joint::JOINT_DISTANCE },
-		{ "joint_revolute", physics::Joint::JOINT_REVOLUTE },
-		{ "joint_prismatic", physics::Joint::JOINT_PRISMATIC },
-		{ "joint_mouse", physics::Joint::JOINT_MOUSE },	
-		{ "joint_pulley", physics::Joint::JOINT_PULLEY },	
-		{ "joint_gear", physics::Joint::JOINT_GEAR },
-
-		{ "joystick_axis_horizontal", joystick::Joystick::JOYSTICK_AXIS_HORIZONTAL },
-		{ "joystick_axis_vertical", joystick::Joystick::JOYSTICK_AXIS_VERITCAL },
-
-		{ "joystick_hat_centered", joystick::Joystick::JOYSTICK_HAT_CENTERED },
-		{ "joystick_hat_up", joystick::Joystick::JOYSTICK_HAT_UP },
-		{ "joystick_hat_right", joystick::Joystick::JOYSTICK_HAT_RIGHT },
-		{ "joystick_hat_down", joystick::Joystick::JOYSTICK_HAT_DOWN },
-		{ "joystick_hat_left", joystick::Joystick::JOYSTICK_HAT_LEFT },
-		{ "joystick_hat_rightup", joystick::Joystick::JOYSTICK_HAT_RIGHTUP },
-		{ "joystick_hat_rightdown", joystick::Joystick::JOYSTICK_HAT_RIGHTDOWN },
-		{ "joystick_hat_leftup", joystick::Joystick::JOYSTICK_HAT_LEFTUP },
-		{ "joystick_hat_leftdown", joystick::Joystick::JOYSTICK_HAT_LEFTDOWN },
-
-		{ "event_keypressed", event::Event::EVENT_KEYDOWN },
-		{ "event_keyreleased", event::Event::EVENT_KEYUP },
-		{ "event_mousepressed", event::Event::EVENT_MOUSEBUTTONDOWN },
-		{ "event_mousereleased", event::Event::EVENT_MOUSEBUTTONUP },
-		{ "event_joystickpressed", event::Event::EVENT_JOYBUTTONDOWN },
-		{ "event_joystickreleased", event::Event::EVENT_JOYBUTTONUP },
-		{ "event_quit", event::Event::EVENT_QUIT },
-
-		{ "filter_linear", graphics::Image::FILTER_LINEAR },
-		{ "filter_nearest", graphics::Image::FILTER_NEAREST },
-
-		{ "wrap_clamp", graphics::Image::WRAP_CLAMP },
-		{ "wrap_repeat", graphics::Image::WRAP_REPEAT },
-
-		/**
-
-		// Vertex buffer geometry types.
-
-		{ "type_points", TYPE_POINTS },
-		{ "type_lines", TYPE_LINES },
-		{ "type_line_strip", TYPE_LINE_STRIP },
-		{ "type_triangles", TYPE_TRIANGLES },
-		{ "type_triangle_strip", TYPE_TRIANGLE_STRIP },
-		{ "type_triangle_fan", TYPE_TRIANGLE_FAN },
-		{ "type_num", TYPE_NUM },
-		
-		// Vertex buffer usage hints.
-
-		{ "usage_array", USAGE_ARRAY },
-		{ "usage_dynamic", USAGE_DYNAMIC },
-		{ "usage_static", USAGE_STATIC },
-		{ "usage_stream", USAGE_STREAM },
-		{ "usage_num", USAGE_NUM },
-		**/
-
-		{0, 0}, // Indicates the end
-
-	}; // lua constants
-
-} // love

+ 69 - 5
src/common/runtime.cpp

@@ -103,8 +103,7 @@ namespace love
 
 
 	int luax_register_gc(lua_State * L, const char * mname, Module * m)
 	int luax_register_gc(lua_State * L, const char * mname, Module * m)
 	{
 	{
-		lua_getglobal(L, "love");
-		lua_getfield(L, -1, "_fin");
+		luax_getregistry(L, REGISTRY_GC);
 
 
 		userdata * u = (userdata *)lua_newuserdata(L, sizeof(userdata));
 		userdata * u = (userdata *)lua_newuserdata(L, sizeof(userdata));
 		u->own = true;
 		u->own = true;
@@ -117,7 +116,7 @@ namespace love
 
 
 		lua_setfield(L, -2, mname);
 		lua_setfield(L, -2, mname);
 
 
-		lua_pop(L, 2); // _fin, love
+		lua_pop(L, 1); // Registry
 
 
 		return 0;
 		return 0;
 	}
 	}
@@ -155,10 +154,20 @@ namespace love
 		return 0;
 		return 0;
 	}
 	}
 
 
-	int luax_register_module(lua_State * L, const luaL_Reg * fn, const lua_CFunction * types, const char * name)
+	int luax_register_module(lua_State * L, const luaL_Reg * fn, const lua_CFunction * types, const LuaConstant * constants, const char * name)
 	{
 	{
 		// Gets the love table.
 		// Gets the love table.
-		lua_getglobal(L, "love");
+		luax_insistglobal(L, "love");
+
+		// Install constants.
+		if(constants != 0)
+		{
+			for(int i = 0; constants[i].name != 0; i++)
+			{
+				lua_pushinteger(L, constants[i].value);
+				lua_setfield(L, -2, constants[i].name);
+			}
+		}
 
 
 		// Create new table for module.
 		// Create new table for module.
 		lua_newtable(L);
 		lua_newtable(L);
@@ -281,4 +290,59 @@ namespace love
 		return luax_convobj(L, idx, "filesystem", "read");
 		return luax_convobj(L, idx, "filesystem", "read");
 	}
 	}
 
 
+	int luax_insist(lua_State * L, int idx, const char * k)
+	{
+		lua_getfield(L, idx, k);
+
+		// Create if necessary.
+		if(!lua_istable(L, -1))
+		{
+			lua_pop(L, 1); // Pop the non-table.
+			lua_newtable(L);
+			lua_pushvalue(L, -1); // Duplicate the table to leave on top.
+			lua_setfield(L, -3, k); // k[idx] = table
+		}
+
+		return 1;
+	}
+
+	int luax_insistglobal(lua_State * L, const char * k)
+	{
+		lua_getglobal(L, k);
+
+		if(!lua_istable(L, -1))
+		{
+			lua_pop(L, 1); // Pop the non-table.
+			lua_newtable(L);
+			lua_pushvalue(L, -1);
+			lua_setglobal(L, k);
+		}
+
+		return 1;
+	}
+
+	int luax_insistlove(lua_State * L, const char * k)
+	{
+		luax_insistglobal(L, "love");
+		luax_insist(L, -1, k);
+		
+		// The love table should be replaced with the top stack
+		// item. Only the reqested table should remain on the stack.
+		lua_replace(L, -2);
+
+		return 1;
+	}
+
+	int luax_getregistry(lua_State * L, Registry r)
+	{
+		switch(r)
+		{
+		case REGISTRY_GC:
+			return luax_insistlove(L, "_gc");
+		default:
+			return luaL_error(L, "Attempted to use invalid registry.");
+		}
+	}
+
+
 } // love
 } // love

+ 22 - 1
src/common/runtime.h

@@ -35,6 +35,18 @@ namespace love
 {
 {
 	class Module;
 	class Module;
 
 
+	enum Registry
+	{
+		REGISTRY_GC = 1,
+	};
+
+	// Type used for storing constants in an array.
+	struct LuaConstant
+	{
+		const char * name;
+		int value;
+	};
+
 	void luax_printstack(lua_State * L);
 	void luax_printstack(lua_State * L);
 	bool luax_toboolean(lua_State * L, int idx);
 	bool luax_toboolean(lua_State * L, int idx);
 	void luax_pushboolean(lua_State * L, bool b);
 	void luax_pushboolean(lua_State * L, bool b);
@@ -49,7 +61,7 @@ namespace love
 		const char * provides, const char * desc, const char * author,
 		const char * provides, const char * desc, const char * author,
 		lua_CFunction open);
 		lua_CFunction open);
 
 
-	int luax_register_module(lua_State * L, const luaL_Reg * fn, const lua_CFunction * types, const char * name);
+	int luax_register_module(lua_State * L, const luaL_Reg * fn, const lua_CFunction * types, const LuaConstant * constants, const char * name);
 	int luax_preload(lua_State * L, lua_CFunction f, const char * name);
 	int luax_preload(lua_State * L, lua_CFunction f, const char * name);
 	int luax_register_type(lua_State * L, const char * tname, const luaL_Reg * fn);
 	int luax_register_type(lua_State * L, const char * tname, const luaL_Reg * fn);
 
 
@@ -79,6 +91,15 @@ namespace love
 	**/
 	**/
 	int luax_strtofile(lua_State * L, int idx);
 	int luax_strtofile(lua_State * L, int idx);
 
 
+	int luax_insist(lua_State * L, int idx, const char * k);
+	int luax_insistglobal(lua_State * L, const char * k);
+	int luax_insistlove(lua_State * L, const char * k);
+
+	/**
+	* Gets (creates if needed) the specified Registry.
+	**/
+	int luax_getregistry(lua_State * L, Registry r);
+
 	template <typename T>
 	template <typename T>
 	T * luax_checktype(lua_State * L, int idx, const char * tname, love::bits type)
 	T * luax_checktype(lua_State * L, int idx, const char * tname, love::bits type)
 	{
 	{

+ 11 - 15
src/common/constants.h → src/common/version.h

@@ -18,21 +18,17 @@
 * 3. This notice may not be removed or altered from any source distribution.
 * 3. This notice may not be removed or altered from any source distribution.
 **/
 **/
 
 
-#ifndef LOVE_CONSTANTS_H
-#define LOVE_CONSTANTS_H
+#ifndef LOVE_VERSION_H
+#define LOVE_VERSION_H
 
 
-namespace love
-{
-	// Type used for storing constants
-	// in an array.
-	typedef struct lua_constant_entry
-	{
-		const char * name;
-		int value;
-	} lua_constant_entry;
+// STD
+#include <string>
 
 
-	extern const lua_constant_entry lua_constants[];
+// Version stuff.
+const int LOVE_VERSION = 060;
+const int LOVE_VERSION_COMPATIBILITY[] =  { 0 };
+const std::string LOVE_VERSION_STR = "0.6.0";
+const std::string LOVE_VERSION_CODENAME = "Jiggly Juice";
+const std::string LOVE_VERSION_FULL_STR = std::string("LOVE ") + LOVE_VERSION_STR + std::string(" (") + LOVE_VERSION_CODENAME + std::string(")");
 
 
-} // love
-
-#endif // LOVE_CONSTANTS_H
+#endif // LOVE_VERSION_H

+ 27 - 33
src/love.cpp

@@ -18,21 +18,20 @@
 * 3. This notice may not be removed or altered from any source distribution.
 * 3. This notice may not be removed or altered from any source distribution.
 **/
 **/
 
 
-// STD
-
 // SDL
 // SDL
 #include <SDL.h>
 #include <SDL.h>
 
 
 // LOVE
 // LOVE
 #include <common/config.h>
 #include <common/config.h>
+#include <common/version.h>
 #include <common/runtime.h>
 #include <common/runtime.h>
-#include <common/constants.h>
 #include <common/MemoryData.h>
 #include <common/MemoryData.h>
 
 
 // Modules
 // Modules
 #include <audio/wrap_Audio.h>
 #include <audio/wrap_Audio.h>
 #include <event/sdl/wrap_Event.h>
 #include <event/sdl/wrap_Event.h>
 #include <filesystem/physfs/wrap_Filesystem.h>
 #include <filesystem/physfs/wrap_Filesystem.h>
+#include <font/freetype/wrap_Font.h>
 #include <graphics/opengl/wrap_Graphics.h>
 #include <graphics/opengl/wrap_Graphics.h>
 #include <image/wrap_Image.h>
 #include <image/wrap_Image.h>
 #include <joystick/sdl/wrap_Joystick.h>
 #include <joystick/sdl/wrap_Joystick.h>
@@ -42,7 +41,6 @@
 #include <physics/box2d/wrap_Physics.h>
 #include <physics/box2d/wrap_Physics.h>
 #include <sound/wrap_Sound.h>
 #include <sound/wrap_Sound.h>
 #include <timer/sdl/wrap_Timer.h>
 #include <timer/sdl/wrap_Timer.h>
-#include <font/freetype/wrap_Font.h>
 
 
 // Libraries.
 // Libraries.
 #include "libraries/luasocket/luasocket.h"
 #include "libraries/luasocket/luasocket.h"
@@ -51,42 +49,38 @@
 // Resources
 // Resources
 #include "resources/resources.h"
 #include "resources/resources.h"
 
 
+static const luaL_Reg modules[] = {
+	{ "love.audio", luaopen_love_audio },
+	{ "love.event", luaopen_love_event },
+	{ "love.filesystem", luaopen_love_filesystem },
+	{ "love.font", luaopen_love_font },
+	{ "love.graphics", luaopen_love_graphics },
+	{ "love.image", luaopen_love_image },
+	{ "love.joystick", luaopen_love_joystick },
+	{ "love.keyboard", luaopen_love_keyboard },
+	{ "love.mouse", luaopen_love_mouse },
+	{ "love.native", luaopen_love_native },
+	{ "love.physics", luaopen_love_physics },
+	{ "love.sound", luaopen_love_sound },
+	{ "love.timer", luaopen_love_timer },
+	{ 0, 0 }
+};
+
 DECLSPEC int luaopen_love(lua_State * L)
 DECLSPEC int luaopen_love(lua_State * L)
 {
 {
-	// Create the love table.
-	lua_newtable(L);
-
-	// Install constants.
-	for(int i = 0; love::lua_constants[i].name != 0; i++)
-	{
-		lua_pushinteger(L, love::lua_constants[i].value);
-		lua_setfield(L, -2, love::lua_constants[i].name);
-	}
-
-	// Create the _fin table.
-	lua_newtable(L);
-	lua_setfield(L, -2, "_fin");
+	love::luax_insistglobal(L, "love");
 
 
 	// Resources.
 	// Resources.
 	love::luax_newtype(L, "Data", love::LOVE_DATA_BITS, new love::MemoryData((void*)love::Vera_ttf_data, love::Vera_ttf_size));
 	love::luax_newtype(L, "Data", love::LOVE_DATA_BITS, new love::MemoryData((void*)love::Vera_ttf_data, love::Vera_ttf_size));
 	lua_setfield(L, -2, "_vera");
 	lua_setfield(L, -2, "_vera");
 
 
-	// Set the love table.
-	lua_setglobal(L, "love");
-
-	love::luax_preload(L, love::audio::wrap_Audio_open, "love.audio");
-	love::luax_preload(L, love::filesystem::physfs::wrap_Filesystem_open, "love.filesystem");
-	love::luax_preload(L, love::event::sdl::wrap_Event_open, "love.event");
-	love::luax_preload(L, love::keyboard::sdl::wrap_Keyboard_open, "love.keyboard");
-	love::luax_preload(L, love::mouse::sdl::wrap_Mouse_open, "love.mouse");
-	love::luax_preload(L, love::native::tcc::wrap_Native_open, "love.native");
-	love::luax_preload(L, love::timer::sdl::wrap_Timer_open, "love.timer");
-	love::luax_preload(L, love::joystick::sdl::wrap_Joystick_open, "love.joystick");
-	love::luax_preload(L, love::graphics::opengl::wrap_Graphics_open, "love.graphics");
-	love::luax_preload(L, love::image::wrap_Image_open, "love.image");
-	love::luax_preload(L, love::physics::box2d::wrap_Physics_open, "love.physics");
-	love::luax_preload(L, love::sound::wrap_Sound_open, "love.sound");
-	love::luax_preload(L, love::font::freetype::wrap_Font_open, "love.font");
+	lua_pop(L, 1); // love
+
+	// Preload module loaders.
+	for(int i = 0; modules[i].name != 0; i++)
+	{
+		love::luax_preload(L, modules[i].func, modules[i].name);
+	}
 
 
 	love::luasocket::__open(L);
 	love::luasocket::__open(L);
 	love::lanes::open(L);
 	love::lanes::open(L);

+ 0 - 1
src/modules/audio/openal/Audio.h

@@ -37,7 +37,6 @@
 // LOVE
 // LOVE
 #include <audio/Audio.h>
 #include <audio/Audio.h>
 #include <common/config.h>
 #include <common/config.h>
-#include <common/constants.h>
 #include <sound/SoundData.h>
 #include <sound/SoundData.h>
 
 
 #include "Sound.h"
 #include "Sound.h"

+ 7 - 4
src/modules/audio/wrap_Audio.cpp

@@ -24,8 +24,6 @@
 #include "openal/Audio.h"
 #include "openal/Audio.h"
 #include "null/Audio.h"
 #include "null/Audio.h"
 
 
-#include <sound/wrap_Decoder.h>
-
 namespace love
 namespace love
 {
 {
 namespace audio
 namespace audio
@@ -61,7 +59,7 @@ namespace audio
 		if(!luax_istype(L, 1, LOVE_SOUND_DECODER_BITS))
 		if(!luax_istype(L, 1, LOVE_SOUND_DECODER_BITS))
 			luax_convobj(L, 1, "sound", "newDecoder");
 			luax_convobj(L, 1, "sound", "newDecoder");
 
 
-		love::sound::Decoder * decoder = love::sound::luax_checkdecoder(L, 1);
+		love::sound::Decoder * decoder = luax_checktype<love::sound::Decoder>(L, 1, "Decoder", LOVE_SOUND_DECODER_BITS);
 		Music * t = instance->newMusic(decoder);
 		Music * t = instance->newMusic(decoder);
 		luax_newtype(L, "Music", LOVE_AUDIO_MUSIC_BITS, (void*)t);
 		luax_newtype(L, "Music", LOVE_AUDIO_MUSIC_BITS, (void*)t);
 		return 1;
 		return 1;
@@ -198,8 +196,13 @@ namespace audio
 
 
 		luax_register_gc(L, "love.audio", instance);
 		luax_register_gc(L, "love.audio", instance);
 
 
-		return luax_register_module(L, wrap_Audio_functions, wrap_Audio_types, "audio");
+		return luax_register_module(L, wrap_Audio_functions, wrap_Audio_types, 0, "audio");
 	}
 	}
 
 
 } // audio
 } // audio
 } // love
 } // love
+
+int luaopen_love_audio(lua_State * L)
+{
+	return love::audio::wrap_Audio_open(L);
+}

+ 1 - 0
src/modules/audio/wrap_Audio.h

@@ -47,5 +47,6 @@ namespace audio
 } // audio
 } // audio
 } // love
 } // love
 
 
+extern "C" LOVE_EXPORT int luaopen_love_audio(lua_State * L);
 
 
 #endif // LOVE_AUDIO_WRAP_AUDIO_H
 #endif // LOVE_AUDIO_WRAP_AUDIO_H

+ 18 - 1
src/modules/event/sdl/wrap_Event.cpp

@@ -71,6 +71,18 @@ namespace sdl
 		{ 0, 0 }
 		{ 0, 0 }
 	};
 	};
 
 
+	// List of constants.
+	static const LuaConstant wrap_Event_constants[] = {
+		{ "event_keypressed", Event::EVENT_KEYDOWN },
+		{ "event_keyreleased", Event::EVENT_KEYUP },
+		{ "event_mousepressed", Event::EVENT_MOUSEBUTTONDOWN },
+		{ "event_mousereleased", Event::EVENT_MOUSEBUTTONUP },
+		{ "event_joystickpressed", Event::EVENT_JOYBUTTONDOWN },
+		{ "event_joystickreleased", Event::EVENT_JOYBUTTONUP },
+		{ "event_quit", Event::EVENT_QUIT },
+		{ 0, 0 }
+	};
+
 	int wrap_Event_open(lua_State * L)
 	int wrap_Event_open(lua_State * L)
 	{
 	{
 		if(instance == 0)
 		if(instance == 0)
@@ -87,9 +99,14 @@ namespace sdl
 
 
 		luax_register_gc(L, "love.event", instance);
 		luax_register_gc(L, "love.event", instance);
 
 
-		return luax_register_module(L, wrap_Event_functions, 0, "event");
+		return luax_register_module(L, wrap_Event_functions, 0, wrap_Event_constants, "event");
 	}
 	}
 
 
 } // sdl
 } // sdl
 } // event
 } // event
 } // love
 } // love
+
+int luaopen_love_event(lua_State * L)
+{
+	return love::event::sdl::wrap_Event_open(L);
+}

+ 3 - 0
src/modules/event/sdl/wrap_Event.h

@@ -22,6 +22,7 @@
 #define LOVE_EVENT_SDL_WRAP_EVENT_H
 #define LOVE_EVENT_SDL_WRAP_EVENT_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include "Event.h"
 #include "Event.h"
 
 
 namespace love
 namespace love
@@ -42,4 +43,6 @@ namespace sdl
 } // event
 } // event
 } // love
 } // love
 
 
+extern "C" LOVE_EXPORT int luaopen_love_event(lua_State * L);
+
 #endif // LOVE_EVENT_SDL_WRAP_EVENT_H
 #endif // LOVE_EVENT_SDL_WRAP_EVENT_H

+ 11 - 2
src/modules/filesystem/physfs/Filesystem.cpp

@@ -32,12 +32,12 @@ namespace physfs
 	Filesystem::Filesystem()
 	Filesystem::Filesystem()
 		: open_count(0), buffer(0)
 		: open_count(0), buffer(0)
 	{
 	{
-
 	}
 	}
 
 
 	Filesystem::~Filesystem()
 	Filesystem::~Filesystem()
 	{
 	{
-		PHYSFS_deinit();
+		if(PHYSFS_isInit())
+			PHYSFS_deinit();
 	}
 	}
 
 
 	const char * Filesystem::getName() const
 	const char * Filesystem::getName() const
@@ -53,6 +53,9 @@ namespace physfs
 
 
 	bool Filesystem::setIdentity( const char * ident )
 	bool Filesystem::setIdentity( const char * ident )
 	{
 	{
+		if(PHYSFS_isInit())
+			return false;
+
 		// Check whether save directory is already set.
 		// Check whether save directory is already set.
 		if(!save_identity.empty() || PHYSFS_getWriteDir() != 0)
 		if(!save_identity.empty() || PHYSFS_getWriteDir() != 0)
 			return false;
 			return false;
@@ -83,6 +86,9 @@ namespace physfs
 
 
 	bool Filesystem::setSource(const char * source)
 	bool Filesystem::setSource(const char * source)
 	{
 	{
+		if(!PHYSFS_isInit())
+			return false;
+
 		// Check whether directory is already set.
 		// Check whether directory is already set.
 		if(!game_source.empty())
 		if(!game_source.empty())
 			return false;
 			return false;
@@ -99,6 +105,9 @@ namespace physfs
 
 
 	bool Filesystem::setupWriteDirectory()
 	bool Filesystem::setupWriteDirectory()
 	{
 	{
+		if(!PHYSFS_isInit())
+			return false;
+
 		// These must all be set.
 		// These must all be set.
 		if(save_identity.empty() || save_path_full.empty() || save_path_relative.empty())
 		if(save_identity.empty() || save_path_full.empty() || save_path_relative.empty())
 			return false;
 			return false;

+ 0 - 1
src/modules/filesystem/physfs/Filesystem.h

@@ -29,7 +29,6 @@
 // LOVE
 // LOVE
 #include <common/Module.h>
 #include <common/Module.h>
 #include <common/config.h>
 #include <common/config.h>
-#include <common/constants.h>
 #include <filesystem/FileData.h>
 #include <filesystem/FileData.h>
 #include "File.h"
 #include "File.h"
 
 

+ 14 - 1
src/modules/filesystem/physfs/wrap_Filesystem.cpp

@@ -243,6 +243,15 @@ namespace physfs
 		0
 		0
 	};
 	};
 
 
+	// List of constants.
+	static const LuaConstant wrap_Filesystem_constants[] = {
+		{ "file_closed", File::CLOSED },
+		{ "file_read", File::READ },
+		{ "file_write", File::WRITE },
+		{ "file_append", File::APPEND },
+		{ 0, 0 }
+	};
+
 	int wrap_Filesystem_open(lua_State * L)
 	int wrap_Filesystem_open(lua_State * L)
 	{
 	{
 		if(instance == 0)
 		if(instance == 0)
@@ -260,10 +269,14 @@ namespace physfs
 
 
 		luax_register_gc(L, "love.filesystem", instance);
 		luax_register_gc(L, "love.filesystem", instance);
 
 
-		return luax_register_module(L, wrap_Filesystem_functions, wrap_Filesystem_types, "filesystem");
+		return luax_register_module(L, wrap_Filesystem_functions, wrap_Filesystem_types, wrap_Filesystem_constants, "filesystem");
 	}
 	}
 
 
 } // physfs
 } // physfs
 } // filesystem
 } // filesystem
 } // love
 } // love
 
 
+int luaopen_love_filesystem(lua_State * L)
+{
+	return love::filesystem::physfs::wrap_Filesystem_open(L);
+}

+ 2 - 0
src/modules/filesystem/physfs/wrap_Filesystem.h

@@ -64,4 +64,6 @@ namespace physfs
 } // filesystem
 } // filesystem
 } // love
 } // love
 
 
+extern "C" LOVE_EXPORT int luaopen_love_filesystem(lua_State * L);
+
 #endif // LOVE_FILESYSTEM_PHYSFS_WRAP_FILESYSTEM_H
 #endif // LOVE_FILESYSTEM_PHYSFS_WRAP_FILESYSTEM_H

+ 3 - 2
src/modules/font/GlyphData.h

@@ -22,6 +22,7 @@
 #define LOVE_FONT_GLYPH_DATA_H
 #define LOVE_FONT_GLYPH_DATA_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include <common/Data.h>
 #include <common/Data.h>
 
 
 namespace love
 namespace love
@@ -66,12 +67,12 @@ namespace font
 		/**
 		/**
 		* Gets the height of the glyph.
 		* Gets the height of the glyph.
 		**/
 		**/
-		int getHeight() const;
+		virtual int getHeight() const;
 
 
 		/**
 		/**
 		* Gets the width of the glyph.
 		* Gets the width of the glyph.
 		**/
 		**/
-		int getWidth() const;
+		virtual int getWidth() const;
 
 
 		/**
 		/**
 		* Gets the advance (the space the glyph takes up) of the glyph.
 		* Gets the advance (the space the glyph takes up) of the glyph.

+ 7 - 2
src/modules/font/freetype/wrap_Font.cpp

@@ -82,9 +82,14 @@ namespace freetype
 
 
 		luax_register_gc(L, "love.font", instance);
 		luax_register_gc(L, "love.font", instance);
 
 
-		return luax_register_module(L, wrap_Font_functions, wrap_Font_types, "font");
+		return luax_register_module(L, wrap_Font_functions, wrap_Font_types, 0, "font");
 	}
 	}
 
 
 } // freetype
 } // freetype
-} // sound
+} // font
 } // love
 } // love
+
+int luaopen_love_font(lua_State * L)
+{
+	return love::font::freetype::wrap_Font_open(L);
+}

+ 3 - 0
src/modules/font/freetype/wrap_Font.h

@@ -22,6 +22,7 @@
 #define LOVE_FONT_FREETYPE_WRAP_FONT_H
 #define LOVE_FONT_FREETYPE_WRAP_FONT_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include "Font.h"
 #include "Font.h"
 #include "wrap_Font.h"
 #include "wrap_Font.h"
 
 
@@ -40,3 +41,5 @@ namespace freetype
 } // love
 } // love
 
 
 #endif // LOVE_FONT_FREETYPE_WRAP_FONT_H
 #endif // LOVE_FONT_FREETYPE_WRAP_FONT_H
+
+extern "C" LOVE_EXPORT int luaopen_love_font(lua_State * L);

+ 3 - 1
src/modules/graphics/opengl/GLee.h

@@ -53,7 +53,9 @@
 #endif
 #endif
 
 
 #if defined(WIN32) || defined(_WIN32)
 #if defined(WIN32) || defined(_WIN32)
-#define WIN32
+#ifndef WIN32
+#	define WIN32
+#endif
 	#include <windows.h>
 	#include <windows.h>
 	#include <GL/gl.h>
 	#include <GL/gl.h>
 #elif defined(__APPLE__) || defined(__APPLE_CC__)
 #elif defined(__APPLE__) || defined(__APPLE_CC__)

+ 1 - 0
src/modules/graphics/opengl/Glyph.cpp

@@ -34,6 +34,7 @@ namespace opengl
 		: data(data), texture(0), width((float)data->getWidth()), height((float)data->getHeight())
 		: data(data), texture(0), width((float)data->getWidth()), height((float)data->getHeight())
 	{
 	{
 		data->retain();
 		data->retain();
+		data->getWidth();
 
 
 		memset(vertices, 255, sizeof(vertex)*4);
 		memset(vertices, 255, sizeof(vertex)*4);
 
 

+ 59 - 5
src/modules/graphics/opengl/wrap_Graphics.cpp

@@ -20,8 +20,6 @@
 
 
 #include "wrap_Graphics.h"
 #include "wrap_Graphics.h"
 
 
-#include <font/wrap_GlyphData.h>
-
 namespace love
 namespace love
 {
 {
 namespace graphics
 namespace graphics
@@ -158,8 +156,7 @@ namespace opengl
 
 
 	int _wrap_newGlyph(lua_State * L)
 	int _wrap_newGlyph(lua_State * L)
 	{
 	{
-		
-		love::font::GlyphData * data = love::font::luax_checkglyphdata(L, 1);
+		love::font::GlyphData * data = luax_checktype<love::font::GlyphData>(L, 1, "GlyphData", LOVE_FONT_GLYPH_DATA_BITS);
 
 
 		// Create the image.
 		// Create the image.
 		Glyph * t = new Glyph(data);
 		Glyph * t = new Glyph(data);
@@ -798,6 +795,58 @@ namespace opengl
 		0		
 		0		
 	};
 	};
 
 
+	// List of constants.
+	static const LuaConstant wrap_Graphics_constants[] = {
+
+		{ "align_left", Graphics::ALIGN_LEFT },
+		{ "align_right", Graphics::ALIGN_RIGHT },
+		{ "align_center", Graphics::ALIGN_CENTER },
+
+		{ "blend_alpha", Graphics::BLEND_ALPHA },
+		{ "blend_additive", Graphics::BLEND_ADDITIVE },
+		{ "color_replace", Graphics::COLOR_REPLACE },
+		{ "color_modulate", Graphics::COLOR_MODULATE },
+
+		{ "draw_line", Graphics::DRAW_LINE },
+		{ "draw_fill", Graphics::DRAW_FILL },
+
+		{ "line_smooth", Graphics::LINE_SMOOTH },
+		{ "line_rough", Graphics::LINE_ROUGH },
+
+		{ "point_smooth", Graphics::POINT_SMOOTH },
+		{ "point_rough", Graphics::POINT_ROUGH },
+
+		{ "filter_linear", Image::FILTER_LINEAR },
+		{ "filter_nearest", Image::FILTER_NEAREST },
+
+		{ "wrap_clamp", Image::WRAP_CLAMP },
+		{ "wrap_repeat", Image::WRAP_REPEAT },
+
+		/**
+
+		// Vertex buffer geometry types.
+
+		{ "type_points", TYPE_POINTS },
+		{ "type_lines", TYPE_LINES },
+		{ "type_line_strip", TYPE_LINE_STRIP },
+		{ "type_triangles", TYPE_TRIANGLES },
+		{ "type_triangle_strip", TYPE_TRIANGLE_STRIP },
+		{ "type_triangle_fan", TYPE_TRIANGLE_FAN },
+		{ "type_num", TYPE_NUM },
+		
+		// Vertex buffer usage hints.
+
+		{ "usage_array", USAGE_ARRAY },
+		{ "usage_dynamic", USAGE_DYNAMIC },
+		{ "usage_static", USAGE_STATIC },
+		{ "usage_stream", USAGE_STREAM },
+		{ "usage_num", USAGE_NUM },
+		**/
+
+
+		{ 0, 0 }
+	};
+
 	int wrap_Graphics_open(lua_State * L)
 	int wrap_Graphics_open(lua_State * L)
 	{
 	{
 		if(instance == 0)
 		if(instance == 0)
@@ -813,7 +862,7 @@ namespace opengl
 		}
 		}
 
 
 		luax_register_gc(L, "love.graphics", instance);
 		luax_register_gc(L, "love.graphics", instance);
-		luax_register_module(L, wrap_Graphics_functions, wrap_Graphics_types, "graphics");		
+		luax_register_module(L, wrap_Graphics_functions, wrap_Graphics_types, wrap_Graphics_constants, "graphics");		
 
 
 #		include <scripts/graphics.lua.h>
 #		include <scripts/graphics.lua.h>
 		//luaL_dofile(L, "../../src/scripts/graphics.lua");
 		//luaL_dofile(L, "../../src/scripts/graphics.lua");
@@ -824,3 +873,8 @@ namespace opengl
 } // opengl
 } // opengl
 } // graphics
 } // graphics
 } // love
 } // love
+
+int luaopen_love_graphics(lua_State * L)
+{
+	return love::graphics::opengl::wrap_Graphics_open(L);
+}

+ 2 - 0
src/modules/graphics/opengl/wrap_Graphics.h

@@ -100,3 +100,5 @@ namespace opengl
 } // love
 } // love
 
 
 #endif // LOVE_GRAPHICS_OPENGL_WRAP_GRAPHICS_H
 #endif // LOVE_GRAPHICS_OPENGL_WRAP_GRAPHICS_H
+
+extern "C" LOVE_EXPORT int luaopen_love_graphics(lua_State * L);

+ 1 - 0
src/modules/image/Image.h

@@ -22,6 +22,7 @@
 #define LOVE_IMAGE_IMAGE_H
 #define LOVE_IMAGE_IMAGE_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include <common/Module.h>
 #include <common/Module.h>
 #include <filesystem/File.h>
 #include <filesystem/File.h>
 #include <font/GlyphData.h>
 #include <font/GlyphData.h>

+ 6 - 1
src/modules/image/wrap_Image.cpp

@@ -80,8 +80,13 @@ namespace image
 
 
 		luax_register_gc(L, "love.image", instance);
 		luax_register_gc(L, "love.image", instance);
 
 
-		return luax_register_module(L, wrap_Image_functions, wrap_Image_types, "image");
+		return luax_register_module(L, wrap_Image_functions, wrap_Image_types, 0, "image");
 	}
 	}
 
 
 } // image
 } // image
 } // love
 } // love
+
+int luaopen_love_image(lua_State * L)
+{
+	return love::image::wrap_Image_open(L);
+}

+ 2 - 0
src/modules/image/wrap_Image.h

@@ -37,3 +37,5 @@ namespace image
 } // love
 } // love
 
 
 #endif // LOVE_IMAGE_WRAP_IMAGE_H
 #endif // LOVE_IMAGE_WRAP_IMAGE_H
+
+extern "C" LOVE_EXPORT int luaopen_love_image(lua_State * L);

+ 23 - 1
src/modules/joystick/sdl/wrap_Joystick.cpp

@@ -145,6 +145,23 @@ namespace sdl
 		{ 0, 0 }
 		{ 0, 0 }
 	};
 	};
 
 
+	// List of constants.
+	static const LuaConstant wrap_Joystick_constants[] = {
+		{ "joystick_axis_horizontal", Joystick::JOYSTICK_AXIS_HORIZONTAL },
+		{ "joystick_axis_vertical", Joystick::JOYSTICK_AXIS_VERITCAL },
+
+		{ "joystick_hat_centered", Joystick::JOYSTICK_HAT_CENTERED },
+		{ "joystick_hat_up", Joystick::JOYSTICK_HAT_UP },
+		{ "joystick_hat_right", Joystick::JOYSTICK_HAT_RIGHT },
+		{ "joystick_hat_down", Joystick::JOYSTICK_HAT_DOWN },
+		{ "joystick_hat_left", Joystick::JOYSTICK_HAT_LEFT },
+		{ "joystick_hat_rightup", Joystick::JOYSTICK_HAT_RIGHTUP },
+		{ "joystick_hat_rightdown", Joystick::JOYSTICK_HAT_RIGHTDOWN },
+		{ "joystick_hat_leftup", Joystick::JOYSTICK_HAT_LEFTUP },
+		{ "joystick_hat_leftdown", Joystick::JOYSTICK_HAT_LEFTDOWN },
+		{ 0, 0 }
+	};
+
 	int wrap_Joystick_open(lua_State * L)
 	int wrap_Joystick_open(lua_State * L)
 	{
 	{
 
 
@@ -162,9 +179,14 @@ namespace sdl
 
 
 		luax_register_gc(L, "love.joystick", instance);
 		luax_register_gc(L, "love.joystick", instance);
 
 
-		return luax_register_module(L, wrap_Joystick_functions, 0, "joystick");
+		return luax_register_module(L, wrap_Joystick_functions, 0, wrap_Joystick_constants, "joystick");
 	}
 	}
 
 
 } // sdl
 } // sdl
 } // joystick
 } // joystick
 } // love
 } // love
+
+int luaopen_love_joystick(lua_State * L)
+{
+	return love::joystick::sdl::wrap_Joystick_open(L);
+}

+ 3 - 0
src/modules/joystick/sdl/wrap_Joystick.h

@@ -22,6 +22,7 @@
 #define LOVE_JOYSTICK_SDL_WRAP_JOYSTICK_H
 #define LOVE_JOYSTICK_SDL_WRAP_JOYSTICK_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include "Joystick.h"
 #include "Joystick.h"
 
 
 namespace love
 namespace love
@@ -50,4 +51,6 @@ namespace sdl
 } // joystick
 } // joystick
 } // love
 } // love
 
 
+extern "C" LOVE_EXPORT int luaopen_love_joystick(lua_State * L);
+
 #endif // LOVE_JOYSTICK_SDL_WRAP_JOYSTICK_H
 #endif // LOVE_JOYSTICK_SDL_WRAP_JOYSTICK_H

+ 161 - 1
src/modules/keyboard/sdl/wrap_Keyboard.cpp

@@ -64,6 +64,161 @@ namespace sdl
 		{ 0, 0 }
 		{ 0, 0 }
 	};
 	};
 
 
+	// List of constants.
+	static const LuaConstant wrap_Keyboard_constants[] = {
+		{ "key_unknown", 0 },
+		{ "key_first", 0 },
+		{ "key_backspace", 8 },
+		{ "key_tab", 9 },
+		{ "key_clear", 12 },
+		{ "key_return", 13 },
+		{ "key_pause", 19 },
+		{ "key_escape", 27 },
+		{ "key_space", 32 },
+		{ "key_exclaim", 33 },
+		{ "key_quotedbl", 34 },
+		{ "key_hash", 35 },
+		{ "key_dollar", 36 },
+		{ "key_ampersand", 38 },
+		{ "key_quote", 39 },
+		{ "key_leftparen", 40 },
+		{ "key_rightparen", 41 },
+		{ "key_asterisk", 42 },
+		{ "key_plus", 43 },
+		{ "key_comma", 44 },
+		{ "key_minus", 45 },
+		{ "key_period", 46 },
+		{ "key_slash", 47 },
+
+		{ "key_0", 48 },
+		{ "key_1", 49 },
+		{ "key_2", 50 },
+		{ "key_3", 51 },
+		{ "key_4", 52 },
+		{ "key_5", 53 },
+		{ "key_6", 54 },
+		{ "key_7", 55 },
+		{ "key_8", 56 },
+		{ "key_9", 57 },
+
+		{ "key_colon", 58 },
+		{ "key_semicolon", 59 },
+		{ "key_less", 60 },
+		{ "key_equals", 61 },
+		{ "key_greater", 62 },
+		{ "key_question", 63 },
+		{ "key_at", 64 },
+
+		{ "key_leftbracket", 91 },
+		{ "key_backslash", 92 },
+		{ "key_rightbracket", 93 },
+		{ "key_caret", 94 },
+		{ "key_underscore", 95 },
+		{ "key_backquote", 96 },
+
+		{ "key_a", 97 },
+		{ "key_b", 98 },
+		{ "key_c", 99 },
+		{ "key_d", 100 },
+		{ "key_e", 101 },
+		{ "key_f", 102 },
+		{ "key_g", 103 },
+		{ "key_h", 104 },
+		{ "key_i", 105 },
+		{ "key_j", 106 },
+		{ "key_k", 107 },
+		{ "key_l", 108 },
+		{ "key_m", 109 },
+		{ "key_n", 110 },
+		{ "key_o", 111 },
+		{ "key_p", 112 },
+		{ "key_q", 113 },
+		{ "key_r", 114 },
+		{ "key_s", 115 },
+		{ "key_t", 116 },
+		{ "key_u", 117 },
+		{ "key_v", 118 },
+		{ "key_w", 119 },
+		{ "key_x", 120 },
+		{ "key_y", 121 },
+		{ "key_z", 122 },
+		{ "key_delete", 127 },
+
+		{ "key_kp0", 256 },
+		{ "key_kp1", 257 },
+		{ "key_kp2", 258 },
+		{ "key_kp3", 259 },
+		{ "key_kp4", 260 },
+		{ "key_kp5", 261 },
+		{ "key_kp6", 262 },
+		{ "key_kp7", 263 },
+		{ "key_kp8", 264 },
+		{ "key_kp9", 265 },
+		{ "key_kp_period", 266 },
+		{ "key_kp_divide", 267 },
+		{ "key_kp_multiply", 268 },
+		{ "key_kp_minus", 269 },
+		{ "key_kp_plus", 270 },
+		{ "key_kp_enter", 271 },
+		{ "key_kp_equals", 272 },
+
+		{ "key_up", 273 },
+		{ "key_down", 274 },
+		{ "key_right", 275 },
+		{ "key_left", 276 },
+		{ "key_insert", 277 },
+		{ "key_home", 278 },
+		{ "key_end", 279 },
+		{ "key_pageup", 280 },
+		{ "key_pagedown", 281 },
+
+		{ "key_f1", 282 },
+		{ "key_f2", 283 },
+		{ "key_f3", 284 },
+		{ "key_f4", 285 },
+		{ "key_f5", 286 },
+		{ "key_f6", 287 },
+		{ "key_f7", 288 },
+		{ "key_f8", 289 },
+		{ "key_f9", 290 },
+		{ "key_f10", 291 },
+		{ "key_f11", 292 },
+		{ "key_f12", 293 },
+		{ "key_f13", 294 },
+		{ "key_f14", 295 },
+		{ "key_f15", 296 },
+
+		{ "key_numlock", 300 },
+		{ "key_capslock", 301 },
+		{ "key_scrollock", 302 },
+		{ "key_rshift", 303 },
+		{ "key_lshift", 304 },
+		{ "key_rctrl", 305 },
+		{ "key_lctrl", 306 },
+		{ "key_ralt", 307 },
+		{ "key_lalt", 308 },
+		{ "key_rmeta", 309 },
+		{ "key_lmeta", 310 },
+		{ "key_lsuper", 311 },
+		{ "key_rsuper", 312 },
+		{ "key_mode", 313 },
+		{ "key_compose", 314 },
+
+		{ "key_help", 315 },
+		{ "key_print", 316 },
+		{ "key_sysreq", 317 },
+		{ "key_break", 318 },
+		{ "key_menu", 319 },
+		{ "key_power", 320 },
+		{ "key_euro", 321 },
+		{ "key_undo", 322 },
+
+		{ "key_repeat_delay", Keyboard::KEY_REPEAT_DELAY },
+		{ "key_repeat_interval", Keyboard::KEY_REPEAT_INTERVAL },
+		{ 0, 0 }
+	};
+
+
 	int wrap_Keyboard_open(lua_State * L)
 	int wrap_Keyboard_open(lua_State * L)
 	{
 	{
 		if(instance == 0)
 		if(instance == 0)
@@ -80,9 +235,14 @@ namespace sdl
 
 
 		luax_register_gc(L, "love.keyboard", instance);
 		luax_register_gc(L, "love.keyboard", instance);
 
 
-		return luax_register_module(L, wrap_Keyboard_functions, 0, "keyboard");
+		return luax_register_module(L, wrap_Keyboard_functions, 0, wrap_Keyboard_constants, "keyboard");
 	}
 	}
 
 
 } // sdl
 } // sdl
 } // keyboard
 } // keyboard
 } // love
 } // love
+
+int luaopen_love_keyboard(lua_State * L)
+{
+	return love::keyboard::sdl::wrap_Keyboard_open(L);
+}

+ 3 - 0
src/modules/keyboard/sdl/wrap_Keyboard.h

@@ -22,6 +22,7 @@
 #define LOVE_KEYBOARD_SDL_WRAP_KEYBOARD_H
 #define LOVE_KEYBOARD_SDL_WRAP_KEYBOARD_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include "Keyboard.h"
 #include "Keyboard.h"
 
 
 namespace love
 namespace love
@@ -40,4 +41,6 @@ namespace sdl
 } // keyboard
 } // keyboard
 } // love
 } // love
 
 
+extern "C" LOVE_EXPORT int luaopen_love_keyboard(lua_State * L);
+
 #endif // LOVE_KEYBOARD_SDL_WRAP_KEYBOARD_H
 #endif // LOVE_KEYBOARD_SDL_WRAP_KEYBOARD_H

+ 17 - 2
src/modules/mouse/sdl/wrap_Mouse.cpp

@@ -104,6 +104,17 @@ namespace sdl
 		{ 0, 0 }
 		{ 0, 0 }
 	};
 	};
 
 
+	// List of constants.
+	static const LuaConstant wrap_Mouse_constants[] = {
+		{ "mouse_left", Mouse::MOUSE_LEFT },
+		{ "mouse_middle", Mouse::MOUSE_MIDDLE },
+		{ "mouse_right", Mouse::MOUSE_RIGHT },
+		{ "mouse_wheelup", Mouse::MOUSE_WHEELUP },
+		{ "mouse_wheeldown", Mouse::MOUSE_WHEELDOWN },
+		{ 0, 0 }
+	};
+
+
 	int wrap_Mouse_open(lua_State * L)
 	int wrap_Mouse_open(lua_State * L)
 	{
 	{
 		if(instance == 0)
 		if(instance == 0)
@@ -120,10 +131,14 @@ namespace sdl
 
 
 		luax_register_gc(L, "love.mouse", instance);
 		luax_register_gc(L, "love.mouse", instance);
 
 
-		return luax_register_module(L, wrap_Mouse_functions, 0, "mouse");
+		return luax_register_module(L, wrap_Mouse_functions, 0, wrap_Mouse_constants, "mouse");
 	}
 	}
 
 
-
 } // sdl
 } // sdl
 } // mouse
 } // mouse
 } // love
 } // love
+
+int luaopen_love_mouse(lua_State * L)
+{
+	return love::mouse::sdl::wrap_Mouse_open(L);
+}

+ 4 - 0
src/modules/mouse/sdl/wrap_Mouse.h

@@ -22,6 +22,7 @@
 #define LOVE_MOUSE_SDL_WRAP_MOUSE_H
 #define LOVE_MOUSE_SDL_WRAP_MOUSE_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include "Mouse.h"
 #include "Mouse.h"
 
 
 namespace love
 namespace love
@@ -45,4 +46,7 @@ namespace sdl
 } // mouse
 } // mouse
 } // love
 } // love
 
 
+extern "C" LOVE_EXPORT int luaopen_love_mouse(lua_State * L);
+
 #endif // LOVE_MOUSE_SDL_WRAP_MOUSE_H
 #endif // LOVE_MOUSE_SDL_WRAP_MOUSE_H
+

+ 6 - 1
src/modules/native/tcc/wrap_Native.cpp

@@ -139,9 +139,14 @@ namespace tcc
 
 
 		luax_register_gc(L, "love.native", instance);
 		luax_register_gc(L, "love.native", instance);
 
 
-		return luax_register_module(L, wrap_Native_functions, 0, "native");
+		return luax_register_module(L, wrap_Native_functions, 0, 0, "native");
 	}
 	}
 
 
 } // tcc
 } // tcc
 } // native
 } // native
 } // love
 } // love
+
+int luaopen_love_native(lua_State * L)
+{
+	return love::native::tcc::wrap_Native_open(L);
+}

+ 3 - 0
src/modules/native/tcc/wrap_Native.h

@@ -22,6 +22,7 @@
 #define LOVE_NATIVE_TCC_WRAP_NATIVE_H
 #define LOVE_NATIVE_TCC_WRAP_NATIVE_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include "Native.h"
 #include "Native.h"
 
 
 namespace love
 namespace love
@@ -38,4 +39,6 @@ namespace tcc
 } // native
 } // native
 } // love
 } // love
 
 
+extern "C" LOVE_EXPORT int luaopen_love_native(lua_State * L);
+
 #endif // LOVE_NATIVE_TCC_WRAP_NATIVE_H
 #endif // LOVE_NATIVE_TCC_WRAP_NATIVE_H

+ 22 - 1
src/modules/physics/box2d/wrap_Physics.cpp

@@ -236,6 +236,22 @@ namespace box2d
 		0
 		0
 	};
 	};
 
 
+
+	// List of constants.
+	static const LuaConstant wrap_Physics_constants[] = {
+		{ "shape_circle", Shape::SHAPE_CIRCLE },
+		{ "shape_polygon", Shape::SHAPE_POLYGON },
+
+		{ "joint_distance", Joint::JOINT_DISTANCE },
+		{ "joint_revolute", Joint::JOINT_REVOLUTE },
+		{ "joint_prismatic", Joint::JOINT_PRISMATIC },
+		{ "joint_mouse", Joint::JOINT_MOUSE },	
+		{ "joint_pulley", Joint::JOINT_PULLEY },	
+		{ "joint_gear", Joint::JOINT_GEAR },
+		{ 0, 0 }
+	};
+
+
 	int wrap_Physics_open(lua_State * L)
 	int wrap_Physics_open(lua_State * L)
 	{
 	{
 		if(instance == 0)
 		if(instance == 0)
@@ -250,9 +266,14 @@ namespace box2d
 			}
 			}
 		}
 		}
 
 
-		return luax_register_module(L, wrap_Physics_functions, wrap_Physics_types, "physics");
+		return luax_register_module(L, wrap_Physics_functions, wrap_Physics_types, wrap_Physics_constants, "physics");
 	}
 	}
 
 
 } // box2d
 } // box2d
 } // physics
 } // physics
 } // love
 } // love
+
+int luaopen_love_physics(lua_State * L)
+{
+	return love::physics::box2d::wrap_Physics_open(L);
+}

+ 3 - 0
src/modules/physics/box2d/wrap_Physics.h

@@ -22,6 +22,7 @@
 #define LOVE_PHYSICS_BOX2D_WRAP_PHYSICS_H
 #define LOVE_PHYSICS_BOX2D_WRAP_PHYSICS_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include "Physics.h"
 #include "Physics.h"
 #include "wrap_World.h"
 #include "wrap_World.h"
 #include "wrap_Contact.h"
 #include "wrap_Contact.h"
@@ -60,4 +61,6 @@ namespace box2d
 } // physics
 } // physics
 } // love
 } // love
 
 
+extern "C" LOVE_EXPORT int luaopen_love_physics(lua_State * L);
+
 #endif // LOVE_PHYSICS_BOX2D_WRAP_PHYSICS_H
 #endif // LOVE_PHYSICS_BOX2D_WRAP_PHYSICS_H

+ 3 - 3
src/modules/sound/SoundData.h

@@ -52,9 +52,9 @@ namespace sound
 		void * getData() const;
 		void * getData() const;
 		int getSize() const;
 		int getSize() const;
 	
 	
-		int getChannels() const;
-		int getBits() const;
-		int getSampleRate() const;
+		virtual int getChannels() const;
+		virtual int getBits() const;
+		virtual int getSampleRate() const;
 
 
 		void setSample(int i, float sample);
 		void setSample(int i, float sample);
 		float getSample(int i) const;
 		float getSample(int i) const;

+ 6 - 1
src/modules/sound/wrap_Sound.cpp

@@ -130,8 +130,13 @@ namespace sound
 
 
 		luax_register_gc(L, "love.sound", instance);
 		luax_register_gc(L, "love.sound", instance);
 
 
-		return luax_register_module(L, wrap_Sound_functions, wrap_Sound_types, "sound");
+		return luax_register_module(L, wrap_Sound_functions, wrap_Sound_types, 0, "sound");
 	}
 	}
 
 
 } // sound
 } // sound
 } // love
 } // love
+
+int luaopen_love_sound(lua_State * L)
+{
+	return love::sound::wrap_Sound_open(L);
+}

+ 3 - 0
src/modules/sound/wrap_Sound.h

@@ -22,6 +22,7 @@
 #define LOVE_SOUND_WRAP_SOUND_H
 #define LOVE_SOUND_WRAP_SOUND_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include "Sound.h"
 #include "Sound.h"
 #include "wrap_SoundData.h"
 #include "wrap_SoundData.h"
 #include "wrap_Decoder.h"
 #include "wrap_Decoder.h"
@@ -38,3 +39,5 @@ namespace sound
 } // love
 } // love
 
 
 #endif // LOVE_SOUND_WRAP_SOUND_H
 #endif // LOVE_SOUND_WRAP_SOUND_H
+
+extern "C" LOVE_EXPORT int luaopen_love_sound(lua_State * L);

+ 6 - 1
src/modules/timer/sdl/wrap_Timer.cpp

@@ -86,9 +86,14 @@ namespace sdl
 
 
 		luax_register_gc(L, "love.timer", instance);
 		luax_register_gc(L, "love.timer", instance);
 
 
-		return luax_register_module(L, wrap_Timer_functions, 0, "timer");
+		return luax_register_module(L, wrap_Timer_functions, 0, 0, "timer");
 	}
 	}
 
 
 } // sdl
 } // sdl
 } // timer
 } // timer
 } // love
 } // love
+
+int luaopen_love_timer(lua_State * L)
+{
+	return love::timer::sdl::wrap_Timer_open(L);
+}

+ 3 - 0
src/modules/timer/sdl/wrap_Timer.h

@@ -22,6 +22,7 @@
 #define LOVE_TIMER_SDL_WRAP_TIMER_H
 #define LOVE_TIMER_SDL_WRAP_TIMER_H
 
 
 // LOVE
 // LOVE
+#include <common/config.h>
 #include "Timer.h"
 #include "Timer.h"
 
 
 namespace love
 namespace love
@@ -42,4 +43,6 @@ namespace sdl
 } // timer
 } // timer
 } // love
 } // love
 
 
+extern "C" LOVE_EXPORT int luaopen_love_timer(lua_State * L);
+
 #endif // LOVE_TIMER_SDL_WRAP_TIMER_H
 #endif // LOVE_TIMER_SDL_WRAP_TIMER_H