shithub: choc

Download patch

ref: 35f753d9e4b9d85cc712262a751729688e32aad6
parent: 4c0dc104d7582d709d8cc665a1c46ed1d49cdd65
author: Simon Howard <fraggle@gmail.com>
date: Fri Oct 16 14:35:19 EDT 2009

Fix compile under MSVC (thanks entryway).

Subversion-branch: /branches/raven-branch
Subversion-revision: 1718

--- a/msvc/doom.vcproj
+++ b/msvc/doom.vcproj
@@ -42,7 +42,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".;..\src;..\src\doom;..\textscreen;..\pcsound"
-				PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PROGRAM_PREFIX=&quot;\&quot;chocolate-\&quot;&quot;"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PROGRAM_PREFIX=&quot;\&quot;chocolate-\&quot;&quot;"
 				MinimalRebuild="true"
 				ExceptionHandling="0"
 				BasicRuntimeChecks="3"
@@ -221,6 +221,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\src\i_endoom.h"
+				>
+			</File>
+			<File
 				RelativePath="..\src\i_joystick.h"
 				>
 			</File>
@@ -590,6 +594,10 @@
 			</File>
 			<File
 				RelativePath="..\src\i_cdmus.c"
+				>
+			</File>
+			<File
+				RelativePath="..\src\i_endoom.c"
 				>
 			</File>
 			<File
--- a/msvc/heretic.vcproj
+++ b/msvc/heretic.vcproj
@@ -41,7 +41,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".;..\src;..\src\doom;..\src\heretic;..\textscreen;..\pcsound"
-				PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PROGRAM_PREFIX=&quot;\&quot;chocolate-\&quot;&quot;"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PROGRAM_PREFIX=&quot;\&quot;chocolate-\&quot;&quot;"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="3"
@@ -193,6 +193,10 @@
 			</File>
 			<File
 				RelativePath="..\src\i_cdmus.c"
+				>
+			</File>
+			<File
+				RelativePath="..\src\i_endoom.c"
 				>
 			</File>
 			<File
--- a/msvc/hexen.vcproj
+++ b/msvc/hexen.vcproj
@@ -41,6 +41,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".;..\src;..\src\doom;..\src\heretic;..\textscreen;..\pcsound"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PROGRAM_PREFIX=&quot;\&quot;chocolate-\&quot;&quot;"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="3"
@@ -59,6 +60,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
+				AdditionalDependencies="SDL.lib SDL_mixer.lib SDL_net.lib SDLmain.lib"
 				OutputFile="$(OutDir)\chocolate-hexen-dbg.exe"
 				GenerateDebugInformation="true"
 				SubSystem="1"
--- a/msvc/server.vcproj
+++ b/msvc/server.vcproj
@@ -41,7 +41,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".;..\src;..\textscreen"
-				PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;DEDICATEDSERVER"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;DEDICATEDSERVER"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="3"
@@ -190,6 +190,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\src\i_system.c"
+				>
+			</File>
+			<File
 				RelativePath="..\src\i_timer.c"
 				>
 			</File>
@@ -241,6 +245,10 @@
 			>
 			<File
 				RelativePath="..\src\d_mode.h"
+				>
+			</File>
+			<File
+				RelativePath="..\src\i_system.h"
 				>
 			</File>
 			<File
--- a/msvc/setup.vcproj
+++ b/msvc/setup.vcproj
@@ -41,7 +41,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".;..\src;..\src\doom;..\textscreen"
-				PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;CHOCOLATESETUP"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;CHOCOLATESETUP"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="3"
@@ -237,6 +237,10 @@
 				RelativePath="..\setup\txt_mouseinput.c"
 				>
 			</File>
+			<File
+				RelativePath="..\textscreen\txt_scrollpane.c"
+				>
+			</File>
 		</Filter>
 		<Filter
 			Name="Header Files"
@@ -293,6 +297,10 @@
 			</File>
 			<File
 				RelativePath="..\setup\txt_mouseinput.h"
