#------------------------------------------------------------------------
#  Eternity Source Port
#------------------------------------------------------------------------
#
#  Eureka DOOM Editor
#
#  Copyright (C)      2015 Ioan Chera
#  Copyright (C) 2001-2019 Andrew Apted
#  Copyright (C) 1997-2003 André Majorel et al
#
#  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.
#
#------------------------------------------------------------------------
#
#  Based on Yadex which incorporated code from DEU 5.21 that was put
#  in the public domain in 1994 by Raphaël Quinet and Brendon Wyber.
#
#------------------------------------------------------------------------

# Pull in the Boom/MBF definitions, but only when Hexen-style
# specials are not being used.

if $MAP_FORMAT not DOOM
  set $ALLOW_BOOM 0
  set $HEXEN_SPECIALS 1
else
  set $ALLOW_BOOM 1
endif

if $ALLOW_BOOM is 1
  include "mbf21"
endif

if $MAP_FORMAT is DOOM
  thingflag 4 2 dormant off 0x200
endif

map_formats DOOM UDMF

supported_games doom doom2 heretic

udmf_namespace Eternity

feature 3d_midtex 1
feature tx_start 1
feature mix_textures_flats 1
feature slopes 10

#---- ETERNITY THINGS ------------------

thinggroup s DAD "Environment Sounds"

thing 5003 - nv 20 NULL "EE: Camera spot"
thing 5004 - nv 20 NULL "EE: ExtraData"
thing 5006 - nv 20 NULL "EE: SkyBox camera"
thing 5007 - nv 20 NULL "EE: Particle drip"
thing 9001 - nv 20 _MSP "EE: Map spot"
thing 9013 - nv 20 _MSP "EE: Map spot w/ gravity"
thing 9027 - nv 20 NULL "EE: Red fountain"
thing 9028 - nv 20 NULL "EE: Green fountain"
thing 9029 - nv 20 NULL "EE: Blue fountain"
thing 9030 - nv 20 NULL "EE: Yellow fountain"
thing 9031 - nv 20 NULL "EE: Purple fountain"
thing 9032 - nv 20 NULL "EE: Black fountain"
thing 9033 - nv 20 NULL "EE: White fountain"
thing 9300 - nv 16 NULL "EE: Polyobj anchor"
thing 9301 - npv 16 NULL "EE: Polyobj spawnspot"
thing 9302 - npv 16 NULL "EE: Polycrush spawnspot"
thing 9303 - npv 16 NULL "EE: Polyburn spawnspot"

