Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 1392-2-2-15-attempting-to-draw-a-hud-graphic-with-the-same-lump-name-as-a-lua-script-crashes-the
  • 21-installer-nodd
  • 2210-pre1
  • 2210-pre2
  • 2210-rc1
  • 2210-rc2
  • 2210-rc3
  • 2211-pre1
  • 2211-pre2
  • 2211-rc1
  • 2212-pre1
  • 2212-pre2
  • 2212-pre3
  • 2212-rc1
  • 2213
  • 2214-pre1
  • 2214-pre2
  • 2214-pre3
  • 2214-pre4
  • 2_2_12
  • 64-gl-log
  • COM_ImmedExecute-lua
  • DJGPP
  • accel-momentum
  • acs
  • action-args
  • alpha-fixes
  • any-resolution
  • appveyor
  • blend-locking
  • blentran
  • blua-unary-not-fix
  • boost-tickrate
  • bustablesoundz
  • cleanup-opengl
  • cleanupmusic
  • clipmidtex
  • cmake-valgrind
  • crawlacommander-sprites
  • custom-map-names
  • custom-teams
  • cutscene-cleanup
  • dd-music-bypass
  • dd-music-fix
  • delfile2
  • deprecate-lua-dedicated-server
  • dpl-2
  • dropshadows-spawning
  • dynabsp
  • emblem-drawing
  • exchndl-xp-fix
  • extra-textures
  • few-kart-lua-changes
  • ffloorclip
  • fix-167
  • fix-cvar-conflicts
  • fix-opengl-parameter-crash
  • fix-opengl-shear-roll
  • flipfuncpointers
  • fof-lightlist-fixes
  • font-FUCK
  • frictionrefactor
  • fuck-macros-1
  • gamepad-luakeydown
  • gamepad-morefixes
  • gamepad_experiments
  • gametype-refactor
  • gametype-refactor-1
  • gametype-refactor-player-spawns
  • ghost-networking
  • gif-splitting
  • grr-lj
  • hitboxviewer
  • hwr-texture-cache-refactor
  • hwrender2
  • improve-439
  • increase-maxconditionsets
  • increase-packet-tics
  • input-display
  • input-display-translucency
  • io
  • joystick-juggling-maz
  • just-in-case
  • keycodes-only
  • ksf-wadfiles
  • ld413-mp-fix
  • levelstruct
  • libpng-version-support
  • linedef-actions
  • lj-test
  • lol-states
  • loopedsounds
  • lower-unpegged-fix
  • lua-change-gametype
  • lua-command-netids
  • lua-gfx-2
  • lua-gfx-sprites
  • lua-local
  • makefile-auto-mingw-gcc
  • makefile-tinkering
  • SRB2_release_2.1
  • SRB2_release_2.1.1
  • SRB2_release_2.1.10
  • SRB2_release_2.1.11
  • SRB2_release_2.1.12
  • SRB2_release_2.1.14
  • SRB2_release_2.1.15
  • SRB2_release_2.1.16
  • SRB2_release_2.1.16a
  • SRB2_release_2.1.17
  • SRB2_release_2.1.18
  • SRB2_release_2.1.19
  • SRB2_release_2.1.2
  • SRB2_release_2.1.20
  • SRB2_release_2.1.21
  • SRB2_release_2.1.22
  • SRB2_release_2.1.23
  • SRB2_release_2.1.24
  • SRB2_release_2.1.25
  • SRB2_release_2.1.3
  • SRB2_release_2.1.4
  • SRB2_release_2.1.5
  • SRB2_release_2.1.6
  • SRB2_release_2.1.7
  • SRB2_release_2.1.8
  • SRB2_release_2.1.9
  • SRB2_release_2.2.0
  • SRB2_release_2.2.1
  • SRB2_release_2.2.10
  • SRB2_release_2.2.11
  • SRB2_release_2.2.12
  • SRB2_release_2.2.13
  • SRB2_release_2.2.15
  • SRB2_release_2.2.2
  • SRB2_release_2.2.3
  • SRB2_release_2.2.4
  • SRB2_release_2.2.5
  • SRB2_release_2.2.6
  • SRB2_release_2.2.7
  • SRB2_release_2.2.8
  • SRB2_release_2.2.9
  • td-release-v1.0.0
142 results

Target

Select target project
  • STJr/SRB2
  • Sryder/SRB2
  • wolfy852/SRB2
  • Alpha2244/SRB2
  • Inuyasha/SRB2
  • yoshibot/SRB2
  • TehRealSalt/SRB2
  • PrisimaTF/SRB2
  • Hatninja/SRB2
  • SteelT/SRB2
  • james/SRB2
  • ShaderWraith/SRB2
  • SinnamonLat/SRB2
  • mazmazz_/SRB2
  • filpAM/SRB2
  • chaoloveicemdboy/SRB2
  • Whooa21/SRB2
  • Machturne/SRB2
  • Golden/SRB2
  • Tatsuru/SRB2
  • Snu/SRB2
  • Zwip-Zwap_Zapony/SRB2
  • fickleheart/SRB2
  • alphaRexJames/SRB2
  • JJK/SRB2
  • diskpoppy/SRB2
  • Hannu_Hanhi/SRB2
  • ZipperQR/SRB2
  • kays/SRB2
  • spherallic/SRB2
  • Zippy_Zolton/SRB2
  • namiishere/SRB2
  • Ors/SRB2
  • SMS_Alfredo/SRB2
  • sonic_edge/SRB2
  • lavla/SRB2
  • ashi/SRB2
  • X.organic/SRB2
  • Fafabis/SRB2
  • Meziu/SRB2
  • v-rob/SRB2
  • tertu/SRB2
  • bitten2up/SRB2
  • flarn2006/SRB2
  • Krabs/SRB2
  • clairebun/SRB2
  • Lactozilla/SRB2
  • thehackstack/SRB2
  • Spice/SRB2
  • win8linux/SRB2
  • JohnFrostFox/SRB2
  • talktoneon726/SRB2
  • Wane/SRB2
  • Lamibe/SRB2
  • spectrumuk2/srb-2
  • nerdyminer18/srb-2
  • 256nil/SRB2
  • ARJr/SRB2
  • Alam/SRB2
  • Zenya/srb-2-marathon-demos
  • Acelite/srb-2-archivedmodifications
  • MIDIMan/SRB2
  • Lach/SRB2
  • Frostiikin/bounce-tweaks
  • Hanicef/SRB2Classic
  • Jaden/SRB2
  • Tyron/SRB2
  • Astronight/SRB2
  • Mari0shi06/SRB2
  • aiire/SRB2
  • Galactice/SRB2
  • srb2-ports/srb2-dreamcast
  • sdasdas/SRB2
  • chreas/srb-2-vr
  • StarManiaKG/the-story-of-sinically-rocketing-and-botching-the-2nd
  • LoganAir/SRB2
  • NepDisk/srb-2
  • alufolie91/SRB2
  • Felicia.iso/SRB2
  • twi/SRB2
  • BarrelsOFun/SRB2
  • Speed2411/SRB2
  • Leather_Realms/SRB2
  • Ayemar/SRB2
  • Acelite/SRB2
  • VladDoc/SRB2
  • kaldrum/model-features
  • strawberryfox417/SRB2
  • Lugent/SRB2
  • Jisk/SRB2
  • Rem/SRB2
  • Refrag/SRB2
  • Henry_3230/srb-3230
  • TehPuertoRicanSpartan2/tprs-srb2
  • Leminn/srb-2-marathon-stuff
  • chromaticpipe2/SRB2
  • MiguelGustavo15/SRB2
  • Maru/srb-2-tests
  • SilicDev/SRB2
  • UnmatchedBracket/SRB2
  • HybridDog/SRB2
  • xordspar0/SRB2
  • jsjhbewfhh/SRB2
  • Fancy2209/SRB2
  • Lorsoen/SRB2
  • shindoukin/SRB2
  • GamerOfDays/SRB2
  • Craftyawesome/SRB2
  • tenshi-tensai-tennoji/SRB2
  • Scarfdudebalder/SRB2
  • luigi-budd/srb-2-fix-interplag-lockon
  • mskluesner/SRB2
  • johnpetersa19/SRB2
  • Pheazant/SRB2
  • chromaticpipe2/srb2classic
  • romoney5/SRB2
  • PAS/SRB2Classic
  • BlueStaggo/SRB2
118 results
Select Git revision
  • 21-installer-nodd
  • 2210-pre1
  • 2210-pre2
  • 2210-rc1
  • 2210-rc2
  • 2210-rc3
  • 2211-pre1
  • 2211-pre2
  • 2211-rc1
  • 622-teamlives-hud
  • 64-gl-log
  • COM_ImmedExecute-lua
  • DJGPP
  • accel-momentum
  • alien-breed-3d
  • appveyor
  • bbox
  • blend-locking
  • blentran
  • blua-unary-not-fix
  • boost-tickrate
  • bosszero
  • bustablemobjzfix
  • bustablesoundz
  • cleanup-opengl
  • cleanupmusic
  • cmake-clang-tidy
  • cmake-enable-cxx
  • cmake-valgrind
  • crawlacommander-sprites
  • cutscene-cleanup
  • dd-music-bypass
  • dd-music-fix
  • delfile
  • deprecate-lua-dedicated-server
  • dpl-2
  • dropshadows-spawning
  • dynabsp
  • emblem-drawing
  • exchndl-xp-fix
  • few-kart-lua-changes
  • ffloorclip
  • fix-cvar-conflicts
  • fix-opengl-shear-roll
  • flipfuncpointers
  • floorsprite-and-shadow-fake-planes-fix
  • fof-lightlist-fixes
  • font-FUCK
  • font_drawer
  • frictionrefactor
  • fuck-macros-1
  • fullscreen-toggle
  • gamepad-luakeydown
  • gamepad-morefixes
  • gamepad_experiments
  • ghost-networking
  • gif-splitting
  • gitlab-ci
  • grr-lj
  • hitboxviewer
  • hwr-texture-cache-refactor
  • hwrender2
  • improve-439
  • increase-packet-tics
  • increasemaxunlockables
  • input-display
  • input-display-translucency
  • io
  • joystick-juggling-maz
  • keycodes-only
  • ksf-wadfiles
  • ld413-mp-fix
  • levelstruct
  • libpng-version-support
  • linedef-actions
  • lj-test
  • lol-states
  • loopedsounds
  • lower-unpegged-fix
  • lua-command-netids
  • lua-local
  • lua-minmax-plus-bruh-moments
  • makefile-auto-mingw-gcc
  • makefile-tinkering
  • map-components-signedness-fixes
  • master
  • menu-edits
  • mobj-dispoffset
  • models-plus-final
  • more-cleanup
  • multithread
  • musicdef-lua
  • net-test
  • netcode-refactor
  • netcode-tests
  • netxcmd-refactor
  • next
  • next-test
  • next-test-2021-7-11
  • nextmapspecialoverride
  • SRB2_release_2.1
  • SRB2_release_2.1.1
  • SRB2_release_2.1.10
  • SRB2_release_2.1.11
  • SRB2_release_2.1.12
  • SRB2_release_2.1.14
  • SRB2_release_2.1.15
  • SRB2_release_2.1.16
  • SRB2_release_2.1.16a
  • SRB2_release_2.1.17
  • SRB2_release_2.1.18
  • SRB2_release_2.1.19
  • SRB2_release_2.1.2
  • SRB2_release_2.1.20
  • SRB2_release_2.1.21
  • SRB2_release_2.1.22
  • SRB2_release_2.1.23
  • SRB2_release_2.1.24
  • SRB2_release_2.1.25
  • SRB2_release_2.1.3
  • SRB2_release_2.1.4
  • SRB2_release_2.1.5
  • SRB2_release_2.1.6
  • SRB2_release_2.1.7
  • SRB2_release_2.1.8
  • SRB2_release_2.1.9
  • SRB2_release_2.2.0
  • SRB2_release_2.2.1
  • SRB2_release_2.2.10
  • SRB2_release_2.2.11
  • SRB2_release_2.2.2
  • SRB2_release_2.2.3
  • SRB2_release_2.2.4
  • SRB2_release_2.2.5
  • SRB2_release_2.2.6
  • SRB2_release_2.2.7
  • SRB2_release_2.2.8
  • SRB2_release_2.2.9
  • td-release-v1.0.0
139 results
Show changes
Showing
with 9576 additions and 4641 deletions
......@@ -12,7 +12,7 @@ Upstream Author(s):
Copyright:
Copyright (C) 1998-2018 by Sonic Team Junior
Copyright (C) 1998-2025 by Sonic Team Junior
License:
......@@ -21,7 +21,7 @@ License:
The Debian packaging is:
Copyright (C) 2010 Callum Dickinson <gcfreak_ag20@hotmail.com>
Copyright (C) 2010-2018 by Sonic Team Junior <stjr@srb2.org>
Copyright (C) 2010-2025 by Sonic Team Junior <stjr@srb2.org>
and is licensed under the GPL version 2,
see "/usr/share/common-licenses/GPL-2".
================================================================
How to add Low-res modes to your XF86Config under Linux MANUALLY
================================================================
I TAKE NO RESPONSIBILITY FOR ANY DAMAGE DONE TO YOUR EQUIPMENT!!!
This document explains how to add low-res modes like 320x200 to your
X-Server configuration, because some new setup tools for the X-Server
do not support this. ONLY RECOMMENDED FOR USERS WHO KNOW WHAT THEY DO!
I do not take any responsibility for damage done to your monitor, your
videocard, your harddisk, your cat, your dog or anything else!!!
IMPORTANT IS, THAT YOUR "HorizSync" AND "VertRefresh" VALUES REALLY
MATCH YOUR MONITOR! OTHERWISE YOUR MONITOR CAN BLOW UP!!!
OK, if you have read up to here, you either know what you do or really
die-hard want those low-res modes. Here is what to do:
Look up your XF86Config. Is is either in /etc or in /etc/X11. Here is
what you have to add to the definition of your modeslines:
# Low-res Doublescan modes
# If your chipset does not support doublescan, you get a 'squashed'
# resolution like 320x400.
# 320x200 @ 70 Hz, 31.5 kHz hsync, 8:5 aspect ratio
Modeline "320x200" 12.588 320 336 384 400 200 204 205 225 Doublescan
# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio
Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan
# 320x240 @ 72 Hz, 36.5 kHz hsync
Modeline "320x240" 15.750 320 336 384 400 240 244 246 262 Doublescan
# 400x300 @ 56 Hz, 35.2 kHz hsync, 4:3 aspect ratio
ModeLine "400x300" 18 400 416 448 512 300 301 302 312 Doublescan
# 400x300 @ 60 Hz, 37.8 kHz hsync
Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan
# 400x300 @ 72 Hz, 48.0 kHz hsync
Modeline "400x300" 25 400 424 488 520 300 319 322 333 Doublescan
If your video card only supports a specific set of discrete dotclocks
(RAMDAC) you may have to replace the dotclocks given here by one of the
specified (e.g in the first modeline the dotclock is 12.588 MHz). I believe
that nowadays all cards and monitors should work with these settings, but
if you have outdated hardware you better check the frequencies yourself. If
there is any uncertainty, please check the "XFree86 Video Timings HOWTO".
Then have a look at the section "Screen" with the appropriate driver
(usually either "svga" or "accel"). Under Subsection "Display" there
are modes for the given color depth. Add the desired modes. As an
example I give you my screens definition here with low-res modes in
16 bit color depth:
Section "Screen"
Driver "accel"
Device "3D Charger"
Monitor "Iiyama Pro 450"
DefaultColorDepth 16
Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
Virtual 1280 1024
EndSubsection
Subsection "Display"
Depth 16
Modes "1152x864" "1024x768" "800x600" "640x480" "400x300" "320x200" <- THIS IS ACTUALLY WHAT YOU WANT!!!
ViewPort 0 0 ^^^^^^^^^^^^^^^^^^^
Virtual 1152 864
EndSubsection
Subsection "Display"
Depth 24
Modes "800x600" "640x480"
ViewPort 0 0
Virtual 800 600
EndSubsection
Subsection "Display"
Depth 32
Modes "800x600" "640x480"
ViewPort 0 0
Virtual 800 600
EndSubsection
EndSection
Once again: important is, that you edit the correct Screen section.
If you use the SVGA Server and edit the ACCEL Server, you might
wonder where your new modes have gone.
If everything went fine and you want to say thank you, just write
to "metzgermeister@users.sourceforge.net". If your monitor blew
up and you want to kill me, find me playing Legacy or Q3A on the net
and frag me (with your second monitor, hehe).
- metzgermeister
1-99 : Player Starts
1 - Player 1 Start 1
2 - Player 2 Start 2
3 - Player 3 Start 3
4 - Player 4 Start 4
5 - Player 5 Start 4001
6 - Player 6 Start 4002
7 - Player 7 Start 4003
8 - Player 8 Start 4004
9 - Player 9 Start 4005
10 - Player 10 Start 4006
11 - Player 11 Start 4007
12 - Player 12 Start 4008
13 - Player 13 Start 4009
14 - Player 14 Start 4010
15 - Player 15 Start 4011
16 - Player 16 Start 4012
17 - Player 17 Start 4013
18 - Player 18 Start 4014
19 - Player 19 Start 4015
20 - Player 20 Start 4016
21 - Player 21 Start 4017
22 - Player 22 Start 4018
23 - Player 23 Start 4019
24 - Player 24 Start 4020
25 - Player 25 Start 4021
26 - Player 26 Start 4022
27 - Player 27 Start 4023
28 - Player 28 Start 4024
29 - Player 29 Start 4025
30 - Player 30 Start 4026
31 - Player 31 Start 4027
32 - Player 32 Start 4028
33 - Player Match Start 11
34 - Red Team Start 87
35 - Blue Team Start 89
36 - Tag start New
100 - 199 : Enemies
100 - Blue Crawla 3004
101 - Red Crawla 9
102 - GFZ Fish 58
103 - Gold Buzz 5005
104 - Red Buzz 5006
105 - Jetty-Syn Bomber 3005
106 - Jetty-Syn Gunner 22
107 - Crawla Commander 21
108 - Deton 71
109 - Skim 56
110 - THZ Turret 2004
111 - Pop-up Turret 42
200 - 299 : Bosses and their associated items (if any)
200 - Boss 1 16
201 - Boss 2 2008
290 - Boss Fly Point 17
291 - EggTrap Center 2049
300 - 399 : Collectibles
300 - Ring 2014
301 - Homing Ring 69
302 - Rail Ring 3003
303 - Infinity Ring 80
304 - Automatic Ring 26
305 - Explosion Ring 54
306 - Red CTF Flag 31
307 - Blue CTF Flag 34
308 - Special Stage Token 2013
309 - Emerald 1 420
310 - Emerald 2 421
311 - Emerald 3 422
312 - Emerald 4 423
313 - Emerald 5 424
314 - Emerald 6 425
315 - Emerald 7 426
316 - Hunting Emerald 1 64
317 - Hunting Emerald 2 3002
318 - Hunting Emerald 3 3001
400 - 499 : Boxes
400 - Super Ring Box 2011
401 - Grey Ring Box 2012
402 - Ring Shield Box 48
403 - Fire Shield Box 2002
404 - Bomb Shield Box 2018
405 - Jump Shield Box 35
406 - Water Shield Box 2028
407 - Sneaker Box 25
408 - Invincibility Box 2022
409 - 1-Up Box 41
410 - Eggman Box 2005
411 - Mixup Box 78
412 - Question Box 3000
500 - 599 : Interactive Objects (friendly or otherwise - includes springs)
500 - Bubble Patch 33
501 - Level End Sign 86
502 - Starpost 3006
520 - Spike Ball -1
521 - Special Stage Spike Ball 23
522 - Ceiling Spike 67
523 - Floor Spike 68
540 - Fan 32
541 - Steam Riser 30
550 - Yellow Spring 28
551 - Red Spring 79
552 - Blue Spring 5004
553 - Yellow Spring Down 65
554 - Red Spring Down 66
555 - Yellow Diagonal Spring 2015
556 - Red Diagonal Spring 38
557 - Yellow Diag Spring Down 20
558 - Red Diag Spring Down 39
600 - 699 : Special placement patterns
600 - Vertical Rigns - Stack of 5 (suitable for Yellow Spring) 84
601 - Vertical Rings - Stack of 5 (suitable for Red Spring) 44
602 - Diagonal rings (5) 76
603 - Diagonal rings (10) 77
604 - A ring of rings 47
605 - A BIGGER ring of rings 2007
606 - A ring of wing items 2048
607 - A BIGGER ring of wing items 2010
608 - A ring of rings and wings (alternating) 2046
609 - A BIGGER ring of rings and wings (alternating) 2047
700 - 799 : Powerup indicators/environmental effects/miscellany
700 - Ambient Water 1a (S) 2026
701 - Ambient Water 1b (S) 2024
702 - Ambient Water 2a (M) 2023
703 - Ambient Water 2b (M) 2045
704 - Ambient Water 3a (L) 83
705 - Ambient Water 3b (L) 2019
706 - Ambient Water 4a (XL) 2025
707 - Ambient Water 4b (XL) 27
708 - Random Ambient 1 14
709 - Random Ambient 2 43
750 - Chaos Spawner 8
751 - Teleport Point 5003
752 - Alternate View Point 5007
753 - Zoom Tube Waypoint 18
754 - Pusher 5001
755 - Puller 5002
756 - Street Light 2003
800 - 899 : Greenflower Scenery
800 - Flower 1 36
801 - Flower 2 70
802 - Flower 3 73
804 - Berry Bush 74
805 - Bush 75
900 - 999 : Techno Hill Scenery
900 - THZ Plant 2035
901 - Alarm 2006
1000 - 1099 : Deep Sea Scenery
1000 - Gargoyle 81
1100 - 1199 : Castle Eggman Scenery
1100 - Ceiling Chain 49
1101 - Torch Flame 24
1102 - Eggman Statue 52
1103 - CEZ Flower 2001
1200 - 1299 : Arid Canyon Scenery
1300 - 1399 : Red Volcano Scenery
1400 - 1499 : Dark City Scenery
1500 - 1599 : Doom Ship Scenery
1600 - 1699 : Egg Rock/Final Fight Scenery
1700 - 1799 : NiGHTS Items
1700 - Axis 72
1701 - Axis Transfer (Normal) 61
1702 - Axis Transfer (Line) 46
1703 - Nights Drone 60
1704 - Nights Bumper 82
1705 - Hoop 57
1706 - Nights Wing 37
1707 - Super Loop Powerup 3007
1708 - Drill Refill Powerup 3008
1709 - Helper Powerup 3009
1710 - Egg Capsule 40
1800 - 1849 : Mario Items
1800 - Coin 10005
1801 - Goomba 10000
1802 - Blue Goomba 10001
1803 - FireFlower 50
1804 - Shell 10
1805 - Puma 29
1806 - Koopa 19
1807 - Axe 12
1808 - Mario Bush 1 10002
1809 - Mario Bush 2 10003
1810 - Toad 10004
1850 - 1899 : Christmas Items
1850 - Xmas Pole 5
1851 - Candy Cane 13
1852 - Snowman 6
1900 - 1999 : Misc Scenery
1900 - Stalagmite 0
1901 - Stalagmite 1
1902 - Stalagmite 2
1903 - Stalagmite 3
1904 - Stalagmite 4
1905 - Stalagmite 5
1906 - Stalagmite 6
1907 - Stalagmite 7
1908 - Stalagmite 8
1909 - Stalagmite 9
Description OldNum NewNum Description
Old Water 14 Removed
Level Parameters/Misc:
Per-Sector Gravity 64 1
Custom Exit 71 2
Zoom Tube Parameters 18 3
Speed Pad 65 4
Camera Scanner 63 5
Disable Linedef 73 6
Flat Alignment 66 7
Sector Special Parameters New 8
Mace Parameters New 9
Sprite Cull Height New 10
Rope Hang Parameters New 11
Rock Spawner Parameters New 12
PolyObjects
Marks first line in PolyObject New 20
Explicitly includes a PolyObject line New 21
PolyObject: Parameters New 22
PolyObject: Waving Flag New 31
Level-Load Effects:
Instant Floor Lower 26 50
Instant Ceiling Raise 24 51
Continuously Falling Sector 88 52
Continuous Floor/Ceiling Mover 2 53
Continuous Floor Mover 3 54
Continuous Ceiling Mover 4 55
Continuous Two-Speed Floor/Ceiling Mover 6 56
Continuous Two-Speed Floor Mover 7 57
Continuous Two-Speed Ceiling Mover 8 58
Activate Floating Platform 232 59
Activate Floating Platform (Adjustable Speed) 233 60
Crusher 1 (Ceiling to Floor) 43 61
Crusher 2 (Floor to Ceiling) 50 62
Fake Floor/Ceiling 242 63
Appearing/Disappearing FOF New 64
Bridge Thinker New 65
Floor Over Floors:
"Floor Over Floor: Solid, Opaque, Shadowcasting " 25 100
"Floor Over Floor: Solid, Opaque, Non-Shadowcasting " 33 101
"Floor Over Floor: Solid, Translucent " 44 102
"Floor Over Floor: Solid, Sides Only " 69 103
"Floor Over Floor: Solid, No Sides " 51 104
"Floor Over Floor: Solid, Invisible " 57 105
"Floor Over Floor: Water, Opaque " 48 120
"Floor Over Floor: Water, Translucent " 45 121
"Floor Over Floor: Water, Opaque, No Sides " 75 122
"Floor Over Floor: Water, Translucent, No Sides " 74 123
"Floor Over Floor: Platform, Opaque " 59 140
"Floor Over Floor: Platform, Translucent " 81 141
"Floor Over Floor: Platform, Translucent, No Sides " 77 142
Floor Over Floor: Bobbing (Air) 38 150
Floor Over Floor: Adjustable Bobbing (Air) 68 151
Floor Over Floor: Reverse Adjustable Bobbing (Air) 72 152
"Floor Over Floor: Floating, Bobbing " 34 160
Floor Over Floor: Crumbling (Respawn) 36 170
Floor Over Floor: Crumbling (No Respawn) 35 171
"Floor Over Floor: Crumbling (Respawn), Platform " 79 172
"Floor Over Floor: Crumbling (No Respawn), Platform " 80 173
"Floor Over Floor: Crumbling (Respawn), Platform, Translucent " 82 174
"Floor Over Floor: Crumbling (No Respawn), Platform, Translucent " 83 175
"Floor Over Floor: Crumbling (Respawn), Floating, Bobbing " 39 176
"Floor Over Floor: Crumbling (No Respawn), Floating, Bobbing " 1 177
"Floor Over Floor: Crumbling (Respawn), Floating " 37 178
"Floor Over Floor: Crumbling (No Respawn), Floating " 42 179
"Floor Over Floor: Crumbling (Respawn), Bobbing (Air) " 40 180
"Floor Over Floor: Rising Platform, Solid, Opaque, Shadowcasting " 89 190
"Floor Over Floor: Rising Platform, Solid, Opaque, Non-Shadowcasting " 90 191
"Floor Over Floor: Rising Platform, Solid, Translucent " 91 192
"Floor Over Floor: Rising Platform, Solid, Invisible " 94 193
"Floor Over Floor: Rising Platform, Platform, Opaque " 92 194
"Floor Over Floor: Rising Platform, Platform, Translucent " 93 195
Floor Over Floor: Light Block 49 200
Floor Over Floor: Half Light Block 47 201
Floor Over Floor: Fog Block 46 202
"Floor Over Floor: Intangible, Opaque " 62 220
"Floor Over Floor: Intangible, Translucent " 52 221
"Floor Over Floor: Intangible, Sides Only " 67 222
"Floor Over Floor: Intangible, Invisible " 58 223
Floor Over Floor: Mario Block 41 250
Floor Over Floor: Thwomp Block 54 251
Floor Over Floor: Shatter Block 76 252
"Floor Over Floor: Shatter Block, Translucent " 86 253
Floor Over Floor: Bustable Block 55 254
Floor Over Floor: Spin Bust Block 78 255
"Floor Over Floor: Spin Bust Block, Translucent " 84 256
Floor Over Floor: Quicksand Block 56 257
Floor Over Floor: Laser Block 53 258
Floor Over Floor: Custom 87 259
Linedef Executor Triggers:
Trigger Linedef Executor (Continuous) 96 300
Trigger Linedef Executor (Each Time) 97 301
Trigger Linedef Executor (Once) 98 302
Trigger Linedef Executor (Ring Count - Continuous) 95 303
Trigger Linedef Executor (Ring Count - Once) 99 304
Trigger Linedef Executor (Character Ability - Continuous) 19 305
Trigger Linedef Executor (Character Ability - Each Time) 20 306
Trigger Linedef Executor (Character Ability - Once) 21 307
"Trigger Linedef Executor (Race Only, Once) " 9 308
Trigger Linedef Executor (CTF Red Team - Continuous) 10 309
Trigger Linedef Executor (CTF Red Team - Each Time) 11 310
Trigger Linedef Executor (CTF Blue Team - Continuous) 12 311
Trigger Linedef Executor (CTF Blue Team - Each Time) 13 312
Trigger Linedef Executor (No More Enemies - Once) 15 313
Trigger Linedef Executor (# of Pushables - Continuous) New 314
Trigger Linedef Executor (# of Pushables - Once) New 315
Trigger Linedef Executors (PolyObject - Land On) New 316
Trigger Linedef Executor (Level Load) New 399
Linedef Executor Options:
Linedef Executor: Set Tagged Sector's Floor Height/Pic 101 400
Linedef Executor: Set Tagged Sector's Ceiling Height/Pic 102 401
Linedef Executor: Set Tagged Sector's Light Level 103 402
Linedef Executor: Move Tagged Sector's Floor 106 403
Linedef Executor: Move Tagged Sector's Ceiling 107 404
Linedef Executor: Lower Floor by Line 108 405
Linedef Executor: Raise Floor by Line 109 406
Linedef Executor: Lower Ceiling by Line 110 407
Linedef Executor: Raise Ceiling by Line 111 408
Linedef Executor: Change Calling Sector's Tag 112 409
Linedef Executor: Change Front Sector's Tag 114 410
Linedef Executor: Stop Plane Movement 116 411
Linedef Executor: Teleport Player to Tagged Sector 104 412
Linedef Executor: Change Music 105 413
Linedef Executor: Play SFX 115 414
Linedef Executor: Run Script 113 415
Linedef Executor: Start Adjustable Fire Flicker 119 416
Linedef Executor: Start Adjustable Glowing Light 120 417
Linedef Executor: Start Adjustable Strobe Flash (unsynchronized) New 418
Linedef Executor: Start Adjustable Strobe Flash (synchronized) New 419
Linedef Executor: Fade Light Level 117 420
Linedef Executor: Stop Lighting Effect 118 421
Linedef Executor: Cut-Away View 121 422
Linedef Executor: Change Sky 123 423
Linedef Executor: Change Weather 124 424
Linedef Executor: Change Object State 125 425
Linedef Executor: Stop Object 122 426
Linedef Executor: Award Score 126 427
Linedef Executor: Start Platform Movement 127 428
Linedef Executor: Crush Ceiling Once New 429
Linedef Executor: Crush Floor Once New 430
Linedef Executor: Crush Floor & Ceiling Once New 431
Linedef Executor: Enable 2D Mode New 432
Linedef Executor: Disable 2D Mode New 433
Linedef Executor: Award Custom Power New 434
Linedef Executor: Stop Conveyor New 435
Linedef Executor: Start Conveyor New 436
Linedef Executor: Disable Player Movement New 437
Linedef Executor: Execute Linedef Executor New 450
Linedef Executor: PolyObject: Door Slide New 480
Linedef Executor: PolyObject: Door Swing New 481
Linedef Executor: PolyObject: Move XY New 482
Linedef Executor: PolyObject: Move XY w/ override New 483
Linedef Executor: PolyObject: Rotate Right New 484
Linedef Executor: PolyObject: Rotate Right w/ override New 485
Linedef Executor: PolyObject: Rotate Left New 486
Linedef Executor: PolyObject: Rotate Left w/ override New 487
Linedef Executor: PolyObject: Start waypoint movement New 488
Linedef Executor: PolyObject: Make Invisible New 489
Linedef Executor: PolyObject: Make Visible New 490
Scrollers/Pushers:
Scroll Wall First Side Left 100 500
Scroll Wall First Side Opposite Direction 85 501
Scroll Wall According to Linedef 254 502
Acc Scroll Wall According to Linedef 218 503
Disp Scroll Wall According to Linedef 249 504
Scroll Texture by Offsets 255 505
Scroll Floor Texture 251 510
Acc Scroll Floor Texture 215 511
Disp Scroll Floor Texture 246 512
Scroll Ceiling Texture 250 513
Acc Scroll Ceiling Texture 214 514
Disp Scroll Ceiling Texture 245 515
Carry Objects on Floor (no scroll) 252 520
Acc Carry Objects on Floor 216 521
Disp Carry Objects on Floor 247 522
Carry Objects on Ceiling 203 523
Acc Carry Objects on Ceiling 205 524
Disp Carry Objects on Ceiling 201 525
Scroll Floor Texture and Carry Objects 253 530
Acc Scroll Floor Texture and Carry Objects 217 531
Disp Scroll Floor Texture and Carry Objects 248 532
Scroll Ceiling Texture and Carry Objects 202 533
Acc Scroll Ceiling Texture and Carry Objects 204 534
Disp Scroll Ceiling Texture and Carry Objects 200 535
Friction 223 540
Horizontal Wind 224 541
Upwards Wind 229 542
Downwards Wind 230 543
Horizontal Current 225 544
Upwards Current 227 545
Downwards Current 228 546
Boom Push/Pull Thing 226 547
Lighting:
Floor Lighting 213 600
Ceiling Lighting 5 601
Adjustable Pulsating Light 60 602
Adjustable Flickering Light 61 603
Adjustable Blinking Light (unsynchronized) New 604
Adjustable Blinking Light (synchronized) New 605
Colormap 16 606
File deleted
Removed:
- Buttons 1-20 690-709
- Button 21 (THZ2 A/740 B/741 D/742 E/745 710
- Close Door Blazing (Tag 743) 711
- Raise Ceiling to Highest (Tag 744) 981
- THZ2 Slime Raise (B/712 W713 P714 D715 S716) 986
Stuff to Remove/Change:
- Light Blinks On Every 0.5 Seconds 2 Add Linedef Combine
- Light Blinks On Every 1 Second 3 Add Linedef Combine
- Light Pulses Smoothly 8 Remove
- Light Blinks On Every 0.5 Seconds (Sync) 12 Add Linedef Combine
- Lights Blinks On Every 1 Second (Sync) 13 Add Linedef Combine
- Light Flickers Like Fire 17 Remove
? - Damage (Fire) and Current 519 Remove (convert to combination)
? - Damage (Water) and Current 984 Remove (convert to combination)
Section 1:
1 - Damage (Generic) 11
2 - Damage (Water) 983
3 - Damage (Fire) 7
4 - Damage (Electrical) 18
5 - Spikes 4
6 - Death Pit (Camera Mod) 16
7 - Death Pit (No Camera Mod) 5
8 - Instant Kill 10
9 - Ring Drainer (Floor Touch) 978
10 - Ring Drainer (No Floor Touch) 980
11 - Special Stage Damage 9
12 - Space Countdown 6
13 - Ramp Sector (Increase step-up) 992
14 - Non-Ramp Sector (Don't step-down) 996
15 - Bouncy Sector (FOF Control Only) 14
Section 2: << 4
1 - Trigger Linedef Exec (Pushable Objects) 971
2 - Trigger LD Exec (Anywhere in Sec/All Pls) 972
3 - Trigger Linedef Exec (Floor Touch/All Pls) 973
4 - Trigger Linedef Exec (Anywhere in Sec) 974
5 - Trigger Linedef Exec (Floor Touch) 975
6 - Trigger Linedef Exec (Emerald Check) 967
7 - Trigger Linedef Exec (NiGHTS Mare) 968
8 - Check for linedef executor on FOFs (ANY) 970
9 - Egg Trap Capsule 666
10 - Special Stage Time/Rings, Par 990
11 - Custom Global Gravity 991
Section 3: << 8
1 - Ice/Sludge (required?!) 256
2 - Wind/Current (required?!) 512
3 - Ice/Sludge and Wind/Current 768
4 - Conveyor Belt 985
5 - Speed Pad (No Spin) 976
6 - Speed Pad (Spin) 977
7 - Bustable Block Sprite Parameter 1500-1515
8 - "
9 - "
10 - "
11 - "
12 - "
13 - "
14 - "
15 - "
Section 4: << 12
1 - Starpost Activator 993
2 - Special Stage Goal Combine 33
2 - Exit Sector Combine 982
2 - No Tag Zone Combine 987
2 - CTF: Flag Return Combine 995
3 - CTF: Red Team Base 988
4 - CTF: Blue Team Base 989
5 - Fan Sector 997
6 - Super Sonic Transform 969
7 - Spinner 979
8 - Zoom Tube Start 998
9 - Zoom Tube End 999
10 - Finish Line 994
\ No newline at end of file
SRB2
Release v1.09, ? 2005.
Last Updated: June 2005
Original game & sources by: Id Software.
Additions: (c)1998 by: Fabrice Denis & Boris Pereira
(c)1999 by: Fabrice Denis, Boris Pereira & Thierry Van Elsuwe
(c)2000 by: Boris Pereira & Thierry Van Elsuwe
(c)2004 By: AJ, Graue, Alam Arias, Logan Arias & Andrew Clunis
Special thanks to Steven McGranahan, Lee Killough, Robert Bäuml and Bell Kin for
their large contribution and to other DooM LEGACY & SRB2 Team members.
Web site: http://www.SRB2.org/
e-mail: none@none.com
OpenGL specific:
Web site: http://legacy.newdoom.com/gl
-----------------------------------------------------------------------
F.A.Q.
-----------------------------------------------------------------------
If you have any trouble with SRB2, you might find a solution
here.
If you find a solution to a problem that was not listed here,
please tell us so that we can update the FAQ and help other people!
Mail your hardware/software problems to:
None@none.com subject: FAQ
--------
CONTENTS
--------
[0] Miscellaneous
[1] Mouse/Joystick/Keyboard
[2] Video
[3] Sound
[4] Network
[5] Troubleshooting
-----------------
[0] MISCELLANEOUS
-----------------
* under win95 or OS/2, I don't have enough memory. How can i handle with ?
Tell win95 to put more dpmi memory for your dos box.
Or use the -mb option.
---------------------------
[1] MOUSE/JOYSTICK/KEYBOARD
---------------------------
* My mouse/joystick does not work in SRB2.
First, check that the mouse/joystick is activated : go at the
console and type either 'use_mouse' (or use the respective
menuitem) or 'use_joystick'.
If it tells '0' or off than the mouse/joystick is not used,
set the variable to 1. eg: 'use_mouse 1'.
For the joystick, different values will support different
types of joystick, check the console documentation for the
command 'use_joystick' for more.
Even if the mouse or joystick is activated, you have to
set up the contols into the Setup Controls menu. That is:
tell what use you will make of the mouse/joystick buttons.
---------
[2] VIDEO
---------
* Where are the other video modes ? I have only '320x200' in the
Video Modes menu.
DOS
---
SRB2 adds new video modes only if a VESA2 (or better) driver
is present. The VESA2 driver is a standard of 'talking' between a
program and the huge amount of different graphics cards
available today.
If you don't have a VESA2 driver, you can download UNIVBE, or
SMART DISPLAY DOCTOR from
http://www.scitechsoft.com/products/ent/free_titles.html
or if you have an S3 based card, you can download the free
software called 'S3VBE'.
ftp://ftp.externet.hu/pub/mirror/sac/graph/s3vbe318.zip
ftp://ftp.digsys.bg/pub/simtelnet/msdos/graphics/s3vbe318.zip
http://www.filesearching.com/cgi-bin/s?q=s3vbe318.zip
http://www.google.com/search?q=s3vbe318.zip
* The game doesn't restore the video mode I have chosen the last time
I played SRB2.
The current video mode has to be made the 'default' so that it is
saved to the config : press the key 'D' on the Video Options menu
to set the current video mode the default.
* I have some problems with OpenGL mode
Have a look at the FAQ for OpenGL on the glLegacy web site:
http://www.doomnation.com/gllegacy/faqe.htm
# Linux: I only have a 1024x768 (or 800x600, 1280x1024, ...) resolution
in fullscreen mode under X and SRB2 is really really slow. Can I
have lower resolutions like 320x200 in fullscreen mode as well?
Probably yes. SRB2 can only use the resolutions offered by the
X-Server. So if all fullscreen modes have a very high resolution you
have to modify /etc/XF86Config (or /etc/X11/XF86Config). Use XF86Setup
(or the appropriate tool coming with your distribution - sax,
xf86config, ...) to do this.
If you do not succeed there, you can enter them manually into your
XF86Config file. ONLY RECOMMENDED FOR USERS WHO KNOW WHAT THEY DO!
For a short guide on how to do this, have a look at the file
"Doublescan.txt".
In case of doubt consult the XFree86-HOWTO (or ask your system
administrator :).
# Linux: I cannot have any fullscreen modes at all!
You have only modes above 1024x768 in your XF86Config. Proceed as
described above.
# Linux: After a certain idle time my screensaver jams the display of
SRB2. I can still operate SRB2, but I do not see what's happening
and the screensaver won't go away.
You probably have KDE. The KDE screensaver does not obey the screensaver
rules (at least mine, version 1.1). The solution is to deactivate the
KDE screensaver and use another screensaver (like the xscreensaver,
e.g.). But the hell, when you started SRB2 you should have played it
as well and not left it alone!!!
---------
[3] SOUND
---------
+ DOS:I can't have CD audio music, why ?
Make sure that the MSCDEX driver version 2.0 or later is loaded.
If it says 'MSCDEX version xxx' at game startup, and you still
don't hear the cd music, then probably your card doesn't respond
when SRB2 tries to set the cd volume. If so, make sure your sound
card's mixer have the cd volume set up so that you can hear something.
+ When the CD plays, the game is very 'jerky'. It doesn't do that when
I type 'cd off' in the console.
You have an old/bad cd driver, that can take up to a second to
respond to cd driver commands. Either get the latest version of
your driver, or turn cd update off. Check 'cd_udpate' in the
console documentation for more.
* DOS:How can I *ALWAYS* disable the sounds or music of the game ?
Edit the allegro.cfg file and set digicard/midicard to 0 (none)
* DOS:My sterero sound is reversed, how can I set it the right way ?
Change the console variable 'stereoreverse' to either 1 or 0.
Or, you can edit the allegro.cfg file, and set the 'flip_pan' variable.
* DOS:The sounds are too 'slow', or 'low-pitched'
It seems to be a problem of the auto-detection of some 8bit sound
cards. You will have to set manually the 'sb_freq' value in the
allegro.cfg file to a lower value : 11906, 16129.
* DOS:SRB2 doesn't play any sound/music, but I have a sound
blaster genuine/compatible card.
If you have a genuine or compatible SoundBlaster card, it is very
important that you set the BLASTER environment variable.
If you are playing under DOS, and never installed your sound card
under DOS, run the setup of your sound card for DOS.
Check if the BLASTER variable was set: type 'SET' under dos
(or DOSbox)
Do you see something like 'BLASTER=A220 I5 D1 ...' ?
Yes? If you don't hear sounds/music, then tweak the settings in the
allegro.cfg file until you get something, first try changing the
type of the sound card, it is not always properly detected.
No? You have to set this variable in order that your sound card is
detected. Run the setup that was shipped with your sound card, and
make sure you run the setup for DOS too, it will usually add a
line of the type 'SET BLASTER=... ...' in the autoexec.bat file.
* DOS:How can I have better midi music on my 8bit sound card ?
Use the DIGMID driver, it is supported in SRB2.
What the hell is this? Well, the Gravis Ultrasound uses digital
samples to play midi music. On a simple 8bit card, you can use digital
samples too, which will sound usually better than what is output
by the poor fm synthesis chip of 8bit cards.
You will need to get a Gravis Ultrasound patch set, you can find
several ones for free on internet, it consists of a bunch of '.pat'
files which are the digital samples to play the midi instruments
(eg: piano, conga, guitar, ect.).
Check the Allegro homepage for some links to GUS patches:
http://alleg.sourceforge.net/digmid.html
http://alleg.sourceforge.net/
http://www.talula.demon.co.uk/allegro/digmid.html
http://www.talula.demon.co.uk/allegro/
Now to activate the DIGMID driver:
Set the 'midi_card' value to 8 (DIGMID) in the allegro.cfg file.
Make sure you leave the 'digi_voices' blank, or set it to a low
value, because the midi music will use digital voices.
At the end of the allegro.cfg file, set the 'patches' value
to the path, where you have installed a Gravis Ultrasound midi
patch set. eg: patches = d:\music\midipat\
# Linux: CD music does not work or only works when run as root.
We do not encourage you to run SRB2 as root (you never know
what SRB2 can do to your system - it's a mighty piece of code :).
There is a common problem with ATAPI CD-rom drives, which are
treated as harddisks. Usually there is a link /dev/cdrom pointing to
device hd[b,c,d]. As harddisks are not supposed to be read directly
via this device (especially not by a common user), there are no read
permissions for "all". For CD-roms you can savely set read permissions
unless you are very paranoid. Assuming your CD-rom drive is /dev/hdc,
set permissions with "chmod +r /dev/hdc" (as root). SCSI CD-rom drives
should not have this problem. But if they do, proceed as described
with ATAPI drives.
# Linux: The CD music volume is not set properly.
Go to the console and type "jigglecdvolume 1".
-----------
[4] NETWORK
-----------
* Where can I find Internet servers ?
For the moment there is one public server.
http://srb2.servegame.org/ Master server web page
srb2.servegame.org:28910 current Master Server
* When I start SRB2 with -server or -connect it say :
"BinToPort: Address already in use (EADDRINUSE)"
It appears only when SRB2 crashes or when you leave with ctrl-break.
use -udpport 12345 (or any other free slot) on both sides (client and
server).
This can also happens when there is already a SRB2 running on your
computer if you whant to try two SRB2 running on the same computer
use -clientport 12345 (or any other free slot). Then the second will
connect to the first one.
* Do you use the tcp protocol ?
No, we use the udp protocol which is faster, but don't worry udp is a
part of the internet protocol.
-------------------
[5] Troubleshooting
-------------------
# Linux: SRB2 is hung in fullscreen mode and won´t let me leave.
What shall I do?
Some people press the reset button, but hey, we are not in the
stoneage of operating systems! There are two "proper" ways to
get out: kill your X-Server. You can usually do this by pressing
"CTRL-ALT-BACKSPACE". But if you have other open applications with
important data (probably hacked away on your diploma thesis for 3
weeks without saving once) you can also kill SRB2 directly. Press
"CTRL-ALT-F2" and you will get to a console. Log in, type
"killall llxSRB2" and switch back to the X-Server with "CTRL-ALT-F7".
Some X-Server crash on this procedure - blame the X-Server for the
loss of 3 weeks work on your diploma thesis :)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>
Sonic Robo Blast 2 Manual
</title>
<link rel="stylesheet" type="text/css" href="srb2manstyle.css">
<!-- Borrowed some javascript code so the height of the iframe is equal to the size of the document - Sonict -->
<script type="text/javascript">
/* free code from dyn-web.com */
function getDocHeight(doc) {
doc = doc || document;
// from http://stackoverflow.com/questions/1145850/get-height-of-entire-document-with-javascript
var body = doc.body, html = doc.documentElement;
var height = Math.max( body.scrollHeight, body.offsetHeight,
html.clientHeight, html.scrollHeight, html.offsetHeight );
return height;
}
function setIframeHeight(id) {
var ifrm = document.getElementById(id);
var doc = ifrm.contentDocument? ifrm.contentDocument: ifrm.contentWindow.document;
ifrm.style.visibility = 'hidden';
ifrm.style.height = "10px"; // reset to minimal height in case going from longer to shorter doc
ifrm.style.height = getDocHeight( doc ) + "px";
ifrm.style.visibility = 'visible';
}
</script>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p class="c1">
<img src="manual_img/sonicname2.png" alt="SONIC" width="136" height="36">
<br>
<img src="manual_img/srb2banner.png" alt="ROBO BLAST 2" width="224" height="43">
</p>
<p class="c1">
<big><big><strong>Manual</strong></big></big>
</p>
<table class="cf" align="center">
<tr><td class="c">
<ul class="hmenu">
<li class="hmenu"><a class="hmenu" href="intro.htm" target="ifrm">Main</a></li>
<li class="hmenu"><a class="hmenu" href="items.htm" target="ifrm">Items</a></li>
<li class="hmenu"><a class="hmenu" href="playerabilities.htm" target="ifrm">Player Abilities</a></li>
<li class="hmenu"><a class="hmenu" href="basicplay.htm" target="ifrm">Gameplay</a></li>
<li class="hmenu"><a class="hmenu" href="surroundings.htm" target="ifrm">Surroundings</a></li>
</ul>
</td></tr>
<tr><td class="c">
<ul class="hmenu">
<li class="hmenu"><a class="hmenu" href="multiplayer.htm" target="ifrm">Multiplayer</a></li>
<li class="hmenu"><a class="hmenu" href="zones.htm" target="ifrm">Zones</a></li>
<li class="hmenu"><a class="hmenu" href="controls.htm" target="ifrm">Controls</a></li>
<li class="hmenu"><a class="hmenu" href="consolecommands.htm" target="ifrm">Console Commands</a></li>
<li class="hmenu"><a class="hmenu" href="misc.htm" target="ifrm">Misc</a></li>
</ul>
</td></tr>
</table>
<hr>
<p class="c1">
<!-- The "onload" property of the iframe makes an error when validated through the W3C validation checker. -->
<!-- This will not be fixed as it isn't worth the time to fix it up properly. - Sonict -->
<iframe id="ifrm" name="ifrm" src="intro.htm" onload="setIframeHeight(this.id)"> </iframe>
</p>
</body>
</html>
SVN-RULES
- As you can see, there is sub-directory in the repository, one for eatch
platform (djgpp (dos),win32,SDL) the root directory is for all platform,
so take care of the order we have put in.
- do not commit/upload tests of bugged code, try to fix a maximum of know
bugs and update know bugs list in source.txt. If you must commit your source
make your code in #ifdef so we can disable it
- SRB2 is a modification of doom/Doom Legacy source. We allow additionnal feature
and visual addition.
- Maximize communications between members, do not impose your changes, if your
are not sure about a feature/change, talk about it in irc://irc.esper.net/srb2 chat room.
CODE-RULES
- We use no tab, 4 space indent, and tab size 8 (in case some tab have filtred
and for makefile)
- Self documented code, variable and function must have a name that help
understand the code, so do not call variable and function a,b, a2, ...
- the usage of extern in a c file is prohibited, except for declaration of a
function with body (so it is like public keyword in c++)
Also function protos haren't allowed for external function, put it un the
corresponding h file.
- Try to minimize #ifdef usage for :
- code readability
- the main code is for all port so if something is good for a platform all
platform can benefit by this feature
- Take care of platform dependent code, we would like to have code that work
on Dos, Win32, SDL, ... little and big endian, software/Glide/OpenGl.
GOOD PRACTICE
- Try to put as mush static variable and function on module so it help to
understand the role of the varaible/function in the module also this
help the compiler to optimize
- minimise global variable
- make a log of your work, so you don't need to put a lot of comment in
the code, this will also help us to update the what's new section of doc
when doing final release
1. Compile SRB2
2. Explanation of the code
2.1 The memory model
2.2 Hardware Texture model
1. Compile SRB2
=================
DOS
---
need:
- djgpp 2.03 (http://www.delorie.com/djgpp/)
- allegro 3.12 (http://alleg.sourceforge.net/index.html)
(
- libsocket 0.7.4 (beta 4) or better
for use with Winsock 1.1 (example Windows 3.1)
(http://www.phekda.freeserve.co.uk/richdawe/lsck/lsck.htm)
OR
- Wattcp-32 v2.2 dev.rel 6 or better
For use with a packet driver
(http://www.bgnett.no/~giva/)
(http://groups.yahoo.com/group/watt-32/)
(http://groups.yahoo.com/group/watt-32/files/v2.2/)
)
- bcd 1.03 (inlcude in this package)
- gcc 2.95.2 is recommended
- nasm 0.98 (or better) (http://nasm.sourceforge.net/)
compile:
make
make WATTCP=1 (to make a Wattcp-32 version)
debug:
when craching SRB2 will return eip
type make asm, then you will have a 8 megs srb2.s (a assembler file)
the you can find the faulting instruction and function
------------------------------------------------------------------------
Linux/SDL
-----
need:
- tested with gcc 2.95 and 3.X.
- SDL 1.2
- SDL_mixer 1.2
- ibogg and libvorbis (http://Xiph.org/)
- nasm 0.98 (or better)(http://nasm.sourceforge.net/) only with 2.95, else add CC30=1
compile
make LINUX=1
debug:
gdb ?
------------------------------------------------------------------------
Win32
-----
need :
- glide 3.x sdk (optional) (http://www.3dfx.com)
- directx6 sdk (or higher) (http://www.micosoft.com/directx)
- nasm 0.98 (or better) (http://nasm.sourceforge.net/)
- use src\win32\wLegacy.dsp
- VC6 should also work with VC5, and VS.NET 200X
debug:
press on "step over" with the release version (there is some debug info
on it). Then change the eip in the regster window when you will type
enter the edi will go to the faulting instruction. don't forget that
you can follow the stack for calls.
You can also use trace with the debug version but add -win and -nomouse.
------------------------------------------------------------------------
Win32/minGW/SDL
-----
need:
- tested with gcc 2.95 and 3.X.
- can also use Dev-C++ 5.0 beta 9 (4.9.9.0) from http://www.bloodshed.net/dev/devcpp.html
- SDL 1.2
- SDL_mixer 1.2
compile
make minGW=1 SDL=1
or use src\SDL\Win32SDL.dev with Dev-C++ 4.9.9.0 or later
debug:
gdb ?
------------------------------------------------------------------------
WinCE/SDL WIP
-----
need:
- ActiveSync 3.8
http://www.microsoft.com/windowsmobile/downloads/activesync38.mspx
- ActiveSync 3.7.1, if 3.8 isn't available for your language
http://www.microsoft.com/windowsmobile/downloads/activesync37.mspx
- eMbedded Visual Tools 3.0 - 2002 Edition
http://www.microsoft.com/downloads/details.aspx?FamilyID=f663bf48-31ee-4cbe-aac5-0affd5fb27dd
- Pocket PC 2000 SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3f4d7b-de2a-4e1a-a175-26a68c301ac4
- Pocket PC 2002 SDK (eMVT 3.0 2002 Ed. comes with this)
http://www.microsoft.com/downloads/details.aspx?FamilyID=2dbee84a-bd94-4167-b817-2b2e548b2e92
- Pocket PC 2002 SDK Emulator Images (eMVT 3.0 2002 Ed. comes with this)
http://www.microsoft.com/downloads/details.aspx?FamilyID=25f4de97-ae80-477a-9df1-496b85b3d3e3
- eMbedded Visual C++ 4.0
http://www.microsoft.com/downloads/details.aspx?familyid=1DACDB3D-50D1-41B2-A107-FA75AE960856
- eMbedded Visual C++ 4.0 SP3 (Win CE 4.0-4.2)
http://www.microsoft.com/downloads/details.aspx?FamilyID=5bb36f3e-5b3d-419a-9610-2fe53815ae3b
OR
- eMbedded Visual C++ 4.0 SP4 (No SH3 support,Win CE 4.0-5.0 support)
http://www.microsoft.com/downloads/details.aspx?FamilyID=4a4ed1f4-91d3-4dbe-986e-a812984318e5
- eMbedded Visual C++ 4.0 Update 5625 (SP4 only)
http://www.microsoft.com/downloads/details.aspx?FamilyID=aa282a6d-6f57-436d-8c10-0ec02d94f5b1
- Windows CE: Standard Software Development Kit
http://www.microsoft.com/downloads/details.aspx?familyid=a08f6991-16b0-4019-a174-0c40e6d25fe7
- SDK for Windows Mobile 2003-based Pocket PCs
http://www.microsoft.com/downloads/details.aspx?FamilyId=9996B314-0364-4623-9EDE-0B5FBB133652
- Emulator Images for Windows Mobile 2003 Second Edition software for Pocket PC
http://www.microsoft.com/downloads/details.aspx?familyid=5C53E3B5-F2A2-47D7-A41D-825FD68EBB6C
- Microsoft Device Emulator 1.0 Community Preview
http://beta.microsoft.com Use Guest ID "MSDEVICE" to access the Community Preview website
- Windows CE Utilities for Visual Studio .NET 2003 Add-on Pack 1.1
(if you also have VS 2003 installed, you need this to install Win CE 5.0 SDK, else no need)
http://www.microsoft.com/downloads/details.aspx?FamilyId=7EC99CA6-2095-4086-B0CC-7C6C39B28762
- Windows CE 5.0: Standard Software Development Kit (eMC++ 4 SP4 only)
http://www.microsoft.com/downloads/details.aspx?FamilyID=fa1a3d66-3f61-4ddc-9510-ae450e2318c3
- SDL 1.27 (use patch and zip in tools\SDL1.2.7_CE)
compile
use src\SDL\WinCE\SRB2CE.vcw
debug:
?
2. Explanation of the code
==========================
2.1 The memory model (original) (z_zone.c) (by BP)
--------------------
SRB2 allocate a heap of 6/32/48 megs at begining and provide a Z_Malloc function
to allocate in this heap.
Z_Malloc( int size,int tag,void* user )
size is the size in byte
tag can be : PU_STATIC allocated static (like malloc do)
call Z_Free to free it
PU_LEVEL same as static but the zone is "tagged" with the
tag PU_LEVEL, when calling
Z_FreeTag (PU_LEVEL, PU_LEVEL) all zone tagged
with PU_LEVEL are freed (at the end of the level)
PU_CACHE this one _can_ be freed automatiquely by one other
call to Z_Malloc. the *user point to a pointer
to this zone so when freed automatiquely the
pointer is set to NULL so eatch time you use it
you must check if the pointer is not NULL and
reload it.
(...)
2.2 Hardware Texture model (by BP)
--------------------------
Eatch texture/patch/flats/pic in SRB2 are converted to hardware texture at
runtime (the GlideMipmap_s structure (hw_data.h)). I will call hardware
texture a gr_texture so there is no confusion.
To remind you :
- Texture are set of patch and are associate to linedefs (walls) can be
upper, lower or middle texture. It can have hole on it.
- patch are sprites (the doom patch are run of vertical lines)
- flats are used for floors and ceiling of sectors and have size of 64x64
it can't have hole on it
- pic are new legacy format for picture, it can only handle plain texture
like flats it is now used for hud in full screen for the main picture
of legacy and for coronas (the format was extended to handle 32 bit color
or intensity + alpha, not all are implemented at this time)
Since patch, flat and pic are basic structure represented by only one lump in
the wad, the wad loader allocate for eatch lump a GlideMipmap_s (cache3Dfx)
and init data field to NULL. Since the data structure is allocated in
PU_3DFXCACHE (like PU_CACHE) the data will be initilised when needed
(hw_cache.c).
The GlideMipmap_s structures for textures are initialized on
HWR_PrepLevelCache (hw_cache.c) it is called in P_SetupLevel (load level)
the number of textures is computed with TEXTURE1, TEXTURE2 lumps since this
can be changed in runtime in SRB2 (load a wad while runing) it must be
reallocated. Well, at this time it is realloceted at eatch level start. We
can do better, since numtextures change only when a wad is loaded.
The 3dfx driver use glide3, it load gr_texture in gr_texture memory of the
card in fifo order when there is no more place it remove the first gr_texture,
the downloaded field of GlideMipmap_s go to false and when needed it is
reloaded in gr_texture memory. In OpenGl, since OpenGl keep texture in there
own memory and handle gr_texture memory of the card we no more need to
redownload it but if we not free time to time gr_texture memory in opengl,
it will get alot of memory, so the gr_texture memory is cleared at eatch
new level (same time of texture reallocation). Opengl and 3dfx link the
loaded gr_texture with the nextmipmap field of GlideMipmap_s so before clear
textures of the heap we MUST free gr_texture memory of OpenGl or 3dfx !
SRB2 can also draw patch with a differant colormap (thanks to Hurdler).
When needed it create the same gr_texture but just with a differant colormap.
This one is linked with the original in the GlideMipmap_s with the
nextcolormap field.
So when a polygone with a gr_texture must be drawn, first we check if the
gr_textures is not allready loaded in hadware memory (downloaded field) if
not then we check if gr_texture data is there (not grabbed by z_malloc
function) if not we must recompute it eatch type of gr_texture (texture,
patch, flat, pic have there own methode) the we can send the gr_texture
to 3dfx or OpenGl.
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Sonic Robo Blast II - Specials Reference Document</title>
</head>
<body bgcolor="white" text="black" link="blue" vlink="blue" alink="blue">
<h1><big>SRB2 Specials Reference Document</big></h1>
<p><i>Last updated May 27, 2008</i></p>
<p><i>For v1.1 Private Beta</i></p>
<p>This is the SRB2 Specials Reference Document. It is designed to be the ultimate
reference for effects used in SRB2. As such, it is rather technical in areas and quite
concise, and is not something a beginner with level design should be dealing with.</p>
<h1><a name="things"></a>Thing Types</h1>
<p>In general, thing bitsets have 4 flags and 3 digits for their height. The bitset is
0xAAAB, where AAA is the object's height above ground, and B are the Easy, Normal, Hard,
and Deaf flags. To get the bitset on a normal object, multiply the height desired by 16,
and then add the existant B. Some objects use 32 as this number, and they will be noted.
Objects that multiply by 16 can be placed up to 4095 units in the air, while objects that
multiply by 32 can be placed up to 2047 units in the air.
<ul>
<li><u><big><big>Player Starts</big></big></u><ol>
<h3><a name="t1"></a>1 - Player 01 Start</h3>
<p>This is the start for the first player in single player mode, cooperative mode, or race
mode. This start must be placed on every map, as it is what the game defaults to if the
start it is attempting to find isn't there. If there is no Player 1 Start on the map, and
the game is confused over where to spawn the player, the game will crash outright.</p>
<p>The Deaf tag will make the player spawn from the ceiling, and the object needs to be
multiplied by 32 to give height, not 16.</p>
<h3><a name="t2"></a>2 - Player 02 Start</h3>
<p>This is the start for the second player in cooperative and race mode.</p>
<p>The Deaf tag will make the player spawn from the ceiling, and the object needs to be
multiplied by 32 to give height, not 16.</p>
<h3><a name="t3"></a>3 - Player 03 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t4"></a>4 - Player 04 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t5"></a>5 - Player 05 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t6"></a>6 - Player 06 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t7"></a>7 - Player 07 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t8"></a>8 - Player 08 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t9"></a>9 - Player 09 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t10"></a>10 - Player 10 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t11"></a>11 - Player 11 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t12"></a>12 - Player 12 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t13"></a>13 - Player 13 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t14"></a>14 - Player 14 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t15"></a>15 - Player 15 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t16"></a>16 - Player 16 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t17"></a>17 - Player 17 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t18"></a>18 - Player 18 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t19"></a>19 - Player 19 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t20"></a>20 - Player 20 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t21"></a>21 - Player 21 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t22"></a>22 - Player 22 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t23"></a>23 - Player 23 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t24"></a>24 - Player 24 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t25"></a>25 - Player 25 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t26"></a>26 - Player 26 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t27"></a>27 - Player 27 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t28"></a>28 - Player 28 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t29"></a>29 - Player 29 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t30"></a>30 - Player 30 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t31"></a>31 - Player 31 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t32"></a>32 - Player 32 Start</h3>
<p>See Thing <a href="#t2">2</a> for more information.</p>
<h3><a name="t33"></a>33 - Player Match Start</h3>
<p>This is the start for players in Match and Chaos modes. They should also be placed in
Capture the Flag maps as well. There should be 32 of these in a map to assure proper
randomization. While it's unelegant, they can be stacked on top of each other without
negative effect.</p>
<p>The Deaf tag will make the player spawn from the ceiling, and the object needs to be
multiplied by 32 to give height, not 16.</p>
<h3><a name="t34"></a>34 - CTF Team Start (Red)</h3>
<p>This is the start for players on the red team in Capture the Flag mode. There should be
32 of these in a map to assure proper randomization. While it's unelegant, they can be
stacked on top of each other without negative effect.</p>
<p>The Deaf tag will make the player spawn from the ceiling, and the object needs to be
multiplied by 32 to give height, not 16.</p>
<h3><a name="t35"></a>35 - CTF Team Start (Blue)</h3>
<p>This is the start for players on the blue team in Capture the Flag mode. There should
be 32 of these in a map to assure proper randomization. While it's unelegant, they can be
stacked on top of each other without negative effect.</p>
<p>The Deaf tag will make the player spawn from the ceiling, and the object needs to be
multiplied by 32 to give height, not 16.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Enemies</big></big></u><ol>
<h3><a name="t100"></a>100 - Crawla (Blue)</h3>
<p>These are the blue ground enemies found in the one player stages. They can't move off
of cliffs and are exceedingly slow.</p>
<h3><a name="t101"></a>101 - Crawla (Red)</h3>
<p>These are the red ground enemies found in the one player stages. They can't move off
cliffs and are relatively slow.</p>
<h3><a name="t102"></a>102 - Stupid Dumb Unnamed RoboFish (tm)</h3>
<p>This is the little fish in Greenflower Zone. The angle determines the jump height, with
0 being the old jump style. Note that the jump height is based on force, not units, so
experimentation will be necessary to get the correct height.</p>
<h3><a name="t103"></a>103 - Yellow Buzz</h3>
<p>This enemy flies at a moderate speed directly at the player.</p>
<h3><a name="t104"></a>104 - Red Buzz</h3>
<p>This enemy flies at a relatively high speed directly at the player.</p>
<h3><a name="t105"></a>105 - Jetty-Syn Bomber</h3>
<p>This is a highly mobile flying enemy with a bomb that it drops on the player from
directly above. It is considered highly difficult to kill, and should only be used in
situations where the stage is supposed to be difficult.</p>
<h3><a name="t106"></a>106 - Jetty-Syn Gunner</h3>
<p>This is a highly mobile flying enemy with a gun that it fires at the player with high
accuracy. It is considered highly difficult to kill, and should only be used in situations
where the stage is supposed to be difficult.</p>
<h3><a name="t107"></a>107 - Crawla Commander</h3>
<p>This is the grey floating enemy in the opening room of Techno Hill Zone Act 2. It is
quite fast and will start bouncing after taking the first hit. It is significantly
challenging, although a spindash will kill it given time.</p>
<h3><a name="t108"></a>108 - Deton</h3>
<p>This is the red spherical enemy in Techno Hill Zone Act 2. Upon seeing the player, it
makes a mad dash straight for them. With the exception of the <a href="#t404">Armageddon
Shield</a>, Detons are invincible, and must be avoided by running behind a wall or another
enemy.</p>
<h3><a name="t109"></a>109 - Skim</h3>
<p>This is an enemy that floats on the surface of the water, dropping bombs into the water
below. It is not currently used in any of the Single Player stages, but it is fully
operational. The designer does not have to put them on the surface of the water, they know
where it is.</p>
<h3><a name="t110"></a>110 - THZ Turret</h3>
<p>This is the turret from Techno Hill Zone Act 2. It fires large bursts of laser fire at
the player with high accuracy. It is invincible unless it is somehow dipped into water.</p>
<h3><a name="t111"></a>111 - Popup Turret</h3>
<p>This is a small turret that pops up now and then and shoots. The object's angle is a
value defining the delay between shooting.</p>
<h3><a name="t112"></a>112 - Sharp</h3>
<p>This is a blue enemy with spikes on top if it. It starts off by slowly chasing the player,
then it fades to red and runs after the player, and is invincible until it fades back to red.</p>
<h3><a name="t113"></a>113 – Jet Jaw</h3>
<p>This is an underwater enemy that tries to bite at the player, which can be found in
Deep Sea Zone.</p>
<h3><a name="t114"></a>114 – Snailer</h3>
<p>This is an incomplete enemy.</p>
<h3><a name="t115"></a>115 – Bird Aircraft Strike Hazard (B.A.S.H.)</h3>
<p>This is the red vulture-like enemy in Arid Canyon Zone. If it sees a player, it lifts off and
charges at him. Collision with a wall will send it plummeting.</p>
<h3><a name="t116"></a>116 – Pointy</h3>
<p>This is the orbinaut enemy that has spikes circling around it. None of the single player stages
currently use him. You have to place him in a map by using a WAD editor, he can't be placed using
objectplace.</p>
<h3><a name="t117"></a>117 – Robo-Hood</h3>
<p>This is the green enemy from Castle Eggman Zone, which shoots arrows at the player.</p>
<h3><a name="t118"></a>118 – CastleBot FaceStabber</h3>
<p>This is the large grey enemy from Castle Eggman Zone. It slowly trudges towards the player,
and if the player in range, lunges at them with his sword.</p>
<h3><a name="t119"></a>119 – Egg Guard</h3>
<p>This is the enemy from Castle Eggman Zone that wields a protective shield.</p>
<h3><a name="t120"></a>120 – Green Snapper</h3>
<p>This is the green turtle enemy from Arid Canyon Zone. This enemy behaves exactly like a blue
crawla does. The circumference of its shell is covered with spikes, so the only way to destroy it
is by jumping on top of it.</p>
<h3><a name="t121"></a>121 – Minus</h3>
<p>This is the digging enemy from Arid Canyon Zone. It burrows underground towards the player, and
once it's directly underneath, it bursts out from under the ground, jumping up and hurting the player.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Bosses and their associated items (if any)</big></big></u><ol>
<h3><a name="t200"></a>200 - Egg Mobile (Boss 1)</h3>
<p>The boss of Greenflower Zone and Castle Eggman Zone. He moves around firing at the
player, and after taking six hits, he dashes at the player.</p>
<p>Giving the boss the Deaf flag will make him have spikeballs, like CEZ3, and giving him
the Multi flag will make the level end when he is dead. To place him above ground,
multiply by 32 to give height, not 16.</p>
<h3><a name="t201"></a>201 - Egg Slimer (Boss 2)</h3>
<p>This is the boss of Techno Hill Zone. It requires an axis point at the center to
function, and it goes in a circle around the axis point dropping slime. After 6 hits, he
stops going in a circle, and bouncing at the player, spewing a lot more slime.</p>
<p>The Multi flag will make the level end when he is dead.</p>
<h3><a name="t201"></a>202 - Sea Egg (Boss 3)</h3>
<p>This is the boss of Deep Sea Zone. More information will be supplied later.</p>
<p>The Multi flag will make the level end when he is dead.</p>
<h3>203 - Eggscalibur (Boss 4)</h3>
<p>This is the boss of Castle Eggman Zone. More information will be supplied later.</p>
<p>The Multi flag will make the level end when he is dead.</p>
<h3><a name="t290"></a>290 - Boss Flypoint</h3>
<p>This is the location the boss will fly to after being killed.</p>
<h3><a name="t291"></a>291 - Egg Capsule Center</h3>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Collectibles</big></big></u><ol>
<h3><a name="t300"></a>300 - Ring</h3>
<p>This is a normal ring. Pick this up to get one ring.</p>
<p>Giving the deaf tag to a ring will cause it to float 31 units above the ground. This
does stack with bitsets, allowing rings to be a total of 4127 units above the ground at
maximum.</p>
<h3><a name="t301"></a>301 - Bounce Ring</h3>
<p>Picking this up gives you more ammo for this particular ring weapon. You cannot fire
the weapon, however, if you do not have the associated panel.
<h3><a name="t302"></a>302 - Rail Ring</h3>
<p>See thing <a href="#t301">#301</a>.</p>
<h3><a name="t304"></a>304 - Automatic Ring</h3>
<p>See thing <a href="#t301">#301</a>.</p>
<h3><a name="t305"></a>305 - Explosion Ring</h3>
<p>See thing <a href="#t301">#301</a>.</p>
<h3><a name="t305"></a>306 - Scatter Ring</h3>
<p>See thing <a href="#t301">#301</a>.</p>
<h3><a name="t305"></a>307 - Grenade Ring</h3>
<p>See thing <a href="#t301">#301</a>.</p>
<h3>310 - CTF Flag (Red)</h3>
<p>This is the red team's flag in capture the flag mode. If the blue team takes this to
their team base (sector type <a href="#s16384">16384</a>), they score a point.</p>
<h3><a name="t307"></a>311 - CTF Flag (Blue)</h3>
<p>This is the blue team's flag in capture the flag mode. If the red team takes this to
their team base (sector type <a href="#s12288">12288</a>), they score a point.</p>
<h3><a name="t308"></a>312 - Special Stage Token</h3>
<p>This token gives the player a chance at the special stage after the current stage has
ended. If more than one token is collected, the player gets that many chances at the
special stages, continuing until they run out of tokens or have all the emeralds.</p>
<h3><a name="t309"></a>313 - Emerald 1 (Green)</h3>
<p>This object gives the player the first emerald as a pickup object, instead of by
completing a special stage.</p>
<h3><a name="t310"></a>314 - Emerald 2 (Orange)</h3>
<p>This object gives the player the second emerald as a pickup object, instead of by
completing a special stage.</p>
<h3><a name="t311"></a>315 - Emerald 3 (Pink)</h3>
<p>This object gives the player the third emerald as a pickup object, instead of by
completing a special stage.</p>
<h3><a name="t312"></a>316 - Emerald 4 (Blue)</h3>
<p>This object gives the player the fourth emerald as a pickup object, instead of by
completing a special stage.</p>
<h3><a name="t313"></a>317 - Emerald 5 (Red)</h3>
<p>This object gives the player the fifth emerald as a pickup object, instead of by
completing a special stage.</p>
<h3><a name="t314"></a>318 - Emerald 6 (Light Blue)</h3>
<p>This object gives the player the sixth emerald as a pickup object, instead of by
completing a special stage.</p>
<h3><a name="t315"></a>319 - Emerald 7 (Grey)</h3>
<p>This object gives the player the seventh emerald as a pickup object, instead of by
completing a special stage.</p>
<h3><a name="t316"></a>320 - Emerald Hunt Location</h3>
<p>This is one of the three emeralds to be used in Hunting mode.</p>
<h3>323 - Emerald Spawn</h3>
<p>Spawn location for emeralds in Match mode.</p>
<h3><a name="t330"></a>330 - Bounce Ring Panel</h3>
<p>This is a match weapon panel. The Bounce Ring throws a slow ring that will bounce when
it hits walls.</p>
<p>Giving the deaf tag to a panel will cause it to float 31 units above the ground. This
does stack with bitsets, allowing panels to be a total of 4127 units above the ground at
maximum.</p>
<h3><a name="t331"></a>331 - Rail Ring Panel</h3>
<p>This is a match weapon panel. The Rail Ring gives the player an instantaneous shot, that
strikes its target the instant its fired, however there is a long downtime between shots.
Being shot by a rail ring causes more kickback than normal.</p>
<p>Giving the deaf tag to a panel will cause it to float 31 units above the ground. This
does stack with bitsets, allowing panels to be a total of 4127 units above the ground at
maximum.</p>
<h3><a name="t332"></a>332 - Automatic Ring Panel</h3>
<p>This is a match weapon panel. The Automatic Ring gives the player a fire rate of 17.5
rings per second.</p>
<p>Giving the deaf tag to a panel will cause it to float 31 units above the ground. This
does stack with bitsets, allowing panels to be a total of 4127 units above the ground at
maximum.</p>
<h3><a name="t333"></a>333 - Explosion Ring Panel</h3>
<p>This is a match weapon panel. The Explosion Ring throws a slow ring that explodes into
many fragments upon striking a wall or another player. Being struck directly by the
Explosion Ring causes more kickback than usual.</p>
<p>Giving the deaf tag to a panel will cause it to float 31 units above the ground. This
does stack with bitsets, allowing panels to be a total of 4127 units above the ground at
maximum.</p>
<h3><a name="t334"></a>334 - Scatter Ring Panel</h3>
<p>This is a match weapon panel. The Scatter Ring throws 5 rings in a plus-shape.</p>
<p>Giving the deaf tag to a panel will cause it to float 31 units above the ground. This
does stack with bitsets, allowing panels to be a total of 4127 units above the ground at
maximum.</p>
<h3><a name="t335"></a>335 - Grenade Ring Panel</h3>
<p>This is a match weapon panel. The Grenade Ring throws a grenade that will explode
if an opposing player gets too close to it. It will also explode automatically after a
while if left untouched.</p>
<p>Giving the deaf tag to a panel will cause it to float 31 units above the ground. This
does stack with bitsets, allowing panels to be a total of 4127 units above the ground at
maximum.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Boxes</big></big></u><ol>
<h3><a name="t400"></a>400 - Super Ring (10 Rings)</h3>
<p>This monitor gives the player ten rings.</p>
<p>If monitors are given the Deaf tag, they will respawn as a random monitor type (not a ?
monitor) from the weighted table in modes that support respawn. Elsewise, they will
respawn as the same monitor.</p>
<h3><a name="t402"></a>402 - Attraction Shield</h3>
<p>Also known as the yellow shield and god shield, this shield protects the player from a
single hit, then disappears. It also attracts all normal rings, spilled or on the map to
the player with the shield. It also protects the player from electric damage.</p>
<p>If monitors are given the Deaf tag, they will respawn as a random monitor type (not a ?
monitor) from the weighted table in modes that support respawn. Elsewise, they will
respawn as the same monitor.</p>
<h3><a name="t403"></a>403 - Force Shield</h3>
<p>Also known as the blue shield, this shield protects the player from two hits, then
disappears. If the spin&nbsp; button is pressed while jumping, it is also possible to
reflect many projectiles.</p>
<p>If monitors are given the Deaf tag, they will respawn as a random monitor type (not a ?
monitor) from the weighted table in modes that support respawn. Elsewise, they will
respawn as the same monitor.</p>
<h3><a name="t404"></a>404 - Armageddon Shield</h3>
<p>Also known as the black shield, this shield protects the player from a single hit,
triggering upon a hit. The shield can also be triggered by jumping, and then hitting the
spin key in midair. When the shield is triggered, a flash of light damages everything
within a large radius, destroying the shield in the process.</p>
<p>If monitors are given the Deaf tag, they will respawn as a random monitor type (not a ?
monitor) from the weighted table in modes that support respawn. Elsewise, they will
respawn as the same monitor.</p>
<h3><a name="t405"></a>405 - Whirlwind Shield</h3>
<p>This shield protects the player from a single hit, then disappears. If the player does
a jump-spin, they will do a second jump in midair, making the maximum height that the
player can jump with the shield 224.</p>
<p>Versions of SRB2 previous to 1.09 had the Basic Shield in this object number, so make
sure to note that if the player loads the map in an older version, that is what they will
see.</p>
<p>If monitors are given the Deaf tag, they will respawn as a random monitor type (not a ?
monitor) from the weighted table in modes that support respawn. Elsewise, they will
respawn as the same monitor.</p>
<h3><a name="t406"></a>406 - Elemental Shield</h3>
<p>Also known as the green&nbsp; shield, this shield protects the player from a single
hit, then disappears. While this shield is active, the player cannot drown. It also
protects the player from water, fire, and other damage. When the player with this shield
spin-dashes, it leaves a trail of fire, which deals fire damage to any enemy that touches
it.</p>
<p>If monitors are given the Deaf tag, they will respawn as a random monitor type (not a ?
monitor) from the weighted table in modes that support respawn. Elsewise, they will
respawn as the same monitor.</p>
<h3><a name="t407"></a>407 - Super Sneakers</h3>
<p>This is a monitor powerup that gives the player about 2x running speed for 20 seconds.</p>
<h3><a name="t408"></a>408 - Invincibility</h3>
<p>This is a monitor powerup that prevents all damage to the player for 20 seconds.</p>
<h3><a name="t409"></a>409 - Extra Life</h3>
<p>This powerup monitor features the player's face, and provides an extra life when
struck.</p>
<p>If monitors are given the Deaf tag, they will respawn as a random monitor type (not a ?
monitor) from the weighted table in modes that support respawn. Elsewise, they will
respawn as the same monitor.</p>
<h3><a name="t410"></a>410 - Eggman</h3>
<p>This monitor damages the player if they strike it.</p>
<p>If monitors are given the Deaf tag, they will respawn as a random monitor type (not a ?
monitor) from the weighted table in modes that support respawn. Elsewise, they will
respawn as the same monitor.</p>
<h3><a name="t411"></a>411 - Teleporter</h3>
<p>This monitor mixes up all locations of players, teleporting them to the location of a
random other player. It has no effect in Single Player or in multiplayer modes while only
one player is in the game.</p>
<p>If monitors are given the Deaf tag, they will respawn as a random monitor type (not a ?
monitor) from the weighted table in modes that support respawn. Elsewise, they will
respawn as the same monitor.</p>
<h3><a name="t412"></a>412 - Random Box</h3>
<p>Destroy this monitor and you will get a random powerup, like the boxes in Sonic 2 race
mode.</p>
<h3><a name="t412"></a>413 - Gravity Boots Box</h3>
<p>Destroy this monitor and the gravity will be flipped for a short time.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Interactive Objects (friendly or otherwise)</big></big></u><ol>
<h3><a name="t500"></a>500 - Air Bubble Patch</h3>
<p>This is the air bubble patch used underwater to give players air. It spawns big bubbles
randomly which replenish the player's air.</p>
<h3><a name="t501"></a>501 - End Level Sign</h3>
<p>This is the sign at the end of the stage. When the player enters the <a href="#s8192">Exit
Sector</a>, this sign will start to spin, and end on the face of the player. This sign
does not make the stage end, it's just a visual effect for it.</p>
<h3><a name="t502"></a>502 - Star Post</h3>
<p>Star Posts allow the player to respawn after dying at a point other than the beginning
of the stage. There can be up to 32 Star Posts in a map, and they work with the bitsets.</p>
<p>Instead of controlling the difficulty and deaf flags, the final digit of the bitset
determines the number of the Star Post. 0x0000 is the first one and 0x000f is the
sixteenth one. Note that since this overwrites all of the difficulty flags, they will
appear in all difficulties, even though 0x0000 would normally mean it wouldn't appear in
any difficulty level.</p>
<h3><a name="t520"></a>520 - Spikeball</h3>
<p>Just like thing <a href="#t521">521</a>, except they do normal damage to the player on
contact. </p>
<h3><a name="t521"></a>521 - Spikeball (Special Stage)</h3>
<p>These are the spikeballs used in the special stages. They harm the player for damage on
contact, but only if they are carrying rings.</p>
<h3><a name="t522"></a>522 - Ceiling Spike</h3>
<p>This is a downward pointing spike for use on the ceiling. Touching the pointy end of
the spike deals damage to the player.</p>
<p>By default, it attaches itself to the ceiling, and the height part of the bitset
measures how far down from the ceiling, instead of up from the floor.</p>
<h3><a name="t523"></a>523 - Floor Spike</h3>
<p>This is a upward pointing spike for use on the floor. Touching the pointy end of the
spike deals damage to the player.</p>
<h3><a name="t524"></a>524 - Big Floating Mine</h3>
<p>When you get close, this mine will start to follow you. Touches you, and it explodes.</p>
<h3><a name="t540"></a>540 - THZ Fan</h3>
<p>This is the fan used inside the secret passage in Techno Hill Zone Act 1. It pushes the
player slowly up until it reaches the maximum height it can. The maximum height is
determined by the angle, measured in normal fracunits (It can go above 360 just fine).</p>
<h3><a name="t541"></a>541 - THZ Gas Jet</h3>
<p>This is the gas jet used at the end of Techno Hill Zone Act 1. It launches the player
straight up on regular intervals about the same height as a yellow spring pointing up.</p>
<h3><a name="t550"></a>550 - Yellow Spring (Up)</h3>
<p>This is a yellow spring pointing straight up. It has a medium amount of force behind
it.</p>
<h3><a name="t551"></a>551 - Red Spring (Up)</h3>
<p>This is a red spring pointing straight up. It has a large amount of force behind it.</p>
<h3><a name="t552"></a>552 - Blue Spring</h3>
<p>This is a blue spring pointing straight up. It has a small amount of force behind it.
The intent is for this spring to be used underwater. It has about the same effect
underwater as a yellow spring does above water.</p>
<h3><a name="t553"></a>553 - Yellow Spring (Down)</h3>
<p>This is a yellow spring pointing straight down. It has a medium amount of force behind
it.</p>
<h3><a name="t554"></a>554 - Red Spring (Down)</h3>
<p>This is a red spring pointing straight down. It has a large amount of force behind it.</p>
<h3><a name="t555"></a>555 - Yellow Spring (Diagonal Up)</h3>
<p>This is a yellow spring pointing upwards and in the direction the thing is facing. It
has a medium amount of force behind it. When the player touches this spring, he will
automatically turn to face the direction the spring is launching the player.</p>
<h3><a name="t556"></a>556 - Red Spring (Diagonal Up)</h3>
<p>This is a red spring pointing upwards and in the direction the thing is facing. It has
a large amount of force behind it. When the player touches this spring, he will
automatically turn to face the direction the spring is launching the player.</p>
<h3><a name="t557"></a>557 - Yellow Spring (Diagonal Down)</h3>
<p>This is a yellow spring pointing downwards and in the direction the thing is facing. It
has a medium amount of force behind it. When the player touches this spring, he will
automatically turn to face the direction the spring is launching the player.</p>
<h3><a name="t558"></a>558 - Red Spring (Diagonal Down)</h3>
<p>This is a red spring pointing downward and in the direction the thing is facing. It has
a large amount of force behind it. When the player touches this spring, he will
automatically turn to face the direction the spring is launching the player.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Special placement patterns</big></big></u><ol>
<h3><a name="t600"></a>600 - 5 Vertical Rings (Yellow Spring)</h3>
<p>This is a chain of five rings intended to be used with thing <a href="#t550">550</a>.
Do not use ring chain objects in any mode where items respawn, because ring chains do not
respawn. Use bitsets to create chains in any mode with item respawn.</p>
<h3><a name="t601"></a>601 - 5 Vertical Rings (Red Spring)</h3>
<p>This is a chain of five rings intended to be used with thing <a href="#t551">551</a>.
Do not use ring chain objects in any mode where items respawn, because ring chains do not
respawn. Use bitsets to create chains in any mode with item respawn.</p>
<h3><a name="t602"></a>602 - 5 Diagonal Rings (Yellow Spring)</h3>
<p>This is a chain of five rings intended to be used with thing <a href="#t555">555</a>.
Do not use ring chain objects in any mode where items respawn, because ring chains do not
respawn. Use bitsets to create chains in any mode with item respawn.</p>
<h3><a name="t603"></a>603 - 10 Diagonal Rings (Red Spring)</h3>
<p>This is a chain of ten rings intended to be used with thing <a href="#t556">556</a>. Do
not use ring chain objects in any mode where items respawn, because ring chains do not
respawn. Use bitsets to create chains in any mode with item respawn.</p>
<h3><a name="t604"></a>604 - Nights: Circle of Rings</h3>
<h3><a name="t605"></a>605 - Nights: Circle of Rings (Big)</h3>
<h3><a name="t606"></a>606 - Nights: Circle of Wing Logos</h3>
<h3><a name="t607"></a>607 - Nights: Circle of Wing Logos (Big)</h3>
<h3><a name="t608"></a>608 - Nights: Circle of Rings and Wings</h3>
<h3><a name="t609"></a>609 - Nights: Circle of Rings and Wings (Big)</h3>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Powerup indicators/environmental effects/miscellany</big></big></u><ol>
<h3><a name="t700"></a>700 - Ambient Water SFX 1A (Small)</h3>
<h3><a name="t701"></a>701 - Ambient Water SFX 1B (Small)</h3>
<h3><a name="t702"></a>702 - Ambient Water SFX 2A (Medium)</h3>
<h3><a name="t703"></a>703 - Ambient Water SFX 2B (Medium)</h3>
<h3><a name="t704"></a>704 - Ambient Water SFX 3A (Large)</h3>
<h3><a name="t705"></a>705 - Ambient Water SFX 3B (Large)</h3>
<h3><a name="t706"></a>706 - Ambient Water SFX 4A (Extra Large)</h3>
<h3><a name="t707"></a>707 - Ambient Water SFX 4B (Extra Large)</h3>
<h3><a name="t708"></a>708 - Random Ambience 1</h3>
<h3><a name="t709"></a>709 - Random Ambience 2</h3>
<h3><a name="t750"></a>750 - Chaos Mode Enemy Spawn</h3>
<p>This is where the enemies spawn from in Chaos mode. There should be around 12 of these
points on a map with Chaos support.</p>
<h3><a name="t751"></a>751 - Teleport Destination</h3>
<p>This is the thing to be used with linedef type <a href="#l412">412</a>, the linedef
executor that teleports a player. This thing is where the player will spawn in the tagged
sector.</p>
<h3><a name="t752"></a>752 - Alternate View Point</h3>
<p>This is the thing to be used with linedef type <a href="#l422">422</a>, the linedef
executor that changes the camera view. This thing is where the camera will be moved to in
the tagged sector.</p>
<h3><a name="t753"></a>753 - Zoom Tube Waypoint</h3>
<p>Waypoints for zoom tubes. Think of Sonic 2's Metropolis Zone, Sonic 3 &amp; Knuckles's
Death Egg Zone, and Lava Reef Zone. The lower byte of the ANGLE field specifies the
waypoint's number in the sequence, and the upper byte specifies the sequence that the
waypoint belongs to. These are used in conjunction with sector type <a href="#s32768">32768</a>
and <a href="#s36864">36864</a>.</p>
<h3><a name="t754"></a>754 - Push</h3>
<h3><a name="t755"></a>755 - Pull</h3>
<h3><a name="t756"></a>756 - Street Light Source</h3>
<p>This produces a light in OpenGL. It is used in Starlit Warehouse Zone, one of the match
stages, as the street lights.</p>
<h3><a name="t760"></a>760 - PolyObject Anchor</h3>
<p>This is the first of the two points used to set up 'how much to move' a polyobject by
when creating it. Angle is the PolyObject ID#.</p>
<h3><a name="t761"></a>761 - PolyObject SpawnPoint</h3>
<p>This is the second of the two points used to set up 'how much to move' a polyobject by
when creating it. Angle is the PolyObject ID#.</p>
<h3><a name="t762"></a>762 - PolyObject SpawnPoint Crush</h3>
<p>This is the second of the two points used to set up 'how much to move' a polyobject by
when creating it. Angle is the PolyObject ID#. This item tells the PolyObject that it
should hurt the player.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Greenflower Scenery</big></big></u><ol>
<h3><a name="t800"></a>800 - GFZ Flower (Normal)</h3>
<p>This is a scenery object from Greenflower Zone. It is the orange flower seen all
throughout GFZ and most GFZ-themed custom maps.</p>
<h3><a name="t801"></a>801 - GFZ Sunflower</h3>
<p>This is a scenery object from Greenflower Zone. It is the large blue sunflower seen all
throughout GFZ and most GFZ-themed custom maps.</p>
<h3><a name="t802"></a>802 - GFZ Budding Flower</h3>
<p>This is a scenery object from Greenflower Zone. It is the small purple flower seen all
throughout GFZ and most GFZ-themed custom maps.</p>
<h3><a name="t804"></a>804 - Berry Bush</h3>
<p>This is a scenery object from Greenflower Zone. It is the green bush with red berries
seen all throughout GFZ and most GFZ-themed custom maps.</p>
<h3><a name="t805"></a>805 - Bush</h3>
<p>This is a scenery object from Greenflower Zone. It is the green bush without the
berries seen all throughout GFZ and most GFZ-themed custom maps.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Techno Hill Scenery</big></big></u><ol>
<h3><a name="t900"></a>900 - THZ Flower</h3>
<p>This is a scenery object from Techno Hill Zone Act 1. It is the metallic white flower.</p>
<h3><a name="t901"></a>901 - THZ Alarm</h3>
<p>This is a scenery object from Techno Hill Zone Act 2. It is the little alarm in the
passage with the first Star Post. It creates noise, but the red visual effect in THZ2 was
done with a colormap, not this object.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Deep Sea Scenery</big></big></u><ol>
<h3><a name="t1000"></a>1000 - Gargoyle</h3>
<p>Pushable gargoyle. Can be stood on top of as well.</p>
<p>Giving this the Deaf tag will prevent it from being pushable.</p>
<h3><a name="t1001"></a>1001 - Seaweed</h3>
<p>Animated seaweed. Intangible scenery.</p>
<h3><a name="t1002"></a>1002 - Dripping Water</h3>
<p>Water dripping from the ceiling. ANGLE value specifies start delay.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Castle Eggman Scenery</big></big></u><ol>
<h3><a name="t1100"></a>1100 - Hanging Chain</h3>
<p>This is a scenery object from Castle Eggman, a dungeon chain hanging from the ceiling.</p>
<p>By default, it attaches itself to the ceiling, and the height part of the bitset
measures how far down from the ceiling, instead of up from the floor.</p>
<h3><a name="t1101"></a>1101 - CEZ Torch</h3>
<p>This is the torch used in Castle Eggman Zone. It produces light in OpenGL, and it harms
the player for fire damage on contact.</p>
<h3><a name="t1102"></a>1102 - Eggman Statue </h3>
<p>This is the large Eggman statue in Castle Eggman Zone.</p>
<h3><a name="t1103"></a>1103 - CEZ Flower</h3>
<p>This is a scenery object from Castle Eggman Zone. It is the decaying flower.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Arid Canyon Scenery</big></big></u><ol>
<h3><a name="t1200"></a>1200 – Big Tumbleweed</h3>
<p>A large moveable tumbleweed that rolls along the floor.</p>
<h3><a name="t1201"></a>1201 – Little Tumbleweed</h3>
<p>A small movable tumbleweed that rolls along the floor.</p>
<h3><a name="t1202"></a>1202 – Rock Spawner</h3>
<p>An object which randomly spawns falling rocks, which damage the player on impact.<br>
Description on how to use goes here.</p>
</ol>
</li>
<li><u><big><big>Red Volcano Scenery</big></big></u><ol>
<h3><a name="t1300"></a>1300 – Horizontal Flame Jet</h3>
<p>A stready stream of flames comes out horizontally.</p>
<h3><a name="t1301"></a>1301 – Vertial Flame Jet</h3>
<p>A stready stream of flames comes out vertially.</p>
</ol>
</li>
<li><u><big><big>Dark City Scenery</big></big></u><ol>
</ol>
</li>
<li><u><big><big>Doom Ship Scenery</big></big></u><ol>
</ol>
</li>
<li><u><big><big>Egg Rock / Final Fight Scenery</big></big></u><ol>
</ol>
</li>
<li><u><big><big>NiGHTS Items</big></big></u><ol>
<h3><a name="t1700"></a>1700 - Nights: Axis</h3>
<p>Lower 10 bits: Axis number in the mare (0-based) Upper 6 bits: Mare that axis belongs
to (0-based). ANGLE value determines the size of the axis to rotate around. If 16384 is
added to the ANGLE value, the axis will be inverted.</p>
<h3><a name="t1701"></a>1701 - Nights: Axis Transfer (Normal)</h3>
<h3><a name="t1702"></a>1702 - Nights: Axis Transfer Line</h3>
<h3><a name="t1703"></a>1703 - Nights: Ideya Drone</h3>
<p>Angle value sets the NiGHTS timer, in seconds. </p>
<h3><a name="t1704"></a>1704 - Nights: Bumper</h3>
<p>Lower 4 bits of the flags specify the angle of the bumper in 30 degree increments.</p>
<h3><a name="t1705"></a>1705 - Nights: Hoop</h3>
<h3><a name="t1706"></a>1706 - Nights: Wing Logo</h3>
<h3><a name="t1707"></a>1707 - Nights: Super Loop</h3>
<h3><a name="t1708"></a>1708 - Nights: Drill Refill</h3>
<h3><a name="t1709"></a>1709 - Nights: Helper</h3>
<h3><a name="t1710"></a>1710 - Nights: Egg Capsule</h3>
<p>The capsule you need to collect rings to break in NiGHTS. The value of its ANGLE field
determines how many rings you need to break it. Just like the axis points, the upper bits
(value &gt;&gt; 10) determine the mare it belongs to. For example, an angle value of 1024
means it belongs to mare 1 (2nd mare, it's zero based), and requires 0 rings to break.
1030 would be mare 1, and 6 rings to break. 2048 would be mare 2, no rings.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Mario Items</big></big></u><ol>
<h3><a name="t1800"></a>1800 - Coin</h3>
<p>This is a coin, which is essentially a ring with Mario graphics and sound effects.</p>
<h3><a name="t1801"></a>1801 - Overworld Goomba</h3>
<p>These are the enemies in Mario Koopa Blast 1, and are essentially Crawlas with a Mario
graphic.</p>
<h3><a name="t1802"></a>1802 - Underworld Goomba</h3>
<p>These are the enemies in Mario Koopa Blast 2, and are essentially Crawlas with a Mario
graphic.</p>
<h3><a name="t1803"></a>1803 - Fire Flower</h3>
<p>This is the powerup from the Mario Koopa Blast stages. It changes the player to a white
palette, and allows the player to throw fireballs with the fire button. The fireballs fly
in a Mario-style bounce trajectory until they hit an enemy or a wall.</p>
<h3><a name="t1804"></a>1804 - Koopa Shell</h3>
<p>This is the Koopa Shell in Mario Koopa Blast 1. It will bounce around, striking enemies
and players.</p>
<h3><a name="t1805"></a>1805 - Puma (Mario Jumping Fireball)</h3>
<p>This is the fireball used in Mario Koopa Blast 3. The angle determines the jump height,
with 0 being the old jump style. Note that the jump height is based on force, not units,
so experimentation will be necessary to get the correct height.</p>
<h3><a name="t1806"></a>1806 - King Bowser</h3>
<h3><a name="t1807"></a>1807 - Axe</h3>
<p>The axe used to defeat Bowser in the third Mario level.</p>
<h3><a name="t1808"></a>1808 - Bush (Short)</h3>
<p>This is a scenery object from Mario Koopa Blast</p>
<h3><a name="t1809"></a>1809 - Bush (Tall)</h3>
<p>This is a scenery object from Mario Koopa Blast</p>
<h3><a name="t1810"></a>1810 - Toad</h3>
<p>This is Toad at the end of Mario Koopa Blast 3.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Xmas Items</big></big></u><ol>
<h3><a name="t1850"></a>1850 - Xmas Pole</h3>
<p>X-Mas scenery object. Looks like a little barber shop pole.</p>
<h3><a name="t1851"></a>1851 - Candy Cane</h3>
<p>X-Mas scenery object. Looks like a candy cane.</p>
<p>Note that Mystic Realm 4 replaces this object with the Sonic 1 palm tree, so any maps
loaded while Mystic Realm 4 is loaded will overwrite the image, making any candy canes
look like palm trees, which can look kinda stupid.</p>
<h3><a name="t1852"></a>1852 - Snowman</h3>
<p>X-Mas scenery object. Pushable snowman with a happy face. Can be stood on top of as
well. Acts the same as thing <a href="#t1000">1000</a>.</p>
<p>Giving this the Deaf tag will prevent it from being pushable.</p>
<p>&nbsp;</p>
</ol>
</li>
<h1><a name="linetypes"></a>Linedef Types</h1>
<p>Lines may have flags applied to them. The following is a reference of their values.
Unless specified otherwise in a line type, the flags behave as follows:</p>
<div align="left"><table border="1" width="83%">
<tr>
<td width="33%">NAME</td>
<td width="10%">VALUE</td>
<td width="57%">DESCRIPTION</td>
</tr>
<tr>
<td width="33%"><a name="#EFFECT6"></a>EFFECT6</td>
<td width="10%">1</td>
<td width="57%">Special use flag #6.</td>
</tr>
<tr>
<td width="33%"><a name="#BLOCKMONSTERS"></a>BLOCKMONSTERS</td>
<td width="10%">2</td>
<td width="57%">Prevents an enemy from crossing the line. May not work for especially
speedy enemies.</td>
</tr>
<tr>
<td width="33%"><a name="#TWOSIDED"></a>TWOSIDED</td>
<td width="10%">4</td>
<td width="57%">Flag used to indicate if a line is two sided. Do not modify.</td>
</tr>
<tr>
<td width="33%"><a name="#DONTPEGTOP"></a>DONTPEGTOP</td>
<td width="10%">8</td>
<td width="57%">Unpeg upper texture. Good for moving floors.</td>
</tr>
<tr>
<td width="33%"><a name="#DONTPEGBOTTOM"></a>DONTPEGBOTTOM</td>
<td width="10%">16</td>
<td width="57%">Unpeg bottom texture. Good for moving ceilings.</td>
</tr>
<tr>
<td width="33%"><a name="#EFFECT1"></a>EFFECT1</td>
<td width="10%">32</td>
<td width="57%">Special use flag #1.</td>
</tr>
<tr>
<td width="33%"><a name="#NOCLIMB"></a>NOCLIMB</td>
<td width="10%">64</td>
<td width="57%">Don't allow Knuckles to climb on this wall.</td>
</tr>
<tr>
<td width="33%"><a name="#EFFECT2"></a>EFFECT2</td>
<td width="10%">128</td>
<td width="57%">Special use flag #2.</td>
</tr>
<tr>
<td width="33%"><a name="#EFFECT3"></a>EFFECT3</td>
<td width="10%">256</td>
<td width="57%">Special use flag #3.</td>
</tr>
<tr>
<td width="33%"><a name="#EFFECT4"></a>EFFECT4</td>
<td width="10%">512</td>
<td width="57%">Special use flag #4.</td>
</tr>
<tr>
<td width="33%"><a name="#EFFECT5"></a>EFFECT5</td>
<td width="10%">1024</td>
<td width="57%">Special use flag #5.</td>
</tr>
<tr>
<td width="33%"><a name="#NOSONIC"></a>NOSONIC</td>
<td width="10%">2048</td>
<td width="57%">Disable line special if playing as Sonic (Single Player Only).</td>
</tr>
<tr>
<td width="33%"><a name="#NOTAILS"></a>NOTAILS</td>
<td width="10%">4096</td>
<td width="57%">Disable line special if playing as Tails (Single Player Only).</td>
</tr>
<tr>
<td width="33%"><a name="#NOKNUX"></a>NOKNUX</td>
<td width="10%">8192</td>
<td width="57%">Disable line special if playing as Knuckles (Single Player Only).</td>
</tr>
<tr>
<td width="33%"><a name="#BOUNCY"></a>BOUNCY</td>
<td width="10%">16384</td>
<td width="57%">Bounce the player off this line.</td>
</tr>
<tr>
<td width="33%"><a name="#TFERLINE"></a>TFERLINE</td>
<td width="10%">32768</td>
<td width="57%">Use this on a FOF line special to define the texture &amp; offsets for
each side of the FOF. The control sector must have at LEAST the same # of sides as the
target sector(s).</td>
</tr>
</table>
</div><hr>
<li><u><big><big>Level Parameters / Miscellany</big></big></u><ol>
<h3><a name="l1"></a>1 - Per-Sector Gravity</h3>
<p>Sets the gravity of the tagged sector or sectors, as a percentage of global gravity
(which can be set separately using sector type <a href="#s176">176</a>). The floor height
of the control sector is used. If it is 1000, then the target sector will have 100%
gravity. If it is 500, the target sector will have 50% of the global gravity. Negative
values work as well, but players can't jump down; they'll get stuck to the ceiling, unless
the <a href="#NOCLIMB">NOCLIMB</a> flag is checked.</p>
<p>You can apply this special to the control sector of an intangible FOF to change the
gravity only inside that FOF.</p>
<h3><a name="l2"></a>2 - Custom Exit</h3>
<p>Tag this to an Exit Sector (type <a href="#s8192">8192</a>) to exit to a custom level,
overriding the one set in the map header. The map number you go to is indicated by the
front sector's floor. Additionally, if the control linedef's bitset is set to disallow
climbing (with the <a href="#NOCLIMB">NOCLIMB</a> attribute, whose value is 64), skip the
score tally screen when switching to the new map.</p>
<p>If the control linedef has the <a href="#BLOCKMONSTERS">BLOCKMONSTERS</a> flag set,
this effect does something super complicated and fun, going to a different level depending
on whether the player has all emeralds or not. If the player has seven emeralds, the
linedef's front sector's ceiling height will be used. Otherwise, go to the map number
indicated by the linedef's front sector's floor. That's <i>only</i> if you set the <a
href="#BLOCKMONSTERS">BLOCKMONSTERS</a> flag.</p>
<p>If the <a href="#EFFECT4">EFFECT4</a> flag is set, the linedef's front side x offset
will be used as the new gametype after the map change, providing it is in range (from 0 to
4, inclusive).</p>
<h3><a name="l3"></a>3 - Zoom Tube Parameters</h3>
<p>X length = speed. Y length = waypoint sequence #. See sector type <a href="#s32768">32768</a>
for more information.</p>
<h3><a name="l4"></a>4 - Speed Pad</h3>
<p>Creates a speed pad. The linedef direction and indicates the direction of the pad. The
target sector must have type <a href="#s1280">1280</a> or <a href="#s1536">1536</a> for
this to work.</p>
<p>If the <a href="#EFFECT4">EFFECT4</a> flag is set, you will not be teleported to the
center of the sector when the speed pad is activated.</p>
<h3><a name="l5"></a>5 - Camera Scanner</h3>
<p>Modifies camera position while the player is in the target sector. The floor and
ceiling of the control sector and the angle of the control linedef are the values for
CAM_HEIGHT, CAM_DIST, and CAM_ROTATE, respectively. Camera position is reset when the
player steps outside the sector.</p>
<h3><a name="l6"></a>6 - Disable Linedef</h3>
<p>Disables any linedef specials that share the same tag. Will be used in the future to
check if a particular level has been previously cleared or not.</p>
<h3><a name="l7"></a>7 - Flat Alignment</h3>
<p>Aligns floor and/or ceiling flats. The x alignment is specified by the control
linedef's x distance (the difference between the x values of its two vertices), and the y
alignment is specified by the control linedef's y distance.</p>
<p>By default, works on both the floor and ceiling (however, note that skies cannot be
&quot;aligned&quot; ;). Adding the <a href="#NOCLIMB">NOCLIMB</a> flag to the linedef will
align the floor only, while the <a href="#BLOCKMONSTERS">BLOCKMONSTERS</a> flag will make
it align the ceiling only.</p>
<h3><a name="l8"></a>8 - Sector Special Parameters</h3>
<p>Sets special behavior of a sector's type depending on the flag(s) checked:</p>
<p><a href="#NOCLIMB">NOCLIMB</a> - Special only operates when touching ceiling</p>
<p><a href="#EFFECT4">EFFECT4</a> - Special operates when touching either the floor or the
ceiling</p>
<p><a href="#EFFECT3">EFFECT3</a> - Special operates by just touching the sector, rather
than having to be inside of it.</p>
<h3><a name="l9"></a>9 - Chain Parameters</h3>
<p>Sets special behavior of a moving chain as such:</p>
<p>x length - # of links on the chain</p>
<p>y length - Overall speed (0-15)</p>
<p>X offset - Rotation speed on the X axis (0-15)</p>
<p>Y offset - Rotation speed on the Z axis (0-15)</p>
<p>floorheight - angle to start at (0-15)</p>
<p>ceilingheight - maximum rotation speed</p>
<h3><a name="l10"></a>10 - Culling Plane</h3>
<p>Set like <a href="#l1">line 1</a>, this creates an invisible plane in the sector. If
your view is above this plane, lots of things drawn below the height of this plane will be
discarded, and if your view is below the plane, a lot of things drawn above the height of
the plane will be discarded. This is to tell the game to not draw stuff that you aren't
going to see anyway. Do note that the view doesn't have to be in the current sector, you
can also be viewing from the side, which may be undesirable. To prevent this problem, you
can check the <a href="#NOCLIMB">NOCLIMB</a> flag, which will allow you to 'group' a set
of sectors to one control sector in which the culling will only take effect. For example,
you have a control sector set up for culling, and have two culling lines in the control
sector, tagged to sectors 'A' and 'B'. If the player is in sector 'A' or 'B', the culling
will occur, but if the player is in sector 'C', it will not.</p>
<h3>11 - Rope Hang Parameters</h3>
<p>X length = speed. Y length = waypoint sequence #.</p>
<p>EFFECT1 - Don't wrap movement</p>
<p>See sector type 45056 for more information.</p>
<h3>12 - Rock Spawn Parameters</h3>
<p>Sets special behavior of a rock spawner (#1202) as such:</p>
<p>length - momentum strength</p>
<p>line angle - momentum angle</p>
<p>X offset - # of tics to wait until another is spawned</p>
<p>Y offset - Rock crumble sprite to use (0-15)</p>
<p>NOCLIMB - add some randomization to the momentum</p>
<p>&nbsp;</p>
<h3>13 - Heat Wave</h3>
<p>Applies a heat effect to the screen. Tag this to a sector, or to the control sector of a FOF.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Level Parameters / Miscellany</big></big></u><ol>
<h3><a name="l20"></a>20 - Marks first line in PolyObject</h3>
<p>Explain here.</p>
<h3><a name="l21"></a>21 - Explicitly include a PolyObject line</h3>
<p>Explain here.</p>
<h3><a name="l30"></a>30 - PolyObject Parameters</h3>
<p>Explain here.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Level-Load Effects</big></big></u><ol>
<h3><a name="l50"></a>50 - Instant Floor Lower</h3>
<p>Makes the floor instantly lower on level load to be at the same height as the lowest
floor of any bordering sector.</p>
<h3><a name="l51"></a>51 - Instant Ceiling Raise</h3>
<p>Makes the ceiling instantly rise on level load to be the same height as the highest
ceiling of any bordering sector.</p>
<h3><a name="l52"></a>52 - Continuously Falling Sector</h3>
<p>Requires two control sectors. Sector continuously falls until its ceiling reaches the
floor of the line's back sector, then returns to its original position and keeps falling.
Linedef length determines speed. Good for things like intermittently falling lava. If the <a
href="#NOCLIMB">NOCLIMB</a> flag is set, it falls upwards, instead of downwards.</p>
<h3><a name="l53"></a>53 - Continuous Floor/Ceiling Mover</h3>
<p>Must be a two-sided linedef, tagged to another sector on the map. The tagged sector's
floor and ceiling will move, first so that they're equal to the floor and ceiling of the
linedef's front sector, then so they're equal to the floor and ceiling of the linedef's
back sector, then the front sector again, and so on.</p>
<p>The speed of the movement is determined by the linedef's length and uses the same units
as linetype <a href="#l60">60</a>.</p>
<h3><a name="l54"></a>54 - Continuous Floor Mover</h3>
<p>Like linetype <a href="#l53">53</a>, but only moves the floor, not the ceiling. Can be
used to replace floating platforms in some cases, where only the floor was desired to
move.</p>
<h3><a name="l55"></a>55 - Continuous Ceiling Mover</h3>
<p>Like linetype <a href="#l53">53</a>, but only moves the ceiling, not the floor.</p>
<h3><a name="l56"></a>56 - Continuous Two-Speed Floor/Ceiling Mover</h3>
<p>Must be a two-sided linedef, tagged to another sector on the map. The tagged sector's
floor and ceiling will move, first so that they're equal to the floor and ceiling of the
linedef's front sector, then so they're equal to the floor and ceiling of the linedef's
back sector, then the front sector again, and so on.</p>
<p>The speed of the movement is determined by the linedef's x distance (the first way,
towards the front sector) and y distance (the second way, towards the back sector), using
the same units as linetype <a href="#l60">60</a>.</p>
<p>Unlike linetype <a href="#l53">53</a>, this effect does not slow down when it reaches
the end of its movement. Instead, it changes instantly from going in one direction to
going in the other. It's designed for making more sophisticated crushers than the crusher
type allows (i.e. crushers with varying rise/crush speeds, FOF crushers, crushers with
different start points).</p>
<h3><a name="l57"></a>57 - Continuous Two-Speed Floor Mover</h3>
<p>Like linetype <a href="#l56">56</a>, but only moves the floor, not the ceiling.</p>
<h3><a name="l58"></a>58 - Continuous Two-Speed Ceiling Mover</h3>
<p>Like linetype <a href="#l56">56</a>, but only moves the ceiling, not the floor.</p>
<h3><a name="l59"></a>59 - Activate Floating Platform</h3>
<p>This is used to make floating platforms (that move up and down) as well as moving
water. In fact, you can use this to make any type of block move vertically. The way it
works is somewhat confusing - You use three control sectors, all connected by at least one
linedef. Easiest thing to do is make three square sectors together in a row. One of the
linedefs on the middle sector should contain the Floor Over Floor line special that you
want. This will be the Floor Over Floor control sector. The other two sectors represent
the bottommost position you want the Floor Over Floor to reach, and the topmost position
you want the Floor Over Floor to reach. The 59 line can be on any of these sectors, as
long as you tag it to the middle one. If you still don't understand, look at Greenflower
Zone Act 2. If the <a href="#NOCLIMB">NOCLIMB</a> flag is set, the platform will begin
moving upwards, rather than downwards.</p>
<h3><a name="l60"></a>60 - Activate Floating Platform (Adjustable Speed)</h3>
<p>Speed is indicated by linedef length; one unit of speed here is 0.25 fracunits per tic.
(Floating platforms made with type <a href="#l59">59</a> move at 2 fracunits per tic.)
Aside from the linedef length controlling speed, works exactly like linedef type <a
href="#l59">59</a>.</p>
<h3><a name="l61"></a>61 - Crusher 1 (Ceiling to Floor)</h3>
<p>The crush motion is from the ceiling to the floor. Linedef length indicates crusher
speed. See also linetype <a href="#l62">62</a>, Crusher 2.</p>
<h3><a name="l62"></a>62 - Crusher 2 (Floor to Ceiling)</h3>
<p>Like linetype <a href="#l61">61</a>, Crusher 1, except that it starts in a different
place, not synchronised with any crushers that use the Crusher 1 type. The highest ceiling
this crusher reaches will be the highest ceiling height of any bordering sector.</p>
<h3><a name="l63"></a>63 - Fake Floor</h3>
<p>Creates two fake planes, fake floor and fake ceiling. Main textures are not affected,
but as far as above/below textures and floor/ceiling flats are concerned, the floor and
ceiling height are those of the control sector. As far as collisions, walking, etc. are
concerned, the floor and ceiling flats are whatever they normally would be.</p>
<p>Fake floor is useful for railings (THZRAIL and WOODRAIL; see THZ2 for examples) and
snow effects (making a fake floor of snow just a few units above normal floor, so it looks
like the player's feet are buried in the snow).</p>
<h3><a name="l64"></a>64 - Appearing/Disappearing FOF</h3>
<p>Tag this to any FOF <i>line</i> and this will cause it to appear and disappear
intermittently. The line's X length is the amount of time (in tics) that the FOF will
appear, and Y length is the amount of time (in tics) that the FOF will disappear. The
control sector's floor height allows you to specify an offset (in tics) of how much time
will pass before the appearing/disappearing kicks in.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Floor-Over-Floors (FOFs)</big></big></u><ol>
<h3><a name="l100"></a>100 - Floor Over Floor: Solid, Opaque, Shadowcasting</h3>
<p>This is just a regular old FOF. As with any block, the ceiling of the control sector is
the top of the block, and the floor of the control sector is the bottom.
&quot;Shadowcasting&quot; means that the light value used in the control sector is used
for the area below where the actual FOF appears, as opposed to above it.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL-->
<h3><a name="l101"></a>101 - Floor Over Floor: Solid, Opaque, Non-Shadowcasting</h3>
<p>See notes for <a href="#l100">100</a>. &quot;Non-shadowcasting&quot; means that the
light value you set in the control sector will be used for the area above the FOF, instead
of below it.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_NOSHADE|FF_CUTLEVEL-->
<h3><a name="l102"></a>102 - Floor Over Floor: Solid, Translucent</h3>
<p>Useful for windows. The GLASSTEX texture is good for this purpose. You can change the
alpha value of the translucency by setting the control linedef's Above texture to a #
followed by a three-digit decimal number, 000 to 255. #000 is most transparent, #255 is
most opaque. Note that in software mode, there are actually only ten different values that
serve as a 'best guess'.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_NOSHADE|FF_TRANSLUCENT|FF_EXTRA|FF_CUTEXTRA-->
<h3><a name="l103"></a>103 - Floor Over Floor: Solid, Sides Only</h3>
<p>A solid FOF that renders sides only, not planes (floor and ceiling). You were supposed
to be able to use it to place railings (THZRAIL, WOODRAIL, etc.) on FOFs. It doesn't work
for that, because the railings use a different kind of transparency and software mode
won't draw them on FOFs. So this one is going on the list of useless effects, right next
to linetype <a href="#l104">104</a>.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERSIDES|FF_NOSHADE|FF_CUTLEVEL-->
<h3><a name="l104"></a>104 - Floor Over Floor: Solid, No Sides</h3>
<p>Like a 3D floor of type <a href="#l101">101</a>, except that sides are not drawn.
Supposedly a little bit faster than a normal 3D floor. You can use it when the sides
wouldn't be visible anyway.</p>
<p>This type of 3D floor will have shadows if and only if you set the control linedef's <a
href="#NOCLIMB">NOCLIMB</a> flag.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERPLANES|FF_CUTLEVEL
If the <a href="#NOCLIMB">NOCLIMB</a> flag is disabled, it also adds FF_NOSHADE-->
<h3><a name="l105"></a>105 - Floor Over Floor: Solid, Invisible</h3>
<p>For making invisible walls and other strange effects.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_NOSHADE-->
<hr>
<h3><a name="l120"></a>120 - Floor Over Floor: Water, Opaque</h3>
<p>This one looks exactly like linetype <a href="#l100">100</a> ingame, but is a block of
water instead of solid.</p>
<p>The block will have the attribute of linetype <a href="#l200">200</a> if the <a
href="#NOCLIMB">NOCLIMB</a> flag is set.</p>
<p>To use the light level of the target sector, utilize the <a href="#EFFECT4">EFFECT4</a>
flag.</p>
<p>If this is used as lava (Fire Damage), and you set the <a href="#BLOCKMONSTERS">BLOCKMONSTERS</a>
flag, you can still pass through the lava.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_RENDERALL|FF_SWIMMABLE|FF_BOTHPLANES|FF_ALLSIDES|FF_CUTEXTRA|FF_EXTRA|FF_CUTSPRITES-->
<h3><a name="l121"></a>121 - Floor Over Floor: Water, Translucent</h3>
<p>This one looks exactly like linetype <a href="#l102">102</a> ingame, but is a block of
water instead of solid.</p>
<p>The block will have the attribute of linetype <a href="#l200">200</a> if the <a
href="#NOCLIMB">NOCLIMB</a> flag is set.</p>
<p>To use the light level of the target sector, utilize the <a href="#EFFECT4">EFFECT4</a>
flag.</p>
<p>If this is used as lava (Fire Damage), and you set the <a href="#BLOCKMONSTERS">BLOCKMONSTERS</a>
flag, you can still pass through the lava.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_RENDERALL|FF_TRANSLUCENT|FF_SWIMMABLE|FF_BOTHPLANES|FF_ALLSIDES|FF_CUTEXTRA|FF_EXTRA|
FF_CUTSPRITES-->
<h3><a name="l122"></a>122 - Floor Over Floor: Water, Opaque, No Sides</h3>
<p>Like linetype <a href="#l120">120</a>, but doesn't render sides.</p>
<p>The block will have the attribute of linetype <a href="#l200">200</a> if the <a
href="#NOCLIMB">NOCLIMB</a> flag is set.</p>
<p>To use the light level of the target sector, utilize the <a href="#EFFECT4">EFFECT4</a>
flag.</p>
<p>If this is used as lava (Fire Damage), and you set the <a href="#BLOCKMONSTERS">BLOCKMONSTERS</a>
flag, you can still pass through the lava.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_RENDERPLANES|FF_SWIMMABLE|FF_BOTHPLANES|FF_CUTEXTRA|FF_EXTRA|FF_CUTSPRITES-->
<h3><a name="l123"></a>123 - Floor Over Floor: Water, Translucent, No Sides</h3>
<p>Like linetype <a href="#l121">121</a>, but doesn't render sides. Most of the time this
won't make a difference. It can be useful, however, for windows that have water on one
side and not on the other.</p>
<p>The block will have the attribute of linetype <a href="#l200">200</a> if the <a
href="#NOCLIMB">NOCLIMB</a> flag is set.</p>
<p>To use the light level of the target sector, utilize the <a href="#EFFECT4">EFFECT4</a>
flag.</p>
<p>If this is used as lava (Fire Damage), and you set the <a href="#BLOCKMONSTERS">BLOCKMONSTERS</a>
flag, you can still pass through the lava.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_RENDERPLANES|FF_TRANSLUCENT|FF_SWIMMABLE|FF_BOTHPLANES|FF_CUTEXTRA|FF_EXTRA|
FF_CUTSPRITES-->
<hr>
<h3><a name="l140"></a>140 - Floor Over Floor: Intangible from Bottom, Opaque </h3>
<p>This sector type is solid from the top and walls, but is not solid from the bottom.
This allows the designer to create one-way passages as well as simulate 2D design by
having platforms that players can jump up to from below.</p>
<p>This type of 3D floor will have shadows unless you set the control linedef's <a
href="#NOCLIMB">NOCLIMB</a> flag.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_PLATFORM|FF_BOTHPLANES|FF_ALLSIDES
If the <a href="#NOCLIMB">NOCLIMB</a> flag is enabled, it also adds FF_NOSHADE-->
<h3><a name="l141"></a>141 - Floor Over Floor: Intangible from Bottom, Translucent</h3>
<p>A copy of linetype <a href="#l140">140</a> that is also translucent.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_PLATFORM|FF_TRANSLUCENT|FF_BOTHPLANES|FF_ALLSIDES
If the <a href="#NOCLIMB">NOCLIMB</a> flag is enabled, it also adds FF_NOSHADE-->
<h3><a name="l142"></a>142 - Floor Over Floor: Intangible from Bottom, Translucent, No
Sides</h3>
<p>A platform you can jump up through, like linetype <a href="#l140">140</a> (and decides
the same way whether to have shadows or not), with translucency and that doesn't render
sides. Alpha value supported the same way as linetype <a href="#l102">102</a>.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_CUTLEVEL|FF_RENDERPLANES|FF_TRANSLUCENT|FF_PLATFORM|FF_BOTHPLANES
If the <a href="#NOCLIMB">NOCLIMB</a> flag is enabled, it also adds FF_NOSHADE-->
<hr>
<h3><a name="l150"></a>150 - Floor Over Floor: Bobbing (Air)</h3>
<p>FOF that moves down 16 units when you step on, then returns to its former position when
you step off. The control sector must be connected to another sector with the same floor
and ceiling height. This seemingly redundant sector is used for resetting the heights. (If
you forget to put it in, the bobbing floor when stepped on will go down, keep going down,
and never stop or come back up.) See also linetypes <a href="#l151">151</a> and <a
href="#l152">152</a>. This linedef is obsolete. Please use linetype 190-195.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_AIRBOB-->
<h3><a name="l151"></a>151 - Floor Over Floor: Adjustable Bobbing (Air)</h3>
<p>Like linetype <a href="#l150">150</a>, except that instead of the floor moving down 16
units when you step on it, it moves down the number of units of the control linedef's
length. This linedef is obsolete. Please use linetype 190-195.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_AIRBOB-->
<h3><a name="l152"></a>152 - Floor Over Floor: Reverse Bobbing (Air)</h3>
<p>Like linetype <a href="#l151">151</a>, except in reverse. The platform goes <i>up</i>
when you step on it and back <i>down</i> when you step off. This linedef is obsolete.
Please use linetype 190-195.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_AIRBOB-->
<hr>
<h3><a name="l160"></a>160 - Floor Over Floor: Floating, Bobbing</h3>
<p>Bobs and floats in water. The floating part means that if the water moves or rises,
this platform will rise with it.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_FLOATBOB-->
<hr>
<h3><a name="l170"></a>170 - Floor Over Floor: Crumbling (Respawn)</h3>
<p>Crumbles and falls away, then reappears 15 seconds later.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_CRUMBLE-->
<h3><a name="l171"></a>171 - Floor Over Floor: Crumbling (No Respawn)</h3>
<p>Crumbles and falls away and never comes back.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_CRUMBLE|FF_NORETURN-->
<h3><a name="l172"></a>172 - Floor Over Floor: Crumbling (Respawn)</h3>
<p>A copy of linetype <a href="#l140">140</a> that also crumbles when stood on and
reappears after 15 seconds.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_PLATFORM|FF_CRUMBLE|FF_BOTHPLANES|FF_ALLSIDES
If the <a href="#NOCLIMB">NOCLIMB</a> flag is enabled, it also adds FF_NOSHADE-->
<h3><a name="l173"></a>173 - Floor Over Floor: Crumbling (No Respawn)</h3>
<p>A copy of linetype <a href="#l172">172</a> that stays gone forever after crumbling.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_PLATFORM|FF_CRUMBLE|FF_NORETURN|FF_BOTHPLANES|
FF_ALLSIDES
If the <a href="#NOCLIMB">NOCLIMB</a> flag is enabled, it also adds FF_NOSHADE-->
<h3><a name="l174"></a>174 - Floor Over Floor: Intangible from Bottom, Crumbling
(Respawn), Translucent</h3>
<p>A copy of linetype <a href="#l141">141</a> that also crumbles when stood on and
reappears after 15 seconds.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_PLATFORM|FF_CRUMBLE|FF_TRANSLUCENT|FF_BOTHPLANES|
FF_ALLSIDES
If the <a href="#NOCLIMB">NOCLIMB</a> flag is enabled, it also adds FF_NOSHADE-->
<h3><a name="l175"></a>175 - Floor Over Floor: Intangible from Bottom, Crumbling (No
Respawn), Translucent</h3>
<p>A copy of linetype <a href="#l174">174</a> that stays gone forever after crumbling.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_PLATFORM|FF_CRUMBLE|FF_NORETURN|FF_TRANSLUCENT|
FF_BOTHPLANES|FF_ALLSIDES
If the <a href="#NOCLIMB">NOCLIMB</a> flag is enabled, it also adds FF_NOSHADE-->
<h3><a name="l176"></a>176 - Floor Over Floor: Crumbling (Respawn), Floating, Bobbing</h3>
<p>Crumbles and falls, then floats on water, then bobs when you step on it.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_FLOATBOB|FF_AIRBOB|FF_CRUMBLE-->
<h3><a name="l177"></a>177 - Floor Over Floor: Crumbling (No Respawn), Floating, Bobbing</h3>
<p>Crumbles and falls, then floats on water, then bobs when you step on it. Unlike
linetype <a href="#l176">176</a>, does not return to its former position.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_FLOATBOB|FF_AIRBOB|FF_CRUMBLE|FF_NORETURN-->
<h3><a name="l178"></a>178 - Floor Over Floor: Crumbling (Respawn), Floating</h3>
<p>Crumbles and falls, then floats on water, then reappears up in the air 15 seconds
later.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_CRUMBLE|FF_FLOATBOB-->
<h3><a name="l179"></a>179 - Floor Over Floor: Crumbling (No Respawn), Floating</h3>
<p>Crumbles and falls, then spends the rest of its days floating on water, never to
reappear up in the air.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_CRUMBLE|FF_FLOATBOB|FF_NORETURN-->
<h3><a name="l180"></a>180 - Floor Over Floor: Crumbling (Respawn), Bobbing (Air)</h3>
<p>Bobs, crumbles, and falls when stepped on.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_AIRBOB|FF_CRUMBLE-->
<hr>
<h3><a name="l190"></a>190 - Floor Over Floor: Rising Platform, Solid, Opaque,
Shadowcasting</h3>
<p>Just like <a href="#l100">100</a>, except when a player steps on it, it will rise up to
the control sector's highest adjacent sector. You set the control sectors for this up like
special <a href="#l59">59</a>. Linedef length controls speed like <a href="#l60">60</a>.
If the <a href="#NOCLIMB">NOCLIMB</a> flag is set, it will require the player to spindash
to raise the platform.</p>
<h3><a name="l191"></a>191 - Floor Over Floor: Rising Platform, Solid, Opaque,
Non-Shadowcasting</h3>
<p>Just like <a href="#l101">101</a>, except when a player steps on it, it will rise up to
the control sector's highest adjacent sector. You set the control sectors for this up like
special <a href="#l59">59</a>. Linedef length controls speed like <a href="#l60">60</a>.
If the <a href="#NOCLIMB">NOCLIMB</a> flag is set, it will require the player to spindash
to raise the platform.</p>
<h3><a name="l192"></a>192 - Floor Over Floor: Rising Platform, Solid, Translucent</h3>
<p>Just like <a href="#l102">102</a>, except when a player steps on it, it will rise up to
the control sector's highest adjacent sector. You set the control sectors for this up like
special <a href="#l59">59</a>. Linedef length controls speed like <a href="#l60">60</a>.
If the <a href="#NOCLIMB">NOCLIMB</a> flag is set, it will require the player to spindash
to raise the platform.</p>
<h3><a name="l193"></a>193 - Floor Over Floor: Rising Platform, Solid, Invisible</h3>
<p>Just like <a href="#l105">105</a>, except when a player steps on it, it will rise up to
the control sector's highest adjacent sector. You set the control sectors for this up like
special <a href="#l59">59</a>. Linedef length controls speed like <a href="#l60">60</a>.
If the <a href="#NOCLIMB">NOCLIMB</a> flag is set, it will require the player to spindash
to raise the platform.</p>
<h3><a name="l194"></a>194 - Floor Over Floor: Rising Platform, Intangible from Bottom,
Opaque</h3>
<p>Just like <a href="#l140">140</a>, except when a player steps on it, it will rise up to
the control sector's highest adjacent sector. You set the control sectors for this up like
special <a href="#l59">59</a>. Linedef length controls speed like <a href="#l60">60</a>.
If the <a href="#NOCLIMB">NOCLIMB</a> flag is set, it will require the player to spindash
to raise the platform.</p>
<h3><a name="l195"></a>195 - Floor Over Floor: Rising Platform, Intangible from Bottom,
Translucent</h3>
<p>Just like <a href="#l141">141</a>, except when a player steps on it, it will rise up to
the control sector's highest adjacent sector. You set the control sectors for this up like
special <a href="#l59">59</a>. Linedef length controls speed like <a href="#l60">60</a>.
If the <a href="#NOCLIMB">NOCLIMB</a> flag is set, it will require the player to spindash
to raise the platform.</p>
<hr>
<h3><a name="l200"></a>200 - Floor Over Floor: Light Block</h3>
<p>Like a half light block, but it's really an actual block. That is, the light only comes
down to the control sector's floor, not to the bottom of the level (as with linetype <a
href="#l201">201</a>.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_CUTSPRITES|FF_DOUBLESHADOW-->
<h3><a name="l201"></a>201 - Floor Over Floor: Half Light Block</h3>
<p>Light blocks can be used to set color maps and light values. The light value of the
control sector will be used and any colormap attached to it will be used also. Note that
only the ceiling of the control sector is used; the light goes all the way down to the
bottom of the level. If this isn't what you want, consider using linedef type <a
href="#l200">200</a> instead.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_CUTSPRITES
Note: Although it's not a true FOF, it does still have the same kind of definition, so
the FOF flags are included despite not being a real block.-->
<h3><a name="l202"></a>202 - Floor Over Floor: Fog Block</h3>
<p>Creates a block of colored fog. Attach a colormap (linetype <a href="#l606">606</a>) to
the control sector for the fog block; otherwise you won't see anything out of the
ordinary.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_RENDERALL|FF_FOG|FF_BOTHPLANES|FF_INVERTPLANES|FF_ALLSIDES|FF_INVERTSIDES|FF_CUTEXTRA|
FF_EXTRA|FF_DOUBLESHADOW|FF_CUTSPRITES-->
<hr>
<h3><a name="l220"></a>220 - Floor Over Floor: Intangible, Opaque </h3>
<p>Like <a href="#l120">opaque water</a>, but not swimmable. Good for a snow effect on
FOFs. Can also be used to make hidden rooms, like you would normally do by setting a Main
texture.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_RENDERALL|FF_BOTHPLANES|FF_ALLSIDES|FF_CUTEXTRA|FF_EXTRA|FF_CUTSPRITES-->
<h3><a name="l221"></a>221 - Floor Over Floor: Intangible, Translucent</h3>
<p>See linedef type <a href="#l102">102</a> for how to adjust the translucency, making the
3D floor more transparent or more opaque.</p>
<p>This type of 3D floor will have shadows if and only if you set the control linedef's <a
href="#NOCLIMB">NOCLIMB</a> flag.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_RENDERALL|FF_TRANSLUCENT|FF_EXTRA|FF_CUTEXTRA
If the <a href="#NOCLIMB">NOCLIMB</a> flag is disabled, it also adds FF_NOSHADE-->
<h3><a name="l222"></a>222 - Floor Over Floor: Intangible, Sides Only</h3>
<p>An intangible FOF that renders sides only, not planes (floor and ceiling). It renders
both inside sides and outside sides. You can use it to place sector borders (GFZGRASS,
etc.) on FOFs.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_RENDERSIDES|FF_NOSHADE|FF_ALLSIDES-->
<h3><a name="l223"></a>223 - Floor Over Floor: Intangible, Invisible</h3>
<p>Useful for setting effects, such as wind and gravity.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_NOSHADE-->
<hr>
<h3><a name="l250"></a>250 - Floor Over Floor: Mario Block</h3>
<p>Like a normal FOF, except that the control linedef's Above texture is used after the
block has been hit (the Main texture is used before this). Any things in the control
sector will pop out the top of the block in the order in which they were placed. Rings
will be obtained and the effects of monitors will begin as soon as the block has been hit.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL|FF_MARIO-->
<h3><a name="l251"></a>251 - Floor Over Floor: Thwomp Block</h3>
<p>The thwomps are the crazy platforms with faces in Mario Koopa Blast 3. They can crush
you, but you can also ride on them.</p>
<p>Control sector is set up like a <a href="#l100">normal FOF</a>. When a player steps
underneath the thwomp, it will crush down to the floor. You don't need to tell it where
the floor is. It knows.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_CUTLEVEL-->
<h3><a name="l252"></a>252 - Floor Over Floor: Shatter Block</h3>
<p>Like the bustable block, linetype <a href="#l254">254</a>, except that it shatters on
any sort of contact, whether it's a spindash or not (and whether you're Knuckles or not).</p>
<p>If the <a href="#NOCLIMB">NOCLIMB</a> flag is set, the block is only shatterable from
the bottom, like some things you spring up and break in Launch Base Zone from Sonic 3.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_BUSTUP|FF_SHATTER-->
<h3><a name="l253"></a>253 - Floor Over Floor: Shatter Block, Translucent</h3>
<p>Translucent version of <a href="#l252">252</a> supporting alpha values.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_BUSTUP|FF_SPINBUST|FF_TRANSLUCENT-->
<h3><a name="l254"></a>254 - Floor Over Floor: Bustable Block</h3>
<p>Bustable blocks can be destroyed by spindashing. Additionally, Knuckles can destroy
them by walking or jumping into them, since he is very strong. If the <a href="#NOCLIMB">NOCLIMB</a>
flag is set, only Knuckles can break the block.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_BUSTUP (|FF_ONLYKNUX if <a href="#NOCLIMB">NOCLIMB</a>)-->
<h3><a name="l255"></a>255 - Floor Over Floor: Spin Bust Block</h3>
<p>Like the bustable block, linetype <a href="#l254">254</a>, set off in a different way.
To break, jump onto it or fall down onto it while spinning. Similar to blocks found in
Marble Zone, as well as the ice cubes that would encase buttons and monitors in parts of
Ice Cap Zone.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_SOLID|FF_RENDERALL|FF_BUSTUP|FF_SPINBUST-->
<h3><a name="l256"></a>256 - Floor Over Floor: Spin Bust Block, Translucent</h3>
<p>Translucent version of <a href="#l255">255</a> supporting alpha values.</p>
<h3><a name="l257"></a>257 - Floor Over Floor: Quicksand Block</h3>
<p>It's set up like any block. You can, of course, sink and die in it. X length of the
linedef determines sink speed, Y length determines how &quot;sludgy&quot; movement in the
quicksand is.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_QUICKSAND|FF_RENDERALL|FF_ALLSIDES|FF_CUTSPRITES-->
<h3><a name="l258"></a>258 - Floor Over Floor: Laser Block</h3>
<p>Creates a blinking FOF that zaps you if you touch it. You can set the flats and texture
to whatever you want. For a red laser like in THZ2, use REDFLR for the flats and REDWALL
for the texture.</p>
<p>You can also make other colors using BLUEFLR/BLUWALL (blue laser), GREENFLR/GRNWALL
(green laser), and YELFLR/YELWALL (yellow laser). Of course, those colors of lasers are
very expensive, so Eggman doesn't have nearly as many of them. He usually goes with the
cheap red lasers.</p>
<!--Exact FOF flags:
FF_EXISTS|FF_RENDERALL|FF_NOSHADE|FF_EXTRA|FF_CUTEXTRA-->
<h3><a name="l259"></a>259 - Floor Over Floor: Custom</h3>
<p>Place the appropriate flag values in hex (do not include the 0x in front of it) in the
line's UPPER TEXTURE field on the 2nd side of the linedef.</p>
</ol>
</li>
<li><u><big><big>Linedef Executor Triggers</big></big></u><ol>
<h3><a name="l300"></a>300 - Trigger Linedef Executor (Continuous)</h3>
<p>Triggers linedef executor in the control sector when a player touches the tagged
sector's floor or steps in the sector (depending on the sector special used). The linedef
executor will keep being triggered over and over again as long as a player is there, hence
the word &quot;continuous&quot; in this linetype's name. Tagged sector must have one of
the <a href="#sCat2">Trigger Linedef Executor</a> types for this to work.</p>
<h3><a name="l301"></a>301 - Trigger Linedef Executor (Each Time)</h3>
<p>Like <a href="#l300">300</a>, except that it only gets triggered once for each time you
fall or jump onto the floor. Tagged sector must have one of the <a href="#sCat2">Trigger
Linedef Executor</a> types for this to work.</p>
<h3><a name="l302"></a>302 - Trigger Linedef Executor (Once)</h3>
<p>Like <a href="#l300">300</a>, except that after that linedef executor executes its
linedefs, it's done. It's over. The linedefs will never be executed again.</p>
<h3><a name="l303"></a>303 - Trigger Linedef Executor (Ring Count - Continuous)</h3>
<p>Triggers linedef executor in the control sector when a player touches the tagged
sector's floor or steps in the sector (depending on the sector special used). The linedef
executor will keep being triggered over and over again as long as a player is there, hence
the word &quot;continuous&quot; in this linetype's name. Tagged sector must have one of
the <a href="#sCat2">Trigger Linedef Executor</a> types for this to work. Executor will be
triggered depending on how many rings the player has:</p>
<p>No flags -&gt; Runs if (rings = line length)</p>
<p><a href="#NOCLIMB">NOCLIMB</a> -&gt; Runs if (rings &lt;= line length)</p>
<p><a href="#BLOCKMONSTERS">BLOCKMONSTERS</a> -&gt; Runs if (rings &gt;= line length)</p>
<p><a href="#EFFECT4">EFFECT4</a> -&gt; Takes the rings of ALL players into account.</p>
<h3><a name="l304"></a>304 - Trigger Linedef Executor (Ring Count - Once)</h3>
<p>Like <a href="#l303">303</a>, except that after that linedef executor executes its
linedefs, it's done. It's over. The linedefs will never be executed again.</p>
<h3><a name="l305"></a>305 - Trigger Linedef Executor (Character Ability - Once)</h3>
<p>Like linetype <a href="#l302">302</a>, but is only activated when the character's
ability number matches the linedef length by multiples of 10. For example:</p>
<p>0-9 = Charability 0</p>
<p>10-19 = Charability 1</p>
<p>20-29 = Charability 2</p>
<p>etc...</p>
<h3><a name="l306"></a>306 - Trigger Linedef Executor (Character Ability - Continuous)</h3>
<p>Like <a href="#l300">300</a>, but only triggers when the character's ability number
matches the linedef length by multiples of 10. See linetype <a href="#l305">305</a> for a
futher description.</p>
<h3><a name="l307"></a>307 - Trigger Linedef Executor (Character Ability - Each Time)</h3>
<p>Like <a href="#l301">301</a>, but only triggers when the character's ability number
matches the linedef length by multiples of 10. See linetype <a href="#l305">305</a> for a
futher description.</p>
<h3><a name="l308"></a>308 - Trigger Linedef Executor (Race Only, Once)</h3>
<p>Like linetype <a href="#l302">302</a>, but is only activated when the gametype is Race.
Useful for doing things like opening doors, pre-solving puzzles, etc. to make race
smoother.</p>
<h3><a name="l309"></a>309 - Trigger Linedef Executor (CTF Red Team - Continuous)</h3>
<p>Like <a href="#l300">300</a>, but only triggers if you are in CTF and on the red team.</p>
<h3><a name="l310"></a>310 - Trigger Linedef Executor (CTF Red Team - Each Time)</h3>
<p>Like <a href="#l301">301</a>, but only triggers if you are in CTF and on the red team.</p>
<h3><a name="l311"></a>311 - Trigger Linedef Executor (CTF Blue Team - Continuous)</h3>
<p>Like <a href="#l300">300</a>, but only triggers if you are in CTF and on the blue team.</p>
<h3><a name="l312"></a>312 - Trigger Linedef Executor (CTF Blue Team - Each Time)</h3>
<p>Like <a href="#l301">301</a>, but only triggers if you are in CTF and on the blue team.</p>
<h3><a name="l313"></a>313 - Trigger Linedef Executor (No More Enemies - Once)</h3>
<p>Like linetype <a href="#l302">302</a>, but is only activated when no more objects of
type MF_ENEMY exist in its tagged area. Think &quot;destroy all enemies in this room for
the door to open to go to the next room&quot;. Tag this to a control sector. It will go
through the lines of the control sector, checking for any lines of type <a href="#l223">223</a>
and checking inside the area occupied by the invisible intangible FOF to see if any
enemies exist. If no alive enemies are in all of the type <a href="#l223">223</a> FOFs,
the linedef executor is run once. The line length is the tag number of the linedef
executor trigger to run.</p>
<h3><a name="l314"></a>314 - Trigger Linedef Executor (# of Pushables - Continuous)</h3>
<p>Like <a href="#l300">300</a>, but only triggers if the number of pushable objects in
the sector compared to the line length is:</p>
<p>No flags -&gt; Runs if (# pushables = line length)</p>
<p><a href="#NOCLIMB">NOCLIMB</a> -&gt; Runs if (# pushables &gt;= line length)</p>
<p><a href="#EFFECT4">EFFECT4</a> -&gt; Runs if (# pushables &lt; line length)</p>
<h3><a name="l315"></a>315 - Trigger Linedef Executor (# of Pushables - Once)</h3>
<p>Like <a href="#l314">314</a>, but only triggers once.</p>
<h3><a name="l316"></a>316 - Trigger Linedef Executor (PolyObject - Land On)</h3>
<p>This will trigger every time you land on the polyobject. Line's tag # is 32000 + the
PolyObject ID #. You must also flag the PolyObject Start (#20) line with <a
href="#NOCLIMB">NOCLIMB</a> to tell the game it has a linedef executor associated with it.</p>
<p>So if you had a PolyObject with an ID of 1, this line would have a tag of 32001.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Linedef Executor Options</big></big></u><ol>
<h3><a name="l400"></a>400 - Linedef Executor: Set Tagged Sector's Floor Height/Pic</h3>
<p>When executed, instantly changes the tagged sector's floor height and flat to the floor
height and flat of the linedef's front sector.</p>
<h3><a name="l401"></a>401 - Linedef Executor: Set Tagged Sector's Ceiling Height/Pic</h3>
<p>When executed, instantly changes the tagged sector's ceiling height and flat to the
ceiling height and flat of the linedef's front sector.</p>
<h3><a name="l402"></a>402 - Linedef Executor: Set Tagged Sector's Light Level</h3>
<p>When executed, instantly changes the tagged sector's light level to that of the
linedef's front sector. Floor and ceiling light settings done with linetypes <a
href="#l601">601</a> and <a href="#l600">600</a> are transferred as well; colormaps are
not.</p>
<p>If there is a lighting effect active in the target sector or sectors at the time (glow,
fade, strobe, flicker), it will be stopped.</p>
<h3><a name="l403"></a>403 - Linedef Executor: Move Tagged Sector's Floor</h3>
<p>When executed, starts moving the tagged sector's floor until it is at the same height
as the linedef's front sector's floor. Speed is indicated in the same units used by
linetype <a href="#l60">60</a>.</p>
<p>If the line used has <a href="#NOCLIMB">NOCLIMB</a> flag, the floor flat will change
after the move, to that on the front sector's floor. This is like what linetype <a
href="#l400">400</a> does.</p>
<p>If the line used has <a href="#BLOCKMONSTERS">BLOCKMONSTERS</a> flag, another linedef
executor will be run when the floor movement is finished. (If multiple sectors finish at
different times, it goes by the lowest numbered sector, but you should probably try to
avoid this scenario.) The tag of the new linedef executor to run is specified by the X
alignment on the front side of the line. The tag number you use must be positive, and this
functionality cannot be combined with changing the floor flat using the <a href="#NOCLIMB">NOCLIMB</a>
flag. Running a linedef executor will take precedence over changing the floor flat.</p>
<h3><a name="l404"></a>404 - Linedef Executor: Move Tagged Sector's Ceiling</h3>
<p>When executed, starts moving the tagged sector's ceiling until it is at the same height
as the linedef's front sector's ceiling. Speed is indicated in the same units used by
linetype <a href="#l60">60</a>.</p>
<p>If the line used has <a href="#NOCLIMB">NOCLIMB</a> flag, the ceiling flat will change
after the move, to that on the front sector's ceiling. This is like what linetype <a
href="#l401">401</a> does.</p>
<p>If the line used has <a href="#BLOCKMONSTERS">BLOCKMONSTERS</a> flag, another linedef
executor will be run when the ceiling movement is finished. (If multiple sectors finish at
different times, it goes by the lowest numbered sector, but you should probably try to
avoid this scenario.) The tag of the new linedef executor to run is specified by the X
alignment on the front side of the line. The tag number you use must be positive, and this
functionality cannot be combined with changing the ceiling flat using the <a
href="#NOCLIMB">NOCLIMB</a> flag. Running a linedef executor will take precedence over
changing the ceiling flat.</p>
<h3><a name="l405"></a>405 - Linedef Executor: Lower Floor by Line</h3>
<p>Speed is indicated by x distance; amount to lower is indicated by y distance.</p>
<h3><a name="l406"></a>406 - Linedef Executor: Raise Floor by Line</h3>
<p>Speed is indicated by x distance; amount to raise is indicated by y distance.</p>
<h3><a name="l407"></a>407 - Linedef Executor: Lower Ceiling by Line</h3>
<p>Speed is indicated by x distance; amount to lower is indicated by y distance.</p>
<h3><a name="l408"></a>408 - Linedef Executor: Raise Ceiling by Line</h3>
<p>Speed is indicated by x distance; amount to raise is indicated by y distance.</p>
<h3><a name="l409"></a>409 - Linedef Executor: Change Calling Sector's Tag</h3>
<p>Changes the tag of the calling sector; that is, the sector on the map that activated
this linedef executor. The new tag is the linedef's length.</p>
<h3><a name="l410"></a>410 - Linedef Executor: Change Front Sector's Tag</h3>
<p>Changes the tag of the linedef's front sector. The new tag is the linedef's length.</p>
<h3><a name="l411"></a>411 - Linedef Executor: Stop Plane Movement</h3>
<p>Stops any and all floor, ceiling, or elevator movement in the tagged sector or sectors.</p>
<h2><a name="l412"></a>412 - Linedef Executor: Teleport Player to Tagged Sector</h2>
<p>The player who triggered the linedef executor will be teleported to the tagged sector.
The player's exact X, Y, Z, and angle are determined by a teleport destination thing, type
<a href="#t751">751</a>, somewhere in the tagged sector.</p>
<p>If the <a href="#BLOCKMONSTERS">BLOCKMONSTERS</a> flag is used, it won't flash and make
the teleport sound effects. If the <a href="#NOCLIMB">NOCLIMB</a> flag is used, it won't
reset the angle to the angle of the teleport destination thing, and if the <a
href="#EFFECT4">EFFECT4</a> flag is used, it will not kill your acceleration/speed upon
teleport.</p>
<h2><a name="l413"></a>413 - Linedef Executor: Change Music</h2>
<p>Linedef length indicates the music slot to use. If the linedef's <a href="#NOCLIMB">NOCLIMB</a>
flag is set, play the music once, otherwise loop it.</p>
<p>If the player dies and goes back to a starpost, the beginning of the level, or the
appropriate multiplayer start, the map music from before will be restored. The linedef
flag <a href="#BLOCKMONSTERS">BLOCKMONSTERS</a> can be set to change this behavior, and
retain the new music even after dying.</p>
<p>If the linedef length isn't a valid music slot, the music is stopped.</p>
<h3><a name="l414"></a>414 - Linedef Executor: Play SFX</h3>
<p>Plays a sound effect. The line length is the sound number to use. The list of sound
effects can be found in sounds.h. The origin of the sound depends on which linedef flags
are set: <ul>
<li><a href="#NOCLIMB">NOCLIMB</a> : The sound is played from nowhere, but only for the
player who triggered it.</li>
<li><a href="#EFFECT4">EFFECT4</a>: The sound is played from nowhere for everyone.</li>
<li><a href="#BLOCKMONSTERS">BLOCKMONSTERS</a>: The sound is played from the center of the
sector that triggered the linedef executor.</li>
</ul>
<p>Otherwise, the sound is played from the location of the player or thing who triggered
it.</p>
<h3><a name="l415"></a>415 - Linedef Executor: Run Script</h3>
<p>Runs a script, the same kind of script you can run on level load with the level header
scriptname attribute. The script that will be run should have a lumpname of the form SCR<i>xxyyy</i>,
where <i>xx</i> is the two-digit map number and <i>yyy</i> is the linedef's sector's floor
height in decimal, with leading zeroes as necessary (or 000 if the floor height exceeds
999 fracunits). For instance, if the linedef is in MAP31 and the floor of its sector is
337 fracunits, the script named SCR31337 will be run.</p>
<h3><a name="l416"></a>416 - Linedef Executor: Start Adjustable Fire Flicker</h3>
<p>Essentially a copy of linetype <a href="#l603">603</a> that waits to activate until the
linedef executor is triggered. It does have an extra feature, though. If you use a
two-sided linedef with the <a href="#NOCLIMB">NOCLIMB</a> flag, the linedef's back sector
will be used as the maximum light level, allowing you to set the target sector (or
sectors) at a different starting light level entirely.</p>
<h3><a name="l417"></a>417 - Linedef Executor: Start Adjustable Glowing Light</h3>
<p>Essentially a copy of linetype <a href="#l602">602</a> that waits to activate until the
linedef executor is triggered. It does have an extra feature, though. If you use a
two-sided linedef with the <a href="#NOCLIMB">NOCLIMB</a> flag, the linedef's back sector
will be used as the maximum light level, allowing you to set the target sector (or
sectors) at a different starting light level entirely.</p>
<h3><a name="l418"></a>418 - Linedef Executor: Start Adjustable Blinking Light
(unsynchronized)</h3>
<p>Essentially a copy of linetype <a href="#l604">604</a> that waits to activate until the
linedef executor is triggered. It does have an extra feature, though. If you use a
two-sided linedef with the <a href="#NOCLIMB">NOCLIMB</a> flag, the linedef's back sector
will be used as the maximum light level, allowing you to set the target sector (or
sectors) at a different starting light level entirely.</p>
<h3><a name="l419"></a>419 - Linedef Executor: Start Adjustable Blinking Light
(synchronized)</h3>
<p>Essentially a copy of linetype <a href="#l605">605</a> that waits to activate until the
linedef executor is triggered. It does have an extra feature, though. If you use a
two-sided linedef with the <a href="#NOCLIMB">NOCLIMB</a> flag, the linedef's back sector
will be used as the maximum light level, allowing you to set the target sector (or
sectors) at a different starting light level entirely.</p>
<h3><a name="l420"></a>420 - Linedef Executor: Fade Light Level</h3>
<p>When executed, gradually fades the tagged sector's light level to that of the linedef's
front sector. Floor and ceiling light settings done with linetypes <a href="#l601">601</a>
and <a href="#l600">600</a> are not affected or used.</p>
<p>If there is a lighting effect already active in the target sector or sectors at the
time (glow, other fade, strobe, flicker), it will be halted in favor of this one.</p>
<p>Linedef length in fracunits indicates speed. Fading from 224 to 64 with a linedef
length of 4 will take 40 fracunits (224 - 64 = 160, 160 / 4 = 40). There are 35 fracunits
in a second.</p>
<h3><a name="l421"></a>421 - Linedef Executor: Stop Lighting Effect</h3>
<p>Stops any lighting effects active in the tagged sector or sectors: glow, fade, strobe,
flicker, etc. The light level, whatever it is at the moment this script line is run, will
be preserved until a new lighting effect or light level change is used.</p>
<p>Note that the lighting effects will all stop other lighting effects when activated. In
other words, you only need to use this when you really want the lighting effect to stop,
not when you want one effect to stop and another to start.</p>
<h3><a name="l422"></a>422 - Linedef Executor: Cut-Away View</h3>
<p>Cuts away to a view from a different place for a moment. Only works for linedef
executors triggered by a player. Tag the line to a sector with an alt view thing (map
thing type 5007) in it at the proper location with the proper Z and angle. The line length
indicates how long to stay in this view, in tics.</p>
<p>By giving the linedef a <a href="#NOCLIMB">NOCLIMB</a> flag, you can adjust the
vertical viewing angle from the cut-away view. Set the x offset on the linedef's front
side to an integer -90 to 90. In software mode the range of viewing angles is actually
about -68 to 68. This is in degrees.</p>
<h3><a name="l423"></a>423 - Linedef Executor: Change Sky</h3>
<p>Changes sky to the # of the control sector's floorheight. This only affects the player
who activates it. If you'd like it to affect all players, make sure you check the <a
href="#NOCLIMB">NOCLIMB</a> flag.</p>
<h3><a name="l424"></a>424 - Linedef Executor: Change Weather</h3>
<p>Changes weather to the control sector's floorheight in powers of 10.</p>
<p>Example:</p>
<div align="left"><table border="1" width="28%">
<tr>
<td width="50%">Linedef Length</td>
<td width="50%">Weather Type</td>
</tr>
<tr>
<td width="50%">10</td>
<td width="50%">None</td>
</tr>
<tr>
<td width="50%">20</td>
<td width="50%">Snow</td>
</tr>
<tr>
<td width="50%">30</td>
<td width="50%">Rain</td>
</tr>
<tr>
<td width="50%">40</td>
<td width="50%">Storm</td>
</tr>
</table>
</div><p>(higher numbers reserved for future use)</p>
<p>This only affects the player who activates it. If you'd like it to affect all players,
make sure you check the <a href="#NOCLIMB">NOCLIMB</a> flag.</p>
<h3><a name="l425"></a>425 - Linedef Executor: Change Object State</h3>
<p>Changes the animation frame of the activating object to the state # indicated by the
length of the control linedef. Be careful how you use this.</p>
<h3><a name="l426"></a>426 - Linedef Executor: Stop Object</h3>
<p>Makes the object that triggered the linedef executor stop moving, after being sent to
the center of the sector it's in (only if <a href="#NOCLIMB">NOCLIMB</a> flag is set), on
the floor. Although it comes to a complete stop, the object can begin moving right away
again. If the object is a player, the player will stop jumping, spinning, or anything
else.</p>
<h3><a name="l427"></a>427 - Linedef Executor: Award Score</h3>
<p>Adds to the score of the player who activated it. Control sector's floorheight = points
to award. This even works with negative values.</p>
<h3><a name="l428"></a>428 - Linedef Executor: Start Platform Movement</h3>
<p>Starts a moving platform in the nature of linetype <a href="#l59">59</a> or <a
href="#l60">60</a>. If the <a href="#NOCLIMB">NOCLIMB</a> flag is set, the platform will
begin moving upwards. Otherwise, it will start moving downwards. Speed of movement is set
just like with linetype <a href="#l60">60</a>.</p>
<h3><a name="l429"></a>429 - Linedef Executor: Crush Ceiling Once</h3>
<p>Ceiling moves down to the floor, then back up. Speed is determined by line length -
every 16 units equals 1 FRACUNIT/tic.</p>
<h3><a name="l430"></a>430 - Linedef Executor: Crush Floor Once</h3>
<p>Floor moves up to the ceiling, then back down. Speed is determined by line length -
every 16 units equals 1 FRACUNIT/tic.</p>
<h3><a name="l431"></a>431 - Linedef Executor: Crush Floor And Ceiling Once</h3>
<p>Floor and ceiling meet in the middle and then return, sandwiching anything that's
inbetween. Speed is determined by line length - every 16 units equals 1 FRACUNIT/tic.</p>
<h3><a name="l432"></a>432 - Linedef Executor: Enable 2D Mode</h3>
<p>Turns on 2D mode within the level. You'll probably only want to use this with a zoom
tube or teleport to guarantee that the player is in the correct position when it switches.</p>
<h3><a name="l433"></a>433 - Linedef Executor: Disable 2D Mode</h3>
<p>Turns off 2D mode within the level.</p>
<h3><a name="l434"></a>434 - Linedef Executor: Award Custom Power</h3>
<p>Awards (or removes!) a power to the calling player.</p>
<p>X length: Power Index + 1</p>
<p>Y length: Power Duration (in 35ths of a second)</p>
<h3><a name="l435"></a>435 - Linedef Executor: Change Scroller Direction</h3>
<p>Changes direction of a scroller (conveyor, texture). Also changes speed if this is not
an accelerative/displacement scroller.</p>
<h3><a name="l436"></a>436 - Linedef Executor: Shatter Block</h3>
<p>Shatters a FOF - of any type. Parameters are as follows:</p>
<p>Texture X Offset: Tag # of FOF target sector</p>
<p>Texture Y Offset: Tag # of FOF control sector</p>
<p>Note that the FOF should only have one target sector.</p>
<h3><a name="l437"></a>437 - Linedef Executor: Disable Player Control</h3>
<p>Disables the controls of the player that triggered the linedef executor. If the
<a href="#NOCLIMB">NOCLIMB</a> flag is set, they will be able to jump, however.</p>
<p>Giving the front texture of the linedef an X offset will make the effect last that amount
of time, in tics. Otherwise, it ends immediately, so you would need to use a continuous
trigger.</p>
<h3><a name="l438"></a>438 - Linedef Executor: Set Object's Scale</h3>
<p>Length of this line determines the scale size of an object, in percentage. Note that there is a max of 400%.</p>
<h3><a name="l450"></a>450 - Linedef Executor: Execute Linedef Executor</h3>
<p>Just what it says. Can be used for recursion. Be careful, because you CAN make a loop
out of this that will freeze the game.</p>
<p>Tag is the linedef executor trigger tag to run.</p>
<h3><a name="l488"></a>488 - Linedef Executor: PolyObject - Move by Waypoints</h3>
<p>Moves a polyobject along a sequence of Zoom Tube waypoints.</p>
<p>Texture X offset: Speed (8 = 1 FRACUNIT).</p>
<p>Texture Y offset: Sequence # of Zoom Tube waypoints.</p>
<p>The movement also depends on which linedef flags are set: <ul>
<li><a href="#EFFECT1">EFFECT1</a> : Moves from highest waypoint # to lowest waypoint #.</li>
<li><a href="#EFFECT2">EFFECT2</a> : Comes back the way it came when the end is reached.</li>
<li><a href="#EFFECT3">EFFECT3</a> : Wrap around the waypoints.</li>
<li><a href="#EFFECT4">EFFECT4</a>:&nbsp; Continuously move (used with EFFECT2 or EFFECT3).</li>
</ul>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Scrollers / Pushers</big></big></u><ol>
<h3><a name="l500"></a>500 - Scroll Wall First Side Left</h3>
<h3><a name="l501"></a>501 - Scroll Wall First Side Opposite Direction</h3>
<h3><a name="l502"></a>502 - Scroll Wall According to Linedef</h3>
<h3><a name="l503"></a>503 - Acc Scroll Wall According to Linedef</h3>
<p>Accelerative scrolling version of <a href="#l502">502</a>.</p>
<h3><a name="l504"></a>504 - Disp Scroll Wall According to Linedef</h3>
<p>Displacement scrolling version of <a href="#l502">502</a>.</p>
<h3><a name="l505"></a>505 - Scroll Texture by Offsets</h3>
<hr>
<h3><a name="l510"></a>510 - Scroll Floor Texture</h3>
<p>Linedef length and direction indicate speed and direction.</p>
<h3><a name="l511"></a>511 - Acc Scroll Floor Texture</h3>
<p>Accelerative scrolling version of <a href="#l510">510</a>.</p>
<h3><a name="l512"></a>512 - Disp Scroll Floor Texture</h3>
<p>Displacement scrolling version of <a href="#l510">510</a>.</p>
<h3><a name="l513"></a>513 - Scroll Ceiling Texture</h3>
<p>Linedef length and direction indicate speed and direction.</p>
<h3><a name="l514"></a>514 - Acc Scroll Ceiling Texture</h3>
<p>Accelerative scrolling version of <a href="#l513">513</a>.</p>
<h3><a name="l515"></a>515 - Disp Scroll Ceiling Texture</h3>
<p>Displacement scrolling version of <a href="#l513">513</a>.</p>
<hr>
<h3><a name="l520"></a>520 - Carry Objects on Floor</h3>
<p>Like linedef type <a href="#l530">530</a>, without scrolling the floor texture, so the
floor doesn't look like it's moving.</p>
<h3><a name="l521"></a>521 - Acc Carry Objects on Floor</h3>
<p>Accelerative scrolling version of <a href="#l520">520</a>.</p>
<h3><a name="l522"></a>522 - Disp Carry Objects on Floor</h3>
<p>Displacement scrolling version of <a href="#l520">520</a>.</p>
<h3><a name="l523"></a>523 - Carry Objects on Ceiling</h3>
<p>For FOF conveyor belts. Like <a href="#l533">533</a>, except without the scrolling to
accompany it.</p>
<h3><a name="l524"></a>524 - Acc Carry Objects on Ceiling</h3>
<p>Accelerative scrolling version of <a href="#l523">523</a>. Untested.</p>
<h3><a name="l525"></a>525 - Disp Carry Objects on Ceiling</h3>
<p>Displacement scrolling version of <a href="#l523">523</a>. Untested.</p>
<hr>
<h3><a name="l530"></a>530 - Scroll Floor Texture and Carry Objects</h3>
<p>Used for conveyor belts, in conjunction with sector type <a href="#s1024">1024</a>
(Conveyor Belt). Linedef length and direction indicate conveyor speed and direction,
respectively. This can also be used to convey items on the underneath of a FOF. See Egg
Rock Zone for an example.</p>
<h3><a name="l531"></a>531 - Acc Scroll Floor Texture and Carry Objects</h3>
<p>Accelerative scrolling version of <a href="#l530">530</a>.</p>
<h3><a name="l532"></a>532 - Disp Scroll Floor Texture and Carry Objects</h3>
<p>Displacement scrolling version of <a href="#l530">530</a>.</p>
<h3><a name="l533"></a>533 - Scroll Ceiling Texture and Carry Objects</h3>
<p>For conveyor belts on the top of FOFs, or for conveying items on a ceiling. Tag this to
the FOF control sector and give the FOF control sector a type of <a href="#s1024">1024</a>,
Conveyor Belt. For realism you might also want to scroll the control sector's floor
texture in the opposite direction (see linetype <a href="#l510">510</a>).</p>
<h3><a name="l534"></a>534 - Acc Scroll Ceiling Texture and Carry Objects</h3>
<p>Accelerative scrolling version of <a href="#l533">533</a>. Untested.</p>
<h3><a name="l535"></a>535 - Disp Scroll Ceiling Texture and Carry Objects</h3>
<p>Displacement scrolling version of <a href="#l533">533</a>. Untested.</p>
<hr>
<h3><a name="l540"></a>540 - Friction</h3>
<p>Linedef lengths greater than 100 indicate slippery ice, while linedef lengths less than
100 can be used for sludge, with extra friction.</p>
<p>If you want friction on a FOF, tag this line to the control sector of the FOF.
Otherwise, tag it to the sector of desired destination.</p>
<h3><a name="l541"></a>541 - Wind</h3>
<p>Speed and direction are indicated by linedef length and direction. The target sector
should be of type <a href="#s512">512</a>, Wind/Current. If being used in a 3D Floor, put
the 512/768 sector type in the control sector, not the target sector. Also tag the line to
the control sector, and not the target sector.</p>
<p>Special flags:</p>
<p><a href="#NOCLIMB">NOCLIMB</a> -&gt; Only this pusher will affect the object - the
object can't have multiple 'pushings' due to being on the edge of a sector, etc.</p>
<p><a href="#EFFECT4">EFFECT4</a> -&gt; Player will go into slide with limited control
(similar to the water and oil slides in Labyrinth and Oil Ocean).</p>
<h3><a name="l542"></a>542 - Upwards Wind</h3>
<p>The length of the linedef is the wind speed. The target sector will need type <a
href="#s512">512</a> or <a href="#s768">768</a>. If being used in a 3D Floor, put the
512/768 sector type in the control sector, not the target sector. Also tag the line to the
control sector, and not the target sector.</p>
<p>NOCLIMB/EFFECT4 flags operate the same as for line <a href="#l541">541</a>.</p>
<h3><a name="l543"></a>543 - Downwards Wind</h3>
<p>Wind speed is determined by the linedef's length. Type <a href="#s512">512</a> or <a
href="#s768">768</a> must be applied to the target sector. If being used in a 3D Floor,
put the 512/768 sector type in the control sector, not the target sector. Also tag the
line to the control sector, and not the target sector.</p>
<p>NOCLIMB/EFFECT4 flags operate the same as for line <a href="#l541">541</a>.</p>
<h3><a name="l544"></a>544 - Current</h3>
<p>Speed and direction are indicated by linedef length and direction. The target sector
should have type <a href="#s512">512</a>, Wind/Current. If being used in a 3D Floor, put
the 512/768 sector type in the control sector, not the target sector. Also tag the line to
the control sector, and not the target sector.</p>
<p>NOCLIMB/EFFECT4 flags operate the same as for line <a href="#l541">541</a>.</p>
<h3><a name="l545"></a>545 - Upwards Current</h3>
<p>Linedef length indicates speed. Target sector needs sector type <a href="#s512">512</a>
or <a href="#s768">768</a>. If being used in a 3D Floor, put the 512/768 sector type in
the control sector, not the target sector. Also tag the line to the control sector, and
not the target sector.</p>
<p>NOCLIMB/EFFECT4 flags operate the same as for line <a href="#l541">541</a>.</p>
<h3><a name="l546"></a>546 - Downwards Current</h3>
<p>Speed is indicated by linedef length. Assign a type of <a href="#s512">512</a> or <a
href="#s768">768</a> to the target sector. If being used in a 3D Floor, put the 512/768
sector type in the control sector, not the target sector. Also tag the line to the control
sector, and not the target sector.</p>
<p>NOCLIMB/EFFECT4 flags operate the same as for line <a href="#l541">541</a>.</p>
<h3><a name="l547"></a>547 - Boom Push/Pull Thing</h3>
<p>Creates a &quot;point pusher,&quot; or a point that pushes you away or pulls you toward
it if you get close enough. Tag the linedef to a sector with type <a href="#s512">512</a>,
Wind/Current, and with a thing on it of type 5001 (push) or 5002 (pull). The control
linedef's length indicates pushing/pulling strength; if length is L, the effect fades away
to nothing when you are 2L away from the point.</p>
<p>If you want to create multiple point pushers/pullers, you'll need to have them in
different target sectors, but they can share the same tag.</p>
<p>NOCLIMB/EFFECT4 flags operate the same as for line <a href="#l541">541</a>.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Lighting</big></big></u><ol>
<h3><a name="l600"></a>600 - Floor Lighting</h3>
<p>Sets the lighting for the floor only. The control sector's light value will be used for
the target sector's floor. Also see type <a href="#l601">601</a>.</p>
<h3><a name="l601"></a>601 - Ceiling Lighting</h3>
<p>Sets the lighting of the ceiling only. The light value of the control sector will be
used for the target sector's ceiling. Also see type <a href="#l600">600</a>.</p>
<h3><a name="l602"></a>602 - Adjustable Pulsating Light</h3>
<p>Linedef length indicates glow speed. The normal speed would be a linedef 32 units long.</p>
<p>The control sector (the linedef's front sector) is used to get what will be the minimum
light level for this effect, while the target sector's light level ends up being the
maximum.</p>
<h3><a name="l603"></a>603 - Adjustable Flickering Light</h3>
<p>Linedef length indicates flicker speed. Normal speed would be a 16 fracunit long
linedef. A longer linedef means more time in between flickers.</p>
<p>The control sector (the linedef's front sector) is used to get what will be the minimum
light level for this effect, while the target sector's light level ends up being the
maximum.</p>
<h3><a name="l604"></a>604 - Adjustable Blinking Light (unsynchronized)</h3>
<p>Line's X length is time for the light to be off, and Y length is the time for the light
to be on.</p>
<p>The control sector (the linedef's front sector) is used to get what will be the minimum
light level for this effect, while the target sector's light level ends up being the
maximum.</p>
<h3><a name="l605"></a>605 - Adjustable Blinking Light (synchronized)</h3>
<p>Line's X length is time for the light to be off, and Y length is the time for the light
to be on.</p>
<p>The control sector (the linedef's front sector) is used to get what will be the minimum
light level for this effect, while the target sector's light level ends up being the
maximum.</p>
<h3><a name="l606"></a>606 - Colormap</h3>
<p>Sets a colormap. Tag the linedef to the sector or sectors affected by the colormap. The
control linedef's front Above texture is used to determine the colormap. The format is
#rrggbba, where rr, gg, and bb are two hexadecimal digits for determining each color: red,
blue, and green. The a stands for alpha, and is a number or letter indicating the
translucency; from A-Z and 0-9, with A being most transparent and 9 being most opaque.</p>
<p>It does not generally matter what sector the colormap linedef belongs to. However, it
should not belong to the same sector as another colormap, as this can cause problems.</p>
</ol>
</li>
<h1><a name="sectortypes"></a>Sector Types</h1>
<p>You can apply up to four different types to one sector, provided that you only choose
ONE from EACH category. Add the numbers together to obtain the final value to use in level
editors.</p>
<li><u><big><big>Section 1</big></big></u><ol>
<h3><a name="s1"></a>1 - Damage (Generic)</h3>
<p>This special hurts, period. It doesn't matter whether you have a liquid shield, fire
shield, attraction shield, or whatever else; step on one of these and suffer.</p>
<h3><a name="s2"></a>2 - Damage (Water)</h3>
<p>Also known as Slime Hurt. Stepping here will be painful, as in shield/ring/life loss
(depending on how you are equipped), unless you happen to have the liquid shield.</p>
<h3><a name="s3"></a>3 - Damage (Fire)</h3>
<p>Stepping here will hurt, unless you happen to have a fire shield.</p>
<h3><a name="s4"></a>4 - Damage (Electrical)</h3>
<p>Hurts players whenever they're in the sector, unless they have the attraction shield.</p>
<p>Usage tip: Give the sector a floor flat that looks electrical and looks like it could
hurt you. </p>
<h3><a name="s5"></a>5 - Spikes</h3>
<p>Making spikes using sectors is rather tedious and difficult. You can use things instead
(<a href="#t523">Floor Spike</a> and <a href="#t522">Ceiling Spike</a>). But the sector
version DOES look cooler. ;)</p>
<h3><a name="s6"></a>6 - Death Pit (Camera Modifications)</h3>
<p>Used for bottomless pits. You'll probably want the sector's floor flat to be either
F_SKY1 (falling from the sky) or PIT (falling into a pit of complete blackness). The
camera modifications keep the camera from following you all the way down, for a Sonic
Adventure-style pit death. If you don't like the camera modifications, use sector type <a
href="#s7">5</a>.</p>
<h3><a name="s7"></a>7 - Death Pit (No Camera Modifications)</h3>
<p>For bottomless pits. Use if the camera modifications of sector type <a href="#s6">6</a>
are not to your taste.</p>
<h3><a name="s8"></a>8 - Instant Kill</h3>
<p>Die right away if you even step into this sector. No need to touch the floor as with
those sissy death pits.</p>
<h3><a name="s9"></a>9 - Ring Drainer (Floor Touch)</h3>
<p>Lose one ring per 15 tics while touching the floor.</p>
<h3><a name="s10"></a>10 - Ring Drainer (No Floor Touch)</h3>
<p>Like sector type <a href="#s9">9</a>, but doesn't require touching floor.</p>
<h3><a name="s11"></a>11 - Special Stage Damage</h3>
<p>If you have rings and no shield, and you step on it, you only lose 10 rings, maximum.
It's just like the special stages!</p>
<h3><a name="s12"></a>12 - Space Countdown</h3>
<p>In space, you have no chance to survive make your time, ha ha ha. Starts an immediate
five-second countdown, like when you drown.</p>
<h3><a name="s13"></a>13 - Ramp Sector</h3>
<p>Doubles the step-up height of the player. Default step-up height is 24 fracunits, but
with this, it becomes 48. Useful for steps and other things if your players seem to be
getting 'stopped' by the stairs while moving quickly.</p>
<h3><a name="s14"></a>14 - Non-Ramp Sector (Don't step down)</h3>
<p>Removes the 'step-down' that a player will normally do when moving to a nearby sector.</p>
<h3><a name="s15"></a>15 - Bouncy Sector (FOF Control Only)</h3>
<p>Use this on a 3D floor's control sector to make it bouncy. Players will bounce off the
top of it. If the 3D floor's control line has the BOUNCY flag set, the linedef length sets
the minimum bounce force. Otherwise, you will slowly come to a stop.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big><a name="sCat2"></a>Section 2</big></big></u><ol>
<h3><a name="s16"></a>16 - Trigger Linedef Executor (Pushable Objects)</h3>
<p>Works like <a href="#s80">80</a> but with a pushable object (gargoyle or snowman)
touching the floor rather than a player.</p>
<h3><a name="s32"></a>32 - Trigger Linedef Executor (Anywhere in Sector) (All Players)</h3>
<p>Sector type <a href="#s64">64</a> with the added requirement that all players who don't
have a game over need to be in the sector, not just one player. Currently does not work in
FOFs.</p>
<h3><a name="s48"></a>48 - Trigger Linedef Executor (Floor Touch) (All Players)</h3>
<p>Sector type <a href="#s80">80</a> with the added requirement that all players who don't
have a game over need to be in the sector, not just one player.</p>
<h3><a name="s64"></a>64 - Trigger Linedef Executor (Anywhere in Sector)</h3>
<p>Like sector type <a href="#s80">80</a>, but you don't have to be touching the floor to
do the triggering. You could be flying high in the air. You should also use this one for
linedef executors triggered by FOFs.</p>
<h3><a name="s80"></a>80 - Trigger Linedef Executor (Floor Touch)</h3>
<p>Required for any of the <a href="#ltriggers">Linedef Executor Triggers</a> to work in
the sector.</p>
<h3><a name="s96"></a>96 - Trigger Linedef Executor (Emerald Check)</h3>
<p>Sector type <a href="#s64">64</a> which will only execute if you have all 7 chaos
emeralds.</p>
<h3><a name="s112"></a>112 - Trigger Linedef Executor (NiGHTS Mare)</h3>
<p>Like sector type <a href="#s64">64</a>, but this is only triggered if you are in a
NiGHTS map, and checks what mare you're on using the following format, depending on what
flags you have set for this line:</p>
<p>No flags -&gt; Runs if (current mare = line length)</p>
<p><a href="#NOCLIMB">NOCLIMB</a> -&gt; Runs if (current mare &lt;= line length)</p>
<p><a href="#BLOCKMONSTERS">BLOCKMONSTERS</a> -&gt; Runs if (current mare &gt;= line
length)</p>
<h3><a name="s128"></a>128 - Check for linedef executor on 3D Floors (ANY object)</h3>
<p>For any item to detect sector type <a href="#l16">16</a> on a 3D floor, the target
sector on the map must have this type. This allows you to have any kind of object trigger
a linedef executor.</p>
<h3><a name="s144"></a>144 - Egg Trap Capsule</h3>
<h3><a name="s160"></a>160 - Special Stage Time/Rings, Par</h3>
<p>For special stages, floor height is time limit in seconds, and ceiling height is rings
required in seconds. If the ceiling height is 0, there is no ring requirement, only a time
limit to find an exit.</p>
<h3><a name="s176"></a>176 - Custom Global Gravity</h3>
<p>Floor height sets global gravity. 500 is normal. 1000 is twice the normal gravity, 250
is half. You can also set per-sector gravity with linetype <a href="#l1">1</a>. This can
also be adjusted in realtime, for some really cool effects.</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Section 3</big></big></u><ol>
<h3><a name="s256"></a>256 - Ice/Sludge</h3>
<p>See linedef type <a href="#l540">540</a>.</p>
<h3><a name="s512"></a>512 - Wind/Current</h3>
<p>See linedef types <a href="#l541">541</a> and <a href="#l544">544</a>.</p>
<h3><a name="s768"></a>768 - Ice/Sludge and Wind/Current</h3>
<p>Combination of sector specials 256 and 512.</p>
<h3><a name="s1024"></a>1024 - Conveyor Belt</h3>
<p>See linedef type <a href="#l520">520</a>.</p>
<h3><a name="s1280"></a>1280 - Speed Pad (No Spin)</h3>
<p>See linedef type <a href="#l4">4</a>.</p>
<h3><a name="s1536"></a>1536 - Speed Pad (Spin)</h3>
<p>See linedef type <a href="#l4">4</a>. This type of speed pad forces you into a spin.</p>
<h3><a name="s1792"></a>1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584, 3840 - Bustable
Block Sprite Parameter</h3>
<p>Used in a control sector of a bustable block. Chooses which debris sprite to spawn.</p>
<p>1792 = ROIA</p>
<p>2048 = ROIB</p>
<p>2304 = ROIC</p>
<p>2560 = ROID</p>
<p>2816 = ROIE</p>
<p>3072 = ROIF</p>
<p>3328 = ROIG</p>
<p>3584 = ROIH</p>
<p>3840 = ROII</p>
<p>&nbsp;</p>
</ol>
</li>
<li><u><big><big>Section 4</big></big></u><ol>
<h3><a name="s4096"></a>4096 - Starpost Activator</h3>
<p>Whenever a player steps in the sector, a starpost in that sector will be searched for
and, if found, activated.</p>
<h3><a name="s8192"></a>8192 - Special Stage Goal</h3>
<p>This is like the &quot;GOAL&quot; buttons in Sonic 1's special stages. Ends the special
stage when stepped on.</p>
<h3><a name="s8192a"></a>8192 - Exit Sector</h3>
<p>In single-player, cooperative, or race mode, being in this sector ends the level. You
don't necessarily have to be touching the floor. (If you want the player to have to be
touching the floor, you can use linedef type <a href="#l223">223</a>, an invisible,
intangible FOF, to do the trick. Give the FOF control sector a type of <a href="#s8192">8192</a>.)</p>
<p>See linedef type <a href="#l2">2</a> for a way to exit to any map, not just the one
whose number is specified in the map header. Linedef 2 also allows you to skip the score
tally screen.</p>
<h3><a name="s8192b"></a>8192 - No Tag Zone</h3>
<p>In games of tag, this sector is a safe spot. You cannot be tagged while in it.</p>
<h3><a name="s8192c"></a>8192 - CTF: Flag Return</h3>
<p>In CTF, if the red or blue flag enters this sector, it will automatically return to
base, much like how it behaves when it falls in a pit. This can also be set as a special
on a 3D floor.</p>
<h3><a name="s12288"></a>12288 - CTF: Red Team Base</h3>
<p>The red team has to bring the <a href="#t307">blue flag</a> onto this sector to score.
It's generally a good idea to have the <a href="#t306">red flag</a> here and the <a
href="#t34">red team player starts</a> somewhere close by.</p>
<h3><a name="s16384"></a>16384 - CTF: Blue Team Base</h3>
<p>The blue team has to bring the <a href="#t306">red flag</a> onto this sector to score.
It's generally a good idea to have the <a href="#t307">blue flag</a> here and the <a
href="#t35">blue team player starts</a> somewhere close by.</p>
<h3><a name="s20480"></a>20480 - Fan Sector</h3>
<p>Acts like a fan, pushing the player up at constant speed and activating the proper
animation. Can be used on intangible FOFs.</p>
<h3><a name="s24576"></a>24576 - Super Sonic Transform</h3>
<p>Transforms you into Super Sonic and gives you 50 rings, providing you have all of the
chaos emeralds.</p>
<h3><a name="s28672"></a>28672 - Spinner</h3>
<p>Forces the player into a spin.</p>
<h3><a name="s32768"></a>32768 - Zoom Tube Start</h3>
<p>When the player touches this sector, a line type <a href="#l3">3</a> with the same tag
as the sector is searched for, and if found, the line's X length determines the speed at
which the tube operates, while its Y length determines which zoom tube sequence to use.
Then the player is immediately put into a spin, loses control, and gravitates toward the
first Zoom Tube Waypoint (thing type <a href="#t753">753</a>), which does not have to be
in the same sector. Once they reach the first waypoint, they begin traveling to the 2nd,
3rd, and so on, until the last waypoint is reached.</p>
<p>This can be used with Floor-Over-Floors, just use these specials in the control sector
instead. </p>
<h3><a name="s36864"></a>36864 - Zoom Tube End</h3>
<p>Just like sector type <a href="#s32768">32768</a>, but starts from the last waypoint
and goes to the first.</p>
<h3><a name="s40960"></a>40960 - Finish Line</h3>
<p>The finish line for a race circuit. This increments a lap when you pass it, after
hitting all the star posts in the stage in sequential order. Once the number of laps
specified by the server is reached, the level is completed.</p>
</ol>
</li>
</ul>
</body>
</html>
===============================================================================
Universal Doom Map Format Sonic Robo Blast 2 extensions v1.0 19.06.2024
Copyright (c) 2024 Sonic Team Junior
uses Universal Doom Map Format Specification v1.1 as a template,
original document Copyright (c) 2009 James Haley.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
===============================================================================
This document discusses the UDMF implementation found in Sonic Robo Blast 2's engine.
=======================================
I. Grammar / Syntax
=======================================
No changes.
=======================================
II. Implementation Semantics
=======================================
------------------------------------
II.A : Storage and Retrieval of Data
------------------------------------
No changes.
-----------------------------------
II.B : Storage Within Archive Files
-----------------------------------
No changes.
--------------------------------
II.C : Implementation Dependence
--------------------------------
The SRB2 engine only supports the following namespace:
"srb2"
The engine is allowed to refuse maps with an unsupported namespace,
or emit a warning.
=======================================
III. Standardized Fields
=======================================
The SRB2 engine ignores any user-defined fields.
All boolean fields default to false unless mentioned otherwise.
Sonic Robo Blast 2 defines the following standardized fields:
vertex
{
x = <float>; // X coordinate. No valid default.
y = <float>; // Y coordinate. No valid default.
zfloor = <float>; // Floor height at this vertex. Only applies to triangular sectors
zceiling = <float>; // Ceiling height at this vertex. Only applies to triangular sectors
}
linedef
{
id = <integer>; // ID of line. Interpreted as tag.
moreids = <string>; // Additional line IDs, specified as a space separated list of numbers (e.g. "2 666 1003 4505")
v1 = <integer>; // Index of first vertex. No valid default.
v2 = <integer>; // Index of second vertex. No valid default.
blocking = <bool>; // Line blocks things.
blockmonsters = <bool>; // Line blocks enemies.
twosided = <bool>; // Line is 2S.
dontpegtop = <bool>; // Upper texture unpegged.
dontpegbottom = <bool>; // Lower texture unpegged.
skewtd = <bool>; // Upper and lower textures are skewed.
noclimb = <bool>; // Line is not climbable.
noskew = <bool>; // Middle texture is not skewed.
midpeg = <bool>; // Middle texture is pegged.
midsolid = <bool>; // Middle texture is solid.
wrapmidtex = <bool>; // Line's mid textures are wrapped.
nonet = <bool>; // Special only takes effect in singleplayer games.
netonly = <bool>; // Special only takes effect in multiplayer games.
bouncy = <bool>; // Line is bouncy.
transfer = <bool>; // In 3D floor sides, uses the sidedef properties of the control sector.
alpha = <float>; // Translucency of this line. Default is 1.0
renderstyle = <string>; // Render style. Can be:
// - "translucent"
// - "add"
// - "subtract"
// - "reversesubtract"
// - "modulate"
// - "fog"
// Default is "translucent".
special = <integer>; // Linedef action. Default = 0.
arg0 = <integer>; // Argument 0. Default = 0.
arg1 = <integer>; // Argument 1. Default = 0.
arg2 = <integer>; // Argument 2. Default = 0.
arg3 = <integer>; // Argument 3. Default = 0.
arg4 = <integer>; // Argument 4. Default = 0.
arg5 = <integer>; // Argument 5. Default = 0.
arg6 = <integer>; // Argument 6. Default = 0.
arg7 = <integer>; // Argument 7. Default = 0.
arg8 = <integer>; // Argument 8. Default = 0.
arg9 = <integer>; // Argument 9. Default = 0.
stringarg0 = <string>; // String argument 0.
stringarg1 = <string>; // String argument 1.
sidefront = <integer>; // Sidedef 1 index. No valid default.
sideback = <integer>; // Sidedef 2 index. Default = -1.
comment = <string>; // A comment. Implementors should attach no special
// semantic meaning to this field.
}
sidedef
{
offsetx = <integer>; // X offset. Default = 0.
offsety = <integer>; // Y offset. Default = 0.
texturetop = <string>; // Upper texture. Default = "-".
texturebottom = <string>; // Lower texture. Default = "-".
texturemiddle = <string>; // Middle texture. Default = "-".
repeatcnt = <integer>; // Number of middle texture repetitions. Default = 0.
sector = <integer>; // Sector index. No valid default.
scalex_top = <float>; // X scale for upper texture. Default = 1.0.
scaley_top = <float>; // Y scale for upper texture. Default = 1.0.
scalex_mid = <float>; // X scale for mid texture. Default = 1.0.
scaley_mid = <float>; // Y scale for mid texture. Default = 1.0.
scalex_bottom = <float>; // X scale for lower texture. Default = 1.0.
scaley_bottom = <float>; // Y scale for lower texture. Default = 1.0.
offsetx_top = <float>; // X offset for upper texture. Default = 0.0.
offsety_top = <float>; // Y offset for upper texture. Default = 0.0.
offsetx_mid = <float>; // X offset for mid texture. Default = 0.0.
offsety_mid = <float>; // Y offset for mid texture. Default = 0.0.
offsetx_bottom = <float>; // X offset for lower texture. Default = 0.0.
offsety_bottom = <float>; // Y offset for lower texture. Default = 0.0.
light = <integer>; // Light level, relative to 'sector' light level. Default = 0.
lightabsolute = <bool>; // true = 'light' is an absolute value, ignoring 'sector' light level.
comment = <string>; // A comment. Implementors should attach no special
// semantic meaning to this field.
}
sector
{
heightfloor = <integer>; // Floor height. Default = 0.
heightceiling = <integer>; // Ceiling height. Default = 0.
texturefloor = <string>; // Floor flat. No valid default.
textureceiling = <string>; // Ceiling flat. No valid default.
lightlevel = <integer>; // Light level. Default = 255.
lightfloor = <integer>; // The floor's light level. Default is 0.
lightceiling = <integer>; // The ceiling's light level. Default is 0.
lightfloorabsolute = <bool>; // true = 'lightfloor' is an absolute value. Default is
// relative to the owning sector's light level.
lightceilingabsolute = <bool>; // true = 'lightceiling' is an absolute value. Default is
// relative to the owning sector's light level.
special = <integer>; // Sector special. Default = 0.
id = <integer>; // Sector tag/id. Default = 0.
moreids = <string>; // Additional sector IDs/tags, specified as a space separated list of numbers (e.g. "2 666 1003 4505")
xpanningfloor = <float>; // X texture offset of floor texture. Default = 0.0.
ypanningfloor = <float>; // Y texture offset of floor texture. Default = 0.0.
xpanningceiling = <float>; // X texture offset of ceiling texture. Default = 0.0.
ypanningceiling = <float>; // Y texture offset of ceiling texture. Default = 0.0.
xscalefloor = <float>; // X texture scale of floor texture. Default = 1.0.
yscalefloor = <float>; // Y texture scale of floor texture. Default = 1.0.
xscaleceiling = <float>; // X texture scale of ceiling texture. Default = 1.0.
yscaleceiling = <float>; // Y texture scale of ceiling texture. Default = 1.0.
rotationfloor = <float>; // Rotation of floor texture in degrees. Default = 0.0.
rotationceiling = <float>; // Rotation of ceiling texture in degrees. Default = 0.0.
ceilingplane_a = <float>; // Define the plane equation for the sector's ceiling. Default is a horizontal plane at 'heightceiling'.
ceilingplane_b = <float>; // 'heightceiling' will still be used to calculate texture alignment.
ceilingplane_c = <float>; // The plane equation will only be used if all 4 values are given.
ceilingplane_d = <float>; // The plane is defined as a*x + b*y + c*z + d = 0 with the normal vector pointing downward.
floorplane_a = <float>; // Define the plane equation for the sector's floor. Default is a horizontal plane at 'heightfloor'.
floorplane_b = <float>; // 'heightfloor' will still be used to calculate texture alignment.
floorplane_c = <float>; // The plane equation will only be used if all 4 values are given.
floorplane_d = <float>; // The plane is defined as a*x + b*y + c*z + d = 0 with the normal vector pointing upward.
lightcolor = <integer>; // Sector's light color as RRGGBB value. Default = 0x000000.
lightalpha = <integer>; // Sector's light opacity. Default = 25.
fadecolor = <integer>; // Sector's fog color as RRGGBB value. Default = 0x000000.
fadealpha = <integer>; // Sector's fog opacity. Default = 25.
fadestart = <integer>; // Sector's fading range start. Default = 0.
fadeend = <integer>; // Sector's fading range end. Default = 31.
colormapfog = <bool>; // Sector's colormap uses fog lighting.
colormapfadesprites = <bool>; // Sector's colormap affects full-bright sprites.
colormapprotected = <bool>; // Sector's colormap is not affected by colormap change specials.
flipspecial_nofloor = <bool>; // Trigger effects that require a plane touch are not executed when the floor is touched.
flipspecial_ceiling = <bool>; // Trigger effects that require a plane touch are executed when the ceiling is touched.
triggerspecial_touch = <bool>; // Trigger effects are executed anywhere in the sector.
triggerspecial_headbump = <bool>; // Trigger effects are executed if the top of the triggerer object touches a plane.
triggerline_plane = <bool>; // Trigger effects require a plane touch to be executed.
triggerline_mobj = <bool>; // Trigger effects can be executed by non-pushable objects.
invertprecip = <bool>; // Inverts the precipitation effect; if the sector is considered to be indoors,
// precipitation is generated, and if the sector is considered to be outdoors,
// precipitation is not generated.
gravityflip = <bool>; // Sector flips any objects in it, if the sector has negative gravity.
heatwave = <bool>; // Sector has the heat wave effect.
noclipcamera = <bool>; // Sector is not tangible to the camera.
outerspace = <bool>; // Sector has the space countdown effect.
doublestepup = <bool>; // Sector has half the vertical height needed for objects to walk into it.
nostepdown = <bool>; // Sector has the staircase effect disabled.
speedpad = <bool>; // Sector is a speed pad.
starpostactivator = <bool>; // Sector activates any Star Posts in it when walked into by a plyer.
exit = <bool>; // Sector is an exit sector.
specialstagepit = <bool>; // Sector is a Special Stage pit.
returnflag = <bool>; // Sector returns any Capture the Flag flags that come in contact with it to their respective bases.
redteambase = <bool>; // Sector is a Red Team base.
blueteambase = <bool>; // Sector is Blue Team base.
fan = <bool>; // Sector is a fan sector.
supertransform = <bool>; // Sector transforms any players that come in contact with it into their 'super' mode.
forcespin = <bool>; // Sector forces any players that come in contact with it to roll.
zoomtubestart = <bool>; // Sector is the starting point of a zoom tube path.
zoomtubeend = <bool>; // Sector is the ending point of a zoom tube path.
finishline = <bool>; // Sector is a Circuit finish line.
ropehang = <bool>; // Sector is a rope hang. Must be applied to a 3D floor.
jumpflip = <bool>; // Sector flips the gravity of players who jump from it.
gravityoverride = <bool>; // Reverse gravity effect is only applied when an object is in the sector.
nophysics_floor = <bool>; // Disables floor slope physics if created through a plane equation.
nophysics_ceiling = <bool>; // Disables ceiling slope physics if created through a plane equation.
friction = <float>; // Sector's friction factor.
gravity = <float>; // Sector's gravity. Default is 1.0.
damagetype = <integer>; // Damage type for sector damage. Can be:
// - "None"
// - "Generic"
// - "Water"
// - "Fire"
// - "Lava"
// - "Electric"
// - "Spike"
// - "DeathPitTilt"
// - "DeathPitNoTilt"
// - "Instakill"
// - "SpecialStage"
// Default = "None".
triggertag = <integer>; // Tag to trigger when this sector is entered. Default = 0.
triggerer = <string>; // Who can execute the trigger tag when this sector is entered. Can be:
// - "Player"
// - "AllPlayers"
// - "Mobj"
// Default = "Player".
comment = <string>; // A comment. Implementors should attach no special
// semantic meaning to this field.
}
thing
{
id = <integer>; // Thing ID. Default = 0.
moreids = <string>; // Additional thing IDs, specified as a space separated list of numbers (e.g. "2 666 1003 4505")
x = <float>; // X coordinate. No valid default.
y = <float>; // Y coordinate. No valid default.
height = <float>; // Z height relative to floor.
// Relative to ceiling if flip = true.
// Absolute if absolutez = true.
// Default = 0.
angle = <integer>; // Map angle of thing in degrees. Default = 0 (East).
pitch = <integer>; // Pitch of thing in degrees. Default = 0 (horizontal).
roll = <integer>; // Roll of thing in degrees. Default = 0.
scalex = <float>; // Horizontal visual scaling on thing. Default = 1.0.
scaley = <float>; // Vertical visual scaling on thing. Default = 1.0.
scale = <float>; // Vertical and horizontal visual scaling on thing. Default = 1.0.
mobjscale = <float>; // Physical scale of the thing. Default = 1.0.
type = <integer>; // Thing type. No valid default.
flip = <bool>; // Thing spawns flipped, on the ceiling.
absolutez = <bool>; // If true, the thing height is absolute, instead of being relative to the floor or ceiling.
arg0 = <integer>; // Argument 0. Default = 0.
arg1 = <integer>; // Argument 1. Default = 0.
arg2 = <integer>; // Argument 2. Default = 0.
arg3 = <integer>; // Argument 3. Default = 0.
arg4 = <integer>; // Argument 4. Default = 0.
arg5 = <integer>; // Argument 5. Default = 0.
arg6 = <integer>; // Argument 6. Default = 0.
arg7 = <integer>; // Argument 7. Default = 0.
arg8 = <integer>; // Argument 8. Default = 0.
arg9 = <integer>; // Argument 9. Default = 0.
stringarg0 = <string>; // String argument 0.
stringarg1 = <string>; // String argument 1.
comment = <string>; // A comment. Implementors should attach no special
// semantic meaning to this field.
}
=======================================
Changelog
=======================================
1.0: 19.02.2024
Initial version.
===============================================================================
EOF
===============================================================================
\ No newline at end of file
......@@ -41,7 +41,7 @@ linetagindicatesectors = true;
// The format interface handles the map data format - DoomMapSetIO for SRB2DB2, SRB2MapSetIO for Zone Builder
formatinterface = "SRB2MapSetIO";
//Maximum safe map size check (0 means skip check)
safeboundary = 0;
......@@ -502,7 +502,7 @@ gen_sectortypes
{
0 = "Normal";
512 = "Wind/Current <deprecated>";
1024 = "Conveyor Belt <deprecated>";
1024 = "Conveyor Belt <deprecated>";
1280 = "Speed Pad";
1536 = "Flip Gravity on Jump";
}
......@@ -3730,7 +3730,7 @@ thingtypes
3328 = "3D Mode Start";
}
starts
{
color = 1; // Blue
......@@ -4367,7 +4367,6 @@ thingtypes
{
color = 14; // Yellow
title = "Rings and Weapon Panels";
width = 24;
height = 24;
flags8height = 24;
flags8text = "[8] Float";
......@@ -4377,7 +4376,6 @@ thingtypes
{
title = "Ring";
sprite = "RINGA0";
width = 16;
}
301
{
......@@ -4393,6 +4391,7 @@ thingtypes
{
title = "Infinity Ring";
sprite = "RNGIA0";
width = 24;
}
304
{
......@@ -4418,43 +4417,53 @@ thingtypes
{
title = "CTF Team Ring (Red)";
sprite = "internal:TRNGA0R";
width = 16;
}
309
{
title = "CTF Team Ring (Blue)";
sprite = "internal:TRNGA0B";
width = 16;
}
330
{
title = "Bounce Ring Panel";
sprite = "PIKBA0";
width = 24;
height = 40;
}
331
{
title = "Rail Ring Panel";
sprite = "PIKRA0";
width = 24;
height = 40;
}
332
{
title = "Automatic Ring Panel";
sprite = "PIKAA0";
width = 24;
height = 40;
}
333
{
title = "Explosion Ring Panel";
sprite = "PIKEA0";
width = 24;
height = 40;
}
334
{
title = "Scatter Ring Panel";
sprite = "PIKSA0";
width = 24;
height = 40;
}
335
{
title = "Grenade Ring Panel";
sprite = "PIKGA0";
width = 24;
height = 40;
}
}
......@@ -4463,7 +4472,7 @@ thingtypes
color = 10; // Light Green
title = "Other Collectibles";
width = 16;
height = 32;
height = 24;
sort = 1;
sprite = "CEMGA0";
......@@ -4529,6 +4538,7 @@ thingtypes
{
title = "Emerald Hunt Location";
sprite = "SHRDA0";
height = 32;
flags8height = 24;
flags8text = "[8] Float";
}
......
......@@ -39,8 +39,11 @@ common
defaulttexturescale = 1.0f;
defaultflatscale = 1.0f;
scaledtextureoffsets = true;
scaledflatoffsets = true;
// Colormap/fade related options
maxcolormapalpha = 25;
// TODO: change to 255;
// Thing number for start position in 3D Mode
start3dmode = 3328;
......@@ -93,18 +96,30 @@ mapformat_udmf
{
include("SRB222_misc.cfg", "universalfields");
}
// Disable Doom-related modes that don't make sense for SRB2
soundsupport = false;
automapsupport = false;
// When this is set to true, sectors with the same tag will light up when a line is highlighted
linetagindicatesectors = false;
localsidedeftextureoffsets = false;
distinctfloorandceilingbrightness = true;
// Enables support for individual offsets of upper/middle/lower sidedef textures
localsidedeftextureoffsets = true;
// Enables support for plane equation slopes
planeequationsupport = true;
// Enables support for vertex heights
vertexheightsupport = true;
// Enables setting distinct brightness for floor, ceiling, and walls
distinctfloorandceilingbrightness = true;
distinctwallbrightness = true;
// Enables setting distinct brightness for upper, middle, and lower sidedef parts
distinctsidedefpartbrightness = false;
// Special linedefs
include("SRB222_misc.cfg", "speciallinedefs_udmf");
......@@ -180,4 +195,4 @@ mapformat_udmf
{
include("SRB222_linedefs.cfg", "udmf");
}
}
\ No newline at end of file
}
......@@ -7,13 +7,49 @@ udmf
0
{
title = "None";
prefix = "(0)";
}
6
{
title = "Sector Set Portal";
arg0
{
title = "Target sector tag";
type = 13;
}
arg1
{
title = "Portal type";
type = 11;
enum
{
0 = "Link to portal with same tag";
1 = "Copy portal from second tag";
2 = "Skybox portal";
3 = "Plane portal";
4 = "Horizon portal";
5 = "Copy portal to line";
6 = "Interactive portal (unimplemented)";
7 = "Link to sector with second tag";
8 = "Link to object with second tag";
}
}
arg2
{
title = "Affected planes";
type = 11;
enum = "floorceiling";
}
arg3
{
title = "Misc";
tooltip = "For type 0 portal: specifies whether the line belongs to the sector viewed\nthrough the portal (1) or the sector in which the portal is seen (0).\nFor type 1 portal: specifies the sector tag of the portal to copy.\nFor type 7 portal: specifies the sector tag to make a portal to.\nFor type 8 portal: specifies the object tag to make a portal to.";
}
}
7
{
title = "Sector Flat Alignment";
prefix = "(7)";
arg0
{
title = "Target sector tag";
......@@ -31,7 +67,6 @@ udmf
10
{
title = "Culling Plane";
prefix = "(10)";
arg0
{
title = "Target sector tag";
......@@ -52,19 +87,17 @@ udmf
40
{
title = "Visual Portal Between Tagged Linedefs";
prefix = "(40)";
}
41
{
title = "Horizon Effect";
prefix = "(41)";
id = "srb2_horizonline";
}
63
{
title = "Fake Floor/Ceiling Planes";
prefix = "(63)";
arg0
{
title = "Target sector tag";
......@@ -80,7 +113,6 @@ udmf
2
{
title = "Custom Exit";
prefix = "(2)";
arg0
{
title = "Next map";
......@@ -104,14 +136,15 @@ udmf
3
{
title = "Zoom Tube Parameters";
prefix = "(3)";
arg0
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg1
{
title = "Sequence";
title = "Waypoint sequence";
tooltip = "The sequence number of (zoom tube) waypoints to use.";
}
arg2
{
......@@ -124,10 +157,10 @@ udmf
4
{
title = "Speed Pad Parameters";
prefix = "(4)";
arg0
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg1
{
......@@ -143,13 +176,13 @@ udmf
{
title = "Sound";
type = 2;
tooltip = "Takes a DS constant.\nExample: DSTHOK";
}
}
8
{
title = "Set Camera Collision Planes";
prefix = "(8)";
arg0
{
title = "Target sector tag";
......@@ -160,14 +193,15 @@ udmf
11
{
title = "Rope Hang Parameters";
prefix = "(11)";
arg0
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg1
{
title = "Sequence";
title = "Waypoint sequence";
tooltip = "The sequence number of (zoom tube) waypoints to use.";
}
arg2
{
......@@ -180,14 +214,13 @@ udmf
14
{
title = "Bustable Block Parameters";
prefix = "(14)";
arg0
{
title = "Debris spacing";
}
arg1
{
title = "Debris lifetime";
title = "Debris lifetime (tics)";
}
arg2
{
......@@ -198,6 +231,7 @@ udmf
stringarg0
{
title = "Debris object type";
tooltip = "Uses a MT_ constant.\nExample: MT_ROCKCRUMBLE16\nDefaults to MT_ROCKCRUMBLE1.";
type = 2;
}
}
......@@ -205,13 +239,11 @@ udmf
15
{
title = "Fan Particle Generator Heights";
prefix = "(15)";
}
16
{
title = "Minecart Parameters";
prefix = "(16)";
arg0
{
title = "Order";
......@@ -221,7 +253,6 @@ udmf
64
{
title = "Continuously Appearing/Disappearing FOF";
prefix = "(64)";
arg0
{
title = "Control linedef tag";
......@@ -259,21 +290,21 @@ udmf
20
{
title = "First Line";
prefix = "(20)";
title = "PolyObject First Line";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
{
title = "Parent ID";
title = "Parent PolyObject tag";
type = 14;
}
arg2
{
title = "Translucency";
title = "Translucency level";
tooltip = "Ranges from 0 (fully opaque) to 10 (fully transparent).";
}
arg3
{
......@@ -299,45 +330,45 @@ udmf
30
{
title = "Waving Flag";
prefix = "(30)";
title = "Waving PolyObject Flag";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg2
{
title = "Distance";
tooltip = "How far to move in either direction, in fracunits.";
}
}
31
{
title = "Displacement by Front Sector";
prefix = "(31)";
title = "Move PolyObject by Front Sector Displacement";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
{
title = "Base speed";
tooltip = "How much the front sector displacement translates.\nA value of 256 amounts to a 1:1 translation.";
}
}
32
{
title = "Angular Displacement by Front Sector";
prefix = "(32)";
title = "Rotate PolyObject by Front Sector Displacement";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
......@@ -370,10 +401,10 @@ udmf
52
{
title = "Continuously Falling Sector";
prefix = "(52)";
arg0
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg1
{
......@@ -390,7 +421,6 @@ udmf
53
{
title = "Continuous Plane Mover (Slowdown)";
prefix = "(53)";
arg0
{
title = "Target sector tag";
......@@ -405,10 +435,12 @@ udmf
arg2
{
title = "Forward speed";
tooltip = "In fracunits per tic.";
}
arg3
{
title = "Return speed";
tooltip = "In fracunits per tic.";
}
arg4
{
......@@ -423,7 +455,6 @@ udmf
56
{
title = "Continuous Plane Mover (Constant)";
prefix = "(56)";
arg0
{
title = "Target sector tag";
......@@ -438,10 +469,12 @@ udmf
arg2
{
title = "Forward speed";
tooltip = "In fracunits per tic.";
}
arg3
{
title = "Return speed";
tooltip = "In fracunits per tic.";
}
arg4
{
......@@ -456,7 +489,6 @@ udmf
60
{
title = "Activate Moving Platform";
prefix = "(60)";
arg0
{
title = "Target sector tag";
......@@ -465,10 +497,11 @@ udmf
arg1
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg2
{
title = "Starting delay";
title = "Starting delay (tics)";
}
arg3
{
......@@ -485,7 +518,6 @@ udmf
61
{
title = "Ceiling Crusher";
prefix = "(61)";
arg0
{
title = "Target sector tag";
......@@ -504,17 +536,18 @@ udmf
arg2
{
title = "Crush speed";
tooltip = "In fracunits per tic.";
}
arg3
{
title = "Retract speed";
tooltip = "In fracunits per tic.";
}
}
66
{
title = "Move Planes by Displacement";
prefix = "(66)";
title = "Move Planes by Front Sector Displacement";
arg0
{
title = "Target sector tag";
......@@ -541,7 +574,6 @@ udmf
70
{
title = "Add Raise Thinker";
prefix = "(70)";
arg0
{
title = "Control linedef tag";
......@@ -550,6 +582,7 @@ udmf
arg1
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg2
{
......@@ -566,7 +599,6 @@ udmf
71
{
title = "Add Air Bobbing Thinker";
prefix = "(71)";
arg0
{
title = "Control linedef tag";
......@@ -592,7 +624,6 @@ udmf
72
{
title = "Add Thwomp Thinker";
prefix = "(72)";
arg0
{
title = "Control linedef tag";
......@@ -601,14 +632,17 @@ udmf
arg1
{
title = "Falling speed";
tooltip = "In fracunits per tic.";
}
arg2
{
title = "Rising speed";
tooltip = "In fracunits per tic.";
}
stringarg0
{
title = "Crushing sound";
tooltip = "Takes a DS constant.\nExample: DSTHOK";
type = 2;
}
}
......@@ -616,7 +650,6 @@ udmf
73
{
title = "Add Laser Thinker";
prefix = "(73)";
arg0
{
title = "Control linedef tag";
......@@ -633,7 +666,6 @@ udmf
74
{
title = "Make FOF Bustable";
prefix = "(74)";
arg0
{
title = "Control linedef tag";
......@@ -672,7 +704,6 @@ udmf
75
{
title = "Make FOF Quicksand";
prefix = "(75)";
arg0
{
title = "Control linedef tag";
......@@ -681,6 +712,7 @@ udmf
arg1
{
title = "Sinking speed";
tooltip = "In fracunits per tic.";
}
arg2
{
......@@ -691,7 +723,6 @@ udmf
76
{
title = "Make FOF Bouncy";
prefix = "(76)";
arg0
{
title = "Control linedef tag";
......@@ -711,7 +742,6 @@ udmf
100
{
title = "Solid";
prefix = "(100)";
id = "srb2_fofsolid";
arg0
{
......@@ -722,6 +752,7 @@ udmf
{
title = "Alpha";
default = 255;
tooltip = "Ranges from 0 (fully transparent) to 255 (fully opaque).";
}
arg2
{
......@@ -754,7 +785,6 @@ udmf
120
{
title = "Water";
prefix = "(120)";
id = "srb2_fofwater";
arg0
{
......@@ -765,6 +795,7 @@ udmf
{
title = "Alpha";
default = 128;
tooltip = "Ranges from 0 (fully transparent) to 255 (fully opaque).";
}
arg2
{
......@@ -791,7 +822,6 @@ udmf
150
{
title = "Air Bobbing";
prefix = "(150)";
id = "srb2_fofsolidopaque";
arg0
{
......@@ -818,7 +848,6 @@ udmf
160
{
title = "Water Bobbing";
prefix = "(160)";
id = "srb2_fofsolidopaque";
arg0
{
......@@ -830,7 +859,6 @@ udmf
170
{
title = "Crumbling";
prefix = "(170)";
id = "srb2_fofcrumbling";
arg0
{
......@@ -841,6 +869,7 @@ udmf
{
title = "Alpha";
default = 255;
tooltip = "Ranges from 0 (fully transparent) to 255 (fully opaque).";
}
arg2
{
......@@ -868,11 +897,10 @@ udmf
}
}
}
190
{
title = "Rising";
prefix = "(190)";
id = "srb2_fofsolid";
arg0
{
......@@ -883,6 +911,7 @@ udmf
{
title = "Alpha";
default = 255;
tooltip = "Ranges from 0 (fully transparent) to 255 (fully opaque).";
}
arg2
{
......@@ -913,6 +942,7 @@ udmf
arg5
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg6
{
......@@ -929,7 +959,6 @@ udmf
200
{
title = "Light Block";
prefix = "(200)";
id = "srb2_foflight";
arg0
{
......@@ -947,7 +976,6 @@ udmf
202
{
title = "Fog Block";
prefix = "(202)";
id = "srb2_foffog";
arg0
{
......@@ -959,7 +987,6 @@ udmf
220
{
title = "Intangible";
prefix = "(220)";
id = "srb2_fofintangible";
arg0
{
......@@ -970,6 +997,7 @@ udmf
{
title = "Alpha";
default = 255;
tooltip = "Ranges from 0 (fully transparent) to 255 (fully opaque).";
}
arg2
{
......@@ -996,7 +1024,6 @@ udmf
223
{
title = "Intangible, Invisible";
prefix = "(223)";
id = "srb2_fofintangibleinvisible";
arg0
{
......@@ -1008,7 +1035,6 @@ udmf
250
{
title = "Mario Block";
prefix = "(250)";
id = "srb2_fofsolidopaque";
arg0
{
......@@ -1030,7 +1056,6 @@ udmf
251
{
title = "Thwomp Block";
prefix = "(251)";
id = "srb2_fofsolidopaque";
arg0
{
......@@ -1040,14 +1065,17 @@ udmf
arg1
{
title = "Falling speed";
tooltip = "In fracunits per tic.";
}
arg2
{
title = "Rising speed";
tooltip = "In fracunits per tic.";
}
stringarg0
{
title = "Crushing sound";
tooltip = "Takes a DS constant.\nExample: DSTHOK";
type = 2;
}
}
......@@ -1055,7 +1083,6 @@ udmf
254
{
title = "Bustable Block";
prefix = "(254)";
id = "srb2_fofbustable";
arg0
{
......@@ -1066,6 +1093,7 @@ udmf
{
title = "Alpha";
default = 255;
tooltip = "Ranges from 0 (fully transparent) to 255 (fully opaque).";
}
arg2
{
......@@ -1107,7 +1135,6 @@ udmf
257
{
title = "Quicksand";
prefix = "(257)";
id = "srb2_fofsolidopaque";
arg0
{
......@@ -1123,6 +1150,7 @@ udmf
arg2
{
title = "Sinking speed";
tooltip = "In fracunits per tic.";
}
arg3
{
......@@ -1133,7 +1161,6 @@ udmf
258
{
title = "Laser";
prefix = "(258)";
id = "srb2_foflaser";
arg0
{
......@@ -1144,6 +1171,7 @@ udmf
{
title = "Alpha";
default = 128;
tooltip = "Ranges from 0 (fully transparent) to 255 (fully opaque).";
}
arg2
{
......@@ -1166,7 +1194,6 @@ udmf
259
{
title = "Custom";
prefix = "(259)";
id = "srb2_fofcustom";
arg0
{
......@@ -1177,6 +1204,7 @@ udmf
{
title = "Alpha";
default = 255;
tooltip = "Ranges from 0 (fully transparent) to 255 (fully opaque).";
}
arg2
{
......@@ -1221,52 +1249,6 @@ udmf
}
}
}
260
{
title = "Generalized 3D Floor";
prefix = "(260)";
id = "Sector_Set3dFloor";
requiresactivation = false;
arg0
{
title = "Target sector tag";
type = 13;
}
arg1
{
title = "Type";
type = 26;
default = 1;
enum
{
1 = "Solid";
2 = "Water";
3 = "Intangible";
}
flags
{
4 = "Render insides";
16 = "Only render insides";
}
}
arg2
{
title = "Flags";
type = 12;
enum
{
1 = "No shadow";
2 = "Double shadow";
4 = "Fog";
}
}
arg3
{
title = "Alpha";
default = 255;
}
}
}
linedeftrigger
......@@ -1276,7 +1258,6 @@ udmf
300
{
title = "Basic";
prefix = "(300)";
arg0
{
title = "Trigger type";
......@@ -1288,7 +1269,6 @@ udmf
303
{
title = "Ring Count";
prefix = "(303)";
arg0
{
title = "Trigger type";
......@@ -1316,7 +1296,6 @@ udmf
305
{
title = "Character Ability";
prefix = "(305)";
arg0
{
title = "Trigger type";
......@@ -1352,7 +1331,6 @@ udmf
308
{
title = "Gametype";
prefix = "(308)";
arg0
{
title = "Trigger type";
......@@ -1410,7 +1388,6 @@ udmf
309
{
title = "CTF Team";
prefix = "(309)";
arg0
{
title = "Trigger type";
......@@ -1428,7 +1405,6 @@ udmf
313
{
title = "No More Enemies";
prefix = "(313)";
arg0
{
title = "Target sector tag";
......@@ -1439,7 +1415,6 @@ udmf
314
{
title = "Number of Pushables";
prefix = "(314)";
arg0
{
title = "Trigger type";
......@@ -1461,7 +1436,6 @@ udmf
317
{
title = "Condition Set Trigger";
prefix = "(317)";
arg0
{
title = "Trigger type";
......@@ -1477,7 +1451,6 @@ udmf
319
{
title = "Unlockable";
prefix = "(319)";
arg0
{
title = "Trigger type";
......@@ -1493,7 +1466,6 @@ udmf
321
{
title = "Trigger After X Calls";
prefix = "(321)";
arg0
{
title = "Trigger type";
......@@ -1519,7 +1491,6 @@ udmf
323
{
title = "NiGHTSerize";
prefix = "(323)";
arg0
{
title = "Trigger type";
......@@ -1586,7 +1557,6 @@ udmf
325
{
title = "De-NiGHTSerize";
prefix = "(325)";
arg0
{
title = "Trigger type";
......@@ -1649,7 +1619,6 @@ udmf
327
{
title = "NiGHTS Lap";
prefix = "(327)";
arg0
{
title = "Trigger type";
......@@ -1701,7 +1670,6 @@ udmf
329
{
title = "Ideya Capture Touch";
prefix = "(329)";
arg0
{
title = "Trigger type";
......@@ -1769,7 +1737,6 @@ udmf
331
{
title = "Player Skin";
prefix = "(331)";
arg0
{
title = "Trigger type";
......@@ -1792,7 +1759,6 @@ udmf
334
{
title = "Object Dye";
prefix = "(334)";
arg0
{
title = "Trigger type";
......@@ -1815,7 +1781,6 @@ udmf
337
{
title = "Emerald Check";
prefix = "(337)";
arg0
{
title = "Trigger type";
......@@ -1848,7 +1813,6 @@ udmf
340
{
title = "NiGHTS Mare";
prefix = "(340)";
arg0
{
title = "Trigger type";
......@@ -1870,7 +1834,6 @@ udmf
343
{
title = "Gravity Check";
prefix = "(343)";
arg0
{
title = "Trigger type";
......@@ -1893,7 +1856,6 @@ udmf
399
{
title = "Level Load";
prefix = "(399)";
}
}
......@@ -1904,7 +1866,6 @@ udmf
400
{
title = "Set Tagged Sector's Heights/Textures";
prefix = "(400)";
arg0
{
title = "Target sector tag";
......@@ -1927,7 +1888,6 @@ udmf
402
{
title = "Copy Light Level to Tagged Sectors";
prefix = "(402)";
arg0
{
title = "Target sector tag";
......@@ -1949,7 +1909,6 @@ udmf
408
{
title = "Set Tagged Sector's Flats";
prefix = "(408)";
arg0
{
title = "Target sector tag";
......@@ -1966,7 +1925,6 @@ udmf
409
{
title = "Change Tagged Sector's Tag";
prefix = "(409)";
arg0
{
title = "Target sector tag";
......@@ -1994,7 +1952,6 @@ udmf
410
{
title = "Change Front Sector's Tag";
prefix = "(410)";
arg0
{
title = "Tag";
......@@ -2017,7 +1974,6 @@ udmf
416
{
title = "Start Adjustable Flickering Light";
prefix = "(416)";
arg0
{
title = "Target sector tag";
......@@ -2046,7 +2002,6 @@ udmf
417
{
title = "Start Adjustable Pulsating Light";
prefix = "(417)";
arg0
{
title = "Target sector tag";
......@@ -2075,7 +2030,6 @@ udmf
418
{
title = "Start Adjustable Blinking Light";
prefix = "(418)";
arg0
{
title = "Target sector tag";
......@@ -2112,7 +2066,6 @@ udmf
420
{
title = "Fade Light Level";
prefix = "(420)";
arg0
{
title = "Target sector tag";
......@@ -2142,7 +2095,6 @@ udmf
421
{
title = "Stop Lighting Effect";
prefix = "(421)";
arg0
{
title = "Target sector tag";
......@@ -2153,7 +2105,6 @@ udmf
435
{
title = "Change Plane Scroller Direction";
prefix = "(435)";
arg0
{
title = "Target sector tag";
......@@ -2162,13 +2113,13 @@ udmf
arg1
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
}
467
{
title = "Set Tagged Sector's Light Level";
prefix = "(467)";
arg0
{
title = "Target sector tag";
......@@ -2200,7 +2151,6 @@ udmf
469
{
title = "Change Tagged Sector's Gravity";
prefix = "(469)";
arg0
{
title = "Target sector tag";
......@@ -2252,7 +2202,6 @@ udmf
403
{
title = "Move Tagged Sector's Planes";
prefix = "(403)";
arg0
{
title = "Target sector tag";
......@@ -2267,6 +2216,7 @@ udmf
arg2
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg3
{
......@@ -2283,8 +2233,7 @@ udmf
405
{
title = "Move Planes by Distance";
prefix = "(405)";
title = "Move Planes by Set Distance";
arg0
{
title = "Target sector tag";
......@@ -2303,6 +2252,7 @@ udmf
arg3
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg4
{
......@@ -2315,7 +2265,6 @@ udmf
411
{
title = "Stop Plane Movement";
prefix = "(411)";
arg0
{
title = "Target sector tag";
......@@ -2326,7 +2275,6 @@ udmf
428
{
title = "Start Platform Movement";
prefix = "(428)";
arg0
{
title = "Target sector tag";
......@@ -2335,14 +2283,15 @@ udmf
arg1
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg2
{
title = "Starting delay";
title = "Starting delay (tics)";
}
arg3
{
title = "Delay before flip";
title = "Delay before flip (tics)";
}
arg4
{
......@@ -2359,7 +2308,6 @@ udmf
429
{
title = "Crush Planes Once";
prefix = "(429)";
arg0
{
title = "Target sector tag";
......@@ -2374,10 +2322,12 @@ udmf
arg2
{
title = "Crush speed";
tooltip = "In fracunits per tic.";
}
arg3
{
title = "Retract speed";
tooltip = "In fracunits per tic.";
}
}
}
......@@ -2389,10 +2339,9 @@ udmf
412
{
title = "Teleporter";
prefix = "(412)";
arg0
{
title = "Destination tag";
title = "Destination thing tag";
type = 14;
}
arg1
......@@ -2424,7 +2373,6 @@ udmf
425
{
title = "Change Object State";
prefix = "(425)";
stringarg0
{
title = "State";
......@@ -2435,7 +2383,6 @@ udmf
426
{
title = "Stop Object";
prefix = "(426)";
arg0
{
title = "Move to center?";
......@@ -2447,7 +2394,6 @@ udmf
427
{
title = "Award Score";
prefix = "(427)";
arg0
{
title = "Score";
......@@ -2457,7 +2403,6 @@ udmf
432
{
title = "Enable/Disable 2D Mode";
prefix = "(432)";
arg0
{
title = "Mode";
......@@ -2473,7 +2418,6 @@ udmf
433
{
title = "Enable/Disable Gravity Flip";
prefix = "(433)";
arg0
{
title = "Set gravity";
......@@ -2509,7 +2453,6 @@ udmf
434
{
title = "Award Power-Up";
prefix = "(434)";
stringarg0
{
title = "Power";
......@@ -2525,7 +2468,6 @@ udmf
437
{
title = "Disable Player Control";
prefix = "(437)";
arg0
{
title = "Time";
......@@ -2541,7 +2483,6 @@ udmf
438
{
title = "Change Object Size";
prefix = "(438)";
arg0
{
title = "Size (%)";
......@@ -2552,7 +2493,6 @@ udmf
442
{
title = "Change Object Type State";
prefix = "(442)";
arg0
{
title = "Target sector tag";
......@@ -2583,7 +2523,6 @@ udmf
457
{
title = "Track Object's Angle";
prefix = "(457)";
arg0
{
title = "Anchor tag";
......@@ -2614,13 +2553,11 @@ udmf
458
{
title = "Stop Tracking Object's Angle";
prefix = "(458)";
}
460
{
title = "Award Rings";
prefix = "(460)";
arg0
{
title = "Rings";
......@@ -2634,7 +2571,6 @@ udmf
461
{
title = "Spawn Object";
prefix = "(461)";
arg0
{
title = "X position";
......@@ -2680,13 +2616,11 @@ udmf
462
{
title = "Stop Timer/Exit Stage in Record Attack";
prefix = "(462)";
}
463
{
title = "Dye Object";
prefix = "(463)";
stringarg0
{
title = "Skin color";
......@@ -2697,7 +2631,6 @@ udmf
464
{
title = "Trigger Egg Capsule";
prefix = "(464)";
arg0
{
title = "Egg Capsule tag";
......@@ -2714,7 +2647,6 @@ udmf
466
{
title = "Set Level Failure State";
prefix = "(466)";
arg0
{
title = "State";
......@@ -2735,7 +2667,6 @@ udmf
413
{
title = "Change Music";
prefix = "(413)";
arg0
{
title = "Flags";
......@@ -2778,6 +2709,7 @@ udmf
stringarg0
{
title = "Music name";
tooltip = "Takes a music lump name, without the O_ or D_ prefix. Use - to disable music.\nExample: GFZ1";
type = 2;
}
}
......@@ -2785,7 +2717,6 @@ udmf
414
{
title = "Play Sound Effect";
prefix = "(414)";
arg0
{
title = "Source";
......@@ -2817,6 +2748,7 @@ udmf
stringarg0
{
title = "Sound name";
tooltip = "Takes a DS constant.\nExample: DSTHOK";
type = 2;
}
}
......@@ -2824,7 +2756,6 @@ udmf
415
{
title = "Run Script";
prefix = "(415)";
stringarg0
{
title = "Lump name";
......@@ -2835,7 +2766,6 @@ udmf
422
{
title = "Switch to Cut-Away View";
prefix = "(422)";
arg0
{
title = "Viewpoint tag";
......@@ -2850,7 +2780,6 @@ udmf
423
{
title = "Change Sky";
prefix = "(423)";
arg0
{
title = "Sky number";
......@@ -2866,7 +2795,6 @@ udmf
424
{
title = "Change Weather";
prefix = "(424)";
arg0
{
title = "Weather";
......@@ -2893,7 +2821,6 @@ udmf
436
{
title = "Shatter FOF";
prefix = "(436)";
arg0
{
title = "Target sector tag";
......@@ -2909,7 +2836,6 @@ udmf
439
{
title = "Change Tagged Linedef's Textures";
prefix = "(439)";
arg0
{
title = "Target linedef tag";
......@@ -2938,13 +2864,11 @@ udmf
440
{
title = "Start Metal Sonic Race";
prefix = "(440)";
}
441
{
title = "Condition Set Trigger";
prefix = "(441)";
arg0
{
title = "Trigger number";
......@@ -2954,7 +2878,6 @@ udmf
443
{
title = "Call Lua Function";
prefix = "(443)";
stringarg0
{
title = "Function name";
......@@ -2965,7 +2888,6 @@ udmf
444
{
title = "Earthquake";
prefix = "(444)";
arg0
{
title = "Duration";
......@@ -2979,7 +2901,6 @@ udmf
445
{
title = "Make FOF Disappear/Reappear";
prefix = "(445)";
arg0
{
title = "Target sector tag";
......@@ -3005,7 +2926,6 @@ udmf
446
{
title = "Make FOF Crumble";
prefix = "(446)";
arg0
{
title = "Target sector tag";
......@@ -3033,7 +2953,6 @@ udmf
447
{
title = "Change Tagged Sector's Colormap";
prefix = "(447)";
arg0
{
title = "Target sector tag";
......@@ -3069,14 +2988,13 @@ udmf
448
{
title = "Change Skybox";
prefix = "(448)";
arg0
{
title = "Viewpoint ID";
title = "Viewpoint thing tag";
}
arg1
{
title = "Centerpoint ID";
title = "Centerpoint thing tag";
}
arg2
{
......@@ -3100,7 +3018,6 @@ udmf
449
{
title = "Enable Bosses with Parameter";
prefix = "(449)";
arg0
{
title = "Boss ID";
......@@ -3120,7 +3037,6 @@ udmf
450
{
title = "Execute Linedef Executor (specific tag)";
prefix = "(450)";
arg0
{
title = "Trigger linedef tag";
......@@ -3131,7 +3047,6 @@ udmf
451
{
title = "Execute Linedef Executor (random tag in range)";
prefix = "(451)";
arg0
{
title = "Start of tag range";
......@@ -3147,7 +3062,6 @@ udmf
452
{
title = "Set FOF Translucency";
prefix = "(452)";
arg0
{
title = "Target sector tag";
......@@ -3161,6 +3075,7 @@ udmf
arg2
{
title = "Alpha";
tooltip = "Ranges from 0 (fully transparent) to 255 (fully opaque).";
}
arg3
{
......@@ -3177,7 +3092,6 @@ udmf
453
{
title = "Fade FOF";
prefix = "(453)";
arg0
{
title = "Target sector tag";
......@@ -3191,10 +3105,11 @@ udmf
arg2
{
title = "Alpha";
tooltip = "Ranges from 0 (fully transparent) to 255 (fully opaque).";
}
arg3
{
title = "Fading speed";
title = "Fading speed (tics)";
}
arg4
{
......@@ -3219,7 +3134,6 @@ udmf
454
{
title = "Stop Fading FOF";
prefix = "(454)";
arg0
{
title = "Target sector tag";
......@@ -3241,7 +3155,6 @@ udmf
455
{
title = "Fade Tagged Sector's Colormap";
prefix = "(455)";
arg0
{
title = "Target sector tag";
......@@ -3283,7 +3196,6 @@ udmf
456
{
title = "Stop Fading Tagged Sector's Colormap";
prefix = "(456)";
arg0
{
title = "Target sector tag";
......@@ -3294,7 +3206,6 @@ udmf
459
{
title = "Control Text Prompt";
prefix = "(459)";
arg0
{
title = "Prompt number";
......@@ -3330,7 +3241,6 @@ udmf
465
{
title = "Set Linedef Executor Delay";
prefix = "(465)";
arg0
{
title = "Linedef tag";
......@@ -3351,7 +3261,6 @@ udmf
468
{
title = "Change Linedef Argument";
prefix = "(468)";
arg0
{
title = "Linedef tag";
......@@ -3380,16 +3289,16 @@ udmf
480
{
title = "Door Slide";
prefix = "(480)";
title = "PolyObject Door Slide";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg2
{
......@@ -3397,22 +3306,22 @@ udmf
}
arg3
{
title = "Return delay";
title = "Return delay (tics)";
}
}
481
{
title = "Door Swing";
prefix = "(481)";
title = "PolyObject Door Swing";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg2
{
......@@ -3421,22 +3330,22 @@ udmf
}
arg3
{
title = "Return delay";
title = "Return delay (tics)";
}
}
482
{
title = "Move";
prefix = "(482)";
title = "Move PolyObject";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg2
{
......@@ -3452,20 +3361,21 @@ udmf
484
{
title = "Rotate";
prefix = "(484)";
title = "Rotate PolyObject";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
{
title = "Speed";
tooltip = "In degrees per tic.";
}
arg2
{
title = "Rotation";
tooltip = "How many degrees the PolyObject will rotate.";
type = 8;
}
arg3
......@@ -3484,20 +3394,21 @@ udmf
488
{
title = "Move by Waypoints";
prefix = "(488)";
title = "Move PolyObject by Waypoints";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg2
{
title = "Waypoint sequence";
tooltip = "The sequence number of (zoom tube) waypoints to use.";
}
arg3
{
......@@ -3524,11 +3435,10 @@ udmf
489
{
title = "Set Visibility, Tangibility";
prefix = "(489)";
title = "Set PolyObject Visibility/Tangibility";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
......@@ -3557,16 +3467,16 @@ udmf
491
{
title = "Set Translucency";
prefix = "(491)";
title = "Set PolyObject Translucency";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
{
title = "Translucency level";
tooltip = "Ranges from 0 (fully opaque) to 10 (fully transparent).";
}
arg2
{
......@@ -3578,16 +3488,16 @@ udmf
492
{
title = "Fade Translucency";
prefix = "(492)";
title = "Fade PolyObject Translucency";
arg0
{
title = "PolyObject ID";
title = "PolyObject tag";
type = 14;
}
arg1
{
title = "Translucency level";
tooltip = "Ranges from 0 (fully opaque) to 10 (fully transparent).";
}
arg2
{
......@@ -3615,8 +3525,7 @@ udmf
500
{
title = "Scroll Walls";
prefix = "(500)";
title = "Scroll Wall";
arg0
{
title = "Side";
......@@ -3635,8 +3544,7 @@ udmf
502
{
title = "Scroll Walls Remotely";
prefix = "(502)";
title = "Scroll Tagged Walls";
arg0
{
title = "Linedef tag";
......@@ -3667,11 +3575,11 @@ udmf
510
{
title = "Scroll Planes";
prefix = "(510)";
arg0
{
title = "Sector tag";
type = 13;
tooltip = "A tag of 0 will scroll the planes of this line's front sector.";
}
arg1
{
......@@ -3704,11 +3612,11 @@ udmf
541
{
title = "Wind/Current";
prefix = "(541)";
arg0
{
title = "Sector tag";
type = 13;
tooltip = "A tag of 0 will apply the effect to this line's front sector.";
}
arg1
{
......@@ -3732,7 +3640,7 @@ udmf
{
title = "Flags";
type = 12;
flags
enum
{
1 = "Slide";
2 = "Non-exclusive";
......@@ -3748,7 +3656,6 @@ udmf
600
{
title = "Copy Light Level to Tagged Sector's Planes";
prefix = "(600)";
arg0
{
title = "Target sector tag";
......@@ -3765,7 +3672,6 @@ udmf
602
{
title = "Adjustable Pulsating Light";
prefix = "(602)";
arg0
{
title = "Target sector tag";
......@@ -3794,7 +3700,6 @@ udmf
603
{
title = "Adjustable Flickering Light";
prefix = "(603)";
arg0
{
title = "Target sector tag";
......@@ -3823,7 +3728,6 @@ udmf
604
{
title = "Adjustable Blinking Light";
prefix = "(604)";
arg0
{
title = "Target sector tag";
......@@ -3860,7 +3764,6 @@ udmf
606
{
title = "Copy Colormap";
prefix = "(606)";
arg0
{
title = "Target sector tag";
......@@ -3881,7 +3784,6 @@ udmf
700
{
title = "Create Sector-Based Slope";
prefix = "(700)";
id = "plane_align";
arg0
{
......@@ -3911,7 +3813,6 @@ udmf
704
{
title = "Create Vertex-Based Slope";
prefix = "(704)";
id = "srb2_vertexslope";
arg0
{
......@@ -3955,7 +3856,6 @@ udmf
720
{
title = "Copy Slope";
prefix = "(720)";
id = "plane_copy";
arg0
{
......@@ -3994,7 +3894,6 @@ udmf
799
{
title = "Set Tagged Dynamic Slope Vertex to Front Sector Height";
prefix = "(799)";
arg0
{
title = "Apply height";
......
......@@ -78,6 +78,8 @@ sectorflags
ropehang = "Rope Hang";
jumpflip = "Flip Gravity on Jump";
gravityoverride = "Make Reverse Gravity Temporary";
nophysics_floor = "Disable Floor Slope Physics";
nophysics_ceiling = "Disable Ceiling Slope Physics";
flipspecial_nofloor = "No Trigger on Floor Touch";
flipspecial_ceiling = "Trigger on Ceiling Touch";
triggerspecial_touch = "Trigger on Edge Touch";
......@@ -114,6 +116,8 @@ sectorflagscategories
ropehang = "special";
jumpflip = "special";
gravityoverride = "special";
nophysics_floor = "special";
nophysics_ceiling = "special";
flipspecial_nofloor = "trigger";
flipspecial_ceiling = "trigger";
triggerspecial_touch = "trigger";
......@@ -229,20 +233,369 @@ Field data types:
*/
universalfields
{
sector
{
}
linedef
{
alpha
{
type = 1;
default = 1.0;
}
comment
{
type = 2;
default = "";
}
renderstyle
{
type = 2;
default = "";
}
stringarg0
{
type = 2;
default = "";
}
stringarg1
{
type = 2;
default = "";
}
executordelay
{
type = 0;
default = 0;
}
}
sidedef
{
comment
{
type = 2;
default = "";
}
light
{
type = 0;
default = 0;
}
lightabsolute
{
type = 3;
default = false;
}
//light_top
//{
// type = 0;
// default = 0;
//}
//
//lightabsolute_top
//{
// type = 3;
// default = false;
//}
//
//light_mid
//{
// type = 0;
// default = 0;
//}
//
//lightabsolute_mid
//{
// type = 3;
// default = false;
//}
//
//light_bottom
//{
// type = 0;
// default = 0;
//}
//
//lightabsolute_bottom
//{
// type = 3;
// default = false;
//}
offsetx_bottom
{
type = 1;
default = 0.0;
}
offsetx_mid
{
type = 1;
default = 0.0;
}
offsetx_top
{
type = 1;
default = 0.0;
}
offsety_bottom
{
type = 1;
default = 0.0;
}
offsety_mid
{
type = 1;
default = 0.0;
}
offsety_top
{
type = 1;
default = 0.0;
}
scalex_bottom
{
type = 1;
default = 1.0;
}
scalex_mid
{
type = 1;
default = 1.0;
}
scalex_top
{
type = 1;
default = 1.0;
}
scaley_bottom
{
type = 1;
default = 1.0;
}
scaley_mid
{
type = 1;
default = 1.0;
}
scaley_top
{
type = 1;
default = 1.0;
}
}
thing
{
comment
{
type = 2;
default = "";
}
pitch
{
type = 0;
}
roll
{
type = 0;
}
scalex
{
type = 1;
default = 1.0;
}
scaley
{
type = 1;
default = 1.0;
}
stringarg0
{
type = 2;
default = "";
}
stringarg1
{
type = 2;
default = "";
}
mobjscale
{
type = 1;
default = 1.0;
managed = false;
}
}
sector
{
comment
{
type = 2;
default = "";
}
damagetype
{
type = 2;
default = "";
}
gravity
{
type = 1;
default = 1.0;
}
lightcolor
{
type = 0;
default = 0;
}
fadecolor
{
type = 0;
default = 0;
}
lightalpha
{
type = 0;
default = 25;
}
fadealpha
{
type = 0;
default = 25;
}
fadestart
{
type = 0;
default = 0;
}
fadeend
{
type = 0;
default = 31;
}
xpanningfloor
{
type = 1;
default = 0.0;
}
ypanningfloor
{
type = 1;
default = 0.0;
}
rotationfloor
{
type = 1;
default = 0.0;
}
xscalefloor
{
type = 1;
default = 1.0;
}
yscalefloor
{
type = 1;
default = 1.0;
}
lightfloor
{
type = 0;
default = 0;
}
lightfloorabsolute
{
type = 3;
default = false;
}
xpanningceiling
{
type = 1;
default = 0.0;
}
ypanningceiling
{
type = 1;
default = 0.0;
}
rotationceiling
{
type = 1;
default = 0.0;
}
xscaleceiling
{
type = 1;
default = 1.0;
}
yscaleceiling
{
type = 1;
default = 1.0;
}
lightceiling
{
type = 0;
default = 0;
}
lightceilingabsolute
{
type = 3;
default = false;
}
triggertag
{
type = 0;
default = 0;
}
}
}
......
......@@ -1127,56 +1127,63 @@ udmf
}
}
}
290
{
arrow = 0;
title = "Boss Escape Point";
width = 8;
height = 16;
sprite = "internal:eggmanend";
}
291
{
arrow = 0;
title = "Egg Capsule Center";
width = 8;
height = 16;
sprite = "internal:capsule";
}
292
bossinvisibles
{
arrow = 0;
title = "Boss Waypoint";
width = 8;
height = 16;
sprite = "internal:eggmanway";
arg0
{
title = "Sea Egg sequence";
title = "Misc. Invisible";
color = 15; // White
290
{
arrow = 0;
title = "Boss Escape Point";
width = 8;
height = 16;
sprite = "internal:eggmanend";
}
291
{
arrow = 0;
title = "Egg Capsule Center";
width = 8;
height = 16;
sprite = "internal:capsule";
}
292
{
arrow = 0;
title = "Boss Waypoint";
width = 8;
height = 16;
sprite = "internal:eggmanway";
arg0
{
title = "Sea Egg sequence";
}
arg1
{
title = "Brak Eggman sequence";
}
}
arg1
293
{
title = "Brak Eggman sequence";
title = "Metal Sonic Gather Point";
sprite = "internal:metal";
width = 8;
height = 16;
}
}
293
{
title = "Metal Sonic Gather Point";
sprite = "internal:metal";
width = 8;
height = 16;
}
294
{
title = "Fang Waypoint";
sprite = "internal:eggmanway";
width = 8;
height = 16;
arg0
294
{
title = "Center waypoint?";
type = 11;
enum = "noyes";
title = "Fang Waypoint";
sprite = "internal:eggmanway";
width = 8;
height = 16;
arg0
{
title = "Center waypoint?";
type = 11;
enum = "noyes";
}
}
}
}
......@@ -1185,7 +1192,7 @@ udmf
{
color = 14; // Yellow
title = "Rings and Weapon Panels";
width = 24;
width = 16;
height = 24;
sprite = "RINGA0";
......@@ -1193,10 +1200,10 @@ udmf
{
title = "Ring";
sprite = "RINGA0";
width = 16;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1208,6 +1215,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1219,6 +1227,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1227,9 +1236,11 @@ udmf
{
title = "Infinity Ring";
sprite = "RNGIA0";
width = 24;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1241,6 +1252,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1252,6 +1264,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1263,6 +1276,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1274,6 +1288,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1282,10 +1297,10 @@ udmf
{
title = "CTF Team Ring (Red)";
sprite = "internal:TRNGA0R";
width = 16;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1294,10 +1309,10 @@ udmf
{
title = "CTF Team Ring (Blue)";
sprite = "internal:TRNGA0B";
width = 16;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1306,9 +1321,12 @@ udmf
{
title = "Bounce Ring Panel";
sprite = "PIKBA0";
width = 24;
height = 40;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1317,9 +1335,12 @@ udmf
{
title = "Rail Ring Panel";
sprite = "PIKRA0";
width = 24;
height = 40;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1328,9 +1349,12 @@ udmf
{
title = "Automatic Ring Panel";
sprite = "PIKAA0";
width = 24;
height = 40;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1339,9 +1363,12 @@ udmf
{
title = "Explosion Ring Panel";
sprite = "PIKEA0";
width = 24;
height = 40;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1350,9 +1377,12 @@ udmf
{
title = "Scatter Ring Panel";
sprite = "PIKSA0";
width = 24;
height = 40;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1361,9 +1391,12 @@ udmf
{
title = "Grenade Ring Panel";
sprite = "PIKGA0";
width = 24;
height = 40;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1375,7 +1408,7 @@ udmf
color = 10; // Light_Green
title = "Other Collectibles";
width = 16;
height = 32;
height = 24;
sort = 1;
sprite = "CEMGA0";
......@@ -1402,6 +1435,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1445,9 +1479,11 @@ udmf
{
title = "Emerald Hunt Location";
sprite = "SHRDA0";
height = 32;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1459,6 +1495,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1472,6 +1509,7 @@ udmf
arg1
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1941,7 +1979,7 @@ udmf
generic
{
color = 11; // Light_Cyan
title = "Generic Items & Hazards";
title = "Generic Objects ";
500
{
......@@ -1952,6 +1990,7 @@ udmf
arg0
{
title = "Distance check?";
tooltip = "If enabled, bubbles are only spawned a player is within 2048 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -1981,19 +2020,12 @@ udmf
enum = "noyes";
}
}
520
{
title = "Bomb Sphere";
sprite = "SPHRD0";
width = 16;
height = 24;
arg0
{
title = "Float?";
type = 11;
enum = "yesno";
}
}
}
hazards
{
color = 17; // Orange
title = "Generic Hazards";
521
{
title = "Spikeball";
......@@ -2003,6 +2035,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -2151,6 +2184,7 @@ udmf
stringarg0
{
title = "Color";
tooltip = "Uses a SKINCOLOR_ constant.\nExample: SKINCOLOR_RED";
}
}
550
......@@ -2229,6 +2263,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 16 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -2243,6 +2278,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 16 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -2257,6 +2293,7 @@ udmf
arg0
{
title = "Float?";
tooltip = "This raises the object by 16 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -2311,7 +2348,7 @@ udmf
arrow = 1;
title = "Special Placement Patterns";
width = 16;
height = 384;
height = 64;
sprite = "RINGA0";
600
......@@ -2319,6 +2356,7 @@ udmf
arrow = 0;
title = "5 Vertical Rings (Yellow Spring)";
sprite = "internal:ringverticalyellow";
height = 384;
}
601
{
......@@ -2352,6 +2390,7 @@ udmf
title = "Circle of Rings (Big)";
sprite = "internal:circlebigring";
width = 192;
height = 384;
centerhitbox = true;
}
606
......@@ -2367,6 +2406,7 @@ udmf
title = "Circle of Blue Spheres (Big)";
sprite = "internal:circlebigsphere";
width = 192;
height = 384;
centerhitbox = true;
}
608
......@@ -2382,47 +2422,59 @@ udmf
title = "Circle of Rings and Spheres (Big)";
sprite = "internal:circlebigringsphere";
width = 192;
height = 384;
centerhitbox = true;
}
610
{
title = "Row of Items";
sprite = "RINGA0";
sprite = "internal:customrow";
width = 32;
height = 384;
arg0
{
title = "Number of items";
default = 5;
}
arg1
{
title = "Horizontal spacing";
default = 64;
}
arg2
{
title = "Vertical spacing";
default = 64;
}
stringarg0
{
title = "Object types";
tooltip = "A list of MT_ constants to use, separated by spaces.\nExample: MT_RING MT_BLUESPHERE";
}
}
611
{
title = "Circle of Items";
sprite = "RINGA0";
width = 96;
height = 192;
sprite = "internal:customcircle";
width = 32;
height = 64;
centerhitbox = true;
arg0
{
title = "Number of items";
default = 16;
}
arg1
{
title = "Radius";
renderstyle = "circle";
rendercolor = "#6600FF";
default = 128;
}
stringarg0
{
title = "Object types";
tooltip = "A list of MT_ constants to use, separated by spaces.\nExample: MT_RING MT_BLUESPHERE";
}
}
}
......@@ -2445,10 +2497,13 @@ udmf
arg0
{
title = "Repeat speed";
tooltip = "In tics.";
default = 35;
}
stringarg0
{
title = "Sound";
tooltip = "Takes a DS constant.\nExample: DSAMWTR3";
}
}
......@@ -2484,7 +2539,7 @@ udmf
sprite = "internal:zoom";
arg0
{
title = "Sequence";
title = "Sequence number";
}
arg1
{
......@@ -2499,6 +2554,7 @@ udmf
arg0
{
title = "Radius";
renderstyle = "circle";
}
arg1
{
......@@ -2536,24 +2592,28 @@ udmf
height = 16;
arg0
{
title = "Particles";
title = "Number of particles";
}
arg1
{
title = "Radius";
renderstyle = "circle";
}
arg2
{
title = "Rising speed";
tooltip = "In fracunits per tic.";
}
arg3
{
title = "Rotation speed";
tooltip = "In degrees per tic.";
type = 8;
}
arg4
{
title = "Spawn interval";
tooltip = "In tics.";
}
arg5
{
......@@ -2564,6 +2624,11 @@ udmf
title = "Heights control linedef";
type = 15;
}
stringarg0
{
title = "Particle object type";
tooltip = "Uses a MT_ constant.\nExample: MT_PARTICLE\nDefaults to MT_PARTICLE.";
}
}
758
{
......@@ -2759,6 +2824,7 @@ udmf
sprite = "GARGA1";
width = 16;
height = 40;
color = 6;
arg0
{
title = "Push behavior";
......@@ -2774,6 +2840,7 @@ udmf
sprite = "GARGB1";
width = 32;
height = 80;
color = 6;
arg0
{
title = "Push behavior";
......@@ -2882,6 +2949,7 @@ udmf
width = 28;
height = 56;
sprite = "BMNEA1";
color = 17;
}
1013
{
......@@ -2911,6 +2979,348 @@ udmf
color = 2; // Green
title = "Castle Eggman";
macespawns
{
title = "Mace Spawnpoints";
color = 11;
1104
{
title = "Mace Spawn";
sprite = "SMCEA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of extra spokes";
}
arg2
{
title = "Width";
tooltip = "Adds extra maces to both sides.";
}
arg3
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum = "maceflags";
}
}
1105
{
title = "Chain & Maces Spawn";
sprite = "SMCEA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of extra spokes";
}
arg2
{
title = "Width";
tooltip = "Adds extra chains/maces to both sides.";
}
arg3
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum = "maceflags";
}
}
1106
{
title = "Spring Ball Spawn";
sprite = "YSPBA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of extra spokes";
}
arg2
{
title = "Width";
tooltip = "Adds extra springs to both sides.";
}
arg3
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum
{
1 = "Red spring";
2 = "No sounds";
4 = "Player-turnable chain";
8 = "Swing instead of spin";
16 = "Make chain from end item";
32 = "Spawn link at origin";
64 = "Clip inside ground";
128 = "No distance check";
}
}
}
1107
{
title = "Chain Spawn";
sprite = "BMCHA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of extra spokes";
}
arg2
{
title = "Width";
tooltip = "Adds extra chains to both sides.";
}
arg3
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum = "maceflags";
}
}
1108
{
arrow = 1;
title = "Hidden Chain Spawn";
sprite = "internal:chain3";
width = 17;
height = 34;
}
1109
{
title = "Firebar Spawn";
sprite = "BFBRA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of extra spokes";
}
arg2
{
title = "Width";
tooltip = "Adds extra firebars to both sides.";
}
arg3
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum
{
1 = "Double size";
2 = "No sounds";
4 = "Player-turnable chain";
8 = "Swing instead of spin";
16 = "Omit chain links";
32 = "Spawn link at origin";
64 = "Clip inside ground";
128 = "No distance check";
}
}
}
1110
{
title = "Custom Mace Spawn";
sprite = "SMCEA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of extra spokes";
}
arg2
{
title = "Width";
tooltip = "Adds extra maces to both sides.";
}
arg3
{
title = "Speed";
tooltip = "In fracunits per tic.";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum = "maceflags";
}
stringarg0
{
title = "Mace object type";
tooltip = "Uses a MT_ constant.\nExample: MT_BIGMACE";
type = 2;
}
stringarg1
{
title = "Link object type";
tooltip = "Uses a MT_ constant.\nExample: MT_BIGCHAIN";
type = 2;
}
}
}
1100
{
title = "Chain (Decorative)";
......@@ -2940,6 +3350,7 @@ udmf
sprite = "ESTAA1";
width = 32;
height = 240;
color = 6;
arg0
{
title = "Push behavior";
......@@ -2960,343 +3371,23 @@ udmf
width = 16;
height = 40;
}
1104
1111
{
title = "Mace Spawnpoint";
sprite = "SMCEA0";
width = 17;
height = 34;
arrow = 1;
blocking = 2;
title = "Crawla Statue";
sprite = "CSTAA1";
width = 16;
height = 40;
color = 6;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of spokes";
}
arg2
{
title = "Width";
}
arg3
{
title = "Speed";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum = "maceflags";
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
}
}
1105
{
title = "Chain with Maces Spawnpoint";
sprite = "SMCEA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of spokes";
}
arg2
{
title = "Width";
}
arg3
{
title = "Speed";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum = "maceflags";
}
}
1106
{
title = "Chained Spring Spawnpoint";
sprite = "YSPBA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of spokes";
}
arg2
{
title = "Width";
}
arg3
{
title = "Speed";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum
{
1 = "Red spring";
2 = "No sounds";
4 = "Player-turnable chain";
8 = "Swing instead of spin";
16 = "Make chain from end item";
32 = "Spawn link at origin";
64 = "Clip inside ground";
128 = "No distance check";
}
}
}
1107
{
title = "Chain Spawnpoint";
sprite = "BMCHA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of spokes";
}
arg2
{
title = "Width";
}
arg3
{
title = "Speed";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum = "maceflags";
}
}
1108
{
arrow = 1;
title = "Hidden Chain Spawnpoint";
sprite = "internal:chain3";
width = 17;
height = 34;
}
1109
{
title = "Firebar Spawnpoint";
sprite = "BFBRA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of spokes";
}
arg2
{
title = "Width";
}
arg3
{
title = "Speed";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum
{
1 = "Double size";
2 = "No sounds";
4 = "Player-turnable chain";
8 = "Swing instead of spin";
16 = "Omit chain links";
32 = "Spawn link at origin";
64 = "Clip inside ground";
128 = "No distance check";
}
}
}
1110
{
title = "Custom Mace Spawnpoint";
sprite = "SMCEA0";
width = 17;
height = 34;
arg0
{
title = "Number of links";
}
arg1
{
title = "Number of spokes";
}
arg2
{
title = "Width";
}
arg3
{
title = "Speed";
}
arg4
{
title = "Phase";
type = 8;
}
arg5
{
title = "Pinch";
type = 8;
}
arg6
{
title = "Omitted spokes";
}
arg7
{
title = "Omitted links";
}
arg8
{
title = "Flags";
type = 12;
enum = "maceflags";
}
stringarg0
{
title = "Mace object type";
type = 2;
}
stringarg1
{
title = "Link object type";
type = 2;
}
}
1111
{
arrow = 1;
blocking = 2;
title = "Crawla Statue";
sprite = "CSTAA1";
width = 16;
height = 40;
arg0
{
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
}
}
1112
1112
{
arrow = 1;
blocking = 2;
......@@ -3304,6 +3395,7 @@ udmf
sprite = "CBBSA1";
width = 32;
height = 72;
color = 6;
arg0
{
title = "Push behavior";
......@@ -3404,6 +3496,7 @@ udmf
sprite = "internal:cannonball";
width = 8;
height = 16;
color = 17;
}
1124
{
......@@ -3412,6 +3505,7 @@ udmf
sprite = "CBLLA0";
width = 20;
height = 40;
color = 6;
arg0
{
title = "Push behavior";
......@@ -3432,6 +3526,7 @@ udmf
sprite = "LCKNC0";
width = 16;
height = 32;
color = 15;
}
1127
{
......@@ -3439,6 +3534,7 @@ udmf
sprite = "EGR1A1";
width = 20;
height = 72;
color = 17;
arg0
{
title = "Movement";
......@@ -3474,6 +3570,143 @@ udmf
color = 2; // Green
title = "Arid Canyon";
cacti
{
title = "Cacti";
color = 17;
1203
{
title = "Tiny Red Flower Cactus";
sprite = "CACTA0";
width = 13;
height = 24;
}
1204
{
title = "Small Red Flower Cactus";
sprite = "CACTB0";
width = 15;
height = 52;
}
1205
{
title = "Tiny Blue Flower Cactus";
sprite = "CACTC0";
width = 13;
height = 24;
}
1206
{
title = "Small Blue Flower Cactus";
sprite = "CACTD0";
width = 15;
height = 52;
}
1207
{
title = "Prickly Pear";
sprite = "CACTE0";
width = 32;
height = 96;
}
1208
{
title = "Barrel Cactus";
sprite = "CACTF0";
width = 20;
height = 128;
}
1209
{
title = "Tall Barrel Cactus";
sprite = "CACTG0";
width = 24;
height = 224;
}
1210
{
title = "Armed Cactus";
sprite = "CACTH0";
width = 24;
height = 256;
}
1211
{
title = "Ball Cactus";
sprite = "CACTI0";
width = 48;
height = 96;
}
1230
{
title = "Tiny Cactus";
sprite = "CACTJ0";
width = 13;
height = 28;
}
1231
{
title = "Small Cactus";
sprite = "CACTK0";
width = 15;
height = 60;
}
}
minecarts
{
title = "Minecart";
color = 11;
1219
{
title = "Minecart Spawner";
sprite = "MCRTCLFR";
width = 22;
height = 32;
}
1220
{
title = "Minecart Stopper";
sprite = "MCRTIR";
width = 32;
height = 32;
}
1221
{
title = "Minecart Saloon Door";
sprite = "SALDARAL";
width = 96;
height = 160;
arg0
{
title = "Allow non-minecart players?";
type = 11;
enum = "noyes";
}
}
1229
{
title = "Minecart Switch Point";
sprite = "internal:zoom";
width = 8;
height = 16;
color = 15;
arg0
{
title = "Type";
type = 11;
enum
{
0 = "Disable";
1 = "Enable";
}
}
}
}
1200
{
title = "Tumbleweed (Big)";
......@@ -3507,6 +3740,7 @@ udmf
sprite = "ROIAA0";
width = 8;
height = 16;
color = 17;
arg0
{
title = "Speed";
......@@ -3527,76 +3761,13 @@ udmf
type = 2;
}
}
1203
1212
{
title = "Tiny Red Flower Cactus";
sprite = "CACTA0";
width = 13;
height = 24;
}
1204
{
title = "Small Red Flower Cactus";
sprite = "CACTB0";
width = 15;
height = 52;
}
1205
{
title = "Tiny Blue Flower Cactus";
sprite = "CACTC0";
width = 13;
height = 24;
}
1206
{
title = "Small Blue Flower Cactus";
sprite = "CACTD0";
width = 15;
height = 52;
}
1207
{
title = "Prickly Pear";
sprite = "CACTE0";
width = 32;
height = 96;
}
1208
{
title = "Barrel Cactus";
sprite = "CACTF0";
width = 20;
height = 128;
}
1209
{
title = "Tall Barrel Cactus";
sprite = "CACTG0";
width = 24;
height = 224;
}
1210
{
title = "Armed Cactus";
sprite = "CACTH0";
width = 24;
height = 256;
}
1211
{
title = "Ball Cactus";
sprite = "CACTI0";
width = 48;
height = 96;
}
1212
{
title = "Caution Sign";
sprite = "WWSGAR";
width = 22;
height = 64;
wallsprite = true;
title = "Caution Sign";
sprite = "WWSGAR";
width = 22;
height = 64;
wallsprite = true;
}
1213
{
......@@ -3628,6 +3799,7 @@ udmf
sprite = "BARRA1";
width = 24;
height = 63;
color = 17;
arg0
{
title = "Push behavior";
......@@ -3641,6 +3813,7 @@ udmf
sprite = "REMTA0";
width = 64;
height = 40;
color = 17;
}
1218
{
......@@ -3648,33 +3821,7 @@ udmf
sprite = "TAZDCR";
width = 80;
height = 416;
}
1219
{
title = "Minecart Spawner";
sprite = "MCRTCLFR";
width = 22;
height = 32;
}
1220
{
title = "Minecart Stopper";
sprite = "MCRTIR";
width = 32;
height = 32;
}
1221
{
title = "Minecart Saloon Door";
sprite = "SALDARAL";
width = 96;
height = 160;
arg0
{
title = "Allow non-minecart players?";
type = 11;
enum = "noyes";
}
color = 11;
}
1222
{
......@@ -3682,6 +3829,7 @@ udmf
sprite = "TRAEBRBL";
width = 28;
height = 32;
color = 15;
}
1223
{
......@@ -3689,6 +3837,7 @@ udmf
sprite = "ADSTA0";
width = 4;
height = 4;
color = 15;
}
1224
{
......@@ -3696,37 +3845,7 @@ udmf
sprite = "STEAA0";
width = 4;
height = 4;
}
1229
{
title = "Minecart Switch Point";
sprite = "internal:zoom";
width = 8;
height = 16;
arg0
{
title = "Type";
type = 11;
enum
{
0 = "Disable";
1 = "Enable";
}
}
}
1230
{
title = "Tiny Cactus";
sprite = "CACTJ0";
width = 13;
height = 28;
}
1231
{
title = "Small Cactus";
sprite = "CACTK0";
width = 15;
height = 60;
color = 15;
}
}
......@@ -3742,6 +3861,7 @@ udmf
sprite = "internal:flameh";
width = 16;
height = 40;
color = 17;
arg0
{
title = "On time";
......@@ -3771,6 +3891,7 @@ udmf
sprite = "internal:flamev";
width = 16;
height = 40;
color = 17;
arg0
{
title = "On time";
......@@ -3800,6 +3921,7 @@ udmf
sprite = "internal:flame2";
width = 16;
height = 24;
color = 17;
}
1303
{
......@@ -3807,6 +3929,7 @@ udmf
sprite = "internal:flame1";
width = 16;
height = 24;
color = 17;
}
1304
{
......@@ -3814,6 +3937,8 @@ udmf
sprite = "LFALF0";
width = 30;
height = 32;
color = 17;
hangs = 1;
arg0
{
title = "Initial delay";
......@@ -3831,6 +3956,7 @@ udmf
sprite = "PUMIA1A5";
width = 30;
height = 60;
color = 11;
arg0
{
title = "Buoyant?";
......@@ -3875,293 +4001,233 @@ udmf
}
}
botanicserenity
tutorial
{
color = 2; // Green
title = "Botanic Serenity";
width = 16;
height = 32;
sprite = "BSZ1A0";
1400
title = "Tutorial";
799
{
title = "Tall Flower (Red)";
sprite = "BSZ1A0";
title = "Tutorial Plant";
sprite = "TUPFH0";
width = 40;
height = 144;
arg0
{
title = "Start frame";
}
}
1401
}
frozenhillside
{
color = 2; // Green
title = "Frozen Hillside";
2100
{
title = "Tall Flower (Purple)";
sprite = "BSZ1B0";
title = "Ice Shard (Small)";
sprite = "FHZIA0";
width = 8;
height = 32;
}
1402
2101
{
title = "Tall Flower (Blue)";
sprite = "BSZ1C0";
title = "Ice Shard (Large)";
sprite = "FHZIB0";
width = 8;
height = 32;
}
1403
2102
{
title = "Tall Flower (Cyan)";
sprite = "BSZ1D0";
title = "Crystal Tree (Aqua)";
sprite = "TRE3A0";
width = 20;
height = 200;
}
1404
2103
{
title = "Tall Flower (Yellow)";
sprite = "BSZ1E0";
title = "Crystal Tree (Pink)";
sprite = "TRE3B0";
width = 20;
height = 200;
}
1405
2104
{
title = "Tall Flower (Orange)";
sprite = "BSZ1F0";
title = "Amy Cameo";
sprite = "ROSYA1";
width = 16;
height = 48;
color = 11;
arg0
{
title = "Grayscale?";
type = 11;
enum = "noyes";
}
}
1410
2105
{
title = "Medium Flower (Red)";
sprite = "BSZ2A0";
title = "Mistletoe";
sprite = "XMS6A0";
width = 52;
height = 106;
}
1411
}
hauntedheights
{
color = 2; // Green
title = "Haunted Heights";
2000
{
title = "Medium Flower (Purple)";
sprite = "BSZ2B0";
title = "Smashing Spikeball";
sprite = "FMCEA0";
width = 18;
height = 28;
color = 17;
arg0
{
title = "Initial delay";
}
}
1412
2001
{
title = "Medium Flower (Blue)";
sprite = "BSZ2C0";
title = "HHZ Grass";
sprite = "HHZMA0";
width = 16;
height = 40;
}
1413
2002
{
title = "Medium Flower (Cyan)";
sprite = "BSZ2D0";
title = "HHZ Tentacle 1";
sprite = "HHZMB0";
width = 16;
height = 40;
}
1414
2003
{
title = "Medium Flower (Yellow)";
sprite = "BSZ2E0";
title = "HHZ Tentacle 2";
sprite = "HHZMC0";
width = 16;
height = 40;
}
1415
2004
{
title = "Medium Flower (Orange)";
sprite = "BSZ2F0";
title = "HHZ Stalagmite (Tall)";
sprite = "HHZME0";
width = 16;
height = 40;
}
1420
2005
{
title = "Short Flower (Red)";
sprite = "BSZ3A0";
title = "HHZ Stalagmite (Short)";
sprite = "HHZMF0";
width = 16;
height = 40;
}
1421
2006
{
title = "Short Flower (Purple)";
sprite = "BSZ3B0";
title = "Jack-o'-lantern 1";
sprite = "PUMKA0";
width = 16;
height = 40;
arg0
{
title = "Flicker";
type = 11;
enum = "yesno";
}
}
1422
2007
{
title = "Short Flower (Blue)";
sprite = "BSZ3C0";
title = "Jack-o'-lantern 2";
sprite = "PUMKB0";
width = 16;
height = 40;
arg0
{
title = "Flicker";
type = 11;
enum = "yesno";
}
}
1423
2008
{
title = "Short Flower (Cyan)";
sprite = "BSZ3D0";
title = "Jack-o'-lantern 3";
sprite = "PUMKC0";
width = 16;
height = 40;
arg0
{
title = "Flicker";
type = 11;
enum = "yesno";
}
}
1424
2009
{
title = "Short Flower (Yellow)";
sprite = "BSZ3E0";
title = "Purple Mushroom";
sprite = "SHRMD0";
width = 16;
height = 48;
}
1425
2010
{
title = "Short Flower (Orange)";
sprite = "BSZ3F0";
title = "HHZ Tree";
sprite = "HHPLC0";
width = 12;
height = 40;
}
1430
}
azuretemple
{
color = 2; // Green
title = "Azure Temple";
1500
{
title = "Tulip (Red)";
sprite = "BST1A0";
arrow = 1;
blocking = 2;
title = "Glaregoyle";
sprite = "BGARA1";
width = 16;
height = 40;
color = 17;
arg0
{
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
}
arg1
{
title = "Starting delay";
}
}
1431
1501
{
title = "Tulip (Purple)";
sprite = "BST2A0";
arrow = 1;
blocking = 2;
title = "Glaregoyle (Up)";
sprite = "BGARA1";
width = 16;
height = 40;
color = 17;
arg0
{
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
}
arg1
{
title = "Starting delay";
}
}
1432
{
title = "Tulip (Blue)";
sprite = "BST3A0";
}
1433
{
title = "Tulip (Cyan)";
sprite = "BST4A0";
}
1434
{
title = "Tulip (Yellow)";
sprite = "BST5A0";
}
1435
{
title = "Tulip (Orange)";
sprite = "BST6A0";
}
1440
{
title = "Cluster (Red)";
sprite = "BSZ5A0";
}
1441
{
title = "Cluster (Purple)";
sprite = "BSZ5B0";
}
1442
{
title = "Cluster (Blue)";
sprite = "BSZ5C0";
}
1443
{
title = "Cluster (Cyan)";
sprite = "BSZ5D0";
}
1444
{
title = "Cluster (Yellow)";
sprite = "BSZ5E0";
}
1445
{
title = "Cluster (Orange)";
sprite = "BSZ5F0";
}
1450
{
title = "Bush (Red)";
sprite = "BSZ6A0";
}
1451
{
title = "Bush (Purple)";
sprite = "BSZ6B0";
}
1452
{
title = "Bush (Blue)";
sprite = "BSZ6C0";
}
1453
{
title = "Bush (Cyan)";
sprite = "BSZ6D0";
}
1454
{
title = "Bush (Yellow)";
sprite = "BSZ6E0";
}
1455
{
title = "Bush (Orange)";
sprite = "BSZ6F0";
}
1460
{
title = "Vine (Red)";
sprite = "BSZ7A0";
}
1461
{
title = "Vine (Purple)";
sprite = "BSZ7B0";
}
1462
{
title = "Vine (Blue)";
sprite = "BSZ7C0";
}
1463
{
title = "Vine (Cyan)";
sprite = "BSZ7D0";
}
1464
{
title = "Vine (Yellow)";
sprite = "BSZ7E0";
}
1465
{
title = "Vine (Orange)";
sprite = "BSZ7F0";
}
1470
{
title = "BSZ Shrub";
sprite = "BSZ8A0";
}
1471
{
title = "BSZ Clover";
sprite = "BSZ8B0";
}
1473
{
title = "Palm Tree (Big)";
width = 16;
height = 160;
sprite = "BSZ8D0";
}
1475
{
title = "Palm Tree (Small)";
width = 16;
height = 80;
sprite = "BSZ8F0";
}
}
azuretemple
{
color = 2; // Green
title = "Azure Temple";
1500
{
arrow = 1;
blocking = 2;
title = "Glaregoyle";
sprite = "BGARA1";
width = 16;
height = 40;
arg0
{
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
}
arg1
{
title = "Starting delay";
}
}
1501
{
arrow = 1;
blocking = 2;
title = "Glaregoyle (Up)";
sprite = "BGARA1";
width = 16;
height = 40;
arg0
{
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
}
arg1
{
title = "Starting delay";
}
}
1502
1502
{
arrow = 1;
blocking = 2;
......@@ -4169,6 +4235,7 @@ udmf
sprite = "BGARA1";
width = 16;
height = 40;
color = 17;
arg0
{
title = "Push behavior";
......@@ -4188,6 +4255,7 @@ udmf
sprite = "BGARA1";
width = 16;
height = 40;
color = 17;
arg0
{
title = "Push behavior";
......@@ -4205,6 +4273,7 @@ udmf
sprite = "RCRYB0";
width = 24;
height = 32;
color = 11;
}
1505
{
......@@ -4212,6 +4281,7 @@ udmf
sprite = "CFLMA0E0";
width = 8;
height = 32;
color = 17;
}
1506
{
......@@ -4221,6 +4291,7 @@ udmf
sprite = "BGARD1";
width = 16;
height = 40;
color = 6;
arg0
{
title = "Push behavior";
......@@ -4230,44 +4301,10 @@ udmf
}
}
dreamhill
{
color = 2; // Green
title = "Dream Hill";
1600
{
title = "Spring Tree";
sprite = "TRE6A0";
width = 16;
height = 32;
}
1601
{
title = "Shleep";
sprite = "SHLPA0";
width = 24;
height = 32;
}
1602
{
title = "Nightopian";
sprite = "NTPNA1";
width = 16;
height = 40;
arg0
{
title = "Can move?";
type = 11;
enum = "yesno";
}
}
}
nightstrk
{
color = 16; // Light Pink
title = "NiGHTS Track & Misc.";
title = "NiGHTS Track";
width = 8;
height = 4096;
sprite = "UNKNA0";
......@@ -4288,6 +4325,7 @@ udmf
arg2
{
title = "Radius";
default = 256;
}
arg3
{
......@@ -4326,12 +4364,21 @@ udmf
title = "Order";
}
}
}
nights
{
color = 13; // Pink
title = "NiGHTS Items & Misc.";
width = 16;
height = 32;
1703
{
title = "Ideya Drone";
sprite = "NDRNA1";
width = 16;
height = 56;
color = 16;
arg0
{
title = "Time limit";
......@@ -4369,6 +4416,7 @@ udmf
sprite = "CAPSA0";
width = 72;
height = 144;
color = 16;
arg0
{
title = "Mare";
......@@ -4384,20 +4432,12 @@ udmf
sprite = "internal:ideya";
width = 8;
height = 16;
color = 16;
arg0
{
title = "Mare";
}
}
}
nights
{
color = 13; // Pink
title = "NiGHTS Items";
width = 16;
height = 32;
1704
{
arrow = 1;
......@@ -4405,6 +4445,22 @@ udmf
sprite = "NBMPG3G7";
width = 32;
height = 64;
color = 12;
}
520
{
title = "Bomb Sphere";
sprite = "SPHRD0";
width = 16;
height = 24;
color = 17;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
}
1706
{
......@@ -4412,9 +4468,11 @@ udmf
sprite = "SPHRA0";
width = 16;
height = 24;
color = 14;
arg0
{
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
......@@ -4502,231 +4560,310 @@ udmf
width = 80;
height = 160;
centerhitbox = true;
color = 14;
arg0
{
title = "Radius";
default = 96;
}
}
}
mario
dreamhill
{
color = 6; // Brown
title = "Mario";
color = 2; // Green
title = "Dream Hill";
1800
1600
{
title = "Coin";
sprite = "COINA0";
title = "Spring Tree";
sprite = "TRE6A0";
width = 16;
height = 24;
arg0
{
title = "Float?";
type = 11;
enum = "yesno";
}
}
1801
{
arrow = 1;
title = "Goomba";
sprite = "GOOMA0";
width = 24;
height = 32;
}
1802
1601
{
arrow = 1;
title = "Goomba (Blue)";
sprite = "BGOMA0";
title = "Shleep";
sprite = "SHLPA0";
width = 24;
height = 32;
color = 9;
}
1803
{
title = "Fire Flower";
sprite = "FFWRB0";
width = 16;
height = 32;
}
1804
{
title = "Koopa Shell";
sprite = "SHLLA1";
width = 16;
height = 20;
}
1805
{
title = "Puma (Jumping Fireball)";
sprite = "PUMAA0";
width = 8;
height = 16;
arg0
{
title = "Jump strength";
}
}
1806
1602
{
title = "King Bowser";
sprite = "KOOPA0";
title = "Nightopian";
sprite = "NTPNA1";
width = 16;
height = 48;
arg0
{
title = "Death trigger tag";
type = 15;
}
}
1807
{
title = "Axe";
sprite = "MAXEA0";
width = 8;
height = 16;
height = 40;
color = 19;
arg0
{
title = "Death trigger tag";
type = 15;
title = "Can move?";
type = 11;
enum = "yesno";
}
}
1808
{
title = "Bush (Short)";
sprite = "MUS1A0";
width = 16;
height = 32;
}
1809
{
title = "Bush (Tall)";
sprite = "MUS2A0";
width = 16;
height = 32;
}
1810
{
title = "Toad";
sprite = "TOADA0";
width = 8;
height = 32;
}
}
christmasdisco
botanicserenity
{
color = 2; // Green
title = "Christmas & Disco";
title = "Botanic Serenity";
width = 16;
height = 32;
1850
{
title = "Christmas Pole";
sprite = "XMS1A0";
width = 16;
height = 40;
}
1851
{
title = "Candy Cane";
sprite = "XMS2A0";
width = 8;
height = 32;
}
1852
flowers
{
blocking = 2;
title = "Snowman";
sprite = "XMS3A0";
width = 16;
height = 64;
arg0
title = "Flowers";
1400
{
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
title = "Tall Flower (Red)";
sprite = "BSZ1A0";
}
}
1853
{
blocking = 2;
title = "Snowman (With Hat)";
sprite = "XMS3B0";
width = 16;
height = 80;
arg0
1401
{
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
title = "Tall Flower (Purple)";
sprite = "BSZ1B0";
}
1402
{
title = "Tall Flower (Blue)";
sprite = "BSZ1C0";
}
1403
{
title = "Tall Flower (Cyan)";
sprite = "BSZ1D0";
}
1404
{
title = "Tall Flower (Yellow)";
sprite = "BSZ1E0";
}
1405
{
title = "Tall Flower (Orange)";
sprite = "BSZ1F0";
}
1410
{
title = "Medium Flower (Red)";
sprite = "BSZ2A0";
}
1411
{
title = "Medium Flower (Purple)";
sprite = "BSZ2B0";
}
1412
{
title = "Medium Flower (Blue)";
sprite = "BSZ2C0";
}
1413
{
title = "Medium Flower (Cyan)";
sprite = "BSZ2D0";
}
1414
{
title = "Medium Flower (Yellow)";
sprite = "BSZ2E0";
}
1415
{
title = "Medium Flower (Orange)";
sprite = "BSZ2F0";
}
1420
{
title = "Short Flower (Red)";
sprite = "BSZ3A0";
}
1421
{
title = "Short Flower (Purple)";
sprite = "BSZ3B0";
}
1422
{
title = "Short Flower (Blue)";
sprite = "BSZ3C0";
}
1423
{
title = "Short Flower (Cyan)";
sprite = "BSZ3D0";
}
1424
{
title = "Short Flower (Yellow)";
sprite = "BSZ3E0";
}
1425
{
title = "Short Flower (Orange)";
sprite = "BSZ3F0";
}
}
1854
tulips
{
title = "Lamp Post";
sprite = "XMS4A0";
width = 8;
height = 120;
title = "Tulips";
1430
{
title = "Tulip (Red)";
sprite = "BST1A0";
}
1431
{
title = "Tulip (Purple)";
sprite = "BST2A0";
}
1432
{
title = "Tulip (Blue)";
sprite = "BST3A0";
}
1433
{
title = "Tulip (Cyan)";
sprite = "BST4A0";
}
1434
{
title = "Tulip (Yellow)";
sprite = "BST5A0";
}
1435
{
title = "Tulip (Orange)";
sprite = "BST6A0";
}
1440
{
title = "Cluster (Red)";
sprite = "BSZ5A0";
}
1441
{
title = "Cluster (Purple)";
sprite = "BSZ5B0";
}
1442
{
title = "Cluster (Blue)";
sprite = "BSZ5C0";
}
1443
{
title = "Cluster (Cyan)";
sprite = "BSZ5D0";
}
1444
{
title = "Cluster (Yellow)";
sprite = "BSZ5E0";
}
1445
{
title = "Cluster (Orange)";
sprite = "BSZ5F0";
}
}
1855
bushes
{
title = "Lamp Post (Snow)";
sprite = "XMS4B0";
width = 8;
height = 120;
title = "Bushes";
1450
{
title = "Bush (Red)";
sprite = "BSZ6A0";
}
1451
{
title = "Bush (Purple)";
sprite = "BSZ6B0";
}
1452
{
title = "Bush (Blue)";
sprite = "BSZ6C0";
}
1453
{
title = "Bush (Cyan)";
sprite = "BSZ6D0";
}
1454
{
title = "Bush (Yellow)";
sprite = "BSZ6E0";
}
1455
{
title = "Bush (Orange)";
sprite = "BSZ6F0";
}
}
1856
vines
{
title = "Hanging Star";
sprite = "XMS5A0";
width = 4;
height = 80;
hangs = 1;
title = "Vines";
1460
{
title = "Vine (Red)";
sprite = "BSZ7A0";
}
1461
{
title = "Vine (Purple)";
sprite = "BSZ7B0";
}
1462
{
title = "Vine (Blue)";
sprite = "BSZ7C0";
}
1463
{
title = "Vine (Cyan)";
sprite = "BSZ7D0";
}
1464
{
title = "Vine (Yellow)";
sprite = "BSZ7E0";
}
1465
{
title = "Vine (Orange)";
sprite = "BSZ7F0";
}
}
1857
1470
{
title = "Berry Bush (Snow)";
sprite = "BUS1B0";
width = 16;
height = 32;
title = "BSZ Shrub";
sprite = "BSZ8A0";
}
1858
1471
{
title = "Bush (Snow)";
sprite = "BUS2B0";
width = 16;
height = 32;
title = "BSZ Clover";
sprite = "BSZ8B0";
}
1859
1473
{
title = "Blueberry Bush (Snow)";
sprite = "BUS3B0";
title = "Palm Tree (Big)";
width = 16;
height = 32;
height = 160;
sprite = "BSZ8D0";
}
1875
1475
{
title = "Disco Ball";
sprite = "DBALA0";
title = "Palm Tree (Small)";
width = 16;
height = 54;
hangs = 1;
}
1876
{
arrow = 1;
blocking = 2;
title = "Eggman Disco Statue";
sprite = "ESTAB1";
width = 20;
height = 96;
arg0
{
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
}
height = 80;
sprite = "BSZ8F0";
}
}
......@@ -4800,197 +4937,254 @@ udmf
width = 16;
height = 40;
}
1909
1909
{
title = "Blue Stalagmite";
sprite = "STLGJ0";
width = 16;
height = 40;
}
}
christmasdisco
{
color = 2; // Green
title = "Christmas & Disco";
1850
{
title = "Christmas Pole";
sprite = "XMS1A0";
width = 16;
height = 40;
}
1851
{
title = "Candy Cane";
sprite = "XMS2A0";
width = 8;
height = 32;
}
1852
{
blocking = 2;
title = "Snowman";
sprite = "XMS3A0";
width = 16;
height = 64;
color = 6;
arg0
{
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
}
}
1853
{
title = "Blue Stalagmite";
sprite = "STLGJ0";
blocking = 2;
title = "Snowman (With Hat)";
sprite = "XMS3B0";
width = 16;
height = 40;
}
}
hauntedheights
{
color = 2; // Green
title = "Haunted Heights";
2000
{
title = "Smashing Spikeball";
sprite = "FMCEA0";
width = 18;
height = 28;
height = 80;
color = 6;
arg0
{
title = "Initial delay";
title = "Push behavior";
type = 11;
enum = "pushablebehavior";
}
}
2001
1854
{
title = "HHZ Grass";
sprite = "HHZMA0";
width = 16;
height = 40;
title = "Lamp Post";
sprite = "XMS4A0";
width = 8;
height = 120;
}
2002
1855
{
title = "HHZ Tentacle 1";
sprite = "HHZMB0";
width = 16;
height = 40;
title = "Lamp Post (Snow)";
sprite = "XMS4B0";
width = 8;
height = 120;
}
2003
1856
{
title = "HHZ Tentacle 2";
sprite = "HHZMC0";
width = 16;
height = 40;
title = "Hanging Star";
sprite = "XMS5A0";
width = 4;
height = 80;
hangs = 1;
}
2004
1857
{
title = "HHZ Stalagmite (Tall)";
sprite = "HHZME0";
title = "Berry Bush (Snow)";
sprite = "BUS1B0";
width = 16;
height = 40;
height = 32;
}
2005
1858
{
title = "HHZ Stalagmite (Short)";
sprite = "HHZMF0";
title = "Bush (Snow)";
sprite = "BUS2B0";
width = 16;
height = 40;
height = 32;
}
2006
1859
{
title = "Jack-o'-lantern 1";
sprite = "PUMKA0";
title = "Blueberry Bush (Snow)";
sprite = "BUS3B0";
width = 16;
height = 40;
arg0
{
title = "Flicker";
type = 11;
enum = "yesno";
}
height = 32;
}
2007
1875
{
title = "Jack-o'-lantern 2";
sprite = "PUMKB0";
title = "Disco Ball";
sprite = "DBALA0";
width = 16;
height = 40;
height = 54;
hangs = 1;
}
1876
{
arrow = 1;
blocking = 2;
title = "Eggman Disco Statue";
sprite = "ESTAB1";
width = 20;
height = 96;
color = 6;
arg0
{
title = "Flicker";
title = "Push behavior";
type = 11;
enum = "yesno";
enum = "pushablebehavior";
}
}
2008
}
mario
{
color = 2; // Green
title = "Mario";
1800
{
title = "Jack-o'-lantern 3";
sprite = "PUMKC0";
title = "Coin";
sprite = "COINA0";
width = 16;
height = 40;
height = 24;
color = 14;
arg0
{
title = "Flicker";
title = "Float?";
tooltip = "This raises the object by 24 fracunits.";
type = 11;
enum = "yesno";
}
}
2009
{
title = "Purple Mushroom";
sprite = "SHRMD0";
width = 16;
height = 48;
}
2010
1801
{
title = "HHZ Tree";
sprite = "HHPLC0";
width = 12;
height = 40;
arrow = 1;
title = "Goomba";
sprite = "GOOMA0";
width = 24;
height = 32;
color = 9;
}
}
frozenhillside
{
color = 2; // Green
title = "Frozen Hillside";
2100
1802
{
title = "Ice Shard (Small)";
sprite = "FHZIA0";
width = 8;
arrow = 1;
title = "Goomba (Blue)";
sprite = "BGOMA0";
width = 24;
height = 32;
color = 9;
}
2101
1803
{
title = "Ice Shard (Large)";
sprite = "FHZIB0";
width = 8;
title = "Fire Flower";
sprite = "FFWRB0";
width = 16;
height = 32;
color = 14;
}
2102
1804
{
title = "Crystal Tree (Aqua)";
sprite = "TRE3A0";
width = 20;
height = 200;
title = "Koopa Shell";
sprite = "SHLLA1";
width = 16;
height = 20;
color = 11;
}
2103
1805
{
title = "Crystal Tree (Pink)";
sprite = "TRE3B0";
width = 20;
height = 200;
title = "Puma (Jumping Fireball)";
sprite = "PUMAA0";
width = 8;
height = 16;
color = 17;
arg0
{
title = "Jump strength";
}
}
2104
1806
{
title = "Amy Cameo";
sprite = "ROSYA1";
title = "King Bowser";
sprite = "KOOPA0";
width = 16;
height = 48;
color = 4;
arg0
{
title = "Grayscale?";
type = 11;
enum = "noyes";
title = "Death trigger tag";
type = 15;
}
}
2105
{
title = "Mistletoe";
sprite = "XMS6A0";
width = 52;
height = 106;
}
}
tutorial
{
color = 2; // Green
title = "Tutorial";
799
1807
{
title = "Tutorial Plant";
sprite = "TUPFH0";
width = 40;
height = 144;
title = "Axe";
sprite = "MAXEA0";
width = 8;
height = 16;
color = 11;
arg0
{
title = "Start frame";
title = "Death trigger tag";
type = 15;
}
}
1808
{
title = "Bush (Short)";
sprite = "MUS1A0";
width = 16;
height = 32;
color = 2;
}
1809
{
title = "Bush (Tall)";
sprite = "MUS2A0";
width = 16;
height = 32;
color = 2;
}
1810
{
title = "Toad";
sprite = "TOADA0";
width = 8;
height = 32;
color = 2;
}
}
flickies
{
color = 2; // Green
color = 6; // Brown
title = "Flickies";
width = 8;
height = 20;
......@@ -5380,7 +5574,7 @@ udmf
}
}
}
editor
{
color = 15; // White
......@@ -5393,4 +5587,4 @@ udmf
3328 = "3D Mode Start";
}
}
\ No newline at end of file
}
/*********************************************************\
Zone Builder Game Configuration
For Sonic Robo Blast 2 Version 2.2
Contributors (alphabetical):
* Foxboy
* FuriousFox
* JJames19119
* Kalaron
* Kristos
* MascaraSnake
* mazmazz
* Morpheus
* Neo Chaotikal
* Nev3r
* Oogaland
* Rob
* Shadow Hog
* sphere
* SRB2-Playah
* SSNTails
* SteelT
* ST218
* toaster
* Viola
\*********************************************************/
// This is required to prevent accidental use of a different configuration
type = "Doom Builder 2 Game Configuration";
// This is the title to show for this game
game = "Sonic Robo Blast 2 - 2.2 (legacy)";
//GZDB specific. Don't try to load lumps that don't exist.
basegame = "doom";
// This is the simplified game engine/sourceport name
engine = "zdoom";
// When this is set to true, sectors with the same tag will light up when a line is highlighted
linetagindicatesectors = true;
// The format interface handles the map data format - DoomMapSetIO for SRB2DB2, SRB2MapSetIO for Zone Builder
formatinterface = "DoomMapSetIO";
//Maximum safe map size check (0 means skip check)
safeboundary = 0;
//Sky textures for vanilla maps
defaultskytextures
{
SKY1 = "MAP01,MAP02,MAP03,MAP33,MAP50,MAP60,MAPF0,MAPM0";
SKY2 = "MAPM7,MAPMB";
SKY4 = "MAP04,MAP06,MAP61,MAPF6,MAPM1";
SKY6 = "MAP05,MAP51,MAPMA";
SKY7 = "MAPM2,MAPM5";
SKY8 = "MAP07,MAP08,MAP09,MAP52,MAP62,MAPF1";
SKY10 = "MAP10,MAP12,MAP53,MAP63,MAPM3";
SKY11 = "MAP11,MAPF7";
SKY13 = "MAP13,MAP64";
SKY14 = "MAP14";
SKY15 = "MAP15,MAP54";
SKY17 = "MAP70";
SKY20 = "MAP32,MAP55,MAP65,MAPF2,MAPF5";
SKY21 = "MAPM4";
SKY22 = "MAP22,MAP23,MAP25,MAP26,MAP27,MAP56,MAP66,MAPF4,MAPM6";
SKY30 = "MAP30";
SKY31 = "MAP31";
SKY35 = "MAP42";
SKY40 = "MAP41,MAP71,MAPM9";
SKY55 = "MAPF3,MAPM8";
SKY68 = "MAPF8";
SKY99 = "MAP57,MAPZ0";
SKY159 = "MAP16";
SKY172 = "MAP40";
SKY300 = "MAP72";
SKY301 = "MAP73";
}
// Default lump name for new map
defaultlumpname = "MAP01";
// Default testing parameters
testparameters = "-folder \"%AF\" -file \"%AA\" \"%F\" -warp %L";
testshortpaths = true;
// Default nodebuilder configurations
defaultsavecompiler = "zennode_normal";
defaulttestcompiler = "zennode_fast";
// Skill levels
skills
{
1 = "Normal";
}
// Skins
skins
{
Sonic;
Tails;
Knuckles;
Amy;
Fang;
Metalsonic;
}
// Gametypes
gametypes
{
-1 = "Single Player";
0 = "Co-op";
1 = "Competition";
2 = "Race";
3 = "Match";
4 = "Team Match";
5 = "Tag";
6 = "Hide and Seek";
7 = "CTF";
}
// Special linedefs
soundlinedefflag = 64; // See linedefflags
singlesidedflag = 1; // See linedefflags
doublesidedflag = 4; // See linedefflags
impassableflag = 1;
upperunpeggedflag = 8;
lowerunpeggedflag = 16;
repeatmidtextureflag = 1024;
pegmidtextureflag = 256;
// Generalized actions
generalizedlinedefs = false;
generalizedsectors = true;
// Texture loading options
defaultwalltexture = "GFZROCK";
defaultfloortexture = "GFZFLR01";
defaultceilingtexture = "F_SKY1";
mixtexturesflats = true;
defaulttexturescale = 1.0f;
defaultflatscale = 1.0f;
// Thing number for start position in 3D Mode
start3dmode = 3328;
/*
TEXTURES AND FLAT SOURCES
This tells Doom Builder where to find the information for textures
and flats in the IWAD file, Addition WAD file and Map WAD file.
Start and end lumps must be given in a structure (of which the
key name doesnt matter) and any textures or flats in between them
are loaded in either the textures category or flats category.
For textures: PNAMES, TEXTURE1 and TEXTURE2 are loaded by default.
Kalaron: and now TX_START
*/
// Texture sources
textures
{
zdoom1
{
start = "TX_START";
end = "TX_END";
}
}
// Patch sources
patches
{
standard1
{
start = "P_START";
end = "P_END";
}
standard2
{
start = "PP_START";
end = "PP_END";
}
}
// Sprite sources
sprites
{
standard1
{
start = "S_START";
end = "S_END";
}
standard2
{
start = "SS_START";
end = "SS_END";
}
}
// Flat sources
flats
{
standard1
{
start = "F_START";
end = "F_END";
}
standard2
{
start = "FF_START";
end = "FF_END";
}
standard3
{
start = "FF_START";
end = "F_END";
}
standard4
{
start = "F_START";
end = "FF_END";
}
}
/*
GAME DETECT PATTERN
Used to guess the game for which a WAD file is made.
1 = One of these lumps must exist
2 = None of these lumps must exist
3 = All of these lumps must exist
*/
gamedetect
{
EXTENDED = 2;
BEHAVIOR = 2;
E#M# = 2;
MAP?? = 1;
}
/*
MAP LUMP NAMES
Map lumps are loaded with the map as long as they are right after each other. When the editor
meets a lump which is not defined in this list it will ignore the map if not satisfied.
The order of items defines the order in which lumps will be written to WAD file on save.
To indicate the map header lump, use ~MAP
Legenda:
required = Lump is required to exist.
blindcopy = Lump will be copied along with the map blindly. (usefull for lumps Doom Builder doesn't use)
nodebuild = The nodebuilder generates this lump.
allowempty = The nodebuilder is allowed to leave this lump empty.
script = This lump is a text-based script. Specify the filename of the script configuration to use.
*/
maplumpnames
{
~MAP
{
required = true;
blindcopy = true;
nodebuild = false;
}
THINGS
{
required = true;
nodebuild = true;
allowempty = true;
}
LINEDEFS
{
required = true;
nodebuild = true;
allowempty = false;
}
SIDEDEFS
{
required = true;
nodebuild = true;
allowempty = false;
}
VERTEXES
{
required = true;
nodebuild = true;
allowempty = false;
}
SEGS
{
required = false;
nodebuild = true;
allowempty = false;
}
SSECTORS
{
required = false;
nodebuild = true;
allowempty = false;
}
NODES
{
required = false;
nodebuild = true;
allowempty = false;
}
SECTORS
{
required = true;
nodebuild = true;
allowempty = false;
}
REJECT
{
required = false;
nodebuild = true;
allowempty = false;
}
BLOCKMAP
{
required = false;
nodebuild = true;
allowempty = true;
}
}
scriptlumpnames
{
MAINCFG
{
script = "SOC.cfg";
}
OBJCTCFG
{
script = "SOC.cfg";
}
SOC_
{
script = "SOC.cfg";
isprefix = true;
}
LUA_
{
script = "Lua.cfg";
isprefix = true;
}
}
// DEFAULT SECTOR BRIGHTNESS LEVELS
sectorbrightness
{
255;
248;
240;
232;
224;
216;
208;
200;
192;
184;
176;
168;
160;
152;
144;
136;
128;
120;
112;
104;
96;
88;
80;
72;
64;
56;
48;
40;
32;
24;
16;
8;
0;
}
// SECTOR TYPES-----------------------------------------------------------------
sectortypes
{
0 = "Normal";
1 = "Damage";
2 = "Damage (Water)";
3 = "Damage (Fire)";
4 = "Damage (Electrical)";
5 = "Spikes";
6 = "Death Pit (Camera Tilt)";
7 = "Death Pit (No Camera Tilt)";
8 = "Instant Kill";
9 = "Ring Drainer (Floor Touch)";
10 = "Ring Drainer (Anywhere in Sector)";
11 = "Special Stage Damage";
12 = "Space Countdown";
13 = "Ramp Sector (double step-up/down)";
14 = "Non-Ramp Sector (no step-down)";
15 = "Bouncy FOF <deprecated>";
16 = "Trigger Line Ex. (Pushable Objects)";
32 = "Trigger Line Ex. (Anywhere, All Players)";
48 = "Trigger Line Ex. (Floor Touch, All Players)";
64 = "Trigger Line Ex. (Anywhere in Sector)";
80 = "Trigger Line Ex. (Floor Touch)";
96 = "Trigger Line Ex. (Emerald Check) <deprecated>";
112 = "Trigger Line Ex. (NiGHTS Mare) <deprecated>";
128 = "Check for Linedef Executor on FOFs";
144 = "Egg Capsule";
160 = "Special Stage Time/Spheres Parameters <deprecated>";
176 = "Custom Global Gravity <deprecated>";
512 = "Wind/Current <deprecated>";
1024 = "Conveyor Belt <deprecated>";
1280 = "Speed Pad";
1536 = "Flip Gravity on Jump";
4096 = "Star Post Activator";
8192 = "Exit/Special Stage Pit/Return Flag";
12288 = "CTF Red Team Base";
16384 = "CTF Blue Team Base";
20480 = "Fan Sector";
24576 = "Super Sonic Transform";
28672 = "Force Spin";
32768 = "Zoom Tube Start";
36864 = "Zoom Tube End";
40960 = "Circuit Finish Line";
45056 = "Rope Hang";
49152 = "Intangible to the Camera";
}
// GENERALISED SECTOR TYPES-----------------------------------------------------------------
gen_sectortypes
{
first
{
0 = "Normal";
1 = "Damage";
2 = "Damage (Water)";
3 = "Damage (Fire)";
4 = "Damage (Electrical)";
5 = "Spikes";
6 = "Death Pit (Camera Tilt)";
7 = "Death Pit (No Camera Tilt)";
8 = "Instant Kill";
9 = "Ring Drainer (Floor Touch)";
10 = "Ring Drainer (Anywhere in Sector)";
11 = "Special Stage Damage";
12 = "Space Countdown";
13 = "Ramp Sector (double step-up/down)";
14 = "Non-Ramp Sector (no step-down)";
15 = "Bouncy FOF <deprecated>";
}
second
{
0 = "Normal";
16 = "Trigger Line Ex. (Pushable Objects)";
32 = "Trigger Line Ex. (Anywhere, All Players)";
48 = "Trigger Line Ex. (Floor Touch, All Players)";
64 = "Trigger Line Ex. (Anywhere in Sector)";
80 = "Trigger Line Ex. (Floor Touch)";
96 = "Trigger Line Ex. (Emerald Check) <deprecated>";
112 = "Trigger Line Ex. (NiGHTS Mare) <deprecated>";
128 = "Check for Linedef Executor on FOFs";
144 = "Egg Capsule";
160 = "Special Stage Time/Spheres Parameters <deprecated>";
176 = "Custom Global Gravity <deprecated>";
}
third
{
0 = "Normal";
512 = "Wind/Current <deprecated>";
1024 = "Conveyor Belt <deprecated>";
1280 = "Speed Pad";
1536 = "Flip Gravity on Jump";
}
fourth
{
0 = "Normal";
4096 = "Star Post Activator";
8192 = "Exit/Special Stage Pit/Return Flag";
12288 = "CTF Red Team Base";
16384 = "CTF Blue Team Base";
20480 = "Fan Sector";
24576 = "Super Sonic Transform";
28672 = "Force Spin";
32768 = "Zoom Tube Start";
36864 = "Zoom Tube End";
40960 = "Circuit Finish Line";
45056 = "Rope Hang";
49152 = "Intangible to the Camera";
}
}
// LINEDEF FLAGS
linedefflags
{
1 = "[0] Impassable";
2 = "[1] Block Enemies";
4 = "[2] Double-Sided";
8 = "[3] Upper Unpegged";
16 = "[4] Lower Unpegged";
32 = "[5] Slope Skew (E1)";
64 = "[6] Not Climbable";
128 = "[7] No Midtexture Skew (E2)";
256 = "[8] Peg Midtexture (E3)";
512 = "[9] Solid Midtexture (E4)";
1024 = "[10] Repeat Midtexture (E5)";
2048 = "[11] Netgame Only";
4096 = "[12] No Netgame";
8192 = "[13] Effect 6";
16384 = "[14] Bouncy Wall";
32768 = "[15] Transfer Line";
}
// Linedef flags UDMF translation table
// This is needed for copy/paste and prefabs to work properly
// When the UDMF field name is prefixed with ! it is inverted
linedefflagstranslation
{
1 = "blocking";
2 = "blockmonsters";
4 = "twosided";
8 = "dontpegtop";
16 = "dontpegbottom";
32 = "secret";
64 = "blocksound";
128 = "dontdraw";
256 = "mapped";
}
// LINEDEF ACTIVATIONS
linedefactivations
{
}
// LINEDEF TYPES
linedeftypes
{
misc
{
title = "Miscellaneous";
0
{
title = "None";
prefix = "(0)";
}
1
{
title = "Per-Sector Gravity";
prefix = "(1)";
flags64text = "[6] Flip in reverse gravity";
flags8192text = "[13] Cancel MF2_OBJECTFLIP";
}
5
{
title = "Camera Scanner";
prefix = "(5)";
}
7
{
title = "Sector Flat Alignment";
prefix = "(7)";
flags2048text = "[11] Don't align floor";
flags4096text = "[12] Don't align ceiling";
flags8192text = "[13] Use texture offsets";
}
10
{
title = "Culling Plane";
prefix = "(10)";
flags64text = "[6] Cull only while in sector";
}
13
{
title = "Heat Wave Effect";
prefix = "(13)";
}
40
{
title = "Visual Portal Between Tagged Linedefs";
prefix = "(40)";
}
41
{
title = "Horizon Effect";
prefix = "(41)";
}
50
{
title = "Instantly Lower Floor on Level Load";
prefix = "(50)";
}
51
{
title = "Instantly Raise Ceiling on Level Load";
prefix = "(51)";
}
63
{
title = "Fake Floor/Ceiling Planes";
prefix = "(63)";
}
96
{
title = "Add Front Sector Tag to Tagged Sectors";
prefix = "(96)";
flags1024text = "[10] Offsets are target tags";
flags8192text = "[13] Add front side offsets";
flags32768text = "[15] Add back side offsets";
}
97
{
title = "Add Tag to Front Sector";
prefix = "(97)";
flags8192text = "[13] Add front side offsets";
flags32768text = "[15] Add back side offsets";
}
98
{
title = "Add Tag to Back Sector";
prefix = "(98)";
flags8192text = "[13] Add front side offsets";
flags32768text = "[15] Add back side offsets";
}
99
{
title = "Add Tag to Front and Back Sectors";
prefix = "(99)";
flags8192text = "[13] Add front side offsets";
flags32768text = "[15] Add back side offsets";
}
540
{
title = "Floor Friction";
prefix = "(540)";
}
}
parameters
{
title = "Parameters";
2
{
title = "Custom Exit";
prefix = "(2)";
flags2text = "[1] Check emeralds";
flags64text = "[6] Skip score tally";
}
3
{
title = "Zoom Tube Parameters";
prefix = "(3)";
flags512text = "[9] Ignore player direction";
}
4
{
title = "Speed Pad Parameters";
prefix = "(4)";
flags512text = "[9] No teleport to center";
flags1024text = "[10] Force spinning frames";
}
8
{
title = "Special Sector Properties";
prefix = "(8)";
flags32text = "[5] Invert precipitation";
flags64text = "[6] Touch only ceiling";
flags128text = "[7] Allow opposite gravity";
flags256text = "[8] Touch sector edge";
flags512text = "[9] Touch floor or ceiling";
}
9
{
title = "Chain Parameters";
prefix = "(9)";
flags32text = "[5] Swing instead of spin";
flags128text = "[7] Make chain from end item";
flags64text = "[6] Player-turnable chain";
flags256text = "[8] Spawn link at origin";
flags512text = "[9] Don't clip inside ground";
flags1024text = "[10] No distance check";
}
11
{
title = "Rope Hang Parameters";
prefix = "(11)";
flags32text = "[5] Don't loop";
flags64text = "[6] Static";
}
12
{
title = "Rock Spawner Parameters";
prefix = "(12)";
flags64text = "[6] Randomize speed";
}
14
{
title = "Bustable Block Parameters";
prefix = "(14)";
flags32text = "[5] Particles launch from center";
}
15
{
title = "Fan Particle Spawner Parameters";
prefix = "(15)";
}
16
{
title = "Minecart Parameters";
prefix = "(16)";
}
64
{
title = "Continuously Appearing/Disappearing FOF";
prefix = "(64)";
flags2text = "[1] Use control sector tag";
flags64text = "[6] No sound effect";
}
76
{
title = "Make FOF Bouncy";
prefix = "(76)";
}
}
polyobject
{
title = "PolyObject";
20
{
title = "PolyObject First Line";
prefix = "(20)";
}
22
{
title = "PolyObject Parameters";
prefix = "(22)";
flags8text = "[3] Set translucency by X offset";
flags32text = "[5] Render outer sides only";
flags64text = "[6] Trigger linedef executor";
flags128text = "[7] Intangible";
flags256text = "[8] Stopped by pushables";
flags512text = "[9] Render flats";
flags8192text = "[13] Cut cyan flat pixels";
}
30
{
title = "PolyObject Waving Flag";
prefix = "(30)";
}
31
{
title = "Move PolyObject by Front Sector Displacement";
prefix = "(31)";
}
32
{
title = "Rotate PolyObject by Front Sector Displacement";
prefix = "(32)";
flags64text = "[6] Don't turn players";
flags512text = "[9] Turn all objects";
}
}
planemove
{
title = "Plane Movement";
52
{
title = "Continuously Falling Sector";
prefix = "(52)";
flags64text = "[6] Continuously rising";
}
53
{
title = "Continuous Floor/Ceiling Mover";
prefix = "(53)";
}
54
{
title = "Continuous Floor Mover";
prefix = "(54)";
}
55
{
title = "Continuous Ceiling Mover";
prefix = "(55)";
}
56
{
title = "Continuous Two-Speed Floor/Ceiling Mover";
prefix = "(56)";
}
57
{
title = "Continuous Two-Speed Floor Mover";
prefix = "(57)";
}
58
{
title = "Continuous Two-Speed Ceiling Mover";
prefix = "(58)";
}
59
{
title = "Activate Moving Platform";
prefix = "(59)";
flags64text = "[6] Move upwards at start";
}
60
{
title = "Activate Moving Platform (Adjustable Speed)";
prefix = "(60)";
flags64text = "[6] Move upwards at start";
}
61
{
title = "Crusher (Ceiling to Floor)";
prefix = "(61)";
flags512text = "[9] Double, constant speed";
}
62
{
title = "Crusher (Floor to Ceiling)";
prefix = "(62)";
flags512text = "[9] Double, constant speed";
}
66
{
title = "Move Floor by Displacement";
prefix = "(66)";
flags64text = "[6] Inverse movement";
}
67
{
title = "Move Ceiling by Displacement";
prefix = "(67)";
flags64text = "[6] Inverse movement";
}
68
{
title = "Move Floor and Ceiling by Displacement";
prefix = "(68)";
flags64text = "[6] Inverse movement";
}
}
fofsolid
{
title = "FOF (solid)";
100
{
title = "Solid, Opaque";
prefix = "(100)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "19F";
}
101
{
title = "Solid, Opaque, No Shadow";
prefix = "(101)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "1DF";
}
102
{
title = "Solid, Translucent";
prefix = "(102)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Render insides";
flags128text = "[7] Only block non-players";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "195F";
flags643dfloorflagsadd = "7C80";
}
103
{
title = "Solid, Sides Only";
prefix = "(103)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "1CF";
}
104
{
title = "Solid, No Sides";
prefix = "(104)";
flags32text = "[5] Only block player";
flags64text = "[6] Cast shadow";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "1D7";
flags643dfloorflagsremove = "40";
}
105
{
title = "Solid, Invisible";
prefix = "(105)";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "47";
invisiblefof = true;
}
140
{
title = "Intangible from Bottom, Opaque";
prefix = "(140)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Don't cast shadow";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "200841F";
flags643dfloorflagsadd = "40";
}
141
{
title = "Intangible from Bottom, Translucent";
prefix = "(141)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Don't cast shadow";
flags128text = "[7] Render insides/block non-plr";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "200191F";
flags1283dfloorflagsadd = "7C80";
flags643dfloorflagsadd = "40";
}
142
{
title = "Intangible from Bottom, Translucent, No Sides";
prefix = "(142)";
flags32text = "[5] Only block player";
flags64text = "[6] Don't cast shadow";
flags128text = "[7] Render insides/block non-plr";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "2001917";
flags1283dfloorflagsadd = "7C80";
flags643dfloorflagsadd = "40";
}
143
{
title = "Intangible from Top, Opaque";
prefix = "(143)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Don't cast shadow";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "400841F";
flags643dfloorflagsadd = "40";
}
144
{
title = "Intangible from Top, Translucent";
prefix = "(144)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Don't cast shadow";
flags128text = "[7] Render insides/block non-plr";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "400191F";
flags1283dfloorflagsadd = "7C80";
flags643dfloorflagsadd = "40";
}
145
{
title = "Intangible from Top, Translucent, No Sides";
prefix = "(145)";
flags32text = "[5] Only block player";
flags64text = "[6] Don't cast shadow";
flags128text = "[7] Render insides/block non-plr";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "4001917";
flags1283dfloorflagsadd = "7C80";
flags643dfloorflagsadd = "40";
}
146
{
title = "Only Tangible from Sides";
prefix = "(146)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "600800F";
}
}
fofintangible
{
title = "FOF (intangible)";
120
{
title = "Water, Opaque";
prefix = "(120)";
flags2text = "[1] Make lava intangible";
flags8text = "[3] Slope skew sides";
flags64text = "[6] Use two light levels";
flags512text = "[9] Use target light level";
flags1024text = "[10] Ripple effect";
3dfloor = true;
3dfloorflags = "8F39";
flags643dfloorflagsadd = "20000";
flags5123dfloorflagsadd = "80000000";
flags10243dfloorflagsadd = "40000000";
}
121
{
title = "Water, Translucent";
prefix = "(121)";
flags2text = "[1] Make lava intangible";
flags8text = "[3] Slope skew sides";
flags64text = "[6] Use two light levels";
flags512text = "[9] Use target light level";
flags1024text = "[10] Ripple effect";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "9F39";
flags643dfloorflagsadd = "20000";
flags5123dfloorflagsadd = "80000000";
flags10243dfloorflagsadd = "40000000";
}
122
{
title = "Water, Opaque, No Sides";
prefix = "(122)";
flags2text = "[1] Make lava intangible";
flags64text = "[6] Use two light levels";
flags512text = "[9] Use target light level";
flags1024text = "[10] Ripple effect";
3dfloor = true;
3dfloorflags = "F31";
flags643dfloorflagsadd = "20000";
flags5123dfloorflagsadd = "80000000";
flags10243dfloorflagsadd = "40000000";
}
123
{
title = "Water, Translucent, No Sides";
prefix = "(123)";
flags2text = "[1] Make lava intangible";
flags64text = "[6] Use two light levels";
flags512text = "[9] Use target light level";
flags1024text = "[10] Ripple effect";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "1F31";
flags643dfloorflagsadd = "20000";
flags5123dfloorflagsadd = "80000000";
flags10243dfloorflagsadd = "40000000";
}
124
{
title = "Goo Water, Translucent";
prefix = "(124)";
flags2text = "[1] Make lava intangible";
flags8text = "[3] Slope skew sides";
flags64text = "[6] Use two light levels";
flags512text = "[9] Use target light level";
flags1024text = "[10] Ripple effect";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "209F39";
flags643dfloorflagsadd = "20000";
flags5123dfloorflagsadd = "80000000";
flags10243dfloorflagsadd = "40000000";
}
125
{
title = "Goo Water, Translucent, No Sides";
prefix = "(125)";
flags2text = "[1] Make lava intangible";
flags64text = "[6] Use two light levels";
flags512text = "[9] Use target light level";
flags1024text = "[10] Ripple effect";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "201F31";
flags643dfloorflagsadd = "20000";
flags5123dfloorflagsadd = "80000000";
flags10243dfloorflagsadd = "40000000";
}
220
{
title = "Intangible, Opaque";
prefix = "(220)";
flags8text = "[3] Slope skew sides";
3dfloor = true;
3dfloorflags = "8F19";
}
221
{
title = "Intangible, Translucent";
prefix = "(221)";
flags8text = "[3] Slope skew sides";
flags64text = "[6] Cast shadow";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "1B59";
flags643dfloorflagsremove = "40";
}
222
{
title = "Intangible, Sides Only";
prefix = "(222)";
flags8text = "[3] Slope skew sides";
flags64text = "[6] Cast shadow";
3dfloor = true;
3dfloorflags = "8249";
flags643dfloorflagsremove = "240";
}
223
{
title = "Intangible, Invisible";
prefix = "(223)";
3dfloor = true;
3dfloorflags = "41";
invisiblefof = true;
}
}
fofmoving
{
title = "FOF (moving)";
150
{
title = "Air Bobbing";
prefix = "(150)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "19F";
}
151
{
title = "Air Bobbing (Adjustable)";
prefix = "(151)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "19F";
}
152
{
title = "Reverse Air Bobbing (Adjustable)";
prefix = "(152)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "19F";
}
153
{
title = "Dynamically Sinking Platform";
prefix = "(153)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "19F";
}
160
{
title = "Water Bobbing";
prefix = "(160)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "4019F";
}
190
{
title = "Rising Platform, Solid, Opaque";
prefix = "(190)";
flags2text = "[1] Sink when stepped on";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "19F";
}
191
{
title = "Rising Platform, Solid, Opaque, No Shadow";
prefix = "(191)";
flags2text = "[1] Sink when stepped on";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "1DF";
}
192
{
title = "Rising Platform, Solid, Translucent";
prefix = "(192)";
flags2text = "[1] Sink when stepped on";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "195F";
}
193
{
title = "Rising Platform, Solid, Invisible";
prefix = "(193)";
flags2text = "[1] Sink when stepped on";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "47";
}
194
{
title = "Rising Platform, Intangible from Bottom, Opaque";
prefix = "(194)";
flags2text = "[1] Sink when stepped on";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash, no shadow";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "200841F";
flags643dfloorflagsadd = "40";
}
195
{
title = "Rising Platform, Intangible from Bottom, Translucent";
prefix = "(195)";
flags2text = "[1] Sink when stepped on";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash, no shadow";
flags128text = "[7] Only block non-players";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "2009D1F";
flags643dfloorflagsadd = "40";
}
}
fofcrumbling
{
title = "FOF (crumbling)";
170
{
title = "Crumbling, Respawn";
prefix = "(170)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "10019F";
}
171
{
title = "Crumbling, No Respawn";
prefix = "(171)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "80019F";
}
172
{
title = "Crumbling, Respawn, Intangible from Bottom";
prefix = "(172)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Don't cast shadow";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "210841F";
flags643dfloorflagsadd = "40";
}
173
{
title = "Crumbling, No Respawn, Intangible from Bottom";
prefix = "(173)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Don't cast shadow";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "218841F";
flags643dfloorflagsadd = "40";
}
174
{
title = "Crumbling, Respawn, Int. from Bottom, Translucent";
prefix = "(174)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Don't cast shadow";
flags128text = "[7] Only block non-players";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "210959F";
flags643dfloorflagsadd = "40";
}
175
{
title = "Crumbling, No Respawn, Int. from Bottom, Translucent";
prefix = "(175)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Don't cast shadow";
flags128text = "[7] Only block non-players";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "218959F";
flags643dfloorflagsadd = "40";
}
176
{
title = "Crumbling, Respawn, Floating, Bobbing";
prefix = "(176)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "14019F";
}
177
{
title = "Crumbling, No Respawn, Floating, Bobbing";
prefix = "(177)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "1C019F";
}
178
{
title = "Crumbling, Respawn, Floating";
prefix = "(178)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "14019F";
}
179
{
title = "Crumbling, No Respawn, Floating";
prefix = "(179)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "1C019F";
}
180
{
title = "Crumbling, Respawn, Air Bobbing";
prefix = "(180)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Spindash to move";
flags128text = "[7] Only block non-players";
3dfloor = true;
3dfloorflags = "10019F";
}
}
fofspecial
{
title = "FOF (special)";
200
{
title = "Light Block";
prefix = "(200)";
3dfloor = true;
3dfloorflags = "20201";
invisiblefof = true;
}
201
{
title = "Half Light Block";
prefix = "(201)";
3dfloor = true;
3dfloorflags = "201";
invisiblefof = true;
}
202
{
title = "Fog Block";
prefix = "(202)";
3dfloor = true;
3dfloorflags = "3EF01";
invisiblefof = true;
}
250
{
title = "Mario Block";
prefix = "(250)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Invisible block";
flags64text = "[6] Brick block";
3dfloor = true;
3dfloorflags = "40019F";
flags323dfloorflagsremove = "19E";
flags643dfloorflagsadd = "200000";
}
251
{
title = "Thwomp Block";
prefix = "(251)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
flags512text = "[9] Custom crushing sound";
flags1024text = "[10] Custom speed";
3dfloor = true;
3dfloorflags = "19F";
}
252
{
title = "Shatter Block";
prefix = "(252)";
flags8text = "[3] Slope skew sides";
flags64text = "[6] Shatter only from below";
flags512text = "[9] Shattered by pushables";
flags1024text = "[10] Trigger linedef executor";
3dfloor = true;
3dfloorflags = "880001D";
flags643dfloorflagsadd = "200002";
}
253
{
title = "Shatter Block, Translucent";
prefix = "(253)";
flags8text = "[3] Slope skew sides";
flags512text = "[9] Shattered by pushables";
flags1024text = "[10] Trigger linedef executor";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "880101D";
}
254
{
title = "Bustable Block";
prefix = "(254)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags64text = "[6] Strong characters only";
flags128text = "[7] Only block non-players";
flags512text = "[9] Shattered by pushables";
flags1024text = "[10] Trigger linedef executor";
3dfloor = true;
3dfloorflags = "80001F";
flags643dfloorflagsadd = "20000000";
}
255
{
title = "Spin-Bustable Block";
prefix = "(255)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
flags512text = "[9] Shattered by pushables";
flags1024text = "[10] Trigger linedef executor";
3dfloor = true;
3dfloorflags = "1080001F";
}
256
{
title = "Spin-Bustable Block, Translucent";
prefix = "(256)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
flags512text = "[9] Shattered by pushables";
flags1024text = "[10] Trigger linedef executor";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "1080101F";
}
257
{
title = "Quicksand";
prefix = "(257)";
flags8text = "[3] Slope skew sides";
flags1024text = "[10] Ripple effect";
3dfloor = true;
3dfloorflags = "1008219";
flags10243dfloorflagsadd = "40000000";
}
258
{
title = "Laser";
prefix = "(258)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Don't damage bosses";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorflags = "959";
}
259
{
title = "Custom FOF";
prefix = "(259)";
flags8text = "[3] Slope skew sides";
flags32text = "[5] Only block player";
flags128text = "[7] Only block non-players";
flags512text = "[9] Shattered by pushables";
flags1024text = "[10] Trigger linedef executor";
flags8192text = "[13] Cut cyan flat pixels";
3dfloor = true;
3dfloorcustom = true;
}
}
linedeftrigger
{
title = "Linedef Executor Trigger";
300
{
title = "Continuous";
prefix = "(300)";
flags1024text = "[10] Use faster, unordered execution";
}
301
{
title = "Each Time";
prefix = "(301)";
flags1024text = "[10] Use faster, unordered execution";
flags16384text = "[14] Also trigger on exit";
}
302
{
title = "Once";
prefix = "(302)";
flags1024text = "[10] Use faster, unordered execution";
}
303
{
title = "Ring Count - Continuous";
prefix = "(303)";
flags2text = "[1] Rings greater or equal";
flags64text = "[6] Rings less or equal";
flags512text = "[9] Consider all players";
flags1024text = "[10] Use faster, unordered execution";
}
304
{
title = "Ring Count - Once";
prefix = "(304)";
flags2text = "[1] Rings greater or equal";
flags64text = "[6] Rings less or equal";
flags512text = "[9] Consider all players";
flags1024text = "[10] Use faster, unordered execution";
}
305
{
title = "Character Ability - Continuous";
prefix = "(305)";
flags1024text = "[10] Use faster, unordered execution";
}
306
{
title = "Character Ability - Each Time";
prefix = "(306)";
flags1024text = "[10] Use faster, unordered execution";
flags16384text = "[14] Also trigger on exit";
}
307
{
title = "Character Ability - Once";
prefix = "(307)";
flags1024text = "[10] Use faster, unordered execution";
}
308
{
title = "Race Only - Once";
prefix = "(308)";
flags1024text = "[10] Use faster, unordered execution";
}
309
{
title = "CTF Red Team - Continuous";
prefix = "(309)";
flags1024text = "[10] Use faster, unordered execution";
}
310
{
title = "CTF Red Team - Each Time";
prefix = "(310)";
flags1024text = "[10] Use faster, unordered execution";
flags16384text = "[14] Also trigger on exit";
}
311
{
title = "CTF Blue Team - Continuous";
prefix = "(311)";
flags1024text = "[10] Use faster, unordered execution";
}
312
{
title = "CTF Blue Team - Each Time";
prefix = "(312)";
flags1024text = "[10] Use faster, unordered execution";
flags16384text = "[14] Also trigger on exit";
}
313
{
title = "No More Enemies - Once";
prefix = "(313)";
flags1024text = "[10] Use faster, unordered execution";
}
314
{
title = "Number of Pushables - Continuous";
prefix = "(314)";
flags64text = "[6] Number greater or equal";
flags512text = "[9] Number less";
flags1024text = "[10] Use faster, unordered execution";
}
315
{
title = "Number of Pushables - Once";
prefix = "(315)";
flags64text = "[6] Number greater or equal";
flags512text = "[9] Number less";
flags1024text = "[10] Use faster, unordered execution";
}
317
{
title = "Condition Set Trigger - Continuous";
prefix = "(317)";
flags1024text = "[10] Use faster, unordered execution";
}
318
{
title = "Condition Set Trigger - Once";
prefix = "(318)";
flags1024text = "[10] Use faster, unordered execution";
}
319
{
title = "Unlockable - Continuous";
prefix = "(319)";
flags1024text = "[10] Use faster, unordered execution";
}
320
{
title = "Unlockable - Once";
prefix = "(320)";
flags1024text = "[10] Use faster, unordered execution";
}
321
{
title = "Trigger After X Calls - Continuous";
prefix = "(321)";
flags64text = "[6] Trigger more than once";
flags1024text = "[10] Use faster, unordered execution";
}
322
{
title = "Trigger After X Calls - Each Time";
prefix = "(322)";
flags64text = "[6] Trigger more than once";
flags1024text = "[10] Use faster, unordered execution";
}
323
{
title = "NiGHTSerize - Each Time";
prefix = "(323)";
flags2text = "[1] Mare >= Front X Offset";
flags8text = "[3] Run only if player is NiGHTS";
flags16text = "[4] Count from lowest of players";
flags32text = "[5] Lap <= Front Y Offset";
flags64text = "[6] Mare <= Front X Offset";
flags128text = "[7] Lap >= Front Y Offset";
flags256text = "[8] Count laps from Bonus Time";
flags512text = "[9] Count from triggering player";
flags1024text = "[10] Use faster, unordered execution";
flags16384text = "[14] Run if no more mares";
flags32768text = "[15] Run if player is not NiGHTS";
}
324
{
title = "NiGHTSerize - Once";
prefix = "(324)";
flags2text = "[1] Mare >= Front X Offset";
flags8text = "[3] Run only if player is NiGHTS";
flags16text = "[4] Count from lowest of players";
flags32text = "[5] Lap <= Front Y Offset";
flags64text = "[6] Mare <= Front X Offset";
flags128text = "[7] Lap >= Front Y Offset";
flags256text = "[8] Count laps from Bonus Time";
flags512text = "[9] Count from triggering player";
flags1024text = "[10] Use faster, unordered execution";
flags16384text = "[14] Run if no more mares";
flags32768text = "[15] Run if player is not NiGHTS";
}
325
{
title = "De-NiGHTSerize - Each Time";
prefix = "(325)";
flags2text = "[1] Mare >= Front X Offset";
flags8text = "[3] Run if anyone is NiGHTS";
flags16text = "[4] Count from lowest of players";
flags32text = "[5] Lap <= Front Y Offset";
flags64text = "[6] Mare <= Front X Offset";
flags128text = "[7] Lap >= Front Y Offset";
flags256text = "[8] Count laps from Bonus Time";
flags512text = "[9] Count from triggering player";
flags1024text = "[10] Use faster, unordered execution";
flags32768text = "[15] Run if no one is NiGHTS";
}
326
{
title = "De-NiGHTSerize - Once";
prefix = "(326)";
flags2text = "[1] Mare >= Front X Offset";
flags8text = "[3] Run if anyone is NiGHTS";
flags16text = "[4] Count from lowest of players";
flags32text = "[5] Lap <= Front Y Offset";
flags64text = "[6] Mare <= Front X Offset";
flags128text = "[7] Lap >= Front Y Offset";
flags256text = "[8] Count laps from Bonus Time";
flags512text = "[9] Count from triggering player";
flags1024text = "[10] Use faster, unordered execution";
flags32768text = "[15] Run if no one is NiGHTS";
}
327
{
title = "NiGHTS Lap - Each Time";
prefix = "(327)";
flags2text = "[1] Mare >= Front X Offset";
flags16text = "[4] Count from lowest of players";
flags32text = "[5] Lap <= Front Y Offset";
flags64text = "[6] Mare <= Front X Offset";
flags128text = "[7] Lap >= Front Y Offset";
flags256text = "[8] Count laps from Bonus Time";
flags512text = "[9] Count from triggering player";
flags1024text = "[10] Use faster, unordered execution";
}
328
{
title = "NiGHTS Lap - Once";
prefix = "(328)";
flags2text = "[1] Mare >= Front X Offset";
flags16text = "[4] Count from lowest of players";
flags32text = "[5] Lap <= Front Y Offset";
flags64text = "[6] Mare <= Front X Offset";
flags128text = "[7] Lap >= Front Y Offset";
flags256text = "[8] Count laps from Bonus Time";
flags512text = "[9] Count from triggering player";
flags1024text = "[10] Use faster, unordered execution";
}
329
{
title = "Ideya Capture Touch - Each Time";
prefix = "(329)";
flags2text = "[1] Mare >= Front X Offset";
flags8text = "[3] Run regardless of spheres";
flags16text = "[4] Count from lowest of players";
flags32text = "[5] Lap <= Front Y Offset";
flags64text = "[6] Mare <= Front X Offset";
flags128text = "[7] Lap >= Front Y Offset";
flags256text = "[8] Count laps from Bonus Time";
flags512text = "[9] Count from triggering player";
flags1024text = "[10] Use faster, unordered execution";
flags16384text = "[14] Only if not enough spheres";
flags32768text = "[15] Run when entering Capture";
}
330
{
title = "Ideya Capture Touch - Once";
prefix = "(330)";
flags2text = "[1] Mare >= Front X Offset";
flags8text = "[3] Run regardless of spheres";
flags16text = "[4] Count from lowest of players";
flags32text = "[5] Lap <= Front Y Offset";
flags64text = "[6] Mare <= Front X Offset";
flags128text = "[7] Lap >= Front Y Offset";
flags256text = "[8] Count laps from Bonus Time";
flags512text = "[9] Count from triggering player";
flags1024text = "[10] Use faster, unordered execution";
flags16384text = "[14] Only if not enough spheres";
flags32768text = "[15] Run when entering Capture";
}
331
{
title = "Player Skin - Continuous";
prefix = "(331)";
flags64text = "[6] Disable for this skin";
flags1024text = "[10] Use faster, unordered execution";
}
332
{
title = "Player Skin - Each Time";
prefix = "(332)";
flags64text = "[6] Disable for this skin";
flags1024text = "[10] Use faster, unordered execution";
}
333
{
title = "Player Skin - Once";
prefix = "(333)";
flags64text = "[6] Disable for this skin";
flags1024text = "[10] Use faster, unordered execution";
}
334
{
title = "Object Dye - Continuous";
prefix = "(334)";
flags64text = "[6] Disable for this color";
flags1024text = "[10] Use faster, unordered execution";
}
335
{
title = "Object Dye - Each Time";
prefix = "(335)";
flags64text = "[6] Disable for this color";
flags1024text = "[10] Use faster, unordered execution";
}
336
{
title = "Object Dye - Once";
prefix = "(336)";
flags64text = "[6] Disable for this color";
flags1024text = "[10] Use faster, unordered execution";
}
337
{
title = "Emerald Check - Continuous";
prefix = "(337)";
}
338
{
title = "Emerald Check - Each Time";
prefix = "(338)";
}
339
{
title = "Emerald Check - Once";
prefix = "(339)";
}
340
{
title = "NiGHTS Mare - Continuous";
flags2text = "[1] Mare greater or equal";
flags64text = "[6] Mare less or equal";
prefix = "(340)";
}
341
{
title = "NiGHTS Mare - Each Time";
flags2text = "[1] Mare greater or equal";
flags64text = "[6] Mare less or equal";
prefix = "(341)";
}
342
{
title = "NiGHTS Mare - Once";
flags2text = "[1] Mare greater or equal";
flags64text = "[6] Mare less or equal";
prefix = "(342)";
}
343
{
title = "Gravity Check - Continuous";
flags2text = "[1] Check temporary reverse gravity";
flags64text = "[6] Check for reverse gravity";
prefix = "(343)";
}
344
{
title = "Gravity Check - Each Time";
flags2text = "[1] Check temporary reverse gravity";
flags64text = "[6] Check for reverse gravity";
prefix = "(344)";
}
345
{
title = "Gravity Check - Once";
flags2text = "[1] Check temporary reverse gravity";
flags64text = "[6] Check for reverse gravity";
prefix = "(345)";
}
399
{
title = "Level Load";
prefix = "(399)";
flags1024text = "[10] Use faster, unordered execution";
}
}
linedefexecsector
{
title = "Linedef Executor (sector)";
400
{
title = "Set Tagged Sector's Floor Height/Texture";
prefix = "(400)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Don't change floor texture";
}
401
{
title = "Set Tagged Sector's Ceiling Height/Texture";
prefix = "(401)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Don't change ceiling texture";
}
402
{
title = "Copy Light Level to Tagged Sectors";
prefix = "(402)";
flags8text = "[3] Set delay by backside sector";
}
408
{
title = "Set Tagged Sector's Flats";
prefix = "(408)";
flags64text = "[6] Don't set floor flat";
flags512text = "[9] Don't set ceiling flat";
}
409
{
title = "Change Tagged Sector's Tag";
prefix = "(409)";
flags2text = "[1] Remove tag";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Add tag";
}
410
{
title = "Change Front Sector's Tag";
prefix = "(410)";
flags2text = "[1] Remove tag";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Add tag";
}
416
{
title = "Start Adjustable Flickering Light";
prefix = "(416)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Second level from back";
}
417
{
title = "Start Adjustable Pulsating Light";
prefix = "(417)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Second level from back";
}
418
{
title = "Start Adjustable Blinking Light (unsynchronized)";
prefix = "(418)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Second level from back";
}
419
{
title = "Start Adjustable Blinking Light (synchronized)";
prefix = "(419)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Second level from back";
}
420
{
title = "Fade Light Level";
prefix = "(420)";
flags8text = "[3] Set delay by backside sector";
flags16text = "[4] Set params by X/Y offsets";
flags512text = "[9] Speed = Tic Duration";
flags1024text = "[10] Override existing fade";
}
421
{
title = "Stop Lighting Effect";
prefix = "(421)";
flags8text = "[3] Set delay by backside sector";
}
435
{
title = "Change Plane Scroller Direction";
prefix = "(435)";
flags8text = "[3] Set delay by backside sector";
}
467
{
title = "Set Tagged Sector's Light Level";
prefix = "(467)";
flags8text = "[3] Set delay by backside sector";
flags256text = "[8] Set relative to current";
}
}
linedefexecplane
{
title = "Linedef Executor (plane movement)";
403
{
title = "Move Tagged Sector's Floor";
prefix = "(403)";
flags2text = "[1] Trigger linedef executor";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Change floor texture";
}
404
{
title = "Move Tagged Sector's Ceiling";
prefix = "(404)";
flags2text = "[1] Trigger linedef executor";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Change ceiling texture";
}
405
{
title = "Move Floor According to Front Texture Offsets";
prefix = "(405)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Move instantly";
}
407
{
title = "Move Ceiling According to Front Texture Offsets";
prefix = "(407)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Move instantly";
}
411
{
title = "Stop Plane Movement";
prefix = "(411)";
flags8text = "[3] Set delay by backside sector";
}
428
{
title = "Start Platform Movement";
prefix = "(428)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Move upwards at start";
}
429
{
title = "Crush Ceiling Once";
prefix = "(429)";
flags8text = "[3] Set delay by backside sector";
flags512text = "[9] Double, constant speed";
}
430
{
title = "Crush Floor Once";
prefix = "(430)";
flags8text = "[3] Set delay by backside sector";
}
431
{
title = "Crush Floor and Ceiling Once";
prefix = "(431)";
flags8text = "[3] Set delay by backside sector";
flags512text = "[9] Double, constant speed";
}
}
linedefexecplayer
{
title = "Linedef Executor (player/object)";
412
{
title = "Teleporter";
prefix = "(412)";
flags2text = "[1] Silent";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Retain angle";
flags256text = "[8] Relative, silent";
flags512text = "[9] Retain momentum";
}
425
{
title = "Change Object State";
prefix = "(425)";
flags8text = "[3] Set delay by backside sector";
}
426
{
title = "Stop Object";
prefix = "(426)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Teleport to sector center";
}
427
{
title = "Award Score";
prefix = "(427)";
flags8text = "[3] Set delay by backside sector";
}
432
{
title = "Enable/Disable 2D Mode";
prefix = "(432)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Return to 3D";
}
433
{
title = "Enable/Disable Gravity Flip";
prefix = "(433)";
flags2text = "[1] Force MFE_VERTICALFLIP";
flags8text = "[3] Set delay by backside sector";
flags32text = "[5] Invert current gravity";
flags64text = "[6] Return to normal";
}
434
{
title = "Award Power-Up";
prefix = "(434)";
flags2text = "[1] Use back upper texture";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] No time limit";
}
437
{
title = "Disable Player Control";
prefix = "(437)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Allow jumping";
}
438
{
title = "Change Object Size";
prefix = "(438)";
flags8text = "[3] Set delay by backside sector";
}
442
{
title = "Change Object Type State";
prefix = "(442)";
flags8text = "[3] Set delay by backside sector";
}
449
{
title = "Enable Bosses with Parameter";
prefix = "(449)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Disable bosses";
}
457
{
title = "Track Object's Angle";
prefix = "(457)";
flags8text = "[3] Set delay by backside sector";
flags128text = "[7] Don't stop after first fail";
}
458
{
title = "Stop Tracking Object's Angle";
prefix = "(458)";
flags8text = "[3] Set delay by backside sector";
}
460
{
title = "Award Rings";
prefix = "(460)";
flags8text = "[3] Set delay by backside sector";
}
461
{
title = "Spawn Object";
prefix = "(461)";
flags8text = "[3] Set delay by backside sector";
flags32text = "[5] Use line angle for object";
flags64text = "[6] Spawn inside a range";
}
462
{
title = "Stop Timer/Exit Stage in Record Attack";
prefix = "(462)";
flags8text = "[3] Set delay by backside sector";
}
463
{
title = "Dye Object";
prefix = "(463)";
}
464
{
title = "Trigger Egg Capsule";
prefix = "(464)";
flags64text = "[6] Don't end level";
}
}
linedefexecmisc
{
title = "Linedef Executor (misc.)";
413
{
title = "Change Music";
prefix = "(413)";
flags2text = "[1] Keep after death";
flags8text = "[3] Set delay by backside sector";
flags32text = "[5] Seek from current position";
flags64text = "[6] For everyone";
flags128text = "[7] Fade to custom volume";
flags512text = "[9] Don't loop";
flags16384text = "[14] Force music reload";
}
414
{
title = "Play Sound Effect";
prefix = "(414)";
flags2text = "[1] From calling sector";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] From nowhere for triggerer";
flags512text = "[9] From nowhere for everyone";
flags1024text = "[10] From tagged sectors";
}
415
{
title = "Run Script";
prefix = "(415)";
flags8text = "[3] Set delay by backside sector";
}
422
{
title = "Switch to Cut-Away View";
prefix = "(422)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Adjust pitch";
}
423
{
title = "Change Sky";
prefix = "(423)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] For everyone";
}
424
{
title = "Change Weather";
prefix = "(424)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] For everyone";
}
436
{
title = "Shatter FOF";
prefix = "(436)";
flags8text = "[3] Set delay by backside sector";
}
439
{
title = "Change Tagged Linedef's Textures";
prefix = "(439)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Only existing";
flags8192text = "[13] Use backside textures";
}
440
{
title = "Start Metal Sonic Race";
prefix = "(440)";
flags8text = "[3] Set delay by backside sector";
}
441
{
title = "Condition Set Trigger";
prefix = "(441)";
flags8text = "[3] Set delay by backside sector";
}
443
{
title = "Call Lua Function";
prefix = "(443)";
flags8text = "[3] Set delay by backside sector";
}
444
{
title = "Earthquake";
prefix = "(444)";
flags8text = "[3] Set delay by backside sector";
}
445
{
title = "Make FOF Disappear/Reappear";
prefix = "(445)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Reappear";
}
446
{
title = "Make FOF Crumble";
prefix = "(446)";
flags2text = "[1] Flags determine respawn";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Don't respawn";
}
447
{
title = "Change Tagged Sector's Colormap";
prefix = "(447)";
flags8text = "[3] Set delay by backside sector";
flags16text = "[4] Front X/Y = Alpha";
flags32text = "[5] Subtract Red value";
flags64text = "[6] Subtract Green value";
flags128text = "[7] Subtract Blue value";
flags256text = "[8] Set relative to current";
flags32768text = "[15] Use backside colormap";
}
448
{
title = "Change Skybox";
prefix = "(448)";
flags2text = "[1] Change centerpoint";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] For everyone";
flags512text = "[9] Don't change viewpoint";
}
450
{
title = "Execute Linedef Executor (specific tag)";
prefix = "(450)";
flags8text = "[3] Set delay by backside sector";
}
451
{
title = "Execute Linedef Executor (random tag in range)";
prefix = "(451)";
flags8text = "[3] Set delay by backside sector";
}
452
{
title = "Set FOF Translucency";
prefix = "(452)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Do not handle FF_TRANS";
flags256text = "[8] Set relative to current";
}
453
{
title = "Fade FOF";
prefix = "(453)";
flags2text = "[1] Do not handle FF_EXISTS";
flags8text = "[3] Set delay by backside sector";
flags32text = "[5] No collision during fade";
flags64text = "[6] Do not handle FF_TRANS";
flags128text = "[7] Do not handle lighting";
flags256text = "[8] Set relative to current";
flags512text = "[9] Speed = Tic Duration";
flags1024text = "[10] Override existing fade";
flags16384text = "[14] Do not handle collision";
flags32768text = "[15] Use exact alpha in OGL";
}
454
{
title = "Stop Fading FOF";
prefix = "(454)";
flags2text = "[1] Do not finalize collision";
flags8text = "[3] Set delay by backside sector";
}
455
{
title = "Fade Tagged Sector's Colormap";
prefix = "(455)";
flags8text = "[3] Set delay by backside sector";
flags16text = "[4] Front X/Y = Alpha";
flags32text = "[5] Subtract Red value";
flags64text = "[6] Subtract Green value";
flags128text = "[7] Subtract Blue value";
flags256text = "[8] Set relative to current";
flags512text = "[9] Speed = Tic Duration";
flags1024text = "[10] Override existing fade";
flags16384text = "[14] Fade from invisible black";
flags32768text = "[15] Use backside colormap";
}
456
{
title = "Stop Fading Tagged Sector's Colormap";
prefix = "(456)";
flags8text = "[3] Set delay by backside sector";
}
459
{
title = "Control Text Prompt";
prefix = "(459)";
flags2text = "[1] Close text prompt";
flags8text = "[3] Set delay by backside sector";
flags32text = "[5] Run executor tag on close";
flags128text = "[7] Don't disable controls";
flags32768text = "[15] Find prompt by name";
}
}
linedefexecpoly
{
title = "Linedef Executor (polyobject)";
480
{
title = "PolyObject Door Slide";
prefix = "(480)";
flags8text = "[3] Set delay by backside sector";
}
481
{
title = "PolyObject Door Swing";
prefix = "(481)";
flags8text = "[3] Set delay by backside sector";
}
482
{
title = "Move PolyObject";
prefix = "(482)";
flags8text = "[3] Set delay by backside sector";
}
483
{
title = "Move PolyObject, Override";
prefix = "(483)";
flags8text = "[3] Set delay by backside sector";
}
484
{
title = "Rotate PolyObject Right";
prefix = "(484)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Don't turn players";
flags512text = "[9] Turn all objects";
}
485
{
title = "Rotate PolyObject Right, Override";
prefix = "(485)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Don't turn players";
flags512text = "[9] Turn all objects";
}
486
{
title = "Rotate PolyObject Left";
prefix = "(486)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Don't turn players";
flags512text = "[9] Turn all objects";
}
487
{
title = "Rotate PolyObject Left, Override";
prefix = "(487)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Don't turn players";
flags512text = "[9] Turn all objects";
}
488
{
title = "Move PolyObject by Waypoints";
prefix = "(488)";
flags8text = "[3] Set delay by backside sector";
flags32text = "[5] Reverse order";
flags128text = "[7] There and back";
flags256text = "[8] Return when done";
flags512text = "[9] Loop movement";
}
489
{
title = "Turn PolyObject Invisible, Intangible";
prefix = "(489)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Only invisible";
}
490
{
title = "Turn PolyObject Visible, Tangible";
prefix = "(490)";
flags8text = "[3] Set delay by backside sector";
flags64text = "[6] Only visible";
}
491
{
title = "Set PolyObject Translucency";
prefix = "(491)";
flags8text = "[3] Set delay by backside sector";
flags16text = "[4] Set raw alpha by Front X";
flags256text = "[8] Set relative to current";
}
492
{
title = "Fade PolyObject Translucency";
prefix = "(492)";
flags8text = "[3] Set delay by backside sector";
flags16text = "[4] Set raw alpha by Front X";
flags32text = "[5] No collision during fade";
flags256text = "[8] Set relative to current";
flags512text = "[9] Speed = Tic Duration";
flags1024text = "[10] Override existing fade";
flags16384text = "[14] Do not handle collision";
}
}
wallscroll
{
title = "Wall Scrolling";
500
{
title = "Scroll Front Wall Left";
prefix = "(500)";
}
501
{
title = "Scroll Front Wall Right";
prefix = "(501)";
}
502
{
title = "Scroll Tagged Walls";
prefix = "(502)";
flags128text = "[7] Use texture offsets";
flags256text = "[8] Scroll back side";
}
503
{
title = "Scroll Tagged Walls (Accelerative)";
prefix = "(503)";
flags128text = "[7] Use texture offsets";
flags256text = "[8] Scroll back side";
}
504
{
title = "Scroll Tagged Walls (Displacement)";
prefix = "(504)";
flags128text = "[7] Use texture offsets";
flags256text = "[8] Scroll back side";
}
505
{
title = "Scroll Front Wall by Front Side Offsets";
prefix = "(505)";
}
506
{
title = "Scroll Front Wall by Back Side Offsets";
prefix = "(506)";
}
507
{
title = "Scroll Back Wall by Front Side Offsets";
prefix = "(507)";
}
508
{
title = "Scroll Back Wall by Back Side Offsets";
prefix = "(508)";
}
}
planescroll
{
title = "Plane Scrolling";
510
{
title = "Scroll Floor Texture";
prefix = "(510)";
}
511
{
title = "Scroll Floor Texture (Accelerative)";
prefix = "(511)";
}
512
{
title = "Scroll Floor Texture (Displacement)";
prefix = "(512)";
}
513
{
title = "Scroll Ceiling Texture";
prefix = "(513)";
}
514
{
title = "Scroll Ceiling Texture (Accelerative)";
prefix = "(514)";
}
515
{
title = "Scroll Ceiling Texture (Displacement)";
prefix = "(515)";
}
520
{
title = "Carry Objects on Floor";
prefix = "(520)";
flags64text = "[6] Exclusive";
}
521
{
title = "Carry Objects on Floor (Accelerative)";
prefix = "(521)";
flags64text = "[6] Exclusive";
}
522
{
title = "Carry Objects on Floor (Displacement)";
prefix = "(522)";
flags64text = "[6] Exclusive";
}
523
{
title = "Carry Objects on Ceiling";
prefix = "(523)";
flags64text = "[6] Exclusive";
}
524
{
title = "Carry Objects on Ceiling (Accelerative)";
prefix = "(524)";
flags64text = "[6] Exclusive";
}
525
{
title = "Carry Objects on Ceiling (Displacement)";
prefix = "(525)";
flags64text = "[6] Exclusive";
}
530
{
title = "Scroll Floor Texture and Carry Objects";
prefix = "(530)";
flags64text = "[6] Exclusive";
}
531
{
title = "Scroll Floor Texture and Carry Objects (Accelerative)";
prefix = "(531)";
flags64text = "[6] Exclusive";
}
532
{
title = "Scroll Floor Texture and Carry Objects (Displacement)";
prefix = "(532)";
flags64text = "[6] Exclusive";
}
533
{
title = "Scroll Ceiling Texture and Carry Objects";
prefix = "(533)";
flags64text = "[6] Exclusive";
}
534
{
title = "Scroll Ceiling Texture and Carry Objects (Accelerative)";
prefix = "(534)";
flags64text = "[6] Exclusive";
}
535
{
title = "Scroll Ceiling Texture and Carry Objects (Displacement)";
prefix = "(535)";
flags64text = "[6] Exclusive";
}
}
pusher
{
title = "Pusher";
541
{
title = "Wind";
prefix = "(541)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive";
}
542
{
title = "Upwards Wind";
prefix = "(542)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive";
}
543
{
title = "Downwards Wind";
prefix = "(543)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive";
}
544
{
title = "Current";
prefix = "(544)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive";
}
545
{
title = "Upwards Current";
prefix = "(545)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive";
}
546
{
title = "Downwards Current";
prefix = "(546)";
flags512text = "[9] Player slides";
flags64text = "[6] Exclusive";
}
547
{
title = "Push/Pull";
prefix = "(547)";
flags64text = "[6] Exclusive";
}
}
light
{
title = "Lighting";
600
{
title = "Floor Lighting";
prefix = "(600)";
}
601
{
title = "Ceiling Lighting";
prefix = "(601)";
}
602
{
title = "Adjustable Pulsating Light";
prefix = "(602)";
}
603
{
title = "Adjustable Flickering Light";
prefix = "(603)";
}
604
{
title = "Adjustable Blinking Light (unsynchronized)";
prefix = "(604)";
}
605
{
title = "Adjustable Blinking Light (synchronized)";
prefix = "(605)";
}
606
{
title = "Colormap";
prefix = "(606)";
}
}
slope
{
title = "Slope";
700
{
title = "Slope Frontside Floor";
prefix = "(700)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags32768text = "[15] Copy to other side";
slope = "regular";
slopeargs = 1;
copyslopeargs = 1;
}
701
{
title = "Slope Frontside Ceiling";
prefix = "(701)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags32768text = "[15] Copy to other side";
slope = "regular";
slopeargs = 2;
copyslopeargs = 4;
}
702
{
title = "Slope Frontside Floor and Ceiling";
prefix = "(702)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags32768text = "[15] Copy to other side";
slope = "regular";
slopeargs = 3;
copyslopeargs = 5;
}
703
{
title = "Slope Frontside Floor and Backside Ceiling";
prefix = "(703)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags32768text = "[15] Copy to other side";
slope = "regular";
slopeargs = 9;
copyslopeargs = 8;
}
704
{
title = "Slope Frontside Floor by 3 Tagged Vertex Things";
prefix = "(704)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags8192text = "[13] Use tag and offsets";
slope = "vertex";
slopeargs = 0;
}
705
{
title = "Slope Frontside Ceiling by 3 Tagged Vertex Things";
prefix = "(705)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags8192text = "[13] Use tag and offsets";
slope = "vertex";
slopeargs = 1;
}
710
{
title = "Slope Backside Floor";
prefix = "(710)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags32768text = "[15] Copy to other side";
slope = "regular";
slopeargs = 4;
copyslopeargs = 2;
}
711
{
title = "Slope Backside Ceiling";
prefix = "(711)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags32768text = "[15] Copy to other side";
slope = "regular";
slopeargs = 8;
copyslopeargs = 8;
}
712
{
title = "Slope Backside Floor and Ceiling";
prefix = "(712)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags32768text = "[15] Copy to other side";
slope = "regular";
slopeargs = 12;
copyslopeargs = 10;
}
713
{
title = "Slope Backside Floor and Frontside Ceiling";
prefix = "(713)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags32768text = "[15] Copy to other side";
slope = "regular";
slopeargs = 6;
copyslopeargs = 6;
}
714
{
title = "Slope Backside Floor by 3 Tagged Vertex Things";
prefix = "(714)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags8192text = "[13] Use tag and offsets";
slope = "vertex";
slopeargs = 2;
}
715
{
title = "Slope Backside Ceiling by 3 Tagged Vertex Things";
prefix = "(715)";
flags2048text = "[11] No physics";
flags4096text = "[12] Dynamic";
flags8192text = "[13] Use tag and offsets";
slope = "vertex";
slopeargs = 3;
}
720
{
title = "Copy Frontside Floor Slope from Line Tag";
prefix = "(720)";
slope = "copy";
slopeargs = 1;
}
721
{
title = "Copy Frontside Ceiling Slope from Line Tag";
prefix = "(721)";
slope = "copy";
slopeargs = 2;
}
722
{
title = "Copy Frontside Floor and Ceiling Slope from Line Tag";
prefix = "(722)";
slope = "copy";
slopeargs = 3;
}
723
{
title = "Copy Backside Floor Slope from Line Tag";
prefix = "(723)";
slope = "copy";
slopeargs = 4;
}
724
{
title = "Copy Backside Ceiling Slope from Line Tag";
prefix = "(724)";
slope = "copy";
slopeargs = 8;
}
725
{
title = "Copy Backside Floor and Ceiling Slope from Line Tag";
prefix = "(725)";
slope = "copy";
slopeargs = 12;
}
730
{
title = "Copy Frontside Floor Slope to Backside";
prefix = "(730)";
slope = "copy";
copyslopeargs = 1;
}
731
{
title = "Copy Frontside Ceiling Slope to Backside";
prefix = "(731)";
slope = "copy";
copyslopeargs = 4;
}
732
{
title = "Copy Frontside Floor and Ceiling Slope to Backside";
prefix = "(732)";
slope = "copy";
copyslopeargs = 5;
}
733
{
title = "Copy Backside Floor Slope to Frontside";
prefix = "(733)";
slope = "copy";
copyslopeargs = 2;
}
734
{
title = "Copy Backside Ceiling Slope to Frontside";
prefix = "(734)";
slope = "copy";
copyslopeargs = 8;
}
735
{
title = "Copy Backside Floor and Ceiling Slope to Frontside";
prefix = "(735)";
slope = "copy";
copyslopeargs = 10;
}
799
{
title = "Set Tagged Dynamic Slope Vertex to Front Sector Height";
prefix = "(799)";
flags64text = "[6] Use relative heights";
}
}
transwall
{
title = "Translucent Walls";
900
{
title = "90% Opaque";
prefix = "(900)";
}
901
{
title = "80% Opaque";
prefix = "(901)";
}
902
{
title = "70% Opaque";
prefix = "(902)";
}
903
{
title = "60% Opaque";
prefix = "(903)";
}
904
{
title = "50% Opaque";
prefix = "(904)";
}
905
{
title = "40% Opaque";
prefix = "(905)";
}
906
{
title = "30% Opaque";
prefix = "(906)";
}
907
{
title = "20% Opaque";
prefix = "(907)";
}
908
{
title = "10% Opaque";
prefix = "(908)";
}
909
{
title = "Fog Wall";
prefix = "(909)";
}
910
{
title = "100% Additive";
prefix = "(910)";
}
911
{
title = "90% Additive";
prefix = "(911)";
}
912
{
title = "80% Additive";
prefix = "(912)";
}
913
{
title = "70% Additive";
prefix = "(913)";
}
914
{
title = "60% Additive";
prefix = "(914)";
}
915
{
title = "50% Additive";
prefix = "(915)";
}
916
{
title = "40% Additive";
prefix = "(916)";
}
917
{
title = "30% Additive";
prefix = "(917)";
}
918
{
title = "20% Additive";
prefix = "(918)";
}
919
{
title = "10% Additive";
prefix = "(919)";
}
920
{
title = "100% Subtractive";
prefix = "(920)";
}
921
{
title = "90% Subtractive";
prefix = "(921)";
}
922
{
title = "80% Subtractive";
prefix = "(922)";
}
923
{
title = "70% Subtractive";
prefix = "(923)";
}
924
{
title = "60% Subtractive";
prefix = "(924)";
}
925
{
title = "50% Subtractive";
prefix = "(925)";
}
926
{
title = "40% Subtractive";
prefix = "(926)";
}
927
{
title = "30% Subtractive";
prefix = "(927)";
}
928
{
title = "20% Subtractive";
prefix = "(928)";
}
929
{
title = "10% Subtractive";
prefix = "(929)";
}
930
{
title = "100% Reverse Subtractive";
prefix = "(930)";
}
931
{
title = "90% Reverse Subtractive";
prefix = "(931)";
}
932
{
title = "80% Reverse Subtractive";
prefix = "(932)";
}
933
{
title = "70% Reverse Subtractive";
prefix = "(933)";
}
934
{
title = "60% Reverse Subtractive";
prefix = "(934)";
}
935
{
title = "50% Reverse Subtractive";
prefix = "(935)";
}
936
{
title = "40% Reverse Subtractive";
prefix = "(936)";
}
937
{
title = "30% Reverse Subtractive";
prefix = "(937)";
}
938
{
title = "20% Reverse Subtractive";
prefix = "(938)";
}
939
{
title = "10% Reverse Subtractive";
prefix = "(939)";
}
940
{
title = "Modulate";
prefix = "(940)";
}
}
}
// THING FLAGS
thingflags
{
1 = "[1] Extra";
2 = "[2] Flip";
4 = "[4] Special";
8 = "[8] Ambush";
}
// Thing flags UDMF translation table
// This is needed for copy/paste and prefabs to work properly
// When the UDMF field name is prefixed with ! it is inverted
thingflagstranslation
{
1 = "skill1";
2 = "skill2";
4 = "skill3";
8 = "ambush";
}
// THING FLAGS ERROR MASK
// Mask for the thing flags which indicates the options
// that make the same thing appear in the same modes
thingflagsmask1 = 7; // 1 + 2 + 4
thingflagsmask2 = 0;
// THING TYPES------------------------------------------------------------------
// Color values: 1-Dark_Blue 2-Dark_Green 3-Turqoise 4-Dark_Red 5-Purple 6-Brown 7-Gray
// 8-Dark_Gray 9-Blue 10-Green 11-Cyan 12-Red 13-Magenta
// 14-Yellow 15-White 16-Pink 17-Orange 18-Gold 19-Cream
thingtypes
{
editor
{
color = 15; // White
arrow = 1;
title = "<Editor Things>";
error = -1;
width = 8;
height = 16;
sort = 1;
3328 = "3D Mode Start";
}
starts
{
color = 1; // Blue
arrow = 1;
title = "Player Starts";
width = 16;
height = 48;
flags8text = "[8] Spawn on ceiling";
sprite = "PLAYA0";
1
{
title = "Player 01 Start";
sprite = "PLAYA0";
}
2
{
title = "Player 02 Start";
sprite = "PLAYA0";
}
3
{
title = "Player 03 Start";
sprite = "PLAYA0";
}
4
{
title = "Player 04 Start";
sprite = "PLAYA0";
}
5
{
title = "Player 05 Start";
sprite = "PLAYA0";
}
6
{
title = "Player 06 Start";
sprite = "PLAYA0";
}
7
{
title = "Player 07 Start";
sprite = "PLAYA0";
}
8
{
title = "Player 08 Start";
sprite = "PLAYA0";
}
9
{
title = "Player 09 Start";
sprite = "PLAYA0";
}
10
{
title = "Player 10 Start";
sprite = "PLAYA0";
}
11
{
title = "Player 11 Start";
sprite = "PLAYA0";
}
12
{
title = "Player 12 Start";
sprite = "PLAYA0";
}
13
{
title = "Player 13 Start";
sprite = "PLAYA0";
}
14
{
title = "Player 14 Start";
sprite = "PLAYA0";
}
15
{
title = "Player 15 Start";
sprite = "PLAYA0";
}
16
{
title = "Player 16 Start";
sprite = "PLAYA0";
}
17
{
title = "Player 17 Start";
sprite = "PLAYA0";
}
18
{
title = "Player 18 Start";
sprite = "PLAYA0";
}
19
{
title = "Player 19 Start";
sprite = "PLAYA0";
}
20
{
title = "Player 20 Start";
sprite = "PLAYA0";
}
21
{
title = "Player 21 Start";
sprite = "PLAYA0";
}
22
{
title = "Player 22 Start";
sprite = "PLAYA0";
}
23
{
title = "Player 23 Start";
sprite = "PLAYA0";
}
24
{
title = "Player 24 Start";
sprite = "PLAYA0";
}
25
{
title = "Player 25 Start";
sprite = "PLAYA0";
}
26
{
title = "Player 26 Start";
sprite = "PLAYA0";
}
27
{
title = "Player 27 Start";
sprite = "PLAYA0";
}
28
{
title = "Player 28 Start";
sprite = "PLAYA0";
}
29
{
title = "Player 29 Start";
sprite = "PLAYA0";
}
30
{
title = "Player 30 Start";
sprite = "PLAYA0";
}
31
{
title = "Player 31 Start";
sprite = "PLAYA0";
}
32
{
title = "Player 32 Start";
sprite = "PLAYA0";
}
33
{
title = "Match Start";
sprite = "NDRNA2A8";
}
34
{
title = "CTF Red Team Start";
sprite = "SIGNG0";
}
35
{
title = "CTF Blue Team Start";
sprite = "SIGNE0";
}
}
enemies
{
color = 9; // Light Blue
arrow = 1;
title = "Enemies";
100
{
title = "Crawla (Blue)";
sprite = "POSSA1";
width = 24;
height = 32;
}
101
{
title = "Crawla (Red)";
sprite = "SPOSA1";
width = 24;
height = 32;
}
102
{
title = "Stupid Dumb Unnamed RoboFish";
sprite = "FISHA0";
width = 8;
height = 28;
angletext = "Jump strength";
fixedrotation = 1;
}
103
{
title = "Buzz (Gold)";
sprite = "BUZZA1";
width = 28;
height = 40;
flags8text = "[8] Cannot move";
}
104
{
title = "Buzz (Red)";
sprite = "RBUZA1";
width = 28;
height = 40;
flags8text = "[8] Cannot move";
}
108
{
title = "Deton";
sprite = "DETNA1";
width = 20;
height = 32;
}
110
{
title = "Turret";
sprite = "TRETA1";
width = 16;
height = 32;
}
111
{
title = "Pop-up Turret";
sprite = "TURRI1";
width = 12;
height = 64;
angletext = "Firing delay";
fixedrotation = 1;
}
122
{
title = "Spring Shell (Green)";
sprite = "SSHLA1";
width = 24;
height = 40;
}
125
{
title = "Spring Shell (Yellow)";
sprite = "SSHLI1";
width = 24;
height = 40;
}
109
{
title = "Skim";
sprite = "SKIMA1";
width = 16;
height = 24;
}
113
{
title = "Jet Jaw";
sprite = "JJAWA3A7";
width = 12;
height = 20;
}
126
{
title = "Crushstacean";
sprite = "CRABA0";
width = 24;
height = 32;
flags8text = "[8] Move left from spawn";
}
138
{
title = "Banpyura";
sprite = "CR2BA0";
width = 24;
height = 32;
flags8text = "[8] Move left from spawn";
}
117
{
title = "Robo-Hood";
sprite = "ARCHA1";
width = 24;
height = 32;
flags8text = "[8] Don't jump away";
}
118
{
title = "Lance-a-Bot";
sprite = "CBFSA1";
width = 32;
height = 72;
}
1113
{
title = "Suspicious Lance-a-Bot Statue";
sprite = "CBBSA1";
width = 32;
height = 72;
}
119
{
title = "Egg Guard";
sprite = "ESHIA1";
width = 16;
height = 48;
flags1text = "[1] 90 degrees clockwise";
flags4text = "[4] 90 degrees counter-clockwise";
flags8text = "[8] Double speed";
}
115
{
title = "Bird Aircraft Strike Hazard";
sprite = "VLTRF1";
width = 12;
height = 24;
}
120
{
title = "Green Snapper";
sprite = "GSNPA1";
width = 24;
height = 24;
}
121
{
title = "Minus";
sprite = "MNUSA0";
width = 24;
height = 32;
}
134
{
title = "Canarivore";
sprite = "CANAA0";
width = 12;
height = 80;
hangs = 1;
}
123
{
title = "Unidus";
sprite = "UNIDA1";
width = 18;
height = 36;
}
135
{
title = "Pterabyte Spawner";
sprite = "PTERA2A8";
width = 24;
height = 48;
parametertext = "Spawns +1";
arrow = 0;
}
136
{
title = "Pyre Fly";
sprite = "PYREA0";
width = 24;
height = 34;
flags8text = "[8] Start on fire";
}
137
{
title = "Dragonbomber";
sprite = "DRABA1";
width = 28;
height = 48;
}
105
{
title = "Jetty-Syn Bomber";
sprite = "JETBB1";
width = 20;
height = 50;
flags8text = "[8] Cannot move";
}
106
{
title = "Jetty-Syn Gunner";
sprite = "JETGB1";
width = 20;
height = 48;
flags8text = "[8] Cannot move";
}
112
{
title = "Spincushion";
sprite = "SHRPA1";
width = 16;
height = 24;
}
114
{
title = "Snailer";
sprite = "SNLRA3A7";
width = 24;
height = 48;
}
129
{
title = "Penguinator";
sprite = "PENGA1";
width = 24;
height = 32;
}
130
{
title = "Pophat";
sprite = "POPHA1";
width = 24;
height = 32;
}
107
{
title = "Crawla Commander";
sprite = "CCOMA1";
width = 16;
height = 32;
}
131
{
title = "Spinbobert";
sprite = "SBOBB0";
width = 32;
height = 32;
}
132
{
title = "Cacolantern";
sprite = "CACOA0";
width = 32;
height = 32;
flags8text = "[8] Cannot move";
}
133
{
title = "Hangster";
sprite = "HBATC1";
width = 24;
height = 24;
hangs = 1;
}
127
{
title = "Hive Elemental";
sprite = "HIVEA0";
width = 32;
height = 80;
parametertext = "No. bees";
}
128
{
title = "Bumblebore";
sprite = "BUMBA1";
width = 16;
height = 32;
flags8text = "[8] Cannot move";
}
124
{
title = "Buggle";
sprite = "BBUZA1";
width = 20;
height = 24;
}
116
{
title = "Pointy";
sprite = "PNTYA1";
width = 8;
height = 16;
}
}
bosses
{
color = 4; // Dark Red
arrow = 1;
title = "Bosses";
200
{
title = "Egg Mobile";
sprite = "EGGMA1";
width = 36;
height = 84;
flags4text = "[4] End level on death";
}
201
{
title = "Egg Slimer";
sprite = "EGGNA1";
width = 36;
height = 84;
flags4text = "[4] End level on death";
flags8text = "[8] Speed up when hit";
}
202
{
title = "Sea Egg";
sprite = "EGGOA1";
width = 36;
height = 116;
flags4text = "[4] End level on death";
}
203
{
title = "Egg Colosseum";
sprite = "EGGPA1";
width = 36;
height = 84;
flags4text = "[4] End level on death";
}
204
{
title = "Fang";
sprite = "FANGA1";
width = 24;
height = 60;
flags1text = "[1] Grayscale mode";
flags4text = "[4] End level on death";
flags8text = "[8] Skip intro";
}
206
{
title = "Brak Eggman (Old)";
sprite = "BRAKB1";
width = 48;
height = 160;
flags4text = "[4] End level on death";
}
207
{
title = "Metal Sonic (Race)";
sprite = "METLI1";
width = 16;
height = 48;
flags1text = "[1] Grayscale mode";
}
208
{
title = "Metal Sonic (Battle)";
sprite = "METLC1";
width = 16;
height = 48;
flags1text = "[1] Grayscale mode";
flags4text = "[4] End level on death";
}
209
{
title = "Brak Eggman";
sprite = "BRAK01";
width = 48;
height = 160;
flags1text = "[1] No origin-fling death";
flags4text = "[4] End level on death";
flags8text = "[8] Electric barrier";
}
290
{
arrow = 0;
title = "Boss Escape Point";
width = 8;
height = 16;
sprite = "internal:eggmanend";
}
291
{
arrow = 0;
title = "Egg Capsule Center";
width = 8;
height = 16;
sprite = "internal:capsule";
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
}
292
{
arrow = 0;
title = "Boss Waypoint";
width = 8;
height = 16;
flags8text = "[8] Sea Egg shooting point";
sprite = "internal:eggmanway";
angletext = "No. (Sea Egg)";
fixedrotation = 1;
flagsvaluetext = "No. (Brak)";
parametertext = "Next";
}
293
{
arrow = 0;
title = "Metal Sonic Gather Point";
sprite = "internal:metal";
width = 8;
height = 16;
}
294
{
arrow = 0;
title = "Fang Waypoint";
flags8text = "[8] Center waypoint";
sprite = "internal:eggmanway";
width = 8;
height = 16;
}
}
rings
{
color = 14; // Yellow
title = "Rings and Weapon Panels";
width = 24;
height = 24;
flags8height = 24;
flags8text = "[8] Float";
sprite = "RINGA0";
300
{
title = "Ring";
sprite = "RINGA0";
width = 16;
}
301
{
title = "Bounce Ring";
sprite = "RNGBA0";
}
302
{
title = "Rail Ring";
sprite = "RNGRA0";
}
303
{
title = "Infinity Ring";
sprite = "RNGIA0";
}
304
{
title = "Automatic Ring";
sprite = "RNGAA0";
}
305
{
title = "Explosion Ring";
sprite = "RNGEA0";
}
306
{
title = "Scatter Ring";
sprite = "RNGSA0";
}
307
{
title = "Grenade Ring";
sprite = "RNGGA0";
}
308
{
title = "CTF Team Ring (Red)";
sprite = "internal:TRNGA0R";
width = 16;
}
309
{
title = "CTF Team Ring (Blue)";
sprite = "internal:TRNGA0B";
width = 16;
}
330
{
title = "Bounce Ring Panel";
sprite = "PIKBA0";
}
331
{
title = "Rail Ring Panel";
sprite = "PIKRA0";
}
332
{
title = "Automatic Ring Panel";
sprite = "PIKAA0";
}
333
{
title = "Explosion Ring Panel";
sprite = "PIKEA0";
}
334
{
title = "Scatter Ring Panel";
sprite = "PIKSA0";
}
335
{
title = "Grenade Ring Panel";
sprite = "PIKGA0";
}
}
collectibles
{
color = 10; // Light Green
title = "Other Collectibles";
width = 16;
height = 32;
sort = 1;
sprite = "CEMGA0";
310
{
title = "CTF Red Flag";
sprite = "RFLGA0";
width = 24;
height = 64;
}
311
{
title = "CTF Blue Flag";
sprite = "BFLGA0";
width = 24;
height = 64;
}
312
{
title = "Emerald Token";
sprite = "TOKEA0";
width = 16;
height = 32;
flags8height = 24;
flags8text = "[8] Float";
}
313
{
title = "Chaos Emerald 1 (Green)";
sprite = "CEMGA0";
}
314
{
title = "Chaos Emerald 2 (Purple)";
sprite = "CEMGB0";
}
315
{
title = "Chaos Emerald 3 (Blue)";
sprite = "CEMGC0";
}
316
{
title = "Chaos Emerald 4 (Cyan)";
sprite = "CEMGD0";
}
317
{
title = "Chaos Emerald 5 (Orange)";
sprite = "CEMGE0";
}
318
{
title = "Chaos Emerald 6 (Red)";
sprite = "CEMGF0";
}
319
{
title = "Chaos Emerald 7 (Gray)";
sprite = "CEMGG0";
}
320
{
title = "Emerald Hunt Location";
sprite = "SHRDA0";
flags8height = 24;
flags8text = "[8] Float";
}
321
{
title = "Match Chaos Emerald Spawn";
sprite = "CEMGA0";
flags8height = 24;
flags8text = "[8] Float";
}
322
{
title = "Emblem";
sprite = "EMBMA0";
width = 16;
height = 30;
flags8height = 24;
flags8text = "[8] Float";
angletext = "Tag";
fixedrotation = 1;
}
}
boxes
{
color = 7; // Gray
blocking = 2;
title = "Monitors";
width = 18;
height = 40;
flags1text = "[1] Run linedef executor on pop";
flags4text = "[4] Random (Strong)";
flags8text = "[8] Random (Weak)";
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
400
{
title = "Super Ring (10 Rings)";
sprite = "TVRIA0";
}
401
{
title = "Pity Shield";
sprite = "TVPIA0";
}
402
{
title = "Attraction Shield";
sprite = "TVATA0";
}
403
{
title = "Force Shield";
sprite = "TVFOA0";
}
404
{
title = "Armageddon Shield";
sprite = "TVARA0";
}
405
{
title = "Whirlwind Shield";
sprite = "TVWWA0";
}
406
{
title = "Elemental Shield";
sprite = "TVELA0";
}
407
{
title = "Super Sneakers";
sprite = "TVSSA0";
}
408
{
title = "Invincibility";
sprite = "TVIVA0";
}
409
{
title = "Extra Life";
sprite = "TV1UA0";
flags4text = "[4] Random (Strong) / 10k points";
flags8text = "[8] Random (Weak) / 10k points";
}
410
{
title = "Eggman";
sprite = "TVEGA0";
flags4text = "[4] Special";
flags8text = "[8] Ambush";
}
411
{
title = "Teleporter";
sprite = "TVMXA0";
}
413
{
title = "Gravity Boots";
sprite = "TVGVA0";
flags4text = "[4] Special";
flags8text = "[8] Ambush";
}
414
{
title = "CTF Team Ring Monitor (Red)";
sprite = "TRRIA0";
flags4text = "[4] Special";
flags8text = "[8] Ambush";
}
415
{
title = "CTF Team Ring Monitor (Blue)";
sprite = "TBRIA0";
flags4text = "[4] Special";
flags8text = "[8] Ambush";
}
416
{
title = "Recycler";
sprite = "TVRCA0";
}
418
{
title = "Score (1,000 Points)";
sprite = "TV1KA0";
flags4text = "[4] Special";
flags8text = "[8] Ambush";
}
419
{
title = "Score (10,000 Points)";
sprite = "TVTKA0";
flags4text = "[4] Special";
flags8text = "[8] Ambush";
}
420
{
title = "Flame Shield";
sprite = "TVFLA0";
}
421
{
title = "Water Shield";
sprite = "TVBBA0";
}
422
{
title = "Lightning Shield";
sprite = "TVZPA0";
}
}
boxes2
{
color = 18; // Gold
blocking = 2;
title = "Monitors (Respawning)";
width = 20;
height = 44;
flags1text = "[1] Run linedef executor on pop";
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
431
{
title = "Pity Shield (Respawn)";
sprite = "TVPIB0";
}
432
{
title = "Attraction Shield (Respawn)";
sprite = "TVATB0";
}
433
{
title = "Force Shield (Respawn)";
sprite = "TVFOB0";
}
434
{
title = "Armageddon Shield (Respawn)";
sprite = "TVARB0";
}
435
{
title = "Whirlwind Shield (Respawn)";
sprite = "TVWWB0";
}
436
{
title = "Elemental Shield (Respawn)";
sprite = "TVELB0";
}
437
{
title = "Super Sneakers (Respawn)";
sprite = "TVSSB0";
}
438
{
title = "Invincibility (Respawn)";
sprite = "TVIVB0";
}
440
{
title = "Eggman (Respawn)";
sprite = "TVEGB0";
}
443
{
title = "Gravity Boots (Respawn)";
sprite = "TVGVB0";
}
450
{
title = "Flame Shield (Respawn)";
sprite = "TVFLB0";
}
451
{
title = "Water Shield (Respawn)";
sprite = "TVBBB0";
}
452
{
title = "Lightning Shield (Respawn)";
sprite = "TVZPB0";
}
}
generic
{
color = 11; // Light Cyan
title = "Generic Items & Hazards";
500
{
title = "Air Bubble Patch";
sprite = "BUBLE0";
width = 8;
height = 16;
flags8text = "[8] No distance check";
}
501
{
title = "Signpost";
sprite = "SIGND0";
width = 8;
height = 32;
}
502
{
arrow = 1;
title = "Star Post";
sprite = "STPTA0M0";
width = 64;
height = 128;
flags4text = "[4] Respawn at center";
angletext = "Angle/Order";
fixedrotation = 1;
parametertext = "Order";
}
520
{
title = "Bomb Sphere";
sprite = "SPHRD0";
width = 16;
height = 24;
flags8height = 24;
flags8text = "[8] Float";
unflippable = true;
}
521
{
title = "Spikeball";
sprite = "SPIKA0";
width = 12;
height = 8;
flags8height = 24;
flags8text = "[8] Float";
}
522
{
title = "Wall Spike";
sprite = "WSPKALAR";
width = 16;
height = 14;
arrow = 1;
flags1text = "[1] Start retracted";
flags4text = "[4] Retractable";
flags8text = "[8] Intangible";
parametertext = "Start delay";
}
523
{
title = "Spike";
sprite = "USPKA0";
width = 8;
height = 32;
flags1text = "[1] Start retracted";
flags4text = "[4] Retractable";
flags8text = "[8] Intangible";
angletext = "Retraction interval";
fixedrotation = 1;
parametertext = "Start delay";
}
1130
{
title = "Small Mace";
sprite = "SMCEA0";
width = 17;
height = 34;
}
1131
{
title = "Big Mace";
sprite = "BMCEA0";
width = 34;
height = 68;
}
1136
{
title = "Small Fireball";
sprite = "SFBRA0";
width = 17;
height = 34;
}
1137
{
title = "Large Fireball";
sprite = "BFBRA0";
width = 34;
height = 68;
}
}
springs
{
color = 12; // Light Red
title = "Springs and Fans";
width = 20;
height = 16;
sprite = "RSPRD2";
540
{
title = "Fan";
sprite = "FANSA0D0";
width = 16;
height = 8;
flags4text = "[4] Invisible";
flags8text = "[8] No distance check";
angletext = "Lift height";
fixedrotation = 1;
}
541
{
title = "Gas Jet";
sprite = "STEMD0";
flags8text = "[8] No sounds";
width = 32;
}
542
{
title = "Bumper";
sprite = "BUMPA0";
width = 32;
height = 64;
angletext = "Strength";
fixedrotation = 1;
}
543
{
title = "Balloon";
sprite = "BLONA0";
width = 32;
height = 64;
flags8text = "[8] Respawn";
angletext = "Color";
fixedrotation = 1;
}
550
{
title = "Yellow Spring";
sprite = "SPRYA0";
}
551
{
title = "Red Spring";
sprite = "SPRRA0";
}
552
{
title = "Blue Spring";
sprite = "SPRBA0";
}
555
{
arrow = 1;
title = "Diagonal Yellow Spring";
sprite = "YSPRD2";
width = 16;
flags4text = "[4] Ignore gravity";
flags8text = "[8] Rotate 22.5° CCW";
}
556
{
arrow = 1;
title = "Diagonal Red Spring";
sprite = "RSPRD2";
width = 16;
flags4text = "[4] Ignore gravity";
flags8text = "[8] Rotate 22.5° CCW";
}
557
{
arrow = 1;
title = "Diagonal Blue Spring";
sprite = "BSPRD2";
width = 16;
flags4text = "[4] Ignore gravity";
flags8text = "[8] Rotate 22.5° CCW";
}
558
{
arrow = 1;
title = "Horizontal Yellow Spring";
sprite = "SSWYD2D8";
flags8height = 16;
flags8text = "[8] Float";
width = 16;
height = 32;
}
559
{
arrow = 1;
title = "Horizontal Red Spring";
sprite = "SSWRD2D8";
flags8height = 16;
flags8text = "[8] Float";
width = 16;
height = 32;
}
560
{
arrow = 1;
title = "Horizontal Blue Spring";
sprite = "SSWBD2D8";
flags8height = 16;
flags8text = "[8] Float";
width = 16;
height = 32;
}
1134
{
title = "Yellow Spring Ball";
sprite = "YSPBA0";
width = 17;
height = 34;
}
1135
{
title = "Red Spring Ball";
sprite = "RSPBA0";
width = 17;
height = 34;
}
544
{
arrow = 1;
title = "Yellow Boost Panel";
sprite = "BSTYA0";
flags8text = "[8] Force spin";
width = 28;
height = 2;
}
545
{
arrow = 1;
title = "Red Boost Panel";
sprite = "BSTRA0";
flags8text = "[8] Force spin";
width = 28;
height = 2;
}
}
patterns
{
color = 5; // Magenta
arrow = 1;
title = "Special Placement Patterns";
width = 16;
height = 384;
sprite = "RINGA0";
600
{
arrow = 0;
title = "5 Vertical Rings (Yellow Spring)";
sprite = "internal:ringverticalyellow";
}
601
{
arrow = 0;
title = "5 Vertical Rings (Red Spring)";
sprite = "internal:ringverticalred";
height = 1024;
}
602
{
title = "5 Diagonal Rings (Yellow Spring)";
sprite = "RINGA0";
height = 32;
}
603
{
title = "10 Diagonal Rings (Red Spring)";
sprite = "RINGA0";
height = 32;
}
604
{
title = "Circle of Rings";
sprite = "internal:circlering";
width = 96;
height = 192;
unflippable = true;
centerHitbox = true;
}
605
{
title = "Circle of Rings (Big)";
sprite = "internal:circlebigring";
width = 192;
unflippable = true;
centerHitbox = true;
}
606
{
title = "Circle of Blue Spheres";
sprite = "internal:circlesphere";
width = 96;
height = 192;
unflippable = true;
centerHitbox = true;
}
607
{
title = "Circle of Blue Spheres (Big)";
sprite = "internal:circlebigsphere";
width = 192;
unflippable = true;
centerHitbox = true;
}
608
{
title = "Circle of Rings and Spheres";
sprite = "internal:circleringsphere";
width = 96;
height = 192;
unflippable = true;
centerHitbox = true;
}
609
{
title = "Circle of Rings and Spheres (Big)";
sprite = "internal:circlebigringsphere";
width = 192;
unflippable = true;
centerHitbox = true;
}
}
ambience
{
color = 8; // Dark Gray
title = "Ambience";
width = 8;
height = 16;
sprite = "internal:ambiance";
700
{
title = "Water Ambience A (Large)";
}
701
{
title = "Water Ambience B (Large)";
}
702
{
title = "Water Ambience C (Medium)";
}
703
{
title = "Water Ambience D (Medium)";
}
704
{
title = "Water Ambience E (Small)";
}
705
{
title = "Water Ambience F (Small)";
}
706
{
title = "Water Ambience G (Extra Large)";
}
707
{
title = "Water Ambience H (Extra Large)";
}
708
{
title = "Disco Ambience";
}
709
{
title = "Volcano Ambience";
}
710
{
title = "Machine Ambience";
}
}
invisible
{
color = 15; // White
title = "Misc. Invisible";
width = 8;
height = 16;
sprite = "UNKNA0";
750
{
title = "Slope Vertex";
sprite = "internal:vertexslope";
angletext = "Tag";
fixedrotation = 1;
parametertext = "Absolute?";
flagsvaluetext = "Absolute Z";
tagthing = true;
}
751
{
arrow = 1;
title = "Teleport Destination";
sprite = "internal:tele";
}
752
{
arrow = 1;
title = "Alternate View Point";
sprite = "internal:view";
}
753
{
title = "Zoom Tube Waypoint";
sprite = "internal:zoom";
angletext = "Order";
fixedrotation = 1;
}
754
{
title = "Push Point";
flags4text = "[4] Fades using XY";
flags8text = "[8] Push using XYZ";
sprite = "GWLGA0";
angletext = "Radius";
fixedrotation = 1;
}
755
{
title = "Pull Point";
flags4text = "[4] Fades using XY";
flags8text = "[8] Pull using XYZ";
sprite = "GWLRA0";
angletext = "Radius";
fixedrotation = 1;
}
756
{
title = "Blast Linedef Executor";
sprite = "internal:blastexec";
width = 32;
height = 16;
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
}
757
{
title = "Fan Particle Generator";
sprite = "internal:fanparticles";
width = 8;
height = 16;
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
}
758
{
title = "Object Angle Anchor";
sprite = "internal:view";
}
760
{
title = "PolyObject Anchor";
sprite = "internal:polyanchor";
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
unflippable = true;
}
761
{
title = "PolyObject Spawn Point";
sprite = "internal:polycenter";
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
unflippable = true;
}
762
{
title = "PolyObject Spawn Point (Crush)";
sprite = "internal:polycentercrush";
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
unflippable = true;
}
780
{
title = "Skybox View Point";
sprite = "internal:skyb";
flags4text = "[4] In-map centerpoint";
parametertext = "ID";
fixedrotation = 1;
}
}
greenflower
{
color = 2; // Green
title = "Greenflower";
800
{
title = "GFZ Flower";
sprite = "FWR1A0";
width = 16;
height = 40;
}
801
{
title = "Sunflower";
sprite = "FWR2A0";
width = 16;
height = 96;
}
802
{
title = "Budding Flower";
sprite = "FWR3A0";
width = 8;
height = 32;
}
803
{
title = "Blueberry Bush";
sprite = "BUS3A0";
width = 16;
height = 32;
}
804
{
title = "Berry Bush";
sprite = "BUS1A0";
width = 16;
height = 32;
}
805
{
title = "Bush";
sprite = "BUS2A0";
width = 16;
height = 32;
}
806
{
title = "GFZ Tree";
sprite = "TRE1A0";
width = 20;
height = 128;
}
807
{
title = "GFZ Berry Tree";
sprite = "TRE1B0";
width = 20;
height = 128;
}
808
{
title = "GFZ Cherry Tree";
sprite = "TRE1C0";
width = 20;
height = 128;
}
809
{
title = "Checkered Tree";
sprite = "TRE2A0";
width = 20;
height = 200;
}
810
{
title = "Checkered Tree (Sunset)";
sprite = "TRE2B0";
width = 20;
height = 200;
}
811
{
title = "Polygon Tree";
sprite = "TRE4A0";
width = 20;
height = 200;
}
812
{
title = "Bush Tree";
sprite = "TRE5A0";
width = 20;
height = 200;
}
813
{
title = "Red Bush Tree";
sprite = "TRE5B0";
width = 20;
height = 200;
}
}
technohill
{
color = 2; // Green
title = "Techno Hill";
900
{
title = "THZ Steam Flower";
sprite = "THZPA0";
width = 8;
height = 32;
}
901
{
title = "Alarm";
sprite = "ALRMA0";
width = 8;
height = 16;
hangs = 1;
}
902
{
title = "THZ Spin Flower (Red)";
sprite = "FWR5A0";
width = 16;
height = 64;
}
903
{
title = "THZ Spin Flower (Yellow)";
sprite = "FWR6A0";
width = 16;
height = 64;
}
904
{
arrow = 1;
title = "Whistlebush";
sprite = "THZTA0";
width = 16;
height = 64;
}
}
deepsea
{
color = 2; // Green
title = "Deep Sea";
1000
{
arrow = 1;
blocking = 2;
title = "Gargoyle";
sprite = "GARGA1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1009
{
arrow = 1;
blocking = 2;
title = "Gargoyle (Big)";
sprite = "GARGB1";
width = 32;
height = 80;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1001
{
title = "Seaweed";
sprite = "SEWEA0";
width = 24;
height = 56;
}
1002
{
title = "Dripping Water";
sprite = "DRIPD0";
width = 8;
height = 16;
hangs = 1;
angletext = "Dripping delay";
fixedrotation = 1;
}
1003
{
title = "Coral (Green)";
sprite = "CORLA0";
width = 29;
height = 40;
}
1004
{
title = "Coral (Red)";
sprite = "CORLB0";
width = 30;
height = 53;
}
1005
{
title = "Coral (Orange)";
sprite = "CORLC0";
width = 28;
height = 41;
}
1006
{
title = "Blue Crystal";
sprite = "BCRYA1";
width = 8;
height = 16;
}
1007
{
title = "Kelp";
sprite = "KELPA0";
width = 16;
height = 292;
flags4text = "[4] Double size";
}
1008
{
title = "Stalagmite (DSZ1)";
sprite = "DSTGA0";
width = 8;
height = 116;
flags4text = "[4] Double size";
}
1010
{
arrow = 1;
title = "Light Beam";
sprite = "LIBEARAL";
width = 16;
height = 16;
}
1011
{
title = "Stalagmite (DSZ2)";
sprite = "DSTGB0";
width = 8;
height = 116;
flags4text = "[4] Double size";
}
1012
{
arrow = 1;
title = "Big Floating Mine";
width = 28;
height = 56;
sprite = "BMNEA1";
}
1013
{
title = "Animated Kelp";
sprite = "ALGAA0";
width = 48;
height = 120;
}
1014
{
title = "Large Coral (Brown)";
sprite = "CORLD0";
width = 56;
height = 112;
}
1015
{
title = "Large Coral (Beige)";
sprite = "CORLE0";
width = 56;
height = 112;
}
}
castleeggman
{
color = 2; // Green
title = "Castle Eggman";
1100
{
title = "Chain (Decorative)";
sprite = "CHANA0";
width = 4;
height = 128;
hangs = 1;
}
1101
{
title = "Torch";
sprite = "FLAMA0E0";
width = 8;
height = 32;
flags1text = "[1] Add corona";
}
1102
{
arrow = 1;
blocking = 2;
title = "Eggman Statue";
sprite = "ESTAA1";
width = 32;
height = 240;
flags1text = "[1] Solid gold";
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1103
{
title = "CEZ Flower";
sprite = "FWR4A0";
width = 16;
height = 40;
}
1104
{
title = "Mace Spawnpoint";
sprite = "SMCEA0";
width = 17;
height = 34;
flags4text = "[4] No sounds";
flags8text = "[8] Double size";
angletext = "Tag";
parametertext = "Spokes";
fixedrotation = 1;
tagthing = true;
}
1105
{
title = "Chain with Maces Spawnpoint";
sprite = "SMCEA0";
width = 17;
height = 34;
flags4text = "[4] No sounds";
flags8text = "[8] Double size";
angletext = "Tag";
parametertext = "Spokes";
fixedrotation = 1;
tagthing = true;
}
1106
{
title = "Chained Spring Spawnpoint";
sprite = "YSPBA0";
width = 17;
height = 34;
flags4text = "[4] No sounds";
flags8text = "[8] Red spring";
angletext = "Tag";
parametertext = "Spokes";
fixedrotation = 1;
tagthing = true;
}
1107
{
title = "Chain Spawnpoint";
sprite = "BMCHB0";
width = 17;
height = 34;
flags8text = "[8] Double size";
angletext = "Tag";
parametertext = "Spokes";
fixedrotation = 1;
tagthing = true;
}
1108
{
arrow = 1;
title = "Hidden Chain Spawnpoint";
sprite = "SMCHA0";
width = 17;
height = 34;
flags8text = "[8] Double size";
}
1109
{
title = "Firebar Spawnpoint";
sprite = "BFBRA0";
width = 17;
height = 34;
flags4text = "[4] No sounds";
flags8text = "[8] Double size";
angletext = "Tag";
parametertext = "Spokes";
fixedrotation = 1;
tagthing = true;
}
1110
{
title = "Custom Mace Spawnpoint";
sprite = "SMCEA0";
width = 17;
height = 34;
flags4text = "[4] No sounds";
angletext = "Tag";
parametertext = "Spokes";
fixedrotation = 1;
tagthing = true;
}
1111
{
arrow = 1;
blocking = 2;
title = "Crawla Statue";
sprite = "CSTAA1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1112
{
arrow = 1;
blocking = 2;
title = "Lance-a-Bot Statue";
sprite = "CBBSA1";
width = 32;
height = 72;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1114
{
title = "Pine Tree";
sprite = "PINEA0";
width = 16;
height = 628;
}
1115
{
title = "CEZ Shrub (Small)";
sprite = "CEZBA0";
width = 16;
height = 24;
}
1116
{
title = "CEZ Shrub (Large)";
sprite = "CEZBB0";
width = 32;
height = 48;
}
1117
{
arrow = 1;
title = "Pole Banner (Red)";
sprite = "BANRA0";
width = 40;
height = 224;
}
1118
{
arrow = 1;
title = "Pole Banner (Blue)";
sprite = "BANRA0";
width = 40;
height = 224;
}
1119
{
title = "Candle";
sprite = "CNDLA0";
width = 8;
height = 48;
flags1text = "[1] Add corona";
}
1120
{
title = "Candle Pricket";
sprite = "CNDLB0";
width = 8;
height = 176;
flags1text = "[1] Add corona";
}
1121
{
title = "Flame Holder";
sprite = "FLMHA0";
width = 24;
height = 80;
flags1text = "[1] Add corona";
flags4text = "[4] No flame";
}
1122
{
title = "Fire Torch";
sprite = "CTRCA0";
width = 16;
height = 80;
}
1123
{
title = "Cannonball Launcher";
sprite = "internal:cannonball";
width = 8;
height = 16;
}
1124
{
blocking = 2;
title = "Cannonball";
sprite = "CBLLA0";
width = 20;
height = 40;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1125
{
title = "Brambles";
sprite = "CABRALAR";
width = 48;
height = 32;
}
1126
{
title = "Invisible Lockon Object";
sprite = "LCKNC0";
width = 16;
height = 32;
}
1127
{
title = "Spectator Eggrobo";
sprite = "EGR1A1";
width = 20;
height = 72;
arrow = 1;
flags4text = "[4] Move right";
flags8text = "[8] Move left";
}
1128
{
arrow = 1;
title = "Waving Flag (Red)";
sprite = "CFLGA0";
width = 8;
height = 208;
}
1129
{
arrow = 1;
title = "Waving Flag (Blue)";
sprite = "CFLGA0";
width = 8;
height = 208;
}
}
aridcanyon
{
color = 2; // Green
title = "Arid Canyon";
1200
{
title = "Tumbleweed (Big)";
sprite = "BTBLA0";
width = 24;
height = 48;
flags8text = "[8] Moves perpetually";
}
1201
{
title = "Tumbleweed (Small)";
sprite = "STBLA0";
width = 12;
height = 24;
flags8text = "[8] Moves perpetually";
}
1202
{
arrow = 1;
title = "Rock Spawner";
sprite = "ROIAA0";
width = 8;
height = 16;
angletext = "Tag";
fixedrotation = 1;
tagthing = true;
}
1203
{
title = "Tiny Red Flower Cactus";
sprite = "CACTA0";
width = 13;
height = 24;
}
1204
{
title = "Small Red Flower Cactus";
sprite = "CACTB0";
width = 15;
height = 52;
}
1205
{
title = "Tiny Blue Flower Cactus";
sprite = "CACTC0";
width = 13;
height = 24;
}
1206
{
title = "Small Blue Flower Cactus";
sprite = "CACTD0";
width = 15;
height = 52;
}
1207
{
title = "Prickly Pear";
sprite = "CACTE0";
width = 32;
height = 96;
}
1208
{
title = "Barrel Cactus";
sprite = "CACTF0";
width = 20;
height = 128;
}
1209
{
title = "Tall Barrel Cactus";
sprite = "CACTG0";
width = 24;
height = 224;
}
1210
{
title = "Armed Cactus";
sprite = "CACTH0";
width = 24;
height = 256;
}
1211
{
title = "Ball Cactus";
sprite = "CACTI0";
width = 48;
height = 96;
}
1212
{
title = "Caution Sign";
sprite = "WWSGAR";
width = 22;
height = 64;
arrow = 1;
}
1213
{
title = "Cacti Sign";
sprite = "WWS2AR";
width = 22;
height = 64;
arrow = 1;
}
1214
{
title = "Sharp Turn Sign";
sprite = "WWS3ALAR";
width = 16;
height = 192;
arrow = 1;
}
1215
{
title = "Mine Oil Lamp";
sprite = "OILLA0";
width = 22;
height = 64;
hangs = 1;
}
1216
{
title = "TNT Barrel";
sprite = "BARRA1";
width = 24;
height = 63;
arrow = 1;
flags8text = "[8] Not pushable";
}
1217
{
title = "TNT Proximity Shell";
sprite = "REMTA0";
width = 64;
height = 40;
}
1218
{
title = "Dust Devil";
sprite = "TAZDCR";
width = 80;
height = 416;
}
1219
{
title = "Minecart Spawner";
sprite = "MCRTCLFR";
width = 22;
height = 32;
arrow = 1;
}
1220
{
title = "Minecart Stopper";
sprite = "MCRTIR";
width = 32;
height = 32;
arrow = 1;
}
1221
{
title = "Minecart Saloon Door";
sprite = "SALDARAL";
width = 96;
height = 160;
arrow = 1;
flags8text = "[8] Allow non-minecart players";
}
1222
{
title = "Train Cameo Spawner";
sprite = "TRAEBRBL";
width = 28;
height = 32;
}
1223
{
title = "Train Dust Spawner";
sprite = "ADSTA0";
width = 4;
height = 4;
}
1224
{
title = "Train Steam Spawner";
sprite = "STEAA0";
width = 4;
height = 4;
}
1229
{
title = "Minecart Switch Point";
sprite = "internal:zoom";
width = 8;
height = 16;
flags8text = "[8] Enable switching";
}
1230
{
title = "Tiny Cactus";
sprite = "CACTJ0";
width = 13;
height = 28;
}
1231
{
title = "Small Cactus";
sprite = "CACTK0";
width = 15;
height = 60;
}
}
redvolcano
{
color = 2; // Green
title = "Red Volcano";
1300
{
arrow = 1;
title = "Flame Jet (Horizontal)";
sprite = "internal:flameh";
width = 16;
height = 40;
flags8text = "[8] Waves vertically";
angletext = "On/Off time";
fixedrotation = 1;
parametertext = "Strength";
}
1301
{
title = "Flame Jet (Vertical)";
sprite = "internal:flamev";
width = 16;
height = 40;
flags8text = "[8] Shoot downwards";
angletext = "On/Off time";
fixedrotation = 1;
parametertext = "Strength";
}
1302
{
title = "Spinning Flame Jet (Counter-Clockwise)";
sprite = "internal:flame2";
width = 16;
height = 24;
}
1303
{
title = "Spinning Flame Jet (Clockwise)";
sprite = "internal:flame1";
width = 16;
height = 24;
}
1304
{
title = "Lavafall";
sprite = "LFALF0";
width = 30;
height = 32;
angletext = "Initial delay";
fixedrotation = 1;
hangs = 1;
flags8text = "[8] Double size";
}
1305
{
title = "Rollout Rock";
sprite = "PUMIA1A5";
width = 30;
height = 60;
flags8text = "[8] Non-buoyant";
}
1306
{
title = "Big Fern";
sprite = "JPLAB0";
width = 32;
height = 48;
}
1307
{
title = "Jungle Palm";
sprite = "JPLAC0";
width = 32;
height = 48;
}
1308
{
title = "Torch Flower";
sprite = "TFLOA0";
width = 14;
height = 110;
}
1309
{
title = "RVZ1 Wall Vine (Long)";
sprite = "WVINALAR";
width = 1;
height = 288;
arrow = 1;
}
1310
{
title = "RVZ1 Wall Vine (Short)";
sprite = "WVINBLBR";
width = 1;
height = 288;
arrow = 1;
}
}
botanicserenity
{
color = 2; // Green
title = "Botanic Serenity";
width = 16;
height = 32;
sprite = "BSZ1A0";
1400
{
title = "Tall Flower (Red)";
sprite = "BSZ1A0";
}
1401
{
title = "Tall Flower (Purple)";
sprite = "BSZ1B0";
}
1402
{
title = "Tall Flower (Blue)";
sprite = "BSZ1C0";
}
1403
{
title = "Tall Flower (Cyan)";
sprite = "BSZ1D0";
}
1404
{
title = "Tall Flower (Yellow)";
sprite = "BSZ1E0";
}
1405
{
title = "Tall Flower (Orange)";
sprite = "BSZ1F0";
}
1410
{
title = "Medium Flower (Red)";
sprite = "BSZ2A0";
}
1411
{
title = "Medium Flower (Purple)";
sprite = "BSZ2B0";
}
1412
{
title = "Medium Flower (Blue)";
sprite = "BSZ2C0";
}
1413
{
title = "Medium Flower (Cyan)";
sprite = "BSZ2D0";
}
1414
{
title = "Medium Flower (Yellow)";
sprite = "BSZ2E0";
}
1415
{
title = "Medium Flower (Orange)";
sprite = "BSZ2F0";
}
1420
{
title = "Short Flower (Red)";
sprite = "BSZ3A0";
}
1421
{
title = "Short Flower (Purple)";
sprite = "BSZ3B0";
}
1422
{
title = "Short Flower (Blue)";
sprite = "BSZ3C0";
}
1423
{
title = "Short Flower (Cyan)";
sprite = "BSZ3D0";
}
1424
{
title = "Short Flower (Yellow)";
sprite = "BSZ3E0";
}
1425
{
title = "Short Flower (Orange)";
sprite = "BSZ3F0";
}
1430
{
title = "Tulip (Red)";
sprite = "BST1A0";
}
1431
{
title = "Tulip (Purple)";
sprite = "BST2A0";
}
1432
{
title = "Tulip (Blue)";
sprite = "BST3A0";
}
1433
{
title = "Tulip (Cyan)";
sprite = "BST4A0";
}
1434
{
title = "Tulip (Yellow)";
sprite = "BST5A0";
}
1435
{
title = "Tulip (Orange)";
sprite = "BST6A0";
}
1440
{
title = "Cluster (Red)";
sprite = "BSZ5A0";
}
1441
{
title = "Cluster (Purple)";
sprite = "BSZ5B0";
}
1442
{
title = "Cluster (Blue)";
sprite = "BSZ5C0";
}
1443
{
title = "Cluster (Cyan)";
sprite = "BSZ5D0";
}
1444
{
title = "Cluster (Yellow)";
sprite = "BSZ5E0";
}
1445
{
title = "Cluster (Orange)";
sprite = "BSZ5F0";
}
1450
{
title = "Bush (Red)";
sprite = "BSZ6A0";
}
1451
{
title = "Bush (Purple)";
sprite = "BSZ6B0";
}
1452
{
title = "Bush (Blue)";
sprite = "BSZ6C0";
}
1453
{
title = "Bush (Cyan)";
sprite = "BSZ6D0";
}
1454
{
title = "Bush (Yellow)";
sprite = "BSZ6E0";
}
1455
{
title = "Bush (Orange)";
sprite = "BSZ6F0";
}
1460
{
title = "Vine (Red)";
sprite = "BSZ7A0";
}
1461
{
title = "Vine (Purple)";
sprite = "BSZ7B0";
}
1462
{
title = "Vine (Blue)";
sprite = "BSZ7C0";
}
1463
{
title = "Vine (Cyan)";
sprite = "BSZ7D0";
}
1464
{
title = "Vine (Yellow)";
sprite = "BSZ7E0";
}
1465
{
title = "Vine (Orange)";
sprite = "BSZ7F0";
}
1470
{
title = "BSZ Shrub";
sprite = "BSZ8A0";
}
1471
{
title = "BSZ Clover";
sprite = "BSZ8B0";
}
1473
{
title = "Palm Tree (Big)";
width = 16;
height = 160;
sprite = "BSZ8D0";
}
1475
{
title = "Palm Tree (Small)";
width = 16;
height = 80;
sprite = "BSZ8F0";
}
}
azuretemple
{
color = 2; // Green
title = "Azure Temple";
1500
{
arrow = 1;
blocking = 2;
title = "Glaregoyle";
sprite = "BGARA1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1501
{
arrow = 1;
blocking = 2;
title = "Glaregoyle (Up)";
sprite = "BGARA1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1502
{
arrow = 1;
blocking = 2;
title = "Glaregoyle (Down)";
sprite = "BGARA1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1503
{
arrow = 1;
blocking = 2;
title = "Glaregoyle (Long)";
sprite = "BGARA1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1504
{
title = "ATZ Target";
sprite = "RCRYB0";
width = 24;
height = 32;
}
1505
{
title = "Green Flame";
sprite = "CFLMA0E0";
width = 8;
height = 32;
}
1506
{
arrow = 1;
blocking = 2;
title = "Blue Gargoyle";
sprite = "BGARD1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
}
dreamhill
{
color = 2; // Green
title = "Dream Hill";
1600
{
title = "Spring Tree";
sprite = "TRE6A0";
width = 16;
height = 32;
}
1601
{
title = "Shleep";
sprite = "SHLPA0";
width = 24;
height = 32;
}
1602
{
title = "Nightopian";
sprite = "NTPNA1";
width = 16;
height = 40;
}
}
nightstrk
{
color = 16; // Light Pink
title = "NiGHTS Track & Basics";
width = 8;
height = 4096;
sprite = "UNKNA0";
fixedrotation = 1;
1700
{
title = "Axis";
sprite = "internal:axis1";
circle = 1;
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
angletext = "Radius/Direction";
parametertext = "Mare";
}
1701
{
title = "Axis Transfer";
sprite = "internal:axis2";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
1702
{
title = "Axis Transfer Line";
sprite = "internal:axis3";
unflippable = true;
ignoreZ = true;
flagsvaluetext = "Order";
parametertext = "Mare";
}
1703
{
title = "Ideya Drone";
sprite = "NDRNA1";
width = 16;
height = 56;
flags1text = "[1] Align player to middle";
flags4text = "[4] Align player to top";
flags8text = "[8] Die upon time up";
angletext = "Time limit";
fixedrotation = 1;
parametertext = "Height";
}
1710
{
title = "Ideya Capture";
sprite = "CAPSA0";
width = 72;
height = 144;
angletext = "Spheres";
parametertext = "Mare";
}
}
nights
{
color = 13; // Pink
title = "NiGHTS Items";
width = 16;
height = 32;
1704
{
arrow = 1;
title = "NiGHTS Bumper";
sprite = "NBMPG3G7";
width = 32;
height = 64;
unflippable = true;
flagsvaluetext = "Pitch";
angletext = "Yaw";
}
1705
{
arrow = 1;
title = "Hoop (Generic)";
sprite = "internal:nightshoop";
width = 80;
height = 160;
unflippable = true;
centerHitbox = true;
flagsvaluetext = "Height";
angletext = "Pitch/Yaw";
parametertext = "Degrees?";
}
1706
{
title = "Blue Sphere";
sprite = "SPHRA0";
width = 16;
height = 24;
flags8height = 24;
flags8text = "[8] Float";
}
1707
{
title = "Super Paraloop";
sprite = "NPRUA0";
flags4text = "[4] Bonus time only";
flags8text = "[8] Spawn immediately";
}
1708
{
title = "Drill Refill";
sprite = "NPRUB0";
flags4text = "[4] Bonus time only";
flags8text = "[8] Spawn immediately";
}
1709
{
title = "Nightopian Helper";
sprite = "NPRUC0";
flags4text = "[4] Bonus time only";
flags8text = "[8] Spawn immediately";
}
1711
{
title = "Extra Time";
sprite = "NPRUD0";
flags4text = "[4] Bonus time only";
flags8text = "[8] Spawn immediately";
}
1712
{
title = "Link Freeze";
sprite = "NPRUE0";
flags4text = "[4] Bonus time only";
flags8text = "[8] Spawn immediately";
}
1713
{
arrow = 1;
title = "Hoop (Customizable)";
flags1text = "[1] Radius +16";
flags2text = "[2] Radius +32";
flags4text = "[4] Radius +64";
flags8text = "[8] Radius +128";
sprite = "internal:nightshoop";
width = 80;
height = 160;
unflippable = true;
centerHitbox = true;
angletext = "Pitch/Yaw";
parametertext = "Degrees?";
}
1714
{
title = "Ideya Anchor Point";
sprite = "internal:axis1";
width = 8;
height = 16;
parametertext = "Ideya";
}
}
mario
{
color = 6; // Brown
title = "Mario";
1800
{
title = "Coin";
sprite = "COINA0";
width = 16;
height = 24;
flags8height = 24;
flags8text = "[8] Float";
}
1801
{
arrow = 1;
title = "Goomba";
sprite = "GOOMA0";
width = 24;
height = 32;
}
1802
{
arrow = 1;
title = "Goomba (Blue)";
sprite = "BGOMA0";
width = 24;
height = 32;
}
1803
{
title = "Fire Flower";
sprite = "FFWRB0";
width = 16;
height = 32;
}
1804
{
title = "Koopa Shell";
sprite = "SHLLA1";
width = 16;
height = 20;
}
1805
{
title = "Puma (Jumping Fireball)";
sprite = "PUMAA0";
width = 8;
height = 16;
angletext = "Jump strength";
fixedrotation = 1;
}
1806
{
title = "King Bowser";
sprite = "KOOPA0";
width = 16;
height = 48;
}
1807
{
title = "Axe";
sprite = "MAXEA0";
width = 8;
height = 16;
}
1808
{
title = "Bush (Short)";
sprite = "MUS1A0";
width = 16;
height = 32;
}
1809
{
title = "Bush (Tall)";
sprite = "MUS2A0";
width = 16;
height = 32;
}
1810
{
title = "Toad";
sprite = "TOADA0";
width = 8;
height = 32;
}
}
christmasdisco
{
color = 2; // Green
title = "Christmas & Disco";
1850
{
title = "Christmas Pole";
sprite = "XMS1A0";
width = 16;
height = 40;
}
1851
{
title = "Candy Cane";
sprite = "XMS2A0";
width = 8;
height = 32;
}
1852
{
blocking = 2;
title = "Snowman";
sprite = "XMS3A0";
width = 16;
height = 64;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1853
{
blocking = 2;
title = "Snowman (With Hat)";
sprite = "XMS3B0";
width = 16;
height = 80;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
1854
{
title = "Lamp Post";
sprite = "XMS4A0";
width = 8;
height = 120;
}
1855
{
title = "Lamp Post (Snow)";
sprite = "XMS4B0";
width = 8;
height = 120;
}
1856
{
title = "Hanging Star";
sprite = "XMS5A0";
width = 4;
height = 80;
hangs = 1;
}
1857
{
title = "Berry Bush (Snow)";
sprite = "BUS1B0";
width = 16;
height = 32;
}
1858
{
title = "Bush (Snow)";
sprite = "BUS2B0";
width = 16;
height = 32;
}
1859
{
title = "Blueberry Bush (Snow)";
sprite = "BUS3B0";
width = 16;
height = 32;
}
1875
{
title = "Disco Ball";
sprite = "DBALA0";
width = 16;
height = 54;
hangs = 1;
}
1876
{
arrow = 1;
blocking = 2;
title = "Eggman Disco Statue";
sprite = "ESTAB1";
width = 20;
height = 96;
flags4text = "[4] Slides when pushed";
flags8text = "[8] Not pushable";
}
}
stalagmites
{
color = 2; // Green
title = "Stalagmites";
width = 16;
height = 40;
1900
{
title = "Brown Stalagmite (Tall)";
sprite = "STLGA0";
width = 16;
height = 40;
}
1901
{
title = "Brown Stalagmite";
sprite = "STLGB0";
width = 16;
height = 40;
}
1902
{
title = "Orange Stalagmite (Tall)";
sprite = "STLGC0";
width = 16;
height = 40;
}
1903
{
title = "Orange Stalagmite";
sprite = "STLGD0";
width = 16;
height = 40;
}
1904
{
title = "Red Stalagmite (Tall)";
sprite = "STLGE0";
width = 16;
height = 40;
}
1905
{
title = "Red Stalagmite";
sprite = "STLGF0";
width = 16;
height = 40;
}
1906
{
title = "Gray Stalagmite (Tall)";
sprite = "STLGG0";
width = 24;
height = 96;
}
1907
{
title = "Gray Stalagmite";
sprite = "STLGH0";
width = 16;
height = 40;
}
1908
{
title = "Blue Stalagmite (Tall)";
sprite = "STLGI0";
width = 16;
height = 40;
}
1909
{
title = "Blue Stalagmite";
sprite = "STLGJ0";
width = 16;
height = 40;
}
}
hauntedheights
{
color = 2; // Green
title = "Haunted Heights";
2000
{
title = "Smashing Spikeball";
sprite = "FMCEA0";
width = 18;
height = 28;
angletext = "Initial delay";
fixedrotation = 1;
}
2001
{
title = "HHZ Grass";
sprite = "HHZMA0";
width = 16;
height = 40;
}
2002
{
title = "HHZ Tentacle 1";
sprite = "HHZMB0";
width = 16;
height = 40;
}
2003
{
title = "HHZ Tentacle 2";
sprite = "HHZMC0";
width = 16;
height = 40;
}
2004
{
title = "HHZ Stalagmite (Tall)";
sprite = "HHZME0";
width = 16;
height = 40;
}
2005
{
title = "HHZ Stalagmite (Short)";
sprite = "HHZMF0";
width = 16;
height = 40;
}
2006
{
title = "Jack-o'-lantern 1";
sprite = "PUMKA0";
width = 16;
height = 40;
flags1text = "[1] Don't flicker";
}
2007
{
title = "Jack-o'-lantern 2";
sprite = "PUMKB0";
width = 16;
height = 40;
flags1text = "[1] Don't flicker";
}
2008
{
title = "Jack-o'-lantern 3";
sprite = "PUMKC0";
width = 16;
height = 40;
flags1text = "[1] Don't flicker";
}
2009
{
title = "Purple Mushroom";
sprite = "SHRMD0";
width = 16;
height = 48;
}
2010
{
title = "HHZ Tree";
sprite = "HHPLC0";
width = 12;
height = 40;
}
}
frozenhillside
{
color = 2; // Green
title = "Frozen Hillside";
2100
{
title = "Ice Shard (Small)";
sprite = "FHZIA0";
width = 8;
height = 32;
}
2101
{
title = "Ice Shard (Large)";
sprite = "FHZIB0";
width = 8;
height = 32;
}
2102
{
title = "Crystal Tree (Aqua)";
sprite = "TRE3A0";
width = 20;
height = 200;
}
2103
{
title = "Crystal Tree (Pink)";
sprite = "TRE3B0";
width = 20;
height = 200;
}
2104
{
title = "Amy Cameo";
sprite = "ROSYA1";
width = 16;
height = 48;
flags1text = "[1] Grayscale mode";
}
2105
{
title = "Mistletoe";
sprite = "XMS6A0";
width = 52;
height = 106;
hangs = 1;
}
}
tutorial
{
color = 2; // Green
title = "Tutorial";
799
{
title = "Tutorial Plant";
sprite = "TUPFH0";
width = 40;
height = 144;
parametertext = "Start frame";
}
}
flickies
{
color = 3; // Teal
title = "Flickies";
width = 8;
height = 20;
flags1text = "[1] Move aimlessly";
flags4text = "[4] No movement";
flags8text = "[8] Hop";
angletext = "Radius";
fixedrotation = 1;
2200
{
title = "Bluebird";
sprite = "FL01A1";
}
2201
{
title = "Rabbit";
sprite = "FL02A1";
}
2202
{
title = "Chicken";
sprite = "FL03A1";
}
2203
{
title = "Seal";
sprite = "FL04A1";
}
2204
{
title = "Pig";
sprite = "FL05A1";
}
2205
{
title = "Chipmunk";
sprite = "FL06A1";
}
2206
{
title = "Penguin";
sprite = "FL07A1";
}
2207
{
title = "Fish";
sprite = "FL08A1";
parametertext = "Color";
}
2208
{
title = "Ram";
sprite = "FL09A1";
}
2209
{
title = "Puffin";
sprite = "FL10A1";
}
2210
{
title = "Cow";
sprite = "FL11A1";
}
2211
{
title = "Rat";
sprite = "FL12A1";
}
2212
{
title = "Bear";
sprite = "FL13A1";
}
2213
{
title = "Dove";
sprite = "FL14A1";
}
2214
{
title = "Cat";
sprite = "FL15A1";
}
2215
{
title = "Canary";
sprite = "FL16A1";
}
2216
{
title = "Spider";
sprite = "FS01A1";
}
2217
{
title = "Bat";
sprite = "FS02A0";
}
}
}
//Default things filters
thingsfilters
{
filter0
{
name = "Player starts";
category = "starts";
type = -1;
}
filter1
{
name = "Enemies";
category = "enemies";
type = -1;
}
filter2
{
name = "NiGHTS Track";
category = "nightstrk";
type = -1;
}
filter3
{
name = "Normal Gravity";
category = "";
type = -1;
fields
{
2 = false;
}
}
filter4
{
name = "Reverse Gravity";
category = "";
type = -1;
fields
{
2 = true;
}
}
}
This is a list of major changes in SDL's version history.
---------------------------------------------------------------------------
2.28.2:
---------------------------------------------------------------------------
General:
* Added the hint SDL_HINT_JOYSTICK_WGI to control whether to use Windows.Gaming.Input for controllers
---------------------------------------------------------------------------
2.28.0:
---------------------------------------------------------------------------
General:
* Added SDL_HasWindowSurface() and SDL_DestroyWindowSurface() to switch between the window surface and rendering APIs
* Added a display event SDL_DISPLAYEVENT_MOVED which is sent when the primary monitor changes or displays change position relative to each other
* Added the hint SDL_HINT_ENABLE_SCREEN_KEYBOARD to control whether the on-screen keyboard should be shown when text input is active
---------------------------------------------------------------------------
2.26.0:
---------------------------------------------------------------------------
General:
* Updated OpenGL headers to the latest API from The Khronos Group Inc.
* Added SDL_GetWindowSizeInPixels() to get the window size in pixels, which may differ from the window coordinate size for windows with high-DPI support
* Added simulated vsync synchronization for the software renderer
* Added the mouse position to SDL_MouseWheelEvent
* Added SDL_ResetHints() to reset all hints to their default values
* Added SDL_GetJoystickGUIDInfo() to get device information encoded in a joystick GUID
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 to control whether the HIDAPI driver for XBox 360 controllers should be used
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED to control whether the player LEDs should be lit to indicate which player is associated with an Xbox 360 controller
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS to control whether the HIDAPI driver for XBox 360 wireless controllers should be used
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE to control whether the HIDAPI driver for XBox One controllers should be used
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED to control the brightness of the XBox One guide button LED
* Added support for PS3 controllers to the HIDAPI driver, enabled by default on macOS, controlled by the SDL_HINT_JOYSTICK_HIDAPI_PS3 hint
* Added support for Nintendo Wii controllers to the HIDAPI driver, not enabled by default, controlled by the SDL_HINT_JOYSTICK_HIDAPI_WII hint
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED to control whether the player LED should be lit on the Nintendo Wii controllers
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS to control whether Nintendo Switch Joy-Con controllers will be in vertical mode when using the HIDAPI driver
* Added access to the individual left and right gyro sensors of the combined Joy-Cons controller
* Added a microsecond timestamp to SDL_SensorEvent and SDL_ControllerSensorEvent, when the hardware provides that information
* Added SDL_SensorGetDataWithTimestamp() and SDL_GameControllerGetSensorDataWithTimestamp() to retrieve the last sensor data with the associated microsecond timestamp
* Added the hint SDL_HINT_HIDAPI_IGNORE_DEVICES to have the SDL HID API ignore specific devices
* SDL_GetRevision() now includes more information about the SDL build, including the git commit hash if available
Windows:
* Added the hint SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE to control whether the system mouse acceleration curve is used for relative mouse motion
macOS:
* Implemented vsync synchronization on macOS 12
Linux:
* Added SDL_SetPrimarySelectionText(), SDL_GetPrimarySelectionText(), and SDL_HasPrimarySelectionText() to interact with the X11 primary selection clipboard
* Added the hint SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP to control whether mouse pointer warp emulation is enabled under Wayland
Android:
* Enabled IME soft keyboard input
* Added version checking to make sure the SDL Java and C code are compatible
---------------------------------------------------------------------------
2.24.0:
---------------------------------------------------------------------------
General:
* New version numbering scheme, similar to GLib and Flatpak.
* An even number in the minor version (second component) indicates a production-ready stable release such as 2.24.0, which would have been 2.0.24 under the old system.
* The patchlevel (micro version, third component) indicates a bugfix-only update: for example, 2.24.1 would be a bugfix-only release to fix bugs in 2.24.0, without adding new features.
* An odd number in the minor version indicates a prerelease such as 2.23.0. Stable distributions should not use these prereleases.
* The patchlevel indicates successive prereleases, for example 2.23.1 and 2.23.2 would be prereleases during development of the SDL 2.24.0 stable release.
* Added SDL_GetPointDisplayIndex() and SDL_GetRectDisplayIndex() to get the display associated with a point and rectangle in screen space
* Added SDL_bsearch(), SDL_crc16(), and SDL_utf8strnlen() to the stdlib routines
* Added SDL_CPUPauseInstruction() as a macro in SDL_atomic.h
* Added SDL_size_mul_overflow() and SDL_size_add_overflow() for better size overflow protection
* Added SDL_ResetHint() to reset a hint to the default value
* Added SDL_ResetKeyboard() to reset SDL's internal keyboard state, generating key up events for all currently pressed keys
* Added the hint SDL_HINT_MOUSE_RELATIVE_WARP_MOTION to control whether mouse warping generates motion events in relative mode. This hint defaults off.
* Added the hint SDL_HINT_TRACKPAD_IS_TOUCH_ONLY to control whether trackpads are treated as touch devices or mice. By default touchpads are treated as mouse input.
* The hint SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS now defaults on
* Added support for mini-gamepad mode for Nintendo Joy-Con controllers using the HIDAPI driver
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS to control whether Joy-Con controllers are automatically merged into a unified gamepad when using the HIDAPI driver. This hint defaults on.
* The hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED can be set to a floating point value to set the brightness of the Home LED on Nintendo Switch controllers
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED to set the Home LED brightness for the Nintendo Joy-Con controllers. By default the Home LED is not modified.
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED to control whether the player LED should be lit on the Nintendo Joy-Con controllers
* Added support for Nintendo Online classic controllers using the HIDAPI driver
* Added the hint SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC to control whether the HIDAPI driver for Nintendo Online classic controllers should be used
* Added support for the NVIDIA Shield Controller to the HIDAPI driver, supporting rumble and battery status
* Added support for NVIDIA SHIELD controller to the HIDAPI driver, and a hint SDL_HINT_JOYSTICK_HIDAPI_SHIELD to control whether this is used
* Added functions to get the platform dependent name for a joystick or game controller:
* SDL_JoystickPathForIndex()
* SDL_JoystickPath()
* SDL_GameControllerPathForIndex()
* SDL_GameControllerPath()
* Added SDL_GameControllerGetFirmwareVersion() and SDL_JoystickGetFirmwareVersion(), currently implemented for DualSense(tm) Wireless Controllers using HIDAPI
* Added SDL_JoystickAttachVirtualEx() for extended virtual controller support
* Added joystick event SDL_JOYBATTERYUPDATED for when battery status changes
* Added SDL_GUIDToString() and SDL_GUIDFromString() to convert between SDL GUID and string
* Added SDL_HasLSX() and SDL_HasLASX() to detect LoongArch SIMD support
* Added SDL_GetOriginalMemoryFunctions()
* Added SDL_GetDefaultAudioInfo() to get the name and format of the default audio device, currently implemented for PipeWire, PulseAudio, WASAPI, and DirectSound
* Added HIDAPI driver for the NVIDIA SHIELD controller (2017 model) to enable support for battery status and rumble
* Added support for opening audio devices with 3 or 5 channels (2.1, 4.1). All channel counts from Mono to 7.1 are now supported.
* Rewrote audio channel converters used by SDL_AudioCVT, based on the channel matrix coefficients used as the default for FAudio voices
* SDL log messages are no longer limited to 4K and can be any length
* Fixed a long-standing calling convention issue with dynapi affecting OpenWatcom or OS/2 builds
Windows:
* Added initial support for building for Windows and Xbox with Microsoft's Game Development Kit (GDK), see docs/README-gdk.md for details
* Added a D3D12 renderer implementation and SDL_RenderGetD3D12Device() to retrieve the D3D12 device associated with it
* Added the hint SDL_HINT_WINDOWS_DPI_AWARENESS to set whether the application is DPI-aware. This hint must be set before initializing the video subsystem
* Added the hint SDL_HINT_WINDOWS_DPI_SCALING to control whether the SDL coordinates are in DPI-scaled points or pixels
* Added the hint SDL_HINT_DIRECTINPUT_ENABLED to control whether the DirectInput driver should be used
* Added support for SDL_GetAudioDeviceSpec to the DirectSound backend
Linux:
* Support for XVidMode has been removed, mode changes are only supported using the XRandR extension
* Added the hint SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION to control whether to expose a set of emulated modes in addition to the native resolution modes available on Wayland
* Added the hint SDL_HINT_KMSDRM_DEVICE_INDEX to specify which KMSDRM device to use if the default is not desired
* Added the hint SDL_HINT_LINUX_DIGITAL_HATS to control whether to treat hats as digital rather than checking to see if they may be analog
* Added the hint SDL_HINT_LINUX_HAT_DEADZONES to control whether to use deadzones on analog hats
macOS:
* Bumped minimum OS deployment version to macOS 10.9
* Added SDL_GL_FLOATBUFFERS to allow Cocoa GL contexts to use EDR
* Added the hint SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH to control whether dispatching OpenGL context updates should block the dispatching thread until the main thread finishes processing. This hint defaults to blocking, which is the safer option on modern macOS.
---------------------------------------------------------------------------
2.0.22:
---------------------------------------------------------------------------
General:
* Added SDL_RenderGetWindow() to get the window associated with a renderer
* Added floating point rectangle functions:
* SDL_PointInFRect()
* SDL_FRectEmpty()
* SDL_FRectEquals()
* SDL_FRectEqualsEpsilon()
* SDL_HasIntersectionF()
* SDL_IntersectFRect()
* SDL_UnionFRect()
* SDL_EncloseFPoints()
* SDL_IntersectFRectAndLine()
* Added SDL_IsTextInputShown() which returns whether the IME window is currently shown
* Added SDL_ClearComposition() to dismiss the composition window without disabling IME input
* Added SDL_TEXTEDITING_EXT event for handling long composition text, and a hint SDL_HINT_IME_SUPPORT_EXTENDED_TEXT to enable it
* Added the hint SDL_HINT_MOUSE_RELATIVE_MODE_CENTER to control whether the mouse should be constrained to the whole window or the center of the window when relative mode is enabled
* The mouse is now automatically captured when mouse buttons are pressed, and the hint SDL_HINT_MOUSE_AUTO_CAPTURE allows you to control this behavior
* Added the hint SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL to let SDL know that a foreign window will be used with OpenGL
* Added the hint SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN to let SDL know that a foreign window will be used with Vulkan
* Added the hint SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE to specify whether an SDL_QUIT event will be delivered when the last application window is closed
* Added the hint SDL_HINT_JOYSTICK_ROG_CHAKRAM to control whether ROG Chakram mice show up as joysticks
Windows:
* Added support for SDL_BLENDOPERATION_MINIMUM and SDL_BLENDOPERATION_MAXIMUM to the D3D9 renderer
Linux:
* Compiling with Wayland support requires libwayland-client version 1.18.0 or later
* Added the hint SDL_HINT_X11_WINDOW_TYPE to specify the _NET_WM_WINDOW_TYPE of SDL windows
* Added the hint SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR to allow using libdecor with compositors that support xdg-decoration
Android:
* Added SDL_AndroidSendMessage() to send a custom command to the SDL java activity
---------------------------------------------------------------------------
2.0.20:
---------------------------------------------------------------------------
......@@ -499,7 +662,7 @@ iOS:
tvOS:
* Added support for Apple TV
* Added a hint SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION to control whether he Apple TV remote's joystick axes will automatically match the rotation of the remote.
* Added a hint SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION to control whether he Apple TV remote's joystick axes will automatically match the rotation of the remote.
Android:
* Fixed SDL not resizing window when Android screen resolution changes
......@@ -644,8 +807,8 @@ Linux:
* Added experimental Wayland and Mir support, disabled by default
Android:
* Joystick support (minimum SDK version required to build SDL is now 12,
the required runtime version remains at 10, but on such devices joystick
* Joystick support (minimum SDK version required to build SDL is now 12,
the required runtime version remains at 10, but on such devices joystick
support won't be available).
* Hotplugging support for joysticks
* Added a hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK to control whether the accelerometer should be listed as a 3 axis joystick, which it will by default.
......@@ -698,7 +861,7 @@ iOS:
Android:
IMPORTANT: You MUST get the updated SDLActivity.java to match C code
* Moved EGL initialization to native code
* Moved EGL initialization to native code
* Fixed the accelerometer axis rotation relative to the device rotation
* Fixed race conditions when handling the EGL context on pause/resume
* Touch devices are available for enumeration immediately after init
......
# based on the files generated by CMake's write_basic_package_version_file
# SDL2 CMake version configuration file:
# This file is meant to be placed in a cmake subfolder of SDL2-devel-2.x.y-VC
if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/../include/SDL_version.h")
message(AUTHOR_WARNING "Could not find SDL_version.h. This script is meant to be placed in the root of SDL2-devel-2.x.y-VC")
return()
endif()
file(READ "${CMAKE_CURRENT_LIST_DIR}/../include/SDL_version.h" _sdl_version_h)
string(REGEX MATCH "#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)" _sdl_major_re "${_sdl_version_h}")
set(_sdl_major "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)" _sdl_minor_re "${_sdl_version_h}")
set(_sdl_minor "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)" _sdl_patch_re "${_sdl_version_h}")
set(_sdl_patch "${CMAKE_MATCH_1}")
if(_sdl_major_re AND _sdl_minor_re AND _sdl_patch_re)
set(PACKAGE_VERSION "${_sdl_major}.${_sdl_minor}.${_sdl_patch}")
else()
message(AUTHOR_WARNING "Could not extract version from SDL_version.h.")
return()
endif()
if(PACKAGE_FIND_VERSION_RANGE)
# Package version must be in the requested version range
if ((PACKAGE_FIND_VERSION_RANGE_MIN STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MIN)
OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_GREATER PACKAGE_FIND_VERSION_MAX)
OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_GREATER_EQUAL PACKAGE_FIND_VERSION_MAX)))
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
endif()
else()
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()
endif()
# if the using project doesn't have CMAKE_SIZEOF_VOID_P set, fail.
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "")
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()
# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
if(NOT (CMAKE_SIZEOF_VOID_P STREQUAL "8" OR CMAKE_SIZEOF_VOID_P STREQUAL "4"))
set(PACKAGE_VERSION "${PACKAGE_VERSION} (32+64bit)")
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()