+				>
+			</File>
+			<File
+				RelativePath="..\textscreen\txt_scrollpane.h"
 				>
 			</File>
 		</Filter>
--- a/src/doomtype.h
+++ b/src/doomtype.h
@@ -36,7 +36,9 @@
 #ifdef _WIN32
 
 #define snprintf _snprintf
+#if _MSC_VER < 1400 /* not needed for Visual Studio 2008 */
 #define vsnprintf _vsnprintf
+#endif
 #define strcasecmp stricmp
 #define strncasecmp strnicmp
 
--- a/src/heretic/am_data.h
+++ b/src/heretic/am_data.h
@@ -92,9 +92,9 @@
 
 #define R (FRACUNIT)
 mline_t triangle_guy[] = {
-  { { -.867*R, -.5*R }, { .867*R, -.5*R } },
-  { { .867*R, -.5*R } , { 0, R } },
-  { { 0, R }, { -.867*R, -.5*R } }
+  { { (fixed_t)(-.867*R), (fixed_t)(-.5*R) }, { (fixed_t)(.867*R ), (fixed_t)(-.5*R) } },
+  { { (fixed_t)(.867*R ), (fixed_t)(-.5*R) }, { (fixed_t)(0      ), (fixed_t)(R    ) } },
+  { { (fixed_t)(0      ), (fixed_t)(R    ) }, { (fixed_t)(-.867*R), (fixed_t)(-.5*R) } }
   };
 #undef R
 #define NUMTRIANGLEGUYLINES (sizeof(triangle_guy)/sizeof(mline_t))
@@ -101,9 +101,9 @@
 
 #define R (FRACUNIT)
 mline_t thintriangle_guy[] = {
-  { { -.5*R, -.7*R }, { R, 0 } },
-  { { R, 0 }, { -.5*R, .7*R } },
-  { { -.5*R, .7*R }, { -.5*R, -.7*R } }
+  { { (fixed_t)(-.5*R), (fixed_t)(-.7*R) }, { (fixed_t)(R    ), (fixed_t)(0    ) } },
+  { { (fixed_t)(R    ), (fixed_t)(0    ) }, { (fixed_t)(-.5*R), (fixed_t)(.7*R ) } },
+  { { (fixed_t)(-.5*R), (fixed_t)(.7*R ) }, { (fixed_t)(-.5*R), (fixed_t)(-.7*R) } }
   };
 #undef R
 #define NUMTHINTRIANGLEGUYLINES (sizeof(thintriangle_guy)/sizeof(mline_t))
--- a/src/heretic/am_map.c
+++ b/src/heretic/am_map.c
@@ -131,7 +131,7 @@
 static mpoint_t f_oldloc;
 
 // used by MTOF to scale from map-to-frame-buffer coords
-static fixed_t scale_mtof = INITSCALEMTOF;
+static fixed_t scale_mtof = (fixed_t)INITSCALEMTOF;
 // used by FTOM to scale from frame-buffer-to-map coords (=1/scale_mtof)
 static fixed_t scale_ftom;
 
--- a/src/heretic/p_enemy.c
+++ b/src/heretic/p_enemy.c
@@ -1917,7 +1917,7 @@
         angle >>= ANGLETOFINESHIFT;
         shard->momx = FixedMul(shard->info->speed, finecosine[angle]);
         shard->momy = FixedMul(shard->info->speed, finesine[angle]);
-        shard->momz = -.6 * FRACUNIT;
+        shard->momz = (fixed_t)(-.6 * FRACUNIT);
         P_CheckMissileSpawn(shard);
     }
 }
@@ -2507,7 +2507,7 @@
         angle >>= ANGLETOFINESHIFT;
         blast->momx = FixedMul(1 * FRACUNIT, finecosine[angle]);
         blast->momy = FixedMul(1 * FRACUNIT, finesine[angle]);
-        blast->momz = (2.5 * FRACUNIT) + (P_Random() << 10);
+        blast->momz = (fixed_t)(2.5 * FRACUNIT) + (P_Random() << 10);
         S_StartSound(blast, sfx_volsht);
         P_CheckMissileSpawn(blast);
     }
