summaryrefslogtreecommitdiff
path: root/src/heretic/p_enemy.c
diff options
context:
space:
mode:
authorSimon Howard2008-09-05 00:02:14 +0000
committerSimon Howard2008-09-05 00:02:14 +0000
commitc7ddc423f67236a99956960cf9fe89abf077839b (patch)
tree61322034e9d75f1c1a409d1e14ca21ee5c6025c2 /src/heretic/p_enemy.c
parent0774dce204c2c01622c59819e2a29590a1b50e46 (diff)
downloadchocolate-doom-c7ddc423f67236a99956960cf9fe89abf077839b.tar.gz
chocolate-doom-c7ddc423f67236a99956960cf9fe89abf077839b.tar.bz2
chocolate-doom-c7ddc423f67236a99956960cf9fe89abf077839b.zip
Reformat (beautify) Raven sources and add GPL headers.
Subversion-branch: /branches/raven-branch Subversion-revision: 1197
Diffstat (limited to 'src/heretic/p_enemy.c')
-rw-r--r--src/heretic/p_enemy.c3344
1 files changed, 1696 insertions, 1648 deletions
diff --git a/src/heretic/p_enemy.c b/src/heretic/p_enemy.c
index 196dd492..77ecff41 100644
--- a/src/heretic/p_enemy.c
+++ b/src/heretic/p_enemy.c
@@ -1,3 +1,25 @@
+// Emacs style mode select -*- C++ -*-
+//-----------------------------------------------------------------------------
+//
+// Copyright(C) 1993-1996 Id Software, Inc.
+// Copyright(C) 1993-2008 Raven Software
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+//-----------------------------------------------------------------------------
// P_enemy.c
@@ -13,9 +35,9 @@
typedef struct
{
- fixed_t x;
- fixed_t y;
- angle_t angle;
+ fixed_t x;
+ fixed_t y;
+ angle_t angle;
} BossSpot_t;
// Private Data
@@ -33,7 +55,7 @@ static BossSpot_t BossSpots[MAX_BOSS_SPOTS];
void P_InitMonsters(void)
{
- BossSpotCount = 0;
+ BossSpotCount = 0;
}
//----------------------------------------------------------------------------
@@ -44,14 +66,14 @@ void P_InitMonsters(void)
void P_AddBossSpot(fixed_t x, fixed_t y, angle_t angle)
{
- if(BossSpotCount == MAX_BOSS_SPOTS)
- {
- I_Error("Too many boss spots.");
- }
- BossSpots[BossSpotCount].x = x;
- BossSpots[BossSpotCount].y = y;
- BossSpots[BossSpotCount].angle = angle;
- BossSpotCount++;
+ if (BossSpotCount == MAX_BOSS_SPOTS)
+ {
+ I_Error("Too many boss spots.");
+ }
+ BossSpots[BossSpotCount].x = x;
+ BossSpots[BossSpotCount].y = y;
+ BossSpots[BossSpotCount].angle = angle;
+ BossSpotCount++;
}
//----------------------------------------------------------------------------
@@ -62,52 +84,53 @@ void P_AddBossSpot(fixed_t x, fixed_t y, angle_t angle)
mobj_t *soundtarget;
-void P_RecursiveSound(sector_t *sec, int soundblocks)
-{
- int i;
- line_t *check;
- sector_t *other;
-
- // Wake up all monsters in this sector
- if(sec->validcount == validcount && sec->soundtraversed <= soundblocks+1)
- { // Already flooded
- return;
- }
- sec->validcount = validcount;
- sec->soundtraversed = soundblocks+1;
- sec->soundtarget = soundtarget;
- for(i = 0; i < sec->linecount; i++)
- {
- check = sec->lines[i];
- if(!(check->flags&ML_TWOSIDED))
- {
- continue;
- }
- P_LineOpening(check);
- if(openrange <= 0)
- { // Closed door
- continue;
- }
- if(sides[check->sidenum[0]].sector == sec)
- {
- other = sides[check->sidenum[1]].sector;
- }
- else
- {
- other = sides[check->sidenum[0]].sector;
- }
- if(check->flags&ML_SOUNDBLOCK)
- {
- if(!soundblocks)
- {
- P_RecursiveSound(other, 1);
- }
- }
- else
- {
- P_RecursiveSound(other, soundblocks);
- }
- }
+void P_RecursiveSound(sector_t * sec, int soundblocks)
+{
+ int i;
+ line_t *check;
+ sector_t *other;
+
+ // Wake up all monsters in this sector
+ if (sec->validcount == validcount
+ && sec->soundtraversed <= soundblocks + 1)
+ { // Already flooded
+ return;
+ }
+ sec->validcount = validcount;
+ sec->soundtraversed = soundblocks + 1;
+ sec->soundtarget = soundtarget;
+ for (i = 0; i < sec->linecount; i++)
+ {
+ check = sec->lines[i];
+ if (!(check->flags & ML_TWOSIDED))
+ {
+ continue;
+ }
+ P_LineOpening(check);
+ if (openrange <= 0)
+ { // Closed door
+ continue;
+ }
+ if (sides[check->sidenum[0]].sector == sec)
+ {
+ other = sides[check->sidenum[1]].sector;
+ }
+ else
+ {
+ other = sides[check->sidenum[0]].sector;
+ }
+ if (check->flags & ML_SOUNDBLOCK)
+ {
+ if (!soundblocks)
+ {
+ P_RecursiveSound(other, 1);
+ }
+ }
+ else
+ {
+ P_RecursiveSound(other, soundblocks);
+ }
+ }
}
//----------------------------------------------------------------------------
@@ -119,11 +142,11 @@ void P_RecursiveSound(sector_t *sec, int soundblocks)
//
//----------------------------------------------------------------------------
-void P_NoiseAlert(mobj_t *target, mobj_t *emmiter)
+void P_NoiseAlert(mobj_t * target, mobj_t * emmiter)
{
- soundtarget = target;
- validcount++;
- P_RecursiveSound(emmiter->subsector->sector, 0);
+ soundtarget = target;
+ validcount++;
+ P_RecursiveSound(emmiter->subsector->sector, 0);
}
//----------------------------------------------------------------------------
@@ -132,34 +155,34 @@ void P_NoiseAlert(mobj_t *target, mobj_t *emmiter)
//
//----------------------------------------------------------------------------
-boolean P_CheckMeleeRange(mobj_t *actor)
+boolean P_CheckMeleeRange(mobj_t * actor)
{
- mobj_t *mo;
- fixed_t dist;
+ mobj_t *mo;
+ fixed_t dist;
- if(!actor->target)
- {
- return(false);
- }
- mo = actor->target;
- dist = P_AproxDistance(mo->x-actor->x, mo->y-actor->y);
- if(dist >= MELEERANGE)
- {
- return(false);
- }
- if(!P_CheckSight(actor, mo))
- {
- return(false);
- }
- if(mo->z > actor->z+actor->height)
- { // Target is higher than the attacker
- return(false);
- }
- else if(actor->z > mo->z+mo->height)
- { // Attacker is higher
- return(false);
- }
- return(true);
+ if (!actor->target)
+ {
+ return (false);
+ }
+ mo = actor->target;
+ dist = P_AproxDistance(mo->x - actor->x, mo->y - actor->y);
+ if (dist >= MELEERANGE)
+ {
+ return (false);
+ }
+ if (!P_CheckSight(actor, mo))
+ {
+ return (false);
+ }
+ if (mo->z > actor->z + actor->height)
+ { // Target is higher than the attacker
+ return (false);
+ }
+ else if (actor->z > mo->z + mo->height)
+ { // Attacker is higher
+ return (false);
+ }
+ return (true);
}
//----------------------------------------------------------------------------
@@ -168,42 +191,42 @@ boolean P_CheckMeleeRange(mobj_t *actor)
//
//----------------------------------------------------------------------------
-boolean P_CheckMissileRange(mobj_t *actor)
-{
- fixed_t dist;
-
- if(!P_CheckSight(actor, actor->target))
- {
- return(false);
- }
- if(actor->flags&MF_JUSTHIT)
- { // The target just hit the enemy, so fight back!
- actor->flags &= ~MF_JUSTHIT;
- return(true);
- }
- if(actor->reactiontime)
- { // Don't attack yet
- return(false);
- }
- dist = (P_AproxDistance(actor->x-actor->target->x,
- actor->y-actor->target->y)>>FRACBITS)-64;
- if(!actor->info->meleestate)
- { // No melee attack, so fire more frequently
- dist -= 128;
- }
- if(actor->type == MT_IMP)
- { // Imp's fly attack from far away
- dist >>= 1;
- }
- if(dist > 200)
- {
- dist = 200;
- }
- if(P_Random() < dist)
- {
- return(false);
- }
- return(true);
+boolean P_CheckMissileRange(mobj_t * actor)
+{
+ fixed_t dist;
+
+ if (!P_CheckSight(actor, actor->target))
+ {
+ return (false);
+ }
+ if (actor->flags & MF_JUSTHIT)
+ { // The target just hit the enemy, so fight back!
+ actor->flags &= ~MF_JUSTHIT;
+ return (true);
+ }
+ if (actor->reactiontime)
+ { // Don't attack yet
+ return (false);
+ }
+ dist = (P_AproxDistance(actor->x - actor->target->x,
+ actor->y - actor->target->y) >> FRACBITS) - 64;
+ if (!actor->info->meleestate)
+ { // No melee attack, so fire more frequently
+ dist -= 128;
+ }
+ if (actor->type == MT_IMP)
+ { // Imp's fly attack from far away
+ dist >>= 1;
+ }
+ if (dist > 200)
+ {
+ dist = 200;
+ }
+ if (P_Random() < dist)
+ {
+ return (false);
+ }
+ return (true);
}
/*
@@ -216,70 +239,72 @@ boolean P_CheckMissileRange(mobj_t *actor)
================
*/
-fixed_t xspeed[8] = {FRACUNIT,47000,0,-47000,-FRACUNIT,-47000,0,47000};
-fixed_t yspeed[8] = {0,47000,FRACUNIT,47000,0,-47000,-FRACUNIT,-47000};
+fixed_t xspeed[8] =
+ { FRACUNIT, 47000, 0, -47000, -FRACUNIT, -47000, 0, 47000 };
+fixed_t yspeed[8] =
+ { 0, 47000, FRACUNIT, 47000, 0, -47000, -FRACUNIT, -47000 };
#define MAXSPECIALCROSS 8
-extern line_t *spechit[MAXSPECIALCROSS];
-extern int numspechit;
-
-boolean P_Move(mobj_t *actor)
-{
- fixed_t tryx, tryy;
- line_t *ld;
- boolean good;
-
- if(actor->movedir == DI_NODIR)
- {
- return(false);
- }
- tryx = actor->x+actor->info->speed*xspeed[actor->movedir];
- tryy = actor->y+actor->info->speed*yspeed[actor->movedir];
- if(!P_TryMove(actor, tryx, tryy))
- { // open any specials
- if(actor->flags&MF_FLOAT && floatok)
- { // must adjust height
- if(actor->z < tmfloorz)
- {
- actor->z += FLOATSPEED;
- }
- else
- {
- actor->z -= FLOATSPEED;
- }
- actor->flags |= MF_INFLOAT;
- return(true);
- }
- if(!numspechit)
- {
- return false;
- }
- actor->movedir = DI_NODIR;
- good = false;
- while(numspechit--)
- {
- ld = spechit[numspechit];
- // if the special isn't a door that can be opened, return false
- if(P_UseSpecialLine(actor, ld))
- {
- good = true;
- }
- }
- return(good);
- }
- else
- {
- actor->flags &= ~MF_INFLOAT;
- }
- if(!(actor->flags&MF_FLOAT))
- {
- if(actor->z > actor->floorz)
- {
- P_HitFloor(actor);
- }
- actor->z = actor->floorz;
- }
- return(true);
+extern line_t *spechit[MAXSPECIALCROSS];
+extern int numspechit;
+
+boolean P_Move(mobj_t * actor)
+{
+ fixed_t tryx, tryy;
+ line_t *ld;
+ boolean good;
+
+ if (actor->movedir == DI_NODIR)
+ {
+ return (false);
+ }
+ tryx = actor->x + actor->info->speed * xspeed[actor->movedir];
+ tryy = actor->y + actor->info->speed * yspeed[actor->movedir];
+ if (!P_TryMove(actor, tryx, tryy))
+ { // open any specials
+ if (actor->flags & MF_FLOAT && floatok)
+ { // must adjust height
+ if (actor->z < tmfloorz)
+ {
+ actor->z += FLOATSPEED;
+ }
+ else
+ {
+ actor->z -= FLOATSPEED;
+ }
+ actor->flags |= MF_INFLOAT;
+ return (true);
+ }
+ if (!numspechit)
+ {
+ return false;
+ }
+ actor->movedir = DI_NODIR;
+ good = false;
+ while (numspechit--)
+ {
+ ld = spechit[numspechit];
+ // if the special isn't a door that can be opened, return false
+ if (P_UseSpecialLine(actor, ld))
+ {
+ good = true;
+ }
+ }
+ return (good);
+ }
+ else
+ {
+ actor->flags &= ~MF_INFLOAT;
+ }
+ if (!(actor->flags & MF_FLOAT))
+ {
+ if (actor->z > actor->floorz)
+ {
+ P_HitFloor(actor);
+ }
+ actor->z = actor->floorz;
+ }
+ return (true);
}
//----------------------------------------------------------------------------
@@ -293,14 +318,14 @@ boolean P_Move(mobj_t *actor)
//
//----------------------------------------------------------------------------
-boolean P_TryWalk(mobj_t *actor)
+boolean P_TryWalk(mobj_t * actor)
{
- if(!P_Move(actor))
- {
- return(false);
- }
- actor->movecount = P_Random()&15;
- return(true);
+ if (!P_Move(actor))
+ {
+ return (false);
+ }
+ actor->movecount = P_Random() & 15;
+ return (true);
}
/*
@@ -312,115 +337,117 @@ boolean P_TryWalk(mobj_t *actor)
*/
dirtype_t opposite[] =
-{DI_WEST, DI_SOUTHWEST, DI_SOUTH, DI_SOUTHEAST, DI_EAST, DI_NORTHEAST,
-DI_NORTH, DI_NORTHWEST, DI_NODIR};
-
-dirtype_t diags[] = {DI_NORTHWEST,DI_NORTHEAST,DI_SOUTHWEST,DI_SOUTHEAST};
-
-void P_NewChaseDir (mobj_t *actor)
-{
- fixed_t deltax,deltay;
- dirtype_t d[3];
- dirtype_t tdir, olddir, turnaround;
-
- if (!actor->target)
- I_Error ("P_NewChaseDir: called with no target");
-
- olddir = actor->movedir;
- turnaround=opposite[olddir];
-
- deltax = actor->target->x - actor->x;
- deltay = actor->target->y - actor->y;
- if (deltax>10*FRACUNIT)
- d[1]= DI_EAST;
- else if (deltax<-10*FRACUNIT)
- d[1]= DI_WEST;
- else
- d[1]=DI_NODIR;
- if (deltay<-10*FRACUNIT)
- d[2]= DI_SOUTH;
- else if (deltay>10*FRACUNIT)
- d[2]= DI_NORTH;
- else
- d[2]=DI_NODIR;
+ { DI_WEST, DI_SOUTHWEST, DI_SOUTH, DI_SOUTHEAST, DI_EAST, DI_NORTHEAST,
+ DI_NORTH, DI_NORTHWEST, DI_NODIR
+};
+
+dirtype_t diags[] =
+ { DI_NORTHWEST, DI_NORTHEAST, DI_SOUTHWEST, DI_SOUTHEAST };
+
+void P_NewChaseDir(mobj_t * actor)
+{
+ fixed_t deltax, deltay;
+ dirtype_t d[3];
+ dirtype_t tdir, olddir, turnaround;
+
+ if (!actor->target)
+ I_Error("P_NewChaseDir: called with no target");
+
+ olddir = actor->movedir;
+ turnaround = opposite[olddir];
+
+ deltax = actor->target->x - actor->x;
+ deltay = actor->target->y - actor->y;
+ if (deltax > 10 * FRACUNIT)
+ d[1] = DI_EAST;
+ else if (deltax < -10 * FRACUNIT)
+ d[1] = DI_WEST;
+ else
+ d[1] = DI_NODIR;
+ if (deltay < -10 * FRACUNIT)
+ d[2] = DI_SOUTH;
+ else if (deltay > 10 * FRACUNIT)
+ d[2] = DI_NORTH;
+ else
+ d[2] = DI_NODIR;
// try direct route
- if (d[1] != DI_NODIR && d[2] != DI_NODIR)
- {
- actor->movedir = diags[((deltay<0)<<1)+(deltax>0)];
- if (actor->movedir != turnaround && P_TryWalk(actor))
- return;
- }
+ if (d[1] != DI_NODIR && d[2] != DI_NODIR)
+ {
+ actor->movedir = diags[((deltay < 0) << 1) + (deltax > 0)];
+ if (actor->movedir != turnaround && P_TryWalk(actor))
+ return;
+ }
// try other directions
- if (P_Random() > 200 || abs(deltay)>abs(deltax))
- {
- tdir=d[1];
- d[1]=d[2];
- d[2]=tdir;
- }
-
- if (d[1]==turnaround)
- d[1]=DI_NODIR;
- if (d[2]==turnaround)
- d[2]=DI_NODIR;
-
- if (d[1]!=DI_NODIR)
- {
- actor->movedir = d[1];
- if (P_TryWalk(actor))
- return; /*either moved forward or attacked*/
- }
-
- if (d[2]!=DI_NODIR)
- {
- actor->movedir =d[2];
- if (P_TryWalk(actor))
- return;
- }
+ if (P_Random() > 200 || abs(deltay) > abs(deltax))
+ {
+ tdir = d[1];
+ d[1] = d[2];
+ d[2] = tdir;
+ }
+
+ if (d[1] == turnaround)
+ d[1] = DI_NODIR;
+ if (d[2] == turnaround)
+ d[2] = DI_NODIR;
+
+ if (d[1] != DI_NODIR)
+ {
+ actor->movedir = d[1];
+ if (P_TryWalk(actor))
+ return; /*either moved forward or attacked */
+ }
+
+ if (d[2] != DI_NODIR)
+ {
+ actor->movedir = d[2];
+ if (P_TryWalk(actor))
+ return;
+ }
/* there is no direct path to the player, so pick another direction */
- if (olddir!=DI_NODIR)
- {
- actor->movedir =olddir;
- if (P_TryWalk(actor))
- return;
- }
-
- if (P_Random()&1) /*randomly determine direction of search*/
- {
- for (tdir=DI_EAST ; tdir<=DI_SOUTHEAST ; tdir++)
- {
- if (tdir!=turnaround)
- {
- actor->movedir =tdir;
- if ( P_TryWalk(actor) )
- return;
- }
- }
- }
- else
- {
- for (tdir=DI_SOUTHEAST ; tdir >= DI_EAST;tdir--)
- {
- if (tdir!=turnaround)
- {
- actor->movedir =tdir;
- if ( P_TryWalk(actor) )
- return;
- }
- }
- }
-
- if (turnaround != DI_NODIR)
- {
- actor->movedir =turnaround;
- if ( P_TryWalk(actor) )
- return;
- }
-
- actor->movedir = DI_NODIR; // can't move
+ if (olddir != DI_NODIR)
+ {
+ actor->movedir = olddir;
+ if (P_TryWalk(actor))
+ return;
+ }
+
+ if (P_Random() & 1) /*randomly determine direction of search */
+ {
+ for (tdir = DI_EAST; tdir <= DI_SOUTHEAST; tdir++)
+ {
+ if (tdir != turnaround)
+ {
+ actor->movedir = tdir;
+ if (P_TryWalk(actor))
+ return;
+ }
+ }
+ }
+ else
+ {
+ for (tdir = DI_SOUTHEAST; tdir >= DI_EAST; tdir--)
+ {
+ if (tdir != turnaround)
+ {
+ actor->movedir = tdir;
+ if (P_TryWalk(actor))
+ return;
+ }
+ }
+ }
+
+ if (turnaround != DI_NODIR)
+ {
+ actor->movedir = turnaround;
+ if (P_TryWalk(actor))
+ return;
+ }
+
+ actor->movedir = DI_NODIR; // can't move
}
//---------------------------------------------------------------------------
@@ -432,50 +459,50 @@ void P_NewChaseDir (mobj_t *actor)
#define MONS_LOOK_RANGE (20*64*FRACUNIT)
#define MONS_LOOK_LIMIT 64
-boolean P_LookForMonsters(mobj_t *actor)
-{
- int count;
- mobj_t *mo;
- thinker_t *think;
-
- if(!P_CheckSight(players[0].mo, actor))
- { // Player can't see monster
- return(false);
- }
- count = 0;
- for(think = thinkercap.next; think != &thinkercap; think = think->next)
- {
- if(think->function != P_MobjThinker)
- { // Not a mobj thinker
- continue;
- }
- mo = (mobj_t *)think;
- if(!(mo->flags&MF_COUNTKILL) || (mo == actor) || (mo->health <= 0))
- { // Not a valid monster
- continue;
- }
- if(P_AproxDistance(actor->x-mo->x, actor->y-mo->y)
- > MONS_LOOK_RANGE)
- { // Out of range
- continue;
- }
- if(P_Random() < 16)
- { // Skip
- continue;
- }
- if(count++ > MONS_LOOK_LIMIT)
- { // Stop searching
- return(false);
- }
- if(!P_CheckSight(actor, mo))
- { // Out of sight
- continue;
- }
- // Found a target monster
- actor->target = mo;
- return(true);
- }
- return(false);
+boolean P_LookForMonsters(mobj_t * actor)
+{
+ int count;
+ mobj_t *mo;
+ thinker_t *think;
+
+ if (!P_CheckSight(players[0].mo, actor))
+ { // Player can't see monster
+ return (false);
+ }
+ count = 0;
+ for (think = thinkercap.next; think != &thinkercap; think = think->next)
+ {
+ if (think->function != P_MobjThinker)
+ { // Not a mobj thinker
+ continue;
+ }
+ mo = (mobj_t *) think;
+ if (!(mo->flags & MF_COUNTKILL) || (mo == actor) || (mo->health <= 0))
+ { // Not a valid monster
+ continue;
+ }
+ if (P_AproxDistance(actor->x - mo->x, actor->y - mo->y)
+ > MONS_LOOK_RANGE)
+ { // Out of range
+ continue;
+ }
+ if (P_Random() < 16)
+ { // Skip
+ continue;
+ }
+ if (count++ > MONS_LOOK_LIMIT)
+ { // Stop searching
+ return (false);
+ }
+ if (!P_CheckSight(actor, mo))
+ { // Out of sight
+ continue;
+ }
+ // Found a target monster
+ actor->target = mo;
+ return (true);
+ }
+ return (false);
}
/*
@@ -488,67 +515,67 @@ boolean P_LookForMonsters(mobj_t *actor)
================
*/
-boolean P_LookForPlayers(mobj_t *actor, boolean allaround)
-{
- int c;
- int stop;
- player_t *player;
- sector_t *sector;
- angle_t an;
- fixed_t dist;
-
- if(!netgame && players[0].health <= 0)
- { // Single player game and player is dead, look for monsters
- return(P_LookForMonsters(actor));
- }
- sector = actor->subsector->sector;
- c = 0;
- stop = (actor->lastlook-1)&3;
- for( ; ; actor->lastlook = (actor->lastlook+1)&3 )
- {
- if (!playeringame[actor->lastlook])
- continue;
-
- if (c++ == 2 || actor->lastlook == stop)
- return false; // done looking
-
- player = &players[actor->lastlook];
- if (player->health <= 0)
- continue; // dead
- if (!P_CheckSight (actor, player->mo))
- continue; // out of sight
-
- if (!allaround)
- {
- an = R_PointToAngle2 (actor->x, actor->y,
- player->mo->x, player->mo->y) - actor->angle;
- if (an > ANG90 && an < ANG270)
- {
- dist = P_AproxDistance (player->mo->x - actor->x,
- player->mo->y - actor->y);
- // if real close, react anyway
- if (dist > MELEERANGE)
- continue; // behind back
- }
- }
- if(player->mo->flags&MF_SHADOW)
- { // Player is invisible
- if((P_AproxDistance(player->mo->x-actor->x,
- player->mo->y-actor->y) > 2*MELEERANGE)
- && P_AproxDistance(player->mo->momx, player->mo->momy)
- < 5*FRACUNIT)
- { // Player is sneaking - can't detect
- return(false);
- }
- if(P_Random() < 225)
- { // Player isn't sneaking, but still didn't detect
- return(false);
- }
- }
- actor->target = player->mo;
- return(true);
- }
- return(false);
+boolean P_LookForPlayers(mobj_t * actor, boolean allaround)
+{
+ int c;
+ int stop;
+ player_t *player;
+ sector_t *sector;
+ angle_t an;
+ fixed_t dist;
+
+ if (!netgame && players[0].health <= 0)
+ { // Single player game and player is dead, look for monsters
+ return (P_LookForMonsters(actor));
+ }
+ sector = actor->subsector->sector;
+ c = 0;
+ stop = (actor->lastlook - 1) & 3;
+ for (;; actor->lastlook = (actor->lastlook + 1) & 3)
+ {
+ if (!playeringame[actor->lastlook])
+ continue;
+
+ if (c++ == 2 || actor->lastlook == stop)
+ return false; // done looking
+
+ player = &players[actor->lastlook];
+ if (player->health <= 0)
+ continue; // dead
+ if (!P_CheckSight(actor, player->mo))
+ continue; // out of sight
+
+ if (!allaround)
+ {
+ an = R_PointToAngle2(actor->x, actor->y,
+ player->mo->x, player->mo->y) - actor->angle;
+ if (an > ANG90 && an < ANG270)
+ {
+ dist = P_AproxDistance(player->mo->x - actor->x,
+ player->mo->y - actor->y);
+ // if real close, react anyway
+ if (dist > MELEERANGE)
+ continue; // behind back
+ }
+ }
+ if (player->mo->flags & MF_SHADOW)
+ { // Player is invisible
+ if ((P_AproxDistance(player->mo->x - actor->x,
+ player->mo->y - actor->y) > 2 * MELEERANGE)
+ && P_AproxDistance(player->mo->momx, player->mo->momy)
+ < 5 * FRACUNIT)
+ { // Player is sneaking - can't detect
+ return (false);
+ }
+ if (P_Random() < 225)
+ { // Player isn't sneaking, but still didn't detect
+ return (false);
+ }
+ }
+ actor->target = player->mo;
+ return (true);
+ }
+ return (false);
}
/*
@@ -569,34 +596,34 @@ boolean P_LookForPlayers(mobj_t *actor, boolean allaround)
==============
*/
-void A_Look (mobj_t *actor)
+void A_Look(mobj_t * actor)
{
- mobj_t *targ;
-
- actor->threshold = 0; // any shot will wake up
- targ = actor->subsector->sector->soundtarget;
- if (targ && (targ->flags & MF_SHOOTABLE) )
- {
- actor->target = targ;
- if ( actor->flags & MF_AMBUSH )
- {
- if (P_CheckSight (actor, actor->target))
- goto seeyou;
- }
- else
- goto seeyou;
- }
-
-
- if (!P_LookForPlayers (actor, false) )
- return;
-
+ mobj_t *targ;
+
+ actor->threshold = 0; // any shot will wake up
+ targ = actor->subsector->sector->soundtarget;
+ if (targ && (targ->flags & MF_SHOOTABLE))
+ {
+ actor->target = targ;
+ if (actor->flags & MF_AMBUSH)
+ {
+ if (P_CheckSight(actor, actor->target))
+ goto seeyou;
+ }
+ else
+ goto seeyou;
+ }
+
+
+ if (!P_LookForPlayers(actor, false))
+ return;
+
// go into chase state
-seeyou:
- if (actor->info->seesound)
- {
- int sound;
-
+ seeyou:
+ if (actor->info->seesound)
+ {
+ int sound;
+
/*
switch (actor->info->seesound)
{
@@ -614,17 +641,17 @@ seeyou:
break;
}
*/
- sound = actor->info->seesound;
- if(actor->flags2&MF2_BOSS)
- { // Full volume
- S_StartSound(NULL, sound);
- }
- else
- {
- S_StartSound(actor, sound);
- }
- }
- P_SetMobjState(actor, actor->info->seestate);
+ sound = actor->info->seesound;
+ if (actor->flags2 & MF2_BOSS)
+ { // Full volume
+ S_StartSound(NULL, sound);
+ }
+ else
+ {
+ S_StartSound(actor, sound);
+ }
+ }
+ P_SetMobjState(actor, actor->info->seestate);
}
@@ -638,129 +665,129 @@ seeyou:
==============
*/
-void A_Chase(mobj_t *actor)
+void A_Chase(mobj_t * actor)
{
- int delta;
+ int delta;
- if(actor->reactiontime)
- {
- actor->reactiontime--;
- }
+ if (actor->reactiontime)
+ {
+ actor->reactiontime--;
+ }
- // Modify target threshold
- if(actor->threshold)
- {
- actor->threshold--;
- }
+ // Modify target threshold
+ if (actor->threshold)
+ {
+ actor->threshold--;
+ }
- if(gameskill == sk_nightmare)
- { // Monsters move faster in nightmare mode
- actor->tics -= actor->tics/2;
- if(actor->tics < 3)
- {
- actor->tics = 3;
- }
- }
+ if (gameskill == sk_nightmare)
+ { // Monsters move faster in nightmare mode
+ actor->tics -= actor->tics / 2;
+ if (actor->tics < 3)
+ {
+ actor->tics = 3;
+ }
+ }
//
// turn towards movement direction if not there yet
//
- if(actor->movedir < 8)
- {
- actor->angle &= (7<<29);
- delta = actor->angle-(actor->movedir << 29);
- if(delta > 0)
- {
- actor->angle -= ANG90/2;
- }
- else if(delta < 0)
- {
- actor->angle += ANG90/2;
- }
- }
+ if (actor->movedir < 8)
+ {
+ actor->angle &= (7 << 29);
+ delta = actor->angle - (actor->movedir << 29);
+ if (delta > 0)
+ {
+ actor->angle -= ANG90 / 2;
+ }
+ else if (delta < 0)
+ {
+ actor->angle += ANG90 / 2;
+ }
+ }
+
+ if (!actor->target || !(actor->target->flags & MF_SHOOTABLE))
+ { // look for a new target
+ if (P_LookForPlayers(actor, true))
+ { // got a new target
+ return;
+ }
+ P_SetMobjState(actor, actor->info->spawnstate);
+ return;
+ }
- if(!actor->target || !(actor->target->flags&MF_SHOOTABLE))
- { // look for a new target
- if(P_LookForPlayers(actor, true))
- { // got a new target
- return;
- }
- P_SetMobjState(actor, actor->info->spawnstate);
- return;
- }
-
//
// don't attack twice in a row
//
- if(actor->flags & MF_JUSTATTACKED)
- {
- actor->flags &= ~MF_JUSTATTACKED;
- if (gameskill != sk_nightmare)
- P_NewChaseDir (actor);
- return;
- }
-
+ if (actor->flags & MF_JUSTATTACKED)
+ {
+ actor->flags &= ~MF_JUSTATTACKED;
+ if (gameskill != sk_nightmare)
+ P_NewChaseDir(actor);
+ return;
+ }
+
//
// check for melee attack
-//
- if (actor->info->meleestate && P_CheckMeleeRange (actor))
- {
- if (actor->info->attacksound)
- S_StartSound (actor, actor->info->attacksound);
- P_SetMobjState (actor, actor->info->meleestate);
- return;
- }
+//
+ if (actor->info->meleestate && P_CheckMeleeRange(actor))
+ {
+ if (actor->info->attacksound)
+ S_StartSound(actor, actor->info->attacksound);
+ P_SetMobjState(actor, actor->info->meleestate);
+ return;
+ }
//
// check for missile attack
//
- if (actor->info->missilestate)
- {
- if (gameskill < sk_nightmare && actor->movecount)
- goto nomissile;
- if (!P_CheckMissileRange (actor))
- goto nomissile;
- P_SetMobjState (actor, actor->info->missilestate);
- actor->flags |= MF_JUSTATTACKED;
- return;
- }
-nomissile:
+ if (actor->info->missilestate)
+ {
+ if (gameskill < sk_nightmare && actor->movecount)
+ goto nomissile;
+ if (!P_CheckMissileRange(actor))
+ goto nomissile;
+ P_SetMobjState(actor, actor->info->missilestate);
+ actor->flags |= MF_JUSTATTACKED;
+ return;
+ }
+ nomissile:
//
// possibly choose another target
//
- if (netgame && !actor->threshold && !P_CheckSight (actor, actor->target) )
- {
- if (P_LookForPlayers(actor,true))
- return; // got a new target
- }
-
+ if (netgame && !actor->threshold && !P_CheckSight(actor, actor->target))
+ {
+ if (P_LookForPlayers(actor, true))
+ return; // got a new target
+ }
+
//
// chase towards player
//
- if (--actor->movecount<0 || !P_Move (actor))
- {
- P_NewChaseDir (actor);
- }
+ if (--actor->movecount < 0 || !P_Move(actor))
+ {
+ P_NewChaseDir(actor);
+ }
//
// make active sound
//
- if(actor->info->activesound && P_Random() < 3)
- {
- if(actor->type == MT_WIZARD && P_Random() < 128)
- {
- S_StartSound(actor, actor->info->seesound);
- }
- else if(actor->type == MT_SORCERER2)
- {
- S_StartSound(NULL, actor->info->activesound);
- }
- else
- {
- S_StartSound(actor, actor->info->activesound);
- }
- }
+ if (actor->info->activesound && P_Random() < 3)
+ {
+ if (actor->type == MT_WIZARD && P_Random() < 128)
+ {
+ S_StartSound(actor, actor->info->seesound);
+ }
+ else if (actor->type == MT_SORCERER2)
+ {
+ S_StartSound(NULL, actor->info->activesound);
+ }
+ else
+ {
+ S_StartSound(actor, actor->info->activesound);
+ }
+ }
}
//----------------------------------------------------------------------------
@@ -769,19 +796,19 @@ nomissile:
//
//----------------------------------------------------------------------------
-void A_FaceTarget(mobj_t *actor)
+void A_FaceTarget(mobj_t * actor)
{
- if(!actor->target)
- {
- return;
- }
- actor->flags &= ~MF_AMBUSH;
- actor->angle = R_PointToAngle2(actor->x, actor->y, actor->target->x,
- actor->target->y);
- if(actor->target->flags&MF_SHADOW)
- { // Target is a ghost
- actor->angle += (P_Random()-P_Random())<<21;
- }
+ if (!actor->target)
+ {
+ return;
+ }
+ actor->flags &= ~MF_AMBUSH;
+ actor->angle = R_PointToAngle2(actor->x, actor->y, actor->target->x,
+ actor->target->y);
+ if (actor->target->flags & MF_SHADOW)
+ { // Target is a ghost
+ actor->angle += (P_Random() - P_Random()) << 21;
+ }
}
//----------------------------------------------------------------------------
@@ -790,12 +817,12 @@ void A_FaceTarget(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_Pain(mobj_t *actor)
+void A_Pain(mobj_t * actor)
{
- if(actor->info->painsound)
- {
- S_StartSound(actor, actor->info->painsound);
- }
+ if (actor->info->painsound)
+ {
+ S_StartSound(actor, actor->info->painsound);
+ }
}
//----------------------------------------------------------------------------
@@ -804,15 +831,16 @@ void A_Pain(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_DripBlood(mobj_t *actor)
+void A_DripBlood(mobj_t * actor)
{
- mobj_t *mo;
+ mobj_t *mo;
- mo = P_SpawnMobj(actor->x+((P_Random()-P_Random())<<11),
- actor->y+((P_Random()-P_Random())<<11), actor->z, MT_BLOOD);
- mo->momx = (P_Random()-P_Random())<<10;
- mo->momy = (P_Random()-P_Random())<<10;
- mo->flags2 |= MF2_LOGRAV;
+ mo = P_SpawnMobj(actor->x + ((P_Random() - P_Random()) << 11),
+ actor->y + ((P_Random() - P_Random()) << 11), actor->z,
+ MT_BLOOD);
+ mo->momx = (P_Random() - P_Random()) << 10;
+ mo->momy = (P_Random() - P_Random()) << 10;
+ mo->flags2 |= MF2_LOGRAV;
}
//----------------------------------------------------------------------------
@@ -821,27 +849,27 @@ void A_DripBlood(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_KnightAttack(mobj_t *actor)
+void A_KnightAttack(mobj_t * actor)
{
- if(!actor->target)
- {
- return;
- }
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, HITDICE(3));
- S_StartSound(actor, sfx_kgtat2);
- return;
- }
- // Throw axe
- S_StartSound(actor, actor->info->attacksound);
- if(actor->type == MT_KNIGHTGHOST || P_Random() < 40)
- { // Red axe
- P_SpawnMissile(actor, actor->target, MT_REDAXE);
- return;
- }
- // Green axe
- P_SpawnMissile(actor, actor->target, MT_KNIGHTAXE);
+ if (!actor->target)
+ {
+ return;
+ }
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, HITDICE(3));
+ S_StartSound(actor, sfx_kgtat2);
+ return;
+ }
+ // Throw axe
+ S_StartSound(actor, actor->info->attacksound);
+ if (actor->type == MT_KNIGHTGHOST || P_Random() < 40)
+ { // Red axe
+ P_SpawnMissile(actor, actor->target, MT_REDAXE);
+ return;
+ }
+ // Green axe
+ P_SpawnMissile(actor, actor->target, MT_KNIGHTAXE);
}
//----------------------------------------------------------------------------
@@ -850,22 +878,22 @@ void A_KnightAttack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ImpExplode(mobj_t *actor)
+void A_ImpExplode(mobj_t * actor)
{
- mobj_t *mo;
+ mobj_t *mo;
- mo = P_SpawnMobj(actor->x, actor->y, actor->z, MT_IMPCHUNK1);
- mo->momx = (P_Random() - P_Random ())<<10;
- mo->momy = (P_Random() - P_Random ())<<10;
- mo->momz = 9*FRACUNIT;
- mo = P_SpawnMobj(actor->x, actor->y, actor->z, MT_IMPCHUNK2);
- mo->momx = (P_Random() - P_Random ())<<10;
- mo->momy = (P_Random() - P_Random ())<<10;
- mo->momz = 9*FRACUNIT;
- if(actor->special1 == 666)
- { // Extreme death crash
- P_SetMobjState(actor, S_IMP_XCRASH1);
- }
+ mo = P_SpawnMobj(actor->x, actor->y, actor->z, MT_IMPCHUNK1);
+ mo->momx = (P_Random() - P_Random()) << 10;
+ mo->momy = (P_Random() - P_Random()) << 10;
+ mo->momz = 9 * FRACUNIT;
+ mo = P_SpawnMobj(actor->x, actor->y, actor->z, MT_IMPCHUNK2);
+ mo->momx = (P_Random() - P_Random()) << 10;
+ mo->momy = (P_Random() - P_Random()) << 10;
+ mo->momz = 9 * FRACUNIT;
+ if (actor->special1 == 666)
+ { // Extreme death crash
+ P_SetMobjState(actor, S_IMP_XCRASH1);
+ }
}
//----------------------------------------------------------------------------
@@ -874,14 +902,14 @@ void A_ImpExplode(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_BeastPuff(mobj_t *actor)
+void A_BeastPuff(mobj_t * actor)
{
- if(P_Random() > 64)
- {
- P_SpawnMobj(actor->x+((P_Random()-P_Random())<<10),
- actor->y+((P_Random()-P_Random())<<10),
- actor->z+((P_Random()-P_Random())<<10), MT_PUFFY);
- }
+ if (P_Random() > 64)
+ {
+ P_SpawnMobj(actor->x + ((P_Random() - P_Random()) << 10),
+ actor->y + ((P_Random() - P_Random()) << 10),
+ actor->z + ((P_Random() - P_Random()) << 10), MT_PUFFY);
+ }
}
//----------------------------------------------------------------------------
@@ -890,17 +918,17 @@ void A_BeastPuff(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ImpMeAttack(mobj_t *actor)
+void A_ImpMeAttack(mobj_t * actor)
{
- if(!actor->target)
- {
- return;
- }
- S_StartSound(actor, actor->info->attacksound);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, 5+(P_Random()&7));
- }
+ if (!actor->target)
+ {
+ return;
+ }
+ S_StartSound(actor, actor->info->attacksound);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, 5 + (P_Random() & 7));
+ }
}
//----------------------------------------------------------------------------
@@ -909,31 +937,31 @@ void A_ImpMeAttack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ImpMsAttack(mobj_t *actor)
+void A_ImpMsAttack(mobj_t * actor)
{
- mobj_t *dest;
- angle_t an;
- int dist;
+ mobj_t *dest;
+ angle_t an;
+ int dist;
- if(!actor->target || P_Random() > 64)
- {
- P_SetMobjState(actor, actor->info->seestate);
- return;
- }
- dest = actor->target;
- actor->flags |= MF_SKULLFLY;
- S_StartSound(actor, actor->info->attacksound);
- A_FaceTarget(actor);
- an = actor->angle >> ANGLETOFINESHIFT;
- actor->momx = FixedMul(12*FRACUNIT, finecosine[an]);
- actor->momy = FixedMul(12*FRACUNIT, finesine[an]);
- dist = P_AproxDistance(dest->x-actor->x, dest->y-actor->y);
- dist = dist/(12*FRACUNIT);
- if(dist < 1)
- {
- dist = 1;
- }
- actor->momz = (dest->z+(dest->height>>1)-actor->z)/dist;
+ if (!actor->target || P_Random() > 64)
+ {
+ P_SetMobjState(actor, actor->info->seestate);
+ return;
+ }
+ dest = actor->target;
+ actor->flags |= MF_SKULLFLY;
+ S_StartSound(actor, actor->info->attacksound);
+ A_FaceTarget(actor);
+ an = actor->angle >> ANGLETOFINESHIFT;
+ actor->momx = FixedMul(12 * FRACUNIT, finecosine[an]);
+ actor->momy = FixedMul(12 * FRACUNIT, finesine[an]);
+ dist = P_AproxDistance(dest->x - actor->x, dest->y - actor->y);
+ dist = dist / (12 * FRACUNIT);
+ if (dist < 1)
+ {
+ dist = 1;
+ }
+ actor->momz = (dest->z + (dest->height >> 1) - actor->z) / dist;
}
//----------------------------------------------------------------------------
@@ -944,19 +972,19 @@ void A_ImpMsAttack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ImpMsAttack2(mobj_t *actor)
+void A_ImpMsAttack2(mobj_t * actor)
{
- if(!actor->target)
- {
- return;
- }
- S_StartSound(actor, actor->info->attacksound);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, 5+(P_Random()&7));
- return;
- }
- P_SpawnMissile(actor, actor->target, MT_IMPBALL);
+ if (!actor->target)
+ {
+ return;
+ }
+ S_StartSound(actor, actor->info->attacksound);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, 5 + (P_Random() & 7));
+ return;
+ }
+ P_SpawnMissile(actor, actor->target, MT_IMPBALL);
}
//----------------------------------------------------------------------------
@@ -965,14 +993,14 @@ void A_ImpMsAttack2(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ImpDeath(mobj_t *actor)
+void A_ImpDeath(mobj_t * actor)
{
- actor->flags &= ~MF_SOLID;
- actor->flags2 |= MF2_FOOTCLIP;
- if(actor->z <= actor->floorz)
- {
- P_SetMobjState(actor, S_IMP_CRASH1);
- }
+ actor->flags &= ~MF_SOLID;
+ actor->flags2 |= MF2_FOOTCLIP;
+ if (actor->z <= actor->floorz)
+ {
+ P_SetMobjState(actor, S_IMP_CRASH1);
+ }
}
//----------------------------------------------------------------------------
@@ -981,12 +1009,12 @@ void A_ImpDeath(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ImpXDeath1(mobj_t *actor)
+void A_ImpXDeath1(mobj_t * actor)
{
- actor->flags &= ~MF_SOLID;
- actor->flags |= MF_NOGRAVITY;
- actor->flags2 |= MF2_FOOTCLIP;
- actor->special1 = 666; // Flag the crash routine
+ actor->flags &= ~MF_SOLID;
+ actor->flags |= MF_NOGRAVITY;
+ actor->flags2 |= MF2_FOOTCLIP;
+ actor->special1 = 666; // Flag the crash routine
}
//----------------------------------------------------------------------------
@@ -995,13 +1023,13 @@ void A_ImpXDeath1(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ImpXDeath2(mobj_t *actor)
+void A_ImpXDeath2(mobj_t * actor)
{
- actor->flags &= ~MF_NOGRAVITY;
- if(actor->z <= actor->floorz)
- {
- P_SetMobjState(actor, S_IMP_CRASH1);
- }
+ actor->flags &= ~MF_NOGRAVITY;
+ if (actor->z <= actor->floorz)
+ {
+ P_SetMobjState(actor, S_IMP_CRASH1);
+ }
}
//----------------------------------------------------------------------------
@@ -1012,45 +1040,45 @@ void A_ImpXDeath2(mobj_t *actor)
//
//----------------------------------------------------------------------------
-boolean P_UpdateChicken(mobj_t *actor, int tics)
-{
- mobj_t *fog;
- fixed_t x;
- fixed_t y;
- fixed_t z;
- mobjtype_t moType;
- mobj_t *mo;
- mobj_t oldChicken;
-
- actor->special1 -= tics;
- if(actor->special1 > 0)
- {
- return(false);
- }
- moType = actor->special2;
- x = actor->x;
- y = actor->y;
- z = actor->z;
- oldChicken = *actor;
- P_SetMobjState(actor, S_FREETARGMOBJ);
- mo = P_SpawnMobj(x, y, z, moType);
- if(P_TestMobjLocation(mo) == false)
- { // Didn't fit
- P_RemoveMobj(mo);
- mo = P_SpawnMobj(x, y, z, MT_CHICKEN);
- mo->angle = oldChicken.angle;
- mo->flags = oldChicken.flags;
- mo->health = oldChicken.health;
- mo->target = oldChicken.target;
- mo->special1 = 5*35; // Next try in 5 seconds
- mo->special2 = moType;
- return(false);
- }
- mo->angle = oldChicken.angle;
- mo->target = oldChicken.target;
- fog = P_SpawnMobj(x, y, z+TELEFOGHEIGHT, MT_TFOG);
- S_StartSound(fog, sfx_telept);
- return(true);
+boolean P_UpdateChicken(mobj_t * actor, int tics)
+{
+ mobj_t *fog;
+ fixed_t x;
+ fixed_t y;
+ fixed_t z;
+ mobjtype_t moType;
+ mobj_t *mo;
+ mobj_t oldChicken;
+
+ actor->special1 -= tics;
+ if (actor->special1 > 0)
+ {
+ return (false);
+ }
+ moType = actor->special2;
+ x = actor->x;
+ y = actor->y;
+ z = actor->z;
+ oldChicken = *actor;
+ P_SetMobjState(actor, S_FREETARGMOBJ);
+ mo = P_SpawnMobj(x, y, z, moType);
+ if (P_TestMobjLocation(mo) == false)
+ { // Didn't fit
+ P_RemoveMobj(mo);
+ mo = P_SpawnMobj(x, y, z, MT_CHICKEN);
+ mo->angle = oldChicken.angle;
+ mo->flags = oldChicken.flags;
+ mo->health = oldChicken.health;
+ mo->target = oldChicken.target;
+ mo->special1 = 5 * 35; // Next try in 5 seconds
+ mo->special2 = moType;
+ return (false);
+ }
+ mo->angle = oldChicken.angle;
+ mo->target = oldChicken.target;
+ fog = P_SpawnMobj(x, y, z + TELEFOGHEIGHT, MT_TFOG);
+ S_StartSound(fog, sfx_telept);
+ return (true);
}
//----------------------------------------------------------------------------
@@ -1059,20 +1087,20 @@ boolean P_UpdateChicken(mobj_t *actor, int tics)
//
//----------------------------------------------------------------------------
-void A_ChicAttack(mobj_t *actor)
+void A_ChicAttack(mobj_t * actor)
{
- if(P_UpdateChicken(actor, 18))
- {
- return;
- }
- if(!actor->target)
- {
- return;
- }
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, 1+(P_Random()&1));
- }
+ if (P_UpdateChicken(actor, 18))
+ {
+ return;
+ }
+ if (!actor->target)
+ {
+ return;
+ }
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, 1 + (P_Random() & 1));
+ }
}
//----------------------------------------------------------------------------
@@ -1081,13 +1109,13 @@ void A_ChicAttack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ChicLook(mobj_t *actor)
+void A_ChicLook(mobj_t * actor)
{
- if(P_UpdateChicken(actor, 10))
- {
- return;
- }
- A_Look(actor);
+ if (P_UpdateChicken(actor, 10))
+ {
+ return;
+ }
+ A_Look(actor);
}
//----------------------------------------------------------------------------
@@ -1096,13 +1124,13 @@ void A_ChicLook(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ChicChase(mobj_t *actor)
+void A_ChicChase(mobj_t * actor)
{
- if(P_UpdateChicken(actor, 3))
- {
- return;
- }
- A_Chase(actor);
+ if (P_UpdateChicken(actor, 3))
+ {
+ return;
+ }
+ A_Chase(actor);
}
//----------------------------------------------------------------------------
@@ -1111,13 +1139,13 @@ void A_ChicChase(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ChicPain(mobj_t *actor)
+void A_ChicPain(mobj_t * actor)
{
- if(P_UpdateChicken(actor, 10))
- {
- return;
- }
- S_StartSound(actor, actor->info->painsound);
+ if (P_UpdateChicken(actor, 10))
+ {
+ return;
+ }
+ S_StartSound(actor, actor->info->painsound);
}
//----------------------------------------------------------------------------
@@ -1126,30 +1154,30 @@ void A_ChicPain(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_Feathers(mobj_t *actor)
+void A_Feathers(mobj_t * actor)
{
- int i;
- int count;
- mobj_t *mo;
+ int i;
+ int count;
+ mobj_t *mo;
- if(actor->health > 0)
- { // Pain
- count = P_Random() < 32 ? 2 : 1;
- }
- else
- { // Death
- count = 5+(P_Random()&3);
- }
- for(i = 0; i < count; i++)
- {
- mo = P_SpawnMobj(actor->x, actor->y, actor->z+20*FRACUNIT,
- MT_FEATHER);
- mo->target = actor;
- mo->momx = (P_Random()-P_Random())<<8;
- mo->momy = (P_Random()-P_Random())<<8;
- mo->momz = FRACUNIT+(P_Random()<<9);
- P_SetMobjState(mo, S_FEATHER1+(P_Random()&7));
- }
+ if (actor->health > 0)
+ { // Pain
+ count = P_Random() < 32 ? 2 : 1;
+ }
+ else
+ { // Death
+ count = 5 + (P_Random() & 3);
+ }
+ for (i = 0; i < count; i++)
+ {
+ mo = P_SpawnMobj(actor->x, actor->y, actor->z + 20 * FRACUNIT,
+ MT_FEATHER);
+ mo->target = actor;
+ mo->momx = (P_Random() - P_Random()) << 8;
+ mo->momy = (P_Random() - P_Random()) << 8;
+ mo->momz = FRACUNIT + (P_Random() << 9);
+ P_SetMobjState(mo, S_FEATHER1 + (P_Random() & 7));
+ }
}
//----------------------------------------------------------------------------
@@ -1158,20 +1186,20 @@ void A_Feathers(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_MummyAttack(mobj_t *actor)
+void A_MummyAttack(mobj_t * actor)
{
- if(!actor->target)
- {
- return;
- }
- S_StartSound(actor, actor->info->attacksound);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, HITDICE(2));
- S_StartSound(actor, sfx_mumat2);
- return;
- }
- S_StartSound(actor, sfx_mumat1);
+ if (!actor->target)
+ {
+ return;
+ }
+ S_StartSound(actor, actor->info->attacksound);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, HITDICE(2));
+ S_StartSound(actor, sfx_mumat2);
+ return;
+ }
+ S_StartSound(actor, sfx_mumat1);
}
//----------------------------------------------------------------------------
@@ -1182,26 +1210,26 @@ void A_MummyAttack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_MummyAttack2(mobj_t *actor)
+void A_MummyAttack2(mobj_t * actor)
{
- mobj_t *mo;
+ mobj_t *mo;
- if(!actor->target)
- {
- return;
- }
- //S_StartSound(actor, actor->info->attacksound);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, HITDICE(2));
- return;
- }
- mo = P_SpawnMissile(actor, actor->target, MT_MUMMYFX1);
- //mo = P_SpawnMissile(actor, actor->target, MT_EGGFX);
- if(mo != NULL)
- {
- mo->special1 = (int)actor->target;
- }
+ if (!actor->target)
+ {
+ return;
+ }
+ //S_StartSound(actor, actor->info->attacksound);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, HITDICE(2));
+ return;
+ }
+ mo = P_SpawnMissile(actor, actor->target, MT_MUMMYFX1);
+ //mo = P_SpawnMissile(actor, actor->target, MT_EGGFX);
+ if (mo != NULL)
+ {
+ mo->special1 = (int) actor->target;
+ }
}
//----------------------------------------------------------------------------
@@ -1210,9 +1238,9 @@ void A_MummyAttack2(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_MummyFX1Seek(mobj_t *actor)
+void A_MummyFX1Seek(mobj_t * actor)
{
- P_SeekerMissile(actor, ANGLE_1*10, ANGLE_1*20);
+ P_SeekerMissile(actor, ANGLE_1 * 10, ANGLE_1 * 20);
}
//----------------------------------------------------------------------------
@@ -1221,12 +1249,13 @@ void A_MummyFX1Seek(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_MummySoul(mobj_t *mummy)
+void A_MummySoul(mobj_t * mummy)
{
- mobj_t *mo;
+ mobj_t *mo;
- mo = P_SpawnMobj(mummy->x, mummy->y, mummy->z+10*FRACUNIT, MT_MUMMYSOUL);
- mo->momz = FRACUNIT;
+ mo = P_SpawnMobj(mummy->x, mummy->y, mummy->z + 10 * FRACUNIT,
+ MT_MUMMYSOUL);
+ mo->momz = FRACUNIT;
}
//----------------------------------------------------------------------------
@@ -1235,10 +1264,10 @@ void A_MummySoul(mobj_t *mummy)
//
//----------------------------------------------------------------------------
-void A_Sor1Pain(mobj_t *actor)
+void A_Sor1Pain(mobj_t * actor)
{
- actor->special1 = 20; // Number of steps to walk fast
- A_Pain(actor);
+ actor->special1 = 20; // Number of steps to walk fast
+ A_Pain(actor);
}
//----------------------------------------------------------------------------
@@ -1247,14 +1276,14 @@ void A_Sor1Pain(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_Sor1Chase(mobj_t *actor)
+void A_Sor1Chase(mobj_t * actor)
{
- if(actor->special1)
- {
- actor->special1--;
- actor->tics -= 3;
- }
- A_Chase(actor);
+ if (actor->special1)
+ {
+ actor->special1--;
+ actor->tics -= 3;
+ }
+ A_Chase(actor);
}
//----------------------------------------------------------------------------
@@ -1265,49 +1294,49 @@ void A_Sor1Chase(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_Srcr1Attack(mobj_t *actor)
-{
- mobj_t *mo;
- fixed_t momz;
- angle_t angle;
-
- if(!actor->target)
- {
- return;
- }
- S_StartSound(actor, actor->info->attacksound);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, HITDICE(8));
- return;
- }
- if(actor->health > (actor->info->spawnhealth/3)*2)
- { // Spit one fireball
- P_SpawnMissile(actor, actor->target, MT_SRCRFX1);
- }
- else
- { // Spit three fireballs
- mo = P_SpawnMissile(actor, actor->target, MT_SRCRFX1);
- if(mo)
- {
- momz = mo->momz;
- angle = mo->angle;
- P_SpawnMissileAngle(actor, MT_SRCRFX1, angle-ANGLE_1*3, momz);
- P_SpawnMissileAngle(actor, MT_SRCRFX1, angle+ANGLE_1*3, momz);
- }
- if(actor->health < actor->info->spawnhealth/3)
- { // Maybe attack again
- if(actor->special1)
- { // Just attacked, so don't attack again
- actor->special1 = 0;
- }
- else
- { // Set state to attack again
- actor->special1 = 1;
- P_SetMobjState(actor, S_SRCR1_ATK4);
- }
- }
- }
+void A_Srcr1Attack(mobj_t * actor)
+{
+ mobj_t *mo;
+ fixed_t momz;
+ angle_t angle;
+
+ if (!actor->target)
+ {
+ return;
+ }
+ S_StartSound(actor, actor->info->attacksound);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, HITDICE(8));
+ return;
+ }
+ if (actor->health > (actor->info->spawnhealth / 3) * 2)
+ { // Spit one fireball
+ P_SpawnMissile(actor, actor->target, MT_SRCRFX1);
+ }
+ else
+ { // Spit three fireballs
+ mo = P_SpawnMissile(actor, actor->target, MT_SRCRFX1);
+ if (mo)
+ {
+ momz = mo->momz;
+ angle = mo->angle;
+ P_SpawnMissileAngle(actor, MT_SRCRFX1, angle - ANGLE_1 * 3, momz);
+ P_SpawnMissileAngle(actor, MT_SRCRFX1, angle + ANGLE_1 * 3, momz);
+ }
+ if (actor->health < actor->info->spawnhealth / 3)
+ { // Maybe attack again
+ if (actor->special1)
+ { // Just attacked, so don't attack again
+ actor->special1 = 0;
+ }
+ else
+ { // Set state to attack again
+ actor->special1 = 1;
+ P_SetMobjState(actor, S_SRCR1_ATK4);
+ }
+ }
+ }
}
//----------------------------------------------------------------------------
@@ -1316,15 +1345,15 @@ void A_Srcr1Attack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_SorcererRise(mobj_t *actor)
+void A_SorcererRise(mobj_t * actor)
{
- mobj_t *mo;
+ mobj_t *mo;
- actor->flags &= ~MF_SOLID;
- mo = P_SpawnMobj(actor->x, actor->y, actor->z, MT_SORCERER2);
- P_SetMobjState(mo, S_SOR2_RISE1);
- mo->angle = actor->angle;
- mo->target = actor->target;
+ actor->flags &= ~MF_SOLID;
+ mo = P_SpawnMobj(actor->x, actor->y, actor->z, MT_SORCERER2);
+ P_SetMobjState(mo, S_SOR2_RISE1);
+ mo->angle = actor->angle;
+ mo->target = actor->target;
}
//----------------------------------------------------------------------------
@@ -1333,40 +1362,41 @@ void A_SorcererRise(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void P_DSparilTeleport(mobj_t *actor)
-{
- int i;
- fixed_t x;
- fixed_t y;
- fixed_t prevX;
- fixed_t prevY;
- fixed_t prevZ;
- mobj_t *mo;
-
- if(!BossSpotCount)
- { // No spots
- return;
- }
- i = P_Random();
- do
- {
- i++;
- x = BossSpots[i%BossSpotCount].x;
- y = BossSpots[i%BossSpotCount].y;
- } while(P_AproxDistance(actor->x-x, actor->y-y) < 128*FRACUNIT);
- prevX = actor->x;
- prevY = actor->y;
- prevZ = actor->z;
- if(P_TeleportMove(actor, x, y))
- {
- mo = P_SpawnMobj(prevX, prevY, prevZ, MT_SOR2TELEFADE);
- S_StartSound(mo, sfx_telept);
- P_SetMobjState(actor, S_SOR2_TELE1);
- S_StartSound(actor, sfx_telept);
- actor->z = actor->floorz;
- actor->angle = BossSpots[i%BossSpotCount].angle;
- actor->momx = actor->momy = actor->momz = 0;
- }
+void P_DSparilTeleport(mobj_t * actor)
+{
+ int i;
+ fixed_t x;
+ fixed_t y;
+ fixed_t prevX;
+ fixed_t prevY;
+ fixed_t prevZ;
+ mobj_t *mo;
+
+ if (!BossSpotCount)
+ { // No spots
+ return;
+ }
+ i = P_Random();
+ do
+ {
+ i++;
+ x = BossSpots[i % BossSpotCount].x;
+ y = BossSpots[i % BossSpotCount].y;
+ }
+ while (P_AproxDistance(actor->x - x, actor->y - y) < 128 * FRACUNIT);
+ prevX = actor->x;
+ prevY = actor->y;
+ prevZ = actor->z;
+ if (P_TeleportMove(actor, x, y))
+ {
+ mo = P_SpawnMobj(prevX, prevY, prevZ, MT_SOR2TELEFADE);
+ S_StartSound(mo, sfx_telept);
+ P_SetMobjState(actor, S_SOR2_TELE1);
+ S_StartSound(actor, sfx_telept);
+ actor->z = actor->floorz;
+ actor->angle = BossSpots[i % BossSpotCount].angle;
+ actor->momx = actor->momy = actor->momz = 0;
+ }
}
//----------------------------------------------------------------------------
@@ -1375,21 +1405,20 @@ void P_DSparilTeleport(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_Srcr2Decide(mobj_t *actor)
+void A_Srcr2Decide(mobj_t * actor)
{
- static int chance[] =
- {
- 192, 120, 120, 120, 64, 64, 32, 16, 0
- };
+ static int chance[] = {
+ 192, 120, 120, 120, 64, 64, 32, 16, 0
+ };
- if(!BossSpotCount)
- { // No spots
- return;
- }
- if(P_Random() < chance[actor->health/(actor->info->spawnhealth/8)])
- {
- P_DSparilTeleport(actor);
- }
+ if (!BossSpotCount)
+ { // No spots
+ return;
+ }
+ if (P_Random() < chance[actor->health / (actor->info->spawnhealth / 8)])
+ {
+ P_DSparilTeleport(actor);
+ }
}
//----------------------------------------------------------------------------
@@ -1398,32 +1427,32 @@ void A_Srcr2Decide(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_Srcr2Attack(mobj_t *actor)
+void A_Srcr2Attack(mobj_t * actor)
{
- int chance;
+ int chance;
- if(!actor->target)
- {
- return;
- }
- S_StartSound(NULL, actor->info->attacksound);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, HITDICE(20));
- return;
- }
- chance = actor->health < actor->info->spawnhealth/2 ? 96 : 48;
- if(P_Random() < chance)
- { // Wizard spawners
- P_SpawnMissileAngle(actor, MT_SOR2FX2,
- actor->angle-ANG45, FRACUNIT/2);
- P_SpawnMissileAngle(actor, MT_SOR2FX2,
- actor->angle+ANG45, FRACUNIT/2);
- }
- else
- { // Blue bolt
- P_SpawnMissile(actor, actor->target, MT_SOR2FX1);
- }
+ if (!actor->target)
+ {
+ return;
+ }
+ S_StartSound(NULL, actor->info->attacksound);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, HITDICE(20));
+ return;
+ }
+ chance = actor->health < actor->info->spawnhealth / 2 ? 96 : 48;
+ if (P_Random() < chance)
+ { // Wizard spawners
+ P_SpawnMissileAngle(actor, MT_SOR2FX2,
+ actor->angle - ANG45, FRACUNIT / 2);
+ P_SpawnMissileAngle(actor, MT_SOR2FX2,
+ actor->angle + ANG45, FRACUNIT / 2);
+ }
+ else
+ { // Blue bolt
+ P_SpawnMissile(actor, actor->target, MT_SOR2FX1);
+ }
}
//----------------------------------------------------------------------------
@@ -1432,18 +1461,18 @@ void A_Srcr2Attack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_BlueSpark(mobj_t *actor)
+void A_BlueSpark(mobj_t * actor)
{
- int i;
- mobj_t *mo;
+ int i;
+ mobj_t *mo;
- for(i = 0; i < 2; i++)
- {
- mo = P_SpawnMobj(actor->x, actor->y, actor->z, MT_SOR2FXSPARK);
- mo->momx = (P_Random()-P_Random())<<9;
- mo->momy = (P_Random()-P_Random())<<9;
- mo->momz = FRACUNIT+(P_Random()<<8);
- }
+ for (i = 0; i < 2; i++)
+ {
+ mo = P_SpawnMobj(actor->x, actor->y, actor->z, MT_SOR2FXSPARK);
+ mo->momx = (P_Random() - P_Random()) << 9;
+ mo->momy = (P_Random() - P_Random()) << 9;
+ mo->momz = FRACUNIT + (P_Random() << 8);
+ }
}
//----------------------------------------------------------------------------
@@ -1452,23 +1481,23 @@ void A_BlueSpark(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_GenWizard(mobj_t *actor)
+void A_GenWizard(mobj_t * actor)
{
- mobj_t *mo;
- mobj_t *fog;
+ mobj_t *mo;
+ mobj_t *fog;
- mo = P_SpawnMobj(actor->x, actor->y,
- actor->z-mobjinfo[MT_WIZARD].height/2, MT_WIZARD);
- if(P_TestMobjLocation(mo) == false)
- { // Didn't fit
- P_RemoveMobj(mo);
- return;
- }
- actor->momx = actor->momy = actor->momz = 0;
- P_SetMobjState(actor, mobjinfo[actor->type].deathstate);
- actor->flags &= ~MF_MISSILE;
- fog = P_SpawnMobj(actor->x, actor->y, actor->z, MT_TFOG);
- S_StartSound(fog, sfx_telept);
+ mo = P_SpawnMobj(actor->x, actor->y,
+ actor->z - mobjinfo[MT_WIZARD].height / 2, MT_WIZARD);
+ if (P_TestMobjLocation(mo) == false)
+ { // Didn't fit
+ P_RemoveMobj(mo);
+ return;
+ }
+ actor->momx = actor->momy = actor->momz = 0;
+ P_SetMobjState(actor, mobjinfo[actor->type].deathstate);
+ actor->flags &= ~MF_MISSILE;
+ fog = P_SpawnMobj(actor->x, actor->y, actor->z, MT_TFOG);
+ S_StartSound(fog, sfx_telept);
}
//----------------------------------------------------------------------------
@@ -1477,10 +1506,10 @@ void A_GenWizard(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_Sor2DthInit(mobj_t *actor)
+void A_Sor2DthInit(mobj_t * actor)
{
- actor->special1 = 7; // Animation loop counter
- P_Massacre(); // Kill monsters early
+ actor->special1 = 7; // Animation loop counter
+ P_Massacre(); // Kill monsters early
}
//----------------------------------------------------------------------------
@@ -1489,12 +1518,12 @@ void A_Sor2DthInit(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_Sor2DthLoop(mobj_t *actor)
+void A_Sor2DthLoop(mobj_t * actor)
{
- if(--actor->special1)
- { // Need to loop
- P_SetMobjState(actor, S_SOR2_DIE4);
- }
+ if (--actor->special1)
+ { // Need to loop
+ P_SetMobjState(actor, S_SOR2_DIE4);
+ }
}
//----------------------------------------------------------------------------
@@ -1503,12 +1532,35 @@ void A_Sor2DthLoop(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_SorZap(mobj_t *actor) {S_StartSound(NULL, sfx_sorzap);}
-void A_SorRise(mobj_t *actor) {S_StartSound(NULL, sfx_sorrise);}
-void A_SorDSph(mobj_t *actor) {S_StartSound(NULL, sfx_sordsph);}
-void A_SorDExp(mobj_t *actor) {S_StartSound(NULL, sfx_sordexp);}
-void A_SorDBon(mobj_t *actor) {S_StartSound(NULL, sfx_sordbon);}
-void A_SorSightSnd(mobj_t *actor) {S_StartSound(NULL, sfx_sorsit);}
+void A_SorZap(mobj_t * actor)
+{
+ S_StartSound(NULL, sfx_sorzap);
+}
+
+void A_SorRise(mobj_t * actor)
+{
+ S_StartSound(NULL, sfx_sorrise);
+}
+
+void A_SorDSph(mobj_t * actor)
+{
+ S_StartSound(NULL, sfx_sordsph);
+}
+
+void A_SorDExp(mobj_t * actor)
+{
+ S_StartSound(NULL, sfx_sordexp);
+}
+
+void A_SorDBon(mobj_t * actor)
+{
+ S_StartSound(NULL, sfx_sordbon);
+}
+
+void A_SorSightSnd(mobj_t * actor)
+{
+ S_StartSound(NULL, sfx_sorsit);
+}
//----------------------------------------------------------------------------
//
@@ -1518,23 +1570,23 @@ void A_SorSightSnd(mobj_t *actor) {S_StartSound(NULL, sfx_sorsit);}
//
//----------------------------------------------------------------------------
-void A_MinotaurAtk1(mobj_t *actor)
+void A_MinotaurAtk1(mobj_t * actor)
{
- player_t *player;
+ player_t *player;
- if(!actor->target)
- {
- return;
- }
- S_StartSound(actor, sfx_stfpow);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, HITDICE(4));
- if((player = actor->target->player) != NULL)
- { // Squish the player
- player->deltaviewheight = -16*FRACUNIT;
- }
- }
+ if (!actor->target)
+ {
+ return;
+ }
+ S_StartSound(actor, sfx_stfpow);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, HITDICE(4));
+ if ((player = actor->target->player) != NULL)
+ { // Squish the player
+ player->deltaviewheight = -16 * FRACUNIT;
+ }
+ }
}
//----------------------------------------------------------------------------
@@ -1547,47 +1599,45 @@ void A_MinotaurAtk1(mobj_t *actor)
#define MNTR_CHARGE_SPEED (13*FRACUNIT)
-void A_MinotaurDecide(mobj_t *actor)
-{
- angle_t angle;
- mobj_t *target;
- int dist;
-
- target = actor->target;
- if(!target)
- {
- return;
- }
- S_StartSound(actor, sfx_minsit);
- dist = P_AproxDistance(actor->x-target->x, actor->y-target->y);
- if(target->z+target->height > actor->z
- && target->z+target->height < actor->z+actor->height
- && dist < 8*64*FRACUNIT
- && dist > 1*64*FRACUNIT
- && P_Random() < 150)
- { // Charge attack
- // Don't call the state function right away
- P_SetMobjStateNF(actor, S_MNTR_ATK4_1);
- actor->flags |= MF_SKULLFLY;
- A_FaceTarget(actor);
- angle = actor->angle>>ANGLETOFINESHIFT;
- actor->momx = FixedMul(MNTR_CHARGE_SPEED, finecosine[angle]);
- actor->momy = FixedMul(MNTR_CHARGE_SPEED, finesine[angle]);
- actor->special1 = 35/2; // Charge duration
- }
- else if(target->z == target->floorz
- && dist < 9*64*FRACUNIT
- && P_Random() < 220)
- { // Floor fire attack
- P_SetMobjState(actor, S_MNTR_ATK3_1);
- actor->special2 = 0;
- }
- else
- { // Swing attack
- A_FaceTarget(actor);
- // Don't need to call P_SetMobjState because the current state
- // falls through to the swing attack
- }
+void A_MinotaurDecide(mobj_t * actor)
+{
+ angle_t angle;
+ mobj_t *target;
+ int dist;
+
+ target = actor->target;
+ if (!target)
+ {
+ return;
+ }
+ S_StartSound(actor, sfx_minsit);
+ dist = P_AproxDistance(actor->x - target->x, actor->y - target->y);
+ if (target->z + target->height > actor->z
+ && target->z + target->height < actor->z + actor->height
+ && dist < 8 * 64 * FRACUNIT
+ && dist > 1 * 64 * FRACUNIT && P_Random() < 150)
+ { // Charge attack
+ // Don't call the state function right away
+ P_SetMobjStateNF(actor, S_MNTR_ATK4_1);
+ actor->flags |= MF_SKULLFLY;
+ A_FaceTarget(actor);
+ angle = actor->angle >> ANGLETOFINESHIFT;
+ actor->momx = FixedMul(MNTR_CHARGE_SPEED, finecosine[angle]);
+ actor->momy = FixedMul(MNTR_CHARGE_SPEED, finesine[angle]);
+ actor->special1 = 35 / 2; // Charge duration
+ }
+ else if (target->z == target->floorz
+ && dist < 9 * 64 * FRACUNIT && P_Random() < 220)
+ { // Floor fire attack
+ P_SetMobjState(actor, S_MNTR_ATK3_1);
+ actor->special2 = 0;
+ }
+ else
+ { // Swing attack
+ A_FaceTarget(actor);
+ // Don't need to call P_SetMobjState because the current state
+ // falls through to the swing attack
+ }
}
//----------------------------------------------------------------------------
@@ -1596,21 +1646,21 @@ void A_MinotaurDecide(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_MinotaurCharge(mobj_t *actor)
+void A_MinotaurCharge(mobj_t * actor)
{
- mobj_t *puff;
+ mobj_t *puff;
- if(actor->special1)
- {
- puff = P_SpawnMobj(actor->x, actor->y, actor->z, MT_PHOENIXPUFF);
- puff->momz = 2*FRACUNIT;
- actor->special1--;
- }
- else
- {
- actor->flags &= ~MF_SKULLFLY;
- P_SetMobjState(actor, actor->info->seestate);
- }
+ if (actor->special1)
+ {
+ puff = P_SpawnMobj(actor->x, actor->y, actor->z, MT_PHOENIXPUFF);
+ puff->momz = 2 * FRACUNIT;
+ actor->special1--;
+ }
+ else
+ {
+ actor->flags &= ~MF_SKULLFLY;
+ P_SetMobjState(actor, actor->info->seestate);
+ }
}
//----------------------------------------------------------------------------
@@ -1621,33 +1671,33 @@ void A_MinotaurCharge(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_MinotaurAtk2(mobj_t *actor)
+void A_MinotaurAtk2(mobj_t * actor)
{
- mobj_t *mo;
- angle_t angle;
- fixed_t momz;
+ mobj_t *mo;
+ angle_t angle;
+ fixed_t momz;
- if(!actor->target)
- {
- return;
- }
- S_StartSound(actor, sfx_minat2);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, HITDICE(5));
- return;
- }
- mo = P_SpawnMissile(actor, actor->target, MT_MNTRFX1);
- if(mo)
- {
- S_StartSound(mo, sfx_minat2);
- momz = mo->momz;
- angle = mo->angle;
- P_SpawnMissileAngle(actor, MT_MNTRFX1, angle-(ANG45/8), momz);
- P_SpawnMissileAngle(actor, MT_MNTRFX1, angle+(ANG45/8), momz);
- P_SpawnMissileAngle(actor, MT_MNTRFX1, angle-(ANG45/16), momz);
- P_SpawnMissileAngle(actor, MT_MNTRFX1, angle+(ANG45/16), momz);
- }
+ if (!actor->target)
+ {
+ return;
+ }
+ S_StartSound(actor, sfx_minat2);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, HITDICE(5));
+ return;
+ }
+ mo = P_SpawnMissile(actor, actor->target, MT_MNTRFX1);
+ if (mo)
+ {
+ S_StartSound(mo, sfx_minat2);
+ momz = mo->momz;
+ angle = mo->angle;
+ P_SpawnMissileAngle(actor, MT_MNTRFX1, angle - (ANG45 / 8), momz);
+ P_SpawnMissileAngle(actor, MT_MNTRFX1, angle + (ANG45 / 8), momz);
+ P_SpawnMissileAngle(actor, MT_MNTRFX1, angle - (ANG45 / 16), momz);
+ P_SpawnMissileAngle(actor, MT_MNTRFX1, angle + (ANG45 / 16), momz);
+ }
}
//----------------------------------------------------------------------------
@@ -1658,36 +1708,36 @@ void A_MinotaurAtk2(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_MinotaurAtk3(mobj_t *actor)
+void A_MinotaurAtk3(mobj_t * actor)
{
- mobj_t *mo;
- player_t *player;
+ mobj_t *mo;
+ player_t *player;
- if(!actor->target)
- {
- return;
- }
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, HITDICE(5));
- if((player = actor->target->player) != NULL)
- { // Squish the player
- player->deltaviewheight = -16*FRACUNIT;
- }
- }
- else
- {
- mo = P_SpawnMissile(actor, actor->target, MT_MNTRFX2);
- if(mo != NULL)
- {
- S_StartSound(mo, sfx_minat1);
- }
- }
- if(P_Random() < 192 && actor->special2 == 0)
- {
- P_SetMobjState(actor, S_MNTR_ATK3_4);
- actor->special2 = 1;
- }
+ if (!actor->target)
+ {
+ return;
+ }
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, HITDICE(5));
+ if ((player = actor->target->player) != NULL)
+ { // Squish the player
+ player->deltaviewheight = -16 * FRACUNIT;
+ }
+ }
+ else
+ {
+ mo = P_SpawnMissile(actor, actor->target, MT_MNTRFX2);
+ if (mo != NULL)
+ {
+ S_StartSound(mo, sfx_minat1);
+ }
+ }
+ if (P_Random() < 192 && actor->special2 == 0)
+ {
+ P_SetMobjState(actor, S_MNTR_ATK3_4);
+ actor->special2 = 1;
+ }
}
//----------------------------------------------------------------------------
@@ -1696,16 +1746,17 @@ void A_MinotaurAtk3(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_MntrFloorFire(mobj_t *actor)
+void A_MntrFloorFire(mobj_t * actor)
{
- mobj_t *mo;
+ mobj_t *mo;
- actor->z = actor->floorz;
- mo = P_SpawnMobj(actor->x+((P_Random()-P_Random())<<10),
- actor->y+((P_Random()-P_Random())<<10), ONFLOORZ, MT_MNTRFX3);
- mo->target = actor->target;
- mo->momx = 1; // Force block checking
- P_CheckMissileSpawn(mo);
+ actor->z = actor->floorz;
+ mo = P_SpawnMobj(actor->x + ((P_Random() - P_Random()) << 10),
+ actor->y + ((P_Random() - P_Random()) << 10), ONFLOORZ,
+ MT_MNTRFX3);
+ mo->target = actor->target;
+ mo->momx = 1; // Force block checking
+ P_CheckMissileSpawn(mo);
}
//----------------------------------------------------------------------------
@@ -1714,19 +1765,19 @@ void A_MntrFloorFire(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_BeastAttack(mobj_t *actor)
+void A_BeastAttack(mobj_t * actor)
{
- if(!actor->target)
- {
- return;
- }
- S_StartSound(actor, actor->info->attacksound);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, HITDICE(3));
- return;
- }
- P_SpawnMissile(actor, actor->target, MT_BEASTBALL);
+ if (!actor->target)
+ {
+ return;
+ }
+ S_StartSound(actor, actor->info->attacksound);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, HITDICE(3));
+ return;
+ }
+ P_SpawnMissile(actor, actor->target, MT_BEASTBALL);
}
//----------------------------------------------------------------------------
@@ -1735,79 +1786,79 @@ void A_BeastAttack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_HeadAttack(mobj_t *actor)
-{
- int i;
- mobj_t *fire;
- mobj_t *baseFire;
- mobj_t *mo;
- mobj_t *target;
- int randAttack;
- static int atkResolve1[] = { 50, 150 };
- static int atkResolve2[] = { 150, 200 };
- int dist;
-
- // Ice ball (close 20% : far 60%)
- // Fire column (close 40% : far 20%)
- // Whirlwind (close 40% : far 20%)
- // Distance threshold = 8 cells
-
- target = actor->target;
- if(target == NULL)
- {
- return;
- }
- A_FaceTarget(actor);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(target, actor, actor, HITDICE(6));
- return;
- }
- dist = P_AproxDistance(actor->x-target->x, actor->y-target->y)
- > 8*64*FRACUNIT;
- randAttack = P_Random();
- if(randAttack < atkResolve1[dist])
- { // Ice ball
- P_SpawnMissile(actor, target, MT_HEADFX1);
- S_StartSound(actor, sfx_hedat2);
- }
- else if(randAttack < atkResolve2[dist])
- { // Fire column
- baseFire = P_SpawnMissile(actor, target, MT_HEADFX3);
- if(baseFire != NULL)
- {
- P_SetMobjState(baseFire, S_HEADFX3_4); // Don't grow
- for(i = 0; i < 5; i++)
- {
- fire = P_SpawnMobj(baseFire->x, baseFire->y,
- baseFire->z, MT_HEADFX3);
- if(i == 0)
- {
- S_StartSound(actor, sfx_hedat1);
- }
- fire->target = baseFire->target;
- fire->angle = baseFire->angle;
- fire->momx = baseFire->momx;
- fire->momy = baseFire->momy;
- fire->momz = baseFire->momz;
- fire->damage = 0;
- fire->health = (i+1)*2;
- P_CheckMissileSpawn(fire);
- }
- }
- }
- else
- { // Whirlwind
- mo = P_SpawnMissile(actor, target, MT_WHIRLWIND);
- if(mo != NULL)
- {
- mo->z -= 32*FRACUNIT;
- mo->special1 = (int)target;
- mo->special2 = 50; // Timer for active sound
- mo->health = 20*TICSPERSEC; // Duration
- S_StartSound(actor, sfx_hedat3);
- }
- }
+void A_HeadAttack(mobj_t * actor)
+{
+ int i;
+ mobj_t *fire;
+ mobj_t *baseFire;
+ mobj_t *mo;
+ mobj_t *target;
+ int randAttack;
+ static int atkResolve1[] = { 50, 150 };
+ static int atkResolve2[] = { 150, 200 };
+ int dist;
+
+ // Ice ball (close 20% : far 60%)
+ // Fire column (close 40% : far 20%)
+ // Whirlwind (close 40% : far 20%)
+ // Distance threshold = 8 cells
+
+ target = actor->target;
+ if (target == NULL)
+ {
+ return;
+ }
+ A_FaceTarget(actor);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(target, actor, actor, HITDICE(6));
+ return;
+ }
+ dist = P_AproxDistance(actor->x - target->x, actor->y - target->y)
+ > 8 * 64 * FRACUNIT;
+ randAttack = P_Random();
+ if (randAttack < atkResolve1[dist])
+ { // Ice ball
+ P_SpawnMissile(actor, target, MT_HEADFX1);
+ S_StartSound(actor, sfx_hedat2);
+ }
+ else if (randAttack < atkResolve2[dist])
+ { // Fire column
+ baseFire = P_SpawnMissile(actor, target, MT_HEADFX3);
+ if (baseFire != NULL)
+ {
+ P_SetMobjState(baseFire, S_HEADFX3_4); // Don't grow
+ for (i = 0; i < 5; i++)
+ {
+ fire = P_SpawnMobj(baseFire->x, baseFire->y,
+ baseFire->z, MT_HEADFX3);
+ if (i == 0)
+ {
+ S_StartSound(actor, sfx_hedat1);
+ }
+ fire->target = baseFire->target;
+ fire->angle = baseFire->angle;
+ fire->momx = baseFire->momx;
+ fire->momy = baseFire->momy;
+ fire->momz = baseFire->momz;
+ fire->damage = 0;
+ fire->health = (i + 1) * 2;
+ P_CheckMissileSpawn(fire);
+ }
+ }
+ }
+ else
+ { // Whirlwind
+ mo = P_SpawnMissile(actor, target, MT_WHIRLWIND);
+ if (mo != NULL)
+ {
+ mo->z -= 32 * FRACUNIT;
+ mo->special1 = (int) target;
+ mo->special2 = 50; // Timer for active sound
+ mo->health = 20 * TICSPERSEC; // Duration
+ S_StartSound(actor, sfx_hedat3);
+ }
+ }
}
//----------------------------------------------------------------------------
@@ -1816,27 +1867,27 @@ void A_HeadAttack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_WhirlwindSeek(mobj_t *actor)
+void A_WhirlwindSeek(mobj_t * actor)
{
- actor->health -= 3;
- if(actor->health < 0)
- {
- actor->momx = actor->momy = actor->momz = 0;
- P_SetMobjState(actor, mobjinfo[actor->type].deathstate);
- actor->flags &= ~MF_MISSILE;
- return;
- }
- if((actor->special2 -= 3) < 0)
- {
- actor->special2 = 58+(P_Random()&31);
- S_StartSound(actor, sfx_hedat3);
- }
- if(actor->special1
- && (((mobj_t *)(actor->special1))->flags&MF_SHADOW))
- {
- return;
- }
- P_SeekerMissile(actor, ANGLE_1*10, ANGLE_1*30);
+ actor->health -= 3;
+ if (actor->health < 0)
+ {
+ actor->momx = actor->momy = actor->momz = 0;
+ P_SetMobjState(actor, mobjinfo[actor->type].deathstate);
+ actor->flags &= ~MF_MISSILE;
+ return;
+ }
+ if ((actor->special2 -= 3) < 0)
+ {
+ actor->special2 = 58 + (P_Random() & 31);
+ S_StartSound(actor, sfx_hedat3);
+ }
+ if (actor->special1
+ && (((mobj_t *) (actor->special1))->flags & MF_SHADOW))
+ {
+ return;
+ }
+ P_SeekerMissile(actor, ANGLE_1 * 10, ANGLE_1 * 30);
}
//----------------------------------------------------------------------------
@@ -1845,24 +1896,24 @@ void A_WhirlwindSeek(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_HeadIceImpact(mobj_t *ice)
+void A_HeadIceImpact(mobj_t * ice)
{
- int i;
- angle_t angle;
- mobj_t *shard;
+ int i;
+ angle_t angle;
+ mobj_t *shard;
- for(i = 0; i < 8; i++)
- {
- shard = P_SpawnMobj(ice->x, ice->y, ice->z, MT_HEADFX2);
- angle = i*ANG45;
- shard->target = ice->target;
- shard->angle = angle;
- angle >>= ANGLETOFINESHIFT;
- shard->momx = FixedMul(shard->info->speed, finecosine[angle]);
- shard->momy = FixedMul(shard->info->speed, finesine[angle]);
- shard->momz = -.6*FRACUNIT;
- P_CheckMissileSpawn(shard);
- }
+ for (i = 0; i < 8; i++)
+ {
+ shard = P_SpawnMobj(ice->x, ice->y, ice->z, MT_HEADFX2);
+ angle = i * ANG45;
+ shard->target = ice->target;
+ shard->angle = angle;
+ angle >>= ANGLETOFINESHIFT;
+ shard->momx = FixedMul(shard->info->speed, finecosine[angle]);
+ shard->momy = FixedMul(shard->info->speed, finesine[angle]);
+ shard->momz = -.6 * FRACUNIT;
+ P_CheckMissileSpawn(shard);
+ }
}
//----------------------------------------------------------------------------
@@ -1871,15 +1922,15 @@ void A_HeadIceImpact(mobj_t *ice)
//
//----------------------------------------------------------------------------
-void A_HeadFireGrow(mobj_t *fire)
+void A_HeadFireGrow(mobj_t * fire)
{
- fire->health--;
- fire->z += 9*FRACUNIT;
- if(fire->health == 0)
- {
- fire->damage = fire->info->damage;
- P_SetMobjState(fire, S_HEADFX3_4);
- }
+ fire->health--;
+ fire->z += 9 * FRACUNIT;
+ if (fire->health == 0)
+ {
+ fire->damage = fire->info->damage;
+ P_SetMobjState(fire, S_HEADFX3_4);
+ }
}
//----------------------------------------------------------------------------
@@ -1888,16 +1939,16 @@ void A_HeadFireGrow(mobj_t *fire)
//
//----------------------------------------------------------------------------
-void A_SnakeAttack(mobj_t *actor)
+void A_SnakeAttack(mobj_t * actor)
{
- if(!actor->target)
- {
- P_SetMobjState(actor, S_SNAKE_WALK1);
- return;
- }
- S_StartSound(actor, actor->info->attacksound);
- A_FaceTarget(actor);
- P_SpawnMissile(actor, actor->target, MT_SNAKEPRO_A);
+ if (!actor->target)
+ {
+ P_SetMobjState(actor, S_SNAKE_WALK1);
+ return;
+ }
+ S_StartSound(actor, actor->info->attacksound);
+ A_FaceTarget(actor);
+ P_SpawnMissile(actor, actor->target, MT_SNAKEPRO_A);
}
//----------------------------------------------------------------------------
@@ -1906,16 +1957,16 @@ void A_SnakeAttack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_SnakeAttack2(mobj_t *actor)
+void A_SnakeAttack2(mobj_t * actor)
{
- if(!actor->target)
- {
- P_SetMobjState(actor, S_SNAKE_WALK1);
- return;
- }
- S_StartSound(actor, actor->info->attacksound);
- A_FaceTarget(actor);
- P_SpawnMissile(actor, actor->target, MT_SNAKEPRO_B);
+ if (!actor->target)
+ {
+ P_SetMobjState(actor, S_SNAKE_WALK1);
+ return;
+ }
+ S_StartSound(actor, actor->info->attacksound);
+ A_FaceTarget(actor);
+ P_SpawnMissile(actor, actor->target, MT_SNAKEPRO_B);
}
//----------------------------------------------------------------------------
@@ -1924,20 +1975,20 @@ void A_SnakeAttack2(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ClinkAttack(mobj_t *actor)
+void A_ClinkAttack(mobj_t * actor)
{
- int damage;
+ int damage;
- if(!actor->target)
- {
- return;
- }
- S_StartSound(actor, actor->info->attacksound);
- if(P_CheckMeleeRange(actor))
- {
- damage = ((P_Random()%7)+3);
- P_DamageMobj(actor->target, actor, actor, damage);
- }
+ if (!actor->target)
+ {
+ return;
+ }
+ S_StartSound(actor, actor->info->attacksound);
+ if (P_CheckMeleeRange(actor))
+ {
+ damage = ((P_Random() % 7) + 3);
+ P_DamageMobj(actor->target, actor, actor, damage);
+ }
}
//----------------------------------------------------------------------------
@@ -1946,9 +1997,9 @@ void A_ClinkAttack(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_GhostOff(mobj_t *actor)
+void A_GhostOff(mobj_t * actor)
{
- actor->flags &= ~MF_SHADOW;
+ actor->flags &= ~MF_SHADOW;
}
//----------------------------------------------------------------------------
@@ -1957,10 +2008,10 @@ void A_GhostOff(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_WizAtk1(mobj_t *actor)
+void A_WizAtk1(mobj_t * actor)
{
- A_FaceTarget(actor);
- actor->flags &= ~MF_SHADOW;
+ A_FaceTarget(actor);
+ actor->flags &= ~MF_SHADOW;
}
//----------------------------------------------------------------------------
@@ -1969,10 +2020,10 @@ void A_WizAtk1(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_WizAtk2(mobj_t *actor)
+void A_WizAtk2(mobj_t * actor)
{
- A_FaceTarget(actor);
- actor->flags |= MF_SHADOW;
+ A_FaceTarget(actor);
+ actor->flags |= MF_SHADOW;
}
//----------------------------------------------------------------------------
@@ -1981,31 +2032,31 @@ void A_WizAtk2(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_WizAtk3(mobj_t *actor)
+void A_WizAtk3(mobj_t * actor)
{
- mobj_t *mo;
- angle_t angle;
- fixed_t momz;
+ mobj_t *mo;
+ angle_t angle;
+ fixed_t momz;
- actor->flags &= ~MF_SHADOW;
- if(!actor->target)
- {
- return;
- }
- S_StartSound(actor, actor->info->attacksound);
- if(P_CheckMeleeRange(actor))
- {
- P_DamageMobj(actor->target, actor, actor, HITDICE(4));
- return;
- }
- mo = P_SpawnMissile(actor, actor->target, MT_WIZFX1);
- if(mo)
- {
- momz = mo->momz;
- angle = mo->angle;
- P_SpawnMissileAngle(actor, MT_WIZFX1, angle-(ANG45/8), momz);
- P_SpawnMissileAngle(actor, MT_WIZFX1, angle+(ANG45/8), momz);
- }
+ actor->flags &= ~MF_SHADOW;
+ if (!actor->target)
+ {
+ return;
+ }
+ S_StartSound(actor, actor->info->attacksound);
+ if (P_CheckMeleeRange(actor))
+ {
+ P_DamageMobj(actor->target, actor, actor, HITDICE(4));
+ return;
+ }
+ mo = P_SpawnMissile(actor, actor->target, MT_WIZFX1);
+ if (mo)
+ {
+ momz = mo->momz;
+ angle = mo->angle;
+ P_SpawnMissileAngle(actor, MT_WIZFX1, angle - (ANG45 / 8), momz);
+ P_SpawnMissileAngle(actor, MT_WIZFX1, angle + (ANG45 / 8), momz);
+ }
}
//----------------------------------------------------------------------------
@@ -2014,39 +2065,39 @@ void A_WizAtk3(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_Scream(mobj_t *actor)
-{
- switch(actor->type)
- {
- case MT_CHICPLAYER:
- case MT_SORCERER1:
- case MT_MINOTAUR:
- // Make boss death sounds full volume
- S_StartSound(NULL, actor->info->deathsound);
- break;
- case MT_PLAYER:
- // Handle the different player death screams
- if(actor->special1 < 10)
- { // Wimpy death sound
- S_StartSound(actor, sfx_plrwdth);
- }
- else if(actor->health > -50)
- { // Normal death sound
- S_StartSound(actor, actor->info->deathsound);
- }
- else if(actor->health > -100)
- { // Crazy death sound
- S_StartSound(actor, sfx_plrcdth);
- }
- else
- { // Extreme death sound
- S_StartSound(actor, sfx_gibdth);
- }
- break;
- default:
- S_StartSound(actor, actor->info->deathsound);
- break;
- }
+void A_Scream(mobj_t * actor)
+{
+ switch (actor->type)
+ {
+ case MT_CHICPLAYER:
+ case MT_SORCERER1:
+ case MT_MINOTAUR:
+ // Make boss death sounds full volume
+ S_StartSound(NULL, actor->info->deathsound);
+ break;
+ case MT_PLAYER:
+ // Handle the different player death screams
+ if (actor->special1 < 10)
+ { // Wimpy death sound
+ S_StartSound(actor, sfx_plrwdth);
+ }
+ else if (actor->health > -50)
+ { // Normal death sound
+ S_StartSound(actor, actor->info->deathsound);
+ }
+ else if (actor->health > -100)
+ { // Crazy death sound
+ S_StartSound(actor, sfx_plrcdth);
+ }
+ else
+ { // Extreme death sound
+ S_StartSound(actor, sfx_gibdth);
+ }
+ break;
+ default:
+ S_StartSound(actor, actor->info->deathsound);
+ break;
+ }
}
//---------------------------------------------------------------------------
@@ -2055,21 +2106,21 @@ void A_Scream(mobj_t *actor)
//
//---------------------------------------------------------------------------
-void P_DropItem(mobj_t *source, mobjtype_t type, int special, int chance)
+void P_DropItem(mobj_t * source, mobjtype_t type, int special, int chance)
{
- mobj_t *mo;
+ mobj_t *mo;
- if(P_Random() > chance)
- {
- return;
- }
- mo = P_SpawnMobj(source->x, source->y,
- source->z+(source->height>>1), type);
- mo->momx = (P_Random()-P_Random())<<8;
- mo->momy = (P_Random()-P_Random())<<8;
- mo->momz = FRACUNIT*5+(P_Random()<<10);
- mo->flags |= MF_DROPPED;
- mo->health = special;
+ if (P_Random() > chance)
+ {
+ return;
+ }
+ mo = P_SpawnMobj(source->x, source->y,
+ source->z + (source->height >> 1), type);
+ mo->momx = (P_Random() - P_Random()) << 8;
+ mo->momy = (P_Random() - P_Random()) << 8;
+ mo->momz = FRACUNIT * 5 + (P_Random() << 10);
+ mo->flags |= MF_DROPPED;
+ mo->health = special;
}
//----------------------------------------------------------------------------
@@ -2078,46 +2129,46 @@ void P_DropItem(mobj_t *source, mobjtype_t type, int special, int chance)
//
//----------------------------------------------------------------------------
-void A_NoBlocking(mobj_t *actor)
-{
- actor->flags &= ~MF_SOLID;
- // Check for monsters dropping things
- switch(actor->type)
- {
- case MT_MUMMY:
- case MT_MUMMYLEADER:
- case MT_MUMMYGHOST:
- case MT_MUMMYLEADERGHOST:
- P_DropItem(actor, MT_AMGWNDWIMPY, 3, 84);
- break;
- case MT_KNIGHT:
- case MT_KNIGHTGHOST:
- P_DropItem(actor, MT_AMCBOWWIMPY, 5, 84);
- break;
- case MT_WIZARD:
- P_DropItem(actor, MT_AMBLSRWIMPY, 10, 84);
- P_DropItem(actor, MT_ARTITOMEOFPOWER, 0, 4);
- break;
- case MT_HEAD:
- P_DropItem(actor, MT_AMBLSRWIMPY, 10, 84);
- P_DropItem(actor, MT_ARTIEGG, 0, 51);
- break;
- case MT_BEAST:
- P_DropItem(actor, MT_AMCBOWWIMPY, 10, 84);
- break;
- case MT_CLINK:
- P_DropItem(actor, MT_AMSKRDWIMPY, 20, 84);
- break;
- case MT_SNAKE:
- P_DropItem(actor, MT_AMPHRDWIMPY, 5, 84);
- break;
- case MT_MINOTAUR:
- P_DropItem(actor, MT_ARTISUPERHEAL, 0, 51);
- P_DropItem(actor, MT_AMPHRDWIMPY, 10, 84);
- break;
- default:
- break;
- }
+void A_NoBlocking(mobj_t * actor)
+{
+ actor->flags &= ~MF_SOLID;
+ // Check for monsters dropping things
+ switch (actor->type)
+ {
+ case MT_MUMMY:
+ case MT_MUMMYLEADER:
+ case MT_MUMMYGHOST:
+ case MT_MUMMYLEADERGHOST:
+ P_DropItem(actor, MT_AMGWNDWIMPY, 3, 84);
+ break;
+ case MT_KNIGHT:
+ case MT_KNIGHTGHOST:
+ P_DropItem(actor, MT_AMCBOWWIMPY, 5, 84);
+ break;
+ case MT_WIZARD:
+ P_DropItem(actor, MT_AMBLSRWIMPY, 10, 84);
+ P_DropItem(actor, MT_ARTITOMEOFPOWER, 0, 4);
+ break;
+ case MT_HEAD:
+ P_DropItem(actor, MT_AMBLSRWIMPY, 10, 84);
+ P_DropItem(actor, MT_ARTIEGG, 0, 51);
+ break;
+ case MT_BEAST:
+ P_DropItem(actor, MT_AMCBOWWIMPY, 10, 84);
+ break;
+ case MT_CLINK:
+ P_DropItem(actor, MT_AMSKRDWIMPY, 20, 84);
+ break;
+ case MT_SNAKE:
+ P_DropItem(actor, MT_AMPHRDWIMPY, 5, 84);
+ break;
+ case MT_MINOTAUR:
+ P_DropItem(actor, MT_ARTISUPERHEAL, 0, 51);
+ P_DropItem(actor, MT_AMPHRDWIMPY, 10, 84);
+ break;
+ default:
+ break;
+ }
}
//----------------------------------------------------------------------------
@@ -2128,28 +2179,28 @@ void A_NoBlocking(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_Explode(mobj_t *actor)
+void A_Explode(mobj_t * actor)
{
- int damage;
+ int damage;
- damage = 128;
- switch(actor->type)
- {
- case MT_FIREBOMB: // Time Bombs
- actor->z += 32*FRACUNIT;
- actor->flags &= ~MF_SHADOW;
- break;
- case MT_MNTRFX2: // Minotaur floor fire
- damage = 24;
- break;
- case MT_SOR2FX1: // D'Sparil missile
- damage = 80+(P_Random()&31);
- break;
- default:
- break;
- }
- P_RadiusAttack(actor, actor->target, damage);
- P_HitFloor(actor);
+ damage = 128;
+ switch (actor->type)
+ {
+ case MT_FIREBOMB: // Time Bombs
+ actor->z += 32 * FRACUNIT;
+ actor->flags &= ~MF_SHADOW;
+ break;
+ case MT_MNTRFX2: // Minotaur floor fire
+ damage = 24;
+ break;
+ case MT_SOR2FX1: // D'Sparil missile
+ damage = 80 + (P_Random() & 31);
+ break;
+ default:
+ break;
+ }
+ P_RadiusAttack(actor, actor->target, damage);
+ P_HitFloor(actor);
}
//----------------------------------------------------------------------------
@@ -2158,28 +2209,28 @@ void A_Explode(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_PodPain(mobj_t *actor)
+void A_PodPain(mobj_t * actor)
{
- int i;
- int count;
- int chance;
- mobj_t *goo;
+ int i;
+ int count;
+ int chance;
+ mobj_t *goo;
- chance = P_Random();
- if(chance < 128)
- {
- return;
- }
- count = chance > 240 ? 2 : 1;
- for(i = 0; i < count; i++)
- {
- goo = P_SpawnMobj(actor->x, actor->y,
- actor->z+48*FRACUNIT, MT_PODGOO);
- goo->target = actor;
- goo->momx = (P_Random()-P_Random())<<9;
- goo->momy = (P_Random()-P_Random())<<9;
- goo->momz = FRACUNIT/2+(P_Random()<<9);
- }
+ chance = P_Random();
+ if (chance < 128)
+ {
+ return;
+ }
+ count = chance > 240 ? 2 : 1;
+ for (i = 0; i < count; i++)
+ {
+ goo = P_SpawnMobj(actor->x, actor->y,
+ actor->z + 48 * FRACUNIT, MT_PODGOO);
+ goo->target = actor;
+ goo->momx = (P_Random() - P_Random()) << 9;
+ goo->momy = (P_Random() - P_Random()) << 9;
+ goo->momz = FRACUNIT / 2 + (P_Random() << 9);
+ }
}
//----------------------------------------------------------------------------
@@ -2188,18 +2239,18 @@ void A_PodPain(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_RemovePod(mobj_t *actor)
+void A_RemovePod(mobj_t * actor)
{
- mobj_t *mo;
+ mobj_t *mo;
- if(actor->special2)
- {
- mo = (mobj_t *)actor->special2;
- if(mo->special1 > 0)
- {
- mo->special1--;
- }
- }
+ if (actor->special2)
+ {
+ mo = (mobj_t *) actor->special2;
+ if (mo->special1 > 0)
+ {
+ mo->special1--;
+ }
+ }
}
//----------------------------------------------------------------------------
@@ -2210,32 +2261,32 @@ void A_RemovePod(mobj_t *actor)
#define MAX_GEN_PODS 16
-void A_MakePod(mobj_t *actor)
+void A_MakePod(mobj_t * actor)
{
- mobj_t *mo;
- fixed_t x;
- fixed_t y;
- fixed_t z;
+ mobj_t *mo;
+ fixed_t x;
+ fixed_t y;
+ fixed_t z;
- if(actor->special1 == MAX_GEN_PODS)
- { // Too many generated pods
- return;
- }
- x = actor->x;
- y = actor->y;
- z = actor->z;
- mo = P_SpawnMobj(x, y, ONFLOORZ, MT_POD);
- if(P_CheckPosition(mo, x, y) == false)
- { // Didn't fit
- P_RemoveMobj(mo);
- return;
- }
- P_SetMobjState(mo, S_POD_GROW1);
- P_ThrustMobj(mo, P_Random()<<24, (fixed_t)(4.5*FRACUNIT));
- S_StartSound(mo, sfx_newpod);
- actor->special1++; // Increment generated pod count
- mo->special2 = (int)actor; // Link the generator to the pod
- return;
+ if (actor->special1 == MAX_GEN_PODS)
+ { // Too many generated pods
+ return;
+ }
+ x = actor->x;
+ y = actor->y;
+ z = actor->z;
+ mo = P_SpawnMobj(x, y, ONFLOORZ, MT_POD);
+ if (P_CheckPosition(mo, x, y) == false)
+ { // Didn't fit
+ P_RemoveMobj(mo);
+ return;
+ }
+ P_SetMobjState(mo, S_POD_GROW1);
+ P_ThrustMobj(mo, P_Random() << 24, (fixed_t) (4.5 * FRACUNIT));
+ S_StartSound(mo, sfx_newpod);
+ actor->special1++; // Increment generated pod count
+ mo->special2 = (int) actor; // Link the generator to the pod
+ return;
}
//----------------------------------------------------------------------------
@@ -2248,22 +2299,21 @@ void A_MakePod(mobj_t *actor)
void P_Massacre(void)
{
- mobj_t *mo;
- thinker_t *think;
+ mobj_t *mo;
+ thinker_t *think;
- for(think = thinkercap.next; think != &thinkercap;
- think = think->next)
- {
- if(think->function != P_MobjThinker)
- { // Not a mobj thinker
- continue;
- }
- mo = (mobj_t *)think;
- if((mo->flags&MF_COUNTKILL) && (mo->health > 0))
- {
- P_DamageMobj(mo, NULL, NULL, 10000);
- }
- }
+ for (think = thinkercap.next; think != &thinkercap; think = think->next)
+ {
+ if (think->function != P_MobjThinker)
+ { // Not a mobj thinker
+ continue;
+ }
+ mo = (mobj_t *) think;
+ if ((mo->flags & MF_COUNTKILL) && (mo->health > 0))
+ {
+ P_DamageMobj(mo, NULL, NULL, 10000);
+ }
+ }
}
//----------------------------------------------------------------------------
@@ -2274,48 +2324,47 @@ void P_Massacre(void)
//
//----------------------------------------------------------------------------
-void A_BossDeath(mobj_t *actor)
-{
- mobj_t *mo;
- thinker_t *think;
- line_t dummyLine;
- static mobjtype_t bossType[6] =
- {
- MT_HEAD,
- MT_MINOTAUR,
- MT_SORCERER2,
- MT_HEAD,
- MT_MINOTAUR,
- -1
- };
-
- if(gamemap != 8)
- { // Not a boss level
- return;
- }
- if(actor->type != bossType[gameepisode-1])
- { // Not considered a boss in this episode
- return;
- }
- // Make sure all bosses are dead
- for(think = thinkercap.next; think != &thinkercap; think = think->next)
- {
- if(think->function != P_MobjThinker)
- { // Not a mobj thinker
- continue;
- }
- mo = (mobj_t *)think;
- if((mo != actor) && (mo->type == actor->type) && (mo->health > 0))
- { // Found a living boss
- return;
- }
- }
- if(gameepisode > 1)
- { // Kill any remaining monsters
- P_Massacre();
- }
- dummyLine.tag = 666;
- EV_DoFloor(&dummyLine, lowerFloor);
+void A_BossDeath(mobj_t * actor)
+{
+ mobj_t *mo;
+ thinker_t *think;
+ line_t dummyLine;
+ static mobjtype_t bossType[6] = {
+ MT_HEAD,
+ MT_MINOTAUR,
+ MT_SORCERER2,
+ MT_HEAD,
+ MT_MINOTAUR,
+ -1
+ };
+
+ if (gamemap != 8)
+ { // Not a boss level
+ return;
+ }
+ if (actor->type != bossType[gameepisode - 1])
+ { // Not considered a boss in this episode
+ return;
+ }
+ // Make sure all bosses are dead
+ for (think = thinkercap.next; think != &thinkercap; think = think->next)
+ {
+ if (think->function != P_MobjThinker)
+ { // Not a mobj thinker
+ continue;
+ }
+ mo = (mobj_t *) think;
+ if ((mo != actor) && (mo->type == actor->type) && (mo->health > 0))
+ { // Found a living boss
+ return;
+ }
+ }
+ if (gameepisode > 1)
+ { // Kill any remaining monsters
+ P_Massacre();
+ }
+ dummyLine.tag = 666;
+ EV_DoFloor(&dummyLine, lowerFloor);
}
//----------------------------------------------------------------------------
@@ -2324,22 +2373,22 @@ void A_BossDeath(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_ESound(mobj_t *mo)
+void A_ESound(mobj_t * mo)
{
- int sound;
+ int sound;
- switch(mo->type)
- {
- case MT_SOUNDWATERFALL:
- sound = sfx_waterfl;
- break;
- case MT_SOUNDWIND:
- sound = sfx_wind;
- break;
- default:
- break;
- }
- S_StartSound(mo, sound);
+ switch (mo->type)
+ {
+ case MT_SOUNDWATERFALL:
+ sound = sfx_waterfl;
+ break;
+ case MT_SOUNDWIND:
+ sound = sfx_wind;
+ break;
+ default:
+ break;
+ }
+ S_StartSound(mo, sound);
}
//----------------------------------------------------------------------------
@@ -2348,14 +2397,14 @@ void A_ESound(mobj_t *mo)
//
//----------------------------------------------------------------------------
-void A_SpawnTeleGlitter(mobj_t *actor)
+void A_SpawnTeleGlitter(mobj_t * actor)
{
- mobj_t *mo;
+ mobj_t *mo;
- mo = P_SpawnMobj(actor->x+((P_Random()&31)-16)*FRACUNIT,
- actor->y+((P_Random()&31)-16)*FRACUNIT,
- actor->subsector->sector->floorheight, MT_TELEGLITTER);
- mo->momz = FRACUNIT/4;
+ mo = P_SpawnMobj(actor->x + ((P_Random() & 31) - 16) * FRACUNIT,
+ actor->y + ((P_Random() & 31) - 16) * FRACUNIT,
+ actor->subsector->sector->floorheight, MT_TELEGLITTER);
+ mo->momz = FRACUNIT / 4;
}
//----------------------------------------------------------------------------
@@ -2364,14 +2413,14 @@ void A_SpawnTeleGlitter(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_SpawnTeleGlitter2(mobj_t *actor)
+void A_SpawnTeleGlitter2(mobj_t * actor)
{
- mobj_t *mo;
+ mobj_t *mo;
- mo = P_SpawnMobj(actor->x+((P_Random()&31)-16)*FRACUNIT,
- actor->y+((P_Random()&31)-16)*FRACUNIT,
- actor->subsector->sector->floorheight, MT_TELEGLITTER2);
- mo->momz = FRACUNIT/4;
+ mo = P_SpawnMobj(actor->x + ((P_Random() & 31) - 16) * FRACUNIT,
+ actor->y + ((P_Random() & 31) - 16) * FRACUNIT,
+ actor->subsector->sector->floorheight, MT_TELEGLITTER2);
+ mo->momz = FRACUNIT / 4;
}
//----------------------------------------------------------------------------
@@ -2380,12 +2429,12 @@ void A_SpawnTeleGlitter2(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_AccTeleGlitter(mobj_t *actor)
+void A_AccTeleGlitter(mobj_t * actor)
{
- if(++actor->health > 35)
- {
- actor->momz += actor->momz/2;
- }
+ if (++actor->health > 35)
+ {
+ actor->momz += actor->momz / 2;
+ }
}
//----------------------------------------------------------------------------
@@ -2394,28 +2443,28 @@ void A_AccTeleGlitter(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_InitKeyGizmo(mobj_t *gizmo)
+void A_InitKeyGizmo(mobj_t * gizmo)
{
- mobj_t *mo;
- statenum_t state;
+ mobj_t *mo;
+ statenum_t state;
- switch(gizmo->type)
- {
- case MT_KEYGIZMOBLUE:
- state = S_KGZ_BLUEFLOAT1;
- break;
- case MT_KEYGIZMOGREEN:
- state = S_KGZ_GREENFLOAT1;
- break;
- case MT_KEYGIZMOYELLOW:
- state = S_KGZ_YELLOWFLOAT1;
- break;
- default:
- break;
- }
- mo = P_SpawnMobj(gizmo->x, gizmo->y, gizmo->z+60*FRACUNIT,
- MT_KEYGIZMOFLOAT);
- P_SetMobjState(mo, state);
+ switch (gizmo->type)
+ {
+ case MT_KEYGIZMOBLUE:
+ state = S_KGZ_BLUEFLOAT1;
+ break;
+ case MT_KEYGIZMOGREEN:
+ state = S_KGZ_GREENFLOAT1;
+ break;
+ case MT_KEYGIZMOYELLOW:
+ state = S_KGZ_YELLOWFLOAT1;
+ break;
+ default:
+ break;
+ }
+ mo = P_SpawnMobj(gizmo->x, gizmo->y, gizmo->z + 60 * FRACUNIT,
+ MT_KEYGIZMOFLOAT);
+ P_SetMobjState(mo, state);
}
//----------------------------------------------------------------------------
@@ -2424,9 +2473,9 @@ void A_InitKeyGizmo(mobj_t *gizmo)
//
//----------------------------------------------------------------------------
-void A_VolcanoSet(mobj_t *volcano)
+void A_VolcanoSet(mobj_t * volcano)
{
- volcano->tics = 105+(P_Random()&127);
+ volcano->tics = 105 + (P_Random() & 127);
}
//----------------------------------------------------------------------------
@@ -2435,28 +2484,27 @@ void A_VolcanoSet(mobj_t *volcano)
//
//----------------------------------------------------------------------------
-void A_VolcanoBlast(mobj_t *volcano)
+void A_VolcanoBlast(mobj_t * volcano)
{
- int i;
- int count;
- mobj_t *blast;
- angle_t angle;
+ int i;
+ int count;
+ mobj_t *blast;
+ angle_t angle;
- count = 1+(P_Random()%3);
- for(i = 0; i < count; i++)
- {
- blast = P_SpawnMobj(volcano->x, volcano->y,
- volcano->z+44*FRACUNIT, MT_VOLCANOBLAST); // MT_VOLCANOBLAST
- blast->target = volcano;
- angle = P_Random()<<24;
- blast->angle = angle;
- angle >>= ANGLETOFINESHIFT;
- blast->momx = FixedMul(1*FRACUNIT, finecosine[angle]);
- blast->momy = FixedMul(1*FRACUNIT, finesine[angle]);
- blast->momz = (2.5*FRACUNIT)+(P_Random()<<10);
- S_StartSound(blast, sfx_volsht);
- P_CheckMissileSpawn(blast);
- }
+ count = 1 + (P_Random() % 3);
+ for (i = 0; i < count; i++)
+ {
+ blast = P_SpawnMobj(volcano->x, volcano->y, volcano->z + 44 * FRACUNIT, MT_VOLCANOBLAST); // MT_VOLCANOBLAST
+ blast->target = volcano;
+ angle = P_Random() << 24;
+ blast->angle = angle;
+ angle >>= ANGLETOFINESHIFT;
+ blast->momx = FixedMul(1 * FRACUNIT, finecosine[angle]);
+ blast->momy = FixedMul(1 * FRACUNIT, finesine[angle]);
+ blast->momz = (2.5 * FRACUNIT) + (P_Random() << 10);
+ S_StartSound(blast, sfx_volsht);
+ P_CheckMissileSpawn(blast);
+ }
}
//----------------------------------------------------------------------------
@@ -2465,32 +2513,32 @@ void A_VolcanoBlast(mobj_t *volcano)
//
//----------------------------------------------------------------------------
-void A_VolcBallImpact(mobj_t *ball)
+void A_VolcBallImpact(mobj_t * ball)
{
- int i;
- mobj_t *tiny;
- angle_t angle;
+ int i;
+ mobj_t *tiny;
+ angle_t angle;
- if(ball->z <= ball->floorz)
- {
- ball->flags |= MF_NOGRAVITY;
- ball->flags2 &= ~MF2_LOGRAV;
- ball->z += 28*FRACUNIT;
- //ball->momz = 3*FRACUNIT;
- }
- P_RadiusAttack(ball, ball->target, 25);
- for(i = 0; i < 4; i++)
- {
- tiny = P_SpawnMobj(ball->x, ball->y, ball->z, MT_VOLCANOTBLAST);
- tiny->target = ball;
- angle = i*ANG90;
- tiny->angle = angle;
- angle >>= ANGLETOFINESHIFT;
- tiny->momx = FixedMul(FRACUNIT*.7, finecosine[angle]);
- tiny->momy = FixedMul(FRACUNIT*.7, finesine[angle]);
- tiny->momz = FRACUNIT+(P_Random()<<9);
- P_CheckMissileSpawn(tiny);
- }
+ if (ball->z <= ball->floorz)
+ {
+ ball->flags |= MF_NOGRAVITY;
+ ball->flags2 &= ~MF2_LOGRAV;
+ ball->z += 28 * FRACUNIT;
+ //ball->momz = 3*FRACUNIT;
+ }
+ P_RadiusAttack(ball, ball->target, 25);
+ for (i = 0; i < 4; i++)
+ {
+ tiny = P_SpawnMobj(ball->x, ball->y, ball->z, MT_VOLCANOTBLAST);
+ tiny->target = ball;
+ angle = i * ANG90;
+ tiny->angle = angle;
+ angle >>= ANGLETOFINESHIFT;
+ tiny->momx = FixedMul(FRACUNIT * .7, finecosine[angle]);
+ tiny->momy = FixedMul(FRACUNIT * .7, finesine[angle]);
+ tiny->momz = FRACUNIT + (P_Random() << 9);
+ P_CheckMissileSpawn(tiny);
+ }
}
//----------------------------------------------------------------------------
@@ -2499,27 +2547,27 @@ void A_VolcBallImpact(mobj_t *ball)
//
//----------------------------------------------------------------------------
-void A_SkullPop(mobj_t *actor)
+void A_SkullPop(mobj_t * actor)
{
- mobj_t *mo;
- player_t *player;
+ mobj_t *mo;
+ player_t *player;
- actor->flags &= ~MF_SOLID;
- mo = P_SpawnMobj(actor->x, actor->y, actor->z+48*FRACUNIT,
- MT_BLOODYSKULL);
- //mo->target = actor;
- mo->momx = (P_Random()-P_Random())<<9;
- mo->momy = (P_Random()-P_Random())<<9;
- mo->momz = FRACUNIT*2+(P_Random()<<6);
- // Attach player mobj to bloody skull
- player = actor->player;
- actor->player = NULL;
- mo->player = player;
- mo->health = actor->health;
- mo->angle = actor->angle;
- player->mo = mo;
- player->lookdir = 0;
- player->damagecount = 32;
+ actor->flags &= ~MF_SOLID;
+ mo = P_SpawnMobj(actor->x, actor->y, actor->z + 48 * FRACUNIT,
+ MT_BLOODYSKULL);
+ //mo->target = actor;
+ mo->momx = (P_Random() - P_Random()) << 9;
+ mo->momy = (P_Random() - P_Random()) << 9;
+ mo->momz = FRACUNIT * 2 + (P_Random() << 6);
+ // Attach player mobj to bloody skull
+ player = actor->player;
+ actor->player = NULL;
+ mo->player = player;
+ mo->health = actor->health;
+ mo->angle = actor->angle;
+ player->mo = mo;
+ player->lookdir = 0;
+ player->damagecount = 32;
}
//----------------------------------------------------------------------------
@@ -2528,12 +2576,12 @@ void A_SkullPop(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_CheckSkullFloor(mobj_t *actor)
+void A_CheckSkullFloor(mobj_t * actor)
{
- if(actor->z <= actor->floorz)
- {
- P_SetMobjState(actor, S_BLOODYSKULLX1);
- }
+ if (actor->z <= actor->floorz)
+ {
+ P_SetMobjState(actor, S_BLOODYSKULLX1);
+ }
}
//----------------------------------------------------------------------------
@@ -2542,12 +2590,12 @@ void A_CheckSkullFloor(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_CheckSkullDone(mobj_t *actor)
+void A_CheckSkullDone(mobj_t * actor)
{
- if(actor->special2 == 666)
- {
- P_SetMobjState(actor, S_BLOODYSKULLX2);
- }
+ if (actor->special2 == 666)
+ {
+ P_SetMobjState(actor, S_BLOODYSKULLX2);
+ }
}
//----------------------------------------------------------------------------
@@ -2556,12 +2604,12 @@ void A_CheckSkullDone(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_CheckBurnGone(mobj_t *actor)
+void A_CheckBurnGone(mobj_t * actor)
{
- if(actor->special2 == 666)
- {
- P_SetMobjState(actor, S_PLAY_FDTH20);
- }
+ if (actor->special2 == 666)
+ {
+ P_SetMobjState(actor, S_PLAY_FDTH20);
+ }
}
//----------------------------------------------------------------------------
@@ -2570,14 +2618,14 @@ void A_CheckBurnGone(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_FreeTargMobj(mobj_t *mo)
+void A_FreeTargMobj(mobj_t * mo)
{
- mo->momx = mo->momy = mo->momz = 0;
- mo->z = mo->ceilingz+4*FRACUNIT;
- mo->flags &= ~(MF_SHOOTABLE|MF_FLOAT|MF_SKULLFLY|MF_SOLID);
- mo->flags |= MF_CORPSE|MF_DROPOFF|MF_NOGRAVITY;
- mo->flags2 &= ~(MF2_PASSMOBJ|MF2_LOGRAV);
- mo->player = NULL;
+ mo->momx = mo->momy = mo->momz = 0;
+ mo->z = mo->ceilingz + 4 * FRACUNIT;
+ mo->flags &= ~(MF_SHOOTABLE | MF_FLOAT | MF_SKULLFLY | MF_SOLID);
+ mo->flags |= MF_CORPSE | MF_DROPOFF | MF_NOGRAVITY;
+ mo->flags2 &= ~(MF2_PASSMOBJ | MF2_LOGRAV);
+ mo->player = NULL;
}
//----------------------------------------------------------------------------
@@ -2590,14 +2638,14 @@ void A_FreeTargMobj(mobj_t *mo)
mobj_t *bodyque[BODYQUESIZE];
int bodyqueslot;
-void A_AddPlayerCorpse(mobj_t *actor)
+void A_AddPlayerCorpse(mobj_t * actor)
{
- if(bodyqueslot >= BODYQUESIZE)
- { // Too many player corpses - remove an old one
- P_RemoveMobj(bodyque[bodyqueslot%BODYQUESIZE]);
- }
- bodyque[bodyqueslot%BODYQUESIZE] = actor;
- bodyqueslot++;
+ if (bodyqueslot >= BODYQUESIZE)
+ { // Too many player corpses - remove an old one
+ P_RemoveMobj(bodyque[bodyqueslot % BODYQUESIZE]);
+ }
+ bodyque[bodyqueslot % BODYQUESIZE] = actor;
+ bodyqueslot++;
}
//----------------------------------------------------------------------------
@@ -2606,9 +2654,9 @@ void A_AddPlayerCorpse(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_FlameSnd(mobj_t *actor)
+void A_FlameSnd(mobj_t * actor)
{
- S_StartSound(actor, sfx_hedat1); // Burn sound
+ S_StartSound(actor, sfx_hedat1); // Burn sound
}
//----------------------------------------------------------------------------
@@ -2617,10 +2665,10 @@ void A_FlameSnd(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_HideThing(mobj_t *actor)
+void A_HideThing(mobj_t * actor)
{
- //P_UnsetThingPosition(actor);
- actor->flags2 |= MF2_DONTDRAW;
+ //P_UnsetThingPosition(actor);
+ actor->flags2 |= MF2_DONTDRAW;
}
//----------------------------------------------------------------------------
@@ -2629,8 +2677,8 @@ void A_HideThing(mobj_t *actor)
//
//----------------------------------------------------------------------------
-void A_UnHideThing(mobj_t *actor)
+void A_UnHideThing(mobj_t * actor)
{
- //P_SetThingPosition(actor);
- actor->flags2 &= ~MF2_DONTDRAW;
+ //P_SetThingPosition(actor);
+ actor->flags2 &= ~MF2_DONTDRAW;
}