thing 1200 s nv 16 NULL "EE: Enviro Sequence 00"
thing 1201 s nv 16 NULL "EE: Enviro Sequence 01"
thing 1202 s nv 16 NULL "EE: Enviro Sequence 02"
thing 1203 s nv 16 NULL "EE: Enviro Sequence 03"
thing 1204 s nv 16 NULL "EE: Enviro Sequence 04"
thing 1205 s nv 16 NULL "EE: Enviro Sequence 05"
thing 1206 s nv 16 NULL "EE: Enviro Sequence 06"
thing 1207 s nv 16 NULL "EE: Enviro Sequence 07"
thing 1208 s nv 16 NULL "EE: Enviro Sequence 08"
thing 1209 s nv 16 NULL "EE: Enviro Sequence 09"
thing 1210 s nv 16 NULL "EE: Enviro Sequence 10"
thing 1211 s nv 16 NULL "EE: Enviro Sequence 11"
thing 1212 s nv 16 NULL "EE: Enviro Sequence 12"
thing 1213 s nv 16 NULL "EE: Enviro Sequence 13"
thing 1214 s nv 16 NULL "EE: Enviro Sequence 14"
thing 1215 s nv 16 NULL "EE: Enviro Sequence 15"
thing 1216 s nv 16 NULL "EE: Enviro Sequence 16"
thing 1217 s nv 16 NULL "EE: Enviro Sequence 17"
thing 1218 s nv 16 NULL "EE: Enviro Sequence 18"
thing 1219 s nv 16 NULL "EE: Enviro Sequence 19"
thing 1220 s nv 16 NULL "EE: Enviro Sequence 20"
thing 1221 s nv 16 NULL "EE: Enviro Sequence 21"
thing 1222 s nv 16 NULL "EE: Enviro Sequence 22"
thing 1223 s nv 16 NULL "EE: Enviro Sequence 23"
thing 1224 s nv 16 NULL "EE: Enviro Sequence 24"
thing 1225 s nv 16 NULL "EE: Enviro Sequence 25"
thing 1226 s nv 16 NULL "EE: Enviro Sequence 26"
thing 1227 s nv 16 NULL "EE: Enviro Sequence 27"
thing 1228 s nv 16 NULL "EE: Enviro Sequence 28"
thing 1229 s nv 16 NULL "EE: Enviro Sequence 29"
thing 1230 s nv 16 NULL "EE: Enviro Sequence 30"
thing 1231 s nv 16 NULL "EE: Enviro Sequence 31"
thing 1232 s nv 16 NULL "EE: Enviro Sequence 32"
thing 1233 s nv 16 NULL "EE: Enviro Sequence 33"
thing 1234 s nv 16 NULL "EE: Enviro Sequence 34"
thing 1235 s nv 16 NULL "EE: Enviro Sequence 35"
thing 1236 s nv 16 NULL "EE: Enviro Sequence 36"
thing 1237 s nv 16 NULL "EE: Enviro Sequence 37"
thing 1238 s nv 16 NULL "EE: Enviro Sequence 38"
thing 1239 s nv 16 NULL "EE: Enviro Sequence 39"
thing 1240 s nv 16 NULL "EE: Enviro Sequence 40"
thing 1241 s nv 16 NULL "EE: Enviro Sequence 41"
thing 1242 s nv 16 NULL "EE: Enviro Sequence 42"
thing 1243 s nv 16 NULL "EE: Enviro Sequence 43"
thing 1244 s nv 16 NULL "EE: Enviro Sequence 44"
thing 1245 s nv 16 NULL "EE: Enviro Sequence 45"
thing 1246 s nv 16 NULL "EE: Enviro Sequence 46"
thing 1247 s nv 16 NULL "EE: Enviro Sequence 47"
thing 1248 s nv 16 NULL "EE: Enviro Sequence 48"
thing 1249 s nv 16 NULL "EE: Enviro Sequence 49"
thing 1250 s nv 16 NULL "EE: Enviro Sequence 50"
thing 1251 s nv 16 NULL "EE: Enviro Sequence 51"
thing 1252 s nv 16 NULL "EE: Enviro Sequence 52"
thing 1253 s nv 16 NULL "EE: Enviro Sequence 53"
thing 1254 s nv 16 NULL "EE: Enviro Sequence 54"
thing 1255 s nv 16 NULL "EE: Enviro Sequence 55"
thing 1256 s nv 16 NULL "EE: Enviro Sequence 56"
thing 1257 s nv 16 NULL "EE: Enviro Sequence 57"
thing 1258 s nv 16 NULL "EE: Enviro Sequence 58"
thing 1259 s nv 16 NULL "EE: Enviro Sequence 59"
thing 1260 s nv 16 NULL "EE: Enviro Sequence 60"
thing 1261 s nv 16 NULL "EE: Enviro Sequence 61"
thing 1262 s nv 16 NULL "EE: Enviro Sequence 62"
thing 1263 s nv 16 NULL "EE: Enviro Sequence 63"
thing 1264 s nv 16 NULL "EE: Enviro Sequence 64"
thing 1265 s nv 16 NULL "EE: Enviro Sequence 65"
thing 1266 s nv 16 NULL "EE: Enviro Sequence 66"
thing 1267 s nv 16 NULL "EE: Enviro Sequence 67"
thing 1268 s nv 16 NULL "EE: Enviro Sequence 68"
thing 1269 s nv 16 NULL "EE: Enviro Sequence 69"
thing 1270 s nv 16 NULL "EE: Enviro Sequence 70"
thing 1271 s nv 16 NULL "EE: Enviro Sequence 71"
thing 1272 s nv 16 NULL "EE: Enviro Sequence 72"
thing 1273 s nv 16 NULL "EE: Enviro Sequence 73"
thing 1274 s nv 16 NULL "EE: Enviro Sequence 74"
thing 1275 s nv 16 NULL "EE: Enviro Sequence 75"
thing 1276 s nv 16 NULL "EE: Enviro Sequence 76"
thing 1277 s nv 16 NULL "EE: Enviro Sequence 77"
thing 1278 s nv 16 NULL "EE: Enviro Sequence 78"
thing 1279 s nv 16 NULL "EE: Enviro Sequence 79"
thing 1280 s nv 16 NULL "EE: Enviro Sequence 80"
thing 1281 s nv 16 NULL "EE: Enviro Sequence 81"
thing 1282 s nv 16 NULL "EE: Enviro Sequence 82"
thing 1283 s nv 16 NULL "EE: Enviro Sequence 83"
thing 1284 s nv 16 NULL "EE: Enviro Sequence 84"
thing 1285 s nv 16 NULL "EE: Enviro Sequence 85"
thing 1286 s nv 16 NULL "EE: Enviro Sequence 86"
thing 1287 s nv 16 NULL "EE: Enviro Sequence 87"
thing 1288 s nv 16 NULL "EE: Enviro Sequence 88"
thing 1289 s nv 16 NULL "EE: Enviro Sequence 89"
thing 1290 s nv 16 NULL "EE: Enviro Sequence 90"
thing 1291 s nv 16 NULL "EE: Enviro Sequence 91"
thing 1292 s nv 16 NULL "EE: Enviro Sequence 92"
thing 1293 s nv 16 NULL "EE: Enviro Sequence 93"
thing 1294 s nv 16 NULL "EE: Enviro Sequence 94"
thing 1295 s nv 16 NULL "EE: Enviro Sequence 95"
thing 1296 s nv 16 NULL "EE: Enviro Sequence 96"
thing 1297 s nv 16 NULL "EE: Enviro Sequence 97"
thing 1298 s nv 16 NULL "EE: Enviro Sequence 98"
thing 1299 s nv 16 NULL "EE: Enviro Sequence 99"
thing 1300 s nv 16 NULL "EE: Enviro Sequence Ex"