@@ -2540,8 +2540,8 @@
         angle = i * ANG90;
         tiny->angle = angle;
         angle >>= ANGLETOFINESHIFT;
-        tiny->momx = FixedMul(FRACUNIT * .7, finecosine[angle]);
-        tiny->momy = FixedMul(FRACUNIT * .7, finesine[angle]);
+        tiny->momx = FixedMul((fixed_t)(FRACUNIT * .7), finecosine[angle]);
+        tiny->momy = FixedMul((fixed_t)(FRACUNIT * .7), finesine[angle]);
         tiny->momz = FRACUNIT + (P_Random() << 9);
         P_CheckMissileSpawn(tiny);
     }
--- a/src/heretic/p_mobj.c
+++ b/src/heretic/p_mobj.c
@@ -70,7 +70,7 @@
 
     if (state == S_NULL)
     {                           // Remove mobj
-        mobj->state = S_NULL;
+        mobj->state = (state_t *) S_NULL;
         P_RemoveMobj(mobj);
         return (false);
     }
@@ -100,7 +100,7 @@
 
     if (state == S_NULL)
     {                           // Remove mobj
-        mobj->state = S_NULL;
+        mobj->state = (state_t *) S_NULL;
         P_RemoveMobj(mobj);
         return (false);
     }
@@ -1214,7 +1214,7 @@
             break;
         case MT_GAUNTLETPUFF1:
         case MT_GAUNTLETPUFF2:
-            puff->momz = .8 * FRACUNIT;
+            puff->momz = (fixed_t)(.8 * FRACUNIT);
         default:
             break;
     }
--- a/src/heretic/p_pspr.c
+++ b/src/heretic/p_pspr.c
@@ -1639,14 +1639,14 @@
     puff = P_SpawnMobj(actor->x, actor->y, actor->z, MT_PHOENIXPUFF);
     angle = actor->angle + ANG90;
     angle >>= ANGLETOFINESHIFT;
-    puff->momx = FixedMul(FRACUNIT * 1.3, finecosine[angle]);
-    puff->momy = FixedMul(FRACUNIT * 1.3, finesine[angle]);
+    puff->momx = FixedMul((fixed_t)(FRACUNIT * 1.3), finecosine[angle]);
+    puff->momy = FixedMul((fixed_t)(FRACUNIT * 1.3), finesine[angle]);
     puff->momz = 0;
     puff = P_SpawnMobj(actor->x, actor->y, actor->z, MT_PHOENIXPUFF);
     angle = actor->angle - ANG90;
     angle >>= ANGLETOFINESHIFT;
-    puff->momx = FixedMul(FRACUNIT * 1.3, finecosine[angle]);
-    puff->momy = FixedMul(FRACUNIT * 1.3, finesine[angle]);
+    puff->momx = FixedMul((fixed_t)(FRACUNIT * 1.3), finecosine[angle]);
+    puff->momy = FixedMul((fixed_t)(FRACUNIT * 1.3), finesine[angle]);
     puff->momz = 0;
 }
 
@@ -1727,7 +1727,7 @@
 
 void A_FlameEnd(mobj_t * actor)
 {
-    actor->momz += 1.5 * FRACUNIT;
+    actor->momz += (fixed_t)(1.5 * FRACUNIT);
 }
 
 //----------------------------------------------------------------------------
@@ -1738,7 +1738,7 @@
 
 void A_FloatPuff(mobj_t * puff)
 {
-    puff->momz += 1.8 * FRACUNIT;
+    puff->momz += (fixed_t)(1.8 * FRACUNIT);
 }
 
 //---------------------------------------------------------------------------
--- a/src/heretic/r_data.c
+++ b/src/heretic/r_data.c
@@ -221,7 +221,7 @@
 // fill in the lump / offset, so columns with only a single patch are
 // all done
 //
-    patchcount = (byte *) alloca(texture->width);
+    patchcount = (byte *) Z_Malloc(texture->width, PU_STATIC, &patchcount);
     memset(patchcount, 0, texture->width);
     patch = texture->patches;
 
