summaryrefslogtreecommitdiff
path: root/src/heretic
diff options
context:
space:
mode:
authorJames Haley2010-01-26 00:59:02 +0000
committerJames Haley2010-01-26 00:59:02 +0000
commitb80409202d07732ec201c9816887262b505b81d4 (patch)
tree364dcb86f2c22411a720447bfa21c4de9191ff6f /src/heretic
parent66e8dc63bd0b384c99f0d0ff60b3d75c42d441b1 (diff)
parent8f6edc1f7402215c5e38d1f03939ce6b5ff5e3ae (diff)
downloadchocolate-doom-b80409202d07732ec201c9816887262b505b81d4.tar.gz
chocolate-doom-b80409202d07732ec201c9816887262b505b81d4.tar.bz2
chocolate-doom-b80409202d07732ec201c9816887262b505b81d4.zip
Merge from raven-branch
Subversion-branch: /branches/strife-branch Subversion-revision: 1825
Diffstat (limited to 'src/heretic')
-rw-r--r--src/heretic/am_data.h12
-rw-r--r--src/heretic/am_map.c2
-rw-r--r--src/heretic/doomdef.h122
-rw-r--r--src/heretic/p_enemy.c8
-rw-r--r--src/heretic/p_mobj.c6
-rw-r--r--src/heretic/p_pspr.c12
-rw-r--r--src/heretic/r_data.c20
7 files changed, 96 insertions, 86 deletions
diff --git a/src/heretic/am_data.h b/src/heretic/am_data.h
index 1f83d876..342f06a9 100644
--- a/src/heretic/am_data.h
+++ b/src/heretic/am_data.h
@@ -92,18 +92,18 @@ mline_t cheat_player_arrow[] = {
#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))
#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/heretic/am_map.c b/src/heretic/am_map.c
index aa1b273b..99a8e206 100644
--- a/src/heretic/am_map.c
+++ b/src/heretic/am_map.c
@@ -131,7 +131,7 @@ static fixed_t old_m_x, old_m_y;
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;
diff --git a/src/heretic/doomdef.h b/src/heretic/doomdef.h
index 0580f9b0..3f976c3d 100644
--- a/src/heretic/doomdef.h
+++ b/src/heretic/doomdef.h
@@ -205,74 +205,74 @@ typedef struct
// --- mobj.flags ---
-#define MF_SPECIAL 1 // call P_SpecialThing when touched
-#define MF_SOLID 2
+#define MF_SPECIAL 1 // call P_SpecialThing when touched
+#define MF_SOLID 2
#define MF_SHOOTABLE 4
-#define MF_NOSECTOR 8 // don't use the sector links
- // (invisible but touchable)
-#define MF_NOBLOCKMAP 16 // don't use the blocklinks
- // (inert but displayable)
-#define MF_AMBUSH 32
-#define MF_JUSTHIT 64 // try to attack right back
-#define MF_JUSTATTACKED 128 // take at least one step before attacking
-#define MF_SPAWNCEILING 256 // hang from ceiling instead of floor
-#define MF_NOGRAVITY 512 // don't apply gravity every tic
+#define MF_NOSECTOR 8 // don't use the sector links
+ // (invisible but touchable)
+#define MF_NOBLOCKMAP 16 // don't use the blocklinks
+ // (inert but displayable)
+#define MF_AMBUSH 32
+#define MF_JUSTHIT 64 // try to attack right back
+#define MF_JUSTATTACKED 128 // take at least one step before attacking
+#define MF_SPAWNCEILING 256 // hang from ceiling instead of floor
+#define MF_NOGRAVITY 512 // don't apply gravity every tic
// movement flags
-#define MF_DROPOFF 0x400 // allow jumps from high places
-#define MF_PICKUP 0x800 // for players to pick up items
-#define MF_NOCLIP 0x1000 // player cheat
-#define MF_SLIDE 0x2000 // keep info about sliding along walls
-#define MF_FLOAT 0x4000 // allow moves to any height, no gravity
-#define MF_TELEPORT 0x8000 // don't cross lines or look at heights
-#define MF_MISSILE 0x10000 // don't hit same species, explode on block
-
-#define MF_DROPPED 0x20000 // dropped by a demon, not level spawned
-#define MF_SHADOW 0x40000 // use translucent draw (shadow demons / invis)
-#define MF_NOBLOOD 0x80000 // don't bleed when shot (use puff)
-#define MF_CORPSE 0x100000 // don't stop moving halfway off a step
-#define MF_INFLOAT 0x200000 // floating to a height for a move, don't
- // auto float to target's height
-
-#define MF_COUNTKILL 0x400000 // count towards intermission kill total
-#define MF_COUNTITEM 0x800000 // count towards intermission item total
-
-#define MF_SKULLFLY 0x1000000 // skull in flight
-#define MF_NOTDMATCH 0x2000000 // don't spawn in death match (key cards)
-
-#define MF_TRANSLATION 0xc000000 // if 0x4 0x8 or 0xc, use a translation
+#define MF_DROPOFF 0x400 // allow jumps from high places
+#define MF_PICKUP 0x800 // for players to pick up items
+#define MF_NOCLIP 0x1000 // player cheat
+#define MF_SLIDE 0x2000 // keep info about sliding along walls
+#define MF_FLOAT 0x4000 // allow moves to any height, no gravity
+#define MF_TELEPORT 0x8000 // don't cross lines or look at heights
+#define MF_MISSILE 0x10000 // don't hit same species, explode on block
+
+#define MF_DROPPED 0x20000 // dropped by a demon, not level spawned
+#define MF_SHADOW 0x40000 // use translucent draw (shadow demons / invis)
+#define MF_NOBLOOD 0x80000 // don't bleed when shot (use puff)
+#define MF_CORPSE 0x100000 // don't stop moving halfway off a step
+#define MF_INFLOAT 0x200000 // floating to a height for a move, don't
+ // auto float to target's height
+
+#define MF_COUNTKILL 0x400000 // count towards intermission kill total
+#define MF_COUNTITEM 0x800000 // count towards intermission item total
+
+#define MF_SKULLFLY 0x1000000 // skull in flight
+#define MF_NOTDMATCH 0x2000000 // don't spawn in death match (key cards)
+
+#define MF_TRANSLATION 0xc000000 // if 0x4 0x8 or 0xc, use a translation
#define MF_TRANSSHIFT 26 // table for player colormaps
// --- mobj.flags2 ---
-#define MF2_LOGRAV 0x00000001 // alternate gravity setting
-#define MF2_WINDTHRUST 0x00000002 // gets pushed around by the wind
- // specials
-#define MF2_FLOORBOUNCE 0x00000004 // bounces off the floor
-#define MF2_THRUGHOST 0x00000008 // missile will pass through ghosts
-#define MF2_FLY 0x00000010 // fly mode is active
-#define MF2_FOOTCLIP 0x00000020 // if feet are allowed to be clipped
-#define MF2_SPAWNFLOAT 0x00000040 // spawn random float z
-#define MF2_NOTELEPORT 0x00000080 // does not teleport
-#define MF2_RIP 0x00000100 // missile rips through solid
- // targets
-#define MF2_PUSHABLE 0x00000200 // can be pushed by other moving
- // mobjs
-#define MF2_SLIDE 0x00000400 // slides against walls
-#define MF2_ONMOBJ 0x00000800 // mobj is resting on top of another
- // mobj
-#define MF2_PASSMOBJ 0x00001000 // Enable z block checking. If on,
- // this flag will allow the mobj to
- // pass over/under other mobjs.
-#define MF2_CANNOTPUSH 0x00002000 // cannot push other pushable mobjs
-#define MF2_FEETARECLIPPED 0x00004000 // a mobj's feet are now being cut
-#define MF2_BOSS 0x00008000 // mobj is a major boss
-#define MF2_FIREDAMAGE 0x00010000 // does fire damage
-#define MF2_NODMGTHRUST 0x00020000 // does not thrust target when
- // damaging
-#define MF2_TELESTOMP 0x00040000 // mobj can stomp another
-#define MF2_FLOATBOB 0x00080000 // use float bobbing z movement
-#define MF2_DONTDRAW 0X00100000 // don't generate a vissprite
+#define MF2_LOGRAV 0x00000001 // alternate gravity setting
+#define MF2_WINDTHRUST 0x00000002 // gets pushed around by the wind
+ // specials
+#define MF2_FLOORBOUNCE 0x00000004 // bounces off the floor
+#define MF2_THRUGHOST 0x00000008 // missile will pass through ghosts
+#define MF2_FLY 0x00000010 // fly mode is active
+#define MF2_FOOTCLIP 0x00000020 // if feet are allowed to be clipped
+#define MF2_SPAWNFLOAT 0x00000040 // spawn random float z
+#define MF2_NOTELEPORT 0x00000080 // does not teleport
+#define MF2_RIP 0x00000100 // missile rips through solid
+ // targets
+#define MF2_PUSHABLE 0x00000200 // can be pushed by other moving
+ // mobjs
+#define MF2_SLIDE 0x00000400 // slides against walls
+#define MF2_ONMOBJ 0x00000800 // mobj is resting on top of another
+ // mobj
+#define MF2_PASSMOBJ 0x00001000 // Enable z block checking. If on,
+ // this flag will allow the mobj to
+ // pass over/under other mobjs.
+#define MF2_CANNOTPUSH 0x00002000 // cannot push other pushable mobjs
+#define MF2_FEETARECLIPPED 0x00004000 // a mobj's feet are now being cut
+#define MF2_BOSS 0x00008000 // mobj is a major boss
+#define MF2_FIREDAMAGE 0x00010000 // does fire damage
+#define MF2_NODMGTHRUST 0x00020000 // does not thrust target when
+ // damaging
+#define MF2_TELESTOMP 0x00040000 // mobj can stomp another
+#define MF2_FLOATBOB 0x00080000 // use float bobbing z movement
+#define MF2_DONTDRAW 0X00100000 // don't generate a vissprite
//=============================================================================
typedef enum
diff --git a/src/heretic/p_enemy.c b/src/heretic/p_enemy.c
index 05566a07..6ad8cff0 100644
--- a/src/heretic/p_enemy.c
+++ b/src/heretic/p_enemy.c
@@ -1917,7 +1917,7 @@ void A_HeadIceImpact(mobj_t * ice)
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 @@ 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);
}