thing 1400 s nv 16 NULL "EE: Sector Sequence 00"
thing 1401 s nv 16 NULL "EE: Sector Sequence 01"
thing 1402 s nv 16 NULL "EE: Sector Sequence 02"
thing 1403 s nv 16 NULL "EE: Sector Sequence 03"
thing 1404 s nv 16 NULL "EE: Sector Sequence 04"
thing 1405 s nv 16 NULL "EE: Sector Sequence 05"
thing 1406 s nv 16 NULL "EE: Sector Sequence 06"
thing 1407 s nv 16 NULL "EE: Sector Sequence 07"
thing 1408 s nv 16 NULL "EE: Sector Sequence 08"
thing 1409 s nv 16 NULL "EE: Sector Sequence 09"
thing 1410 s nv 16 NULL "EE: Sector Sequence 10"
thing 1411 s nv 16 NULL "EE: Sector Sequence 11"
thing 1412 s nv 16 NULL "EE: Sector Sequence 12"
thing 1413 s nv 16 NULL "EE: Sector Sequence 13"
thing 1414 s nv 16 NULL "EE: Sector Sequence 14"
thing 1415 s nv 16 NULL "EE: Sector Sequence 15"
thing 1416 s nv 16 NULL "EE: Sector Sequence 16"
thing 1417 s nv 16 NULL "EE: Sector Sequence 17"
thing 1418 s nv 16 NULL "EE: Sector Sequence 18"
thing 1419 s nv 16 NULL "EE: Sector Sequence 19"
thing 1420 s nv 16 NULL "EE: Sector Sequence 20"
thing 1421 s nv 16 NULL "EE: Sector Sequence 21"
thing 1422 s nv 16 NULL "EE: Sector Sequence 22"
thing 1423 s nv 16 NULL "EE: Sector Sequence 23"
thing 1424 s nv 16 NULL "EE: Sector Sequence 24"
thing 1425 s nv 16 NULL "EE: Sector Sequence 25"
thing 1426 s nv 16 NULL "EE: Sector Sequence 26"
thing 1427 s nv 16 NULL "EE: Sector Sequence 27"
thing 1428 s nv 16 NULL "EE: Sector Sequence 28"
thing 1429 s nv 16 NULL "EE: Sector Sequence 29"
thing 1430 s nv 16 NULL "EE: Sector Sequence 30"
thing 1431 s nv 16 NULL "EE: Sector Sequence 31"
thing 1432 s nv 16 NULL "EE: Sector Sequence 32"
thing 1433 s nv 16 NULL "EE: Sector Sequence 33"
thing 1434 s nv 16 NULL "EE: Sector Sequence 34"
thing 1435 s nv 16 NULL "EE: Sector Sequence 35"
thing 1436 s nv 16 NULL "EE: Sector Sequence 36"
thing 1437 s nv 16 NULL "EE: Sector Sequence 37"
thing 1438 s nv 16 NULL "EE: Sector Sequence 38"
thing 1439 s nv 16 NULL "EE: Sector Sequence 39"
thing 1440 s nv 16 NULL "EE: Sector Sequence 40"
thing 1441 s nv 16 NULL "EE: Sector Sequence 41"
thing 1442 s nv 16 NULL "EE: Sector Sequence 42"
thing 1443 s nv 16 NULL "EE: Sector Sequence 43"
thing 1444 s nv 16 NULL "EE: Sector Sequence 44"
thing 1445 s nv 16 NULL "EE: Sector Sequence 45"
thing 1446 s nv 16 NULL "EE: Sector Sequence 46"
thing 1447 s nv 16 NULL "EE: Sector Sequence 47"
thing 1448 s nv 16 NULL "EE: Sector Sequence 48"
thing 1449 s nv 16 NULL "EE: Sector Sequence 49"
thing 1450 s nv 16 NULL "EE: Sector Sequence 50"
thing 1451 s nv 16 NULL "EE: Sector Sequence 51"
thing 1452 s nv 16 NULL "EE: Sector Sequence 52"
thing 1453 s nv 16 NULL "EE: Sector Sequence 53"
thing 1454 s nv 16 NULL "EE: Sector Sequence 54"
thing 1455 s nv 16 NULL "EE: Sector Sequence 55"
thing 1456 s nv 16 NULL "EE: Sector Sequence 56"
thing 1457 s nv 16 NULL "EE: Sector Sequence 57"
thing 1458 s nv 16 NULL "EE: Sector Sequence 58"
thing 1459 s nv 16 NULL "EE: Sector Sequence 59"
thing 1460 s nv 16 NULL "EE: Sector Sequence 60"
thing 1461 s nv 16 NULL "EE: Sector Sequence 61"
thing 1462 s nv 16 NULL "EE: Sector Sequence 62"
thing 1463 s nv 16 NULL "EE: Sector Sequence 63"
thing 1464 s nv 16 NULL "EE: Sector Sequence 64"
thing 1465 s nv 16 NULL "EE: Sector Sequence 65"
thing 1466 s nv 16 NULL "EE: Sector Sequence 66"
thing 1467 s nv 16 NULL "EE: Sector Sequence 67"
thing 1468 s nv 16 NULL "EE: Sector Sequence 68"
thing 1469 s nv 16 NULL "EE: Sector Sequence 69"
thing 1470 s nv 16 NULL "EE: Sector Sequence 70"
thing 1471 s nv 16 NULL "EE: Sector Sequence 71"
thing 1472 s nv 16 NULL "EE: Sector Sequence 72"
thing 1473 s nv 16 NULL "EE: Sector Sequence 73"
thing 1474 s nv 16 NULL "EE: Sector Sequence 74"
thing 1475 s nv 16 NULL "EE: Sector Sequence 75"
thing 1476 s nv 16 NULL "EE: Sector Sequence 76"
thing 1477 s nv 16 NULL "EE: Sector Sequence 77"
thing 1478 s nv 16 NULL "EE: Sector Sequence 78"
thing 1479 s nv 16 NULL "EE: Sector Sequence 79"
thing 1480 s nv 16 NULL "EE: Sector Sequence 80"
thing 1481 s nv 16 NULL "EE: Sector Sequence 81"
thing 1482 s nv 16 NULL "EE: Sector Sequence 82"
thing 1483 s nv 16 NULL "EE: Sector Sequence 83"
thing 1484 s nv 16 NULL "EE: Sector Sequence 84"
thing 1485 s nv 16 NULL "EE: Sector Sequence 85"
thing 1486 s nv 16 NULL "EE: Sector Sequence 86"
thing 1487 s nv 16 NULL "EE: Sector Sequence 87"
thing 1488 s nv 16 NULL "EE: Sector Sequence 88"
thing 1489 s nv 16 NULL "EE: Sector Sequence 89"
thing 1490 s nv 16 NULL "EE: Sector Sequence 90"
thing 1491 s nv 16 NULL "EE: Sector Sequence 91"
thing 1492 s nv 16 NULL "EE: Sector Sequence 92"
thing 1493 s nv 16 NULL "EE: Sector Sequence 93"
thing 1494 s nv 16 NULL "EE: Sector Sequence 94"
thing 1495 s nv 16 NULL "EE: Sector Sequence 95"
thing 1496 s nv 16 NULL "EE: Sector Sequence 96"
thing 1497 s nv 16 NULL "EE: Sector Sequence 97"
thing 1498 s nv 16 NULL "EE: Sector Sequence 98"
thing 1499 s nv 16 NULL "EE: Sector Sequence 99"
thing 1500 s nv 16 NULL "EE: Sector Sequence Ex"

