Odamex
Setting the Standard in Multiplayer Doom
common/p_lnspec.h
Go to the documentation of this file.
00001 // Emacs style mode select   -*- C++ -*- 
00002 //-----------------------------------------------------------------------------
00003 //
00004 // $Id: p_lnspec.h 2117 2011-02-22 20:33:04Z mike $
00005 //
00006 // Copyright (C) 1998-2006 by Randy Heit (ZDoom).
00007 // Copyright (C) 2006-2010 by The Odamex Team.
00008 //
00009 // This program is free software; you can redistribute it and/or
00010 // modify it under the terms of the GNU General Public License
00011 // as published by the Free Software Foundation; either version 2
00012 // of the License, or (at your option) any later version.
00013 //
00014 // This program is distributed in the hope that it will be useful,
00015 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017 // GNU General Public License for more details.
00018 //
00019 // DESCRIPTION:
00020 //      New line and sector specials
00021 //
00022 //-----------------------------------------------------------------------------
00023 
00024 
00025 #ifndef __P_LNSPEC_H__
00026 #define __P_LNSPEC_H__
00027 
00028 #include "doomtype.h"
00029 
00030 typedef enum {
00031     // Removed 11/3/06 by ML - No more polyobjects! (1-9)
00032     // [ML] 9/9/10 - They're back baby!
00033     Polyobj_StartLine = 1,
00034         Polyobj_RotateLeft = 2,
00035         Polyobj_RotateRight = 3,
00036         Polyobj_Move = 4,
00037         Polyobj_ExplicitLine = 5,
00038         Polyobj_MoveTimes8 = 6,
00039         Polyobj_DoorSwing = 7,
00040         Polyobj_DoorSlide = 8,
00041         Door_Close = 10,
00042         Door_Open = 11,
00043         Door_Raise = 12,
00044         Door_LockedRaise = 13,
00045 
00046         Floor_LowerByValue = 20,
00047         Floor_LowerToLowest = 21,
00048         Floor_LowerToNearest = 22,
00049         Floor_RaiseByValue = 23,
00050         Floor_RaiseToHighest = 24,
00051         Floor_RaiseToNearest = 25,
00052 
00053         Stairs_BuildDown = 26,
00054         Stairs_BuildUp = 27,
00055 
00056         Floor_RaiseAndCrush = 28,
00057 
00058         Pillar_Build = 29,
00059         Pillar_Open = 30,
00060 
00061         Stairs_BuildDownSync = 31,
00062         Stairs_BuildUpSync = 32,
00063 
00064         Floor_RaiseByValueTimes8 = 35,
00065         Floor_LowerByValueTimes8 = 36,
00066 
00067         Ceiling_LowerByValue = 40,
00068         Ceiling_RaiseByValue = 41,
00069         Ceiling_CrushAndRaise = 42,
00070         Ceiling_LowerAndCrush = 43,
00071         Ceiling_CrushStop = 44,
00072         Ceiling_CrushRaiseAndStay = 45,
00073 
00074         Floor_CrushStop = 46,
00075 
00076         Plat_PerpetualRaise = 60,
00077         Plat_Stop = 61,
00078         Plat_DownWaitUpStay = 62,
00079         Plat_DownByValue = 63,
00080         Plat_UpWaitDownStay = 64,
00081         Plat_UpByValue = 65,
00082 
00083         Floor_LowerInstant = 66,
00084         Floor_RaiseInstant = 67,
00085         Floor_MoveToValueTimes8 = 68,
00086 
00087         Ceiling_MoveToValueTimes8 = 69,
00088 
00089         Teleport = 70,
00090         Teleport_NoFog = 71,
00091 
00092         ThrustThing = 72,
00093         DamageThing = 73,
00094 
00095         Teleport_NewMap = 74,
00096         Teleport_EndGame = 75,
00097         ACS_Execute = 80,
00098         ACS_Suspend = 81,
00099         ACS_Terminate = 82,
00100         ACS_LockedExecute = 83,
00101 
00102         Polyobj_OR_RotateLeft = 90,
00103         Polyobj_OR_RotateRight = 91,
00104         Polyobj_OR_Move = 92,
00105         Polyobj_OR_MoveTimes8 = 93,
00106         Pillar_BuildAndCrush = 94,
00107 
00108         FloorAndCeiling_LowerByValue = 95,
00109         FloorAndCeiling_RaiseByValue = 96,
00110 
00111         Scroll_Texture_Left = 100,
00112         Scroll_Texture_Right = 101,
00113         Scroll_Texture_Up = 102,
00114         Scroll_Texture_Down = 103,
00115 
00116         Light_ForceLightning = 109,
00117         Light_RaiseByValue = 110,
00118         Light_LowerByValue = 111,
00119         Light_ChangeToValue = 112,
00120         Light_Fade = 113,
00121         Light_Glow = 114,
00122         Light_Flicker = 115,
00123         Light_Strobe = 116,
00124 
00125         Radius_Quake = 120,     // Earthquake
00126 
00127         Line_SetIdentification = 121,
00128 
00129         UsePuzzleItem = 129,
00130 
00131         Thing_Activate = 130,
00132         Thing_Deactivate = 131,
00133         Thing_Remove = 132,
00134         Thing_Destroy = 133,
00135         Thing_Projectile = 134,
00136         Thing_Spawn = 135,
00137         Thing_ProjectileGravity = 136,
00138         Thing_SpawnNoFog = 137,
00139 
00140         Floor_Waggle = 138,
00141 
00142         Sector_ChangeSound = 140,
00143 
00144 // [RH] Begin new specials for ZDoom
00145         Line_AlignCeiling = 183,
00146         Line_AlignFloor = 184,
00147 
00148         Sector_SetRotation = 185,
00149         Sector_SetCeilingOffset = 186,
00150         Sector_SetFloorOffset = 187,
00151         Sector_SetCeilingScale = 188,
00152         Sector_SetFloorScale = 189,
00153 
00154         Static_Init = 190,
00155 
00156         SetPlayerProperty = 191,
00157 
00158         Ceiling_LowerToHighestFloor = 192,
00159         Ceiling_LowerInstant = 193,
00160         Ceiling_RaiseInstant = 194,
00161         Ceiling_CrushRaiseAndStayA = 195,
00162         Ceiling_CrushAndRaiseA = 196,
00163         Ceiling_CrushAndRaiseSilentA = 197,
00164         Ceiling_RaiseByValueTimes8 = 198,
00165         Ceiling_LowerByValueTimes8 = 199,
00166 
00167         Generic_Floor = 200,
00168         Generic_Ceiling = 201,
00169         Generic_Door = 202,
00170         Generic_Lift = 203,
00171         Generic_Stairs = 204,
00172         Generic_Crusher = 205,
00173 
00174         Plat_DownWaitUpStayLip = 206,
00175         Plat_PerpetualRaiseLip = 207,
00176 
00177         TranslucentLine = 208,
00178         Transfer_Heights = 209,
00179         Transfer_FloorLight = 210,
00180         Transfer_CeilingLight = 211,
00181 
00182         Sector_SetColor = 212,
00183         Sector_SetFade = 213,
00184         Sector_SetDamage = 214,
00185 
00186         Teleport_Line = 215,
00187 
00188         Sector_SetGravity = 216,
00189 
00190         Stairs_BuildUpDoom = 217,
00191 
00192         Sector_SetWind = 218,
00193         Sector_SetFriction = 219,
00194         Sector_SetCurrent = 220,
00195 
00196         Scroll_Texture_Both = 221,
00197         Scroll_Texture_Model = 222,
00198         Scroll_Floor = 223,
00199         Scroll_Ceiling = 224,
00200         Scroll_Texture_Offsets = 225,
00201     ACS_ExecuteAlways = 226,
00202         PointPush_SetForce = 227,
00203 
00204         Plat_RaiseAndStayTx0 = 228,
00205 
00206         Thing_SetGoal = 229,
00207 
00208         Plat_UpByValueStayTx = 230,
00209         Plat_ToggleCeiling = 231,
00210 
00211         Light_StrobeDoom = 232,
00212         Light_MinNeighbor = 233,
00213         Light_MaxNeighbor = 234,
00214 
00215         Floor_TransferTrigger = 235,
00216         Floor_TransferNumeric = 236,
00217 
00218         ChangeCamera = 237,
00219 
00220         Floor_RaiseToLowestCeiling = 238,
00221         Floor_RaiseByValueTxTy = 239,
00222         Floor_RaiseByTexture = 240,
00223         Floor_LowerToLowestTxTy = 241,
00224         Floor_LowerToHighest = 242,
00225 
00226         Exit_Normal = 243,
00227         Exit_Secret = 244,
00228 
00229         Elevator_RaiseToNearest = 245,
00230         Elevator_MoveToFloor = 246,
00231         Elevator_LowerToNearest = 247,
00232 
00233         HealThing = 248,
00234         Door_CloseWaitOpen = 249,
00235 
00236         Floor_Donut = 250,
00237 
00238         FloorAndCeiling_LowerRaise = 251,
00239 
00240         Ceiling_RaiseToNearest = 252,
00241         Ceiling_LowerToLowest = 253,
00242         Ceiling_LowerToFloor = 254,
00243         Ceiling_CrushRaiseAndStaySilA = 255
00244 } linespecial_t;
00245 
00246 typedef enum {
00247         Init_Gravity = 0,
00248         Init_Color = 1,
00249         Init_Damage = 2,
00250         NUM_STATIC_INITS,
00251         Init_TransferSky = 255
00252 } staticinit_t;
00253 
00254 typedef enum {
00255         Light_Phased = 1,
00256         LightSequenceStart = 2,
00257         LightSequenceSpecial1 = 3,
00258         LightSequenceSpecial2 = 4,
00259 
00260         Stairs_Special1 = 26,
00261         Stairs_Special2 = 27,
00262 
00263         // [RH] Equivalents for DOOM's sector specials
00264         dLight_Flicker = 65,
00265         dLight_StrobeFast = 66,
00266         dLight_StrobeSlow = 67,
00267         dLight_Strobe_Hurt = 68,
00268         dDamage_Hellslime = 69,
00269         dDamage_Nukage = 71,
00270         dLight_Glow = 72,
00271         dSector_DoorCloseIn30 = 74,
00272         dDamage_End = 75,
00273         dLight_StrobeSlowSync = 76,
00274         dLight_StrobeFastSync = 77,
00275         dSector_DoorRaiseIn5Mins = 78,
00276         dDamage_SuperHellslime = 80,
00277         dLight_FireFlicker = 81,
00278 
00279         Light_IndoorLightning2 = 198,
00280         Light_IndoorLightning1 = 199,
00281 
00282         Sky2 = 200,
00283 
00284         Scroll_North_Slow = 201,
00285         Scroll_North_Medium = 202,
00286         Scroll_North_Fast = 203,
00287         Scroll_East_Slow = 204,
00288         Scroll_East_Medium = 205,
00289         Scroll_East_Fast = 206,
00290         Scroll_South_Slow = 207,
00291         Scroll_South_Medium = 208,
00292         Scroll_South_Fast = 209,
00293         Scroll_West_Slow = 210,
00294         Scroll_West_Medium = 211,
00295         Scroll_West_Fast = 212,
00296         Scroll_NorthWest_Slow = 213,
00297         Scroll_NorthWest_Medium = 214,
00298         Scroll_NorthWest_Fast = 215,
00299         Scroll_NorthEast_Slow = 216,
00300         Scroll_NorthEast_Medium = 217,
00301         Scroll_NorthEast_Fast = 218,
00302         Scroll_SouthEast_Slow = 219,
00303         Scroll_SouthEast_Medium = 220,
00304         Scroll_SouthEast_Fast = 221,
00305         Scroll_SouthWest_Slow = 222,
00306         Scroll_SouthWest_Medium = 223,
00307         Scroll_SouthWest_Fast = 224
00308 } sectorspecial_t;
00309 
00310 // [RH] Equivalents for BOOM's generalized sector types
00311 
00312 #define DAMAGE_MASK             0x0300
00313 #define SECRET_MASK             0x0400
00314 #define FRICTION_MASK   0x0800
00315 #define PUSH_MASK               0x1000
00316 
00317 struct line_s;
00318 class AActor;
00319 
00320 typedef BOOL (*lnSpecFunc)(struct line_s        *line,
00321                                                    class AActor         *activator,
00322                                                    int                          arg1,
00323                                                    int                          arg2,
00324                                                    int                          arg3,
00325                                                    int                          arg4,
00326                                                    int                          arg5);
00327 
00328 extern lnSpecFunc LineSpecials[256];
00329 
00330 BOOL EV_CeilingCrushStop (int tag);
00331 int EV_DoDonut (int tag, fixed_t pillarspeed, fixed_t slimespeed);
00332 void EV_StopPlat (int tag);
00333 
00334 extern int TeleportSide;
00335 
00336 #endif //__P_LNSPEC_H__
00337 
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends