summaryrefslogtreecommitdiff
path: root/src/heretic/p_telept.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_telept.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_telept.c')
-rw-r--r--src/heretic/p_telept.c267
1 files changed, 145 insertions, 122 deletions
diff --git a/src/heretic/p_telept.c b/src/heretic/p_telept.c
index 614e2c25..31d9198c 100644
--- a/src/heretic/p_telept.c
+++ b/src/heretic/p_telept.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_telept.c
@@ -11,88 +33,89 @@
//
//----------------------------------------------------------------------------
-boolean P_Teleport(mobj_t *thing, fixed_t x, fixed_t y, angle_t angle)
+boolean P_Teleport(mobj_t * thing, fixed_t x, fixed_t y, angle_t angle)
{
- fixed_t oldx;
- fixed_t oldy;
- fixed_t oldz;
- fixed_t aboveFloor;
- fixed_t fogDelta;
- player_t *player;
- unsigned an;
- mobj_t *fog;
+ fixed_t oldx;
+ fixed_t oldy;
+ fixed_t oldz;
+ fixed_t aboveFloor;
+ fixed_t fogDelta;
+ player_t *player;
+ unsigned an;
+ mobj_t *fog;
- oldx = thing->x;
- oldy = thing->y;
- oldz = thing->z;
- aboveFloor = thing->z-thing->floorz;
- if(!P_TeleportMove(thing, x, y))
- {
- return(false);
- }
- if(thing->player)
- {
- player = thing->player;
- if(player->powers[pw_flight] && aboveFloor)
- {
- thing->z = thing->floorz+aboveFloor;
- if(thing->z+thing->height > thing->ceilingz)
- {
- thing->z = thing->ceilingz-thing->height;
- }
- player->viewz = thing->z+player->viewheight;
- }
- else
- {
- thing->z = thing->floorz;
- player->viewz = thing->z+player->viewheight;
- player->lookdir = 0;
- }
- }
- else if(thing->flags&MF_MISSILE)
- {
- thing->z = thing->floorz+aboveFloor;
- if(thing->z+thing->height > thing->ceilingz)
- {
- thing->z = thing->ceilingz-thing->height;
- }
- }
- else
- {
- thing->z = thing->floorz;
- }
- // Spawn teleport fog at source and destination
- fogDelta = thing->flags&MF_MISSILE ? 0 : TELEFOGHEIGHT;
- fog = P_SpawnMobj(oldx, oldy, oldz+fogDelta, MT_TFOG);
- S_StartSound(fog, sfx_telept);
- an = angle>>ANGLETOFINESHIFT;
- fog = P_SpawnMobj(x+20*finecosine[an],
- y+20*finesine[an], thing->z+fogDelta, MT_TFOG);
- S_StartSound(fog, sfx_telept);
- if(thing->player && !thing->player->powers[pw_weaponlevel2])
- { // Freeze player for about .5 sec
- thing->reactiontime = 18;
- }
- thing->angle = angle;
- if(thing->flags2&MF2_FOOTCLIP && P_GetThingFloorType(thing) != FLOOR_SOLID)
- {
- thing->flags2 |= MF2_FEETARECLIPPED;
- }
- else if(thing->flags2&MF2_FEETARECLIPPED)
- {
- thing->flags2 &= ~MF2_FEETARECLIPPED;
- }
- if(thing->flags&MF_MISSILE)
- {
- angle >>= ANGLETOFINESHIFT;
- thing->momx = FixedMul(thing->info->speed, finecosine[angle]);
- thing->momy = FixedMul(thing->info->speed, finesine[angle]);
- }
- else
- {
- thing->momx = thing->momy = thing->momz = 0;
- }
- return(true);
+ oldx = thing->x;
+ oldy = thing->y;
+ oldz = thing->z;
+ aboveFloor = thing->z - thing->floorz;
+ if (!P_TeleportMove(thing, x, y))
+ {
+ return (false);
+ }
+ if (thing->player)
+ {
+ player = thing->player;
+ if (player->powers[pw_flight] && aboveFloor)
+ {
+ thing->z = thing->floorz + aboveFloor;
+ if (thing->z + thing->height > thing->ceilingz)
+ {
+ thing->z = thing->ceilingz - thing->height;
+ }
+ player->viewz = thing->z + player->viewheight;
+ }
+ else
+ {
+ thing->z = thing->floorz;
+ player->viewz = thing->z + player->viewheight;
+ player->lookdir = 0;
+ }
+ }
+ else if (thing->flags & MF_MISSILE)
+ {
+ thing->z = thing->floorz + aboveFloor;
+ if (thing->z + thing->height > thing->ceilingz)
+ {
+ thing->z = thing->ceilingz - thing->height;
+ }
+ }
+ else
+ {
+ thing->z = thing->floorz;
+ }
+ // Spawn teleport fog at source and destination
+ fogDelta = thing->flags & MF_MISSILE ? 0 : TELEFOGHEIGHT;
+ fog = P_SpawnMobj(oldx, oldy, oldz + fogDelta, MT_TFOG);
+ S_StartSound(fog, sfx_telept);
+ an = angle >> ANGLETOFINESHIFT;
+ fog = P_SpawnMobj(x + 20 * finecosine[an],
+ y + 20 * finesine[an], thing->z + fogDelta, MT_TFOG);
+ S_StartSound(fog, sfx_telept);
+ if (thing->player && !thing->player->powers[pw_weaponlevel2])
+ { // Freeze player for about .5 sec
+ thing->reactiontime = 18;
+ }
+ thing->angle = angle;
+ if (thing->flags2 & MF2_FOOTCLIP
+ && P_GetThingFloorType(thing) != FLOOR_SOLID)
+ {
+ thing->flags2 |= MF2_FEETARECLIPPED;
+ }
+ else if (thing->flags2 & MF2_FEETARECLIPPED)
+ {
+ thing->flags2 &= ~MF2_FEETARECLIPPED;
+ }
+ if (thing->flags & MF_MISSILE)
+ {
+ angle >>= ANGLETOFINESHIFT;
+ thing->momx = FixedMul(thing->info->speed, finecosine[angle]);
+ thing->momy = FixedMul(thing->info->speed, finesine[angle]);
+ }
+ else
+ {
+ thing->momx = thing->momy = thing->momz = 0;
+ }
+ return (true);
}
//----------------------------------------------------------------------------
@@ -101,48 +124,48 @@ boolean P_Teleport(mobj_t *thing, fixed_t x, fixed_t y, angle_t angle)
//
//----------------------------------------------------------------------------
-boolean EV_Teleport(line_t *line, int side, mobj_t *thing)
+boolean EV_Teleport(line_t * line, int side, mobj_t * thing)
{
- int i;
- int tag;
- mobj_t *m;
- thinker_t *thinker;
- sector_t *sector;
+ int i;
+ int tag;
+ mobj_t *m;
+ thinker_t *thinker;
+ sector_t *sector;
- if(thing->flags2&MF2_NOTELEPORT)
- {
- return(false);
- }
- if(side == 1)
- { // Don't teleport when crossing back side
- return(false);
- }
- tag = line->tag;
- for(i = 0; i < numsectors; i++)
- {
- if(sectors[i].tag == tag)
- {
- thinker = thinkercap.next;
- for(thinker = thinkercap.next; thinker != &thinkercap;
- thinker = thinker->next)
- {
- if(thinker->function != P_MobjThinker)
- { // Not a mobj
- continue;
- }
- m = (mobj_t *)thinker;
- if(m->type != MT_TELEPORTMAN )
- { // Not a teleportman
- continue;
- }
- sector = m->subsector->sector;
- if(sector-sectors != i)
- { // Wrong sector
- continue;
- }
- return(P_Teleport(thing, m->x, m->y, m->angle));
- }
- }
- }
- return(false);
+ if (thing->flags2 & MF2_NOTELEPORT)
+ {
+ return (false);
+ }
+ if (side == 1)
+ { // Don't teleport when crossing back side
+ return (false);
+ }
+ tag = line->tag;
+ for (i = 0; i < numsectors; i++)
+ {
+ if (sectors[i].tag == tag)
+ {
+ thinker = thinkercap.next;
+ for (thinker = thinkercap.next; thinker != &thinkercap;
+ thinker = thinker->next)
+ {
+ if (thinker->function != P_MobjThinker)
+ { // Not a mobj
+ continue;
+ }
+ m = (mobj_t *) thinker;
+ if (m->type != MT_TELEPORTMAN)
+ { // Not a teleportman
+ continue;
+ }
+ sector = m->subsector->sector;
+ if (sector - sectors != i)
+ { // Wrong sector
+ continue;
+ }
+ return (P_Teleport(thing, m->x, m->y, m->angle));
+ }
+ }
+ }
+ return (false);
}