@@ -263,6 +263,8 @@
             texturecompositesize[texnum] += texture->height;
         }
     }
+
+    Z_Free(patchcount);
 }
 
 
@@ -322,7 +324,7 @@
     names = W_CacheLumpName("PNAMES", PU_STATIC);
     nummappatches = LONG(*((int *) names));
     name_p = names + 4;
-    patchlookup = alloca(nummappatches * sizeof(*patchlookup));
+    patchlookup = Z_Malloc(nummappatches * sizeof(*patchlookup), PU_STATIC, NULL);
     for (i = 0; i < nummappatches; i++)
     {
         strncpy(name, name_p + i * 8, 8);
@@ -423,6 +425,8 @@
         totalwidth += texture->width;
     }
 
+    Z_Free(patchlookup);
+
     W_ReleaseLumpName("TEXTURE1");
     if (maptex2)
     {
@@ -654,7 +658,7 @@
 //
 // precache flats
 //      
-    flatpresent = alloca(numflats);
+    flatpresent = Z_Malloc(numflats, PU_STATIC, NULL);
     memset(flatpresent, 0, numflats);
     for (i = 0; i < numsectors; i++)
     {
@@ -671,10 +675,12 @@
             W_CacheLumpNum(lump, PU_CACHE);
         }
 
+    Z_Free(flatpresent);
+
 //
 // precache textures
 //
-    texturepresent = alloca(numtextures);
+    texturepresent = Z_Malloc(numtextures, PU_STATIC, NULL);
     memset(texturepresent, 0, numtextures);
 
     for (i = 0; i < numsides; i++)
@@ -700,10 +706,12 @@
         }
     }
 
+    Z_Free(texturepresent);
+
 //
 // precache sprites
 //
-    spritepresent = alloca(numsprites);
+    spritepresent = Z_Malloc(numsprites, PU_STATIC, NULL);
     memset(spritepresent, 0, numsprites);
 
     for (th = thinkercap.next; th != &thinkercap; th = th->next)
@@ -728,4 +736,6 @@
             }
         }
     }
+
+    Z_Free(spritepresent);
 }
--- a/src/hexen/am_data.h
+++ b/src/hexen/am_data.h
@@ -108,9 +108,9 @@
 
 #define R (FRACUNIT)
 mline_t thintriangle_guy[] = {
-  { { -.5*R, -.7*R }, { R, 0 } },
-  { { R, 0 }, { -.5*R, .7*R } },
-  { { -.5*R, .7*R }, { -.5*R, -.7*R } }
+  { { (fixed_t)(-.5*R), (fixed_t)(-.7*R) }, { (fixed_t)(R    ), (fixed_t)(0    ) } },
+  { { (fixed_t)(R    ), (fixed_t)(0    ) }, { (fixed_t)(-.5*R), (fixed_t)(.7*R ) } },
+  { { (fixed_t)(-.5*R), (fixed_t)(.7*R ) }, { (fixed_t)(-.5*R), (fixed_t)(-.7*R) } }
   };
 #undef R
 #define NUMTHINTRIANGLEGUYLINES (sizeof(thintriangle_guy)/sizeof(mline_t))
--- a/src/hexen/p_mobj.c
+++ b/src/hexen/p_mobj.c
@@ -100,7 +100,7 @@
 
     if (state == S_NULL)
     {                           // Remove mobj
-        mobj->state = S_NULL;
+        mobj->state = (state_t *) S_NULL;
         P_RemoveMobj(mobj);
         return (false);
     }
@@ -130,7 +130,7 @@
 
     if (state == S_NULL)
     {                           // Remove mobj
-        mobj->state = S_NULL;
+        mobj->state = (state_t *) S_NULL;
         P_RemoveMobj(mobj);
         return (false);
     }
--- a/src/hexen/r_data.c
+++ b/src/hexen/r_data.c
@@ -218,7 +218,7 @@
 // fill in the lump / offset, so columns with only a single patch are
 // all done
 //
