shithub: duke3d

Download patch

ref: f6d4da9935ec70a03a5721a419bc06c955a670ce
parent: 902ed01830d2a92579df825d8babf5bf2ac0a021
author: unknown <fabien@fabien-PC.(none)>
date: Wed Dec 12 19:19:28 EST 2012

Build and run well on Windows

--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,8 @@
 *.xcuserdatad
 .DS_Store
 xcshareddata
+SDL-1.2.9
+*.opensdf
+DebugVC7
+bin
+vcxproj.user
--- a/Engine/src/cache1d.c
+++ b/Engine/src/cache1d.c
@@ -362,6 +362,8 @@
     else
     {
         printf("Unable to find GRP file %s.\n",filename);
+		//Let user see the message
+		getchar();
         exit(0);
     }
 
--- a/Engine/src/sdl_driver.c
+++ b/Engine/src/sdl_driver.c
@@ -2485,13 +2485,14 @@
 
 #if PLATFORM_WIN32
 
-int TIMER_GetPlatformTicksInOneSecond(int64_t* t);
+int TIMER_GetPlatformTicksInOneSecond(int64_t* t)
 {
     QueryPerformanceFrequency((LARGE_INTEGER*)t);
     return 1;
 }
 
-void TIMER_GetPlatformTicks(int64_t* t){
+void TIMER_GetPlatformTicks(int64_t* t)
+{
     QueryPerformanceCounter((LARGE_INTEGER*)t);
 }
 #else
--- a/Engine/src/win32_compat.h
+++ b/Engine/src/win32_compat.h
@@ -129,6 +129,8 @@
 #define S_IRDWR _S_IRDWR
 #endif /* defined _MSC_VER */
 
+#define snprintf _snprintf
+
 #endif
 
 /* end of win32_compat.h ... */
--- a/Game/Game.vcxproj
+++ b/Game/Game.vcxproj
@@ -110,9 +110,9 @@
     <Link>
       <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
       <AdditionalDependencies>dxguid.lib;sdl.lib;sdl_mixer.lib;winmm.lib;WS2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <OutputFile>$(OutDir)$(SolutionName)d.exe</OutputFile>
+      <OutputFile>$(OutDir)Game.exe</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
-      <AdditionalLibraryDirectories>..\Directx_dec_2005\;..\SDL-1.2.9\VisualC\SDL\Release;..\SDL_mixer-1.2.6\VisualC\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>..\Directx_dec_2005\;..\SDL-1.2.9\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Console</SubSystem>
     </Link>
--- a/Game/src/game.c
+++ b/Game/src/game.c
@@ -8063,7 +8063,10 @@
 {
     WIN32_FIND_DATA FindFileData;
 	HANDLE hFind =  INVALID_HANDLE_VALUE;
-    
+    int i=0,kbdKey ;
+	char groupfile[9][512];
+	int grpID ;
+
 	if(game_dir[0] != '\0')
 	{
 		sprintf(groupfilefullpath, "%s\\%s", game_dir, baseDir);
@@ -8078,11 +8081,11 @@
 	else
 		sprintf(groupfilefullpath, "%s", baseDir);
     
-	printf("Searching duke3d*.grp:\n\n");
+	printf("Searching '%d':\n\n",groupfilefullpath);
 	hFind = FindFirstFile(groupfilefullpath,&FindFileData);
     
 	if ( hFind==INVALID_HANDLE_VALUE )
-		Error(EXIT_SUCCESS, "Can't find %s\n", groupfilefullpath);
+		Error(EXIT_SUCCESS, "Can't find '%s'\n", groupfilefullpath);
     
 	do
 	{
@@ -8092,7 +8095,7 @@
 	} while ( FindNextFile(hFind, &FindFileData) && i < 9 );
     
 	if(i==1)
-		sprintf(groupfilefullpath, "%s", groupfile[0]);
+		grpID = 0;
 	else
 	{
 		printf("\n-> Choose a base GRP file from 1 to %c: ",'0' + i);
@@ -8100,10 +8103,15 @@
 			kbdKey = getch();
 		while(kbdKey < '1' || kbdKey > ('0' + i));
 		printf("%c\n", kbdKey);
-		sprintf(groupfilefullpath, "%s", groupfile[kbdKey-'1']);
+		grpID =  groupfile[kbdKey-'1'];
+		
 	}
 	
-	FindClose(hFind);sprintf(groupfilefullpath, "%s\\%s", game_dir, grpName);
+	FindClose(hFind);
+	if (strlen(game_dir) == 0)
+		 sprintf(groupfilefullpath, "./%s", groupfile[grpID]);
+	else
+	   sprintf(groupfilefullpath, "%s//%s", game_dir, groupfile[grpID]);
 }
 
 #else
@@ -8121,12 +8129,12 @@
 static int load_duke3d_groupfile(void)
 {
 	// FIX_00032: Added multi base GRP manager. Use duke3d*.grp to handle multiple grp.
-    char groupfile[9][512];
+    
 	char groupfilefullpath[512];
-	int kbdKey, i = 0;
+	int i = 0;
 
 	char *baseDir="duke3d*.grp";
-    
+	//char *baseDir="DUKE3D.GRP";
     
     findGRPToUse(game_dir,baseDir,groupfilefullpath);
 	
--