thing 14001 s nv 16 NULL "EE: Ambience 01"
thing 14002 s nv 16 NULL "EE: Ambience 02"
thing 14003 s nv 16 NULL "EE: Ambience 03"
thing 14004 s nv 16 NULL "EE: Ambience 04"
thing 14005 s nv 16 NULL "EE: Ambience 05"
thing 14006 s nv 16 NULL "EE: Ambience 06"
thing 14007 s nv 16 NULL "EE: Ambience 07"
thing 14008 s nv 16 NULL "EE: Ambience 08"
thing 14009 s nv 16 NULL "EE: Ambience 09"
thing 14010 s nv 16 NULL "EE: Ambience 10"
thing 14011 s nv 16 NULL "EE: Ambience 11"
thing 14012 s nv 16 NULL "EE: Ambience 12"
thing 14013 s nv 16 NULL "EE: Ambience 13"
thing 14014 s nv 16 NULL "EE: Ambience 14"
thing 14015 s nv 16 NULL "EE: Ambience 15"
thing 14016 s nv 16 NULL "EE: Ambience 16"
thing 14017 s nv 16 NULL "EE: Ambience 17"
thing 14018 s nv 16 NULL "EE: Ambience 18"
thing 14019 s nv 16 NULL "EE: Ambience 19"
thing 14020 s nv 16 NULL "EE: Ambience 20"
thing 14021 s nv 16 NULL "EE: Ambience 21"
thing 14022 s nv 16 NULL "EE: Ambience 22"
thing 14023 s nv 16 NULL "EE: Ambience 23"
thing 14024 s nv 16 NULL "EE: Ambience 24"
thing 14025 s nv 16 NULL "EE: Ambience 25"
thing 14026 s nv 16 NULL "EE: Ambience 26"
thing 14027 s nv 16 NULL "EE: Ambience 27"
thing 14028 s nv 16 NULL "EE: Ambience 28"
thing 14029 s nv 16 NULL "EE: Ambience 29"
thing 14030 s nv 16 NULL "EE: Ambience 30"
thing 14031 s nv 16 NULL "EE: Ambience 31"
thing 14032 s nv 16 NULL "EE: Ambience 32"
thing 14033 s nv 16 NULL "EE: Ambience 33"
thing 14034 s nv 16 NULL "EE: Ambience 34"
thing 14035 s nv 16 NULL "EE: Ambience 35"
thing 14036 s nv 16 NULL "EE: Ambience 36"
thing 14037 s nv 16 NULL "EE: Ambience 37"
thing 14038 s nv 16 NULL "EE: Ambience 38"
thing 14039 s nv 16 NULL "EE: Ambience 39"
thing 14040 s nv 16 NULL "EE: Ambience 40"
thing 14041 s nv 16 NULL "EE: Ambience 41"
thing 14042 s nv 16 NULL "EE: Ambience 42"
thing 14043 s nv 16 NULL "EE: Ambience 43"
thing 14044 s nv 16 NULL "EE: Ambience 44"
thing 14045 s nv 16 NULL "EE: Ambience 45"
thing 14046 s nv 16 NULL "EE: Ambience 46"
thing 14047 s nv 16 NULL "EE: Ambience 47"
thing 14048 s nv 16 NULL "EE: Ambience 48"
thing 14049 s nv 16 NULL "EE: Ambience 49"
thing 14050 s nv 16 NULL "EE: Ambience 50"
thing 14051 s nv 16 NULL "EE: Ambience 51"
thing 14052 s nv 16 NULL "EE: Ambience 52"
thing 14053 s nv 16 NULL "EE: Ambience 53"
thing 14054 s nv 16 NULL "EE: Ambience 54"
thing 14055 s nv 16 NULL "EE: Ambience 55"
thing 14056 s nv 16 NULL "EE: Ambience 56"
thing 14057 s nv 16 NULL "EE: Ambience 57"
thing 14058 s nv 16 NULL "EE: Ambience 58"
thing 14059 s nv 16 NULL "EE: Ambience 59"
thing 14060 s nv 16 NULL "EE: Ambience 60"
thing 14061 s nv 16 NULL "EE: Ambience 61"
thing 14062 s nv 16 NULL "EE: Ambience 62"
thing 14063 s nv 16 NULL "EE: Ambience 63"
thing 14064 s nv 16 NULL "EE: Ambience 64"
thing 14065 s nv 16 NULL "EE: Ambience Ex"

