|
Odamex
Setting the Standard in Multiplayer Doom
|
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