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;