#---- LINEDEF FLAGS -----------------
lineflag "3D MidTex"     0x0400

#---- HEXEN-STYLE SPECIALS ----------

if $HEXEN_SPECIALS is 1

clear lines

feature tag_666 0
feature strife_flags 0
feature gen_lines 0
feature gen_sectors zdoom

include "hexen_groups"
include "hexen_sectors"

special 0 - "NOTHING"

# Floors
special  22 f "Floor_LowerToNearest"       :tag  speed  change
special  21 f "Floor_LowerToLowest"        :tag  speed  change
special 242 f "Floor_LowerToHighest"       :tag  speed  lip  adjust?
special  20 f "Floor_LowerByValue"         :tag  speed  dist  change
special  36 f "Floor_LowerByValueTimes8"   :tag  speed  dist_x8  change
special  66 f "Floor_LowerInstant"         :tag  -  dist_x8  change
special  25 f "Floor_RaiseToNearest"       :tag  speed  change  crush
special  24 f "Floor_RaiseToHighest"       :tag  speed  change  crush
special 238 f "Floor_RaiseToLowestCeiling" :tag  speed  change  crush  gap
special  23 f "Floor_RaiseByValue"         :tag  speed  dist  change  crush
special  35 f "Floor_RaiseByValueTimes8"   :tag  speed  dist_x8  change  crush
special 240 f "Floor_RaiseByTexture"       :tag  speed  change  crush
special  67 f "Floor_RaiseInstant"         :tag  -  dist_x8 change crush
special  28 f "Floor_RaiseAndCrush"        :tag  speed  damage
special  46 f "Floor_CrushStop"            :tag
special  37 f "Floor_MoveToValue"          :tag  speed  dist  negate?  change
special  68 f "Floor_MoveToValueTimes8"    :tag  speed  height_x8  negate? change
special 250 f "Floor_Donut"                :tag  speed  speed
special 138 f "Floor_Waggle"               :tag  amp  speed  offset  time
special 235 f "Floor_TransferTrigger"      :tag
special 236 f "Floor_TransferNumeric"      :tag
# NOTE: specials above 255 can't be used in Hexen format.

