diff --git a/openrct2.sln b/openrct2.sln
index e92027ef3a..a23532f33a 100644
--- a/openrct2.sln
+++ b/openrct2.sln
@@ -1,20 +1,26 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
-VisualStudioVersion = 14.0.24720.0
+VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openrct2", "openrct2.vcxproj", "{D24D94F6-2A74-480C-B512-629C306CE92F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|Win32.ActiveCfg = Debug|Win32
{D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|Win32.Build.0 = Debug|Win32
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|x64.ActiveCfg = Debug|x64
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|x64.Build.0 = Debug|x64
{D24D94F6-2A74-480C-B512-629C306CE92F}.Release|Win32.ActiveCfg = Release|Win32
{D24D94F6-2A74-480C-B512-629C306CE92F}.Release|Win32.Build.0 = Release|Win32
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.Release|x64.ActiveCfg = Release|x64
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/openrct2.vcxproj b/openrct2.vcxproj
index aa51afa3a1..d176601323 100644
--- a/openrct2.vcxproj
+++ b/openrct2.vcxproj
@@ -9,10 +9,18 @@
Debug
Win32
+
+ Debug
+ x64
+
Release
Win32
+
+ Release
+ x64
+
@@ -535,6 +543,18 @@
true
MultiByte
+
+ Application
+ true
+ v140
+ MultiByte
+
+
+ false
+ v140
+ true
+ MultiByte
+
@@ -557,6 +577,21 @@
$(SolutionDir)bin\
$(SolutionDir)obj\$(ProjectName)\$(Configuration)\
+
+ $(SolutionDir)lib\include;$(SolutionDir)lib\include\breakpad;$(SolutionDir)lib\include\libspeex;$(SolutionDir)lib\include\sdl;$(SolutionDir)lib\include\jansson;$(SolutionDir)lib\include\sdl_ttf;$(SolutionDir)lib\include\libpng;$(SolutionDir)lib\include\zlib;$(IncludePath)
+ $(SolutionDir)lib;$(LibraryPath)
+ $(SolutionDir)bin\
+ $(SolutionDir)obj\$(ProjectName)\$(Configuration)_$(Platform)\
+
+ $(ProjectName)_x64
+
+
+ $(SolutionDir)lib\include;$(SolutionDir)lib\include\breakpad;$(SolutionDir)lib\include\libspeex;$(SolutionDir)lib\include\sdl;$(SolutionDir)lib\include\jansson;$(SolutionDir)lib\include\sdl_ttf;$(SolutionDir)lib\include\libpng;$(SolutionDir)lib\include\zlib;$(IncludePath)
+ $(SolutionDir)lib;$(LibraryPath)
+ $(SolutionDir)bin\
+ $(SolutionDir)obj\$(ProjectName)\$(Configuration)_$(Platform)\
+ $(ProjectName)_x64
+
USE_BREAKPAD;%(PreprocessorDefinitions)
@@ -609,6 +644,53 @@
/ignore:4099 %(AdditionalOptions)
+
+
+ 4091;%(DisableSpecificWarnings)
+ Level3
+ Disabled
+ true
+ $(OpenRCT2_DEFINES);DEBUG;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;CURL_STATICLIB;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)
+ MultiThreaded
+ true
+ $(IntDir)\%(RelativeDir)
+ 4013
+ false
+ false
+
+
+ true
+ openrct2-libs-vs2015.lib;imm32.lib;version.lib;winmm.lib;%(AdditionalDependencies)
+ UseFastLinkTimeCodeGeneration
+ /OPT:NOLBR /ignore:4099 %(AdditionalOptions)
+
+
+
+
+ 4091;%(DisableSpecificWarnings)
+ Level3
+ Full
+ true
+ true
+
+ MultiThreaded
+ 4013
+
+ false
+ $(OpenRCT2_DEFINES);OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;CURL_STATICLIB;SDL_MAIN_HANDLED;%(PreprocessorDefinitions)
+ $(IntDir)\%(RelativeDir)
+ true
+ Speed
+ false
+
+
+ true
+ true
+ true
+ openrct2-libs-vs2015.lib;imm32.lib;version.lib;winmm.lib;%(AdditionalDependencies)
+ /ignore:4099 %(AdditionalOptions)
+
+
\ No newline at end of file
diff --git a/openrct2.vcxproj.user b/openrct2.vcxproj.user
index fd6680fbf4..b782b153c4 100644
--- a/openrct2.vcxproj.user
+++ b/openrct2.vcxproj.user
@@ -17,16 +17,12 @@
-
+
$(TargetDir)
WindowsLocalDebugger
- $(TargetDir)\openrct2.exe
-
-
-
+
$(TargetDir)
WindowsLocalDebugger
- $(TargetDir)\openrct2.exe
\ No newline at end of file
diff --git a/src/platform/windows.c b/src/platform/windows.c
index ab19063adf..c19d2d394c 100644
--- a/src/platform/windows.c
+++ b/src/platform/windows.c
@@ -46,6 +46,8 @@ utf8 **windows_get_command_line_args(int *outNumArgs);
static HMODULE _dllModule = NULL;
+#ifdef NO_RCT2
+
/**
* Windows entry point to OpenRCT2 without a console window.
*/
@@ -57,10 +59,20 @@ static HMODULE _dllModule = NULL;
/**
* Windows entry point to OpenRCT2 with a console window using a traditional C main function.
*/
-// int main(char *argv[], int argc)
-// {
-// return 0;
-// }
+int main(char *argv[], int argc)
+{
+ HINSTANCE hInstance = GetModuleHandle(NULL);
+ _dllModule = hInstance;
+
+ int runGame = cmdline_run((const char **)argv, argc);
+ if (runGame == 1) {
+ openrct2_launch();
+ }
+
+ return gExitCode;
+}
+
+#else
/* DllMain is already defined in one of static libraries we implicitly depend
* on (libcrypto), which is their bug really, but since we don't do anything in
@@ -110,6 +122,8 @@ __declspec(dllexport) int StartOpenRCT(HINSTANCE hInstance, HINSTANCE hPrevInsta
return gExitCode;
}
+#endif // NO_RCT2
+
utf8 **windows_get_command_line_args(int *outNumArgs)
{
int argc;