1 // Emacs style mode select -*- C++ -*-
2 //-----------------------------------------------------------------------------
6 // Copyright (C) 1993-1996 by id Software, Inc.
8 // This source is available for distribution and/or modification
9 // only under the terms of the DOOM Source Code License as
10 // published by id Software. All rights reserved.
12 // The source is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
18 // Implements special effects:
19 // Texture animation, height or lighting changes
20 // according to adjacent sectors, respective
21 // utility functions, etc.
23 //-----------------------------------------------------------------------------
30 #pragma options align=mac68k
34 // End-level timer (-TIMER option)
36 extern boolean levelTimer
;
37 extern int levelTimeCount
;
40 // Define values for map objects
41 #define MO_TELEPORTMAN 14
45 void P_InitPicAnims (void);
48 void P_SpawnSpecials (void);
51 void P_UpdateSpecials (void);
71 void P_PlayerInSpecialSector (player_t
* player
);
90 fixed_t
P_FindLowestFloorSurrounding(sector_t
* sec
);
91 fixed_t
P_FindHighestFloorSurrounding(sector_t
* sec
);
94 P_FindNextHighestFloor
98 fixed_t
P_FindLowestCeilingSurrounding(sector_t
* sec
);
99 fixed_t
P_FindHighestCeilingSurrounding(sector_t
* sec
);
102 P_FindSectorFromLineTag
107 P_FindMinSurroundingLight
120 int EV_DoDonut(line_t
* line
);
180 #define STROBEBRIGHT 5
184 void P_SpawnFireFlicker (sector_t
* sector
);
185 void T_LightFlash (lightflash_t
* flash
);
186 void P_SpawnLightFlash (sector_t
* sector
);
187 void T_StrobeFlash (strobe_t
* flash
);
195 void EV_StartLightStrobing(line_t
* line
);
196 void EV_TurnTagLightsOff(line_t
* line
);
203 void T_Glow(glow_t
* g
);
204 void P_SpawnGlowingLight(sector_t
* sector
);
243 // max # of wall switches in a level
244 #define MAXSWITCHES 50
246 // 4 players, 4 buttons each at once, max.
247 #define MAXBUTTONS 16
249 // 1 second, in ticks.
250 #define BUTTONTIME 35
252 extern button_t buttonlist
[MAXBUTTONS
];
255 P_ChangeSwitchTexture
259 void P_InitSwitchList(void);
281 raiseToNearestAndChange
,
308 #define PLATSPEED FRACUNIT
312 extern plat_t
* activeplats
[MAXPLATS
];
314 void T_PlatRaise(plat_t
* plat
);
322 void P_AddActivePlat(plat_t
* plat
);
323 void P_RemoveActivePlat(plat_t
* plat
);
324 void EV_StopPlat(line_t
* line
);
325 void P_ActivateInStasis(int tag
);
354 // 1 = up, 0 = waiting at top, -1 = down
357 // tics to wait at the top
359 // (keep in case a door going down is reset)
360 // when it reaches 0, start going down
367 #define VDOORSPEED FRACUNIT*2
368 #define VDOORWAIT 150
386 void T_VerticalDoor (vldoor_t
* door
);
387 void P_SpawnDoorCloseIn30 (sector_t
* sec
);
390 P_SpawnDoorRaiseIn5Mins
429 sector_t
* frontsector
;
430 sector_t
* backsector
;
461 // how many frames of animation
464 #define SDOORWAIT 35*3
467 // how many diff. types of anims
468 #define MAXSLIDEDOORS 5
470 void P_InitSlidingDoorFrames(void);
501 fixed_t bottomheight
;
506 // 1 = up, 0 = waiting, -1 = down
519 #define CEILSPEED FRACUNIT
521 #define MAXCEILINGS 30
523 extern ceiling_t
* activeceilings
[MAXCEILINGS
];
530 void T_MoveCeiling (ceiling_t
* ceiling
);
531 void P_AddActiveCeiling(ceiling_t
* c
);
532 void P_RemoveActiveCeiling(ceiling_t
* c
);
533 int EV_CeilingCrushStop(line_t
* line
);
534 void P_ActivateInStasisCeiling(line_t
* line
);
542 // lower floor to highest surrounding floor
545 // lower floor to lowest surrounding floor
548 // lower floor to highest surrounding floor VERY FAST
551 // raise floor to lowest surrounding CEILING
554 // raise floor to next highest surrounding floor
557 // raise floor to shortest height texture around it
560 // lower floor to lowest surrounding floor
561 // and change floorpic
565 raiseFloor24AndChange
,
568 // raise to next highest floor, turbo-speed
580 build8
, // slowly build by 8
581 turbo16
// quickly build by 16
596 fixed_t floordestheight
;
603 #define FLOORSPEED FRACUNIT
632 void T_MoveFloor( floormove_t
* floor
);
644 #pragma options align=power
648 //-----------------------------------------------------------------------------
651 // Revision 1.1 2000/02/29 18:21:06 stegerg
652 // Doom port based on ADoomPPC. Read README.AROS!
655 //-----------------------------------------------------------------------------