# Ceilings
special 253 c "Ceiling_LowerToLowest"        :tag  speed change crush
special 254 c "Ceiling_LowerToFloor"         :tag  speed change crush gap
special 192 c "Ceiling_LowerToHighestFloor"  :tag  speed  change  crush gap
special  40 c "Ceiling_LowerByValue"         :tag  speed  dist change crush
special 199 c "Ceiling_LowerByValueTimes8"   :tag  speed  dist_x8 change crush
special 193 c "Ceiling_LowerInstant"         :tag  -  dist_x8 change crush
special 252 c "Ceiling_RaiseToNearest"       :tag  speed change
special  41 c "Ceiling_RaiseByValue"         :tag  speed  dist change
special 198 c "Ceiling_RaiseByValueTimes8"   :tag  speed  dist_x8 change
special 194 c "Ceiling_RaiseInstant"         :tag  -  dist_x8 change
special  47 c "Ceiling_MoveToValue"          :tag  speed  height  negate? change
special  69 c "Ceiling_MoveToValueTimes8"    :tag  speed  height_x8  negate? change
special  38 c "Ceiling_Waggle"               :tag  amp  speed  offset  time
special  43 c "Ceiling_LowerAndCrush"        :tag  speed  damage  crush_mode
special  97 c "Ceiling_LowerAndCrushDist"    :tag  speed  damage  gap  crush_mode
special  42 c "Ceiling_CrushAndRaise"        :tag  speed  damage  crush_mode
special 196 c "Ceiling_CrushAndRaiseA"       :tag  down_speed  up_speed  damage  crush_mode
special 197 c "Ceiling_CrushAndRaiseSilentA" :tag  down_speed  up_speed  damage  crush_mode
special 168 c "Ceiling_CrushAndRaiseDist"    :tag  gap  speed  damage  crush_mode
special 104 c "Ceiling_CrushAndRaiseSilentDist" :tag  gap  speed  damage  crush_mode
special  45 c "Ceiling_CrushRaiseAndStay"    :tag  speed  damage  crush_mode
special 195 c "Ceiling_CrushRaiseAndStayA"   :tag  down_speed  up_speed  damage  crush_mode
special 255 c "Ceiling_CrushRaiseAndStaySilA"  :tag  down_speed  up_speed  damage  crush_mode
special  44 c "Ceiling_CrushStop"            :tag  stop_mode

# Doors
special  12 d "Door_Raise"            :tag  speed  delay  light_tag:tag
special  13 d "Door_LockedRaise"      :tag  speed  delay  lock  light_tag:tag
special  11 d "Door_Open"             :tag  speed  light_tag:tag
special  10 d "Door_Close"            :tag  speed  light_tag:tag
special 105 d "Door_WaitRaise"        :tag  speed  delay  wait  light_tag:tag
special 106 d "Door_WaitClose"        :tag  speed  delay  wait  light_tag:tag
special 249 d "Door_CloseWaitOpen"    :tag  speed  delay  light_tag:tag

# Lifts
special  62 g "Plat_DownWaitUpStay"          :tag  speed  delay
special 206 g "Plat_DownWaitUpStayLip"       :tag  speed  delay  lip  sound_type
special  63 g "Plat_DownByValue"             :tag  speed  delay  dist_x8
special  64 g "Plat_UpWaitDownStay"          :tag  speed  delay
special  65 g "Plat_UpByValue"               :tag  speed  delay  dist_x8
special 230 g "Plat_UpByValueStayTx"         :tag  speed  dist_x8
special 228 g "Plat_RaiseAndStayTx0"         :tag  speed  lock_out
special  60 g "Plat_PerpetualRaise"          :tag  speed  delay
special 207 g "Plat_PerpetualRaiseLip"       :tag  speed  delay  lip
special 231 g "Plat_ToggleCeiling"           :tag
special  61 g "Plat_Stop"                    :tag  stop_mode

# Elevators & Pillars
special  95 e "FloorAndCeiling_LowerByValue" :tag  speed  dist
special  96 e "FloorAndCeiling_RaiseByValue" :tag  speed  dist
special 251 e "FloorAndCeiling_LowerRaise" :tag  floor_speed  ceil_speed boom_emu
special 247 e "Elevator_LowerToNearest"    :tag  speed
special 245 e "Elevator_RaiseToNearest"    :tag  speed
special 246 e "Elevator_MoveToFloor"       :tag  speed
special  30 e "Pillar_Open"                :tag  speed  floor_dist  ceil_dist
special  29 e "Pillar_Build"               :tag  speed  dist
special  94 e "Pillar_BuildAndCrush"       :tag  speed  dist  damage

# Stairs
special  27 q "Stairs_BuildUp"             :tag  speed  height  delay  reset_delay
special 217 q "Stairs_BuildUpDoom"         :tag  speed  height  delay  reset_delay

# Sector
special 181 s "Plane_Align"                floor_side  ceil_side
special 118 s "Plane_Copy"                 front_floor_tag:tag  front_ceil_tag:tag  back_floor_tag:tag  back_ceil_tag:tag  share_flags
special 190 s "Sky transfer"                :line_id  255  sky_flip?
special 140 s "Sector_ChangeSound"         :tag  sound_seq
special 185 s "Sector_SetRotation"         :tag  floor_angle  ceil_angle
special 187 s "Sector_SetFloorPanning"     :tag  x_offset  x_frac  y_offset  y_frac
special 186 s "Sector_SetCeilingPanning"   :tag  x_offset  x_frac  y_offset  y_frac
special 218 s "Sector_SetWind"             :tag  force  angle  flags
special 219 s "Sector_SetFriction"         :tag
special 220 s "Sector_SetCurrent"          :tag  force  angle  flags
special 227 s "PointPush_SetForce"         :tag  :tid  force  use_line_angle?

