From 35f753d9e4b9d85cc712262a751729688e32aad6 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Fri, 16 Oct 2009 18:35:19 +0000 Subject: Fix compile under MSVC (thanks entryway). Subversion-branch: /branches/raven-branch Subversion-revision: 1718 --- msvc/doom.vcproj | 10 +++++++++- msvc/heretic.vcproj | 6 +++++- msvc/hexen.vcproj | 2 ++ msvc/server.vcproj | 10 +++++++++- msvc/setup.vcproj | 10 +++++++++- src/doomtype.h | 2 ++ src/heretic/am_data.h | 12 ++++++------ src/heretic/am_map.c | 2 +- src/heretic/p_enemy.c | 8 ++++---- src/heretic/p_mobj.c | 6 +++--- src/heretic/p_pspr.c | 12 ++++++------ src/heretic/r_data.c | 20 +++++++++++++++----- src/hexen/am_data.h | 6 +++--- src/hexen/p_mobj.c | 4 ++-- src/hexen/r_data.c | 20 +++++++++++++++----- src/i_cdmus.c | 2 ++ src/i_main.c | 6 ++++-- src/i_system.h | 1 + 18 files changed, 98 insertions(+), 41 deletions(-) diff --git a/msvc/doom.vcproj b/msvc/doom.vcproj index 2c3eb38e..c5714eea 100644 --- 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="\"chocolate-\""" + PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PROGRAM_PREFIX="\"chocolate-\""" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -220,6 +220,10 @@ RelativePath="..\src\i_cdmus.h" > + + @@ -592,6 +596,10 @@ RelativePath="..\src\i_cdmus.c" > + + diff --git a/msvc/heretic.vcproj b/msvc/heretic.vcproj index c005da49..e9dbb0dd 100644 --- 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="\"chocolate-\""" + PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PROGRAM_PREFIX="\"chocolate-\""" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -195,6 +195,10 @@ RelativePath="..\src\i_cdmus.c" > + + diff --git a/msvc/hexen.vcproj b/msvc/hexen.vcproj index c12e799e..12d247d1 100644 --- 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="\"chocolate-\""" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -59,6 +60,7 @@ /> + + @@ -243,6 +247,10 @@ RelativePath="..\src\d_mode.h" > + + diff --git a/msvc/setup.vcproj b/msvc/setup.vcproj index cff08ff4..5e2a2efe 100644 --- 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" > + + + + >= 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 @@ void A_VolcanoBlast(mobj_t * volcano) 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 @@ void A_VolcBallImpact(mobj_t * ball) 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); } diff --git a/src/heretic/p_mobj.c b/src/heretic/p_mobj.c index b5366501..e07ecf45 100644 --- a/src/heretic/p_mobj.c +++ b/src/heretic/p_mobj.c @@ -70,7 +70,7 @@ boolean P_SetMobjState(mobj_t * mobj, statenum_t state) 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 @@ boolean P_SetMobjStateNF(mobj_t * mobj, statenum_t state) 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 @@ void P_SpawnPuff(fixed_t x, fixed_t y, fixed_t z) break; case MT_GAUNTLETPUFF1: case MT_GAUNTLETPUFF2: - puff->momz = .8 * FRACUNIT; + puff->momz = (fixed_t)(.8 * FRACUNIT); default: break; } diff --git a/src/heretic/p_pspr.c b/src/heretic/p_pspr.c index 07a04ac7..7f9660ac 100644 --- a/src/heretic/p_pspr.c +++ b/src/heretic/p_pspr.c @@ -1639,14 +1639,14 @@ void A_PhoenixPuff(mobj_t * actor) 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_ShutdownPhoenixPL2(player_t * player, pspdef_t * psp) void A_FlameEnd(mobj_t * actor) { - actor->momz += 1.5 * FRACUNIT; + actor->momz += (fixed_t)(1.5 * FRACUNIT); } //---------------------------------------------------------------------------- @@ -1738,7 +1738,7 @@ void A_FlameEnd(mobj_t * actor) void A_FloatPuff(mobj_t * puff) { - puff->momz += 1.8 * FRACUNIT; + puff->momz += (fixed_t)(1.8 * FRACUNIT); } //--------------------------------------------------------------------------- diff --git a/src/heretic/r_data.c b/src/heretic/r_data.c index 9846196a..ee005248 100644 --- a/src/heretic/r_data.c +++ b/src/heretic/r_data.c @@ -221,7 +221,7 @@ void R_GenerateLookup(int texnum) // 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 @@ void R_GenerateLookup(int texnum) texturecompositesize[texnum] += texture->height; } } + + Z_Free(patchcount); } @@ -322,7 +324,7 @@ void R_InitTextures(void) 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 @@ void R_InitTextures(void) totalwidth += texture->width; } + Z_Free(patchlookup); + W_ReleaseLumpName("TEXTURE1"); if (maptex2) { @@ -654,7 +658,7 @@ void R_PrecacheLevel(void) // // 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 @@ void R_PrecacheLevel(void) 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 @@ void R_PrecacheLevel(void) } } + 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 @@ void R_PrecacheLevel(void) } } } + + Z_Free(spritepresent); } diff --git a/src/hexen/am_data.h b/src/hexen/am_data.h index db964598..e20e34ce 100644 --- a/src/hexen/am_data.h +++ b/src/hexen/am_data.h @@ -108,9 +108,9 @@ mline_t triangle_guy[] = { #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)) diff --git a/src/hexen/p_mobj.c b/src/hexen/p_mobj.c index 5d6f7097..ee8f8fd4 100644 --- a/src/hexen/p_mobj.c +++ b/src/hexen/p_mobj.c @@ -100,7 +100,7 @@ boolean P_SetMobjState(mobj_t * mobj, statenum_t state) 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 @@ boolean P_SetMobjStateNF(mobj_t * mobj, statenum_t state) if (state == S_NULL) { // Remove mobj - mobj->state = S_NULL; + mobj->state = (state_t *) S_NULL; P_RemoveMobj(mobj); return (false); } diff --git a/src/hexen/r_data.c b/src/hexen/r_data.c index bd020073..b82c0ff6 100644 --- a/src/hexen/r_data.c +++ b/src/hexen/r_data.c @@ -218,7 +218,7 @@ void R_GenerateLookup(int texnum) // 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 @@ void R_GenerateLookup(int texnum) texturecompositesize[texnum] += texture->height; } } + + Z_Free(patchcount); } @@ -319,7 +321,7 @@ void R_InitTextures(void) 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 @@ void R_InitTextures(void) totalwidth += texture->width; } + Z_Free(patchlookup); + W_ReleaseLumpName("TEXTURE1"); if (maptex2) W_ReleaseLumpName("TEXTURE2"); @@ -620,7 +624,7 @@ void R_PrecacheLevel(void) // // 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 @@ void R_PrecacheLevel(void) 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 @@ void R_PrecacheLevel(void) } } + 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 @@ void R_PrecacheLevel(void) } } } + + Z_Free(spritepresent); } diff --git a/src/i_cdmus.c b/src/i_cdmus.c index 5a52b143..94ac47c6 100644 --- a/src/i_cdmus.c +++ b/src/i_cdmus.c @@ -25,6 +25,8 @@ // //----------------------------------------------------------------------------- +#include + #include "SDL.h" #include "SDL_cdrom.h" diff --git a/src/i_main.c b/src/i_main.c index a17d56b9..1ccc52c0 100644 --- a/src/i_main.c +++ b/src/i_main.c @@ -26,6 +26,8 @@ #include "config.h" +#include + #include "SDL.h" #include "doomtype.h" @@ -53,7 +55,7 @@ static void LockCPUAffinity(void) #define WIN32_LEAN_AND_MEAN #include -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 @@ static void LockCPUAffinity(void) } // 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 diff --git a/src/i_system.h b/src/i_system.h index b34f61e4..0697f7db 100644 --- a/src/i_system.h +++ b/src/i_system.h @@ -60,6 +60,7 @@ ticcmd_t* I_BaseTiccmd (void); // Clean exit, displays sell blurb. void I_Quit (void); +void I_Error (char *error, ...); // Allocates from low memory under dos, // just mallocs under unix -- cgit v1.2.3