-    patchcount = (byte *) alloca(texture->width);
+    patchcount = (byte *) Z_Malloc(texture->width, PU_STATIC, &patchcount);
     memset(patchcount, 0, texture->width);
     patch = texture->patches;
 
@@ -260,6 +260,8 @@
             texturecompositesize[texnum] += texture->height;
         }
     }
+
+    Z_Free(patchcount);
 }
 
 
@@ -319,7 +321,7 @@
     names = W_CacheLumpName("PNAMES", PU_STATIC);
     nummappatches = LONG(*((int *) names));
     name_p = names + 4;
-    patchlookup = alloca(nummappatches * sizeof(*patchlookup));
+    patchlookup = Z_Malloc(nummappatches * sizeof(*patchlookup), PU_STATIC, NULL);
     for (i = 0; i < nummappatches; i++)
     {
         strncpy(name, name_p + i * 8, 8);
@@ -403,6 +405,8 @@
         totalwidth += texture->width;
     }
 
+    Z_Free(patchlookup);
+
     W_ReleaseLumpName("TEXTURE1");
     if (maptex2)
         W_ReleaseLumpName("TEXTURE2");
@@ -620,7 +624,7 @@
 //
 // precache flats
 //      
-    flatpresent = alloca(numflats);
+    flatpresent = Z_Malloc(numflats, PU_STATIC, NULL);
     memset(flatpresent, 0, numflats);
     for (i = 0; i < numsectors; i++)
     {
@@ -637,10 +641,12 @@
             W_CacheLumpNum(lump, PU_CACHE);
         }
 
+    Z_Free(flatpresent);
+
 //
 // precache textures
 //
-    texturepresent = alloca(numtextures);
+    texturepresent = Z_Malloc(numtextures, PU_STATIC, NULL);
     memset(texturepresent, 0, numtextures);
 
     for (i = 0; i < numsides; i++)
@@ -667,10 +673,12 @@
         }
     }
 
+    Z_Free(texturepresent);
+
 //
 // precache sprites
 //
-    spritepresent = alloca(numsprites);
+    spritepresent = Z_Malloc(numsprites, PU_STATIC, NULL);
     memset(spritepresent, 0, numsprites);
 
     for (th = thinkercap.next; th != &thinkercap; th = th->next)
@@ -695,4 +703,6 @@
             }
         }
     }
+
+    Z_Free(spritepresent);
 }
--- a/src/i_cdmus.c
+++ b/src/i_cdmus.c
@@ -25,6 +25,8 @@
 //
 //-----------------------------------------------------------------------------
 
+#include <stdio.h>
+
 #include "SDL.h"
 #include "SDL_cdrom.h"
 
--- a/src/i_main.c
+++ b/src/i_main.c
@@ -26,6 +26,8 @@
 
 #include "config.h"
 
+#include <stdio.h>
+
 #include "SDL.h"
 
 #include "doomtype.h"
@@ -53,7 +55,7 @@
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
-typedef BOOL WINAPI (*SetAffinityFunc)(HANDLE hProcess, DWORD_PTR mask);
+typedef BOOL (WINAPI *SetAffinityFunc)(HANDLE hProcess, DWORD mask);
 
 // This is a bit more complicated than it really needs to be.  We really
 // just need to call the SetProcessAffinityMask function, but that
@@ -79,7 +81,7 @@
     }
     // Find the SetProcessAffinityMask function.
 
-    SetAffinity = GetProcAddress(kernel32_dll, "SetProcessAffinityMask");
+    SetAffinity = (SetAffinityFunc)GetProcAddress(kernel32_dll, "SetProcessAffinityMask");
 
     // If the function was not found, we are on an old (Win9x) system
     // that doesn't have this function.  That's no problem, because
--- a/src/i_system.h
+++ b/src/i_system.h
@@ -60,6 +60,7 @@
 // Clean exit, displays sell blurb.
 void I_Quit (void);
 
+void I_Error (char *error, ...);
 
 // Allocates from low memory under dos,
 // just mallocs under unix