# Lighting
special 233 l "Light_MinNeighbor"      :tag
special 111 l "Light_LowerByValue"     :tag  light
special 234 l "Light_MaxNeighbor"      :tag
special 110 l "Light_RaiseByValue"     :tag  light
special 112 l "Light_ChangeToValue"    :tag  light
special 113 l "Light_Fade"             :tag  light  time
special 114 l "Light_Glow"             :tag  high  low  time
special 115 l "Light_Flicker"          :tag  high  low
special 116 l "Light_Strobe"           :tag  high  low  high_time  low_time
special 232 l "Light_StrobeDoom"       :tag  high_time  low_time

# Teleporters
special  70 u "Teleport"               :tid  :tag
special  71 u "Teleport_NoFog"         :tid  use_angle?  :tag keep_height
special 215 u "Teleport_Line"          -  :line_id  flip_180?

# Things
special 130 t "Thing_Activate"          :tid
special 131 t "Thing_Deactivate"        :tid
special  17 t "Thing_Raise"             :tid
special 135 t "Thing_Spawn"             :tid  type_id  angle  new_id
special 137 t "Thing_SpawnNoFog"        :tid  type_id  angle  new_id
special 134 t "Thing_Projectile"        :tid  type_id  angle  speed  up_speed
special 136 t "Thing_ProjectileGravity" :tid  type_id  angle  speed  up_speed

special 248 t "HealThing"               amount  max_health
special  73 t "DamageThing"             damage  damage_type
special 119 t "Thing_Damage"            :tid  damage  damage_type
special 133 t "Thing_Destroy"           :tid  -  :tag
special 132 t "Thing_Remove"            :tid
special  72 t "ThrustThing"             angle  thrust  -  :tid
special 128 t "ThrustThingZ"            :tid  thrust  down?  additive?
special  19 t "Thing_Stop"              :tid
special 176 t "Thing_ChangeTID"         :tid  new_tid

# Lines
special 121 - "Line_SetIdent"           line_id:self_line_id
special 156 - "Line_SetPortal"          target_id:line_id  this_id:self_line_id  type  anchor
special  48 - "Sector_Attach3dMidtex"  :line_id  :tag  ceiling?

# Animated
special 102 a "Scroll_Texture_Up"       speed
special 103 a "Scroll_Texture_Down"     speed
special 100 a "Scroll_Texture_Left"     speed
special 101 a "Scroll_Texture_Right"    speed
special 225 a "Scroll_Texture_Offsets"
special 222 a "Scroll_Texture_Model"    :line_id  kind
special 223 a "Scroll_Floor"            :tag  kind  push?  x_speed  y_speed
special 224 a "Scroll_Ceiling"          :tag  tex_flags  -  x_speed  y_speed

# PolyObjects
special   1 p "PolyObject Start Line"   :po  mirror_po:po  sound_seq
special   5 p "Polyobj_ExplicitLine"    :po  render_order  mirror_po:po  sound_seq
special   2 p "Polyobj_RotateLeft"      :po  speed  angle
special  90 p "Polyobj_OR_RotateLeft"   :po  speed  angle
special   3 p "Polyobj_RotateRight"     :po  speed  angle
special  91 p "Polyobj_OR_RotateRight"  :po  speed  angle
special   4 p "Polyobj_Move"            :po  speed  angle  dist
special  92 p "Polyobj_OR_Move"         :po  speed  angle  dist
special   6 p "Polyobj_MoveTimes8"      :po  speed  angle  dist_x8
special  93 p "Polyobj_OR_MoveTimes8"   :po  speed  angle  dist_x8
special   7 p "Polyobj_DoorSwing"       :po  speed  angle  delay
special   8 p "Polyobj_DoorSlide"       :po  speed  angle  dist  delay
special  86 p "Polyobj_MoveToSpot"      :po  speed  :tid
special  59 p "Polyobj_OR_MoveToSpot"   :po  speed  :tid
special  87 p "Polyobj_Stop"            :po

## andrewj: leaving out specials 88/89 "Polyobj_MoveTo" because they
## seem designed for scripts -- when used in a map the target X/Y
## coordinates will be limited to the range 0-255.

# Exits
special 243 x "Exit_Normal"
special 244 x "Exit_Secret"
special  74 x "Teleport_NewMap"         map
special  75 x "Teleport_EndGame"

# Renderer
special   9 r "Line_Horizon"
special 210 r "Transfer_FloorLight"     :tag
special 211 r "Transfer_CeilingLight"   :tag
special  57 r "Sector_SetPortal"        :tag  portal_type  plane  misc  opacity
special 209 r "Transfer_Heights"        :tag

# Scripting
special  80 k "ACS_Execute"             script  map  param1  param2  param3
special  83 k "ACS_LockedExecute"       script  map  param1  param2  lock
special  85 k "ACS_LockedExecuteDoor"   script  map  param1  param2  lock
special  84 k "ACS_ExecuteWithResult"   script  param1  param2  param3
special 226 k "ACS_ExecuteAlways"       script  map  param1  param2  param3
special  81 k "ACS_Suspend"             script  map
special  82 k "ACS_Terminate"           script  map

special 179 - "ChangeSkill"             skill
special 120 - "Earthquake"              intensity  duration  damrad  tremrad  :tid
## special 129 - "UsePuzzleItem"           item  script  param1  param2  param3

# Boom Compatibility
special 200 f "Generic_Floor"       :tag  speed  dist  target_type  flags
special 201 c "Generic_Ceiling"     :tag  speed  dist  target_type  flags
special 203 g "Generic_Lift"        :tag  speed  delay_octics  lift_type  type0_height
special 204 q "Generic_Stairs"      :tag  speed  height  flags  reset_delay
special 205 c "Generic_Crusher"     :tag  down_speed  up_speed  silent?   damage
## special 202 d "Generic_Door"     tag  speed  door_kind  delay  lock

else

#---- DOOM-STYLE SPECIALS ----------

linegroup o "Portals"

line 283 o "-- EE: Plane portal /c"     :tag
line 284 o "-- EE: Plane portal /f"     :tag
line 285 o "-- EE: Plane portal"        :tag
line 286 o "-- EE: Horizon portal /c"   :tag
line 287 o "-- EE: Horizon portal /f"   :tag
line 288 o "-- EE: Horizon portal"      :tag
line 290 o "-- EE: Skybox portal /c"    :tag
line 291 o "-- EE: Skybox portal /f"    :tag
line 292 o "-- EE: Skybox portal"       :tag
line 450 o "-- EE: Horizon portal direct"

line 295 o "-- EE: Anchor portal /c"        :tag
line 296 o "-- EE: Anchor portal /f"        :tag
line 297 o "-- EE: Anchor portal"           :tag
line 298 o "-- EE: Anch line for 295,297"   :tag
line 299 o "-- EE: Anch line for 296"       :tag
line 344 o "-- EE: 2-way anc prt /c"        :tag
line 345 o "-- EE: 2-way anc prt /f"        :tag
line 346 o "-- EE: Anch line for 344"       :tag
line 347 o "-- EE: Anch line for 345"       :tag
line 289 o "-- EE: Portal transfer"         :tag

line 358 o "-- EE: Linked portal /c"        :tag
line 359 o "-- EE: Linked portal /f"        :tag
line 360 o "-- EE: Link prt anch for 358"   :tag
line 361 o "-- EE: Link prt anch for 359"   :tag
line 376 o "-- EE: Link prt to tag lines"   :line_id
line 377 o "-- EE: Link prt anch for 376"
line 385 o "-- EE: Link prt to front sec"   :tag

line 386 - "-- EE: Slope front floor"
line 387 - "-- EE: Slope front ceil"
line 388 - "-- EE: Slope front f & c"
line 389 - "-- EE: Slope back floor"
line 390 - "-- EE: Slope back ceil"
line 391 - "-- EE: Slope back f & c"
line 392 - "-- EE: Slope back f & front c"
line 393 - "-- EE: Slope back c & front f"
line 394 - "-- EE: Front f to tag slope"    :tag
line 395 - "-- EE: Front c to tag slope"    :tag
line 396 - "-- EE: Front f, c to tag slp"   :tag

line 280 n "WR EE: Exec Script"
line 273 n "WR EE: Exec Script /1way"
line 274 n "W1 EE: Exec Script"
line 275 n "W1 EE: Exec Script /1way"
line 276 n "SR EE: Exec Script"
line 277 n "S1 EE: Exec Script"
line 278 n "GR EE: Exec Script"
line 279 n "G1 EE: Exec Script"

line 270 - "-- EE: ExtraData linedef"
line 401 - "-- EE: ExtraData sector"

line 281 - "-- EE: 3D Midtex /f"    :line_id
line 282 - "-- EE: 3D Midtex /c"    :line_id
line 293 - "-- EE: Heretic wind"    :tag
line 294 - "-- EE: Heretic current" :tag

line 379 - "-- EE: Attach set ceil ctrl"
line 380 - "-- EE: Attach set floor ctrl"
line 381 - "-- EE: Attach floor to ctrl"    :line_id
line 382 - "-- EE: Attach ceil to ctrl"     :line_id
line 383 - "-- EE: Mirror floor to ctrl"    :line_id
line 384 - "-- EE: Mirror ceil to ctrl"     :line_id

gensector 1024 "Mute all sounds"
gensector 2048 "Mute mechanical sounds"

endif
