commit 41a3a41edf0ce776170b5eef29297b472f0f283e Author: codeimp Date: Wed Jun 13 19:39:38 2007 +0000 first source submit into svn diff --git a/Build/Builder.cfg b/Build/Builder.cfg new file mode 100644 index 00000000..e69de29b diff --git a/Build/Configurations/Boom.cfg b/Build/Configurations/Boom.cfg new file mode 100644 index 00000000..8729313c --- /dev/null +++ b/Build/Configurations/Boom.cfg @@ -0,0 +1,1890 @@ +/*************************************************************\ + Doom Builder Game Configuration for Boom +\*************************************************************/ + +// This is the title to show for this game +game = "Boom"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 1; +generalizedsectors = 1; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 16 = "Damage -10 or 20% health"; + 17 = "Light Flickers (randomly)"; +} + +// GENERALIZED SECTOR TYPES +gen_sectortypes +{ + lighting + { + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Light Blinks (0.5 sec) and Damage 10 or 20"; + 8 = "Light Glows (1+ sec)"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 17 = "Light Flickers (randomly)"; + } + + damage + { + 0 = "None"; + 32 = "Damage 5 per second"; + 64 = "Damage 10 per second"; + 96 = "Damage 20 per second"; + } + + secret + { + 0 = "No"; + 128 = "Yes"; + } + + friction + { + 0 = "Disabled"; + 256 = "Enabled"; + } + + wind + { + 0 = "Disabled"; + 512 = "Enabled"; + } +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "PassThru"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport to sector"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 78 = "SR Change Texture and Effect to Nearest"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 85 = " Scroll Texture Right"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 99 = "SR Door (Blue) Open Stay (fast)"; + 100 = "W1 Stairs Raise by 16 (fast)"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "WR Door Open Wait Close (fast)"; + 106 = "WR Door Open Stay (fast)"; + 107 = "WR Door Close Stay (fast)"; + 108 = "W1 Door Open Wait Close (fast)"; + 109 = "W1 Door Open Stay (fast)"; + 110 = "W1 Door Close (fast)"; + 111 = "S1 Door Open Wait Close (fast)"; + 112 = "S1 Door Open Stay (fast)"; + 113 = "S1 Door Close Stay (fast)"; + 114 = "SR Door Open Wait Close (fast)"; + 115 = "SR Door Open Stay (fast)"; + 116 = "SR Door Close Stay (fast)"; + 117 = "DR Door Open Wait Close (fast)"; + 118 = "D1 Door Open Stay (fast)"; + 119 = "W1 Floor Raise to Next Higher Floor"; + 120 = "WR Lift Lower Wait Raise (fast)"; + 121 = "W1 Lift Lower Wait Raise (fast)"; + 122 = "S1 Lift Lower Wait Raise (fast)"; + 123 = "SR Lift Lower Wait Raise (fast)"; + 124 = "W1 Exit Level (goes to secret level)"; + 125 = "W1 Teleport (monsters only)"; + 126 = "WR Teleport (monsters only)"; + 127 = "S1 Stairs Raise by 16 (fast)"; + 128 = "WR Floor Raise to Next Higher Floor"; + 129 = "WR Floor Raise to Next Higher Floor (fast)"; + 130 = "W1 Floor Raise to Next Higher Floor (fast)"; + 131 = "S1 Floor Raise to Next Higher Floor (fast)"; + 132 = "SR Floor Raise to Next Higher Floor (fast)"; + 133 = "S1 Door (Blue) Open Stay (fast)"; + 134 = "SR Door (Red) Open Stay (fast)"; + 135 = "S1 Door (Red) Open Stay (fast)"; + 136 = "SR Door (Yellow) Open Stay (fast)"; + 137 = "S1 Door (Yellow) Open Stay (fast)"; + 138 = "SR Light Change to Brightest"; + 139 = "SR Light Change to Darkest"; + 140 = "S1 Floor Raise by 512"; + 141 = "W1 Crusher Start with Slow Damage (silent)"; + 142 = "W1 Floor Raise by 512"; + 143 = "W1 Lift Raise by 24 (changes texture)"; + 144 = "W1 Lift Raise by 24 (remove effect)"; + 145 = "W1 Ceiling Lower to Floor (fast)"; + 146 = "W1 Donut Raise"; + 147 = "WR Floor Raise by 512"; + 148 = "WR Lift Raise by 24 (changes texture)"; + 149 = "WR Lift Raise by 24 (remove effect)"; + 150 = "WR Crusher Start (silent)"; + 151 = "WR Ceiling Raise to Highest Ceiling"; + 152 = "WR Ceiling Lower to Floor (fast)"; + 153 = "W1 Change Texture And Effect"; + 154 = "WR Change Texture And Effect"; + 155 = "WR Donut Raise"; + 156 = "WR Light Start Blinking"; + 157 = "WR Light Change to Darkest"; + 158 = "S1 Floor Raise by Shortest Lower Texture"; + 159 = "S1 Floor Lower to Lowest Floor"; + 160 = "S1 Floor Raise by 24 (changes texture and effect)"; + 161 = "S1 Floor Raise by 24"; + 162 = "S1 Lift Perpetual Lowest and Highest Floors"; + 163 = "S1 Lift Stop"; + 164 = "S1 Crusher Start (fast)"; + 165 = "S1 Crusher Start (silent)"; + 166 = "S1 Ceiling Raise to Highest Ceiling"; + 167 = "S1 Ceiling Lower to 8 Above Floor"; + 168 = "S1 Crusher Stop"; + 169 = "S1 Light Change to Brightest"; + 170 = "S1 Light Change to 35"; + 171 = "S1 Light Change to 255"; + 172 = "S1 Light Start Blinking"; + 173 = "S1 Light Change to Darkest"; + 174 = "S1 Teleport (also monsters)"; + 175 = "S1 Door Close Wait Open (30 seconds)"; + 176 = "SR Floor Raise by Shortest Lower Texture"; + 177 = "SR Floor Lower to Lowest Floor"; + 178 = "SR Floor Raise by 512"; + 179 = "SR Floor Raise by 24 (changes texture and effect)"; + 180 = "SR Floor Raise by 24"; + 181 = "SR Lift Perpetual Lowest and Highest Floors"; + 182 = "SR Lift Stop"; + 183 = "SR Crusher Start (fast)"; + 184 = "SR Crusher Start"; + 185 = "SR Crusher Start (silent)"; + 186 = "SR Ceiling Raise to Highest Ceiling"; + 187 = "SR Ceiling Lower to 8 Above Floor"; + 188 = "SR Crusher Stop"; + 189 = "S1 Change Texture And Effect"; + 190 = "SR Change Texture And Effect"; + 191 = "SR Donut Raise"; + 192 = "SR Light Change to Brightest"; + 193 = "SR Light Start Blinking"; + 194 = "SR Light Change to Darkest"; + 195 = "SR Teleport (also monsters)"; + 196 = "SR Door Close Wait Open (30 seconds)"; + 197 = "G1 Exit Level"; + 198 = "G1 Exit Level (goes to secret level)"; + 199 = "W1 Ceiling Lower to Lowest Ceiling"; + 200 = "W1 Ceiling Lower to Highest Floor"; + 201 = "WR Ceiling Lower to Lowest Ceiling"; + 202 = "WR Ceiling Lower to Highest Floor"; + 203 = "S1 Ceiling Lower to Lowest Ceiling"; + 204 = "S1 Ceiling Lower to Highest Floor"; + 205 = "SR Ceiling Lower to Lowest Ceiling"; + 206 = "SR Ceiling Lower to Highest Floor"; + 207 = "W1 Teleport (also monsters, silent, same angle)"; + 208 = "WR Teleport (also monsters, silent, same angle)"; + 209 = "S1 Teleport (also monsters, silent, same angle)"; + 210 = "SR Teleport (also monsters, silent, same angle)"; + 211 = "SR Lift Raise to Ceiling (instantly)"; + 212 = "WR Lift Raise to Ceiling (instantly)"; + 213 = " Floor Change Brightness to this Brightness"; + 214 = " Scroll Ceiling Accelerates when Sector Changes Height"; + 215 = " Scroll Floor Accelerates when Sector Changes Height"; + 216 = " Scroll Things Accelerates when Sector Changes Height"; + 217 = " Scroll Floor/Things Accelerates when Sector Changes Height"; + 218 = " Scroll Wall Accelerates when Sector Changes Height"; + 219 = "W1 Floor Lower to Nearest Floor"; + 220 = "WR Floor Lower to Nearest Floor"; + 221 = "S1 Floor Lower to Nearest Floor"; + 222 = "SR Floor Lower to Nearest Floor"; + 223 = " Friction Tagged Sector: Drag < 100, Slide > 100"; + 224 = " Wind according to Line Vector"; + 225 = " Current according to Line Vector"; + 226 = " Wind/Current by Push/Pull Thing In Sector"; + 227 = "W1 Lift Raise to Next Highest Floor (fast)"; + 228 = "WR Lift Raise to Next Highest Floor (fast)"; + 229 = "S1 Lift Raise to Next Highest Floor (fast)"; + 230 = "SR Lift Raise to Next Highest Floor (fast)"; + 231 = "W1 Lift Lower to Next Lowest Floor (fast)"; + 232 = "WR Lift Lower to Next Lowest Floor (fast)"; + 233 = "S1 Lift Lower to Next Lowest Floor (fast)"; + 234 = "SR Lift Lower to Next Lowest Floor (fast)"; + 235 = "W1 Lift Move to Same Floor Height (fast)"; + 236 = "WR Lift Move to Same Floor Height (fast)"; + 237 = "S1 Lift Move to Same Floor Height (fast)"; + 238 = "SR Lift Move to Same Floor Height (fast)"; + 239 = "W1 Change Texture and Effect to Nearest"; + 240 = "WR Change Texture and Effect to Nearest"; + 241 = "S1 Change Texture and Effect to Nearest"; + 242 = " Create Fake Ceiling and Floor"; + 243 = "W1 Teleport to Line With Same Tag (silent, same angle)"; + 244 = "WR Teleport to Line With Same Tag (silent, same angle)"; + 245 = " Scroll Ceiling when Sector Changes Height"; + 246 = " Scroll Floor when Sector Changes Height"; + 247 = " Scroll Move Things when Sector Changes Height"; + 248 = " Scroll Floor/Move Things when Sector Changes Height"; + 249 = " Scroll Wall when Sector Changes Height"; + 250 = " Scroll Ceiling according to Line Vector"; + 251 = " Scroll Floor according to Line Vector"; + 252 = " Scroll Move Things according to Line Vector"; + 253 = " Scroll Floor, Move Things"; + 254 = " Scroll Wall according to Line Vector"; + 255 = " Scroll Wall using Sidedef Offsets"; + 256 = "WR Stairs Raise by 8"; + 257 = "WR Stairs Raise by 16 (fast)"; + 258 = "SR Stairs Raise by 8"; + 259 = "SR Stairs Raise by 16 (fast)"; + 260 = " Translucent"; + 261 = " Ceiling Brightness to this Brightness"; + 262 = "W1 Teleport to Line With Same Tag (silent, reversed angle)"; + 263 = "WR Teleport to Line With Same Tag (silent, reversed angle)"; + 264 = "W1 Teleport to Line With Same Tag (also monsters, silent, reversed angle)"; + 265 = "WR Teleport to Line With Same Tag (also monsters, reversed angle)"; + 266 = "W1 Teleport to Line With Same Tag (monsters only, silent)"; + 267 = "WR Teleport to Line With Same Tag (monsters only, silent)"; + 268 = "W1 Teleport (monsters only, silent)"; + 269 = "WR Teleport (monsters only, silent)"; + 271 = " Transfer Sky Texture to Tagged Sectors"; + 272 = " Transfer Sky Texture to Tagged Sectors (flipped)"; +} + +// GENERALIZED LINEDEF TYPES +gen_linedeftypes +{ + normal + { + title = "Normal"; + offset = 0; + length = 0; + } + + floors + { + title = "Floor"; + offset = 24576; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Floor"; + 128 = "Lowest Adjacent Floor"; + 256 = "Next Adjacent Floor"; + 384 = "Lowest Adjacent Ceiling"; + 512 = "Ceiling"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + ceilings + { + title = "Ceiling"; + offset = 16384; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Ceiling"; + 128 = "Lowest Adjacent Ceiling"; + 256 = "Next Adjacent Ceiling"; + 384 = "Highest Adjacent Floor"; + 512 = "Floor"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + doors + { + title = "Door"; + offset = 15360; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + 64 = "Close Wait Open"; + 96 = "Close Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + wait + { + 0 = "1 Second"; + 256 = "4 Seconds"; + 512 = "9 Seconds"; + 768 = "30 Seconds"; + } + + monsters + { + 0 = "No"; + 128 = "Yes"; + } + } + + lockeddoors + { + title = "Locked Door"; + offset = 14336; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + lock + { + 0 = "Any"; + 64 = "Red Keycard"; + 128 = "Blue Keycard"; + 192 = "Yellow Keycard"; + 256 = "Red Skullkey"; + 320 = "Blue Skullkey"; + 384 = "Yellow Skullkey"; + 448 = "All"; + } + + combination + { + 0 = "No (each is a different key)"; + 512 = "Keycard and Skullkey are same"; + } + } + + lifts + { + title = "Lift"; + offset = 13312; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + target + { + 0 = "Lowest adjacent Floor"; + 256 = "Next adjacent Floor"; + 512 = "Lowest adjacent Ceiling"; + 768 = "Perpetual Lowest and Highest Floors"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + delay + { + 0 = "1 Second"; + 64 = "3 Seconds"; + 128 = "5 Seconds"; + 192 = "10 Seconds"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + stairs + { + title = "Stairs"; + offset = 12288; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 256 = "Up"; + } + + step + { + 0 = "4 Map Pixels"; + 64 = "8 Map Pixels"; + 128 = "16 Map Pixels"; + 192 = "24 Map Pixels"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + break + { + 0 = "At different texture"; + 512 = "No"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + crushers + { + title = "Crusher"; + offset = 12160; + length = 128; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + silent + { + 0 = "No"; + 64 = "Yes"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; + 32 = "Not Deathmatch"; + 64 = "Not Cooperative"; +} + +// 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 +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 0; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + + + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + + + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + + + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + + + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + + + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + + + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + + + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + + + 69 + { + title = "Hell Knight"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 68 + { + title = "Arachnotron"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + + + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + + + 67 + { + title = "Mancubus"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + + + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + + + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDA2A8"; + height = 100; + } + + + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + + + 72 + { + title = "Commander Keen"; + width = 16; + sprite = "KEENA0"; + height = 72; + hangs = 1; + } + + + 88 + { + title = "Icon of Sin"; + width = 16; + sprite = "BBRNA0"; + height = 16; + } + + + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + + + 87 + { + title = "Monsters Target"; + height = 32; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + hangs = 0; + blocking = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 1; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 32; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 1; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + + + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + + + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + + + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + + + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + + + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + + + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + + + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 1; + } + + + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + + + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 1; + } + + + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 1; + } + + + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 1; + } + + + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 1; + } + + + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 1; + } + + + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + + + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + + + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + + + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + + + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + + + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + + + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + + + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + + + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + + 23 = "Dead lost soul"; + } + + boom + { + color = 8; // Grey + arrow = 1; + title = "Boom Items"; + width = 0; + sort = 1; + + 5001 = "Pusher"; + 5002 = "Puller"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Doom.cfg b/Build/Configurations/Doom.cfg new file mode 100644 index 00000000..378a4d64 --- /dev/null +++ b/Build/Configurations/Doom.cfg @@ -0,0 +1,1116 @@ +/*************************************************************\ + Doom Builder Game Configuration for Doom +\*************************************************************/ + +// This is the title to show for this game +game = "Doom"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 0; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1; + E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1; + E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2; + MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2; + MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2; + MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 16 = "Damage -10 or 20% health"; +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 100 = "W1 Stairs Raise by 16 (fast)"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; +} + +// 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 +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 0; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDG2G8"; + height = 100; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + hangs = 0; + blocking = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 1; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 1; + + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + + + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + + + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + + + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + + + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 1; + } + + + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + + + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 1; + } + + + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 1; + } + + + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 1; + } + + + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 1; + } + + + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 1; + } + + + 10 + { + title = "Bloody mess"; + sprite = "PLAYW0"; + } + + + 12 + { + title = "Bloody mess"; + sprite = "PLAYW0"; + } + + + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + + + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + + + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + + + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + + + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + + + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + + + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + + 23 = "Dead lost soul"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Doom2.cfg b/Build/Configurations/Doom2.cfg new file mode 100644 index 00000000..4a06f7b1 --- /dev/null +++ b/Build/Configurations/Doom2.cfg @@ -0,0 +1,1271 @@ +/*************************************************************\ + Doom Builder Game Configuration for Doom 2 +\*************************************************************/ + +// This is the title to show for this game +game = "Doom 2"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 0; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 16 = "Damage -10 or 20% health"; + 17 = "Light Flickers (randomly)"; +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 99 = "SR Door (Blue) Open Stay (fast)"; + 100 = "W1 Stairs Raise by 16 (fast)"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "WR Door Open Wait Close (fast)"; + 106 = "WR Door Open Stay (fast)"; + 107 = "WR Door Close Stay (fast)"; + 108 = "W1 Door Open Wait Close (fast)"; + 109 = "W1 Door Open Stay (fast)"; + 110 = "W1 Door Close (fast)"; + 111 = "S1 Door Open Wait Close (fast)"; + 112 = "S1 Door Open Stay (fast)"; + 113 = "S1 Door Close Stay (fast)"; + 114 = "SR Door Open Wait Close (fast)"; + 115 = "SR Door Open Stay (fast)"; + 116 = "SR Door Close Stay (fast)"; + 117 = "DR Door Open Wait Close (fast)"; + 118 = "D1 Door Open Stay (fast)"; + 119 = "W1 Floor Raise to Next Higher Floor"; + 120 = "WR Lift Lower Wait Raise (fast)"; + 121 = "W1 Lift Lower Wait Raise (fast)"; + 122 = "S1 Lift Lower Wait Raise (fast)"; + 123 = "SR Lift Lower Wait Raise (fast)"; + 124 = "W1 Exit Level (goes to secret level)"; + 125 = "W1 Teleport (monsters only)"; + 126 = "WR Teleport (monsters only)"; + 127 = "S1 Stairs Raise by 16 (fast)"; + 128 = "WR Floor Raise to Next Higher Floor"; + 129 = "WR Floor Raise to Next Higher Floor (fast)"; + 130 = "W1 Floor Raise to Next Higher Floor (fast)"; + 131 = "S1 Floor Raise to Next Higher Floor (fast)"; + 132 = "SR Floor Raise to Next Higher Floor (fast)"; + 133 = "S1 Door (Blue) Open Stay (fast)"; + 134 = "SR Door (Red) Open Stay (fast)"; + 135 = "S1 Door (Red) Open Stay (fast)"; + 136 = "SR Door (Yellow) Open Stay (fast)"; + 137 = "S1 Door (Yellow) Open Stay (fast)"; + 138 = "SR Light Change to Brightest"; + 139 = "SR Light Change to Darkest"; + 140 = "S1 Floor Raise by 512"; + 141 = "W1 Crusher Start with Slow Damage (silent)"; +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; +} + +// 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 +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 0; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + 69 + { + title = "Hell Knight"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + 68 + { + title = "Arachnotron"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + 67 + { + title = "Mancubus"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDA2A8"; + height = 100; + } + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + 72 + { + title = "Commander Keen"; + width = 16; + sprite = "KEENA0"; + height = 72; + hangs = 1; + } + 88 + { + title = "Icon of Sin"; + width = 16; + sprite = "BBRNA0"; + height = 16; + } + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + 87 + { + title = "Monsters Target"; + height = 32; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + height = 25; + hangs = 0; + blocking = 0; + sort = 1; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + height = 20; + hangs = 0; + blocking = 0; + sort = 1; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + height = 20; + hangs = 0; + blocking = 0; + sort = 1; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + height = 20; + hangs = 0; + blocking = 0; + sort = 1; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + blocking = 1; + hangs = 0; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 32; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + blocking = 1; + hangs = 0; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + blocking = 0; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 1; + } + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 1; + } + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 1; + } + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 1; + } + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 1; + } + 73 + { + title = "Hanging victim, guts removed"; + sprite = "HDB1A0"; + height = 88; + hangs = 1; + blocking = 1; + } + 74 + { + title = "Hanging victim, guts and brain removed"; + sprite = "HDB2A0"; + height = 88; + hangs = 1; + blocking = 1; + } + 75 + { + title = "Hanging torso, looking down"; + sprite = "HDB3A0"; + height = 64; + hangs = 1; + blocking = 1; + } + 76 + { + title = "Hanging torso, open skull"; + sprite = "HDB4A0"; + height = 64; + hangs = 1; + blocking = 1; + } + 77 + { + title = "Hanging torso, looking down"; + sprite = "HDB5A0"; + height = 64; + hangs = 1; + blocking = 1; + } + 78 + { + title = "Hanging torso, brain removed"; + sprite = "HDB6A0"; + height = 64; + hangs = 1; + blocking = 1; + } + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 1; + } + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 1; + } + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 1; + } + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 1; + } + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 1; + } + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + 23 = "Dead lost soul"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Edge.cfg b/Build/Configurations/Edge.cfg new file mode 100644 index 00000000..d85231e3 --- /dev/null +++ b/Build/Configurations/Edge.cfg @@ -0,0 +1,1575 @@ +/*************************************************************\ + Doom Builder Game Configuration for Edge +\*************************************************************/ + +//File created by Robin Degen +//Last updated: 23-05-2005 + +// This is the title to show for this game +game = "Edge"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 0; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1; + E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1; + E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1; + E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 1; MAP36 = 1; MAP37 = 1; MAP38 = 1; MAP39 = 1; MAP40 = 1; + MAP41 = 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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Random Off"; + 2 = "Light Blink Half Second"; + 3 = "Light Blink 1 Second"; + 4 = "Light Blink And Damage"; + 5 = "Damage Large"; + 7 = "Damage Small"; + 8 = "Light Oscillate"; + 9 = "Secret"; + 10 = "Ceiling Close 30 Sec"; + 11 = "End Damage Special"; + 12 = "Light Sync Half Second"; + 13 = "Light Sync 1 Second"; + 14 = "Ceiling Open 5 Min"; + 16 = "Damage Extreme"; + 17 = "Light Flicker"; + 18 = "EDGE Water Liquid Extrafloor SCROLL/PUSH North"; + 19 = "EDGE Water Liquid Extrafloor SCROLL/PUSH North East"; + 20 = "EDGE Water Liquid Extrafloor SCROLL/PUSH East"; + 21 = "EDGE Water Liquid Extrafloor SCROLL/PUSH South East"; + 22 = "EDGE Water Liquid Extrafloor SCROLL/PUSH South"; + 23 = "EDGE Water Liquid Extrafloor SCROLL/PUSH South West"; + 24 = "EDGE Water Liquid Extrafloor SCROLL/PUSH West"; + 25 = "EDGE Water Liquid Extrafloor SCROLL/PUSH North West"; + 26 = "EDGE Slime Liquid Extrafloor SCROLL/PUSH North"; + 27 = "EDGE Slime Liquid Extrafloor SCROLL/PUSH North East"; + 28 = "EDGE Slime Liquid Extrafloor SCROLL/PUSH East"; + 29 = "EDGE Slime Liquid Extrafloor SCROLL/PUSH South East"; + 30 = "EDGE Slime Liquid Extrafloor SCROLL/PUSH South"; + 31 = "EDGE Slime Liquid Extrafloor SCROLL/PUSH South West"; + 32 = "EDGE Slime Liquid Extrafloor SCROLL/PUSH West"; + 33 = "EDGE Slime Liquid Extrafloor SCROLL/PUSH North West"; + 34 = "EDGE Lava Liquid Extrafloor SCROLL/PUSH North"; + 35 = "EDGE Lava Liquid Extrafloor SCROLL/PUSH North East"; + 36 = "EDGE Lava Liquid Extrafloor SCROLL/PUSH East"; + 37 = "EDGE Lava Liquid Extrafloor SCROLL/PUSH South East"; + 38 = "EDGE Lava Liquid Extrafloor SCROLL/PUSH South"; + 39 = "EDGE Lava Liquid Extrafloor SCROLL/PUSH South West"; + 40 = "EDGE Lava Liquid Extrafloor SCROLL/PUSH West"; + 41 = "EDGE Lava Liquid Extrafloor SCROLL/PUSH North West"; + 42 = "EDGE Push North"; + 43 = "EDGE Push North East"; + 44 = "EDGE Push East"; + 45 = "EDGE Push South East"; + 46 = "EDGE Push South"; + 47 = "EDGE Push South West"; + 48 = "EDGE Push West"; + 49 = "EDGE Push North West"; + 50 = "EDGE Scroll Floor Texture North"; + 51 = "EDGE Scroll Floor Texture North East"; + 52 = "EDGE Scroll Floor Texture East"; + 53 = "EDGE Scroll Floor Texture South East"; + 54 = "EDGE Scroll Floor Texture South"; + 55 = "EDGE Scroll Floor Texture South West"; + 56 = "EDGE Scroll Floor Texture West"; + 57 = "EDGE Scroll Floor Texture North West"; + 58 = "EDGE Scroll Floor Texture/Push North"; + 59 = "EDGE Scroll Floor Texture/Push North East"; + 60 = "EDGE Scroll Floor Texture/Push East"; + 61 = "EDGE Scroll Floor Texture/Push South East"; + 62 = "EDGE Scroll Floor Texture/Push South"; + 63 = "EDGE Scroll Floor Texture/Push South West"; + 64 = "EDGE Scroll Floor Texture/Push West"; + 65 = "EDGE Scroll Floor Texture/Push North West"; + 66 = "EDGE Blue Hue (Swimable Water)"; + 67 = "EDGE Green Hue"; + 68 = "EDGE Green Hue + Damage"; + 69 = "EDGE Red Hue"; + 70 = "EDGE Red Hue + Damage"; +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = " Open Door (closes)"; + 2 = " Walk Once - Open the Door"; + 3 = " Walk Once - Close the Door"; + 4 = " Walk Once - Raise the Door (with close)"; + 5 = " Walk Once - Raise the floor to the next highest neighbour floor height"; + 6 = " Walk Once - Fast ceiling crush"; + 7 = " Build Stairs S1"; + 8 = " Walk once - Build stairs"; + 9 = " Donut S1"; + 10 = " Walk once - Platform down, wait, and then back up"; + 11 = " Exit Level S1"; + 12 = " Walk once - Lights to the level of brightest neighbour"; + 13 = " Walk once - Lights to brightest (255)"; + 14 = " Raise floor 32 and change S1"; + 15 = " Raise floor 24 and change S1"; + 16 = " Walk once - Close Door 30 W1"; + 17 = " Walk once - Start light strobing"; + 18 = " Raise Floor to next S1"; + 19 = " Walk once - Lower floor to the next lowest floor"; + 20 = " Raise floor to next highest and change S1"; + 21 = " Plat down wait up stay"; + 22 = " Walk once - Raise to next highest floor"; + 23 = " Lower floor to lowest S1"; + 24 = " Raise floor G1"; + 25 = " Walk once - Ceiling Crush and Raise W1"; + 26 = " Blue Door SR"; + 27 = " Yellow Door SR"; + 28 = " Red Door SR"; + 29 = " Raise Door S1"; + 30 = " Raise Floor to texture"; + 31 = " Manual Door open S1"; + 32 = " Blue Door open S1"; + 33 = " Red Door open S1"; + 34 = " Yellow Door open S1"; + 35 = " Lights 35"; + 36 = " Lower Floor (Turbo) W1"; + 37 = " Lower and Change W1"; + 38 = " Lower floor to lowest W1"; + 39 = " Walk Once - Player and Creature Teleport"; + 40 = " Raise Ceiling to HEC W1"; + 41 = " Lower Ceiling to floor S1"; + 42 = " Switch repeater - Close Door"; + 43 = " Switch Repeater - Lower ceiling the the floor"; + 44 = " Ceiling Crush W1"; + 45 = " Switch Repeater - Lower floor to the next lowest surrounding floor"; + 46 = " Open Door GR"; + 47 = " Raise floor to nearest and change G1"; + 48 = " Scroll Left"; + 49 = " Ceiling crush and raise S1"; + 50 = " Close door S1"; + 51 = " Secret exit S1"; + 52 = " Exit W1"; + 53 = " Perpetual Raise W1"; + 54 = " Platform Stop W1"; + 55 = " Raise floor crush S1"; + 56 = " Raise floor crush W1"; + 57 = " Ceiling crush stop W1"; + 58 = " Raise floor 24"; + 59 = " Raise floor 24 and change W1"; + 60 = " Switch Repeater - Lower floor to the lowest surrounding floor"; + 61 = " Switch Repeater - Open door"; + 62 = " Switch Repeater - Platform goes down, wait, then up and stay"; + 63 = " Switch Repeater - Raise the door (closes after pause)"; + 64 = " Raise floor to ceiling SR"; + 65 = " Raise floor crush SR"; + 66 = " Raise floor 24 and change SR"; + 67 = " Raise floor 32 and change SR"; + 68 = " Raise floor to nearest and change SR"; + 69 = " Raise floor to nearest SR"; + 70 = " Turbo lower floor SR"; + 71 = " Turbo lower floor S1"; + 72 = " Ceiling crush WR"; + 73 = " Ceiling crush and raise WR"; + 74 = " Ceiling crush and stop WR"; + 75 = " Close door WR"; + 76 = " Close door for 30 WR"; + 77 = " Fast crushing ceiling WR"; + 78 = " Transfer floor texture (NXP) SR (Boom)"; + 79 = " Lights Dark 35 WR"; + 80 = " Lights Neighbour WR"; + 81 = " Lights 255 WR"; + 82 = " Lower floor to lowest WR"; + 83 = " Lower floor WR"; + 84 = " Lower and change WR"; + 85 = " Scroll Right (Boom)"; + 86 = " Open door WR"; + 87 = " Perpetual plat raise WR"; + 88 = " Plat down wait up stay WR"; + 89 = " Plat stop WR"; + 90 = " Raise door WR"; + 91 = " Raise floor WR"; + 92 = " Raise floor 24 WR"; + 93 = " Raise floor 24 and change WR"; + 94 = " Raise floor crush WR"; + 95 = " Raise floor to nearest and change WR"; + 96 = " Raise to texture WR"; + 97 = " Teleport WR"; + 98 = " Lower floor turbo WR"; + 99 = " Blaze open door blue SR"; + 100 = " Build stairs turbo 16 W1"; + 101 = " Raise floor S1"; + 102 = " Lower floor to surrounding S1"; + 103 = " Open door S1"; + 104 = " Lights off W1"; + 105 = " Blazing door raise WR"; + 106 = " Blazing door open WR"; + 107 = " Blazing door close WR"; + 108 = " Blazing door raise W1"; + 109 = " Blazing door open W1"; + 110 = " Blazing door close W1"; + 111 = " Blazing door raise S1"; + 112 = " Blazing door open S1"; + 113 = " Blazing door close S1"; + 114 = " Blazing door raise SR"; + 115 = " Blazing door open SR"; + 116 = " Blazing door close SR"; + 117 = " Blazing door raise SR"; + 118 = " Blazing door open S1"; + 119 = " Raise floor to next highest W1"; + 120 = " Blazing plat down wait up stay WR"; + 121 = " Blazing plat down wait up stay W1"; + 122 = " Blazing plat down wait up stay S1"; + 123 = " Blazing plat down wait up stay SR"; + 124 = " Secret exit W1"; + 125 = " Monster Teleport W1"; + 126 = " Teleport monsters WR"; + 127 = " Build stairs turbo 16 S1"; + 128 = " Raise to nearest floor WR"; + 129 = " Raise floor turbo WR"; + 130 = " Raise floor turbo W1"; + 131 = " Raise floor turbo S1"; + 132 = " Raise floor turbo SR"; + 133 = " Blazing open door blue S1"; + 134 = " Blaze open door red SR"; + 135 = " Blazing open door red S1"; + 136 = " Blazing door open yellow SR"; + 137 = " Blazing open door yellow S1"; + 138 = " Lights on SR"; + 139 = " Lights 35 SR"; + 140 = " Switch Once - Raise the floor up by 512"; + 141 = " Silent crushing ceiling W1"; + 142 = " Raise the floor up by 512 W1 (Boom)"; + 143 = " Raise floor 24 and change W1 (Boom)"; + 144 = " Raise floor 32 and change W1 (Boom)"; + 145 = " Lower ceiling to floor W1 (Boom)"; + 146 = " Donut W1 (Boom)"; + 147 = " Raise the floor up by 512 WR (Boom)"; + 148 = " RAISE FLOOR 24 AND CHANGE WR (Boom)"; + 149 = " RAISE FLOOR 32 AND CHANGE WR (Boom)"; + 150 = " SILENT CRUSHING CEILING WR (Boom)"; + 151 = " RAISE CEILING TO HEC WR (Boom)"; + 152 = " LOWER CEILING TO FLOOR WR (Boom)"; + 153 = " Transfer floor texture (TXP) W1 (Boom)"; + 154 = " Transfer floor texture (TXP) WR (Boom)"; + 155 = " DONUT WR (Boom)"; + 156 = " Start light strobing WR (Boom)"; + 157 = " Lights to dimmest neighbour WR (Boom)"; + 158 = " RAISE FLOOR TO TEXTURE S1 (Boom)"; + 159 = " LOWER AND CHANGE S1 (Boom)"; + 160 = " RAISE FLOOR 24 AND CHANGE S1 (Boom)"; + 161 = " RAISE FLOOR 24 S1 (Boom)"; + 162 = " PERPETUAL RAISE S1 (Boom)"; + 163 = " PLATFORM STOP S1 (Boom)"; + 164 = " Fast ceiling crush S1 (Boom)"; + 165 = " SILENT CRUSHING CEILING S1 (Boom)"; + 166 = " RAISE CEILING TO HEC S1 (Boom)"; + 167 = " CEILING LOWER TO FLOOR+8 S1 (Boom)"; + 168 = " CEILING CRUSH STOP S1 (Boom)"; + 169 = " Lights to brightest neighbour S1 (Boom)"; + 170 = " LIGHTS 35 S1 (Boom)"; + 171 = " LIGHTS 255 S1 (Boom)"; + 172 = " Start light strobing S1 (Boom)"; + 173 = " Lights to dimmest neighbour S1 (Boom)"; + 174 = " Player and Creature Teleport S1 (Boom)"; + 175 = " CLOSE DOOR 30 S1 (Boom)"; + 176 = " RAISE FLOOR TO TEXTURE SR (Boom)"; + 177 = " LOWER AND CHANGE SR (Boom)"; + 178 = " Raise the floor up by 512 SR (Boom)"; + 179 = " RAISE FLOOR 24 AND CHANGE SR (Boom)"; + 180 = " RAISE FLOOR 24 SR (Boom)"; + 181 = " PERPETUAL RAISE SR (Boom)"; + 182 = " PLATFORM STOP SR (Boom)"; + 183 = " Fast ceiling crush SR (Boom)"; + 184 = " CEILING CRUSH AND RAISE SR (Boom)"; + 185 = " SILENT CRUSHING CEILING SR (Boom)"; + 186 = " RAISE CEILING TO HEC SR (Boom)"; + 187 = " CEILING LOWER TO FLOOR+8 SR (Boom)"; + 188 = " CEILING CRUSH STOP SR (Boom)"; + 189 = " Transfer floor texture (TXP) S1 (Boom)"; + 190 = " Transfer floor texture (TXP) SR (Boom)"; + 191 = " DONUT SR (Boom)"; + 192 = " Lights to brightest neighbour SR (Boom)"; + 193 = " Start light strobing SR (Boom)"; + 194 = " Lights to dimmest neighbour SR (Boom)"; + 195 = " Player and Creature Teleport SR (Boom)"; + 196 = " CLOSE DOOR 30 SR (Boom)"; + 197 = " EXIT LEVEL G1 (Boom)"; + 198 = " SECRET EXIT G1 (Boom)"; + 199 = " LOWER CEILING TO LOWEST NEIGHBOUR W1 (Boom)"; + 200 = " LOWER CEILING TO HIGHEST FLOOR W1 (Boom)"; + 201 = " LOWER CEILING TO LOWEST NEIGHBOUR WR (Boom)"; + 202 = " LOWER CEILING TO HIGHEST FLOOR WR (Boom)"; + 203 = " LOWER CEILING TO LOWEST NEIGHBOUR S1 (Boom)"; + 204 = " LOWER CEILING TO HIGHEST FLOOR S1 (Boom)"; + 205 = " LOWER CEILING TO LOWEST NEIGHBOUR SR (Boom)"; + 206 = " LOWER CEILING TO HIGHEST FLOOR SR (Boom)"; + 207 = " Silent Preserving Teleport W1 (Boom)"; + 208 = " Silent Preserving Teleport WR (Boom)"; + 209 = " Silent Preserving Teleport S1 (Boom)"; + 210 = " Silent Preserving Teleport SR (Boom)"; + 213 = " Transfer lighting to tagged floor (Boom)"; + 219 = " LOWER FLOOR TURBO W1 (Boom)"; + 220 = " LOWER FLOOR TURBO WR (Boom)"; + 221 = " LOWER FLOOR TURBO S1 (Boom)"; + 222 = " LOWER FLOOR TURBO SR (Boom)"; + 239 = " Transfer floor texture (NXP) W1 (Boom)"; + 240 = " Transfer floor texture (NXP) WR (Boom)"; + 241 = " Transfer floor texture (NXP) S1 (Boom)"; + 242 = " Deep water (Boom)"; + 250 = " Scroll tagged ceiling (Boom)"; + 251 = " Scroll tagged floor (Boom)"; + 252 = " Carry objects on floor (Boom)"; + 253 = " Scroll floor and carry objects (Boom)"; + 254 = " Scroll tagged wall (Boom)"; + 255 = " Scroll wall by sidedef offsets (Boom)"; + 256 = " BUILD STAIRS WR (Boom)"; + 257 = " BUILD STAIRS TURBO 16 WR (Boom)"; + 258 = " BUILD STAIRS SR (Boom)"; + 259 = " Make tagged lines translucent (Boom)"; + 261 = " Transfer lighting to tagged ceiling (Boom)"; + 268 = " Monster-only Silent Teleport W1 (Boom)"; + 269 = " Monster-only Silent Teleport WR (Boom)"; + 280 = " Legacy '3D liquid floor' (same as EDGE line type 405)"; + 281 = " Legacy '3D floor'"; + 289 = " Legacy '3D floor' (doesnt affect light below the '3D floor')"; + 400 = " EDGE Thick Extrafloor (dummy texture)"; + 401 = " EDGE Thick Extrafloor (master upper texture)"; + 402 = " EDGE Thick Extrafloor (master lower texture)"; + 403 = " EDGE Liquid Extrafloor (solid)"; + 404 = " EDGE Liquid Extrafloor (20% Translucent)"; + 405 = " EDGE Liquid Extrafloor (40% Translucent)"; + 406 = " EDGE Liquid Extrafloor (60% Translucent)"; + 407 = " EDGE Liquid Extrafloor (80% Translucent)"; + 408 = " EDGE Liquid Extrafloor (Invisible)"; + 409 = " EDGE Translucent Linedef (20%)"; + 410 = " EDGE Translucent Linedef (40%)"; + 411 = " EDGE Translucent Linedef (60%)"; + 412 = " EDGE Translucent Linedef (80%)"; + 413 = " EDGE Thin Extrafloor (opaque)"; + 414 = " EDGE Thin Extrafloor (20% Translucent)"; + 415 = " EDGE Thin Extrafloor (40% Translucent)"; + 416 = " EDGE Thin Extrafloor (60% Translucent)"; + 417 = " EDGE Thin Extrafloor (80% Translucent)"; + 418 = " EDGE Enable Tagged RTS S1"; + 419 = " EDGE Enable Tagged RTS SR"; + 420 = " EDGE Enable Tagged RTS W1"; + 421 = " EDGE Enable Tagged RTS WR"; + 422 = " EDGE SCROLL RIGHT"; + 423 = " EDGE SCROLL UP"; + 424 = " EDGE SCROLL DOWN"; + 425 = " EDGE SCROLL LEFT AND UP"; + 426 = " EDGE SCROLL LEFT AND DOWN"; + 427 = " EDGE SCROLL RIGHT AND UP"; + 428 = " EDGE SCROLL RIGHT AND DOWN"; + 429 = " EDGE SCROLL FAST LOWER AND MIDDLE TEXTURE (LIQUID FALLS)"; + 430 = " EDGE THICK TRANSLUCENT LIQUID EXTRAFLOOR SCROLL DOWN (20% TRANSLUCENT)"; + 431 = " EDGE THICK TRANSLUCENT LIQUID EXTRAFLOOR SCROLL DOWN (40% TRANSLUCENT)"; + 432 = " EDGE THICK TRANSLUCENT LIQUID EXTRAFLOOR SCROLL DOWN (60% TRANSLUCENT)"; + 433 = " EDGE THICK TRANSLUCENT LIQUID EXTRAFLOOR SCROLL DOWN (80% TRANSLUCENT)"; + 434 = " EDGE SWITCH ONCE, RAISE FLOOR 2 UNITS (USE FOR RTS ONHEIGHT EVENTS)"; + 435 = " EDGE SWITCH REPEAT, RAISE FLOOR 2 UNITS (USE FOR RTS ONHEIGHT EVENTS)"; + 436 = " EDGE WALK ONCE, RAISE FLOOR 2 UNITS (USE FOR RTS ONHEIGHT EVENTS)"; + 437 = " EDGE WALK REPEAT, RAISE FLOOR 2 UNITS (USE FOR RTS ONHEIGHT EVENTS)"; + 438 = " EDGE SHOOT ONCE, RAISE FLOOR 2 UNITS (USE FOR RTS ONHEIGHT EVENTS)"; + 439 = " EDGE SHOOT REPEAT, RAISE FLOOR 2 UNITS (USE FOR RTS ONHEIGHT EVENTS)"; + 440 = " EDGE Enable Tagged RTS SHOOT1"; + 441 = " EDGE Enable Tagged RTS SHOOTR"; + 442 = " EDGE Sliding door (LEFT), SR + MONSTERS"; + 443 = " EDGE Sliding door (LEFT), SR"; + 444 = " EDGE Sliding door (LEFT), SR + FAST"; + 445 = " EDGE Sliding door (LEFT), S1"; + 446 = " EDGE Sliding door (RIGHT), SR + MONSTERS"; + 447 = " EDGE Sliding door (RIGHT), SR"; + 448 = " EDGE Sliding door (RIGHT), SR + FAST"; + 449 = " EDGE Sliding door (RIGHT), S1"; + 450 = " EDGE Sliding door (CENTER), SR + MONSTERS"; + 451 = " EDGE Sliding door (CENTER), SR"; + 452 = " EDGE Sliding door (CENTER), SR + FAST"; + 453 = " EDGE Sliding door (CENTER), S1"; +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; +} + +// 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 +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 0; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + 69 + { + title = "Hell Knight"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + 68 + { + title = "Arachnotron"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + 67 + { + title = "Mancubus"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDA2A8"; + height = 100; + } + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + 72 + { + title = "Commander Keen"; + width = 16; + sprite = "KEENA0"; + height = 72; + hangs = 1; + } + 88 + { + title = "Icon of Sin"; + width = 16; + sprite = "BBRNA0"; + height = 16; + } + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + 87 + { + title = "Monsters Target"; + height = 32; + } + 888 + { + title = "Dog"; + height = 32; + } + 4050 + { + title = "Stealth Arachnotron"; + height = 32; + } + 4051 + { + title = "Stealth Archvile"; + height = 32; + } + 4052 + { + title = "Stealth Baron of Hell"; + height = 32; + } + 4053 + { + title = "Stealth Cacodemon"; + height = 32; + } + 4054 + { + title = "Stealth Heavy weapon dude"; + height = 32; + } + 4055 + { + title = "Stealth Demon"; + height = 32; + } + 4056 + { + title = "Stealth Hell knight"; + height = 32; + } + 4057 + { + title = "Stealth Imp"; + height = 32; + } + 4058 + { + title = "Stealth Mancubus"; + height = 32; + } + 4059 + { + title = "Stealth Revenant"; + height = 32; + } + 4060 + { + title = "Stealth Shotgun Guy"; + height = 32; + } + 4061 + { + title = "Stealth Zombie man"; + height = 32; + } + 7100 + { + title = "EDGE Revenant MKII"; + height = 32; + } + 7101 + { + title = "EDGE Teleport spawner"; + height = 32; + } + 7102 + { + title = "Arachnotron MKII"; + height = 32; + } + 7103 + { + title = "Mancubus MKII"; + height = 32; + } + + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + height = 25; + hangs = 0; + blocking = 0; + sort = 1; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + height = 20; + hangs = 0; + blocking = 0; + sort = 1; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + height = 20; + hangs = 0; + blocking = 0; + sort = 1; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + 7000 + { + title = "EDGE Nightvision Specs"; + sprite = "PMAPA0"; + + } + 7020 + { + title = "EDGE Jetpack"; + sprite = "SUITA0"; + } + + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + height = 20; + hangs = 0; + blocking = 0; + sort = 1; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + blocking = 1; + hangs = 0; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 32; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + blocking = 1; + hangs = 0; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + blocking = 0; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 1; + } + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 1; + } + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 1; + } + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 1; + } + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 1; + } + 73 + { + title = "Hanging victim, guts removed"; + sprite = "HDB1A0"; + height = 88; + hangs = 1; + blocking = 1; + } + 74 + { + title = "Hanging victim, guts and brain removed"; + sprite = "HDB2A0"; + height = 88; + hangs = 1; + blocking = 1; + } + 75 + { + title = "Hanging torso, looking down"; + sprite = "HDB3A0"; + height = 64; + hangs = 1; + blocking = 1; + } + 76 + { + title = "Hanging torso, open skull"; + sprite = "HDB4A0"; + height = 64; + hangs = 1; + blocking = 1; + } + 77 + { + title = "Hanging torso, looking down"; + sprite = "HDB5A0"; + height = 64; + hangs = 1; + blocking = 1; + } + 78 + { + title = "Hanging torso, brain removed"; + sprite = "HDB6A0"; + height = 64; + hangs = 1; + blocking = 1; + } + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 1; + } + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 1; + } + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 1; + } + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 1; + } + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 1; + } + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + 23 = "Dead lost soul"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Eternity.cfg b/Build/Configurations/Eternity.cfg new file mode 100644 index 00000000..d98d9614 --- /dev/null +++ b/Build/Configurations/Eternity.cfg @@ -0,0 +1,2008 @@ +/*************************************************************\ + Doom Builder Game Configuration for Eternity +\*************************************************************/ + +// This is the title to show for this game +game = "Eternity"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 1; +generalizedsectors = 1; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 16 = "Damage -10 or 20% health"; + 17 = "Light Flickers (randomly)"; +} + +// GENERALIZED SECTOR TYPES +gen_sectortypes +{ + lighting + { + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Light Blinks (0.5 sec) and Damage 10 or 20"; + 8 = "Light Glows (1+ sec)"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 17 = "Light Flickers (randomly)"; + } + + damage + { + 0 = "None"; + 32 = "Damage 5 per second"; + 64 = "Damage 10 per second"; + 96 = "Damage 20 per second"; + } + + secret + { + 0 = "No"; + 128 = "Yes"; + } + + friction + { + 0 = "Disabled"; + 256 = "Enabled"; + } + + wind + { + 0 = "Disabled"; + 512 = "Enabled"; + } + + sounds + { + 0 = "Normal"; + 1024 = "Suppressed"; + } + + noise + { + 0 = "Normal"; + 2048 = "Silent"; + } +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "PassThru"; + 1024 = "3dMidTex"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 78 = "SR Change Texture and Effect to Nearest"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 85 = " Scroll Texture Right"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 99 = "SR Door (Blue) Open Stay (fast)"; + 100 = "W1 Stairs Raise by 16 (fast)"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "WR Door Open Wait Close (fast)"; + 106 = "WR Door Open Stay (fast)"; + 107 = "WR Door Close Stay (fast)"; + 108 = "W1 Door Open Wait Close (fast)"; + 109 = "W1 Door Open Stay (fast)"; + 110 = "W1 Door Close (fast)"; + 111 = "S1 Door Open Wait Close (fast)"; + 112 = "S1 Door Open Stay (fast)"; + 113 = "S1 Door Close Stay (fast)"; + 114 = "SR Door Open Wait Close (fast)"; + 115 = "SR Door Open Stay (fast)"; + 116 = "SR Door Close Stay (fast)"; + 117 = "DR Door Open Wait Close (fast)"; + 118 = "D1 Door Open Stay (fast)"; + 119 = "W1 Floor Raise to Next Higher Floor"; + 120 = "WR Lift Lower Wait Raise (fast)"; + 121 = "W1 Lift Lower Wait Raise (fast)"; + 122 = "S1 Lift Lower Wait Raise (fast)"; + 123 = "SR Lift Lower Wait Raise (fast)"; + 124 = "W1 Exit Level (goes to secret level)"; + 125 = "W1 Teleport (monsters only)"; + 126 = "WR Teleport (monsters only)"; + 127 = "S1 Stairs Raise by 16 (fast)"; + 128 = "WR Floor Raise to Next Higher Floor"; + 129 = "WR Floor Raise to Next Higher Floor (fast)"; + 130 = "W1 Floor Raise to Next Higher Floor (fast)"; + 131 = "S1 Floor Raise to Next Higher Floor (fast)"; + 132 = "SR Floor Raise to Next Higher Floor (fast)"; + 133 = "S1 Door (Blue) Open Stay (fast)"; + 134 = "SR Door (Red) Open Stay (fast)"; + 135 = "S1 Door (Red) Open Stay (fast)"; + 136 = "SR Door (Yellow) Open Stay (fast)"; + 137 = "S1 Door (Yellow) Open Stay (fast)"; + 138 = "SR Light Change to Brightest"; + 139 = "SR Light Change to Darkest"; + 140 = "S1 Floor Raise by 512"; + 141 = "W1 Crusher Start with Slow Damage (silent)"; + 142 = "W1 Floor Raise by 512"; + 143 = "W1 Lift Raise by 24 (changes texture)"; + 144 = "W1 Lift Raise by 24 (remove effect)"; + 145 = "W1 Ceiling Lower to Floor (fast)"; + 146 = "W1 Donut Raise"; + 147 = "WR Floor Raise by 512"; + 148 = "WR Lift Raise by 24 (changes texture)"; + 149 = "WR Lift Raise by 24 (remove effect)"; + 150 = "WR Crusher Start (silent)"; + 151 = "WR Ceiling Raise to Highest Ceiling"; + 152 = "WR Ceiling Lower to Floor (fast)"; + 153 = "W1 Change Texture And Effect"; + 154 = "WR Change Texture And Effect"; + 155 = "WR Donut Raise"; + 156 = "WR Light Start Blinking"; + 157 = "WR Light Change to Darkest"; + 158 = "S1 Floor Raise by Shortest Lower Texture"; + 159 = "S1 Floor Lower to Lowest Floor"; + 160 = "S1 Floor Raise by 24 (changes texture and effect)"; + 161 = "S1 Floor Raise by 24"; + 162 = "S1 Lift Perpetual Lowest and Highest Floors"; + 163 = "S1 Lift Stop"; + 164 = "S1 Crusher Start (fast)"; + 165 = "S1 Crusher Start (silent)"; + 166 = "S1 Ceiling Raise to Highest Ceiling"; + 167 = "S1 Ceiling Lower to 8 Above Floor"; + 168 = "S1 Crusher Stop"; + 169 = "S1 Light Change to Brightest"; + 170 = "S1 Light Change to 35"; + 171 = "S1 Light Change to 255"; + 172 = "S1 Light Start Blinking"; + 173 = "S1 Light Change to Darkest"; + 174 = "S1 Teleport (also monsters)"; + 175 = "S1 Door Close Wait Open (30 seconds)"; + 176 = "SR Floor Raise by Shortest Lower Texture"; + 177 = "SR Floor Lower to Lowest Floor"; + 178 = "SR Floor Raise by 512"; + 179 = "SR Floor Raise by 24 (changes texture and effect)"; + 180 = "SR Floor Raise by 24"; + 181 = "SR Lift Perpetual Lowest and Highest Floors"; + 182 = "SR Lift Stop"; + 183 = "SR Crusher Start (fast)"; + 184 = "SR Crusher Start"; + 185 = "SR Crusher Start (silent)"; + 186 = "SR Ceiling Raise to Highest Ceiling"; + 187 = "SR Ceiling Lower to 8 Above Floor"; + 188 = "SR Crusher Stop"; + 189 = "S1 Change Texture And Effect"; + 190 = "SR Change Texture And Effect"; + 191 = "SR Donut Raise"; + 192 = "SR Light Change to Brightest"; + 193 = "SR Light Start Blinking"; + 194 = "SR Light Change to Darkest"; + 195 = "SR Teleport (also monsters)"; + 196 = "SR Door Close Wait Open (30 seconds)"; + 197 = "G1 Exit Level"; + 198 = "G1 Exit Level (goes to secret level)"; + 199 = "W1 Ceiling Lower to Lowest Ceiling"; + 200 = "W1 Ceiling Lower to Highest Floor"; + 201 = "WR Ceiling Lower to Lowest Ceiling"; + 202 = "WR Ceiling Lower to Highest Floor"; + 203 = "S1 Ceiling Lower to Lowest Ceiling"; + 204 = "S1 Ceiling Lower to Highest Floor"; + 205 = "SR Ceiling Lower to Lowest Ceiling"; + 206 = "SR Ceiling Lower to Highest Floor"; + 207 = "W1 Teleport (also monsters, silent, same angle)"; + 208 = "WR Teleport (also monsters, silent, same angle)"; + 209 = "S1 Teleport (also monsters, silent, same angle)"; + 210 = "SR Teleport (also monsters, silent, same angle)"; + 211 = "SR Lift Raise to Ceiling (instantly)"; + 212 = "WR Lift Raise to Ceiling (instantly)"; + 213 = " Floor Change Brightness to this Brightness"; + 214 = " Scroll Ceiling Accelerates when Sector Changes Height"; + 215 = " Scroll Floor Accelerates when Sector Changes Height"; + 216 = " Scroll Things Accelerates when Sector Changes Height"; + 217 = " Scroll Floor/Things Accelerates when Sector Changes Height"; + 218 = " Scroll Wall Accelerates when Sector Changes Height"; + 219 = "W1 Floor Lower to Nearest Floor"; + 220 = "WR Floor Lower to Nearest Floor"; + 221 = "S1 Floor Lower to Nearest Floor"; + 222 = "SR Floor Lower to Nearest Floor"; + 223 = " Friction Tagged Sector: Drag < 100, Slide > 100"; + 224 = " Wind according to Line Vector"; + 225 = " Current according to Line Vector"; + 226 = " Wind/Current by Push/Pull Thing In Sector"; + 227 = "W1 Lift Raise to Next Highest Floor (fast)"; + 228 = "WR Lift Raise to Next Highest Floor (fast)"; + 229 = "S1 Lift Raise to Next Highest Floor (fast)"; + 230 = "SR Lift Raise to Next Highest Floor (fast)"; + 231 = "W1 Lift Lower to Next Lowest Floor (fast)"; + 232 = "WR Lift Lower to Next Lowest Floor (fast)"; + 233 = "S1 Lift Lower to Next Lowest Floor (fast)"; + 234 = "SR Lift Lower to Next Lowest Floor (fast)"; + 235 = "W1 Lift Move to Same Floor Height (fast)"; + 236 = "WR Lift Move to Same Floor Height (fast)"; + 237 = "S1 Lift Move to Same Floor Height (fast)"; + 238 = "SR Lift Move to Same Floor Height (fast)"; + 239 = "W1 Change Texture and Effect to Nearest"; + 240 = "WR Change Texture and Effect to Nearest"; + 241 = "S1 Change Texture and Effect to Nearest"; + 242 = " Create Fake Ceiling and Floor"; + 243 = "W1 Teleport to Line With Same Tag (silent, same angle)"; + 244 = "WR Teleport to Line With Same Tag (silent, same angle)"; + 245 = " Scroll Ceiling when Sector Changes Height"; + 246 = " Scroll Floor when Sector Changes Height"; + 247 = " Scroll Move Things when Sector Changes Height"; + 248 = " Scroll Floor/Move Things when Sector Changes Height"; + 249 = " Scroll Wall when Sector Changes Height"; + 250 = " Scroll Ceiling according to Line Vector"; + 251 = " Scroll Floor according to Line Vector"; + 252 = " Scroll Move Things according to Line Vector"; + 253 = " Scroll Floor, Move Things"; + 254 = " Scroll Wall according to Line Vector"; + 255 = " Scroll Wall using Sidedef Offsets"; + 256 = "WR Stairs Raise by 8"; + 257 = "WR Stairs Raise by 16 (fast)"; + 258 = "SR Stairs Raise by 8"; + 259 = "SR Stairs Raise by 16 (fast)"; + 260 = " Translucent"; + 261 = " Ceiling Brightness to this Brightness"; + 262 = "W1 Teleport to Line With Same Tag (silent, reversed angle)"; + 263 = "WR Teleport to Line With Same Tag (silent, reversed angle)"; + 264 = "W1 Teleport to Line With Same Tag (also monsters, silent, reversed angle)"; + 265 = "WR Teleport to Line With Same Tag (also monsters, reversed angle)"; + 266 = "W1 Teleport to Line With Same Tag (monsters only, silent)"; + 267 = "WR Teleport to Line With Same Tag (monsters only, silent)"; + 268 = "W1 Teleport (monsters only, silent)"; + 269 = "WR Teleport (monsters only, silent)"; + 271 = " Transfer Sky Texture to Tagged Sectors"; + 272 = " Transfer Sky Texture to Tagged Sectors (flipped)"; + 273 = "WR Start Script, 1-way Trigger"; + 274 = "W1 Start Script With Tag Number"; + 275 = "W1 Start Script, 1-way Trigger"; + 276 = "SR Start Script With Tag Number"; + 277 = "S1 Start Script With Tag Number"; + 278 = "GR Start Script With Tag Number"; + 279 = "G1 Start Script With Tag Number"; + 280 = "WR Start Script With Tag Number"; + 281 = " Sector Floor movement to 3DMidTex as Vertical Scroll"; + 282 = " Sector Ceiling movement to 3DMidTex as Vertical Scroll"; + 283 = " Apply Plane Portal to Ceilings of Tagged Sectors"; + 284 = " Apply Plane Portal to Floors of Tagged Sectors"; + 285 = " Apply Plane Portal to Floors and Ceilings of Tagged Sectors"; + 286 = " Apply Horizon Portal to Ceilings of Tagged Sectors"; + 287 = " Apply Horizon Portal to Floors of Tagged Sectors"; + 288 = " Apply Horizon Portal to Floors and Ceilings of Tagged Sectors"; + 289 = " Transfer a Tagged Portal to the First Side of Linedef"; + 290 = " Apply Skybox Portal to Ceilings of Tagged Sectors"; + 291 = " Apply Skybox Portal to Floors of Tagged Sectors"; + 292 = " Apply Skybox Portal to Floors and Ceilings of Tagged Sectors"; + 293 = " Wind according to Line Vector"; + 294 = " Current according to Line Vector"; + 295 = " Apply Anchored Portal to Ceilings of Tagged Sectors"; + 296 = " Apply Anchored Portal to Floors of Tagged Sectors"; + 297 = " Apply Anchored Portal to Floors and Ceilings of Tagged Sectors"; + 298 = " Anchor Line (for Specials 295 & 297)"; + 299 = " Anchor Line (for Special 296)"; +} + +// GENERALIZED LINEDEF TYPES +gen_linedeftypes +{ + normal + { + title = "Normal"; + offset = 0; + length = 0; + } + + floors + { + title = "Floor"; + offset = 24576; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Floor"; + 128 = "Lowest Adjacent Floor"; + 256 = "Next Adjacent Floor"; + 384 = "Lowest Adjacent Ceiling"; + 512 = "Ceiling"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + ceilings + { + title = "Ceiling"; + offset = 16384; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Ceiling"; + 128 = "Lowest Adjacent Ceiling"; + 256 = "Next Adjacent Ceiling"; + 384 = "Highest Adjacent Floor"; + 512 = "Floor"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + doors + { + title = "Door"; + offset = 15360; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + 64 = "Close Wait Open"; + 96 = "Close Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + wait + { + 0 = "1 Second"; + 256 = "4 Seconds"; + 512 = "9 Seconds"; + 768 = "30 Seconds"; + } + + monsters + { + 0 = "No"; + 128 = "Yes"; + } + } + + lockeddoors + { + title = "Locked Door"; + offset = 14336; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + lock + { + 0 = "Any"; + 64 = "Red Keycard"; + 128 = "Blue Keycard"; + 192 = "Yellow Keycard"; + 256 = "Red Skullkey"; + 320 = "Blue Skullkey"; + 384 = "Yellow Skullkey"; + 448 = "All"; + } + + combination + { + 0 = "No (each is a different key)"; + 512 = "Keycard and Skullkey are same"; + } + } + + lifts + { + title = "Lift"; + offset = 13312; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + target + { + 0 = "Lowest adjacent Floor"; + 256 = "Next adjacent Floor"; + 512 = "Lowest adjacent Ceiling"; + 768 = "Perpetual Lowest and Highest Floors"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + delay + { + 0 = "1 Second"; + 64 = "3 Seconds"; + 128 = "5 Seconds"; + 192 = "10 Seconds"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + stairs + { + title = "Stairs"; + offset = 12288; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 256 = "Up"; + } + + step + { + 0 = "4 Map Pixels"; + 64 = "8 Map Pixels"; + 128 = "16 Map Pixels"; + 192 = "24 Map Pixels"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + break + { + 0 = "At different texture"; + 512 = "No"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + crushers + { + title = "Crusher"; + offset = 12160; + length = 128; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + silent + { + 0 = "No"; + 64 = "Yes"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; + 32 = "Not In DM"; + 64 = "Not In Coop"; + 128 = "Friendly"; + 512 = "Dormant"; +} + +// 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 +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 0; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + + + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + + + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + + + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + + + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + + + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + + + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + + + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + + + 69 + { + title = "Hell Knight"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 68 + { + title = "Arachnotron"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + + + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + + + 67 + { + title = "Mancubus"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + + + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + + + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDA2A8"; + height = 100; + } + + + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + + + 72 + { + title = "Commander Keen"; + width = 16; + sprite = "KEENA0"; + height = 72; + hangs = 1; + } + + + 88 + { + title = "Icon of Sin"; + width = 16; + sprite = "BBRNA0"; + height = 16; + } + + + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + + + 87 + { + title = "Monsters Target"; + height = 32; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + hangs = 0; + blocking = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 1; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 32; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 1; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + + + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + + + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + + + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + + + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + + + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + + + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + + + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 1; + } + + + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + + + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 1; + } + + + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 1; + } + + + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 1; + } + + + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 1; + } + + + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 1; + } + + + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + + + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + + + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + + + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + + + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + + + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + + + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + + + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + + + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + + + 23 + { + title = "Dead lost soul"; + } + + + 73 + { + title = "Hanging victim, guts removed"; + sprite = "HDB1A0"; + height = 88; + hangs = 1; + blocking = 1; + } + + + 74 + { + title = "Hanging victim, guts and brain removed"; + sprite = "HDB2A0"; + height = 88; + hangs = 1; + blocking = 1; + } + + + 75 + { + title = "Hanging torso, looking down"; + sprite = "HDB3A0"; + height = 64; + hangs = 1; + blocking = 1; + } + + + 76 + { + title = "Hanging torso, open skull"; + sprite = "HDB4A0"; + height = 64; + hangs = 1; + blocking = 1; + } + + + 77 + { + title = "Hanging torso, looking down"; + sprite = "HDB5A0"; + height = 64; + hangs = 1; + blocking = 1; + } + + + 78 + { + title = "Hanging torso, brain removed"; + sprite = "HDB6A0"; + height = 64; + hangs = 1; + blocking = 1; + } + + 9027 = "Red Particle Fountain"; + 9028 = "Green Particle Fountain"; + 9029 = "Blue Particle Fountain"; + 9030 = "Yellow Particle Fountain"; + 9031 = "Purple Particle Fountain"; + 9032 = "Black Particle Fountain"; + 9033 = "White Particle Fountain"; + } + + eternity + { + color = 8; // Grey + arrow = 1; + title = "Eternity Items"; + width = 0; + sort = 1; + + 5001 = "Pusher"; + 5002 = "Puller"; + 888 = "Helper Dog"; + 5003 = "Camera Spot for Demo Playback"; + 5005 = "Placeholder Thing"; + 5006 = "Skybox Camera"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Heretic.cfg b/Build/Configurations/Heretic.cfg new file mode 100644 index 00000000..8fb4f7ab --- /dev/null +++ b/Build/Configurations/Heretic.cfg @@ -0,0 +1,1047 @@ +/*************************************************************\ + Doom Builder Game Configuration for Heretic +\*************************************************************/ + +// This is the title to show for this game +game = "Heretic"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 0; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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 = 3; + BEHAVIOR = 2; + E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1; + E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1; + E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1; + E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1; + E5M1 = 1; E5M2 = 1; E5M3 = 1; E5M4 = 1; E5M5 = 1; E5M6 = 1; E5M7 = 1; E5M8 = 1; E5M9 = 1; + MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2; + MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2; + MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2; + MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 15 = "Friction"; + 16 = "Damage -10 or 20% health"; + 21 = "Scroll East (slow)"; + 22 = "Scroll East (medium)"; + 23 = "Scroll East (fast)"; + 26 = "Scroll North (slow)"; + 27 = "Scroll North (medium)"; + 28 = "Scroll North (fast)"; + 31 = "Scroll South (slow)"; + 32 = "Scroll South (medium)"; + 33 = "Scroll South (fast)"; + 36 = "Scroll West (slow)"; + 37 = "Scroll West (medium)"; + 38 = "Scroll West (fast)"; + 40 = "Wind East (weak)"; + 41 = "Wind East (medium)"; + 42 = "Wind East (strong)"; + 43 = "Wind North (weak)"; + 44 = "Wind North (medium)"; + 45 = "Wind North (strong)"; + 46 = "Wind South (weak)"; + 47 = "Wind South (medium)"; + 48 = "Wind South (strong)"; + 49 = "Wind West (weak)"; + 50 = "Wind West (medium)"; + 51 = "Wind West (strong)"; +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 99 = " Scroll Texture Right"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "W1 Exit Level (goes to secret level)"; + 106 = "W1 Build Stairs (16 Tall)"; + 107 = "S1 Build Stairs (16 Tall)"; +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; +} + +// 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 numbers are the basic colors +// Arrow indicates if the things will have an arrow to indicate direction +// Sort: 0 = List as in configuration, 1 = List alphabetically +// Blocking: 0 = No, 1 = Completely, 2 = True-Height +// Error: +// 0 = Dont check for errors +// 1 = Must be inside map (default) +// 2 = Must be inside map and may not collide +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + height = 56; + sort = 1; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + height = 56; + blocking = 2; + error = 2; + sort = 1; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA1"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA1"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA1"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA1"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYQ0"; + } + } + + teleport + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + height = 56; + blocking = 0; + error = 0; + sort = 1; + + 14 + { + title = "Teleport Landing"; + sprite = "TELEA0"; + } + 52 + { + title = "Teleport Glitter (Exit)"; + sprite = "TGLTF0"; + } + 74 + { + title = "Teleport Glitter"; + sprite = "TGLTA0"; + } + } + + sounds + { + color = 5; // Purple + arrow = 0; + title = "Sounds"; + width = 0; + height = 0; + blocking = 0; + sort = 1; + + 41 = "Waterfall"; + 42 = "Wind"; + 1200 = "Scream"; + 1201 = "Squish"; + 1202 = "Drops"; + 1203 = "Slow Footsteps"; + 1204 = "Heartbeat"; + 1205 = "Bells"; + 1206 = "Growl"; + 1207 = "Magic"; + 1208 = "Laughter"; + 1209 = "Fast Footsteps"; + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 16; + sort = 1; + error = 2; + blocking = 2; + + 66 + { + title = "Gargoyle"; + sprite = "IMPXA1"; + height = 36; + } + 5 + { + title = "Fire Gargoyle"; + sprite = "IMPXF1"; + height = 36; + } + 68 + { + title = "Golem"; + sprite = "MUMMA1"; + width = 22; + height = 62; + } + 69 + { + title = "Golem Ghost"; + sprite = "MUMMA1"; + width = 22; + height = 62; + } + 45 + { + title = "Nitrogolem"; + sprite = "MUMMY1"; + width = 22; + height = 62; + } + 46 + { + title = "Nitrogolem Ghost"; + sprite = "MUMMY1"; + width = 22; + height = 62; + } + 15 + { + title = "Disciple Of D'Sparil"; + sprite = "WZRDA1"; + height = 68; + } + 6 + { + title = "Iron Lich"; + sprite = "HEADA1"; + width = 40; + height = 72; + } + 7 + { + title = "D'Sparil"; + sprite = "SRCRA1"; + width = 28; + height = 100; + } + 56 + { + title = "D'Sparil Teleport Location"; + sprite = "SOR2I0"; + } + 9 + { + title = "Maulotaur"; + sprite = "MNTRA1"; + width = 28; + height = 100; + } + 64 + { + title = "Undead Warrior"; + sprite = "KNIGA1"; + width = 24; + height = 48; + } + 65 + { + title = "Undead Warrior Ghost"; + sprite = "KNIGA1"; + width = 24; + height = 78; + } + 70 + { + title = "Weredragon"; + sprite = "BEASA1"; + width = 32; + height = 74; + } + 90 + { + title = "Sabreclaw"; + sprite = "CLNKA1"; + width = 20; + height = 64; + } + 92 + { + title = "Ophidian"; + sprite = "SNKEA1"; + width = 22; + height = 70; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + height = 16; + blocking = 0; + sort = 1; + + 53 + { + title = "Dragon Claw"; + sprite = "WBLSA0"; + } + 2001 + { + title = "Ethereal Crossbow"; + sprite = "WBOWA0"; + } + 2002 + { + title = "Firemace"; + sprite = "WMCEA0"; + } + 2003 + { + title = "Phoenix Rod"; + sprite = "WPHXA0"; + } + 2004 + { + title = "Hellstaff"; + sprite = "WSKLA0"; + } + 2005 + { + title = "Gauntlets Of The Necromancer"; + sprite = "WGNTA0"; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 20; + height = 16; + sort = 1; + blocking = 0; + + 10 + { + title = "Wand Crystal"; + sprite = "AMG1A0"; + } + 12 + { + title = "Crystal Geode"; + sprite = "AMG2A0"; + } + 13 + { + title = "Mace Spheres"; + sprite = "AMM1A0"; + } + 16 + { + title = "Pile Of Mace Spheres"; + sprite = "AMM2A0"; + } + 18 + { + title = "Ethereal Arrows"; + sprite = "AMC1A0"; + } + 19 + { + title = "Quiver Of Ethereal Arrows"; + sprite = "AMC2A0"; + } + 20 + { + title = "Lesser Runes"; + sprite = "AMS1A0"; + } + 21 + { + title = "Greater Runes"; + sprite = "AMS2A0"; + } + 22 + { + title = "Flame Orb"; + sprite = "AMP1A0"; + } + 23 + { + title = "Inferno Orb"; + sprite = "AMP2A0"; + } + 54 + { + title = "Claw Orb"; + sprite = "AMB1A0"; + } + 55 + { + title = "Energy Orb"; + sprite = "AMB2A0"; + } + 8 + { + title = "Bag Of Holding"; + sprite = "BAGHA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 20; + height = 16; + blocking = 0; + sort = 1; + + 81 + { + title = "Crystal Vial"; + sprite = "PTN1A0"; + } + 85 + { + title = "Silver Shield"; + sprite = "SHLDA0"; + } + 31 + { + title = "Enchanted Shield"; + sprite = "SHD2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Artifacts"; + width = 20; + height = 16; + blocking = 0; + sort = 1; + + 30 + { + title = "Morph Ovum"; + sprite = "ARTIEGGC"; + } + 32 + { + title = "Mystic Urn"; + sprite = "ARTISPHL"; + } + 33 + { + title = "Torch"; + sprite = "ARTITRCH"; + } + 34 + { + title = "Time Bomb Of The Ancients"; + sprite = "ARTIFBMB"; + } + 35 + { + title = "Map Scroll"; + sprite = "SPMPA0"; + } + 36 + { + title = "Chaos Device"; + sprite = "ARTIATLP"; + } + 75 + { + title = "Shadowsphere"; + sprite = "ARTIINVS"; + } + 82 + { + title = "Quartz Flask"; + sprite = "ARTIPTN2"; + } + 83 + { + title = "Wings Of Wrath"; + sprite = "ARTISOAR"; + } + 84 + { + title = "Ring of Invulnerability"; + sprite = "ARTIINVU"; + } + 86 + { + title = "Tome of Power"; + sprite = "ARTIPWBK"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 20; + height = 16; + blocking = 0; + sort = 1; + + 73 + { + title = "Green Key"; + sprite = "AKYYA0"; + } + 79 + { + title = "Blue Key"; + sprite = "BKYYA0"; + } + 80 + { + title = "Yellow Key"; + sprite = "CKYYA0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + blocking = 2; + sort = 1; + + 29 + { + title = "Small Pillar"; + sprite = "SMPLA0"; + height = 34; + } + 37 + { + title = "Stalagmite (Small)"; + sprite = "STGSA0"; + height = 32; + } + 38 + { + title = "Stalagmite (Large)"; + sprite = "STGLA0"; + height = 64; + } + 39 + { + title = "Stalactite (Small)"; + sprite = "STCSA0"; + height = 36; + } + 40 + { + title = "Stalactite (Large)"; + sprite = "STCLA0"; + height = 68; + } + 44 + { + title = "Barrel"; + sprite = "BARLA0"; + height = 32; + } + 47 + { + title = "Brown Pillar"; + sprite = "BRPLA0"; + height = 128; + } + 87 + { + title = "Volcano"; + sprite = "VLCOE0"; + height = 20; + } + 2035 + { + title = "Gasbag"; + sprite = "PPODA0"; + height = 54; + } + 43 + { + title = "Gasbag Generator"; + sprite = "PPODA0"; + height = 16; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + blocking = 2; + + 27 + { + title = "Serpent Torch"; + sprite = "SRTCA0"; + height = 54; + } + 28 + { + title = "Chandelier"; + sprite = "CHDLA0"; + hanging = 1; + height = 62; + } + 50 + { + title = "Wall Torch"; + sprite = "WTRHA0"; + height = 64; + } + 76 + { + title = "Fire Brazier"; + sprite = "KFR1A0"; + height = 44; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + blocking = 2; + + 94 + { + title = "Blue Key Marker"; + sprite = "KGZBA0"; + height = 50; + } + 95 + { + title = "Green Key Marker"; + sprite = "KGZGA0"; + height = 50; + } + 96 + { + title = "Yellow Key Marker"; + sprite = "KGZYA0"; + height = 50; + } + 51 + { + title = "Hanging Corpse"; + sprite = "HCORA0"; + hanging = 1; + height = 104; + } + 17 + { + title = "Hanging Skull"; + sprite = "SKH1A0"; + hanging = 1; + height = 70; + } + 24 + { + title = "Hanging Skull 2"; + sprite = "SKH2A0"; + hanging = 1; + height = 60; + } + 25 + { + title = "Hanging Skull 3"; + sprite = "SKH3A0"; + hanging = 1; + height = 45; + } + 26 + { + title = "Hanging Skull 4"; + sprite = "SKH4A0"; + hanging = 1; + height = 35; + } + 48 + { + title = "Moss"; + sprite = "MOS1A0"; + height = 23; + } + 49 + { + title = "Moss 2"; + sprite = "MOS2A0"; + height = 27; + } + } +} \ No newline at end of file diff --git a/Build/Configurations/Hexen.cfg b/Build/Configurations/Hexen.cfg new file mode 100644 index 00000000..f7d4fffd --- /dev/null +++ b/Build/Configurations/Hexen.cfg @@ -0,0 +1,2472 @@ +/*************************************************************\ + Doom Builder Game Configuration for Hexen +\*************************************************************/ + +// This is the title to show for this game +game = "Hexen"; + +// Map format determines the way the map will be loaded +mapformat = 2; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 0; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 999; + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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 = 3; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 1; MAP36 = 1; MAP37 = 1; MAP38 = 1; MAP39 = 1; MAP40 = 1; + MAP41 = 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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; + BEHAVIOR = 8193; + SCRIPTS = 2; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Phased"; + 2 = "Light Sequence Start"; + 3 = "Light Sequence Special 1"; + 4 = "Light Sequence Special 2"; + 26 = "Stairs Special 1"; + 27 = "Stairs Special 2"; + 198 = "Light Indoor 2"; + 199 = "Light Indoor 1"; + 200 = "Sky 2 (MAPINFO)"; + 201 = "Scroll North (slow)"; + 202 = "Scroll North (medium)"; + 203 = "Scroll North (fast)"; + 204 = "Scroll East (slow)"; + 205 = "Scroll East (medium)"; + 206 = "Scroll East (fast)"; + 207 = "Scroll South (slow)"; + 208 = "Scroll South (medium)"; + 209 = "Scroll South (fast)"; + 210 = "Scroll West (slow)"; + 211 = "Scroll West (medium)"; + 212 = "Scroll West (fast)"; + 213 = "Scroll NorthWest (slow)"; + 214 = "Scroll NorthWest (medium)"; + 215 = "Scroll NorthWest (fast)"; + 216 = "Scroll NorthEast (slow)"; + 217 = "Scroll NorthEast (medium)"; + 218 = "Scroll NorthEast (fast)"; + 219 = "Scroll SouthEast (slow)"; + 220 = "Scroll SouthEast (medium)"; + 221 = "Scroll SouthEast (fast)"; + 222 = "Scroll SouthWest (slow)"; + 223 = "Scroll SouthWest (medium)"; + 224 = "Scroll SouthWest (fast)"; +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "Repeatable Action"; + 8192 = "Monster Activates"; + 32768 = "Block Everything"; +} + +// LINEDEF ACTIVATIONS +// Make sure these are in order from lowest value to highest value +linedefactivations +{ + 0 = "Player walks over"; + 1024 = "Player presses Use"; + 2048 = "Monster walks over"; + 3072 = "Projectile hits"; + 4096 = "Player bumps"; + 5120 = "Projectile flies over"; +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + + 20 + { + title = "H Floor Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 21 + { + title = "H Floor Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 22 + { + title = "H Floor Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 23 + { + title = "H Floor Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 24 + { + title = "H Floor Raise to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 25 + { + title = "H Floor Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 28 + { + title = "H Floor Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 35 + { + title = "H Floor Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 36 + { + title = "H Floor Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 46 + { + title = "H Floor Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 66 + { + title = "H Floor Lower Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 67 + { + title = "H Floor Raise Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 68 + { + title = "H Floor Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Target Height (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 40 + { + title = "H Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 41 + { + title = "H Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 42 + { + title = "H Ceiling Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 43 + { + title = "H Ceiling Crush Once"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 44 + { + title = "H Ceiling Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 45 + { + title = "H Ceiling Crush Once and Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 69 + { + title = "H Ceiling Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 95 + { + title = "H Floor and Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 96 + { + title = "H Floor and Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 60 + { + title = "H Platform Perpetual Move"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 61 + { + title = "H Platform Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 62 + { + title = "H Platform Lower Wait Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 63 + { + title = "H Platform Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 64 + { + title = "H Platform Raise Wait Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 65 + { + title = "H Platform Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 29 + { + title = "H Pillar Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 30 + { + title = "H Pillar Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Floor Movement Amount"; + arg4 = "Ceiling Movement Amount"; + mark1 = 1; + } + + 94 + { + title = "H Pillar Build and Crush"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 26 + { + title = "H Stairs Build Down"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 27 + { + title = "H Stairs Build Up"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 31 + { + title = "H Stairs Build Down (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 32 + { + title = "H Stairs Build Up (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 10 + { + title = "H Door Close"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 11 + { + title = "H Door Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 12 + { + title = "H Door Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 13 + { + title = "H Door Locked Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Key Number"; + arg5 = "Light Tag"; + mark1 = 1; + mark5 = 1; + } + + 80 + { + title = "H Script Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 81 + { + title = "H Script Suspend"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 82 + { + title = "H Script Terminate"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 83 + { + title = "H Script Locked Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Key Number"; + } + + 110 + { + title = "H Light Raise"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 111 + { + title = "H Light Lower"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 112 + { + title = "H Light Change"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + mark1 = 1; + } + + 113 + { + title = "H Light Fade"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + arg3 = "Fade Duration"; + mark1 = 1; + } + + 114 + { + title = "H Light Flow"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Fade Duration"; + mark1 = 1; + } + + 115 + { + title = "H Light Flicker"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + mark1 = 1; + } + + 116 + { + title = "H Light Strobe"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Brightest Duration"; + arg5 = "Darkest Duration"; + mark1 = 1; + } + + 121 + { + title = "H Line Identification"; + arg1 = "Set Line ID"; + } + + 100 + { + title = "H Scroll Texture Left"; + arg1 = "Scroll Speed"; + } + + 101 + { + title = "H Scroll Texture Right"; + arg1 = "Scroll Speed"; + } + + 102 + { + title = "H Scroll Texture Up"; + arg1 = "Scroll Speed"; + } + + 103 + { + title = "H Scroll Texture Down"; + arg1 = "Scroll Speed"; + } + + 129 + { + title = "H Use Puzzle Item"; + arg1 = "Item Number"; + arg2 = "Script Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 140 + { + title = "H Sector Change Sound"; + arg1 = "Sector Tag"; + arg2 = "Sound Number"; + mark1 = 1; + } + + 120 + { + title = "H Earthquake"; + arg1 = "Intensity"; + arg2 = "Duration"; + arg3 = "Damage Radius"; + arg4 = "Tremor Radius"; + arg5 = "Thing Tag"; + mark5 = 2; + } + + 74 + { + title = "H Teleport To Map"; + arg1 = "Map Number"; + arg2 = "Position"; + } + + 75 + { + title = "H End Game"; + } + + 70 + { + title = "H Teleport"; + arg1 = "Target MapSpot Tag (0=ignore)"; + arg2 = "Target Sector Tag (0=ignore)"; + mark1 = 2; + mark2 = 1; + } + + 71 + { + title = "H Teleport (silent)"; + arg1 = "Target MapSpot Tag (0=ignore)"; + arg2 = "Use Orientation of MapSpot"; + arg3 = "Target Sector Tag (0=ignore)"; + mark1 = 2; + mark3 = 1; + } + + 72 + { + title = "H Thing Thrust"; + arg1 = "Thrust Angle"; + arg2 = "Thrust Distance"; + } + + 73 + { + title = "H Thing Damage"; + arg1 = "Damage Amount"; + } + + 130 + { + title = "H Thing Activate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 131 + { + title = "H Thing Deactivate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 132 + { + title = "H Thing Remove"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 133 + { + title = "H Thing Destroy"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 134 + { + title = "H Thing Projectile"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 136 + { + title = "H Thing Projectile with Gravity"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 135 + { + title = "H Thing Spawn"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 137 + { + title = "H Thing Spawn (silent)"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 1 + { + title = "H Polyobj Start Line"; + arg1 = "Polyobj Number"; + arg2 = "Mirror Polyobj Number"; + arg3 = "Sound Number"; + } + + 2 + { + title = "H Polyobj Rotate Left"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 3 + { + title = "H Polyobj Rotate Right"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 4 + { + title = "H Polyobj Move"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 5 + { + title = "H Polyobj Explicit Line"; + arg1 = "Polyobj Number"; + arg2 = "Rendering order"; + arg3 = "Mirror Polyobj Number"; + arg4 = "Sound Number"; + } + + 6 + { + title = "H Polyobj Move (8px)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 7 + { + title = "H Polyobj Door Swing"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Delay"; + } + + 8 + { + title = "H Polyobj Door Slide"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + arg5 = "Delay"; + } + + 9 + { + title = "H Line Horizon"; + } + + 90 + { + title = "H Polyobj Rotate Left (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 91 + { + title = "H Polyobj Rotate Right (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 92 + { + title = "H Polyobj Move (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 93 + { + title = "H Polyobj Move (8px, override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Dormant"; + 32 = "Fighter class"; + 64 = "Cleric class"; + 128 = "Mage class"; + 256 = "Singleplayer"; + 512 = "Cooperative"; + 1024 = "Deathmatch"; +} + +// 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 = 1792; // 256 + 512 + 1024 + + +// THING TYPES +// Color numbers are the basic colors +// Arrow indicates if the things will have an arrow to indicate direction +// Sort: 0 = List as in configuration, 1 = List alphabetically +// Blocking: 0 = No, 1 = Completely, 2 = True-Height +// Error: +// 0 = Dont check for errors +// 1 = Must be inside map (default) +// 2 = Must be inside map and may not collide +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "CLERA1"; + } + 2 + { + title = "Player 2 start"; + sprite = "CLERA1"; + } + 3 + { + title = "Player 3 start"; + sprite = "CLERA1"; + } + 4 + { + title = "Player 4 start"; + sprite = "CLERA1"; + } + 9100 + { + title = "Player 5 Start"; + sprite = "CLERA1"; + } + 9101 + { + title = "Player 6 Start"; + sprite = "CLERA1"; + } + 9102 + { + title = "Player 7 Start"; + sprite = "CLERA1"; + } + 9103 + { + title = "Player 8 Start"; + sprite = "CLERA1"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "CLERR0"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + error = 1; + + 14 + { + title = "Teleport Landing"; + sprite = "TELEA0"; + } + 140 + { + title = "Teleport Smoke"; + sprite = "TSMKA0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + error = 2; + + 107 + { + title = "Centaur"; + sprite = "CENTA1"; + } + 10060 + { + title = "Affrit"; + sprite = "FDMNA1"; + } + 115 + { + title = "Slaughtar"; + sprite = "CENTF1"; + } + 34 + { + title = "Reiver"; + sprite = "WRTHA1"; + } + 10011 + { + title = "Reiver (buried)"; + sprite = "WRTHA1"; + } + 254 + { + title = "Dragon Lich"; + sprite = "DRAGC1"; + arg1 = "Destination Thing Tag"; + arg2 = "Destination Thing Tag"; + arg3 = "Destination Thing Tag"; + arg4 = "Destination Thing Tag"; + arg5 = "Destination Thing Tag"; + } + 10030 + { + title = "Ettin"; + sprite = "ETTNA1"; + width = 25; + } + 8020 + { + title = "Wendigo"; + sprite = "ICEYA1"; + width = 22; + } + 31 + { + title = "Green Chaos Serpent"; + sprite = "DEMNA1"; + width = 32; + } + 8080 + { + title = "Brown Chaos Serpent"; + sprite = "DEM2A1"; + width = 32; + } + 114 + { + title = "Dark Bishop"; + sprite = "BISHA1"; + width = 22; + } + 121 + { + title = "Stalker"; + sprite = "SSPTB0"; + width = 32; + } + 120 + { + title = "Stalker Boss"; + sprite = "SSPTD0"; + width = 32; + } + 10100 + { + title = "Zedek (fighter)"; + sprite = "PLAYE8"; + width = 16; + } + 10101 + { + title = "Traductus (cleric)"; + sprite = "CLERE8"; + width = 16; + } + 10102 + { + title = "Menelkir (mage)"; + sprite = "MAGEE8"; + width = 16; + } + 10080 + { + title = "Heresiarch"; + sprite = "SORCA1"; + width = 40; + } + 10200 + { + title = "Korax"; + sprite = "KORXA1"; + width = 65; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + + 10 + { + title = "Serpent Staff"; + sprite = "WCSSA0"; + } + 8010 + { + title = "Timon's Axe"; + sprite = "WFAXA0"; + } + 53 + { + title = "Frost Shards"; + sprite = "WMCSA0"; + } + 8009 + { + title = "Firestorm"; + sprite = "WCFMA0"; + } + 123 + { + title = "Hammer Of Retribution"; + sprite = "WFHMA0"; + } + 8040 + { + title = "Arc Of Death"; + sprite = "WMLGG0"; + } + 18 + { + title = "Wraithverge Piece 1"; + sprite = "WCH1A0"; + } + 19 + { + title = "Wraithverge Piece 2"; + sprite = "WCH2A0"; + } + 20 + { + title = "Wraithverge Piece 3"; + sprite = "WCH3A0"; + } + 12 + { + title = "Quietus Piece 1"; + sprite = "WFR1A0"; + } + 13 + { + title = "Quietus Piece 2"; + sprite = "WFR2A0"; + } + 16 + { + title = "Quietus Piece 3"; + sprite = "WFR3A0"; + } + 21 + { + title = "BloodScourge Piece 1"; + sprite = "WMS1A0"; + } + 22 + { + title = "BloodScourge Piece 2"; + sprite = "WMS2A0"; + } + 23 + { + title = "BloodScourge Piece 3"; + sprite = "WMS3A0"; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Mana"; + width = 8; + sort = 1; + + 122 + { + title = "Blue Mana"; + sprite = "MAN1H0"; + } + 124 + { + title = "Green Mana"; + sprite = "MAN2H0"; + } + 8004 + { + title = "Combine Mana"; + sprite = "MAN3A0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 20; + sort = 1; + + 8005 + { + title = "Mesh Armor"; + sprite = "ARM1A0"; + } + 8006 + { + title = "Falcon Shield"; + sprite = "ARM2A0"; + } + 8007 + { + title = "Platinum Helm"; + sprite = "ARM3A0"; + } + 8008 + { + title = "Amulet Of Warding"; + sprite = "ARM4A0"; + } + 81 + { + title = "Crystal Vial"; + sprite = "PTN1A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Artifacts"; + width = 20; + sort = 1; + + 30 + { + title = "Porkalator"; + sprite = "ARTIPORK"; + } + 32 + { + title = "Mystic Urn"; + sprite = "ARTISPHL"; + } + 33 + { + title = "Torch"; + sprite = "ARTITRCH"; + } + 36 + { + title = "Chaos Device"; + sprie = "ARTIATLP"; + } + 82 + { + title = "Quartz Flask"; + sprite = "ARTIPTN2"; + } + 83 + { + title = "Wings Of Wrath"; + sprite = "ARTISOAR"; + } + 84 + { + title = "Icon Of The Defender"; + sprite = "ARTIINVU"; + } + 86 + { + title = "Dark Servant"; + sprite = "ARTISUMN"; + } + 10110 + { + title = "Disc Of Repulsion"; + sprite = "ARTIBLST"; + } + 10120 + { + title = "Mystic Ambit Incant"; + sprite = "ARTIHRAD"; + } + 10040 + { + title = "Banishment Device"; + sprite = "ARTITELO"; + } + 8000 + { + title = "Flechette"; + sprite = "ARTIPSBG"; + } + 8002 + { + title = "Boots Of Speed"; + sprite = "ARTISPED"; + } + 8003 + { + title = "Crater Of Might"; + sprite = "ARTIBMAN"; + } + 8041 + { + title = "Dragonskin Bracers"; + sprite = "ARTIBRAC"; + } + } + + puzzle + { + color = 7; // Light Grey + arrow = 1; + title = "Puzzle Items"; + width = 20; + sort = 1; + + 9007 + { + title = "Daemon Codex"; + sprite = "ARTIBOK1"; + } + 9008 + { + title = "Liber Obscura"; + sprite = "ARTIBOK2"; + } + 9004 + { + title = "Ruby Planet"; + sprite = "ARTIGEMR"; + } + 9005 + { + title = "Emerald Planet 1"; + sprite = "ARTIGEMG"; + } + 9009 + { + title = "Emerald Planet 2"; + sprite = "ARTIGMG2"; + } + 9006 + { + title = "Sapphire Planet 1"; + sprite = "ARTIGEMB"; + } + 9010 + { + title = "Sapphire Planet 2"; + sprite = "ARTIGMB2"; + } + 9018 + { + title = "Clock Gear (steel)"; + sprite = "ARTIGEAR"; + } + 9019 + { + title = "Clock Gear (bronze)"; + sprite = "ARTIGER2"; + } + 9020 + { + title = "Clock Gear (steel and bronze)"; + sprite = "ARTIGER3"; + } + 9021 + { + title = "Clock Gear (bronze and steel)"; + sprite = "ARTIGER4"; + } + 9003 + { + title = "Heart Of D'Sparil"; + sprite = "ARTIBGEM"; + } + 9012 + { + title = "Pedestal Of D'Sparil"; + sprite = "GMPDA0"; + width = 10; + } + 9002 + { + title = "Yorick's Skull"; + sprite = "ARTISKLL"; + } + 9011 + { + title = "Yorick's Statue"; + sprite = "STWNA0"; + width = 10; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 8; + sort = 1; + + 8030 + { + title = "Steel Key"; + sprite = "KEY1A0"; + } + 8031 + { + title = "Cave Key"; + sprite = "KEY2A0"; + } + 8032 + { + title = "Axe Key"; + sprite = "KEY3A0"; + } + 8033 + { + title = "Fire Key"; + sprite = "KEY4A0"; + } + 8034 + { + title = "Emerald Key"; + sprite = "KEY5A0"; + } + 8035 + { + title = "Dungeon Key"; + sprite = "KEY6A0"; + } + 8036 + { + title = "Silver Key"; + sprite = "KEY7A0"; + } + 8037 + { + title = "Rusty Key"; + sprite = "KEY8A0"; + } + 8038 + { + title = "Horn Key"; + sprite = "KEY9A0"; + } + 8039 + { + title = "Swamp Key"; + sprite = "KEYAA0"; + } + 8200 + { + title = "Castle Key"; + sprite = "KEYBA0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + + 8064 + { + title = "Suit Of Armor"; + sprite = "SUITA0"; + width = 16; + } + 77 + { + title = "Battle Rag Banner"; + sprie = "BNR1A0"; + width = 8; + } + 8100 + { + title = "Barrel"; + sprite = "BARLA0"; + width = 15; + } + 8065 + { + title = "Bell"; + sprite = "BBLLA0"; + width = 56; + } + 103 + { + title = "Pillar With Vase"; + sprite = "VASEA0"; + width = 12; + } + 5 + { + title= "Winged Statue"; + sprite = "STTWA0"; + width = 10; + } + 98 + { + title = "Small Rock (brown)"; + sprite = "RKBSA0"; + width = 15; + } + 97 + { + title = "Big Rock (brown)"; + sprite = "RKBLA0"; + width = 17; + } + 99 + { + title = "Big Rock (grey)"; + sprite = "RKBKA0"; + } + 57 + { + title = "Stalactite (small)"; + sprite = "SLC3A0"; + width = 8; + } + 56 + { + title = "Stalactite (medium)"; + sprite = "SLC2A0"; + width = 6; + } + 52 + { + title = "Stalactite (large)"; + sprite = "SLC1A0"; + width = 8; + } + 48 + { + title = "Stalagmite (pillar)"; + sprite = "SGMPA0"; + width = 8; + } + 51 + { + title = "Stalagmite (small)"; + sprite = "SGM3A0"; + width = 8; + } + 50 + { + title = "Stalagmite (medium)"; + sprite = "SGM2A0"; + width = 6; + } + 49 + { + title = "Stalagmite (large)"; + sprite = "SGM1A0"; + width = 8; + } + 80 + { + title = "Gnarled Tree 1"; + sprite = "TRE6A0"; + width = 22; + } + 87 + { + title = "Gnarled Tree 2"; + sprite = "TRE7A0"; + width = 22; + } + 78 + { + title = "Tall Tree 1"; + sprite = "TRE5A0"; + width = 15; + } + 79 + { + title = "Tall Tree 2"; + sprite = "TRE4A0"; + width = 15; + } + 8067 + { + title = "Iron Maiden"; + sprite = "IRONA0"; + width = 12; + } + 63 + { + title = "Tombstone (RIP)"; + sprite = "TMS1A0"; + width = 10; + } + 64 + { + title = "Tombstone (Shane)"; + sprite = "TMS2A0"; + width = 10; + } + 65 + { + title = "Tombstone (slimy)"; + sprite = "TMS3A0"; + width = 10; + } + 66 + { + title = "Tombstone (Brian R)"; + sprite = "TMS4A0"; + width = 10; + } + 67 + { + title = "Tombstone (cross circle)"; + sprite = "TMS5A0"; + width = 10; + } + 68 + { + title = "Tombstone (small cross)"; + sprite = "TMS6A0"; + width = 8; + } + 69 + { + title = "Tombstone (Brian P)"; + sprite = "TMS7A0"; + width = 8; + } + 96 + { + title = "Ice Spike (tiny)"; + sprite = "ICM4A0"; + width = 4; + } + 95 + { + title = "Ice Spike (small)"; + sprite = "ICM3A0"; + width = 5; + } + 94 + { + title = "Ice Spike (medium)"; + sprite = "ICM2A0"; + width = 5; + } + 93 + { + title = "Ice Spike (large)"; + sprite = "ICM1A0"; + width = 8; + } + 92 + { + title = "Icicle (tiny)"; + sprite = "ICT4A0"; + width = 4; + } + 91 + { + title = "Icicle (small)"; + sprite = "ICT3A0"; + width = 4; + } + 90 + { + title = "Icicle (medium)"; + sprite = "ICT2A0"; + width = 5; + } + 89 + { + title = "Icicle (large)"; + sprite = "ICT1A0"; + width = 8; + } + 8068 + { + title = "Evergreen Tree"; + sprite = "XMASA0"; + width = 11; + } + 8062 + { + title = "Leafless Tree"; + sprite = "TRDTA0"; + width = 15; + } + 24 + { + title = "Dead Tree"; + sprite = "TRE1A0"; + width = 10; + } + 25 + { + title = "Dead Tree (destructable)"; + sprite = "TRE1A0"; + width = 15; + } + 60 + { + title = "Dead Tree (mossy)"; + sprite = "SWMVA0"; + width = 8; + } + 26 + { + title = "Mossy Tree 1"; + sprite = "TRE2A0"; + width = 10; + } + 27 + { + title = "Mossy Tree 2"; + sprite = "TRE3A0"; + width = 10; + } + 88 + { + title = "Log"; + sprite = "SLTRA0"; + } + 29 + { + title= "Tree Stump (bare)"; + sprite = "STM2A0"; + width = 12; + } + 28 + { + title= "Tree Stump (burned)"; + sprite = "STM1A0"; + width = 12; + } + 37 + { + title = "Tree Stump 1"; + sprite = "STM3A0"; + } + 38 + { + title = "Tree Stump 2"; + sprite = "STM4A0"; + } + 8051 + { + title = "Bronze Gargoyle (short)"; + sprite = "GAR8A0"; + width = 14; + } + 8047 + { + title = "Bronze Gargoyle (tall)"; + sprite = "GAR4A0"; + width = 14; + } + 8044 + { + title = "Rusty Gargoyle (tall)"; + sprite = "GAR1A0"; + width = 14; + } + 76 + { + title = "Ice Gargoyle (short)"; + sprite = "STT5A0"; + width = 14; + } + 73 + { + title = "Ice Gargoyle (tall)"; + sprite = "STT3A0"; + width = 14; + } + 8050 + { + title = "Lava Gargoyle (short)"; + sprite = "GAR7A0"; + width = 14; + } + 8046 + { + title = "Lava Gargoyle (tall)"; + sprite = "GAR3A0"; + width = 14; + } + 8049 + { + title = "Dark Lava Gargoyle (short)"; + sprite = "GAR6A0"; + width = 14; + } + 8045 + { + title = "Dark Lava Gargoyle (tall)"; + sprite = "GAR2A0"; + width = 14; + } + 74 + { + title = "Stone Gargoyle (short)"; + sprite = "STT4A0"; + width = 14; + } + 72 + { + title = "Stone Gargoyle (tall)"; + sprite = "STT2A0"; + width = 14; + } + 8052 + { + title = "Steel Gargoyle (short)"; + sprite = "GAR9A0"; + width = 14; + } + 8048 + { + title = "Steel Gargoyle (tall)"; + sprite = "GAR5A0"; + width = 14; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 20; + sort = 1; + + 17 + { + title = "Chandelier (lit)"; + sprite = "CDLRA0"; + } + 8063 + { + title = "Chandelier (unlit)"; + sprite = "CDLRD0"; + } + 8066 + { + title = "Blue Candle (lit)"; + sprite = "CANDA0"; + } + 8502 + { + title = "Candle With Web (unlit)"; + sprite = "TST3A0"; + } + 8503 + { + title = "Small Gray Candle (unlit)"; + sprite = "TST4A0"; + } + 8504 + { + title = "Small Candle (unlit)"; + sprite = "TST5A0"; + } + 119 + { + title = "3 Candles (lit)"; + sprite = "CNDLA0"; + } + 10500 + { + title = "Small Flame (timed)"; + sprite = "FFSMA0"; + } + 10501 + { + title = "Small Flame"; + sprite = "FFSMA0"; + } + 10502 + { + title = "Large Flame (timed)"; + sprite = "FFLGD0"; + } + 10503 + { + title = "Large Flame"; + sprite = "FFLGD0"; + } + 54 + { + title = "Wall Torch (lit)"; + sprite = "WLTRB0"; + } + 55 + { + title = "Wall Torch (unlit)"; + sprite = "WLTRI0"; + } + 8042 + { + title = "Minotaur Statue (lit)"; + sprite = "FBULB0"; + } + 8043 + { + title = "Minotaur Statue (unlit)"; + sprite = "FBULH0"; + } + 8069 + { + title = "Cauldron (lit)"; + sprite = "CDRNG0"; + width = 12; + } + 8070 + { + title = "Cauldron (unlit)"; + sprite = "CDRNA0"; + width = 12; + } + 8060 + { + title = "Skull With Flame"; + sprite = "FSKLA0"; + width = 5; + } + 8061 + { + title = "Brazier With Flame"; + sprite = "BRTRB0"; + width = 6; + } + 116 + { + title = "Twined Torch (lit)"; + sprite = "TWTRA0"; + width = 10; + } + 117 + { + title = "Twined Torch (unlit)"; + sprite = "TWTRI0"; + width = 10; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 20; + sort = 1; + + 8071 + { + title = "Chain (short)"; + sprite = "CHNSA0"; + width = 4; + } + 8072 + { + title = "Chain (long)"; + sprite = "CHNSB0"; + width = 4; + } + 8073 + { + title = "Hook With Heart"; + sprite = "CHNSC0"; + width = 4; + } + 8077 + { + title = "Hook With Skull"; + sprite = "CHNSG0"; + width = 4; + } + 8074 + { + title = "Chain With Large Hook"; + sprite = "CHNSD0"; + width = 4; + } + 8075 + { + title = "Chain With Small Hook"; + sprite = "CHNSE0"; + width = 4; + } + 8076 + { + title = "Chain with Spike Ball"; + sprite = "CHNSF0"; + width = 4; + } + 8103 + { + title = "Hanging Bucket"; + sprite = "BCKTA0"; + width = 8; + } + 6 + { + title = "Tiny Rock (mossy)"; + sprite = "RCK1A0"; + } + 7 + { + title = "Small Rock (mossy)"; + sprite = "RCK2A0"; + } + 9 + { + title = "Medium Rock (mossy)"; + sprite = "RCK3A0"; + } + 15 + { + title = "Big Rock (mossy)"; + sprite = "RCK4A0"; + } + 101 + { + title = "Brick Rubble (small)"; + sprite = "RBL2A0"; + } + 102 + { + title = "Brick Rubble (medium)"; + sprite = "RBL3A0"; + } + 100 + { + title = "Brick Rubble (large)"; + sprite = "RBL1A0"; + } + 39 + { + title = "Large Mushroom 1"; + sprite = "MSH1A0"; + } + 40 + { + title = "Large Mushroom 2"; + sprite = "MSH2A0"; + } + 8104 + { + title = "Large Mushroom (explodes)"; + sprite = "SHRMB0"; + width = 6; + } + 41 + { + title = "Medium Mushroom"; + sprite = "MSH3A0"; + } + 42 + { + title = "Small Mushroom 1"; + sprite = "MSH4A0"; + } + 44 + { + title = "Small Mushroom 2"; + sprite = "MSH5A0"; + } + 45 + { + title = "Small Mushroom 3"; + sprite = "MSH6A0"; + } + 46 + { + title = "Small Mushroom 4"; + sprite = "MSH7A0"; + } + 47 + { + title = "Small Mushroom 5"; + sprite = "MSH8A0"; + } + 8101 + { + title = "Shrub"; + sprite = "SHB1A0"; + width = 8; + } + 8102 + { + title = "Shrub 2"; + sprite = "SHB2A0"; + width = 16; + } + 111 + { + title = "Pool Of Blood"; + sprite = "GIBSA0"; + } + 71 + { + title= "Hanging Corpse"; + sprite = "CPS3A0"; + width = 6; + } + 61 + { + title = "Impaled Corpse"; + sprite = "CPS1A0"; + width = 10; + } + 108 + { + title = "Lynched Corpse"; + sprite = "CPS4A0"; + width = 11; + } + 109 + { + title = "Lynched Corpse (heartless)"; + sprite = "CPS5A0"; + width = 10; + } + 110 + { + title = "Corpse (sitting)"; + sprite = "CPS6A0"; + width = 15; + } + 62 + { + title = "Corpse (sleeping)"; + sprite = "CPS2A0"; + } + 8509 + { + title = "Meat Cleaver"; + sprite = "TST0A0"; + } + 8508 + { + title = "Goblet (silver)"; + sprite = "TST9A0"; + } + 8507 + { + title = "Goblet (small)"; + sprite = "TST8A0"; + } + 8506 + { + title = "Goblet (tall)"; + sprite = "TST7A0"; + } + 8505 + { + title = "Goblet (spilled)"; + sprite = "TST6A0"; + } + 8501 + { + title = "Small Silver Stein"; + sprite = "TST2A0"; + } + 8500 + { + title = "Large Brown Stein"; + sprite = "TST1A0"; + } + 104 + { + title = "Pot (tall)"; + sprite = "POT1A0"; + width = 10; + } + 105 + { + title = "Pot (medium)"; + sprite = "POT2A0"; + width = 10; + } + 106 + { + title = "Pot (short)"; + sprite = "POT3A0"; + width = 15; + } + 58 + { + title = "Hanging Moss 1"; + sprite = "MSS1A0"; + } + 59 + { + title = "Hanging Moss 2"; + sprite = "MSS2A0"; + } + 10090 + { + title = "Spike Down"; + sprite = "TSPKD0"; + width = 20; + } + 10091 + { + title = "Spike Up"; + sprite = "TSPKB0"; + width = 20; + } + } + + sounds + { + color = 5; // Purple + arrow = 1; + title = "Sounds"; + width = 0; + sort = 1; + + 1403 = "Creak"; + 1408 = "Earth Crack"; + 1401 = "Heavy"; + 1407 = "Ice"; + 1405 = "Lava"; + 1402 = "Metal"; + 1409 = "Metal2"; + 1404 = "Silent"; + 1400 = "Stone"; + 1406 = "Water"; + 1410 = "Wind"; + } + + other + { + color = 8; // Dark Grey + arrow = 1; + title = "Other"; + width = 0; + sort = 1; + + 118 + { + title = "Glitter Bridge"; + width = 32; + } + 3000 = "Polyobject Anchor"; + 3001 = "Polyobject Start Spot"; + 3002 = "Polyobject Start Spot (crush)"; + 10225 + { + title = "Spawn Bat"; + sprite = "ABATC2C8"; + arg1 = "Spawn Frequency"; + arg2 = "Spread Angle"; + arg4 = "Spawn Duration"; + arg5 = "Changing Angle"; + } + 10000 + { + title = "Spawn Fog"; + arg1 = "Movement Speed"; + arg2 = "Spread Angle"; + arg3 = "Spawn Frequency"; + arg4 = "Fog Lifetime"; + } + 10001 + { + title = "Fog Patch (small)"; + arg1 = "Movement Speed"; + arg4 = "Fog Lifetime"; + arg5 = "Moving Fog"; + } + 10002 + { + title = "Fog Patch (medium)"; + arg1 = "Movement Speed"; + arg4 = "Fog Lifetime"; + arg5 = "Moving Fog"; + } + 10003 + { + title = "Fog Patch (large)"; + arg1 = "Movement Speed"; + arg4 = "Fog Lifetime"; + arg5 = "Moving Fog"; + } + 113 = "Spawn Leaf"; + 9001 = "Map Spot"; + 9013 = "Map Spot (gravity)"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Legacy.cfg b/Build/Configurations/Legacy.cfg new file mode 100644 index 00000000..e3d7f441 --- /dev/null +++ b/Build/Configurations/Legacy.cfg @@ -0,0 +1,1964 @@ +/*************************************************************\ + Doom Builder Game Configuration for Doom Legacy +\*************************************************************/ + +// This is the title to show for this game +game = "Doom Legacy"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 1; +generalizedsectors = 1; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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 +{ +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + ~ = 16386; + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 16 = "Damage -10 or 20% health"; + 17 = "Light Flickers (randomly)"; +} + +// GENERALIZED SECTOR TYPES +gen_sectortypes +{ + lighting + { + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Light Blinks (0.5 sec) and Damage 10 or 20"; + 8 = "Light Glows (1+ sec)"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 17 = "Light Flickers (randomly)"; + } + + damage + { + 0 = "None"; + 32 = "Damage 5 per second"; + 64 = "Damage 10 per second"; + 96 = "Damage 20 per second"; + } + + secret + { + 0 = "No"; + 128 = "Yes"; + } + + friction + { + 0 = "Disabled"; + 256 = "Enabled"; + } + + wind + { + 0 = "Disabled"; + 512 = "Enabled"; + } +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "PassThru"; + 1024 = "AllTrigger"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 78 = "SR Change Texture and Effect to Nearest"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 85 = " Scroll Texture Right"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 99 = "SR Door (Blue) Open Stay (fast)"; + 100 = "W1 Stairs Raise by 16 (fast)"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "WR Door Open Wait Close (fast)"; + 106 = "WR Door Open Stay (fast)"; + 107 = "WR Door Close Stay (fast)"; + 108 = "W1 Door Open Wait Close (fast)"; + 109 = "W1 Door Open Stay (fast)"; + 110 = "W1 Door Close (fast)"; + 111 = "S1 Door Open Wait Close (fast)"; + 112 = "S1 Door Open Stay (fast)"; + 113 = "S1 Door Close Stay (fast)"; + 114 = "SR Door Open Wait Close (fast)"; + 115 = "SR Door Open Stay (fast)"; + 116 = "SR Door Close Stay (fast)"; + 117 = "DR Door Open Wait Close (fast)"; + 118 = "D1 Door Open Stay (fast)"; + 119 = "W1 Floor Raise to Next Higher Floor"; + 120 = "WR Lift Lower Wait Raise (fast)"; + 121 = "W1 Lift Lower Wait Raise (fast)"; + 122 = "S1 Lift Lower Wait Raise (fast)"; + 123 = "SR Lift Lower Wait Raise (fast)"; + 124 = "W1 Exit Level (goes to secret level)"; + 125 = "W1 Teleport (monsters only)"; + 126 = "WR Teleport (monsters only)"; + 127 = "S1 Stairs Raise by 16 (fast)"; + 128 = "WR Floor Raise to Next Higher Floor"; + 129 = "WR Floor Raise to Next Higher Floor (fast)"; + 130 = "W1 Floor Raise to Next Higher Floor (fast)"; + 131 = "S1 Floor Raise to Next Higher Floor (fast)"; + 132 = "SR Floor Raise to Next Higher Floor (fast)"; + 133 = "S1 Door (Blue) Open Stay (fast)"; + 134 = "SR Door (Red) Open Stay (fast)"; + 135 = "S1 Door (Red) Open Stay (fast)"; + 136 = "SR Door (Yellow) Open Stay (fast)"; + 137 = "S1 Door (Yellow) Open Stay (fast)"; + 138 = "SR Light Change to Brightest"; + 139 = "SR Light Change to Darkest"; + 140 = "S1 Floor Raise by 512"; + 141 = "W1 Crusher Start with Slow Damage (silent)"; + 142 = "W1 Floor Raise by 512"; + 143 = "W1 Lift Raise by 24 (changes texture)"; + 144 = "W1 Lift Raise by 24 (remove effect)"; + 145 = "W1 Ceiling Lower to Floor (fast)"; + 146 = "W1 Donut Raise"; + 147 = "WR Floor Raise by 512"; + 148 = "WR Lift Raise by 24 (changes texture)"; + 149 = "WR Lift Raise by 24 (remove effect)"; + 150 = "WR Crusher Start (silent)"; + 151 = "WR Ceiling Raise to Highest Ceiling"; + 152 = "WR Ceiling Lower to Floor (fast)"; + 153 = "W1 Change Texture And Effect"; + 154 = "WR Change Texture And Effect"; + 155 = "WR Donut Raise"; + 156 = "WR Light Start Blinking"; + 157 = "WR Light Change to Darkest"; + 158 = "S1 Floor Raise by Shortest Lower Texture"; + 159 = "S1 Floor Lower to Lowest Floor"; + 160 = "S1 Floor Raise by 24 (changes texture and effect)"; + 161 = "S1 Floor Raise by 24"; + 162 = "S1 Lift Perpetual Lowest and Highest Floors"; + 163 = "S1 Lift Stop"; + 164 = "S1 Crusher Start (fast)"; + 165 = "S1 Crusher Start (silent)"; + 166 = "S1 Ceiling Raise to Highest Ceiling"; + 167 = "S1 Ceiling Lower to 8 Above Floor"; + 168 = "S1 Crusher Stop"; + 169 = "S1 Light Change to Brightest"; + 170 = "S1 Light Change to 35"; + 171 = "S1 Light Change to 255"; + 172 = "S1 Light Start Blinking"; + 173 = "S1 Light Change to Darkest"; + 174 = "S1 Teleport (also monsters)"; + 175 = "S1 Door Close Wait Open (30 seconds)"; + 176 = "SR Floor Raise by Shortest Lower Texture"; + 177 = "SR Floor Lower to Lowest Floor"; + 178 = "SR Floor Raise by 512"; + 179 = "SR Floor Raise by 24 (changes texture and effect)"; + 180 = "SR Floor Raise by 24"; + 181 = "SR Lift Perpetual Lowest and Highest Floors"; + 182 = "SR Lift Stop"; + 183 = "SR Crusher Start (fast)"; + 184 = "SR Crusher Start"; + 185 = "SR Crusher Start (silent)"; + 186 = "SR Ceiling Raise to Highest Ceiling"; + 187 = "SR Ceiling Lower to 8 Above Floor"; + 188 = "SR Crusher Stop"; + 189 = "S1 Change Texture And Effect"; + 190 = "SR Change Texture And Effect"; + 191 = "SR Donut Raise"; + 192 = "SR Light Change to Brightest"; + 193 = "SR Light Start Blinking"; + 194 = "SR Light Change to Darkest"; + 195 = "SR Teleport (also monsters)"; + 196 = "SR Door Close Wait Open (30 seconds)"; + 197 = "G1 Exit Level"; + 198 = "G1 Exit Level (goes to secret level)"; + 199 = "W1 Ceiling Lower to Lowest Ceiling"; + 200 = "W1 Ceiling Lower to Highest Floor"; + 201 = "WR Ceiling Lower to Lowest Ceiling"; + 202 = "WR Ceiling Lower to Highest Floor"; + 203 = "S1 Ceiling Lower to Lowest Ceiling"; + 204 = "S1 Ceiling Lower to Highest Floor"; + 205 = "SR Ceiling Lower to Lowest Ceiling"; + 206 = "SR Ceiling Lower to Highest Floor"; + 207 = "W1 Teleport (also monsters, silent, same angle)"; + 208 = "WR Teleport (also monsters, silent, same angle)"; + 209 = "S1 Teleport (also monsters, silent, same angle)"; + 210 = "SR Teleport (also monsters, silent, same angle)"; + 211 = "SR Lift Raise to Ceiling (instantly)"; + 212 = "WR Lift Raise to Ceiling (instantly)"; + 213 = " Floor Change Brightness to this Brightness"; + 214 = " Scroll Ceiling Accelerates when Sector Changes Height"; + 215 = " Scroll Floor Accelerates when Sector Changes Height"; + 216 = " Scroll Things Accelerates when Sector Changes Height"; + 217 = " Scroll Floor/Things Accelerates when Sector Changes Height"; + 218 = " Scroll Wall Accelerates when Sector Changes Height"; + 219 = "W1 Floor Lower to Nearest Floor"; + 220 = "WR Floor Lower to Nearest Floor"; + 221 = "S1 Floor Lower to Nearest Floor"; + 222 = "SR Floor Lower to Nearest Floor"; + 223 = " Friction Tagged Sector: Drag < 100, Slide > 100"; + 224 = " Wind according to Line Vector"; + 225 = " Current according to Line Vector"; + 226 = " Wind/Current by Push/Pull Thing In Sector"; + 227 = "W1 Lift (Cl&Flr) Raise to Next Highest Floor (fast)"; + 228 = "WR Lift (Cl&Flr) Raise to Next Highest Floor (fast)"; + 229 = "S1 Lift (Cl&Flr) Raise to Next Highest Floor (fast)"; + 230 = "SR Lift (Cl&Flr) Raise to Next Highest Floor (fast)"; + 231 = "W1 Lift (Cl&Flr) Lower to Next Lowest Floor (fast)"; + 232 = "WR Lift (Cl&Flr) Lower to Next Lowest Floor (fast)"; + 233 = "S1 Lift (Cl&Flr) Lower to Next Lowest Floor (fast)"; + 234 = "SR Lift (Cl&Flr) Lower to Next Lowest Floor (fast)"; + 235 = "W1 Lift (Cl&Flr) Move to Same Floor Height (fast)"; + 236 = "WR Lift (Cl&Flr) Move to Same Floor Height (fast)"; + 237 = "S1 Lift (Cl&Flr) Move to Same Floor Height (fast)"; + 238 = "SR Lift (Cl&Flr) Move to Same Floor Height (fast)"; + 239 = "W1 Change Texture and Effect to Nearest"; + 240 = "WR Change Texture and Effect to Nearest"; + 241 = "S1 Change Texture and Effect to Nearest"; + 242 = "Create Fake Ceiling and Floor"; + 243 = "W1 Teleport to Line With Same Tag (silent, same angle)"; + 244 = "WR Teleport to Line With Same Tag (silent, same angle)"; + 245 = " Scroll Ceiling when Sector Changes Height"; + 246 = " Scroll Floor when Sector Changes Height"; + 247 = " Scroll Move Things when Sector Changes Height"; + 248 = " Scroll Floor/Move Things when Sector Changes Height"; + 249 = " Scroll Wall when Sector Changes Height"; + 250 = " Scroll Ceiling according to Line Vector"; + 251 = " Scroll Floor according to Line Vector"; + 252 = " Scroll Move Things according to Line Vector"; + 253 = " Scroll Floor, Move Things"; + 254 = " Scroll Wall according to Line Vector"; + 255 = " Scroll Wall using Sidedef Offsets"; + 256 = "WR Stairs Raise by 8"; + 257 = "WR Stairs Raise by 16 (fast)"; + 258 = "SR Stairs Raise by 8"; + 259 = "SR Stairs Raise by 16 (fast)"; + 260 = " Translucent"; + 261 = " Ceiling Brightness to this Brightness"; + 262 = "W1 Teleport to Line With Same Tag (silent, reversed angle)"; + 263 = "WR Teleport to Line With Same Tag (silent, reversed angle)"; + 264 = "W1 Teleport to Line With Same Tag (also monsters, silent, reversed angle)"; + 265 = "WR Teleport to Line With Same Tag (also monsters, reversed angle)"; + 266 = "W1 Teleport to Line With Same Tag (monsters only, silent)"; + 267 = "WR Teleport to Line With Same Tag (monsters only, silent)"; + 268 = "W1 Teleport (monsters only, silent)"; + 269 = "WR Teleport (monsters only, silent)"; + + 272 = "WR FS Start script with tag number"; + 273 = "WR FS Start script, 1-way trigger"; + 274 = "W1 FS Start script with tag number"; + 275 = "W1 FS Start script, 1-way trigger"; + 276 = "SR FS Start script with tag number"; + 277 = "S1 FS Start script with tag number"; + 278 = "GR FS Start script with tag number"; + 279 = "G1 FS Start script with tag number"; + + 282 = " Create Colourmap (uphx = colour/alpha)"; + 283 = " Create Fog Sheet"; + 280 = " Create 3D Water (opaque)"; + 281 = " Create 3D Floor (shadow)"; + 289 = " Create 3D Floor (no shadow)"; + 300 = " Create 3D Floor (transparent)"; + 301 = " Create 3D Water (uphx = alpha)"; + 302 = " Create 3D Fog (uphx = colour/alpha)"; + 303 = " Create 3D Light (ceil downwards)"; + 304 = " Create 3D Light (CS's ceil/floor)"; + 306 = " Create 3D Floor (invisible)"; +} + +// GENERALIZED LINEDEF TYPES +gen_linedeftypes +{ + normal + { + title = "Normal"; + offset = 0; + length = 0; + } + + floors + { + title = "Floor"; + offset = 24576; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Floor"; + 128 = "Lowest Adjacent Floor"; + 256 = "Next Adjacent Floor"; + 384 = "Lowest Adjacent Ceiling"; + 512 = "Ceiling"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + ceilings + { + title = "Ceiling"; + offset = 16384; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Ceiling"; + 128 = "Lowest Adjacent Ceiling"; + 256 = "Next Adjacent Ceiling"; + 384 = "Highest Adjacent Floor"; + 512 = "Floor"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + doors + { + title = "Door"; + offset = 15360; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + 64 = "Close Wait Open"; + 96 = "Close Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + wait + { + 0 = "1 Second"; + 256 = "4 Seconds"; + 512 = "9 Seconds"; + 768 = "30 Seconds"; + } + + monsters + { + 0 = "No"; + 128 = "Yes"; + } + } + + lockeddoors + { + title = "Locked Door"; + offset = 14336; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + lock + { + 0 = "Any"; + 64 = "Red Keycard"; + 128 = "Blue Keycard"; + 192 = "Yellow Keycard"; + 256 = "Red Skullkey"; + 320 = "Blue Skullkey"; + 384 = "Yellow Skullkey"; + 448 = "All"; + } + + combination + { + 0 = "No (each is a different key)"; + 512 = "Keycard and Skullkey are same"; + } + } + + lifts + { + title = "Lift"; + offset = 13312; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + target + { + 0 = "Lowest adjacent Floor"; + 256 = "Next adjacent Floor"; + 512 = "Lowest adjacent Ceiling"; + 768 = "Perpetual Lowest and Highest Floors"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + delay + { + 0 = "1 Second"; + 64 = "3 Seconds"; + 128 = "5 Seconds"; + 192 = "10 Seconds"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + stairs + { + title = "Stairs"; + offset = 12288; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 256 = "Up"; + } + + step + { + 0 = "4 Map Pixels"; + 64 = "8 Map Pixels"; + 128 = "16 Map Pixels"; + 192 = "24 Map Pixels"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + break + { + 0 = "At different texture"; + 512 = "No"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + crushers + { + title = "Crusher"; + offset = 12160; + length = 128; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + silent + { + 0 = "No"; + 64 = "Yes"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; + 32 = "Not Deathmatch"; + 64 = "Not Cooperative"; +} + +// 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 +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 2; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 0; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 2; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + + + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + + + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + + + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + + + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + + + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + + + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + + + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + + + 69 + { + title = "Hell Knight"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 68 + { + title = "Arachnotron"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + + + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + + + 67 + { + title = "Mancubus"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + + + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + + + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDA2A8"; + height = 100; + } + + + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + + + 72 + { + title = "Commander Keen"; + width = 16; + sprite = "KEENA0"; + height = 72; + hangs = 1; + } + + + 88 + { + title = "Icon of Sin"; + width = 16; + sprite = "BBRNA0"; + height = 16; + } + + + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + + + 87 + { + title = "Monsters Target"; + height = 32; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + hangs = 0; + blocking = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 2; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 32; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 2; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + + + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + + + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + + + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 2; + } + + + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + + + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 2; + } + + + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + + + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 2; + } + + + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + + + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 2; + } + + + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + + + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 2; + } + + + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + + + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 2; + } + + + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 2; + } + + + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 2; + } + + + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 2; + } + + + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 2; + } + + + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + + + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + + + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + + + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + + + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + + + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + + + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + + + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + + + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + + + 23 + { + title = "Dead lost soul"; + } + + + 73 + { + title = "Hanging victim, guts removed"; + sprite = "HDB1A0"; + height = 88; + hangs = 1; + blocking = 2; + } + + + 74 + { + title = "Hanging victim, guts and brain removed"; + sprite = "HDB2A0"; + height = 88; + hangs = 1; + blocking = 2; + } + + + 75 + { + title = "Hanging torso, looking down"; + sprite = "HDB3A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 76 + { + title = "Hanging torso, open skull"; + sprite = "HDB4A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 77 + { + title = "Hanging torso, looking down"; + sprite = "HDB5A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 78 + { + title = "Hanging torso, brain removed"; + sprite = "HDB6A0"; + height = 64; + hangs = 1; + blocking = 2; + } + } + + boom + { + color = 8; // Grey + arrow = 1; + title = "Boom Items"; + width = 0; + sort = 1; + + 5001 = "Pusher"; + 5002 = "Puller"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Risen3D.cfg b/Build/Configurations/Risen3D.cfg new file mode 100644 index 00000000..ec4aaf5e --- /dev/null +++ b/Build/Configurations/Risen3D.cfg @@ -0,0 +1,2678 @@ +/*************************************************************\ + Doom Builder Game Configuration for Risen3D +\*************************************************************/ + +// This is the title to show for this game +game = "Risen3D"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 1; +generalizedsectors = 1; + +// Engine specific features +mixtexturesflats = 1; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; + DD_DEFNS = 1; DD_DIREC = 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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +20480 = Map lump which can be edited as DED +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; + DEHACKED = 12290; + DD_DEFNS = 20482; + DD_DIREC = 4098; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 16 = "Damage -10 or 20% health"; + 17 = "Light Flickers (randomly)"; +} + +// GENERALIZED SECTOR TYPES +gen_sectortypes +{ + lighting + { + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Light Blinks (0.5 sec) and Damage 10 or 20"; + 8 = "Light Glows (1+ sec)"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 17 = "Light Flickers (randomly)"; + } + + damage + { + 0 = "None"; + 32 = "Damage 5 per second"; + 64 = "Damage 10 per second"; + 96 = "Damage 20 per second"; + } + + secret + { + 0 = "No"; + 128 = "Yes"; + } + + friction + { + 0 = "Disabled"; + 256 = "Enabled"; + } + + wind + { + 0 = "Disabled"; + 512 = "Enabled"; + } +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "PassThru"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport to sector"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 78 = "SR Change Texture and Effect to Nearest"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 85 = " Scroll Texture Right"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 99 = "SR Door (Blue) Open Stay (fast)"; + 100 = "W1 Stairs Raise by 16 (fast)"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "WR Door Open Wait Close (fast)"; + 106 = "WR Door Open Stay (fast)"; + 107 = "WR Door Close Stay (fast)"; + 108 = "W1 Door Open Wait Close (fast)"; + 109 = "W1 Door Open Stay (fast)"; + 110 = "W1 Door Close (fast)"; + 111 = "S1 Door Open Wait Close (fast)"; + 112 = "S1 Door Open Stay (fast)"; + 113 = "S1 Door Close Stay (fast)"; + 114 = "SR Door Open Wait Close (fast)"; + 115 = "SR Door Open Stay (fast)"; + 116 = "SR Door Close Stay (fast)"; + 117 = "DR Door Open Wait Close (fast)"; + 118 = "D1 Door Open Stay (fast)"; + 119 = "W1 Floor Raise to Next Higher Floor"; + 120 = "WR Lift Lower Wait Raise (fast)"; + 121 = "W1 Lift Lower Wait Raise (fast)"; + 122 = "S1 Lift Lower Wait Raise (fast)"; + 123 = "SR Lift Lower Wait Raise (fast)"; + 124 = "W1 Exit Level (goes to secret level)"; + 125 = "W1 Teleport (monsters only)"; + 126 = "WR Teleport (monsters only)"; + 127 = "S1 Stairs Raise by 16 (fast)"; + 128 = "WR Floor Raise to Next Higher Floor"; + 129 = "WR Floor Raise to Next Higher Floor (fast)"; + 130 = "W1 Floor Raise to Next Higher Floor (fast)"; + 131 = "S1 Floor Raise to Next Higher Floor (fast)"; + 132 = "SR Floor Raise to Next Higher Floor (fast)"; + 133 = "S1 Door (Blue) Open Stay (fast)"; + 134 = "SR Door (Red) Open Stay (fast)"; + 135 = "S1 Door (Red) Open Stay (fast)"; + 136 = "SR Door (Yellow) Open Stay (fast)"; + 137 = "S1 Door (Yellow) Open Stay (fast)"; + 138 = "SR Light Change to Brightest"; + 139 = "SR Light Change to Darkest"; + 140 = "S1 Floor Raise by 512"; + 141 = "W1 Crusher Start with Slow Damage (silent)"; + 142 = "W1 Floor Raise by 512"; + 143 = "W1 Lift Raise by 24 (changes texture)"; + 144 = "W1 Lift Raise by 24 (remove effect)"; + 145 = "W1 Ceiling Lower to Floor (fast)"; + 146 = "W1 Donut Raise"; + 147 = "WR Floor Raise by 512"; + 148 = "WR Lift Raise by 24 (changes texture)"; + 149 = "WR Lift Raise by 24 (remove effect)"; + 150 = "WR Crusher Start (silent)"; + 151 = "WR Ceiling Raise to Highest Ceiling"; + 152 = "WR Ceiling Lower to Floor (fast)"; + 153 = "W1 Change Texture And Effect"; + 154 = "WR Change Texture And Effect"; + 155 = "WR Donut Raise"; + 156 = "WR Light Start Blinking"; + 157 = "WR Light Change to Darkest"; + 158 = "S1 Floor Raise by Shortest Lower Texture"; + 159 = "S1 Floor Lower to Lowest Floor"; + 160 = "S1 Floor Raise by 24 (changes texture and effect)"; + 161 = "S1 Floor Raise by 24"; + 162 = "S1 Lift Perpetual Lowest and Highest Floors"; + 163 = "S1 Lift Stop"; + 164 = "S1 Crusher Start (fast)"; + 165 = "S1 Crusher Start (silent)"; + 166 = "S1 Ceiling Raise to Highest Ceiling"; + 167 = "S1 Ceiling Lower to 8 Above Floor"; + 168 = "S1 Crusher Stop"; + 169 = "S1 Light Change to Brightest"; + 170 = "S1 Light Change to 35"; + 171 = "S1 Light Change to 255"; + 172 = "S1 Light Start Blinking"; + 173 = "S1 Light Change to Darkest"; + 174 = "S1 Teleport (also monsters)"; + 175 = "S1 Door Close Wait Open (30 seconds)"; + 176 = "SR Floor Raise by Shortest Lower Texture"; + 177 = "SR Floor Lower to Lowest Floor"; + 178 = "SR Floor Raise by 512"; + 179 = "SR Floor Raise by 24 (changes texture and effect)"; + 180 = "SR Floor Raise by 24"; + 181 = "SR Lift Perpetual Lowest and Highest Floors"; + 182 = "SR Lift Stop"; + 183 = "SR Crusher Start (fast)"; + 184 = "SR Crusher Start"; + 185 = "SR Crusher Start (silent)"; + 186 = "SR Ceiling Raise to Highest Ceiling"; + 187 = "SR Ceiling Lower to 8 Above Floor"; + 188 = "SR Crusher Stop"; + 189 = "S1 Change Texture And Effect"; + 190 = "SR Change Texture And Effect"; + 191 = "SR Donut Raise"; + 192 = "SR Light Change to Brightest"; + 193 = "SR Light Start Blinking"; + 194 = "SR Light Change to Darkest"; + 195 = "SR Teleport (also monsters)"; + 196 = "SR Door Close Wait Open (30 seconds)"; + 197 = "G1 Exit Level"; + 198 = "G1 Exit Level (goes to secret level)"; + 199 = "W1 Ceiling Lower to Lowest Ceiling"; + 200 = "W1 Ceiling Lower to Highest Floor"; + 201 = "WR Ceiling Lower to Lowest Ceiling"; + 202 = "WR Ceiling Lower to Highest Floor"; + 203 = "S1 Ceiling Lower to Lowest Ceiling"; + 204 = "S1 Ceiling Lower to Highest Floor"; + 205 = "SR Ceiling Lower to Lowest Ceiling"; + 206 = "SR Ceiling Lower to Highest Floor"; + 207 = "W1 Teleport (also monsters, silent, same angle)"; + 208 = "WR Teleport (also monsters, silent, same angle)"; + 209 = "S1 Teleport (also monsters, silent, same angle)"; + 210 = "SR Teleport (also monsters, silent, same angle)"; + 211 = "SR Lift Raise to Ceiling (instantly)"; + 212 = "WR Lift Raise to Ceiling (instantly)"; + 213 = " Floor Change Brightness to this Brightness"; + 214 = " Scroll Ceiling Accelerates when Sector Changes Height"; + 215 = " Scroll Floor Accelerates when Sector Changes Height"; + 216 = " Scroll Things Accelerates when Sector Changes Height"; + 217 = " Scroll Floor/Things Accelerates when Sector Changes Height"; + 218 = " Scroll Wall Accelerates when Sector Changes Height"; + 219 = "W1 Floor Lower to Nearest Floor"; + 220 = "WR Floor Lower to Nearest Floor"; + 221 = "S1 Floor Lower to Nearest Floor"; + 222 = "SR Floor Lower to Nearest Floor"; + 223 = " Friction Tagged Sector: Drag < 100, Slide > 100"; + 224 = " Wind according to Line Vector"; + 225 = " Current according to Line Vector"; + 226 = " Wind/Current by Push/Pull Thing In Sector"; + 227 = "W1 Lift Raise to Next Highest Floor (fast)"; + 228 = "WR Lift Raise to Next Highest Floor (fast)"; + 229 = "S1 Lift Raise to Next Highest Floor (fast)"; + 230 = "SR Lift Raise to Next Highest Floor (fast)"; + 231 = "W1 Lift Lower to Next Lowest Floor (fast)"; + 232 = "WR Lift Lower to Next Lowest Floor (fast)"; + 233 = "S1 Lift Lower to Next Lowest Floor (fast)"; + 234 = "SR Lift Lower to Next Lowest Floor (fast)"; + 235 = "W1 Lift Move to Same Floor Height (fast)"; + 236 = "WR Lift Move to Same Floor Height (fast)"; + 237 = "S1 Lift Move to Same Floor Height (fast)"; + 238 = "SR Lift Move to Same Floor Height (fast)"; + 239 = "W1 Change Texture and Effect to Nearest"; + 240 = "WR Change Texture and Effect to Nearest"; + 241 = "S1 Change Texture and Effect to Nearest"; + 242 = " Create Fake Ceiling and Floor"; + 243 = "W1 Teleport to Line With Same Tag (silent, same angle)"; + 244 = "WR Teleport to Line With Same Tag (silent, same angle)"; + 245 = " Scroll Ceiling when Sector Changes Height"; + 246 = " Scroll Floor when Sector Changes Height"; + 247 = " Scroll Move Things when Sector Changes Height"; + 248 = " Scroll Floor/Move Things when Sector Changes Height"; + 249 = " Scroll Wall when Sector Changes Height"; + 250 = " Scroll Ceiling according to Line Vector"; + 251 = " Scroll Floor according to Line Vector"; + 252 = " Scroll Move Things according to Line Vector"; + 253 = " Scroll Floor, Move Things"; + 254 = " Scroll Wall according to Line Vector"; + 255 = " Scroll Wall using Sidedef Offsets"; + 256 = "WR Stairs Raise by 8"; + 257 = "WR Stairs Raise by 16 (fast)"; + 258 = "SR Stairs Raise by 8"; + 259 = "SR Stairs Raise by 16 (fast)"; + 260 = " Translucent (Middle Texture)"; + 261 = " Ceiling Brightness to this Brightness"; + 262 = "W1 Teleport to Line With Same Tag (silent, reversed angle)"; + 263 = "WR Teleport to Line With Same Tag (silent, reversed angle)"; + 264 = "W1 Teleport to Line With Same Tag (also monsters, silent, reversed angle)"; + 265 = "WR Teleport to Line With Same Tag (also monsters, reversed angle)"; + 266 = "W1 Teleport to Line With Same Tag (monsters only, silent)"; + 267 = "WR Teleport to Line With Same Tag (monsters only, silent)"; + 268 = "W1 Teleport (monsters only, silent)"; + 269 = "WR Teleport (monsters only, silent)"; + + 270 = " 3D Floor"; + + 277 = " Translucent (Bottom Texture)"; + 278 = " Translucent (Middle and Bottom Textures)"; + + 952 = " 3D Line"; + 960 = " 3D Line 2"; + 1016 = " 3D Line 3"; + 65256 = " 3D Rotating Column"; + 65456 = " 3D Rotating 3D"; +} + +// GENERALIZED LINEDEF TYPES +gen_linedeftypes +{ + normal + { + title = "Normal"; + offset = 0; + length = 0; + } + + floors + { + title = "Floor"; + offset = 24576; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Floor"; + 128 = "Lowest Adjacent Floor"; + 256 = "Next Adjacent Floor"; + 384 = "Lowest Adjacent Ceiling"; + 512 = "Ceiling"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + ceilings + { + title = "Ceiling"; + offset = 16384; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Ceiling"; + 128 = "Lowest Adjacent Ceiling"; + 256 = "Next Adjacent Ceiling"; + 384 = "Highest Adjacent Floor"; + 512 = "Floor"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + doors + { + title = "Door"; + offset = 15360; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + 64 = "Close Wait Open"; + 96 = "Close Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + wait + { + 0 = "1 Second"; + 256 = "4 Seconds"; + 512 = "9 Seconds"; + 768 = "30 Seconds"; + } + + monsters + { + 0 = "No"; + 128 = "Yes"; + } + } + + lockeddoors + { + title = "Locked Door"; + offset = 14336; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + lock + { + 0 = "Any"; + 64 = "Red Keycard"; + 128 = "Blue Keycard"; + 192 = "Yellow Keycard"; + 256 = "Red Skullkey"; + 320 = "Blue Skullkey"; + 384 = "Yellow Skullkey"; + 448 = "All"; + } + + combination + { + 0 = "No (each is a different key)"; + 512 = "Keycard and Skullkey are same"; + } + } + + lifts + { + title = "Lift"; + offset = 13312; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + target + { + 0 = "Lowest adjacent Floor"; + 256 = "Next adjacent Floor"; + 512 = "Lowest adjacent Ceiling"; + 768 = "Perpetual Lowest and Highest Floors"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + delay + { + 0 = "1 Second"; + 64 = "3 Seconds"; + 128 = "5 Seconds"; + 192 = "10 Seconds"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + stairs + { + title = "Stairs"; + offset = 12288; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 256 = "Up"; + } + + step + { + 0 = "4 Map Pixels"; + 64 = "8 Map Pixels"; + 128 = "16 Map Pixels"; + 192 = "24 Map Pixels"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + break + { + 0 = "At different texture"; + 512 = "No"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + crushers + { + title = "Crusher"; + offset = 12160; + length = 128; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + silent + { + 0 = "No"; + 64 = "Yes"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; + 32 = "Not Deathmatch"; + 64 = "Not Cooperative"; +} + +// 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 +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 4001 + { + title = "Player 5 start"; + sprite = "PLAYA2A8"; + } + 4002 + { + title = "Player 6 start"; + sprite = "PLAYA2A8"; + } + 4003 + { + title = "Player 7 start"; + sprite = "PLAYA2A8"; + } + 4004 + { + title = "Player 8 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + mapspot + { + color = 7; // Light Grey + arrow = 0; + title = "Map Spot"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 1; + error = 1; + + 9001 = "Map Spot"; + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 0; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + + + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + + + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + + + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + + + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + + + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + + + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + + + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + + + 69 + { + title = "Hell Knight"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 68 + { + title = "Arachnotron"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + + + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + + + 67 + { + title = "Mancubus"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + + + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + + + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDA2A8"; + height = 100; + } + + + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + + + 72 + { + title = "Commander Keen"; + width = 16; + sprite = "KEENA0"; + height = 72; + hangs = 1; + } + + + 88 + { + title = "Icon of Sin"; + width = 16; + sprite = "BBRNA0"; + height = 16; + } + + + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + + + 87 + { + title = "Monsters Target"; + height = 32; + } + } + + ghost + { + color = 12; // Light Red + arrow = 1; + title = "Ghost Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 9051 + { + title = "Archvile Ghost"; + sprite = "VILEA2D8"; + } + 9054 + { + title = "Chaingunner Ghost"; + sprite = "CPOSA2"; + } + 9057 + { + title = "Imp Ghost"; + sprite = "TROOA2A8"; + } + 9059 + { + title = "Revenant Ghost"; + sprite = "SKELA2D8"; + } + 9060 + { + title = "Former Sergeant Ghost"; + sprite = "SPOSA2A8"; + } + 9061 + { + title = "Former Human Ghost"; + sprite = "POSSA2A8"; + } + 9050 + { + title = "Arachnotron Ghost"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + 9052 + { + title = "Baron of Hell Ghost"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + 9053 + { + title = "Cacodemon Ghost"; + width = 31; + sprite = "HEADA2A8"; + } + 9055 + { + title = "Demon Ghost"; + width = 30; + sprite = "SARGA2A8"; + } + 9056 + { + title = "Hell Knight Ghost"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + 9058 + { + title = "Mancubus Ghost"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + hangs = 0; + blocking = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 1; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 32; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 1; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + + + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + + + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + + + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + + + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + + + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + + + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + + + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 1; + } + + + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + + + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 1; + } + + + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 1; + } + + + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 1; + } + + + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 1; + } + + + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 1; + } + + + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + + + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + + + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + + + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + + + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + + + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + + + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + + + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + + + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + + + 23 = "Dead lost soul"; + + + 73 + { + title = "Hanging victim, guts removed"; + sprite = "HDB1A0"; + height = 88; + hangs = 1; + blocking = 1; + } + + + 74 + { + title = "Hanging victim, guts and brain removed"; + sprite = "HDB2A0"; + height = 88; + hangs = 1; + blocking = 1; + } + + + 75 + { + title = "Hanging torso, looking down"; + sprite = "HDB3A0"; + height = 64; + hangs = 1; + blocking = 1; + } + + + 76 + { + title = "Hanging torso, open skull"; + sprite = "HDB4A0"; + height = 64; + hangs = 1; + blocking = 1; + } + + + 77 + { + title = "Hanging torso, looking down"; + sprite = "HDB5A0"; + height = 64; + hangs = 1; + blocking = 1; + } + + + 78 + { + title = "Hanging torso, brain removed"; + sprite = "HDB6A0"; + height = 64; + hangs = 1; + blocking = 1; + } + } + + sounds + { + color = 5; // Purple + arrow = 0; + title = "Sounds"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 6001 + { + title = "Sound 1"; + arg1 = "Sound Number"; + } + 6002 = "Sound 2"; + } + + ambsounds + { + color = 5; // Purple + arrow = 0; + title = "Ambient Sounds"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 14001 + { + title = "Ambient Sound 1"; + arg1 = "Ambient Sound Number"; + } + 14002 = "Ambient Sound 2"; + 14003 = "Ambient Sound 3"; + 14004 = "Ambient Sound 4"; + 14005 = "Ambient Sound 5"; + 14006 = "Ambient Sound 6"; + 14007 = "Ambient Sound 7"; + 14008 = "Ambient Sound 8"; + 14009 = "Ambient Sound 9"; + 14010 = "Ambient Sound 10"; + 14011 = "Ambient Sound 11"; + 14012 = "Ambient Sound 12"; + 14013 = "Ambient Sound 13"; + 14014 = "Ambient Sound 14"; + 14015 = "Ambient Sound 15"; + 14016 = "Ambient Sound 16"; + 14017 = "Ambient Sound 17"; + 14018 = "Ambient Sound 18"; + 14019 = "Ambient Sound 19"; + 14020 = "Ambient Sound 20"; + 14021 = "Ambient Sound 21"; + 14022 = "Ambient Sound 22"; + 14023 = "Ambient Sound 23"; + 14024 = "Ambient Sound 24"; + 14025 = "Ambient Sound 25"; + 14026 = "Ambient Sound 26"; + 14027 = "Ambient Sound 27"; + 14028 = "Ambient Sound 28"; + 14029 = "Ambient Sound 29"; + 14030 = "Ambient Sound 30"; + 14031 = "Ambient Sound 31"; + 14032 = "Ambient Sound 32"; + 14033 = "Ambient Sound 33"; + 14034 = "Ambient Sound 34"; + 14035 = "Ambient Sound 35"; + 14036 = "Ambient Sound 36"; + 14037 = "Ambient Sound 37"; + 14038 = "Ambient Sound 38"; + 14039 = "Ambient Sound 39"; + 14040 = "Ambient Sound 40"; + 14041 = "Ambient Sound 41"; + 14042 = "Ambient Sound 42"; + 14043 = "Ambient Sound 43"; + 14044 = "Ambient Sound 44"; + 14045 = "Ambient Sound 45"; + 14046 = "Ambient Sound 46"; + 14047 = "Ambient Sound 47"; + 14048 = "Ambient Sound 48"; + 14049 = "Ambient Sound 49"; + 14050 = "Ambient Sound 50"; + 14051 = "Ambient Sound 51"; + 14052 = "Ambient Sound 52"; + 14053 = "Ambient Sound 53"; + 14054 = "Ambient Sound 54"; + 14055 = "Ambient Sound 55"; + 14056 = "Ambient Sound 56"; + 14057 = "Ambient Sound 57"; + 14058 = "Ambient Sound 58"; + 14059 = "Ambient Sound 59"; + 14060 = "Ambient Sound 60"; + 14061 = "Ambient Sound 61"; + 14062 = "Ambient Sound 62"; + 14063 = "Ambient Sound 63"; + 14064 = "Ambient Sound 64"; + } + + changemusic + { + color = 5; // Purple + arrow = 0; + title = "Change Music Tracks"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 14101 + { + title = "Change Music Track 1"; + arg1 = "Change Music Track Number"; + } + 14102 = "Change Music Track 2"; + 14103 = "Change Music Track 3"; + 14104 = "Change Music Track 4"; + 14105 = "Change Music Track 5"; + 14106 = "Change Music Track 6"; + 14107 = "Change Music Track 7"; + 14108 = "Change Music Track 8"; + 14109 = "Change Music Track 9"; + 14110 = "Change Music Track 10"; + 14111 = "Change Music Track 11"; + 14112 = "Change Music Track 12"; + 14113 = "Change Music Track 13"; + 14114 = "Change Music Track 14"; + 14115 = "Change Music Track 15"; + 14116 = "Change Music Track 16"; + 14117 = "Change Music Track 17"; + 14118 = "Change Music Track 18"; + 14119 = "Change Music Track 19"; + 14120 = "Change Music Track 20"; + 14121 = "Change Music Track 21"; + 14122 = "Change Music Track 22"; + 14123 = "Change Music Track 23"; + 14124 = "Change Music Track 24"; + 14125 = "Change Music Track 25"; + 14126 = "Change Music Track 26"; + 14127 = "Change Music Track 27"; + 14128 = "Change Music Track 28"; + 14129 = "Change Music Track 29"; + 14130 = "Change Music Track 30"; + 14131 = "Change Music Track 31"; + 14132 = "Change Music Track 32"; + 14133 = "Change Music Track 33"; + 14134 = "Change Music Track 34"; + 14135 = "Change Music Track 35"; + 14136 = "Change Music Track 36"; + 14137 = "Change Music Track 37"; + 14138 = "Change Music Track 38"; + 14139 = "Change Music Track 39"; + 14140 = "Change Music Track 40"; + 14141 = "Change Music Track 41"; + 14142 = "Change Music Track 42"; + 14143 = "Change Music Track 43"; + 14144 = "Change Music Track 44"; + 14145 = "Change Music Track 45"; + 14146 = "Change Music Track 46"; + 14147 = "Change Music Track 47"; + 14148 = "Change Music Track 48"; + 14149 = "Change Music Track 49"; + 14150 = "Change Music Track 50"; + 14151 = "Change Music Track 51"; + 14152 = "Change Music Track 52"; + 14153 = "Change Music Track 53"; + 14154 = "Change Music Track 54"; + 14155 = "Change Music Track 55"; + 14156 = "Change Music Track 56"; + 14157 = "Change Music Track 57"; + 14158 = "Change Music Track 58"; + 14159 = "Change Music Track 59"; + 14160 = "Change Music Track 60"; + 14161 = "Change Music Track 61"; + 14162 = "Change Music Track 62"; + 14163 = "Change Music Track 63"; + 14164 = "Change Music Track 64"; + } + + bbox + { + color = 3; // Cyan + arrow = 0; + title = "Bounding Boxes"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 15001 + { + title = "Bounding Box 1"; + arg1 = "Bounding Box Number"; + } + 15002 = "Bounding Box 2"; + 15003 = "Bounding Box 3"; + 15004 = "Bounding Box 4"; + 15005 = "Bounding Box 5"; + 15006 = "Bounding Box 6"; + 15007 = "Bounding Box 7"; + 15008 = "Bounding Box 8"; + 15009 = "Bounding Box 9"; + 15010 = "Bounding Box 10"; + 15011 = "Bounding Box 11"; + 15012 = "Bounding Box 12"; + 15013 = "Bounding Box 13"; + 15014 = "Bounding Box 14"; + 15015 = "Bounding Box 15"; + 15016 = "Bounding Box 16"; + 15017 = "Bounding Box 17"; + 15018 = "Bounding Box 18"; + 15019 = "Bounding Box 19"; + 15020 = "Bounding Box 20"; + 15021 = "Bounding Box 21"; + 15022 = "Bounding Box 22"; + 15023 = "Bounding Box 23"; + 15024 = "Bounding Box 24"; + 15025 = "Bounding Box 25"; + 15026 = "Bounding Box 26"; + 15027 = "Bounding Box 27"; + 15028 = "Bounding Box 28"; + 15029 = "Bounding Box 29"; + 15030 = "Bounding Box 30"; + 15031 = "Bounding Box 31"; + 15032 = "Bounding Box 32"; + 15033 = "Bounding Box 33"; + 15034 = "Bounding Box 34"; + 15035 = "Bounding Box 35"; + 15036 = "Bounding Box 36"; + 15037 = "Bounding Box 37"; + 15038 = "Bounding Box 38"; + 15039 = "Bounding Box 39"; + 15040 = "Bounding Box 40"; + 15041 = "Bounding Box 41"; + 15042 = "Bounding Box 42"; + 15043 = "Bounding Box 43"; + 15044 = "Bounding Box 44"; + 15045 = "Bounding Box 45"; + 15046 = "Bounding Box 46"; + 15047 = "Bounding Box 47"; + 15048 = "Bounding Box 48"; + 15049 = "Bounding Box 49"; + 15050 = "Bounding Box 50"; + 15051 = "Bounding Box 51"; + 15052 = "Bounding Box 52"; + 15053 = "Bounding Box 53"; + 15054 = "Bounding Box 54"; + 15055 = "Bounding Box 55"; + 15056 = "Bounding Box 56"; + 15057 = "Bounding Box 57"; + 15058 = "Bounding Box 58"; + 15059 = "Bounding Box 59"; + 15060 = "Bounding Box 60"; + 15061 = "Bounding Box 61"; + 15062 = "Bounding Box 62"; + 15063 = "Bounding Box 63"; + 15064 = "Bounding Box 64"; + } + + dynamiclights + { + color = 11; // Light Cyan + arrow = 0; + title = "Dynamic Lights"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 24001 + { + title = "Dynamic Light 1"; + arg1 = "Dynamic Light Number"; + } + 24002 = "Dynamic Light 2"; + 24003 = "Dynamic Light 3"; + 24004 = "Dynamic Light 4"; + 24005 = "Dynamic Light 5"; + 24006 = "Dynamic Light 6"; + 24007 = "Dynamic Light 7"; + 24008 = "Dynamic Light 8"; + 24009 = "Dynamic Light 9"; + 24010 = "Dynamic Light 10"; + 24011 = "Dynamic Light 11"; + 24012 = "Dynamic Light 12"; + 24013 = "Dynamic Light 13"; + 24014 = "Dynamic Light 14"; + 24015 = "Dynamic Light 15"; + 24016 = "Dynamic Light 16"; + 24017 = "Dynamic Light 17"; + 24018 = "Dynamic Light 18"; + 24019 = "Dynamic Light 19"; + 24020 = "Dynamic Light 20"; + 24021 = "Dynamic Light 21"; + 24022 = "Dynamic Light 22"; + 24023 = "Dynamic Light 23"; + 24024 = "Dynamic Light 24"; + 24025 = "Dynamic Light 25"; + 24026 = "Dynamic Light 26"; + 24027 = "Dynamic Light 27"; + 24028 = "Dynamic Light 28"; + 24029 = "Dynamic Light 29"; + 24030 = "Dynamic Light 30"; + 24031 = "Dynamic Light 31"; + 24032 = "Dynamic Light 32"; + 24033 = "Dynamic Light 33"; + 24034 = "Dynamic Light 34"; + 24035 = "Dynamic Light 35"; + 24036 = "Dynamic Light 36"; + 24037 = "Dynamic Light 37"; + 24038 = "Dynamic Light 38"; + 24039 = "Dynamic Light 39"; + 24040 = "Dynamic Light 40"; + 24041 = "Dynamic Light 41"; + 24042 = "Dynamic Light 42"; + 24043 = "Dynamic Light 43"; + 24044 = "Dynamic Light 44"; + 24045 = "Dynamic Light 45"; + 24046 = "Dynamic Light 46"; + 24047 = "Dynamic Light 47"; + 24048 = "Dynamic Light 48"; + 24049 = "Dynamic Light 49"; + 24050 = "Dynamic Light 50"; + 24051 = "Dynamic Light 51"; + 24052 = "Dynamic Light 52"; + 24053 = "Dynamic Light 53"; + 24054 = "Dynamic Light 54"; + 24055 = "Dynamic Light 55"; + 24056 = "Dynamic Light 56"; + 24057 = "Dynamic Light 57"; + 24058 = "Dynamic Light 58"; + 24059 = "Dynamic Light 59"; + 24060 = "Dynamic Light 60"; + 24061 = "Dynamic Light 61"; + 24062 = "Dynamic Light 62"; + 24063 = "Dynamic Light 63"; + 24064 = "Dynamic Light 64"; + } + + teleport_fsbfl + { + color = 2; // Green + arrow = 0; + title = "Fake Sector Teleport (Below Floor)"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 14201 + { + title = "FS Teleport (BF) 1"; + arg1 = "FS Teleport (BF) Number"; + } + 14202 = "FS Teleport (BF) 2"; + 14203 = "FS Teleport (BF) 3"; + 14204 = "FS Teleport (BF) 4"; + 14205 = "FS Teleport (BF) 5"; + 14206 = "FS Teleport (BF) 6"; + 14207 = "FS Teleport (BF) 7"; + 14208 = "FS Teleport (BF) 8"; + 14209 = "FS Teleport (BF) 9"; + 14210 = "FS Teleport (BF) 10"; + 14211 = "FS Teleport (BF) 11"; + 14212 = "FS Teleport (BF) 12"; + 14213 = "FS Teleport (BF) 13"; + 14214 = "FS Teleport (BF) 14"; + 14215 = "FS Teleport (BF) 15"; + 14216 = "FS Teleport (BF) 16"; + 14217 = "FS Teleport (BF) 17"; + 14218 = "FS Teleport (BF) 18"; + 14219 = "FS Teleport (BF) 19"; + 14220 = "FS Teleport (BF) 20"; + 14221 = "FS Teleport (BF) 21"; + 14222 = "FS Teleport (BF) 22"; + 14223 = "FS Teleport (BF) 23"; + 14224 = "FS Teleport (BF) 24"; + 14225 = "FS Teleport (BF) 25"; + 14226 = "FS Teleport (BF) 26"; + 14227 = "FS Teleport (BF) 27"; + 14228 = "FS Teleport (BF) 28"; + 14229 = "FS Teleport (BF) 29"; + 14230 = "FS Teleport (BF) 30"; + 14231 = "FS Teleport (BF) 31"; + 14232 = "FS Teleport (BF) 32"; + 14233 = "FS Teleport (BF) 33"; + 14234 = "FS Teleport (BF) 34"; + 14235 = "FS Teleport (BF) 35"; + 14236 = "FS Teleport (BF) 36"; + 14237 = "FS Teleport (BF) 37"; + 14238 = "FS Teleport (BF) 38"; + 14239 = "FS Teleport (BF) 39"; + 14240 = "FS Teleport (BF) 40"; + 14241 = "FS Teleport (BF) 41"; + 14242 = "FS Teleport (BF) 42"; + 14243 = "FS Teleport (BF) 43"; + 14244 = "FS Teleport (BF) 44"; + 14245 = "FS Teleport (BF) 45"; + 14246 = "FS Teleport (BF) 46"; + 14247 = "FS Teleport (BF) 47"; + 14248 = "FS Teleport (BF) 48"; + 14249 = "FS Teleport (BF) 49"; + 14250 = "FS Teleport (BF) 50"; + 14251 = "FS Teleport (BF) 51"; + 14252 = "FS Teleport (BF) 52"; + 14253 = "FS Teleport (BF) 53"; + 14254 = "FS Teleport (BF) 54"; + 14255 = "FS Teleport (BF) 55"; + 14256 = "FS Teleport (BF) 56"; + 14257 = "FS Teleport (BF) 57"; + 14258 = "FS Teleport (BF) 58"; + 14259 = "FS Teleport (BF) 59"; + 14260 = "FS Teleport (BF) 60"; + 14261 = "FS Teleport (BF) 61"; + 14262 = "FS Teleport (BF) 62"; + 14263 = "FS Teleport (BF) 63"; + 14264 = "FS Teleport (BF) 64"; + 14265 = "FS Teleport (BF) 65"; + 14266 = "FS Teleport (BF) 66"; + 14267 = "FS Teleport (BF) 67"; + 14268 = "FS Teleport (BF) 68"; + 14269 = "FS Teleport (BF) 69"; + 14270 = "FS Teleport (BF) 70"; + 14271 = "FS Teleport (BF) 71"; + 14272 = "FS Teleport (BF) 72"; + 14273 = "FS Teleport (BF) 73"; + 14274 = "FS Teleport (BF) 74"; + 14275 = "FS Teleport (BF) 75"; + 14276 = "FS Teleport (BF) 76"; + 14277 = "FS Teleport (BF) 77"; + 14278 = "FS Teleport (BF) 78"; + 14279 = "FS Teleport (BF) 79"; + 14280 = "FS Teleport (BF) 80"; + 14281 = "FS Teleport (BF) 81"; + 14282 = "FS Teleport (BF) 82"; + 14283 = "FS Teleport (BF) 83"; + 14284 = "FS Teleport (BF) 84"; + 14285 = "FS Teleport (BF) 85"; + 14286 = "FS Teleport (BF) 86"; + 14287 = "FS Teleport (BF) 87"; + 14288 = "FS Teleport (BF) 88"; + 14289 = "FS Teleport (BF) 89"; + 14290 = "FS Teleport (BF) 90"; + 14291 = "FS Teleport (BF) 91"; + 14292 = "FS Teleport (BF) 92"; + 14293 = "FS Teleport (BF) 93"; + 14294 = "FS Teleport (BF) 94"; + 14295 = "FS Teleport (BF) 95"; + 14296 = "FS Teleport (BF) 96"; + 14297 = "FS Teleport (BF) 97"; + 14298 = "FS Teleport (BF) 98"; + 14299 = "FS Teleport (BF) 99"; + } + + teleport_fsacl + { + color = 2; // Green + arrow = 0; + title = "Fake Sector Teleport (Above Ceiling)"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 14301 + { + title = "FS Teleport (AC) 1"; + arg1 = "FS Teleport (AC) Number"; + } + 14302 = "FS Teleport (AC) 2"; + 14303 = "FS Teleport (AC) 3"; + 14304 = "FS Teleport (AC) 4"; + 14305 = "FS Teleport (AC) 5"; + 14306 = "FS Teleport (AC) 6"; + 14307 = "FS Teleport (AC) 7"; + 14308 = "FS Teleport (AC) 8"; + 14309 = "FS Teleport (AC) 9"; + 14310 = "FS Teleport (AC) 10"; + 14311 = "FS Teleport (AC) 11"; + 14312 = "FS Teleport (AC) 12"; + 14313 = "FS Teleport (AC) 13"; + 14314 = "FS Teleport (AC) 14"; + 14315 = "FS Teleport (AC) 15"; + 14316 = "FS Teleport (AC) 16"; + 14317 = "FS Teleport (AC) 17"; + 14318 = "FS Teleport (AC) 18"; + 14319 = "FS Teleport (AC) 19"; + 14320 = "FS Teleport (AC) 20"; + 14321 = "FS Teleport (AC) 21"; + 14322 = "FS Teleport (AC) 22"; + 14323 = "FS Teleport (AC) 23"; + 14324 = "FS Teleport (AC) 24"; + 14325 = "FS Teleport (AC) 25"; + 14326 = "FS Teleport (AC) 26"; + 14327 = "FS Teleport (AC) 27"; + 14328 = "FS Teleport (AC) 28"; + 14329 = "FS Teleport (AC) 29"; + 14330 = "FS Teleport (AC) 30"; + 14331 = "FS Teleport (AC) 31"; + 14332 = "FS Teleport (AC) 32"; + 14333 = "FS Teleport (AC) 33"; + 14334 = "FS Teleport (AC) 34"; + 14335 = "FS Teleport (AC) 35"; + 14336 = "FS Teleport (AC) 36"; + 14337 = "FS Teleport (AC) 37"; + 14338 = "FS Teleport (AC) 38"; + 14339 = "FS Teleport (AC) 39"; + 14340 = "FS Teleport (AC) 40"; + 14341 = "FS Teleport (AC) 41"; + 14342 = "FS Teleport (AC) 42"; + 14343 = "FS Teleport (AC) 43"; + 14344 = "FS Teleport (AC) 44"; + 14345 = "FS Teleport (AC) 45"; + 14346 = "FS Teleport (AC) 46"; + 14347 = "FS Teleport (AC) 47"; + 14348 = "FS Teleport (AC) 48"; + 14349 = "FS Teleport (AC) 49"; + 14350 = "FS Teleport (AC) 50"; + 14351 = "FS Teleport (AC) 51"; + 14352 = "FS Teleport (AC) 52"; + 14353 = "FS Teleport (AC) 53"; + 14354 = "FS Teleport (AC) 54"; + 14355 = "FS Teleport (AC) 55"; + 14356 = "FS Teleport (AC) 56"; + 14357 = "FS Teleport (AC) 57"; + 14358 = "FS Teleport (AC) 58"; + 14359 = "FS Teleport (AC) 59"; + 14360 = "FS Teleport (AC) 60"; + 14361 = "FS Teleport (AC) 61"; + 14362 = "FS Teleport (AC) 62"; + 14363 = "FS Teleport (AC) 63"; + 14364 = "FS Teleport (AC) 64"; + 14365 = "FS Teleport (AC) 65"; + 14366 = "FS Teleport (AC) 66"; + 14367 = "FS Teleport (AC) 67"; + 14368 = "FS Teleport (AC) 68"; + 14369 = "FS Teleport (AC) 69"; + 14370 = "FS Teleport (AC) 70"; + 14371 = "FS Teleport (AC) 71"; + 14372 = "FS Teleport (AC) 72"; + 14373 = "FS Teleport (AC) 73"; + 14374 = "FS Teleport (AC) 74"; + 14375 = "FS Teleport (AC) 75"; + 14376 = "FS Teleport (AC) 76"; + 14377 = "FS Teleport (AC) 77"; + 14378 = "FS Teleport (AC) 78"; + 14379 = "FS Teleport (AC) 79"; + 14380 = "FS Teleport (AC) 80"; + 14381 = "FS Teleport (AC) 81"; + 14382 = "FS Teleport (AC) 82"; + 14383 = "FS Teleport (AC) 83"; + 14384 = "FS Teleport (AC) 84"; + 14385 = "FS Teleport (AC) 85"; + 14386 = "FS Teleport (AC) 86"; + 14387 = "FS Teleport (AC) 87"; + 14388 = "FS Teleport (AC) 88"; + 14389 = "FS Teleport (AC) 89"; + 14390 = "FS Teleport (AC) 90"; + 14391 = "FS Teleport (AC) 91"; + 14392 = "FS Teleport (AC) 92"; + 14393 = "FS Teleport (AC) 93"; + 14394 = "FS Teleport (AC) 94"; + 14395 = "FS Teleport (AC) 95"; + 14396 = "FS Teleport (AC) 96"; + 14397 = "FS Teleport (AC) 97"; + 14398 = "FS Teleport (AC) 98"; + 14399 = "FS Teleport (AC) 99"; + } + + risenspecial + { + color = 7; // Light Grey + arrow = 0; + title = "Risen3D Special"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 15500 = "Force Water Dynamics"; + 15501 = "Enable 3D Floors"; + 15502 = "Force Sky Texture to Cover Skysphere"; + } + + boom + { + color = 8; // Grey + arrow = 1; + title = "Boom Controllers"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 5001 = "Pusher"; + 5002 = "Puller"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Skulltag_Doom.cfg b/Build/Configurations/Skulltag_Doom.cfg new file mode 100644 index 00000000..46cfd97d --- /dev/null +++ b/Build/Configurations/Skulltag_Doom.cfg @@ -0,0 +1,2559 @@ +/*************************************************************\ + Doom Builder Game Configuration for Skulltag (Doom format) +\*************************************************************/ + +// This is the title to show for this game +game = "Skull Tag (Doom in Doom format)"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 1; +generalizedsectors = 1; + +// Engine specific features +mixtexturesflats = 1; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ + zdoom1 + { + start = "TX_START"; + end = "TX_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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 12; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 16 = "Damage -10 or 20% health"; + 17 = "Light Flickers (randomly)"; + + 21 = "Light Phased"; + 22 = "Light Sequence Start"; + 23 = "Light Sequence Special 1"; + 24 = "Light Sequence Special 2"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt"; + 69 = "Damage Hellslime"; + 71 = "Damage Nukage"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 80 = "Damage Super Hellslime"; + 81 = "Light Fire Flicker"; +} + +// GENERALIZED SECTOR TYPES +gen_sectortypes +{ + lighting + { + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Light Blinks (0.5 sec) and Damage 10 or 20"; + 8 = "Light Glows (1+ sec)"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 17 = "Light Flickers (randomly)"; + } + + damage + { + 0 = "None"; + 256 = "Damage 5 per second"; + 512 = "Damage 10 per second"; + 768 = "Damage 20 per second"; + } + + secret + { + 0 = "No"; + 1024 = "Yes"; + } + + friction + { + 0 = "Disabled"; + 2048 = "Enabled"; + } + + pusher + { + 0 = "Disabled"; + 4096 = "Enabled"; + } +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "PassThru"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 78 = "SR Change Texture and Effect to Nearest"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 99 = "SR Door (Blue) Open Stay (fast)"; + 100 = "W1 Stairs Raise by 16 (fast)"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "WR Door Open Wait Close (fast)"; + 106 = "WR Door Open Stay (fast)"; + 107 = "WR Door Close Stay (fast)"; + 108 = "W1 Door Open Wait Close (fast)"; + 109 = "W1 Door Open Stay (fast)"; + 110 = "W1 Door Close (fast)"; + 111 = "S1 Door Open Wait Close (fast)"; + 112 = "S1 Door Open Stay (fast)"; + 113 = "S1 Door Close Stay (fast)"; + 114 = "SR Door Open Wait Close (fast)"; + 115 = "SR Door Open Stay (fast)"; + 116 = "SR Door Close Stay (fast)"; + 117 = "DR Door Open Wait Close (fast)"; + 118 = "D1 Door Open Stay (fast)"; + 119 = "W1 Floor Raise to Next Higher Floor"; + 120 = "WR Lift Lower Wait Raise (fast)"; + 121 = "W1 Lift Lower Wait Raise (fast)"; + 122 = "S1 Lift Lower Wait Raise (fast)"; + 123 = "SR Lift Lower Wait Raise (fast)"; + 124 = "W1 Exit Level (goes to secret level)"; + 125 = "W1 Teleport (monsters only)"; + 126 = "WR Teleport (monsters only)"; + 127 = "S1 Stairs Raise by 16 (fast)"; + 128 = "WR Floor Raise to Next Higher Floor"; + 129 = "WR Floor Raise to Next Higher Floor (fast)"; + 130 = "W1 Floor Raise to Next Higher Floor (fast)"; + 131 = "S1 Floor Raise to Next Higher Floor (fast)"; + 132 = "SR Floor Raise to Next Higher Floor (fast)"; + 133 = "S1 Door (Blue) Open Stay (fast)"; + 134 = "SR Door (Red) Open Stay (fast)"; + 135 = "S1 Door (Red) Open Stay (fast)"; + 136 = "SR Door (Yellow) Open Stay (fast)"; + 137 = "S1 Door (Yellow) Open Stay (fast)"; + 138 = "SR Light Change to Brightest"; + 139 = "SR Light Change to Darkest"; + 140 = "S1 Floor Raise by 512"; + 141 = "W1 Crusher Start with Slow Damage (silent)"; + 142 = "W1 Floor Raise by 512"; + 143 = "W1 Lift Raise by 24 (changes texture)"; + 144 = "W1 Lift Raise by 24 (remove effect)"; + 145 = "W1 Ceiling Lower to Floor (fast)"; + 146 = "W1 Donut Raise"; + 147 = "WR Floor Raise by 512"; + 148 = "WR Lift Raise by 24 (changes texture)"; + 149 = "WR Lift Raise by 24 (remove effect)"; + 150 = "WR Crusher Start (silent)"; + 151 = "WR Ceiling Raise to Highest Ceiling"; + 152 = "WR Ceiling Lower to Floor (fast)"; + 153 = "W1 Change Texture And Effect"; + 154 = "WR Change Texture And Effect"; + 155 = "WR Donut Raise"; + 156 = "WR Light Start Blinking"; + 157 = "WR Light Change to Darkest"; + 158 = "S1 Floor Raise by Shortest Lower Texture"; + 159 = "S1 Floor Lower to Lowest Floor"; + 160 = "S1 Floor Raise by 24 (changes texture and effect)"; + 161 = "S1 Floor Raise by 24"; + 162 = "S1 Lift Perpetual Lowest and Highest Floors"; + 163 = "S1 Lift Stop"; + 165 = "S1 Crusher Start (silent)"; + 166 = "S1 Ceiling Raise to Highest Ceiling"; + 167 = "S1 Ceiling Lower to 8 Above Floor"; + 168 = "S1 Crusher Stop"; + 169 = "S1 Light Change to Brightest"; + 170 = "S1 Light Change to 35"; + 171 = "S1 Light Change to 255"; + 172 = "S1 Light Start Blinking"; + 173 = "S1 Light Change to Darkest"; + 174 = "S1 Teleport (also monsters)"; + 175 = "S1 Door Close Wait Open (30 seconds)"; + 176 = "SR Floor Raise by Shortest Lower Texture"; + 177 = "SR Floor Lower to Lowest Floor"; + 178 = "SR Floor Raise by 512"; + 179 = "SR Floor Raise by 24 (changes texture and effect)"; + 180 = "SR Floor Raise by 24"; + 181 = "SR Lift Perpetual Lowest and Highest Floors"; + 182 = "SR Lift Stop"; + 183 = "SR Crusher Start (fast)"; + 184 = "SR Crusher Start"; + 185 = "SR Crusher Start (silent)"; + 186 = "SR Ceiling Raise to Highest Ceiling"; + 187 = "SR Ceiling Lower to 8 Above Floor"; + 188 = "SR Crusher Stop"; + 189 = "S1 Change Texture And Effect"; + 190 = "SR Change Texture And Effect"; + 191 = "SR Donut Raise"; + 193 = "SR Light Start Blinking"; + 194 = "SR Light Change to Darkest"; + 195 = "SR Teleport (also monsters)"; + 196 = "SR Door Close Wait Open (30 seconds)"; + 197 = "G1 Exit Level"; + 198 = "G1 Exit Level (goes to secret level)"; + 199 = "W1 Ceiling Lower to Lowest Ceiling"; + 200 = "W1 Ceiling Lower to Highest Floor"; + 201 = "WR Ceiling Lower to Lowest Ceiling"; + 202 = "WR Ceiling Lower to Highest Floor"; + 203 = "S1 Ceiling Lower to Lowest Ceiling"; + 204 = "S1 Ceiling Lower to Highest Floor"; + 205 = "SR Ceiling Lower to Lowest Ceiling"; + 206 = "SR Ceiling Lower to Highest Floor"; + 207 = "W1 Teleport (also monsters, silent, same angle)"; + 208 = "WR Teleport (also monsters, silent, same angle)"; + 209 = "S1 Teleport (also monsters, silent, same angle)"; + 210 = "SR Teleport (also monsters, silent, same angle)"; + 211 = "SR Lift Raise to Ceiling (instantly)"; + 212 = "WR Lift Raise to Ceiling (instantly)"; + 213 = " Floor Change Brightness to this Brightness"; + 214 = " Scroll Ceiling Accelerates when Sector Changes Height"; + 215 = " Scroll Floor Accelerates when Sector Changes Height"; + 216 = " Scroll Things Accelerates when Sector Changes Height"; + 217 = " Scroll Floor/Things Accelerates when Sector Changes Height"; + 218 = " Scroll Wall Accelerates when Sector Changes Height"; + 219 = "W1 Floor Lower to Nearest Floor"; + 220 = "WR Floor Lower to Nearest Floor"; + 221 = "S1 Floor Lower to Nearest Floor"; + 222 = "SR Floor Lower to Nearest Floor"; + 224 = " Wind according to Line Vector"; + 225 = " Current according to Line Vector"; + 226 = " Wind/Current by Push/Pull Thing In Sector"; + 227 = "W1 Lift Raise to Next Highest Floor (fast)"; + 228 = "WR Lift Raise to Next Highest Floor (fast)"; + 229 = "S1 Lift Raise to Next Highest Floor (fast)"; + 230 = "SR Lift Raise to Next Highest Floor (fast)"; + 231 = "W1 Lift Lower to Next Lowest Floor (fast)"; + 232 = "WR Lift Lower to Next Lowest Floor (fast)"; + 233 = "S1 Lift Lower to Next Lowest Floor (fast)"; + 234 = "SR Lift Lower to Next Lowest Floor (fast)"; + 235 = "W1 Lift Move to Same Floor Height (fast)"; + 236 = "WR Lift Move to Same Floor Height (fast)"; + 237 = "S1 Lift Move to Same Floor Height (fast)"; + 238 = "SR Lift Move to Same Floor Height (fast)"; + 239 = "W1 Change Texture and Effect to Nearest"; + 240 = "WR Change Texture and Effect to Nearest"; + 241 = "S1 Change Texture and Effect to Nearest"; + 242 = " Create Fake Ceiling and Floor"; + 243 = "W1 Teleport to Line With Same Tag (silent, same angle)"; + 244 = "WR Teleport to Line With Same Tag (silent, same angle)"; + 245 = " Scroll Ceiling when Sector Changes Height"; + 246 = " Scroll Floor when Sector Changes Height"; + 247 = " Scroll Move Things when Sector Changes Height"; + 248 = " Scroll Floor/Move Things when Sector Changes Height"; + 249 = " Scroll Wall when Sector Changes Height"; + 250 = " Scroll Ceiling according to Line Vector"; + 251 = " Scroll Floor according to Line Vector"; + 252 = " Scroll Move Things according to Line Vector"; + 253 = " Scroll Floor, Move Things"; + 254 = " Scroll Wall according to Line Vector"; + 255 = " Scroll Wall using Sidedef Offsets"; + 256 = "WR Stairs Raise by 8"; + 257 = "WR Stairs Raise by 16 (fast)"; + 258 = "SR Stairs Raise by 8"; + 259 = "SR Stairs Raise by 16 (fast)"; + 260 = " Translucent"; + 261 = " Ceiling Brightness to this Brightness"; + 262 = "W1 Teleport to Line With Same Tag (silent, reversed angle)"; + 263 = "WR Teleport to Line With Same Tag (silent, reversed angle)"; + 264 = "W1 Teleport to Line With Same Tag (also monsters, silent, reversed angle)"; + 265 = "WR Teleport to Line With Same Tag (also monsters, reversed angle)"; + 266 = "W1 Teleport to Line With Same Tag (monsters only, silent)"; + 267 = "WR Teleport to Line With Same Tag (monsters only, silent)"; + 268 = "W1 Teleport (monsters only, silent)"; + 269 = "WR Teleport (monsters only, silent)"; + 271 = " Transfer Sky Texture to Tagged Sectors"; + 272 = " Transfer Sky Texture to Tagged Sectors (flipped)"; +} + +// GENERALIZED LINEDEF TYPES +gen_linedeftypes +{ + normal + { + title = "Normal"; + offset = 0; + length = 0; + } + + floors + { + title = "Floor"; + offset = 24576; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Floor"; + 128 = "Lowest Adjacent Floor"; + 256 = "Next Adjacent Floor"; + 384 = "Lowest Adjacent Ceiling"; + 512 = "Ceiling"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + ceilings + { + title = "Ceiling"; + offset = 16384; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Ceiling"; + 128 = "Lowest Adjacent Ceiling"; + 256 = "Next Adjacent Ceiling"; + 384 = "Highest Adjacent Floor"; + 512 = "Floor"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + doors + { + title = "Door"; + offset = 15360; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + 64 = "Close Wait Open"; + 96 = "Close Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + wait + { + 0 = "1 Second"; + 256 = "4 Seconds"; + 512 = "9 Seconds"; + 768 = "30 Seconds"; + } + + monsters + { + 0 = "No"; + 128 = "Yes"; + } + } + + lockeddoors + { + title = "Locked Door"; + offset = 14336; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + lock + { + 0 = "Any"; + 64 = "Red Keycard"; + 128 = "Blue Keycard"; + 192 = "Yellow Keycard"; + 256 = "Red Skullkey"; + 320 = "Blue Skullkey"; + 384 = "Yellow Skullkey"; + 448 = "All"; + } + + combination + { + 0 = "No (each is a different key)"; + 512 = "Keycard and Skullkey are same"; + } + } + + lifts + { + title = "Lift"; + offset = 13312; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + target + { + 0 = "Lowest adjacent Floor"; + 256 = "Next adjacent Floor"; + 512 = "Lowest adjacent Ceiling"; + 768 = "Perpetual Lowest and Highest Floors"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + delay + { + 0 = "1 Second"; + 64 = "3 Seconds"; + 128 = "5 Seconds"; + 192 = "10 Seconds"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + stairs + { + title = "Stairs"; + offset = 12288; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 256 = "Up"; + } + + step + { + 0 = "4 Map Pixels"; + 64 = "8 Map Pixels"; + 128 = "16 Map Pixels"; + 192 = "24 Map Pixels"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + break + { + 0 = "At different texture"; + 512 = "No"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + crushers + { + title = "Crusher"; + offset = 12160; + length = 128; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + silent + { + 0 = "No"; + 64 = "Yes"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; + 32 = "Not Deathmatch"; + 64 = "Not Cooperative"; +} + +// 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 numbers are the basic colors +// Arrow indicates if the things will have an arrow to indicate direction +// Sort: 0 = List as in configuration, 1 = List alphabetically +// Blocking: 0 = No, 1 = Completely, 2 = True-Height +// Error: +// 0 = Dont check for errors +// 1 = Must be inside map (default) +// 2 = Must be inside map and may not collide +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 2; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 4001 + { + title = "Player 5 start"; + sprite = "PLAYA2A8"; + } + 4002 + { + title = "Player 6 start"; + sprite = "PLAYA2A8"; + } + 4003 + { + title = "Player 7 start"; + sprite = "PLAYA2A8"; + } + 4004 + { + title = "Player 8 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + 5080 + { + title = "Player Blue start (ST/CTF)"; + sprite = "PLAYE2E8"; + } + 5081 + { + title = "Player Red start (ST/CTF)"; + sprite = "PLAYF2F8"; + } + 5082 + { + title = "Player Temporary start (ST/CTF)"; + sprite = "PLAYF1"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 1; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + 9044 + { + title = "Teleport with Z Height"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 2; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + + + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + + + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + + + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + + + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + + + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + + + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + + + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + + + 69 + { + title = "Hell Knight"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 68 + { + title = "Arachnotron"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + + + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + + + 67 + { + title = "Mancubus"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + + + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + + + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDA2A8"; + height = 100; + } + + + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + + + 72 + { + title = "Commander Keen"; + width = 16; + sprite = "KEENA0"; + height = 72; + hangs = 1; + } + + + 88 + { + title = "Icon of Sin"; + width = 16; + sprite = "BBRNA0"; + height = 16; + } + + + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + + + 87 + { + title = "Monsters Target"; + height = 32; + } + + + 9050 + { + title = "Arachnotron (stealth)"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 9051 + { + title = "Archvile (stealth)"; + width = 20; + sprite = "VILEA2D8"; + } + + + 9052 + { + title = "Baron of Hell (stealth)"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 9053 + { + title = "Cacodemon (stealth)"; + width = 31; + sprite = "HEADA2A8"; + } + + + 9054 + { + title = "Chaingunner (stealth)"; + sprite = "CPOSA2"; + } + + + 9055 + { + title = "Demon (stealth)"; + width = 30; + sprite = "SARGA2A8"; + } + + + 9056 + { + title = "Hell Knight (stealth)"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 9057 + { + title = "Imp (stealth)"; + sprite = "TROOA2A8"; + } + + + 9058 + { + title = "Mancubus (stealth)"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 9059 + { + title = "Revenant (stealth)"; + sprite = "SKELA2D8"; + } + + + 9060 + { + title = "Former Sergeant (stealth)"; + sprite = "SPOSA2A8"; + } + + + 9061 + { + title = "Former Human (stealth)"; + sprite = "POSSA2A8"; + } + + + 5004 + { + title = "Blood Demon"; + width = 30; + sprite = "SRG2A2A8"; + } + + + 5003 + { + title = "Dark Imp"; + sprite = "DIMPA2A8"; + } + + + 5005 + { + title = "Super Shotgunner"; + sprite = "GPOSA2A8"; + } + + + 5006 + { + title = "Cacolantern"; + width = 31; + sprite = "HED2A2A8"; + } + + + 5007 + { + title = "Hectebus"; + width = 48; + sprite = "HECTC2C8"; + } + + + 5015 + { + title = "Abaddon"; + width = 31; + sprite = "HED3A2A8"; + } + + + 5008 + { + title = "Belphegor"; + width = 24; + sprite = "BOS3A2A8"; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + hangs = 0; + blocking = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + 5010 + { + title = "Pistol"; + sprite = "PISTA0"; + } + 5014 + { + title = "Minigun"; + sprite = "MNGNA0"; + } + 5011 + { + title = "Grenade launcher"; + sprite = "GLAUA0"; + } + 5012 + { + title = "Railgun"; + sprite = "RAILA0"; + } + 5013 + { + title = "BFG10000"; + sprite = "BFG2A0"; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + 5091 + { + title = "Max. armor bonus"; + sprite = "BON4A0"; + } + 5090 + { + title = "Max. health bonus"; + sprite = "BON3A0"; + } + 5040 + { + title = "Red armor"; + sprite = "ARM3A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + 5030 + { + title = "Turbosphere"; + sprite = "TURBA0"; + height = 45; + } + 5032 + { + title = "Time freeze sphere"; + sprite = "TIMEA0"; + height = 45; + } + 5035 + { + title = "Invisibility sphere"; + sprite = "INVSA0"; + height = 45; + } + 5036 + { + title = "Doomsphere"; + sprite = "DOOMA0"; + height = 45; + } + 5039 + { + title = "Random powerup"; + sprite = "DOOMA0"; + height = 45; + } + } + + runes + { + color = 9; // Light Blue + arrow = 0; + title = "Runes"; + width = 20; + sort = 1; + height = 45; + hangs = 0; + blocking = 0; + + 5100 + { + title = "Strength"; + sprite = "STRRA0"; + } + 5101 + { + title = "Rage"; + sprite = "RAGRA0"; + } + 5102 + { + title = "Drain"; + sprite = "DRARA0"; + } + 5103 + { + title = "Spread"; + sprite = "SPRRA0"; + } + 5104 + { + title = "Resistance"; + sprite = "RESRA0"; + } + 5105 + { + title = "Regeneration"; + sprite = "REGRA0"; + } + 5106 + { + title = "Prosperity"; + sprite = "PRSRA0"; + } + 5107 + { + title = "Reflection"; + sprite = "REFRA0"; + } + 5108 + { + title = "High Jumper"; + sprite = "HIJRA0"; + } + 5109 + { + title = "Haste"; + sprite = "HASRA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + flags + { + color = 13; // Light Magenta + arrow = 0; + title = "Flags"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5130 + { + title = "Blue flag"; + sprite = "BFLAA0"; + } + 5131 + { + title = "Red flag"; + sprite = "RFLAA0"; + } + 5132 + { + title = "White flag"; + sprite = "WFLAA0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 2; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 42; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 42; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + 5009 + { + title = "Floating skull rock (bobs)"; + sprite = "FSKUA0"; + } + 5120 + { + title = "Impaling Spike"; + sprite = "POL7A0"; + } + 5121 + { + title = "Impaled Chaingunner Head"; + sprite = "POL8A0"; + } + 5122 + { + title = "Impaled ZombieMan Head"; + sprite = "POL9A0"; + } + 5050 + { + title = "Grey Stalagmite"; + sprite = "SMT2A0"; + } + 5051 + { + title = "Short Grey Pillar"; + sprite = "COL8A0"; + } + 5052 + { + title = "Tall Grey Pillar"; + sprite = "COL7A0"; + } + 5053 + { + title = "Grey Pillar with Pumping Heart"; + sprite = "COL9A0"; + } + 5054 + { + title = "Tall Gothic Pillar"; + sprite = "GCOLA0"; + } + 5055 + { + title = "Revenant Hand"; + sprite = "SGRBA0"; + } + 5056 + { + title = "Imp's Head"; + sprite = "IHEDA1"; + } + 5057 + { + title = "Hissy"; + sprite = "HISYA1"; + } + } + + scorepillars + { + color = 3; // Cyan + arrow = 0; + title = "Score pillars"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 2; + + 5020 + { + title = "Hell Pillar"; + sprite = "HLSPA0"; + } + 5021 + { + title = "Gothic Pillar"; + sprite = "HLSPA0"; + } + 5022 + { + title = "Starbase Pillar"; + sprite = "HLSPA0"; + } + 5023 + { + title = "Military Pillar"; + sprite = "HLSPA0"; + } + 5024 + { + title = "Labortory Pillar"; + sprite = "HLSPA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 2; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + + + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + + + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + + + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 2; + } + + + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + + + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 2; + } + + + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + + + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 2; + } + + + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + + + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 2; + } + + + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + + + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 2; + } + + + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + + + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 2; + } + + + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 2; + } + + + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 2; + } + + + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 2; + } + + + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 2; + } + + + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + + + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + + + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + + + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + + + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + + + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + + + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + + + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + + + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + + + 23 + { + title = "Dead lost soul"; + } + + + 73 + { + title = "Hanging victim, guts removed"; + sprite = "HDB1A0"; + height = 88; + hangs = 1; + blocking = 2; + } + + + 74 + { + title = "Hanging victim, guts and brain removed"; + sprite = "HDB2A0"; + height = 88; + hangs = 1; + blocking = 2; + } + + + 75 + { + title = "Hanging torso, looking down"; + sprite = "HDB3A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 76 + { + title = "Hanging torso, open skull"; + sprite = "HDB4A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 77 + { + title = "Hanging torso, looking down"; + sprite = "HDB5A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 78 + { + title = "Hanging torso, brain removed"; + sprite = "HDB6A0"; + height = 64; + hangs = 1; + blocking = 2; + } + 9027 = "Red Particle Fountain"; + 9028 = "Green Particle Fountain"; + 9029 = "Blue Particle Fountain"; + 9030 = "Yellow Particle Fountain"; + 9031 = "Purple Particle Fountain"; + 9032 = "Black Particle Fountain"; + 9033 = "White Particle Fountain"; + 5070 + { + title = "Dead cyberdemon"; + sprite = "CYBRP0"; + } + } + + sounds + { + color = 5; // Purple + arrow = 0; + title = "Sounds"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 1400 = "Sound Sequence 0"; + 1401 = "Sound Sequence 1"; + 1402 = "Sound Sequence 2"; + 1403 = "Sound Sequence 3"; + 1404 = "Sound Sequence 4"; + 1405 = "Sound Sequence 5"; + 1406 = "Sound Sequence 6"; + 1407 = "Sound Sequence 7"; + 1408 = "Sound Sequence 8"; + 1409 = "Sound Sequence 9"; + 1411 = "Sound Sequence 0"; + 14001 = "Ambient Sound 1"; + 14002 = "Ambient Sound 2"; + 14003 = "Ambient Sound 3"; + 14004 = "Ambient Sound 4"; + 14005 = "Ambient Sound 5"; + 14006 = "Ambient Sound 6"; + 14007 = "Ambient Sound 7"; + 14008 = "Ambient Sound 8"; + 14009 = "Ambient Sound 9"; + 14010 = "Ambient Sound 10"; + 14011 = "Ambient Sound 11"; + 14012 = "Ambient Sound 12"; + 14013 = "Ambient Sound 13"; + 14014 = "Ambient Sound 14"; + 14015 = "Ambient Sound 15"; + 14016 = "Ambient Sound 16"; + 14017 = "Ambient Sound 17"; + 14018 = "Ambient Sound 18"; + 14019 = "Ambient Sound 19"; + 14020 = "Ambient Sound 20"; + 14021 = "Ambient Sound 21"; + 14022 = "Ambient Sound 22"; + 14023 = "Ambient Sound 23"; + 14024 = "Ambient Sound 24"; + 14025 = "Ambient Sound 25"; + 14026 = "Ambient Sound 26"; + 14027 = "Ambient Sound 27"; + 14028 = "Ambient Sound 28"; + 14029 = "Ambient Sound 29"; + 14030 = "Ambient Sound 30"; + 14031 = "Ambient Sound 31"; + 14032 = "Ambient Sound 32"; + 14033 = "Ambient Sound 33"; + 14034 = "Ambient Sound 34"; + 14035 = "Ambient Sound 35"; + 14036 = "Ambient Sound 36"; + 14037 = "Ambient Sound 37"; + 14038 = "Ambient Sound 38"; + 14039 = "Ambient Sound 39"; + 14040 = "Ambient Sound 40"; + 14041 = "Ambient Sound 41"; + 14042 = "Ambient Sound 42"; + 14043 = "Ambient Sound 43"; + 14044 = "Ambient Sound 44"; + 14045 = "Ambient Sound 45"; + 14046 = "Ambient Sound 46"; + 14047 = "Ambient Sound 47"; + 14048 = "Ambient Sound 48"; + 14049 = "Ambient Sound 49"; + 14050 = "Ambient Sound 50"; + 14051 = "Ambient Sound 51"; + 14052 = "Ambient Sound 52"; + 14053 = "Ambient Sound 53"; + 14054 = "Ambient Sound 54"; + 14055 = "Ambient Sound 55"; + 14056 = "Ambient Sound 56"; + 14057 = "Ambient Sound 57"; + 14058 = "Ambient Sound 58"; + 14059 = "Ambient Sound 59"; + 14060 = "Ambient Sound 60"; + 14061 = "Ambient Sound 61"; + 14062 = "Ambient Sound 62"; + 14063 = "Ambient Sound 63"; + 14064 = "Ambient Sound 64"; + 14065 = "Ambient Sound 0"; + } + + zdoom + { + color = 8; // Grey + arrow = 1; + title = "ZDoom"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 5001 = "Pusher"; + 5002 = "Puller"; + 9025 = "Camera"; + 9045 = "Deep Water"; + 9046 = "Sector Secret"; + } + + skulltag + { + color = 8; // Grey + arrow = 1; + title = "Skull Tag"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 5060 = "Exploding Bridge Thing"; + 5062 = "Breakable Glass Thing"; + 5066 = "Zero-gravity Zone"; + 5067 = "Skull Return Zone"; + 5068 = "Spring Pad Zone"; + 5069 = "Anti-gravity Zone"; + 5140 = "Invisible bridge thing (32) (shootable)"; + 5141 = "Invisible bridge thing (16) (shootable)"; + 5142 = "Invisible bridge thing (8) (shootable)"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Skulltag_DoomHexen.cfg b/Build/Configurations/Skulltag_DoomHexen.cfg new file mode 100644 index 00000000..eb0f3430 --- /dev/null +++ b/Build/Configurations/Skulltag_DoomHexen.cfg @@ -0,0 +1,3735 @@ +/*************************************************************\ + Doom Builder Game Configuration for Skulltag (Hexen format) +\*************************************************************/ + +// This is the title to show for this game +game = "Skull Tag (Doom in Hexen format)"; + +// Map format determines the way the map will be loaded +mapformat = 2; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 0; + +// Engine specific features +mixtexturesflats = 1; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 999; + + +/* +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. +*/ + +// Texture sources +textures +{ + zdoom1 + { + start = "TX_START"; + end = "TX_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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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 = 3; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 1; MAP36 = 1; MAP37 = 1; MAP38 = 1; MAP39 = 1; MAP40 = 1; + MAP41 = 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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 12; + BLOCKMAP = 4; + BEHAVIOR = 8193; + SCRIPTS = 2; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Phased"; + 2 = "Light Sequence Start"; + 3 = "Light Sequence Special 1"; + 4 = "Light Sequence Special 2"; + 21 = "Light Phased"; + 22 = "Light Sequence Start"; + 23 = "Light Sequence Special 1"; + 24 = "Light Sequence Special 2"; + 26 = "Stairs Special 1"; + 27 = "Stairs Special 2"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt"; + 69 = "Damage Hellslime"; + 71 = "Damage Nukage"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 79 = "Low Friction"; + 80 = "Damage Super Hellslime"; + 81 = "Light Fire Flicker"; + 82 = "Damage -2 or -5% health (no protection)"; + 83 = "Damage -4 or -8% health (no protection)"; + 84 = "Scroll east + -2 or -5% health (no protection)"; + 198 = "Light Indoor 2"; + 199 = "Light Indoor 1"; + 200 = "Sky 2 (MAPINFO)"; + 201 = "Scroll North (slow)"; + 202 = "Scroll North (medium)"; + 203 = "Scroll North (fast)"; + 204 = "Scroll East (slow)"; + 205 = "Scroll East (medium)"; + 206 = "Scroll East (fast)"; + 207 = "Scroll South (slow)"; + 208 = "Scroll South (medium)"; + 209 = "Scroll South (fast)"; + 210 = "Scroll West (slow)"; + 211 = "Scroll West (medium)"; + 212 = "Scroll West (fast)"; + 213 = "Scroll NorthWest (slow)"; + 214 = "Scroll NorthWest (medium)"; + 215 = "Scroll NorthWest (fast)"; + 216 = "Scroll NorthEast (slow)"; + 217 = "Scroll NorthEast (medium)"; + 218 = "Scroll NorthEast (fast)"; + 219 = "Scroll SouthEast (slow)"; + 220 = "Scroll SouthEast (medium)"; + 221 = "Scroll SouthEast (fast)"; + 222 = "Scroll SouthWest (slow)"; + 223 = "Scroll SouthWest (medium)"; + 224 = "Scroll SouthWest (fast)"; +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "Repeatable Action"; + 8192 = "Monster Activates"; + 32768 = "Block Everything"; +} + +// LINEDEF ACTIVATIONS +// Make sure these are in order from lowest value to highest value +linedefactivations +{ + 0 = "Player walks over"; + 1024 = "Player presses Use"; + 2048 = "Monster walks over"; + 3072 = "Projectile hits"; + 4096 = "Player bumps"; + 5120 = "Projectile flies over"; + 6144 = "Player presses Use (PassThru)"; +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + + 20 + { + title = "H Floor Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 21 + { + title = "H Floor Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 22 + { + title = "H Floor Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 23 + { + title = "H Floor Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 24 + { + title = "H Floor Raise to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 25 + { + title = "H Floor Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 28 + { + title = "H Floor Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 35 + { + title = "H Floor Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 36 + { + title = "H Floor Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 46 + { + title = "H Floor Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 66 + { + title = "H Floor Lower Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 67 + { + title = "H Floor Raise Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 68 + { + title = "H Floor Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Target Height (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 40 + { + title = "H Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 41 + { + title = "H Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 42 + { + title = "H Ceiling Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 43 + { + title = "H Ceiling Crush Once"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 44 + { + title = "H Ceiling Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 45 + { + title = "H Ceiling Crush Once and Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 69 + { + title = "H Ceiling Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 95 + { + title = "H Floor and Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 96 + { + title = "H Floor and Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 60 + { + title = "H Platform Perpetual Move"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 61 + { + title = "H Platform Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 62 + { + title = "H Platform Lower Wait Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 63 + { + title = "H Platform Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 64 + { + title = "H Platform Raise Wait Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 65 + { + title = "H Platform Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 29 + { + title = "H Pillar Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 30 + { + title = "H Pillar Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Floor Movement Amount"; + arg4 = "Ceiling Movement Amount"; + mark1 = 1; + } + + 94 + { + title = "H Pillar Build and Crush"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 26 + { + title = "H Stairs Build Down"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 27 + { + title = "H Stairs Build Up"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 31 + { + title = "H Stairs Build Down (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 32 + { + title = "H Stairs Build Up (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 10 + { + title = "H Door Close"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 11 + { + title = "H Door Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 12 + { + title = "H Door Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 13 + { + title = "H Door Locked Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Key Number"; + arg5 = "Light Tag"; + mark1 = 1; + mark5 = 1; + } + + 80 + { + title = "H Script Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 81 + { + title = "H Script Suspend"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 82 + { + title = "H Script Terminate"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 83 + { + title = "H Script Locked Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Key Number"; + } + + 110 + { + title = "H Light Raise"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 111 + { + title = "H Light Lower"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 112 + { + title = "H Light Change"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + mark1 = 1; + } + + 113 + { + title = "H Light Fade"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + arg3 = "Fade Duration"; + mark1 = 1; + } + + 114 + { + title = "H Light Flow"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Fade Duration"; + mark1 = 1; + } + + 115 + { + title = "H Light Flicker"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + mark1 = 1; + } + + 116 + { + title = "H Light Strobe"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Brightest Duration"; + arg5 = "Darkest Duration"; + mark1 = 1; + } + + 121 + { + title = "H Line Identification"; + arg1 = "Set Line ID"; + } + + 100 + { + title = "H Scroll Texture Left"; + arg1 = "Scroll Speed"; + } + + 101 + { + title = "H Scroll Texture Right"; + arg1 = "Scroll Speed"; + } + + 102 + { + title = "H Scroll Texture Up"; + arg1 = "Scroll Speed"; + } + + 103 + { + title = "H Scroll Texture Down"; + arg1 = "Scroll Speed"; + } + + 129 + { + title = "H Use Puzzle Item"; + arg1 = "Item Number"; + arg2 = "Script Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 140 + { + title = "H Sector Change Sound"; + arg1 = "Sector Tag"; + arg2 = "Sound Number"; + mark1 = 1; + } + + 120 + { + title = "H Earthquake"; + arg1 = "Intensity"; + arg2 = "Duration"; + arg3 = "Damage Radius"; + arg4 = "Tremor Radius"; + arg5 = "Thing Tag"; + mark5 = 2; + } + + 74 + { + title = "H Teleport To Map"; + arg1 = "Map Number"; + arg2 = "Position"; + } + + 75 + { + title = "H End Game"; + } + + 70 + { + title = "H Teleport"; + arg1 = "Target MapSpot Tag (0=ignore)"; + arg2 = "Target Sector Tag (0=ignore)"; + mark1 = 2; + mark2 = 1; + } + + 71 + { + title = "H Teleport (silent)"; + arg1 = "Target MapSpot Tag (0=ignore)"; + arg2 = "Use Orientation of MapSpot"; + arg3 = "Target Sector Tag (0=ignore)"; + mark1 = 2; + mark3 = 1; + } + + 72 + { + title = "H Thing Thrust"; + arg1 = "Thrust Angle"; + arg2 = "Thrust Distance"; + } + + 73 + { + title = "H Thing Damage"; + arg1 = "Damage Amount"; + } + + 130 + { + title = "H Thing Activate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 131 + { + title = "H Thing Deactivate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 132 + { + title = "H Thing Remove"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 133 + { + title = "H Thing Destroy"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 134 + { + title = "H Thing Projectile"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 136 + { + title = "H Thing Projectile with Gravity"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 135 + { + title = "H Thing Spawn"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 137 + { + title = "H Thing Spawn (silent)"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 1 + { + title = "H Polyobj Start Line"; + arg1 = "Polyobj Number"; + arg2 = "Mirror Polyobj Number"; + arg3 = "Sound Number"; + } + + 2 + { + title = "H Polyobj Rotate Left"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 3 + { + title = "H Polyobj Rotate Right"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 4 + { + title = "H Polyobj Move"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 5 + { + title = "H Polyobj Explicit Line"; + arg1 = "Polyobj Number"; + arg2 = "Rendering order"; + arg3 = "Mirror Polyobj Number"; + arg4 = "Sound Number"; + } + + 6 + { + title = "H Polyobj Move (8px)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 7 + { + title = "H Polyobj Door Swing"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Delay"; + } + + 8 + { + title = "H Polyobj Door Slide"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + arg5 = "Delay"; + } + + 9 + { + title = "H Line Horizon"; + } + + 90 + { + title = "H Polyobj Rotate Left (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 91 + { + title = "H Polyobj Rotate Right (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 92 + { + title = "H Polyobj Move (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 93 + { + title = "H Polyobj Move (8px, override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 181 + { + title = "H Plane Align (slope)"; + arg1 = "Align Floor"; + arg2 = "Align Ceiling"; + } + + 241 + { + title = "H Floor Lower to Lowest TxTy"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 242 + { + title = "H Floor Lower to Highest"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Adjust Target Height"; + mark1 = 1; + } + + 238 + { + title = "H Floor Raise to Lowest Ceiling"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 239 + { + title = "H Floor Raise by TxTy"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 240 + { + title = "H Floor Raise by Texture"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 138 + { + title = "H Floor Waggle"; + arg1 = "Sector Tag"; + arg2 = "Amplitude"; + arg3 = "Frequency"; + arg4 = "Phase Offset"; + arg5 = "Duration"; + mark1 = 1; + } + + 250 + { + title = "H Floor Donut"; + arg1 = "Sector Tag"; + arg2 = "Pillar Movement Speed"; + arg3 = "Stairs Movement Speed"; + mark1 = 1; + } + + 235 + { + title = "H Floor Transfer Trigger"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 236 + { + title = "H Floor Transfer Numeric"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 200 + { + title = "H Floor Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + arg4 = "Movement Target"; + arg5 = "Flags"; + mark1 = 1; + } + + 199 + { + title = "H Ceiling Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 198 + { + title = "H Ceiling Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 193 + { + title = "H Ceiling Lower Instantly"; + arg1 = "Sector Tag"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 194 + { + title = "H Ceiling Raise Instantly"; + arg1 = "Sector Tag"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 252 + { + title = "H Ceiling Raise to Nearest Ceiling"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 192 + { + title = "H Ceiling Lower to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 253 + { + title = "H Ceiling Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 254 + { + title = "H Ceiling Lower to Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 195 + { + title = "H Ceiling Crush Once and Open A"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 196 + { + title = "H Ceiling Crush Start A"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 197 + { + title = "H Ceiling Crush Start A (silent)"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 255 + { + title = "H Ceiling Crush Once and Open A (silent)"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 201 + { + title = "H Ceiling Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + arg4 = "Movement Target"; + arg5 = "Flags"; + mark1 = 1; + } + + 205 + { + title = "H Ceiling Generic Crush"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Amount"; + arg4 = "Silent"; + arg5 = "Crush Damage"; + mark1 = 1; + } + + 251 + { + title = "H Floor and Ceiling Lower and Raise"; + arg1 = "Sector Tag"; + arg2 = "Floor Movement Speed"; + arg3 = "Ceiling Movement Speed"; + mark1 = 1; + } + + 245 + { + title = "H Elevator Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 246 + { + title = "H Elevator Raise to Activated Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 247 + { + title = "H Elevator Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 217 + { + title = "H Stairs Build Doom"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 204 + { + title = "H Stairs Generic Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Flags"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 207 + { + title = "H Platform Perpetual Move (lip)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Lip Amount"; + mark1 = 1; + } + + 206 + { + title = "H Platform Lower Wait Raise (lip)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Lip Amount"; + mark1 = 1; + } + + 228 + { + title = "H Platform Raise Tx0"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 230 + { + title = "H Platform Raise by Value Tx (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 231 + { + title = "H Platform Toggle Ceiling"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 203 + { + title = "H Platform Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Type"; + arg5 = "Movement Amount"; + mark1 = 1; + } + + 215 + { + title = "H Teleport To Line"; + arg1 = "Source Line Tag"; + arg2 = "Target Line Tag"; + arg3 = "Reverse Angle"; + } + + 243 + { + title = "H End Normal"; + arg1 = "Position"; + } + + 244 + { + title = "H End Secret"; + arg1 = "Position"; + } + + 232 + { + title = "H Light Strobe Doom"; + arg1 = "Sector Tag"; + arg2 = "Brightest Duration"; + arg3 = "Darkest Duration"; + mark1 = 1; + } + + 233 + { + title = "H Light Change to Darkest"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 234 + { + title = "H Light Change to Brightest"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 212 + { + title = "H Sector Color"; + arg1 = "Sector Tag"; + arg2 = "Red"; + arg3 = "Green"; + arg4 = "Blue"; + mark1 = 1; + } + + 213 + { + title = "H Sector Fade"; + arg1 = "Sector Tag"; + arg2 = "Red"; + arg3 = "Green"; + arg4 = "Blue"; + mark1 = 1; + } + + 214 + { + title = "H Sector Damage"; + arg1 = "Sector Tag"; + arg2 = "Damage Amount"; + arg3 = "Meaning Of Death"; + mark1 = 1; + } + + 216 + { + title = "H Sector Gravity"; + arg1 = "Sector Tag"; + arg2 = "Gravity Integral"; + arg3 = "Gravity Fractional"; + mark1 = 1; + } + + 219 + { + title = "H Sector Friction"; + arg1 = "Sector Tag"; + arg2 = "Friction Amount"; + mark1 = 1; + } + + 218 + { + title = "H Sector Wind"; + arg1 = "Sector Tag"; + arg2 = "Wind Strength"; + arg3 = "Wind Angle"; + arg4 = "Line Vector"; + mark1 = 1; + } + + 220 + { + title = "H Sector Current"; + arg1 = "Sector Tag"; + arg2 = "Current Strength"; + arg3 = "Current Angle"; + arg4 = "Line Vector"; + mark1 = 1; + } + + 183 + { + title = "H Sector Floor Alignment to Line"; + arg1 = "Line Tag"; + arg2 = "Line Side"; + } + + 184 + { + title = "H Sector Ceiling Alignment to Line"; + arg1 = "Line Tag"; + arg2 = "Line Side"; + } + + 185 + { + title = "H Sector Rotate Alignment"; + arg1 = "Sector Tag"; + arg2 = "Floor Angle"; + arg3 = "Ceiling Angle"; + mark1 = 1; + } + + 186 + { + title = "H Sector Ceiling Panning"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 187 + { + title = "H Sector Floor Panning"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 188 + { + title = "H Sector Ceiling Scale"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 189 + { + title = "H Sector Floor Scale"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 248 + { + title = "H Thing Heal"; + arg1 = "Health Amount"; + } + + 229 + { + title = "H Thing Goal"; + arg1 = "Monster Thing Tag"; + arg2 = "Target Thing Tag"; + arg3 = "Delay"; + mark1 = 2; + mark2 = 2; + } + + 226 + { + title = "H Script Execute Always"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 208 + { + title = "H Translucent Line"; + arg1 = "Line Tag"; + arg2 = "Transparency Amount"; + } + + 221 + { + title = "H Scroll Texture Both"; + arg1 = "Line Tag"; + arg2 = "Left Speed"; + arg3 = "Right Speed"; + arg4 = "Down Speed"; + arg5 = "Up Speed"; + } + + 225 + { + title = "H Scroll Texture by Offsets"; + } + + 222 + { + title = "H Scroll Texture Model"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + } + + 223 + { + title = "H Scroll Floor"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + arg3 = "Method"; + arg4 = "Horizontal Speed"; + arg5 = "Vertical Speed"; + } + + 224 + { + title = "H Scroll Ceiling"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + arg3 = "Method"; + arg4 = "Horizontal Speed"; + arg5 = "Vertical Speed"; + } + + 209 + { + title = "H Transfer Heights"; + arg1 = "Sector Tag"; + arg2 = "When"; + mark1 = 1; + } + + 210 + { + title = "H Transfer Floor Brightness"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 211 + { + title = "H Transfer Ceiling Brightness"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 227 + { + title = "H Point Pusher and Puller Force"; + arg1 = "Sector Tag"; + arg2 = "Thing Tag"; + arg3 = "Strength"; + arg4 = "Line Vector"; + mark1 = 1; + mark2 = 2; + } + + 237 + { + title = "H Camera Change"; + arg1 = "Thing Tag"; + arg2 = "Everyone"; + arg3 = "Movement Resets"; + mark1 = 1; + } + + 191 + { + title = "H Player Property"; + arg1 = "Everyone"; + arg2 = "Toggle"; + arg3 = "Property"; + } + + 249 + { + title = "H Door Close Wait Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 202 + { + title = "H Door Generic"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Type"; + arg4 = "Delay"; + arg5 = "Lock"; + mark1 = 1; + } + + 38 + { + title = "H Ceiling Waggle"; + arg1 = "Sector Tag"; + arg2 = "Amplitude"; + arg3 = "Frequency"; + arg4 = "Phase Offset"; + arg5 = "Duration"; + mark1 = 1; + } + + 15 + { + title = "H Autosave"; + } + + 76 + { + title = "H Teleport Other"; + arg1 = "Thing ID"; + arg2 = "Target Thing ID"; + arg3 = "Fog"; + mark1 = 2; + mark2 = 2; + } + + 77 + { + title = "H Teleport Group"; + arg1 = "Group Thing ID"; + arg2 = "Source Thing ID"; + arg3 = "Target Thing ID"; + arg4 = "Move source"; + arg5 = "Fog"; + mark1 = 2; + mark2 = 2; + mark3 = 2; + } + + 78 + { + title = "H Teleport in sector"; + arg1 = "Sector Tag"; + arg2 = "Source Thing ID"; + arg3 = "Target Thing ID"; + arg4 = "bFog"; + arg5 = "Group Thing ID"; + mark1 = 1; + mark2 = 2; + mark3 = 2; + mark5 = 2; + } + + 117 + { + title = "H Light Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 119 + { + title = "H Thing Damage"; + arg1 = "Thing ID"; + arg2 = "Damage"; + arg3 = "Means of Death"; + mark1 = 2; + } + + 125 + { + title = "H Thing Move"; + arg1 = "Thing ID"; + arg2 = "Target Thing ID"; + mark1 = 2; + mark2 = 2; + } + + 127 + { + title = "H Thing Set Special"; + arg1 = "Thing ID"; + arg2 = "Special"; + arg3 = "Special arg 1"; + arg4 = "Special arg 2"; + arg5 = "Special arg 3"; + mark1 = 2; + } + + 128 + { + title = "H Thing Thrust Z"; + arg1 = "Thing ID"; + arg2 = "Force"; + arg3 = "Down Up"; + arg4 = "Add Set"; + mark1 = 2; + } + + 139 + { + title = "H Thing Spawn Facing"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "No Fog"; + arg4 = "New Thing ID"; + mark1 = 2; + } + + 175 + { + title = "H Thing Projectile Intercept"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "Speed"; + arg4 = "Thing ID target"; + arg5 = "New Thing ID"; + mark1 = 2; + mark4 = 2; + } + + 176 + { + title = "H Thing ID Change"; + arg1 = "Old Thing ID"; + arg2 = "New Thing ID"; + mark1 = 2; + } + + 177 + { + title = "H Thing Hate"; + arg1 = "Hater ID"; + arg2 = "Hatee ID"; + arg3 = "Flags"; + mark1 = 2; + mark2 = 2; + } + + 178 + { + title = "H Thing Aimed Projectile"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "Speed"; + arg4 = "Target Thing ID"; + arg5 = "New Thing ID"; + mark1 = 2; + mark4 = 2; + } + + 179 + { + title = "H Change Skill"; + arg1 = "New Skill Level"; + } + + 180 + { + title = "H Thing Set Translation"; + arg1 = "Thing ID"; + arg2 = "Translation index"; + } + + 182 + { + title = "H Line Mirror"; + } + + 190 + { + title = "H Static Init"; + arg1 = "Sector Tag"; + arg2 = "Property"; + arg3 = "Flip Sky"; + } + + 126 + { + title = "H Thing Set Frame"; + arg1 = "Thing ID"; + arg2 = "Frame"; + mark1 = 2; + } + + 50 + { + title = "H Transfer Brightness Level"; + arg1 = "Sector Tag"; + arg2 = "Method"; + mark1 = 1; + } + + // Skull Tag new linedef effects + + 143 + { + title = "H Player Remove Item"; + arg1 = "Item"; + arg2 = "Show Message"; + } + + 144 + { + title = "H Player Give Item"; + arg1 = "Item"; + arg2 = "Show Message"; + } + + 145 + { + title = "H Player Set Item"; + arg1 = "Team"; + } + + 152 + { + title = "H Team Score"; + arg = "Amount"; + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Dormant"; + 32 = "Fighter class"; + 64 = "Cleric class"; + 128 = "Mage class"; + 256 = "Singleplayer"; + 512 = "Cooperative"; + 1024 = "Deathmatch"; +} + +// 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 = 1792; // 256 + 512 + 1024 + + +// THING TYPES +// Color numbers are the basic colors +// Arrow indicates if the things will have an arrow to indicate direction +// Sort: 0 = List as in configuration, 1 = List alphabetically +// Blocking: 0 = No, 1 = Completely, 2 = True-Height +// Error: +// 0 = Dont check for errors +// 1 = Must be inside map (default) +// 2 = Must be inside map and may not collide +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + cameras + { + color = 7; // Light Grey + arrow = 1; + title = "Cameras and Interpolation"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 1; + + 9025 = "Camera"; + 9073 + { + title = "Aiming Camera"; + arg1 = "Pitch"; + arg2 = "Max Angle"; + arg3 = "Max Pitch"; + arg4 = "Thing ID"; + } + 9080 = "Skybox Viewpoint"; + 9081 + { + title = "Skybox Picker"; + arg1 = "Thing ID sky"; + } + 9074 + { + title = "Actor Mover"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + arg4 = "Thing ID"; + } + 9070 + { + title = "Interpolation point"; + arg1 = "Pitch"; + arg2 = "Travel Time"; + arg3 = "Hold Time"; + arg4 = "Next"; + arg5 = "High Next"; + } + 9075 = "Interpolation Special"; + 9072 + { + title = "Moving Camera"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + arg4 = "Thing ID looking at"; + } + 9071 + { + title = "Path Follower"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + } + 9047 = "Patrol Special"; + } + + bridges + { + color = 8; // Grey + arrow = 0; + title = "Bridges"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 1; + + 5064 + { + title = "Bridge radius 16"; + width = 16; + } + 5061 + { + title = "Bridge radius 32"; + width = 32; + } + 5065 + { + title = "Bridge radius 8"; + width = 8; + } + 9990 + { + title = "Bridge Custom"; + arg1 = "Radius"; + arg2 = "Thickness"; + } + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 2; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 4001 + { + title = "Player 5 start"; + sprite = "PLAYA2A8"; + } + 4002 + { + title = "Player 6 start"; + sprite = "PLAYA2A8"; + } + 4003 + { + title = "Player 7 start"; + sprite = "PLAYA2A8"; + } + 4004 + { + title = "Player 8 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + 5080 + { + title = "Player Blue start (ST/CTF)"; + sprite = "PLAYE2E8"; + } + 5081 + { + title = "Player Red start (ST/CTF)"; + sprite = "PLAYF2F8"; + } + 5082 + { + title = "Player Temporary start (ST/CTF)"; + sprite = "PLAYF1"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 1; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + 9044 + { + title = "Teleport with Z Height"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 2; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + + + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + + + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + + + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + + + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + + + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + + + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + + + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + + + 69 + { + title = "Hell Knight"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 68 + { + title = "Arachnotron"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + + + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + + + 67 + { + title = "Mancubus"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + + + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + + + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDA2A8"; + height = 100; + } + + + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + + + 72 + { + title = "Commander Keen"; + width = 16; + sprite = "KEENA0"; + height = 72; + hangs = 1; + } + + + 88 + { + title = "Icon of Sin"; + width = 16; + sprite = "BBRNA0"; + height = 16; + } + + + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + + + 87 + { + title = "Monsters Target"; + height = 32; + } + + + 9050 + { + title = "Arachnotron (stealth)"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 9051 + { + title = "Archvile (stealth)"; + width = 20; + sprite = "VILEA2D8"; + } + + + 9052 + { + title = "Baron of Hell (stealth)"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 9053 + { + title = "Cacodemon (stealth)"; + width = 31; + sprite = "HEADA2A8"; + } + + + 9054 + { + title = "Chaingunner (stealth)"; + sprite = "CPOSA2"; + } + + + 9055 + { + title = "Demon (stealth)"; + width = 30; + sprite = "SARGA2A8"; + } + + + 9056 + { + title = "Hell Knight (stealth)"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 9057 + { + title = "Imp (stealth)"; + sprite = "TROOA2A8"; + } + + + 9058 + { + title = "Mancubus (stealth)"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 9059 + { + title = "Revenant (stealth)"; + sprite = "SKELA2D8"; + } + + + 9060 + { + title = "Former Sergeant (stealth)"; + sprite = "SPOSA2A8"; + } + + + 9061 + { + title = "Former Human (stealth)"; + sprite = "POSSA2A8"; + } + + + 5004 + { + title = "Blood Demon"; + width = 30; + sprite = "SRG2A2A8"; + } + + + 5003 + { + title = "Dark Imp"; + sprite = "DIMPA2A8"; + } + + + 5005 + { + title = "Super Shotgunner"; + sprite = "GPOSA2A8"; + } + + + 5006 + { + title = "Cacolantern"; + width = 31; + sprite = "HED2A2A8"; + } + + + 5007 + { + title = "Hectebus"; + width = 48; + sprite = "HECTC2C8"; + } + + + 5015 + { + title = "Abaddon"; + width = 31; + sprite = "HED3A2A8"; + } + + + 5008 + { + title = "Belphegor"; + width = 24; + sprite = "BOS3A2A8"; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + hangs = 0; + blocking = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + 5010 + { + title = "Pistol"; + sprite = "PISTA0"; + } + 5014 + { + title = "Minigun"; + sprite = "MNGNA0"; + } + 5011 + { + title = "Grenade launcher"; + sprite = "GLAUA0"; + } + 5012 + { + title = "Railgun"; + sprite = "RAILA0"; + } + 5013 + { + title = "BFG10000"; + sprite = "BFG2A0"; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + 5091 + { + title = "Max. armor bonus"; + sprite = "BON4A0"; + } + 5090 + { + title = "Max. health bonus"; + sprite = "BON3A0"; + } + 5040 + { + title = "Red armor"; + sprite = "ARM3A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + 5030 + { + title = "Turbosphere"; + sprite = "TURBA0"; + height = 45; + } + 5032 + { + title = "Time freeze sphere"; + sprite = "TIMEA0"; + height = 45; + } + 5035 + { + title = "Invisibility sphere"; + sprite = "INVSA0"; + height = 45; + } + 5036 + { + title = "Doomsphere"; + sprite = "DOOMA0"; + height = 45; + } + 5039 + { + title = "Random powerup"; + sprite = "DOOMA0"; + height = 45; + } + } + + runes + { + color = 9; // Light Blue + arrow = 0; + title = "Runes"; + width = 20; + sort = 1; + height = 45; + hangs = 0; + blocking = 0; + + 5100 + { + title = "Strength"; + sprite = "STRRA0"; + } + 5101 + { + title = "Rage"; + sprite = "RAGRA0"; + } + 5102 + { + title = "Drain"; + sprite = "DRARA0"; + } + 5103 + { + title = "Spread"; + sprite = "SPRRA0"; + } + 5104 + { + title = "Resistance"; + sprite = "RESRA0"; + } + 5105 + { + title = "Regeneration"; + sprite = "REGRA0"; + } + 5106 + { + title = "Prosperity"; + sprite = "PRSRA0"; + } + 5107 + { + title = "Reflection"; + sprite = "REFRA0"; + } + 5108 + { + title = "High Jumper"; + sprite = "HIJRA0"; + } + 5109 + { + title = "Haste"; + sprite = "HASRA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + flags + { + color = 13; // Light Magenta + arrow = 0; + title = "Flags"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5130 + { + title = "Blue flag"; + sprite = "BFLAA0"; + } + 5131 + { + title = "Red flag"; + sprite = "RFLAA0"; + } + 5132 + { + title = "White flag"; + sprite = "WFLAA0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 2; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 42; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 42; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + 5009 + { + title = "Floating skull rock (bobs)"; + sprite = "FSKUA0"; + } + 5120 + { + title = "Impaling Spike"; + sprite = "POL7A0"; + } + 5121 + { + title = "Impaled Chaingunner Head"; + sprite = "POL8A0"; + } + 5122 + { + title = "Impaled ZombieMan Head"; + sprite = "POL9A0"; + } + 5050 + { + title = "Grey Stalagmite"; + sprite = "SMT2A0"; + } + 5051 + { + title = "Short Grey Pillar"; + sprite = "COL8A0"; + } + 5052 + { + title = "Tall Grey Pillar"; + sprite = "COL7A0"; + } + 5053 + { + title = "Grey Pillar with Pumping Heart"; + sprite = "COL9A0"; + } + 5054 + { + title = "Tall Gothic Pillar"; + sprite = "GCOLA0"; + } + 5055 + { + title = "Revenant Hand"; + sprite = "SGRBA0"; + } + 5056 + { + title = "Imp's Head"; + sprite = "IHEDA1"; + } + 5057 + { + title = "Hissy"; + sprite = "HISYA1"; + } + } + + scorepillars + { + color = 3; // Cyan + arrow = 0; + title = "Score pillars"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 2; + + 5020 + { + title = "Hell Pillar"; + sprite = "HLSPA0"; + } + 5021 + { + title = "Gothic Pillar"; + sprite = "HLSPA0"; + } + 5022 + { + title = "Starbase Pillar"; + sprite = "HLSPA0"; + } + 5023 + { + title = "Military Pillar"; + sprite = "HLSPA0"; + } + 5024 + { + title = "Labortory Pillar"; + sprite = "HLSPA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 2; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + + + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + + + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + + + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 2; + } + + + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + + + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 2; + } + + + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + + + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 2; + } + + + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + + + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 2; + } + + + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + + + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 2; + } + + + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + + + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 2; + } + + + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 2; + } + + + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 2; + } + + + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 2; + } + + + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 2; + } + + + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + + + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + + + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + + + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + + + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + + + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + + + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + + + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + + + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + + + 23 + { + title = "Dead lost soul"; + } + + + 73 + { + title = "Hanging victim, guts removed"; + sprite = "HDB1A0"; + height = 88; + hangs = 1; + blocking = 2; + } + + + 74 + { + title = "Hanging victim, guts and brain removed"; + sprite = "HDB2A0"; + height = 88; + hangs = 1; + blocking = 2; + } + + + 75 + { + title = "Hanging torso, looking down"; + sprite = "HDB3A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 76 + { + title = "Hanging torso, open skull"; + sprite = "HDB4A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 77 + { + title = "Hanging torso, looking down"; + sprite = "HDB5A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 78 + { + title = "Hanging torso, brain removed"; + sprite = "HDB6A0"; + height = 64; + hangs = 1; + blocking = 2; + } + 9027 = "Red Particle Fountain"; + 9028 = "Green Particle Fountain"; + 9029 = "Blue Particle Fountain"; + 9030 = "Yellow Particle Fountain"; + 9031 = "Purple Particle Fountain"; + 9032 = "Black Particle Fountain"; + 9033 = "White Particle Fountain"; + 5070 + { + title = "Dead cyberdemon"; + sprite = "CYBRP0"; + } + } + + sectors + { + color = 7; + arrow = 0; + title = "Sector Actions"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 9082 = "Silent Sector"; + 9998 = "Actor enters sector"; + 9989 = "Actor hits fake floor"; + 9996 = "Actor hits ceiling"; + 9999 = "Actor hits floor"; + 9997 = "Actor leaves sector"; + 9982 = "Eyes above fake ceiling"; + 9992 = "Eyes above fake floor"; + 9983 = "Eyes below fake ceiling"; + 9993 = "Eyes below fake floor"; + 9995 = "Player uses sector"; + 9994 = "Player uses wall"; + } + + sounds + { + color = 5; // Purple + arrow = 0; + title = "Sounds"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 1400 = "Sound Sequence 0"; + 1401 = "Sound Sequence 1"; + 1402 = "Sound Sequence 2"; + 1403 = "Sound Sequence 3"; + 1404 = "Sound Sequence 4"; + 1405 = "Sound Sequence 5"; + 1406 = "Sound Sequence 6"; + 1407 = "Sound Sequence 7"; + 1408 = "Sound Sequence 8"; + 1409 = "Sound Sequence 9"; + 1411 + { + title = "Sound Sequence"; + arg1 = "Sound Sequence Number"; + } + 14001 = "Ambient Sound 1"; + 14002 = "Ambient Sound 2"; + 14003 = "Ambient Sound 3"; + 14004 = "Ambient Sound 4"; + 14005 = "Ambient Sound 5"; + 14006 = "Ambient Sound 6"; + 14007 = "Ambient Sound 7"; + 14008 = "Ambient Sound 8"; + 14009 = "Ambient Sound 9"; + 14010 = "Ambient Sound 10"; + 14011 = "Ambient Sound 11"; + 14012 = "Ambient Sound 12"; + 14013 = "Ambient Sound 13"; + 14014 = "Ambient Sound 14"; + 14015 = "Ambient Sound 15"; + 14016 = "Ambient Sound 16"; + 14017 = "Ambient Sound 17"; + 14018 = "Ambient Sound 18"; + 14019 = "Ambient Sound 19"; + 14020 = "Ambient Sound 20"; + 14021 = "Ambient Sound 21"; + 14022 = "Ambient Sound 22"; + 14023 = "Ambient Sound 23"; + 14024 = "Ambient Sound 24"; + 14025 = "Ambient Sound 25"; + 14026 = "Ambient Sound 26"; + 14027 = "Ambient Sound 27"; + 14028 = "Ambient Sound 28"; + 14029 = "Ambient Sound 29"; + 14030 = "Ambient Sound 30"; + 14031 = "Ambient Sound 31"; + 14032 = "Ambient Sound 32"; + 14033 = "Ambient Sound 33"; + 14034 = "Ambient Sound 34"; + 14035 = "Ambient Sound 35"; + 14036 = "Ambient Sound 36"; + 14037 = "Ambient Sound 37"; + 14038 = "Ambient Sound 38"; + 14039 = "Ambient Sound 39"; + 14040 = "Ambient Sound 40"; + 14041 = "Ambient Sound 41"; + 14042 = "Ambient Sound 42"; + 14043 = "Ambient Sound 43"; + 14044 = "Ambient Sound 44"; + 14045 = "Ambient Sound 45"; + 14046 = "Ambient Sound 46"; + 14047 = "Ambient Sound 47"; + 14048 = "Ambient Sound 48"; + 14049 = "Ambient Sound 49"; + 14050 = "Ambient Sound 50"; + 14051 = "Ambient Sound 51"; + 14052 = "Ambient Sound 52"; + 14053 = "Ambient Sound 53"; + 14054 = "Ambient Sound 54"; + 14055 = "Ambient Sound 55"; + 14056 = "Ambient Sound 56"; + 14057 = "Ambient Sound 57"; + 14058 = "Ambient Sound 58"; + 14059 = "Ambient Sound 59"; + 14060 = "Ambient Sound 60"; + 14061 = "Ambient Sound 61"; + 14062 = "Ambient Sound 62"; + 14063 = "Ambient Sound 63"; + 14064 = "Ambient Sound 64"; + 14065 + { + title = "Ambient Sound"; + arg1 = "Ambient Sound Number"; + } + } + + marine + { + color = 15; + arrow = 1; + title = "Marines"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + + 9100 = "Scripted Marine"; + 9101 = "Marine Fist"; + 9102 = "Marine Berserk"; + 9103 = "Marine Chainsaw"; + 9104 = "Marine Pistol"; + 9105 = "Marine Shotgun"; + 9106 = "Marine SSG"; + 9107 = "Marine Chaingun"; + 9108 = "Marine Rocket Launcher"; + 9109 = "Marine Plasma Rifle"; + 9110 = "Marine Railgun"; + 9111 = "Marine BFG9000"; + } + + slopes + { + color = 8; // Grey + arrow = 1; + title = "Slopes"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 9511 + { + title = "Copy ceiling plane"; + arg1 = "tag"; + } + 9510 + { + title = "Copy floor plane"; + arg1 = "tag"; + } + 9503 + { + title = "Set ceiling slope"; + arg1 = "Z-Angle"; + } + 9502 + { + title = "Set floor slope"; + arg1 = "Z-Angle"; + } + 9501 + { + title = "Slope ceiling to here"; + arg1 = "Line ID"; + } + 9500 + { + title = "Slope floor to here"; + arg1 = "Line ID"; + } + } + + zdoom + { + color = 7; // Light Grey + arrow = 1; + title = "ZDoom"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 9200 + { + title = "Decal"; + arg1 = "Decal ID"; + } + 5001 = "Pusher"; + 5002 = "Puller"; + 9024 + { + title = "Path Node"; + arg1 = "Next Node"; + arg2 = "Delay"; + } + 9026 + { + title = "Spark"; + arg1 = "Particles Amount"; + } + 9045 = "Deep Water"; + 9046 = "Secret"; + 9300 = "Polyobject Anchor"; + 9301 = "Polyobject Start Spot"; + 9302 = "Polyobject Start Spot (crush)"; + 9303 = "Polyobject Spawn(Hurts to touch)"; + 9001 = "Map Spot"; + 9013 = "Map Spot (gravity)"; + 9076 = "Hate target"; + } + + skulltag + { + color = 8; // Grey + arrow = 1; + title = "Skull Tag"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 5060 = "Exploding Bridge Thing"; + 5062 = "Breakable Glass Thing"; + 5066 = "Zero-gravity Zone"; + 5067 = "Skull Return Zone"; + 5068 = "Spring Pad Zone"; + 5069 = "Anti-gravity Zone"; + 5140 = "Invisible bridge thing (32) (shootable)"; + 5141 = "Invisible bridge thing (16) (shootable)"; + 5142 = "Invisible bridge thing (8) (shootable)"; + } +} \ No newline at end of file diff --git a/Build/Configurations/Strife.cfg b/Build/Configurations/Strife.cfg new file mode 100644 index 00000000..1d54d008 --- /dev/null +++ b/Build/Configurations/Strife.cfg @@ -0,0 +1,1321 @@ +/*******************************************************\ + Doom Builder Game Configuration for Strife +\*******************************************************/ + +// This is the title to show for this game +game = "Strife"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 0; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks off (randomly)"; + 2 = "Light Blinks on (0.5 sec)"; + 3 = "Light Blinks on (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks on (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks on (0.5 sec sync)"; + 13 = "Light Blinks off (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 15 = "Instant Death"; + 16 = "Damage -10 or 20% health"; + 17 = "Light Flickers on/off (randomly)"; + 18 = "Current Force, tag=dir&magnitude"; +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "Unknown (512)"; + 1024 = "Unknown (1024)"; + 2048 = "Unknown (2048)"; + 4096 = "Translucent"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level (tag = map to go to)"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (secret exit)"; + 52 = "W1 Exit Level (go to next map)"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "WR Door Open Wait Close (fast)"; + 106 = "WR Door Open Stay (fast)"; + 107 = "WR Door Close Stay (fast)"; + 108 = "W1 Door Open Wait Close (fast)"; + 109 = "W1 Door Open Stay (fast)"; + 110 = "W1 Door Close (fast)"; + 111 = "S1 Door Open Wait Close (fast)"; + 112 = "S1 Door Open Stay (fast)"; + 113 = "S1 Door Close Stay (fast)"; + 114 = "SR Door Open Wait Close (fast)"; + 115 = "SR Door Open Stay (fast)"; + 116 = "SR Door Close Stay (fast)"; + 117 = "DR Door Open Wait Close (fast)"; + 118 = "D1 Door Open Stay (fast)"; + 119 = "W1 Floor Raise to Next Higher Floor"; + 120 = "WR Lift Lower Wait Raise (fast)"; + 121 = "W1 Lift Lower Wait Raise (fast)"; + 122 = "S1 Lift Lower Wait Raise (fast)"; + 123 = "SR Lift Lower Wait Raise (fast)"; + 124 = "W1 Exit Level (secret exit)"; + 125 = "W1 Teleport (monsters only)"; + 126 = "WR Teleport (monsters only)"; + 127 = "S1 Stairs Raise by 16 (fast)"; + 128 = "WR Floor Raise to Next Higher Floor"; + 129 = "WR Floor Raise to Next Higher Floor (fast)"; + 130 = "W1 Floor Raise to Next Higher Floor (fast)"; + 131 = "S1 Floor Raise to Next Higher Floor (fast)"; + 132 = "SR Floor Raise to Next Higher Floor (fast)"; + 138 = "SR Light Change to Brightest"; + 139 = "SR Light Change to Darkest"; + 140 = "S1 Floor Raise by 512"; + 141 = "W1 Crusher Start with Slow Damage (silent)"; + 40 = "S1 Door Open Split, floor down, ceiling up"; + 26 = "DR Door Open Blue ID Badge, Wait 4, Close"; + 32 = "D1 Door Open Blue ID Badge, Stay Open"; + 28 = "DR Door Open Gold ID Card, Wait 4, Close"; + 33 = "D1 Door Open Gold ID Card, Stay Open"; + 27 = "DR Door Open Pass Card, Wait 4, Close"; + 34 = "D1 Door Open Pass Card, Stay Open"; + 99 = "SR Door Open Blue ID Badge Fast, Stay Open"; + 133 = "S1 Door Open Blue ID Badge Fast, Stay Open"; + 134 = "SR Door Open Gold ID Card Fast, Stay Open"; + 135 = "S1 Door Open Gold ID Card Fast, Stay Open"; + 136 = "SR Door Open Pass Card Fast, Stay Open"; + 137 = "S1 Door Open Pass Card Fast, Stay Open"; + 156 = "D1 Door Open Brass Key, Stay Open"; + 152 = "SR Door Open Brass Key Fast, Stay Open"; + 162 = "S1 Door Open Brass Key Fast, Stay Open"; + 161 = "DR Door Open Brass Key, Wait, Close"; + 160 = "DR Door Open Silver Key, Wait 4, Close"; + 157 = "D1 Door Open Silver Key, Stay Open"; + 153 = "SR Door Open Silver Key Fast, Stay Open"; + 163 = "S1 Door Open Silver Key Fast, Stay Open"; + 159 = "DR Door Open Gold Key, Wait 4, Close"; + 158 = "D1 Door Open Gold Key, Stay Open"; + 151 = "SR Door Open Gold Key Fast, Stay Open"; + 164 = "S1 Door Open Gold Key Fast, Stay Open"; + 169 = "DR Door Open Front Base Key, Wait, Close"; + 170 = "DR Door Open Govs Key, Wait, Close"; + 191 = "SR Door Open Military ID, Wait, Close"; + 223 = "SR Door Open Mine Key, Wait, Close"; + 225 = "DR Door Open Catabomb Key, Wait, Close"; + 224 = "DR Door Open Chapel Key, Wait, Close"; + 217 = "DR Door Open Core Key, Wait 4, Close"; + 166 = "DR Door Open Severed Hand, Wait 4, Close"; + 221 = "DR Door Open Mauler Key, Wait 4, Close"; + 190 = "DR Door Open Order Key, Wait 4, Close"; + 232 = "DR Door Open Oracle Pass, Wait 4, Close"; + 167 = "S1 Door Open Severed Hand Fast, Stay Open"; + 168 = "SR Door Open Severed Hand Fast, Stay Open"; + 144 = "DR Door Open Sliding (special texture)"; + 207 = "SR Door Open Sliding (special texture)"; + 213 = "DR Door Open Chalice, Wait 4, Close"; + 234 = "SR Door Open Quest/DM"; + 216 = "WR Door Open Quest, Wait 4, Close?"; + 230 = "W1 Door Open Quest? WRONG"; + 188 = "W1 Door Open if Piston destroyed/DM"; + 200 = "W1 Door Open Sigil A"; + 172 = "SR Door Open Power 1 Key, Wait, Close"; + 173 = "SR Door Open Power 2 Key, Wait, Close"; + 176 = "SR Door Open Power 3 Key, Wait, Close"; + 194 = "S1 Door Open Give QT1, Freed Prisoners"; + 171 = "S1 Door Open Prison Key & Stay"; + 222 = "SR Door Open Factory Key, Wait, Close"; + 192 = "SR Door Open WareHouse Key, Wait, Close"; + 229 = "SR Door Open Sliding SigilE (special texture)"; + 197 = "W1 Door Close Fast Sigil B"; + 227 = "W1 Door Close Quest"; + 174 = "W1 Door Open Split, floor down, ceiling up"; + 189 = "S1 Door Open Split Oracle Key"; + 233 = "S1 Door Open Split, Blackbird Message"; + 235 = "S1 Door Open Split Sigil E"; + 199 = "S1 Ceiling Crush Quest Factory, give Stats"; + 179 = "W1 Ceiling Lower to floor"; + 180 = "G1 Floor Raise 512 match adjacent text/type"; + 181 = "S1 Floor Raise 512 match adjacent text/type"; + 183 = "W1 Floor Raise High Lower Ceiling Low Adj Instant"; + 193 = "W1 Floor Lower Quest/DM"; + 219 = "S1 Floor Lower Red Crystal"; + 220 = "S1 Floor Lower Blue Crystal"; + 226 = "S1 Floor Lower to low adj, give Stat Bonus"; + 212 = "S1 Floor Lower to nearest Comm Unit?"; + 214 = "SR Floor Lower for 30 sec, raise back up"; + 146 = "S1 Stairs Lower"; + 209 = "S1 Stairs Lower Chalice"; + 178 = "W1 Stairs Lower"; + 184 = "WR Lift Raise, Wait, Lower"; + 154 = "SR Lift Lower Gold Key, Wait, Raise"; + 155 = "SR Lift Raise, Wait, Lower"; + 177 = "SR Lift Lower Power 3 Key, Wait, Up"; + 182 = "G1 Misc Break Screen"; + 185 = "WR Teleport Target Silent"; + 231 = "WR Teleport Target InSou"; + 195 = "MR Teleport Silent, Change Zombie"; + 150 = "WR Sound Alarm Claxon "; + 198 = "WR Sound Alarm without Guard Uniform"; + 175 = "W1 Sound Alarm below 16"; + //196 = "** This linedef type do anything?"; + 206 = "W1 Sound Alarm Chalice"; + 218 = "W1 Misc Clear NonBlock Quest?"; + 201 = "SR Sound Play Sound?"; + 211 = "S1 Sound Play Sound?"; + 202 = "W1 Sound Activate Comm Unit+tag=VOC#"; + 210 = "W1 Sound Activate Comm Unit+tag=????"; + 215 = "W1 Sound Play Quest Sound?"; + 203 = "WR Sound Play Music+tag=mus#"; + 204 = "W1 Sound Play Music+tag=mus#"; + 228 = "W1 Sound Play Entity Voice"; + 666 = "SR Misc Push Wall (may not work right)"; + 142 = " Scroll Texture Up"; + 143 = " Scroll Texture Down Fast"; + 149 = " Scroll Texture Right"; + 148 = " ForceField (remove with 147)"; + 145 = "WR Exit Teleport to New Map Thing, tag=map&spot"; + 186 = "WR Exit Teleport to New Map Thing 1-Way, tag=map&spot"; + 147 = "SR ForceField Remove Around Tagged Sector"; + 208 = "W1 Sound Trigger Alarm Comm?"; + 187 = "W1 ForceField Clear CrystalDestroyed/DM"; + 165 = "DR Misc That Doesn't Seem to Work"; + 205 = "DR Misc Area Only in Retail Version"; +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Standing"; + 16 = "Multiplayer"; + 32 = "Unknown (32)"; + 64 = "Ally"; + 128 = "Unknown (128)"; + 256 = "Translucent"; + 512 = "Modify visibility"; +} + +// 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 +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 18; + sort = 1; + + 1 = "Player 1 Tan start"; + 2 = "Player 2 Red start"; + 3 = "Player 3 Rust start"; + 4 = "Player 4 Gray start"; + 5 = "Player 5 DGreen start"; + 6 = "Player 6 Gold start"; + 7 = "Player 7 BGreen start"; + 8 = "Player 8 Blue start"; + 11 = "Player Deathmatch start"; + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 18; + sort = 1; + + 14 = "Teleport Destination"; + 23 + { + title = "Teleport Swirl"; + width = 20; + } + 118 = "Teleport New Map Spot 1"; + 119 = "Teleport New Map Spot 2"; + 120 = "Teleport New Map Spot 3"; + 121 = "Teleport New Map Spot 4"; + 122 = "Teleport New Map Spot 5"; + 123 = "Teleport New Map Spot 6"; + 124 = "Teleport New Map Spot 7"; + 125 = "Teleport New Map Spot 8"; + 126 = "Teleport New Map Spot 9"; + 127 = "Teleport New Map Spot 10"; + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 24; + sort = 1; + + 3002 = "Acolyte 1 Tan"; + 142 = "Acolyte 2 Red"; + 143 = "Acolyte 3 Rust"; + 146 = "Acolyte 4 Gray"; + 147 = "Acolyte 5 Dark Green"; + 148 = "Acolyte 6 Gold"; + 232 = "Acolyte 7 Bright Green"; + 231 = "Acolyte 8 Blue"; + 58 = "Shadow Acolyte"; + 3006 + { + title = "Sentinel"; + width = 23; + } + 186 + { + title = "Stalker"; + width = 31; + } + 27 + { + title = "Ceiling Turret"; + width = 20; + } + 3001 + { + title = "Reaver"; + width = 20; + } + 3005 + { + title = "Crusader"; + width = 40; + } + 3003 + { + title = "Templar"; + width = 20; + } + 16 + { + title = "Inquisitor"; + width = 40; + } + 71 + { + title = "Programmer"; + width = 45; + } + 187 + { + title = "Bishop"; + width = 40; + } + 12 + { + title = "Loremaster"; + width = 15; + } + 129 + { + title = "Specter A"; + width = 64; + } + 75 = "Specter B"; + 76 = "Specter C - put with Oracle"; + 167 = "Specter D"; + 168 = "Specter E"; + 26 + { + title = "Entity Nest"; + width = 84; + } + 198 + { + title = "Entity Pod"; + width = 25; + } + 128 + { + title = "Entity"; + width = 130; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + + 10 + { + title = "Teleport Beacon"; + width = 16; + } + 2001 = "Crossbow"; + 2002 = "Assault Gun"; + 2006 = "Assault Gun standing"; + 2003 = "Mini-Missile Launcher"; + 154 = "Grenade Launcher"; + 2005 = "Flame Thrower"; + 2004 = "Mauler"; + 77 = "Sigil A lightning strike"; + 78 = "Sigil B rail lightning shot"; + 79 = "Sigil C spread shot"; + 80 = "Sigil D column shot"; + 81 = "Sigil E big blast"; + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 20; + sort = 1; + + 183 = "Ammo Satchel"; + 114 = "Electric Bolts"; + 115 = "Poison Arrows"; + 2007 = "Bullet Clip"; + 2048 = "Box of Bullets"; + 2010 = "Missiles"; + 2046 = "Crate of Missiles"; + 152 = "HE Grenades"; + 153 = "Phosphorous Grenades"; + 84 = "Gas Grenade (demo exe only)"; + 2047 = "Energy Pod"; + 17 = "Energy Pack"; + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 20; + sort = 1; + + 2011 = "Med patch"; + 2012 = "Medikit"; + 2018 = "Leather Armor"; + 2019 = "Leather Armor"; + 83 = "Surgery Kit"; + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + + 2024 = "Shadow Armor"; + 2025 = "Environmental Suit"; + 207 = "Targeter"; + 2026 = "Map"; + 2027 = "Scanner/Map-Radar"; + } + + quests + { + color = 13; // Light Magenta + arrow = 0; + title = "Quest things"; + width = 20; + sort = 1; + + 45 = "Gates (Piston)"; + 182 + { + title = "Computer"; + width = 26; + } + 220 + { + title = "Power Coupling (Only 1)"; + width = 17; + } + 226 + { + title = "Broken Power Coupling (Only 1)"; + width = 16; + } + 205 + { + title = "Offering Chalice"; + width = 10; + } + 90 = "Guard Uniform-gives token"; + 52 = "Officer Uniform-no alarm"; + 206 = "Communicator"; + 93 = "Gold Coin"; + 138 = "10 Gold"; + 139 = "25 Gold"; + 140 = "50 Gold"; + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 20; + sort = 1; + + 13 = "Gold ID Badge"; + 184 = "Blue ID Card"; + 185 = "Travel Passcard"; + 39 = "Brass Key"; + 38 = "Silver Key"; + 40 = "Gold Key"; + 195 = "Chapel Key"; + 230 = "Base Key (Front)"; + 233 = "Mauler Key"; + 234 = "Factory Key"; + 236 = "Core Key"; + 235 = "Mine Key"; + 86 = "Order Key"; + 166 = "Warehouse Key"; + 91 = "Severed Hand"; + 61 = "Oracle Key"; + 192 = "Red Crystal Key"; + 193 = "Blue Crystal Key"; + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 20; + sort = 1; + + 24 = "Claxon warning light"; + 70 + { + title = "Burning Barrel"; + width = 16; + } + 28 = "Cage Light"; + 34 = "Candle"; + 35 + { + title = "Candelabra"; + width = 16; + } + 43 + { + title = "Outside Lamp"; + width = 3; + } + 46 + { + title = "Pole Lantern"; + width = 3; + } + 107 + { + title = "Small Burning Torch"; + width = 0; + } + 108 + { + title = "Small Unlit Torch"; + width = 0; + } + 111 + { + title = "Medium Torch"; + width = 4; + } + 47 + { + title = "Large Torch"; + width = 10; + } + 50 + { + title = "Huge Torch"; + width = 10; + } + 95 + { + title = "Silver Flourescent Light"; + width = 4; + } + 96 + { + title = "Brass Flourescent Light"; + width = 4; + } + 97 + { + title = "Gold Flourescent Light"; + width = 4; + } + 105 + { + title = "Burning Bowl"; + width = 16; + } + 106 + { + title = "Burning Brazier"; + width = 10; + } + 196 + { + title = "Silver Tech Lamp"; + width = 11; + } + 197 + { + title = "Brass Tech Lamp"; + width = 8; + } + 2028 + { + title = "Globe Light"; + width = 16; + } + 225 + { + title = "Alien Spider Light"; + width = 32; + } + } + + decoration + { + color = 11; // light cyan + arrow = 0; + title = "Decorations"; + width = 20; + sort = 1; + + 216 + { + title = "Sigil Banner"; + width = 24; + } + 85 + { + title = "Rat"; + width = 10; + } + 82 + { + title = "Wooden Barrel"; + width = 10; + } + 117 = "Surgery Crab"; + 68 + { + title = "Tray"; + width = 24; + } + 217 = "Rebel Boots"; + 218 = "Rebel Helmet"; + 219 = "Rebel Shirt"; + 208 + { + title = "Practice Target"; + width = 10; + } + 194 + { + title = "Anvil"; + width = 16; + } + 228 + { + title = "Ammo Filler"; + width = 12; + } + 109 = "Ceiling Chain"; + 112 = "Fountain"; + 53 = "Ceiling Water Drip"; + 103 = "Floor Water Drip"; + 104 = "Waterfall Splash"; + 164 = "Mug"; + 2014 = "Water Bottle"; + 165 + { + title = "Pot"; + width = 12; + } + 190 = "Metal Pot"; + 188 + { + title = "Pitcher"; + width = 12; + } + 189 + { + title = "Stool"; + width = 6; + } + 191 = "Tub"; + } + + trees + { + color = 3; // Cyan + arrow = 0; + title = "Trees and Rocks"; + width = 16; + sort = 1; + + 33 + { + title = "Tree Stub"; + width = 15; + } + 51 + { + title = "Palm Tree"; + width = 15; + } + 202 + { + title = "Big Tree"; + width = 15; + } + 203 + { + title = "Potted Tree"; + width = 15; + } + 60 + { + title = "Short Bush"; + width = 15; + } + 62 + { + title = "Tall Bush"; + width = 20; + } + 215 + { + title = "Stick in Water"; + width = 20; + } + 98 = "Stalactite"; + 161 = "Small Stalactite"; + 160 = "Stalacmite"; + 163 = "Stalacmite Small"; + 159 = "Cave Pillar Top"; + 162 = "Cave Pillar Bottom"; + 99 + { + title = "Rock 1"; + width = 20; + } + 100 + { + title = "Rock 2"; + width = 20; + } + 101 + { + title = "Rock 3"; + width = 20; + } + 102 + { + title = "Rock 4"; + width = 20; + } + 29 + { + title = "Rubble 1"; + width = 20; + } + 30 + { + title = "Rubble 2"; + width = 20; + } + 31 + { + title = "Rubble 3"; + width = 20; + } + 32 + { + title = "Rubble 4"; + width = 20; + } + 36 + { + title = "Rubble 5"; + width = 20; + } + 37 + { + title = "Rubble 6"; + width = 20; + } + 41 + { + title = "Rubble 7"; + width = 20; + } + 42 + { + title = "Rubble 8"; + width = 20; + } + } + + pillars + { + color = 3; // Cyan + arrow = 0; + title = "Pillars"; + width = 20; + sort = 1; + + 69 + { + title = "Barricade Column"; + width = 16; + } + 63 = "Chimneystack"; + 48 = "Techno Pillar"; + 54 + { + title = "Aztec Pillar"; + width = 16; + } + 55 + { + title = "Damaged Aztec Pillar"; + width = 16; + } + 56 + { + title = "Ruined Aztec Pillar"; + width = 16; + } + 57 + { + title = "Huge Tech Pillar"; + width = 24; + } + 227 + { + title = "Huge Alien Pillar"; + width = 24; + } + 110 = "Statue"; + 44 = "Ruined Statue"; + 221 + { + title = "Alien Bubble Column"; + width = 16; + } + 222 + { + title = "Alien Floor Bubble"; + width = 16; + } + 223 + { + title = "Alien Ceiling Bubble"; + width = 16; + } + 224 + { + title = "Alien Asp Climber"; + width = 16; + } + } + + corpses + { + color = 4; // Red + arrow = 0; + title = "Corpses"; + width = 16; + sort = 1; + + 15 + { + title = "Dead Player, disappears"; + width = 20; + } + 18 + { + title = "Dead Peasant, disappears"; + width = 20; + } + 19 + { + title = "Dead Rebel"; + width = 20; + } + 20 + { + title = "Dead Reaver"; + width = 20; + } + 21 + { + title = "Dead Acolyte, disappears"; + width = 20; + } + 22 + { + title = "Dead Crusader"; + width = 20; + } + 212 + { + title = "Sacrificed Guy"; + width = 20; + } + 113 = "Hearts in Tank"; + 209 = "Huge Tank 1 has skeleton"; + 210 = "Huge Tank 2"; + 211 = "Huge Tank 3"; + 213 = "Tank 4 spine with organs"; + 214 = "Tank 5 Stumpy the Acolyte"; + 229 = "Tank 6 Specter"; + } + + rebels + { + color = 4; // Red + arrow = 0; + title = "Rebels"; + width = 20; + sort = 1; + + 9 = "Rebel 1 (summoned by beacon)"; + 144 = "Rebel 2"; + 145 = "Rebel 3"; + 149 = "Rebel 4"; + 150 = "Rebel 5"; + 151 = "Rebel 6"; + 64 = "Macil 1 Invincible (Map03,34)"; + 200 = "Macil 2 S (Map10)"; + } + + peasants + { + color = 4; // Red + arrow = 0; + title = "Peasants"; + width = 20; + sort = 1; + + 3004 = "Peasant Tan 1"; + 130 = "Peasant Tan 2"; + 131 = "Peasant Tan 3"; + 65 = "Peasant Red 1 (2,33 Harris/23 Tevick)"; + 132 = "Peasant Red 2 (4 Derwin/33 Harris)"; + 133 = "Peasant Red 3 (4 Worner)"; + 67 = "Peasant Rust 1 (2 Rowan)"; + 136 = "Peasant Rust 2 (2 Geoff)"; + 137 = "Peasant Rust 3 (4 Technician)"; + 66 = "Peasant Gray 1 (4 Ketrick/5 Warden/17 Medic)"; + 134 = "Peasant Gray 2 (4 Sammis/5 Judge)"; + 135 = "Peasant Gray 3 (1 Beldin)"; + 172 = "Peasant DGreen 1 (2 Irale/23 Richter)"; + 173 = "Peasant DGreen 2 (6 Weran the Rat King)"; + 174 = "Peasant DGreen 3 (4 Computer Tech)"; + 178 = "Peasant Gold 1 (11 Key Master/31 False Prg)"; + 179 = "Peasant Gold 2"; + 180 = "Peasant Gold 3"; + 175 = "Peasant BGreen 1 (7 False Programmer)"; + 176 = "Peasant BGreen 2"; + 177 = "Peasant BGreen 3"; + 181 = "Peasant Blue (2,33 Governor/8 False Prgr)"; + } + + npcs + { + color = 4; // Red + arrow = 0; + title = "Other NPC's"; + width = 20; + sort = 1; + + 141 = "Beggar 1 (Map01 MacGuffin/32 Prisoner)"; + 155 = "Beggar 2"; + 156 = "Beggar 3"; + 157 = "Beggar 4"; + 158 = "Beggar 5"; + 204 + { + title = "Kneeling Guy"; + width = 6; + } + 169 = "Zombie"; + 170 = "Zombie Spawner"; + 201 = "Becoming Acolyte"; + 72 = "Bar Keep 1 Gold (Map02,23,33)"; + 73 = "Armorer 2 Bright Green (Map02,23,33/10)"; + 74 = "Medic 3 Blue (Map02,23,33/03,10/17)"; + 116 = "Weapon Smith 4 Tan (Map02,23,33/03,10)"; + 199 + { + title = "Oracle (Map12)"; + width = 15; + } + } + + hints + { + color = 13; // Light Magenta + arrow = 0; + title = "Explosives and Hints"; + width = 20; + sort = 1; + + 94 + { + title = "Explosive Barrel"; + width = 10; + } + 92 = "PowerCrystal-LowSect128Lt0"; + 59 + { + title = "Degnin Ore - for FFG"; + width = 16; + } + 25 + { + title = "Force Field Guard - use ore"; + width = 2; + } + 9001 = "Label Hint 1"; + 9002 = "Label Hint 2"; + 9003 = "Label Hint 3"; + 9004 = "Label Hint 4"; + 9005 = "Label Hint 5"; + 9006 = "Label Hint 6"; + } +} diff --git a/Build/Configurations/UltDoom.cfg b/Build/Configurations/UltDoom.cfg new file mode 100644 index 00000000..341aebe3 --- /dev/null +++ b/Build/Configurations/UltDoom.cfg @@ -0,0 +1,1172 @@ +/*************************************************************\ + Doom Builder Game Configuration for Ultimate Doom +\*************************************************************/ + +// This is the title to show for this game +game = "Ultimate Doom"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 0; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 0; E1M2 = 0; E1M3 = 0; E1M4 = 0; E1M5 = 0; E1M6 = 0; E1M7 = 0; E1M8 = 0; E1M9 = 0; + E2M1 = 0; E2M2 = 0; E2M3 = 0; E2M4 = 0; E2M5 = 0; E2M6 = 0; E2M7 = 0; E2M8 = 0; E2M9 = 0; + E3M1 = 0; E3M2 = 0; E3M3 = 0; E3M4 = 0; E3M5 = 0; E3M6 = 0; E3M7 = 0; E3M8 = 0; E3M9 = 0; + E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1; + MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2; + MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2; + MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2; + MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 16 = "Damage -10 or 20% health"; + 17 = "Light Flickers (randomly)"; +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "WR Door Open Wait Close (fast)"; + 106 = "WR Door Open Stay (fast)"; + 107 = "WR Door Close Stay (fast)"; + 108 = "W1 Door Open Wait Close (fast)"; + 109 = "W1 Door Open Stay (fast)"; + 110 = "W1 Door Close (fast)"; + 111 = "S1 Door Open Wait Close (fast)"; + 112 = "S1 Door Open Stay (fast)"; + 113 = "S1 Door Close Stay (fast)"; + 114 = "SR Door Open Wait Close (fast)"; + 115 = "SR Door Open Stay (fast)"; + 116 = "SR Door Close Stay (fast)"; + 117 = "DR Door Open Wait Close (fast)"; + 118 = "D1 Door Open Stay (fast)"; + 119 = "W1 Floor Raise to Next Higher Floor"; + 120 = "WR Lift Lower Wait Raise (fast)"; + 121 = "W1 Lift Lower Wait Raise (fast)"; + 122 = "S1 Lift Lower Wait Raise (fast)"; + 123 = "SR Lift Lower Wait Raise (fast)"; + 124 = "W1 Exit Level (goes to secret level)"; + 125 = "W1 Teleport (monsters only)"; + 126 = "WR Teleport (monsters only)"; + 127 = "S1 Stairs Raise by 16 (fast)"; + 128 = "WR Floor Raise to Next Higher Floor"; + 129 = "WR Floor Raise to Next Higher Floor (fast)"; + 130 = "W1 Floor Raise to Next Higher Floor (fast)"; + 131 = "S1 Floor Raise to Next Higher Floor (fast)"; + 132 = "SR Floor Raise to Next Higher Floor (fast)"; + 133 = "S1 Door (Blue) Open Stay (fast)"; + 134 = "SR Door (Red) Open Stay (fast)"; + 135 = "S1 Door (Red) Open Stay (fast)"; + 136 = "SR Door (Yellow) Open Stay (fast)"; + 137 = "S1 Door (Yellow) Open Stay (fast)"; + 138 = "SR Light Change to Brightest"; + 139 = "SR Light Change to Darkest"; + 140 = "S1 Floor Raise by 512"; + 141 = "W1 Crusher Start with Slow Damage (silent)"; +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; +} + +// 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 +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 0; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + + + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + + + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + + + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + + + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + + + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + + + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + + + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + + + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDG2G8"; + height = 100; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + hangs = 0; + blocking = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 1; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 1; + + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + + + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + + + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + + + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + + + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 1; + } + + + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + + + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 1; + } + + + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 1; + } + + + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 1; + } + + + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 1; + } + + + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 1; + } + + + 10 + { + title = "Bloody mess"; + sprite = "PLAYW0"; + } + + + 12 + { + title = "Bloody mess"; + sprite = "PLAYW0"; + } + + + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + + + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + + + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + + + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + + + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + + + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + + + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + + + 23 = "Dead lost soul"; + } +} \ No newline at end of file diff --git a/Build/Configurations/ZDoom_Doom.cfg b/Build/Configurations/ZDoom_Doom.cfg new file mode 100644 index 00000000..11c07849 --- /dev/null +++ b/Build/Configurations/ZDoom_Doom.cfg @@ -0,0 +1,2083 @@ +/*************************************************************\ + Doom Builder Game Configuration for ZDoom (Doom format) +\*************************************************************/ + +// This is the title to show for this game +game = "ZDoom (Doom in Doom format)"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// Engine specific features +mixtexturesflats = 1; + +// No generalized types +generalizedlinedefs = 1; +generalizedsectors = 1; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ + zdoom1 + { + start = "TX_START"; + end = "TX_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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 12; + BLOCKMAP = 4; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 16 = "Damage -10 or 20% health"; + 17 = "Light Flickers (randomly)"; + 21 = "Light Phased"; + 22 = "Light Sequence Start"; + 23 = "Light Sequence Special 1"; + 24 = "Light Sequence Special 2"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt"; + 69 = "Damage Hellslime"; + 71 = "Damage Nukage"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 80 = "Damage Super Hellslime"; + 81 = "Light Fire Flicker"; +} + +// GENERALIZED SECTOR TYPES +gen_sectortypes +{ + lighting + { + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Light Blinks (0.5 sec) and Damage 10 or 20"; + 8 = "Light Glows (1+ sec)"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 17 = "Light Flickers (randomly)"; + } + + damage + { + 0 = "None"; + 256 = "Damage 5 per second"; + 512 = "Damage 10 per second"; + 768 = "Damage 20 per second"; + } + + secret + { + 0 = "No"; + 1024 = "Yes"; + } + + friction + { + 0 = "Disabled"; + 2048 = "Enabled"; + } + + pusher + { + 0 = "Disabled"; + 4096 = "Enabled"; + } +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "PassThru"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 78 = "SR Change Texture and Effect to Nearest"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 85 = " Scroll Texture Right"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 99 = "SR Door (Blue) Open Stay (fast)"; + 100 = "W1 Stairs Raise by 16 (fast)"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "WR Door Open Wait Close (fast)"; + 106 = "WR Door Open Stay (fast)"; + 107 = "WR Door Close Stay (fast)"; + 108 = "W1 Door Open Wait Close (fast)"; + 109 = "W1 Door Open Stay (fast)"; + 110 = "W1 Door Close (fast)"; + 111 = "S1 Door Open Wait Close (fast)"; + 112 = "S1 Door Open Stay (fast)"; + 113 = "S1 Door Close Stay (fast)"; + 114 = "SR Door Open Wait Close (fast)"; + 115 = "SR Door Open Stay (fast)"; + 116 = "SR Door Close Stay (fast)"; + 117 = "DR Door Open Wait Close (fast)"; + 118 = "D1 Door Open Stay (fast)"; + 119 = "W1 Floor Raise to Next Higher Floor"; + 120 = "WR Lift Lower Wait Raise (fast)"; + 121 = "W1 Lift Lower Wait Raise (fast)"; + 122 = "S1 Lift Lower Wait Raise (fast)"; + 123 = "SR Lift Lower Wait Raise (fast)"; + 124 = "W1 Exit Level (goes to secret level)"; + 125 = "W1 Teleport (monsters only)"; + 126 = "WR Teleport (monsters only)"; + 127 = "S1 Stairs Raise by 16 (fast)"; + 128 = "WR Floor Raise to Next Higher Floor"; + 129 = "WR Floor Raise to Next Higher Floor (fast)"; + 130 = "W1 Floor Raise to Next Higher Floor (fast)"; + 131 = "S1 Floor Raise to Next Higher Floor (fast)"; + 132 = "SR Floor Raise to Next Higher Floor (fast)"; + 133 = "S1 Door (Blue) Open Stay (fast)"; + 134 = "SR Door (Red) Open Stay (fast)"; + 135 = "S1 Door (Red) Open Stay (fast)"; + 136 = "SR Door (Yellow) Open Stay (fast)"; + 137 = "S1 Door (Yellow) Open Stay (fast)"; + 138 = "SR Light Change to Brightest"; + 139 = "SR Light Change to Darkest"; + 140 = "S1 Floor Raise by 512"; + 141 = "W1 Crusher Start with Slow Damage (silent)"; + 142 = "W1 Floor Raise by 512"; + 143 = "W1 Lift Raise by 24 (changes texture)"; + 144 = "W1 Lift Raise by 24 (remove effect)"; + 145 = "W1 Ceiling Lower to Floor (fast)"; + 146 = "W1 Donut Raise"; + 147 = "WR Floor Raise by 512"; + 148 = "WR Lift Raise by 24 (changes texture)"; + 149 = "WR Lift Raise by 24 (remove effect)"; + 150 = "WR Crusher Start (silent)"; + 151 = "WR Ceiling Raise to Highest Ceiling"; + 152 = "WR Ceiling Lower to Floor (fast)"; + 153 = "W1 Change Texture And Effect"; + 154 = "WR Change Texture And Effect"; + 155 = "WR Donut Raise"; + 156 = "WR Light Start Blinking"; + 157 = "WR Light Change to Darkest"; + 158 = "S1 Floor Raise by Shortest Lower Texture"; + 159 = "S1 Floor Lower to Lowest Floor"; + 160 = "S1 Floor Raise by 24 (changes texture and effect)"; + 161 = "S1 Floor Raise by 24"; + 162 = "S1 Lift Perpetual Lowest and Highest Floors"; + 163 = "S1 Lift Stop"; + 164 = "S1 Crusher Start (fast)"; + 165 = "S1 Crusher Start (silent)"; + 166 = "S1 Ceiling Raise to Highest Ceiling"; + 167 = "S1 Ceiling Lower to 8 Above Floor"; + 168 = "S1 Crusher Stop"; + 169 = "S1 Light Change to Brightest"; + 170 = "S1 Light Change to 35"; + 171 = "S1 Light Change to 255"; + 172 = "S1 Light Start Blinking"; + 173 = "S1 Light Change to Darkest"; + 174 = "S1 Teleport (also monsters)"; + 175 = "S1 Door Close Wait Open (30 seconds)"; + 176 = "SR Floor Raise by Shortest Lower Texture"; + 177 = "SR Floor Lower to Lowest Floor"; + 178 = "SR Floor Raise by 512"; + 179 = "SR Floor Raise by 24 (changes texture and effect)"; + 180 = "SR Floor Raise by 24"; + 181 = "SR Lift Perpetual Lowest and Highest Floors"; + 182 = "SR Lift Stop"; + 183 = "SR Crusher Start (fast)"; + 184 = "SR Crusher Start"; + 185 = "SR Crusher Start (silent)"; + 186 = "SR Ceiling Raise to Highest Ceiling"; + 187 = "SR Ceiling Lower to 8 Above Floor"; + 188 = "SR Crusher Stop"; + 189 = "S1 Change Texture And Effect"; + 190 = "SR Change Texture And Effect"; + 191 = "SR Donut Raise"; + 192 = "SR Light Change to Brightest"; + 193 = "SR Light Start Blinking"; + 194 = "SR Light Change to Darkest"; + 195 = "SR Teleport (also monsters)"; + 196 = "SR Door Close Wait Open (30 seconds)"; + 197 = "G1 Exit Level"; + 198 = "G1 Exit Level (goes to secret level)"; + 199 = "W1 Ceiling Lower to Lowest Ceiling"; + 200 = "W1 Ceiling Lower to Highest Floor"; + 201 = "WR Ceiling Lower to Lowest Ceiling"; + 202 = "WR Ceiling Lower to Highest Floor"; + 203 = "S1 Ceiling Lower to Lowest Ceiling"; + 204 = "S1 Ceiling Lower to Highest Floor"; + 205 = "SR Ceiling Lower to Lowest Ceiling"; + 206 = "SR Ceiling Lower to Highest Floor"; + 207 = "W1 Teleport (also monsters, silent, same angle)"; + 208 = "WR Teleport (also monsters, silent, same angle)"; + 209 = "S1 Teleport (also monsters, silent, same angle)"; + 210 = "SR Teleport (also monsters, silent, same angle)"; + 211 = "SR Lift Raise to Ceiling (instantly)"; + 212 = "WR Lift Raise to Ceiling (instantly)"; + 213 = " Floor Change Brightness to this Brightness"; + 214 = " Scroll Ceiling Accelerates when Sector Changes Height"; + 215 = " Scroll Floor Accelerates when Sector Changes Height"; + 216 = " Scroll Things Accelerates when Sector Changes Height"; + 217 = " Scroll Floor/Things Accelerates when Sector Changes Height"; + 218 = " Scroll Wall Accelerates when Sector Changes Height"; + 219 = "W1 Floor Lower to Nearest Floor"; + 220 = "WR Floor Lower to Nearest Floor"; + 221 = "S1 Floor Lower to Nearest Floor"; + 222 = "SR Floor Lower to Nearest Floor"; + 223 = " Friction Tagged Sector: Drag < 100, Slide > 100"; + 224 = " Wind according to Line Vector"; + 225 = " Current according to Line Vector"; + 226 = " Wind/Current by Push/Pull Thing In Sector"; + 227 = "W1 Lift Raise to Next Highest Floor (fast)"; + 228 = "WR Lift Raise to Next Highest Floor (fast)"; + 229 = "S1 Lift Raise to Next Highest Floor (fast)"; + 230 = "SR Lift Raise to Next Highest Floor (fast)"; + 231 = "W1 Lift Lower to Next Lowest Floor (fast)"; + 232 = "WR Lift Lower to Next Lowest Floor (fast)"; + 233 = "S1 Lift Lower to Next Lowest Floor (fast)"; + 234 = "SR Lift Lower to Next Lowest Floor (fast)"; + 235 = "W1 Lift Move to Same Floor Height (fast)"; + 236 = "WR Lift Move to Same Floor Height (fast)"; + 237 = "S1 Lift Move to Same Floor Height (fast)"; + 238 = "SR Lift Move to Same Floor Height (fast)"; + 239 = "W1 Change Texture and Effect to Nearest"; + 240 = "WR Change Texture and Effect to Nearest"; + 241 = "S1 Change Texture and Effect to Nearest"; + 242 = " Create Fake Ceiling and Floor"; + 243 = "W1 Teleport to Line With Same Tag (silent, same angle)"; + 244 = "WR Teleport to Line With Same Tag (silent, same angle)"; + 245 = " Scroll Ceiling when Sector Changes Height"; + 246 = " Scroll Floor when Sector Changes Height"; + 247 = " Scroll Move Things when Sector Changes Height"; + 248 = " Scroll Floor/Move Things when Sector Changes Height"; + 249 = " Scroll Wall when Sector Changes Height"; + 250 = " Scroll Ceiling according to Line Vector"; + 251 = " Scroll Floor according to Line Vector"; + 252 = " Scroll Move Things according to Line Vector"; + 253 = " Scroll Floor, Move Things"; + 254 = " Scroll Wall according to Line Vector"; + 255 = " Scroll Wall using Sidedef Offsets"; + 256 = "WR Stairs Raise by 8"; + 257 = "WR Stairs Raise by 16 (fast)"; + 258 = "SR Stairs Raise by 8"; + 259 = "SR Stairs Raise by 16 (fast)"; + 260 = " Translucent"; + 261 = " Ceiling Brightness to this Brightness"; + 262 = "W1 Teleport to Line With Same Tag (silent, reversed angle)"; + 263 = "WR Teleport to Line With Same Tag (silent, reversed angle)"; + 264 = "W1 Teleport to Line With Same Tag (also monsters, silent, reversed angle)"; + 265 = "WR Teleport to Line With Same Tag (also monsters, reversed angle)"; + 266 = "W1 Teleport to Line With Same Tag (monsters only, silent)"; + 267 = "WR Teleport to Line With Same Tag (monsters only, silent)"; + 268 = "W1 Teleport (monsters only, silent)"; + 269 = "WR Teleport (monsters only, silent)"; + 271 = " Transfer Sky Texture to Tagged Sectors"; + 272 = " Transfer Sky Texture to Tagged Sectors (flipped)"; + + 340 = " Plane Align Floor at front"; + 341 = " Plane Align Ceiling at front"; + 342 = " Plane Align Floor and Ceiling at front"; + 343 = " Plane Align Floor at back"; + 344 = " Plane Align Ceiling at back"; + 345 = " Plane Align Floor and Ceiling at back"; + 346 = " Plane Align Floor at back and Ceiling at front"; + 347 = " Plane Align Floor at front and Ceiling at back"; +} + +// GENERALIZED LINEDEF TYPES +gen_linedeftypes +{ + normal + { + title = "Normal"; + offset = 0; + length = 0; + } + + floors + { + title = "Floor"; + offset = 24576; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Floor"; + 128 = "Lowest Adjacent Floor"; + 256 = "Next Adjacent Floor"; + 384 = "Lowest Adjacent Ceiling"; + 512 = "Ceiling"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + ceilings + { + title = "Ceiling"; + offset = 16384; + length = 8192; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 64 = "Up"; + } + + target + { + 0 = "Highest Adjacent Ceiling"; + 128 = "Lowest Adjacent Ceiling"; + 256 = "Next Adjacent Ceiling"; + 384 = "Highest Adjacent Floor"; + 512 = "Floor"; + 640 = "Shortest Lower Texture"; + 768 = "24 Map Pixels (relative)"; + 896 = "32 Map Pixels (relative)"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + model + { + 0 = "Trigger"; + 32 = "Numeric"; + } + + change + { + 0 = "None"; + 1024 = "Change Texture and Remove Effect"; + 2048 = "Change Texture Only"; + 3072 = "Change Texture and Effect"; + } + + crusher + { + 0 = "No"; + 4096 = "Yes"; + } + } + + doors + { + title = "Door"; + offset = 15360; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + 64 = "Close Wait Open"; + 96 = "Close Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + wait + { + 0 = "1 Second"; + 256 = "4 Seconds"; + 512 = "9 Seconds"; + 768 = "30 Seconds"; + } + + monsters + { + 0 = "No"; + 128 = "Yes"; + } + } + + lockeddoors + { + title = "Locked Door"; + offset = 14336; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + action + { + 0 = "Open Wait Close"; + 32 = "Open Only"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + lock + { + 0 = "Any"; + 64 = "Red Keycard"; + 128 = "Blue Keycard"; + 192 = "Yellow Keycard"; + 256 = "Red Skullkey"; + 320 = "Blue Skullkey"; + 384 = "Yellow Skullkey"; + 448 = "All"; + } + + combination + { + 0 = "No (each is a different key)"; + 512 = "Keycard and Skullkey are same"; + } + } + + lifts + { + title = "Lift"; + offset = 13312; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + target + { + 0 = "Lowest adjacent Floor"; + 256 = "Next adjacent Floor"; + 512 = "Lowest adjacent Ceiling"; + 768 = "Perpetual Lowest and Highest Floors"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + delay + { + 0 = "1 Second"; + 64 = "3 Seconds"; + 128 = "5 Seconds"; + 192 = "10 Seconds"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + stairs + { + title = "Stairs"; + offset = 12288; + length = 1024; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + direction + { + 0 = "Down"; + 256 = "Up"; + } + + step + { + 0 = "4 Map Pixels"; + 64 = "8 Map Pixels"; + 128 = "16 Map Pixels"; + 192 = "24 Map Pixels"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + break + { + 0 = "At different texture"; + 512 = "No"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } + + crushers + { + title = "Crusher"; + offset = 12160; + length = 128; + + trigger + { + 0 = "Walk Over Once"; + 1 = "Walk Over Repeatable"; + 2 = "Switch Once"; + 3 = "Switch Repeatable"; + 4 = "Gunfire Once"; + 5 = "Gunfire Repeatable"; + 6 = "Door Once"; + 7 = "Door Repeatable"; + } + + speed + { + 0 = "Slow"; + 8 = "Normal"; + 16 = "Fast"; + 24 = "Turbo"; + } + + silent + { + 0 = "No"; + 64 = "Yes"; + } + + monsters + { + 0 = "No"; + 32 = "Yes"; + } + } +} + + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; + 32 = "Not Deathmatch"; + 64 = "Not Cooperative"; +} + + +// 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 numbers are the basic colors +// Arrow indicates if the things will have an arrow to indicate direction +// Sort: 0 = List as in configuration, 1 = List alphabetically +// Blocking: 0 = No, 1 = Completely, 2 = True-Height +// Error: +// 0 = Dont check for errors +// 1 = Must be inside map (default) +// 2 = Must be inside map and may not collide +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + error = 0; + blocking = 0; + hangs = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + error = 2; + height = 56; + hangs = 0; + blocking = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 4001 + { + title = "Player 5 start"; + sprite = "PLAYA2A8"; + } + 4002 + { + title = "Player 6 start"; + sprite = "PLAYA2A8"; + } + 4003 + { + title = "Player 7 start"; + sprite = "PLAYA2A8"; + } + 4004 + { + title = "Player 8 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + blocking = 0; + hangs = 0; + error = 1; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + 9044 + { + title = "Teleport with Z Height"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + error = 2; + blocking = 2; + height = 56; + hangs = 0; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + 69 + { + title = "Hell Knight"; + width = 24; + height = 64; + sprite = "BOS2A2C8"; + } + 3003 + { + title = "Baron of Hell"; + width = 24; + height = 64; + sprite = "BOSSA2A8"; + } + 68 + { + title = "Arachnotron"; + width = 64; + height = 64; + sprite = "BSPIA2A8"; + } + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + 67 + { + title = "Mancubus"; + width = 48; + height = 64; + sprite = "FATTC2C8"; + } + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + 16 + { + title = "Cyberdemon"; + width = 40; + height = 110; + sprite = "CYBRA2"; + } + 7 + { + title = "Spider Mastermind"; + width = 128; + height = 100; + sprite = "SPIDA2A8"; + } + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + 72 + { + title = "Commander Keen"; + width = 16; + height = 72; + hangs = 1; + sprite = "KEENA0"; + } + 88 + { + title = "Icon of Sin"; + width = 16; + height = 16; + sprite = "BBRNA0"; + } + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + 87 + { + title = "Monsters Target"; + height = 32; + } + 9050 + { + title = "Arachnotron (stealth)"; + width = 64; + height = 64; + sprite = "BSPIA2A8"; + } + 9051 + { + title = "Archvile (stealth)"; + width = 20; + sprite = "VILEA2D8"; + } + 9052 + { + title = "Baron of Hell (stealth)"; + width = 24; + height = 64; + sprite = "BOSSA2A8"; + } + 9053 + { + title = "Cacodemon (stealth)"; + width = 31; + sprite = "HEADA2A8"; + } + 9054 + { + title = "Chaingunner (stealth)"; + sprite = "CPOSA2"; + } + 9055 + { + title = "Demon (stealth)"; + width = 30; + sprite = "SARGA2A8"; + } + 9056 + { + title = "Hell Knight (stealth)"; + width = 24; + height = 64; + sprite = "BOS2A2C8"; + } + 9057 + { + title = "Imp (stealth)"; + sprite = "TROOA2A8"; + } + 9058 + { + title = "Mancubus (stealth)"; + width = 48; + height = 64; + sprite = "FATTC2C8"; + } + 9059 + { + title = "Revenant (stealth)"; + sprite = "SKELA2D8"; + } + 9060 + { + title = "Former Sergeant (stealth)"; + sprite = "SPOSA2A8"; + } + 9061 + { + title = "Former Human (stealth)"; + sprite = "POSSA2A8"; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + blocking = 0; + hangs = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + height = 20; + sort = 1; + blocking = 2; + hangs = 0; + + 2035 + { + title = "Barrel"; + width = 10; + height = 32; + sprite = "BAR1A0"; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + height = 16; + sort = 1; + blocking = 2; + hangs = 0; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + height = 16; + sort = 1; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + blocking = 2; + hangs = 1; + height = 68; + } + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + blocking = 2; + hangs = 1; + height = 84; + } + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + blocking = 2; + hangs = 1; + height = 68; + } + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + blocking = 2; + hangs = 1; + height = 84; + } + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + blocking = 2; + hangs = 1; + height = 52; + } + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 2; + } + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 2; + } + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 2; + } + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 2; + } + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 2; + } + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + 23 = "Dead lost soul"; + 73 + { + title = "Hanging victim, guts removed"; + sprite = "HDB1A0"; + height = 88; + hangs = 1; + blocking = 2; + } + 74 + { + title = "Hanging victim, guts and brain removed"; + sprite = "HDB2A0"; + height = 88; + hangs = 1; + blocking = 2; + } + 75 + { + title = "Hanging torso, looking down"; + sprite = "HDB3A0"; + height = 64; + hangs = 1; + blocking = 2; + } + 76 + { + title = "Hanging torso, open skull"; + sprite = "HDB4A0"; + height = 64; + hangs = 1; + blocking = 2; + } + 77 + { + title = "Hanging torso, looking down"; + sprite = "HDB5A0"; + height = 64; + hangs = 1; + blocking = 2; + } + 78 + { + title = "Hanging torso, brain removed"; + sprite = "HDB6A0"; + height = 64; + hangs = 1; + blocking = 2; + } + 9027 = "Red Particle Fountain"; + 9028 = "Green Particle Fountain"; + 9029 = "Blue Particle Fountain"; + 9030 = "Yellow Particle Fountain"; + 9031 = "Purple Particle Fountain"; + 9032 = "Black Particle Fountain"; + 9033 = "White Particle Fountain"; + } + + sounds + { + color = 5; // Purple + arrow = 0; + title = "Sounds"; + width = 0; + height = 0; + sort = 1; + blocking = 0; + hangs = 0; + + 1400 = "Sound Sequence 0"; + 1401 = "Sound Sequence 1"; + 1402 = "Sound Sequence 2"; + 1403 = "Sound Sequence 3"; + 1404 = "Sound Sequence 4"; + 1405 = "Sound Sequence 5"; + 1406 = "Sound Sequence 6"; + 1407 = "Sound Sequence 7"; + 1408 = "Sound Sequence 8"; + 1409 = "Sound Sequence 9"; + 1411 = "Sound Sequence 0"; + 14001 = "Ambient Sound 1"; + 14002 = "Ambient Sound 2"; + 14003 = "Ambient Sound 3"; + 14004 = "Ambient Sound 4"; + 14005 = "Ambient Sound 5"; + 14006 = "Ambient Sound 6"; + 14007 = "Ambient Sound 7"; + 14008 = "Ambient Sound 8"; + 14009 = "Ambient Sound 9"; + 14010 = "Ambient Sound 10"; + 14011 = "Ambient Sound 11"; + 14012 = "Ambient Sound 12"; + 14013 = "Ambient Sound 13"; + 14014 = "Ambient Sound 14"; + 14015 = "Ambient Sound 15"; + 14016 = "Ambient Sound 16"; + 14017 = "Ambient Sound 17"; + 14018 = "Ambient Sound 18"; + 14019 = "Ambient Sound 19"; + 14020 = "Ambient Sound 20"; + 14021 = "Ambient Sound 21"; + 14022 = "Ambient Sound 22"; + 14023 = "Ambient Sound 23"; + 14024 = "Ambient Sound 24"; + 14025 = "Ambient Sound 25"; + 14026 = "Ambient Sound 26"; + 14027 = "Ambient Sound 27"; + 14028 = "Ambient Sound 28"; + 14029 = "Ambient Sound 29"; + 14030 = "Ambient Sound 30"; + 14031 = "Ambient Sound 31"; + 14032 = "Ambient Sound 32"; + 14033 = "Ambient Sound 33"; + 14034 = "Ambient Sound 34"; + 14035 = "Ambient Sound 35"; + 14036 = "Ambient Sound 36"; + 14037 = "Ambient Sound 37"; + 14038 = "Ambient Sound 38"; + 14039 = "Ambient Sound 39"; + 14040 = "Ambient Sound 40"; + 14041 = "Ambient Sound 41"; + 14042 = "Ambient Sound 42"; + 14043 = "Ambient Sound 43"; + 14044 = "Ambient Sound 44"; + 14045 = "Ambient Sound 45"; + 14046 = "Ambient Sound 46"; + 14047 = "Ambient Sound 47"; + 14048 = "Ambient Sound 48"; + 14049 = "Ambient Sound 49"; + 14050 = "Ambient Sound 50"; + 14051 = "Ambient Sound 51"; + 14052 = "Ambient Sound 52"; + 14053 = "Ambient Sound 53"; + 14054 = "Ambient Sound 54"; + 14055 = "Ambient Sound 55"; + 14056 = "Ambient Sound 56"; + 14057 = "Ambient Sound 57"; + 14058 = "Ambient Sound 58"; + 14059 = "Ambient Sound 59"; + 14060 = "Ambient Sound 60"; + 14061 = "Ambient Sound 61"; + 14062 = "Ambient Sound 62"; + 14063 = "Ambient Sound 63"; + 14064 = "Ambient Sound 64"; + 14065 = "Ambient Sound 0"; + } + + zdoom + { + color = 7; // Light Grey + arrow = 1; + title = "ZDoom"; + width = 0; + height = 0; + sort = 1; + blocking = 0; + hangs = 0; + + 5001 = "Pusher"; + 5002 = "Puller"; + 9025 = "Camera"; + 9045 = "Deep Water"; + 9046 = "Sector Secret"; + } +} \ No newline at end of file diff --git a/Build/Configurations/ZDoom_DoomHexen.cfg b/Build/Configurations/ZDoom_DoomHexen.cfg new file mode 100644 index 00000000..0934daac --- /dev/null +++ b/Build/Configurations/ZDoom_DoomHexen.cfg @@ -0,0 +1,3616 @@ +/*************************************************************\ + Doom Builder Game Configuration for (Hexen format) +\*************************************************************/ + +// This is the title to show for this game +game = "ZDoom (Doom in Hexen format)"; + +// Map format determines the way the map will be loaded +mapformat = 2; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 1; + +// Engine specific features +mixtexturesflats = 1; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 999; + + +/* +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. +*/ + +// Texture sources +textures +{ + zdoom1 + { + start = "TX_START"; + end = "TX_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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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 = 3; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 1; MAP36 = 1; MAP37 = 1; MAP38 = 1; MAP39 = 1; MAP40 = 1; + MAP41 = 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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 12; + BLOCKMAP = 4; + BEHAVIOR = 8193; + SCRIPTS = 2; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Phased"; + 2 = "Light Sequence Start"; + 3 = "Light Sequence Special 1"; + 4 = "Light Sequence Special 2"; + 21 = "Light Phased"; + 22 = "Light Sequence Start"; + 23 = "Light Sequence Special 1"; + 24 = "Light Sequence Special 2"; + 26 = "Stairs Special 1"; + 27 = "Stairs Special 2"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt"; + 69 = "Damage Hellslime"; + 71 = "Damage Nukage"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 79 = "Low Friction"; + 80 = "Damage Super Hellslime"; + 81 = "Light Fire Flicker"; + 82 = "Damage -2 or -5% health (no protection)"; + 83 = "Damage -4 or -8% health (no protection)"; + 84 = "Scroll east + -2 or -5% health (no protection)"; + 105 = "Delayed damage weak"; + 115 = "Instant death (doesn't work in 2.0.93 yet!)"; + 116 = "Delayed damage strong"; + 118 = "Carry player by tag"; + 198 = "Light Indoor 2"; + 199 = "Light Indoor 1"; + 200 = "Sky 2 (MAPINFO)"; + 201 = "Scroll North (slow)"; + 202 = "Scroll North (medium)"; + 203 = "Scroll North (fast)"; + 204 = "Scroll East (slow)"; + 205 = "Scroll East (medium)"; + 206 = "Scroll East (fast)"; + 207 = "Scroll South (slow)"; + 208 = "Scroll South (medium)"; + 209 = "Scroll South (fast)"; + 210 = "Scroll West (slow)"; + 211 = "Scroll West (medium)"; + 212 = "Scroll West (fast)"; + 213 = "Scroll NorthWest (slow)"; + 214 = "Scroll NorthWest (medium)"; + 215 = "Scroll NorthWest (fast)"; + 216 = "Scroll NorthEast (slow)"; + 217 = "Scroll NorthEast (medium)"; + 218 = "Scroll NorthEast (fast)"; + 219 = "Scroll SouthEast (slow)"; + 220 = "Scroll SouthEast (medium)"; + 221 = "Scroll SouthEast (fast)"; + 222 = "Scroll SouthWest (slow)"; + 223 = "Scroll SouthWest (medium)"; + 224 = "Scroll SouthWest (fast)"; + 40 = "Wind East weak"; + 41 = "Wind East medium"; + 42 = "Wind East strong"; + 43 = "Wind North weak"; + 44 = "Wind North medium"; + 45 = "Wind North strong"; + 46 = "Wind South weak"; + 47 = "Wind South medium"; + 48 = "Wind South strong"; + 49 = "Wind West weak"; + 50 = "Wind West medium"; + 51 = "Wind West strong"; + 225 = "Carry East Slow"; + 226 = "Carry East Med.Slow"; + 227 = "Carry East Medium"; + 228 = "Carry East Med.Fast"; + 229 = "Carry East Fast"; + 230 = "Carry North Slow"; + 231 = "Carry North Med.Slow"; + 232 = "Carry North Medium"; + 233 = "Carry North Med.Fast"; + 234 = "Carry North Fast"; + 235 = "Carry South Slow"; + 236 = "Carry South Med.Slow"; + 237 = "Carry South Medium"; + 238 = "Carry South Med.Fast"; + 239 = "Carry South Fast"; + 240 = "Carry West Slow"; + 241 = "Carry West Med.Slow"; + 242 = "Carry West Medium"; + 243 = "Carry West Med.Fast"; + 244 = "Carry West Fast"; +} + +// GENERALIZED SECTOR TYPES +gen_sectortypes +{ + effect + { + 0 = "Normal"; + 1 = "Light Phased"; + 2 = "Light Sequence Start"; + 3 = "Light Sequence Special 1"; + 4 = "Light Sequence Special 2"; + 21 = "Light Phased"; + 22 = "Light Sequence Start"; + 23 = "Light Sequence Special 1"; + 24 = "Light Sequence Special 2"; + 26 = "Stairs Special 1"; + 27 = "Stairs Special 2"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt"; + 69 = "Damage Hellslime"; + 71 = "Damage Nukage"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 80 = "Damage Super Hellslime"; + 81 = "Light Fire Flicker"; + 82 = "Damage -2 or -5% health (no protection)"; + 83 = "Damage -4 or -8% health (no protection)"; + 84 = "Scroll east + -2 or -5% health (no protection)"; + 105 = "Delayed damage weak"; + 115 = "Instant death (doesn't work in 2.0.93 yet!)"; + 116 = "Delayed damage strong"; + 118 = "Carry player by tag"; + 198 = "Light Indoor 2"; + 199 = "Light Indoor 1"; + 200 = "Sky 2 (MAPINFO)"; + 201 = "Scroll North (slow)"; + 202 = "Scroll North (medium)"; + 203 = "Scroll North (fast)"; + 204 = "Scroll East (slow)"; + 205 = "Scroll East (medium)"; + 206 = "Scroll East (fast)"; + 207 = "Scroll South (slow)"; + 208 = "Scroll South (medium)"; + 209 = "Scroll South (fast)"; + 210 = "Scroll West (slow)"; + 211 = "Scroll West (medium)"; + 212 = "Scroll West (fast)"; + 213 = "Scroll NorthWest (slow)"; + 214 = "Scroll NorthWest (medium)"; + 215 = "Scroll NorthWest (fast)"; + 216 = "Scroll NorthEast (slow)"; + 217 = "Scroll NorthEast (medium)"; + 218 = "Scroll NorthEast (fast)"; + 219 = "Scroll SouthEast (slow)"; + 220 = "Scroll SouthEast (medium)"; + 221 = "Scroll SouthEast (fast)"; + 222 = "Scroll SouthWest (slow)"; + 223 = "Scroll SouthWest (medium)"; + 224 = "Scroll SouthWest (fast)"; + 40 = "Wind East weak"; + 41 = "Wind East medium"; + 42 = "Wind East strong"; + 43 = "Wind North weak"; + 44 = "Wind North medium"; + 45 = "Wind North strong"; + 46 = "Wind South weak"; + 47 = "Wind South medium"; + 48 = "Wind South strong"; + 49 = "Wind West weak"; + 50 = "Wind West medium"; + 51 = "Wind West strong"; + 225 = "Carry East Slow"; + 226 = "Carry East Med.Slow"; + 227 = "Carry East Medium"; + 228 = "Carry East Med.Fast"; + 229 = "Carry East Fast"; + 230 = "Carry North Slow"; + 231 = "Carry North Med.Slow"; + 232 = "Carry North Medium"; + 233 = "Carry North Med.Fast"; + 234 = "Carry North Fast"; + 235 = "Carry South Slow"; + 236 = "Carry South Med.Slow"; + 237 = "Carry South Medium"; + 238 = "Carry South Med.Fast"; + 239 = "Carry South Fast"; + 240 = "Carry West Slow"; + 241 = "Carry West Med.Slow"; + 242 = "Carry West Medium"; + 243 = "Carry West Med.Fast"; + 244 = "Carry West Fast"; + } + + damage + { + 0 = "None"; + 256 = "Damage 5 per second"; + 512 = "Damage 10 per second"; + 768 = "Damage 20 per second"; + } + + secret + { + 0 = "No"; + 1024 = "Yes"; + } + + friction + { + 0 = "Disabled"; + 2048 = "Enabled"; + } + + pusher + { + 0 = "Disabled"; + 4096 = "Enabled"; + } +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "Repeatable Action"; + 8192 = "Monster Activates"; + 32768 = "Block Everything"; +} + +// LINEDEF ACTIVATIONS +// Make sure these are in order from lowest value to highest value +linedefactivations +{ + 0 = "Player walks over"; + 1024 = "Player presses Use"; + 2048 = "Monster walks over"; + 3072 = "Projectile hits"; + 4096 = "Player bumps"; + 5120 = "Projectile flies over"; + 6144 = "Player presses Use (PassThru)"; + 7168 = "Projectile hits or crosses"; +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + + 20 + { + title = "H Floor Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 21 + { + title = "H Floor Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 22 + { + title = "H Floor Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 23 + { + title = "H Floor Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 24 + { + title = "H Floor Raise to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 25 + { + title = "H Floor Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 28 + { + title = "H Floor Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 35 + { + title = "H Floor Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 36 + { + title = "H Floor Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 46 + { + title = "H Floor Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 66 + { + title = "H Floor Lower Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 67 + { + title = "H Floor Raise Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 68 + { + title = "H Floor Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Target Height (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 40 + { + title = "H Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 41 + { + title = "H Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 42 + { + title = "H Ceiling Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 43 + { + title = "H Ceiling Crush Once"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 44 + { + title = "H Ceiling Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 45 + { + title = "H Ceiling Crush Once and Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 69 + { + title = "H Ceiling Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 95 + { + title = "H Floor and Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 96 + { + title = "H Floor and Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 60 + { + title = "H Platform Perpetual Move"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 61 + { + title = "H Platform Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 62 + { + title = "H Platform Lower Wait Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 63 + { + title = "H Platform Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 64 + { + title = "H Platform Raise Wait Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 172 + { + title = "H Platform Raise to Nearest Wait Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 65 + { + title = "H Platform Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 29 + { + title = "H Pillar Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 30 + { + title = "H Pillar Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Floor Movement Amount"; + arg4 = "Ceiling Movement Amount"; + mark1 = 1; + } + + 94 + { + title = "H Pillar Build and Crush"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 26 + { + title = "H Stairs Build Down"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 27 + { + title = "H Stairs Build Up"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 31 + { + title = "H Stairs Build Down (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 32 + { + title = "H Stairs Build Up (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 10 + { + title = "H Door Close"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 11 + { + title = "H Door Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 12 + { + title = "H Door Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 13 + { + title = "H Door Locked Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Key Number"; + arg5 = "Light Tag"; + mark1 = 1; + mark5 = 1; + } + + 14 + { + title = "H Door Animated"; + arg1 = "Sector tag"; + arg2 = "Animation Speed"; + arg3 = "Close Delay"; + mark1 = 1; + } + + 80 + { + title = "H Script Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 81 + { + title = "H Script Suspend"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 82 + { + title = "H Script Terminate"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 83 + { + title = "H Script Locked Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Key Number"; + } + + 84 + { + title = "H Script Execute with Result"; + arg1 = "Script Number"; + arg2 = "Script Argument 1"; + arg3 = "Script Argument 2"; + arg4 = "Script Argument 3"; + } + + 110 + { + title = "H Light Raise"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 111 + { + title = "H Light Lower"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 112 + { + title = "H Light Change"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + mark1 = 1; + } + + 113 + { + title = "H Light Fade"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + arg3 = "Fade Duration"; + mark1 = 1; + } + + 114 + { + title = "H Light Flow"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Fade Duration"; + mark1 = 1; + } + + 115 + { + title = "H Light Flicker"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + mark1 = 1; + } + + 116 + { + title = "H Light Strobe"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Brightest Duration"; + arg5 = "Darkest Duration"; + mark1 = 1; + } + + 121 + { + title = "H Line Identification"; + arg1 = "Set Line ID"; + } + + 100 + { + title = "H Scroll Texture Left"; + arg1 = "Scroll Speed"; + } + + 101 + { + title = "H Scroll Texture Right"; + arg1 = "Scroll Speed"; + } + + 102 + { + title = "H Scroll Texture Up"; + arg1 = "Scroll Speed"; + } + + 103 + { + title = "H Scroll Texture Down"; + arg1 = "Scroll Speed"; + } + + 129 + { + title = "H Use Puzzle Item"; + arg1 = "Item Number"; + arg2 = "Script Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 140 + { + title = "H Sector Change Sound"; + arg1 = "Sector Tag"; + arg2 = "Sound Number"; + mark1 = 1; + } + + 120 + { + title = "H Earthquake"; + arg1 = "Intensity"; + arg2 = "Duration"; + arg3 = "Damage Radius"; + arg4 = "Tremor Radius"; + arg5 = "Thing Tag"; + mark5 = 2; + } + + 74 + { + title = "H Teleport To Map"; + arg1 = "Map Number"; + arg2 = "Position"; + arg3 = "Keep orientation"; + } + + 75 + { + title = "H End Game"; + } + + 70 + { + title = "H Teleport"; + arg1 = "Target MapSpot Tag"; + arg2 = "Target Sector Tag"; + arg3 = "No fog at source"; + mark1 = 2; + mark2 = 1; + } + + 71 + { + title = "H Teleport (silent)"; + arg1 = "Target MapSpot Tag"; + arg2 = "Use Orientation of MapSpot"; + arg3 = "Target Sector Tag"; + mark1 = 2; + mark3 = 1; + } + + 39 + { + title = "H Teleport to Pain State (silent)"; + arg1 = "Target MapSpot Tag"; + arg2 = "Target Sector Tag"; + mark1 = 2; + mark2 = 1; + } + + 72 + { + title = "H Thing Thrust"; + arg1 = "Thrust Angle"; + arg2 = "Thrust Distance"; + } + + 73 + { + title = "H Thing Damage"; + arg1 = "Damage Amount"; + } + + 130 + { + title = "H Thing Activate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 131 + { + title = "H Thing Deactivate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 132 + { + title = "H Thing Remove"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 133 + { + title = "H Thing Destroy"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 134 + { + title = "H Thing Projectile"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 136 + { + title = "H Thing Projectile with Gravity"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 135 + { + title = "H Thing Spawn"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 137 + { + title = "H Thing Spawn (silent)"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 1 + { + title = "H Polyobj Start Line"; + arg1 = "Polyobj Number"; + arg2 = "Mirror Polyobj Number"; + arg3 = "Sound Number"; + } + + 2 + { + title = "H Polyobj Rotate Left"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 3 + { + title = "H Polyobj Rotate Right"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 4 + { + title = "H Polyobj Move"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 5 + { + title = "H Polyobj Explicit Line"; + arg1 = "Polyobj Number"; + arg2 = "Rendering order"; + arg3 = "Mirror Polyobj Number"; + arg4 = "Sound Number"; + } + + 6 + { + title = "H Polyobj Move (8px)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 7 + { + title = "H Polyobj Door Swing"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Delay"; + } + + 8 + { + title = "H Polyobj Door Slide"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + arg5 = "Delay"; + } + + 9 + { + title = "H Line Horizon"; + } + + 90 + { + title = "H Polyobj Rotate Left (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 91 + { + title = "H Polyobj Rotate Right (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 92 + { + title = "H Polyobj Move (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 93 + { + title = "H Polyobj Move (8px, override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 181 + { + title = "H Plane Align (slope)"; + arg1 = "Align Floor"; + arg2 = "Align Ceiling"; + } + + 241 + { + title = "H Floor Lower to Lowest TxTy"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 242 + { + title = "H Floor Lower to Highest"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Adjust Target Height"; + mark1 = 1; + } + + 238 + { + title = "H Floor Raise to Lowest Ceiling"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 239 + { + title = "H Floor Raise by TxTy"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 240 + { + title = "H Floor Raise by Texture"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 138 + { + title = "H Floor Waggle"; + arg1 = "Sector Tag"; + arg2 = "Amplitude"; + arg3 = "Frequency"; + arg4 = "Phase Offset"; + arg5 = "Duration"; + mark1 = 1; + } + + 250 + { + title = "H Floor Donut"; + arg1 = "Sector Tag"; + arg2 = "Pillar Movement Speed"; + arg3 = "Stairs Movement Speed"; + mark1 = 1; + } + + 235 + { + title = "H Floor Transfer Trigger"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 236 + { + title = "H Floor Transfer Numeric"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 200 + { + title = "H Floor Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + arg4 = "Movement Target"; + arg5 = "Flags"; + mark1 = 1; + } + + 199 + { + title = "H Ceiling Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 198 + { + title = "H Ceiling Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 193 + { + title = "H Ceiling Lower Instantly"; + arg1 = "Sector Tag"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 194 + { + title = "H Ceiling Raise Instantly"; + arg1 = "Sector Tag"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 252 + { + title = "H Ceiling Raise to Nearest Ceiling"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 192 + { + title = "H Ceiling Lower to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 253 + { + title = "H Ceiling Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 254 + { + title = "H Ceiling Lower to Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 195 + { + title = "H Ceiling Crush Once and Open A"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 196 + { + title = "H Ceiling Crush Start A"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 197 + { + title = "H Ceiling Crush Start A (silent)"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 255 + { + title = "H Ceiling Crush Once and Open A (silent)"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 201 + { + title = "H Ceiling Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + arg4 = "Movement Target"; + arg5 = "Flags"; + mark1 = 1; + } + + 205 + { + title = "H Ceiling Generic Crush"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Amount"; + arg4 = "Silent"; + arg5 = "Crush Damage"; + mark1 = 1; + } + + 251 + { + title = "H Floor and Ceiling Lower and Raise"; + arg1 = "Sector Tag"; + arg2 = "Floor Movement Speed"; + arg3 = "Ceiling Movement Speed"; + mark1 = 1; + } + + 245 + { + title = "H Elevator Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 246 + { + title = "H Elevator Raise to Activated Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 247 + { + title = "H Elevator Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 217 + { + title = "H Stairs Build Doom"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 204 + { + title = "H Stairs Generic Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Flags"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 207 + { + title = "H Platform Perpetual Move (lip)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Lip Amount"; + mark1 = 1; + } + + 206 + { + title = "H Platform Lower Wait Raise (lip)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Lip Amount"; + arg5 = "Movement sound type"; + mark1 = 1; + } + + 228 + { + title = "H Platform Raise Tx0"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 230 + { + title = "H Platform Raise by Value Tx (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 231 + { + title = "H Platform Toggle Ceiling"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 203 + { + title = "H Platform Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Type"; + arg5 = "Movement Amount"; + mark1 = 1; + } + + 215 + { + title = "H Teleport To Line"; + arg1 = "Source Line Tag"; + arg2 = "Target Line Tag"; + arg3 = "Reverse Angle"; + } + + 243 + { + title = "H End Normal"; + arg1 = "Position"; + } + + 244 + { + title = "H End Secret"; + arg1 = "Position"; + } + + 232 + { + title = "H Light Strobe Doom"; + arg1 = "Sector Tag"; + arg2 = "Brightest Duration"; + arg3 = "Darkest Duration"; + mark1 = 1; + } + + 233 + { + title = "H Light Change to Darkest"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 234 + { + title = "H Light Change to Brightest"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 212 + { + title = "H Sector Color"; + arg1 = "Sector Tag"; + arg2 = "Red"; + arg3 = "Green"; + arg4 = "Blue"; + mark1 = 1; + } + + 213 + { + title = "H Sector Fade"; + arg1 = "Sector Tag"; + arg2 = "Red"; + arg3 = "Green"; + arg4 = "Blue"; + mark1 = 1; + } + + 214 + { + title = "H Sector Damage"; + arg1 = "Sector Tag"; + arg2 = "Damage Amount"; + arg3 = "Meaning Of Death"; + mark1 = 1; + } + + 216 + { + title = "H Sector Gravity"; + arg1 = "Sector Tag"; + arg2 = "Gravity Integral"; + arg3 = "Gravity Fractional"; + mark1 = 1; + } + + 219 + { + title = "H Sector Friction"; + arg1 = "Sector Tag"; + arg2 = "Friction Amount"; + mark1 = 1; + } + + 218 + { + title = "H Sector Wind"; + arg1 = "Sector Tag"; + arg2 = "Wind Strength"; + arg3 = "Wind Angle"; + arg4 = "Line Vector"; + mark1 = 1; + } + + 220 + { + title = "H Sector Current"; + arg1 = "Sector Tag"; + arg2 = "Current Strength"; + arg3 = "Current Angle"; + arg4 = "Line Vector"; + mark1 = 1; + } + + 183 + { + title = "H Sector Floor Alignment to Line"; + arg1 = "Line Tag"; + arg2 = "Line Side"; + } + + 184 + { + title = "H Sector Ceiling Alignment to Line"; + arg1 = "Line Tag"; + arg2 = "Line Side"; + } + + 185 + { + title = "H Sector Rotate Alignment"; + arg1 = "Sector Tag"; + arg2 = "Floor Angle"; + arg3 = "Ceiling Angle"; + mark1 = 1; + } + + 186 + { + title = "H Sector Ceiling Panning"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 187 + { + title = "H Sector Floor Panning"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 188 + { + title = "H Sector Ceiling Scale"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 189 + { + title = "H Sector Floor Scale"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 248 + { + title = "H Thing Heal"; + arg1 = "Health Amount"; + } + + 229 + { + title = "H Thing Goal"; + arg1 = "Monster Thing Tag"; + arg2 = "Target Thing Tag"; + arg3 = "Delay"; + mark1 = 2; + mark2 = 2; + } + + 226 + { + title = "H Script Execute Always"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 208 + { + title = "H Translucent Line"; + arg1 = "Line Tag"; + arg2 = "Transparency Amount"; + } + + 221 + { + title = "H Scroll Texture Both"; + arg1 = "Line Tag"; + arg2 = "Left Speed"; + arg3 = "Right Speed"; + arg4 = "Down Speed"; + arg5 = "Up Speed"; + } + + 225 + { + title = "H Scroll Texture by Offsets"; + } + + 222 + { + title = "H Scroll Texture Model"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + } + + 223 + { + title = "H Scroll Floor"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + arg3 = "Method"; + arg4 = "Horizontal Speed"; + arg5 = "Vertical Speed"; + } + + 224 + { + title = "H Scroll Ceiling"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + arg3 = "Method"; + arg4 = "Horizontal Speed"; + arg5 = "Vertical Speed"; + } + + 209 + { + title = "H Transfer Heights"; + arg1 = "Sector Tag"; + arg2 = "When"; + mark1 = 1; + } + + 210 + { + title = "H Transfer Floor Brightness"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 211 + { + title = "H Transfer Ceiling Brightness"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 227 + { + title = "H Point Pusher and Puller Force"; + arg1 = "Sector Tag"; + arg2 = "Thing Tag"; + arg3 = "Strength"; + arg4 = "Line Vector"; + mark1 = 1; + mark2 = 2; + } + + 237 + { + title = "H Camera Change"; + arg1 = "Thing Tag"; + arg2 = "Everyone"; + arg3 = "Movement Resets"; + mark1 = 1; + } + + 191 + { + title = "H Player Property"; + arg1 = "Everyone"; + arg2 = "Toggle"; + arg3 = "Property"; + } + + 249 + { + title = "H Door Close Wait Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 202 + { + title = "H Door Generic"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Type"; + arg4 = "Delay"; + arg5 = "Lock"; + mark1 = 1; + } + + 38 + { + title = "H Ceiling Waggle"; + arg1 = "Sector Tag"; + arg2 = "Amplitude"; + arg3 = "Frequency"; + arg4 = "Phase Offset"; + arg5 = "Duration"; + mark1 = 1; + } + + 15 + { + title = "H Autosave"; + } + + 76 + { + title = "H Teleport Other"; + arg1 = "Thing ID"; + arg2 = "Target Thing ID"; + arg3 = "Fog"; + mark1 = 2; + mark2 = 2; + } + + 77 + { + title = "H Teleport Group"; + arg1 = "Group Thing ID"; + arg2 = "Source Thing ID"; + arg3 = "Target Thing ID"; + arg4 = "Move source"; + arg5 = "Fog"; + mark1 = 2; + mark2 = 2; + mark3 = 2; + } + + 78 + { + title = "H Teleport in sector"; + arg1 = "Sector Tag"; + arg2 = "Source Thing ID"; + arg3 = "Target Thing ID"; + arg4 = "bFog"; + arg5 = "Group Thing ID"; + mark1 = 1; + mark2 = 2; + mark3 = 2; + mark5 = 2; + } + + 117 + { + title = "H Light Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 119 + { + title = "H Thing Damage"; + arg1 = "Thing ID"; + arg2 = "Damage"; + arg3 = "Means of Death"; + mark1 = 2; + } + + 125 + { + title = "H Thing Move"; + arg1 = "Thing ID"; + arg2 = "Target Thing ID"; + mark1 = 2; + mark2 = 2; + } + + 127 + { + title = "H Thing Set Special"; + arg1 = "Thing ID"; + arg2 = "Special"; + arg3 = "Special arg 1"; + arg4 = "Special arg 2"; + arg5 = "Special arg 3"; + mark1 = 2; + } + + 128 + { + title = "H Thing Thrust Z"; + arg1 = "Thing ID"; + arg2 = "Force"; + arg3 = "Down Up"; + arg4 = "Add Set"; + mark1 = 2; + } + + 139 + { + title = "H Thing Spawn Facing"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "No Fog"; + arg4 = "New Thing ID"; + mark1 = 2; + } + + 175 + { + title = "H Thing Projectile Intercept"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "Speed"; + arg4 = "Thing ID target"; + arg5 = "New Thing ID"; + mark1 = 2; + mark4 = 2; + } + + 176 + { + title = "H Thing ID Change"; + arg1 = "Old Thing ID"; + arg2 = "New Thing ID"; + mark1 = 2; + } + + 177 + { + title = "H Thing Hate"; + arg1 = "Hater ID"; + arg2 = "Hatee ID"; + arg3 = "Flags"; + mark1 = 2; + mark2 = 2; + } + + 178 + { + title = "H Thing Aimed Projectile"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "Speed"; + arg4 = "Target Thing ID"; + arg5 = "New Thing ID"; + mark1 = 2; + mark4 = 2; + } + + 179 + { + title = "H Change Skill"; + arg1 = "New Skill Level"; + } + + 180 + { + title = "H Thing Set Translation"; + arg1 = "Thing ID"; + arg2 = "Translation index"; + } + + 182 + { + title = "H Line Mirror"; + } + + 190 + { + title = "H Static Init"; + arg1 = "Sector Tag"; + arg2 = "Property"; + arg3 = "Flip Sky"; + } + + 50 + { + title = "H Transfer Brightness Level"; + arg1 = "Sector Tag"; + arg2 = "Method"; + mark1 = 1; + } + + 33 + { + title = "H Forcefield Set"; + } + + 34 + { + title = "H Forcefield Remove"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 49 + { + title = "H Breakable Glass"; + } + + 173 + { + title = "H Alert monsters"; + arg1 = "ID of target"; + arg2 = "ID of emitter"; + } + + 174 + { + title = "H Communicator message"; + arg1 = "Message ID"; + arg2 = "Front side only"; + arg3 = "Message identification"; + arg4 = "Don't add message to log"; + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Dormant"; + 32 = "Fighter class"; + 64 = "Cleric class"; + 128 = "Mage class"; + 256 = "Singleplayer"; + 512 = "Cooperative"; + 1024 = "Deathmatch"; + 2048 = "Translucent (25%)"; + 4096 = "Invisible"; + 8192 = "Friendly"; + 16384 = "Frozen while inactive"; +} + +// 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 = 1792; // 256 + 512 + 1024 + + +// THING TYPES +// Color numbers are the basic colors +// Arrow indicates if the things will have an arrow to indicate direction +// Sort: 0 = List as in configuration, 1 = List alphabetically +// Blocking: 0 = No, 1 = Completely, 2 = True-Height +// Error: +// 0 = Dont check for errors +// 1 = Must be inside map (default) +// 2 = Must be inside map and may not collide +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + cameras + { + color = 7; // Light Grey + arrow = 1; + title = "Cameras and Interpolation"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 1; + + 9025 + { + title = "Camera"; + arg1 = "Pitch"; + arg2 = "Pan"; + arg3 = "Time"; + } + 9073 + { + title = "Aiming Camera"; + arg1 = "Pitch"; + arg2 = "Max Angle"; + arg3 = "Max Pitch"; + arg4 = "Thing ID"; + } + 9080 = "Skybox Viewpoint"; + 9081 + { + title = "Skybox Picker"; + arg1 = "Thing ID sky"; + } + 9074 + { + title = "Actor Mover"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + arg4 = "Thing ID"; + } + 9070 + { + title = "Interpolation point"; + arg1 = "Pitch"; + arg2 = "Travel Time"; + arg3 = "Hold Time"; + arg4 = "Next"; + arg5 = "High Next"; + } + 9075 = "Interpolation Special"; + 9072 + { + title = "Moving Camera"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + arg4 = "Thing ID looking at"; + } + 9071 + { + title = "Path Follower"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + } + 9047 = "Patrol Special"; + } + + bridges + { + color = 8; // Grey + arrow = 0; + title = "Bridges"; + width = 16; + sort = 1; + height = 1; + hangs = 0; + blocking = 0; + error = 1; + + 5064 + { + title = "Bridge radius 16"; + width = 16; + } + 5061 + { + title = "Bridge radius 32"; + width = 32; + } + 5065 + { + title = "Bridge radius 8"; + width = 8; + } + 9990 + { + title = "Bridge Custom"; + arg1 = "Radius"; + arg2 = "Thickness"; + } + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 2; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 4001 + { + title = "Player 5 start"; + sprite = "PLAYA2A8"; + } + 4002 + { + title = "Player 6 start"; + sprite = "PLAYA2A8"; + } + 4003 + { + title = "Player 7 start"; + sprite = "PLAYA2A8"; + } + 4004 + { + title = "Player 8 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 1; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + 9044 + { + title = "Teleport with Z Height"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 2; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + + + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + + + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + + + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + + + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + + + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + + + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + + + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + + + 69 + { + title = "Hell Knight"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 68 + { + title = "Arachnotron"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + + + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + + + 67 + { + title = "Mancubus"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + + + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + + + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDA2A8"; + height = 100; + } + + + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + + + 72 + { + title = "Commander Keen"; + width = 16; + sprite = "KEENA0"; + height = 72; + hangs = 1; + } + + + 88 + { + title = "Icon of Sin"; + width = 16; + sprite = "BBRNA0"; + height = 16; + } + + + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + + + 87 + { + title = "Monsters Target"; + height = 32; + } + + + 9050 + { + title = "Arachnotron (stealth)"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 9051 + { + title = "Archvile (stealth)"; + width = 20; + sprite = "VILEA2D8"; + } + + + 9052 + { + title = "Baron of Hell (stealth)"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 9053 + { + title = "Cacodemon (stealth)"; + width = 31; + sprite = "HEADA2A8"; + } + + + 9054 + { + title = "Chaingunner (stealth)"; + sprite = "CPOSA2"; + } + + + 9055 + { + title = "Demon (stealth)"; + width = 30; + sprite = "SARGA2A8"; + } + + + 9056 + { + title = "Hell Knight (stealth)"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 9057 + { + title = "Imp (stealth)"; + sprite = "TROOA2A8"; + } + + + 9058 + { + title = "Mancubus (stealth)"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 9059 + { + title = "Revenant (stealth)"; + sprite = "SKELA2D8"; + } + + + 9060 + { + title = "Former Sergeant (stealth)"; + sprite = "SPOSA2A8"; + } + + + 9061 + { + title = "Former Human (stealth)"; + sprite = "POSSA2A8"; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + hangs = 0; + blocking = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 40; + hangs = 0; + blocking = 0; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 2; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 32; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 2; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + + + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + + + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + + + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 2; + } + + + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + + + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 2; + } + + + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + + + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 2; + } + + + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + + + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 2; + } + + + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + + + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 2; + } + + + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + + + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 2; + } + + + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 2; + } + + + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 2; + } + + + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 2; + } + + + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 2; + } + + + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + + + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + + + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + + + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + + + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + + + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + + + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + + + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + + + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + + + 23 + { + title = "Dead lost soul"; + } + + + 73 + { + title = "Hanging victim, guts removed"; + sprite = "HDB1A0"; + height = 88; + hangs = 1; + blocking = 2; + } + + + 74 + { + title = "Hanging victim, guts and brain removed"; + sprite = "HDB2A0"; + height = 88; + hangs = 1; + blocking = 2; + } + + + 75 + { + title = "Hanging torso, looking down"; + sprite = "HDB3A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 76 + { + title = "Hanging torso, open skull"; + sprite = "HDB4A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 77 + { + title = "Hanging torso, looking down"; + sprite = "HDB5A0"; + height = 64; + hangs = 1; + blocking = 2; + } + + + 78 + { + title = "Hanging torso, brain removed"; + sprite = "HDB6A0"; + height = 64; + hangs = 1; + blocking = 2; + } + 9027 = "Red Particle Fountain"; + 9028 = "Green Particle Fountain"; + 9029 = "Blue Particle Fountain"; + 9030 = "Yellow Particle Fountain"; + 9031 = "Purple Particle Fountain"; + 9032 = "Black Particle Fountain"; + 9033 = "White Particle Fountain"; + } + + sectors + { + color = 7; + arrow = 0; + title = "Sector Actions"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 9082 = "Silent Sector"; + 9998 = "Actor enters sector"; + 9989 = "Actor hits fake floor"; + 9996 = "Actor hits ceiling"; + 9999 = "Actor hits floor"; + 9997 = "Actor leaves sector"; + 9982 = "Eyes above fake ceiling"; + 9992 = "Eyes above fake floor"; + 9983 = "Eyes below fake ceiling"; + 9993 = "Eyes below fake floor"; + 9995 = "Player uses sector"; + 9994 = "Player uses wall"; + } + + sounds + { + color = 5; // Purple + arrow = 0; + title = "Sounds"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 1400 = "Sound Sequence 0"; + 1401 = "Sound Sequence 1"; + 1402 = "Sound Sequence 2"; + 1403 = "Sound Sequence 3"; + 1404 = "Sound Sequence 4"; + 1405 = "Sound Sequence 5"; + 1406 = "Sound Sequence 6"; + 1407 = "Sound Sequence 7"; + 1408 = "Sound Sequence 8"; + 1409 = "Sound Sequence 9"; + 1411 + { + title = "Sound Sequence"; + arg1 = "Sound Sequence Number"; + } + 14001 = "Ambient Sound 1"; + 14002 = "Ambient Sound 2"; + 14003 = "Ambient Sound 3"; + 14004 = "Ambient Sound 4"; + 14005 = "Ambient Sound 5"; + 14006 = "Ambient Sound 6"; + 14007 = "Ambient Sound 7"; + 14008 = "Ambient Sound 8"; + 14009 = "Ambient Sound 9"; + 14010 = "Ambient Sound 10"; + 14011 = "Ambient Sound 11"; + 14012 = "Ambient Sound 12"; + 14013 = "Ambient Sound 13"; + 14014 = "Ambient Sound 14"; + 14015 = "Ambient Sound 15"; + 14016 = "Ambient Sound 16"; + 14017 = "Ambient Sound 17"; + 14018 = "Ambient Sound 18"; + 14019 = "Ambient Sound 19"; + 14020 = "Ambient Sound 20"; + 14021 = "Ambient Sound 21"; + 14022 = "Ambient Sound 22"; + 14023 = "Ambient Sound 23"; + 14024 = "Ambient Sound 24"; + 14025 = "Ambient Sound 25"; + 14026 = "Ambient Sound 26"; + 14027 = "Ambient Sound 27"; + 14028 = "Ambient Sound 28"; + 14029 = "Ambient Sound 29"; + 14030 = "Ambient Sound 30"; + 14031 = "Ambient Sound 31"; + 14032 = "Ambient Sound 32"; + 14033 = "Ambient Sound 33"; + 14034 = "Ambient Sound 34"; + 14035 = "Ambient Sound 35"; + 14036 = "Ambient Sound 36"; + 14037 = "Ambient Sound 37"; + 14038 = "Ambient Sound 38"; + 14039 = "Ambient Sound 39"; + 14040 = "Ambient Sound 40"; + 14041 = "Ambient Sound 41"; + 14042 = "Ambient Sound 42"; + 14043 = "Ambient Sound 43"; + 14044 = "Ambient Sound 44"; + 14045 = "Ambient Sound 45"; + 14046 = "Ambient Sound 46"; + 14047 = "Ambient Sound 47"; + 14048 = "Ambient Sound 48"; + 14049 = "Ambient Sound 49"; + 14050 = "Ambient Sound 50"; + 14051 = "Ambient Sound 51"; + 14052 = "Ambient Sound 52"; + 14053 = "Ambient Sound 53"; + 14054 = "Ambient Sound 54"; + 14055 = "Ambient Sound 55"; + 14056 = "Ambient Sound 56"; + 14057 = "Ambient Sound 57"; + 14058 = "Ambient Sound 58"; + 14059 = "Ambient Sound 59"; + 14060 = "Ambient Sound 60"; + 14061 = "Ambient Sound 61"; + 14062 = "Ambient Sound 62"; + 14063 = "Ambient Sound 63"; + 14064 = "Ambient Sound 64"; + 14065 + { + title = "Ambient Sound"; + arg1 = "Ambient Sound Number"; + } + } + + marine + { + color = 15; + arrow = 1; + title = "Marines"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + + 9100 = "Scripted Marine"; + 9101 = "Marine Fist"; + 9102 = "Marine Berserk"; + 9103 = "Marine Chainsaw"; + 9104 = "Marine Pistol"; + 9105 = "Marine Shotgun"; + 9106 = "Marine SSG"; + 9107 = "Marine Chaingun"; + 9108 = "Marine Rocket Launcher"; + 9109 = "Marine Plasma Rifle"; + 9110 = "Marine Railgun"; + 9111 = "Marine BFG9000"; + } + + slopes + { + color = 8; // Grey + arrow = 0; + title = "Slopes"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 9511 + { + title = "Copy ceiling plane"; + arg1 = "Sector Tag"; + mark1 = 1; + } + 9510 + { + title = "Copy floor plane"; + arg1 = "Sector Tag"; + mark1 = 1; + } + 9503 + { + title = "Set ceiling slope"; + arg1 = "Z-Angle"; + arrow = 1; + } + 9502 + { + title = "Set floor slope"; + arg1 = "Z-Angle"; + arrow = 1; + } + 9501 + { + title = "Slope ceiling to here"; + arg1 = "Line ID"; + } + 9500 + { + title = "Slope floor to here"; + arg1 = "Line ID"; + } + } + + zdoom + { + color = 7; // Light Grey + arrow = 1; + title = "ZDoom"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 9200 + { + title = "Decal"; + arg1 = "Decal ID"; + } + 5001 = "Pusher"; + 5002 = "Puller"; + 9024 + { + title = "Path Node"; + arg1 = "Next Node"; + arg2 = "Delay"; + } + 9026 + { + title = "Spark"; + arg1 = "Particles Amount"; + } + 9045 = "Deep Water"; + 9046 = "Secret"; + 9300 = "Polyobject Anchor"; + 9301 = "Polyobject Start Spot"; + 9302 = "Polyobject Start Spot (crush)"; + 9303 = "Polyobject Spawn(Hurts to touch)"; + 9001 = "Map Spot"; + 9013 = "Map Spot (gravity)"; + 9076 = "Hate target"; + } + + portals + { + color = 7; + arrow = 0; + title = "Portals"; + width = 0; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + + 9077 + { + title = "Upper Sector"; + arg1 = "Flat Transparency"; + } + + 9078 + { + title = "Lower Sector"; + arg1 = "Flat Transparency"; + } + } +} \ No newline at end of file diff --git a/Build/Configurations/ZDoom_HereticHexen.cfg b/Build/Configurations/ZDoom_HereticHexen.cfg new file mode 100644 index 00000000..b8fe8198 --- /dev/null +++ b/Build/Configurations/ZDoom_HereticHexen.cfg @@ -0,0 +1,2619 @@ +/*************************************************************\ + Doom Builder Game Configuration for (Hexen format) +\*************************************************************/ + +// This is the title to show for this game +game = "ZDoom (Heretic in Hexen format)"; + +// Map format determines the way the map will be loaded +mapformat = 2; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 1; + +// Engine specific features +mixtexturesflats = 1; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 999; + + +/* +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. +*/ + +// Texture sources +textures +{ + zdoom1 + { + start = "TX_START"; + end = "TX_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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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 = 3; + E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1; + E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1; + E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1; + E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1; + MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2; + MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2; + MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2; + MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 12; + BLOCKMAP = 4; + BEHAVIOR = 8193; + SCRIPTS = 2; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Phased"; + 2 = "Light Sequence Start"; + 3 = "Light Sequence Special 1"; + 4 = "Light Sequence Special 2"; + 21 = "Light Phased"; + 22 = "Light Sequence Start"; + 23 = "Light Sequence Special 1"; + 24 = "Light Sequence Special 2"; + 26 = "Stairs Special 1"; + 27 = "Stairs Special 2"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt"; + 69 = "Damage Hellslime"; + 71 = "Damage Nukage"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 79 = "Low Friction"; + 80 = "Damage Super Hellslime"; + 81 = "Light Fire Flicker"; + 82 = "Damage -2 or -5% health (fast)"; + 83 = "Damage -4 or -8% health (fast)"; + 84 = "Scroll east + -2 or -5% health (fast)"; + + 198 = "Light Indoor 2"; + 199 = "Light Indoor 1"; + 200 = "Sky 2 (MAPINFO)"; + 201 = "Scroll North (slow)"; + 202 = "Scroll North (medium)"; + 203 = "Scroll North (fast)"; + 204 = "Scroll East (slow)"; + 205 = "Scroll East (medium)"; + 206 = "Scroll East (fast)"; + 207 = "Scroll South (slow)"; + 208 = "Scroll South (medium)"; + 209 = "Scroll South (fast)"; + 210 = "Scroll West (slow)"; + 211 = "Scroll West (medium)"; + 212 = "Scroll West (fast)"; + 213 = "Scroll NorthWest (slow)"; + 214 = "Scroll NorthWest (medium)"; + 215 = "Scroll NorthWest (fast)"; + 216 = "Scroll NorthEast (slow)"; + 217 = "Scroll NorthEast (medium)"; + 218 = "Scroll NorthEast (fast)"; + 219 = "Scroll SouthEast (slow)"; + 220 = "Scroll SouthEast (medium)"; + 221 = "Scroll SouthEast (fast)"; + 222 = "Scroll SouthWest (slow)"; + 223 = "Scroll SouthWest (medium)"; + 224 = "Scroll SouthWest (fast)"; + 40 = "Wind East weak"; + 41 = "Wind East medium"; + 42 = "Wind East strong"; + 43 = "Wind North weak"; + 44 = "Wind North medium"; + 45 = "Wind North strong"; + 46 = "Wind South weak"; + 47 = "Wind South medium"; + 48 = "Wind South strong"; + 49 = "Wind West weak"; + 50 = "Wind West medium"; + 51 = "Wind West strong"; + 225 = "Carry East Slow"; + 226 = "Carry East Med.Slow"; + 227 = "Carry East Medium"; + 228 = "Carry East Med.Fast"; + 229 = "Carry East Fast"; + 230 = "Carry North Slow"; + 231 = "Carry North Med.Slow"; + 232 = "Carry North Medium"; + 233 = "Carry North Med.Fast"; + 234 = "Carry North Fast"; + 235 = "Carry South Slow"; + 236 = "Carry South Med.Slow"; + 237 = "Carry South Medium"; + 238 = "Carry South Med.Fast"; + 239 = "Carry South Fast"; + 240 = "Carry West Slow"; + 241 = "Carry West Med.Slow"; + 242 = "Carry West Medium"; + 243 = "Carry West Med.Fast"; + 244 = "Carry West Fast"; +} + +// GENERALIZED SECTOR TYPES +gen_sectortypes +{ + effect + { + 0 = "Normal"; + 1 = "Light Phased"; + 2 = "Light Sequence Start"; + 3 = "Light Sequence Special 1"; + 4 = "Light Sequence Special 2"; + 21 = "Light Phased"; + 22 = "Light Sequence Start"; + 23 = "Light Sequence Special 1"; + 24 = "Light Sequence Special 2"; + 26 = "Stairs Special 1"; + 27 = "Stairs Special 2"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt"; + 69 = "Damage Hellslime"; + 71 = "Damage Nukage"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 79 = "Low Friction"; + 80 = "Damage Super Hellslime"; + 81 = "Light Fire Flicker"; + 82 = "Damage -2 or -5% health (fast)"; + 83 = "Damage -4 or -8% health (fast)"; + 84 = "Scroll east + -2 or -5% health (fast)"; + 198 = "Light Indoor 2"; + 199 = "Light Indoor 1"; + 200 = "Sky 2 (MAPINFO)"; + 201 = "Scroll North (slow)"; + 202 = "Scroll North (medium)"; + 203 = "Scroll North (fast)"; + 204 = "Scroll East (slow)"; + 205 = "Scroll East (medium)"; + 206 = "Scroll East (fast)"; + 207 = "Scroll South (slow)"; + 208 = "Scroll South (medium)"; + 209 = "Scroll South (fast)"; + 210 = "Scroll West (slow)"; + 211 = "Scroll West (medium)"; + 212 = "Scroll West (fast)"; + 213 = "Scroll NorthWest (slow)"; + 214 = "Scroll NorthWest (medium)"; + 215 = "Scroll NorthWest (fast)"; + 216 = "Scroll NorthEast (slow)"; + 217 = "Scroll NorthEast (medium)"; + 218 = "Scroll NorthEast (fast)"; + 219 = "Scroll SouthEast (slow)"; + 220 = "Scroll SouthEast (medium)"; + 221 = "Scroll SouthEast (fast)"; + 222 = "Scroll SouthWest (slow)"; + 223 = "Scroll SouthWest (medium)"; + 224 = "Scroll SouthWest (fast)"; + 40 = "Wind East weak"; + 41 = "Wind East medium"; + 42 = "Wind East strong"; + 43 = "Wind North weak"; + 44 = "Wind North medium"; + 45 = "Wind North strong"; + 46 = "Wind South weak"; + 47 = "Wind South medium"; + 48 = "Wind South strong"; + 49 = "Wind West weak"; + 50 = "Wind West medium"; + 51 = "Wind West strong"; + 225 = "Carry East Slow"; + 226 = "Carry East Med.Slow"; + 227 = "Carry East Medium"; + 228 = "Carry East Med.Fast"; + 229 = "Carry East Fast"; + 230 = "Carry North Slow"; + 231 = "Carry North Med.Slow"; + 232 = "Carry North Medium"; + 233 = "Carry North Med.Fast"; + 234 = "Carry North Fast"; + 235 = "Carry South Slow"; + 236 = "Carry South Med.Slow"; + 237 = "Carry South Medium"; + 238 = "Carry South Med.Fast"; + 239 = "Carry South Fast"; + 240 = "Carry West Slow"; + 241 = "Carry West Med.Slow"; + 242 = "Carry West Medium"; + 243 = "Carry West Med.Fast"; + 244 = "Carry West Fast"; + } + + damage + { + 0 = "None"; + 256 = "Damage 5 per second"; + 512 = "Damage 10 per second"; + 768 = "Damage 20 per second"; + } + + secret + { + 0 = "No"; + 1024 = "Yes"; + } + + friction + { + 0 = "Disabled"; + 2048 = "Enabled"; + } + + pusher + { + 0 = "Disabled"; + 4096 = "Enabled"; + } +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "Repeatable Action"; + 8192 = "Monster Activates"; + 32768 = "Block Everything"; +} + +// LINEDEF ACTIVATIONS +// Make sure these are in order from lowest value to highest value +linedefactivations +{ + 0 = "Player walks over"; + 1024 = "Player presses Use"; + 2048 = "Monster walks over"; + 3072 = "Projectile hits"; + 4096 = "Player bumps"; + 5120 = "Projectile flies over"; + 6144 = "Player presses Use (PassThru)"; +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + + 20 + { + title = "H Floor Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 21 + { + title = "H Floor Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 22 + { + title = "H Floor Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 23 + { + title = "H Floor Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 24 + { + title = "H Floor Raise to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 25 + { + title = "H Floor Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 28 + { + title = "H Floor Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 35 + { + title = "H Floor Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 36 + { + title = "H Floor Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 46 + { + title = "H Floor Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 66 + { + title = "H Floor Lower Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 67 + { + title = "H Floor Raise Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 68 + { + title = "H Floor Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Target Height (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 40 + { + title = "H Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 41 + { + title = "H Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 42 + { + title = "H Ceiling Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 43 + { + title = "H Ceiling Crush Once"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 44 + { + title = "H Ceiling Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 45 + { + title = "H Ceiling Crush Once and Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 69 + { + title = "H Ceiling Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 95 + { + title = "H Floor and Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 96 + { + title = "H Floor and Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 60 + { + title = "H Platform Perpetual Move"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 61 + { + title = "H Platform Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 62 + { + title = "H Platform Lower Wait Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 63 + { + title = "H Platform Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 64 + { + title = "H Platform Raise Wait Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 65 + { + title = "H Platform Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 29 + { + title = "H Pillar Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 30 + { + title = "H Pillar Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Floor Movement Amount"; + arg4 = "Ceiling Movement Amount"; + mark1 = 1; + } + + 94 + { + title = "H Pillar Build and Crush"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 26 + { + title = "H Stairs Build Down"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 27 + { + title = "H Stairs Build Up"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 31 + { + title = "H Stairs Build Down (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 32 + { + title = "H Stairs Build Up (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 10 + { + title = "H Door Close"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 11 + { + title = "H Door Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 12 + { + title = "H Door Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 13 + { + title = "H Door Locked Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Key Number"; + arg5 = "Light Tag"; + mark1 = 1; + mark5 = 1; + } + + 80 + { + title = "H Script Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 81 + { + title = "H Script Suspend"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 82 + { + title = "H Script Terminate"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 83 + { + title = "H Script Locked Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Key Number"; + } + + 110 + { + title = "H Light Raise"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 111 + { + title = "H Light Lower"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 112 + { + title = "H Light Change"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + mark1 = 1; + } + + 113 + { + title = "H Light Fade"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + arg3 = "Fade Duration"; + mark1 = 1; + } + + 114 + { + title = "H Light Flow"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Fade Duration"; + mark1 = 1; + } + + 115 + { + title = "H Light Flicker"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + mark1 = 1; + } + + 116 + { + title = "H Light Strobe"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Brightest Duration"; + arg5 = "Darkest Duration"; + mark1 = 1; + } + + 121 + { + title = "H Line Identification"; + arg1 = "Set Line ID"; + } + + 100 + { + title = "H Scroll Texture Left"; + arg1 = "Scroll Speed"; + } + + 101 + { + title = "H Scroll Texture Right"; + arg1 = "Scroll Speed"; + } + + 102 + { + title = "H Scroll Texture Up"; + arg1 = "Scroll Speed"; + } + + 103 + { + title = "H Scroll Texture Down"; + arg1 = "Scroll Speed"; + } + + 129 + { + title = "H Use Puzzle Item"; + arg1 = "Item Number"; + arg2 = "Script Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 140 + { + title = "H Sector Change Sound"; + arg1 = "Sector Tag"; + arg2 = "Sound Number"; + mark1 = 1; + } + + 120 + { + title = "H Earthquake"; + arg1 = "Intensity"; + arg2 = "Duration"; + arg3 = "Damage Radius"; + arg4 = "Tremor Radius"; + arg5 = "Thing Tag"; + mark5 = 2; + } + + 74 + { + title = "H Teleport To Map"; + arg1 = "Map Number"; + arg2 = "Position"; + } + + 75 + { + title = "H End Game"; + } + + 70 + { + title = "H Teleport"; + arg1 = "Target MapSpot Tag (0=ignore)"; + arg2 = "Target Sector Tag (0=ignore)"; + mark1 = 2; + mark2 = 1; + } + + 71 + { + title = "H Teleport (silent)"; + arg1 = "Target MapSpot Tag (0=ignore)"; + arg2 = "Use Orientation of MapSpot"; + arg3 = "Target Sector Tag (0=ignore)"; + mark1 = 2; + mark3 = 1; + } + + 72 + { + title = "H Thing Thrust"; + arg1 = "Thrust Angle"; + arg2 = "Thrust Distance"; + } + + 73 + { + title = "H Thing Damage"; + arg1 = "Damage Amount"; + } + + 130 + { + title = "H Thing Activate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 131 + { + title = "H Thing Deactivate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 132 + { + title = "H Thing Remove"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 133 + { + title = "H Thing Destroy"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 134 + { + title = "H Thing Projectile"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 136 + { + title = "H Thing Projectile with Gravity"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 135 + { + title = "H Thing Spawn"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 137 + { + title = "H Thing Spawn (silent)"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 1 + { + title = "H Polyobj Start Line"; + arg1 = "Polyobj Number"; + arg2 = "Mirror Polyobj Number"; + arg3 = "Sound Number"; + } + + 2 + { + title = "H Polyobj Rotate Left"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 3 + { + title = "H Polyobj Rotate Right"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 4 + { + title = "H Polyobj Move"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 5 + { + title = "H Polyobj Explicit Line"; + arg1 = "Polyobj Number"; + arg2 = "Rendering order"; + arg3 = "Mirror Polyobj Number"; + arg4 = "Sound Number"; + } + + 6 + { + title = "H Polyobj Move (8px)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 7 + { + title = "H Polyobj Door Swing"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Delay"; + } + + 8 + { + title = "H Polyobj Door Slide"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + arg5 = "Delay"; + } + + 9 + { + title = "H Line Horizon"; + } + + 90 + { + title = "H Polyobj Rotate Left (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 91 + { + title = "H Polyobj Rotate Right (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 92 + { + title = "H Polyobj Move (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 93 + { + title = "H Polyobj Move (8px, override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 181 + { + title = "H Plane Align (slope)"; + arg1 = "Align Floor"; + arg2 = "Align Ceiling"; + } + + 241 + { + title = "H Floor Lower to Lowest TxTy"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 242 + { + title = "H Floor Lower to Highest"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Adjust Target Height"; + mark1 = 1; + } + + 238 + { + title = "H Floor Raise to Lowest Ceiling"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 239 + { + title = "H Floor Raise by TxTy"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 240 + { + title = "H Floor Raise by Texture"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 138 + { + title = "H Floor Waggle"; + arg1 = "Sector Tag"; + arg2 = "Amplitude"; + arg3 = "Frequency"; + arg4 = "Phase Offset"; + arg5 = "Duration"; + mark1 = 1; + } + + 250 + { + title = "H Floor Donut"; + arg1 = "Sector Tag"; + arg2 = "Pillar Movement Speed"; + arg3 = "Stairs Movement Speed"; + mark1 = 1; + } + + 235 + { + title = "H Floor Transfer Trigger"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 236 + { + title = "H Floor Transfer Numeric"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 200 + { + title = "H Floor Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + arg4 = "Movement Target"; + arg5 = "Flags"; + mark1 = 1; + } + + 199 + { + title = "H Ceiling Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 198 + { + title = "H Ceiling Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 193 + { + title = "H Ceiling Lower Instantly"; + arg1 = "Sector Tag"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 194 + { + title = "H Ceiling Raise Instantly"; + arg1 = "Sector Tag"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 252 + { + title = "H Ceiling Raise to Nearest Ceiling"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 192 + { + title = "H Ceiling Lower to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 253 + { + title = "H Ceiling Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 254 + { + title = "H Ceiling Lower to Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 195 + { + title = "H Ceiling Crush Once and Open A"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 196 + { + title = "H Ceiling Crush Start A"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 197 + { + title = "H Ceiling Crush Start A (silent)"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 255 + { + title = "H Ceiling Crush Once and Open A (silent)"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 201 + { + title = "H Ceiling Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + arg4 = "Movement Target"; + arg5 = "Flags"; + mark1 = 1; + } + + 205 + { + title = "H Ceiling Generic Crush"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Amount"; + arg4 = "Silent"; + arg5 = "Crush Damage"; + mark1 = 1; + } + + 251 + { + title = "H Floor and Ceiling Lower and Raise"; + arg1 = "Sector Tag"; + arg2 = "Floor Movement Speed"; + arg3 = "Ceiling Movement Speed"; + mark1 = 1; + } + + 245 + { + title = "H Elevator Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 246 + { + title = "H Elevator Raise to Activated Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 247 + { + title = "H Elevator Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 217 + { + title = "H Stairs Build Doom"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 204 + { + title = "H Stairs Generic Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Flags"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 207 + { + title = "H Platform Perpetual Move (lip)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Lip Amount"; + mark1 = 1; + } + + 206 + { + title = "H Platform Lower Wait Raise (lip)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Lip Amount"; + mark1 = 1; + } + + 228 + { + title = "H Platform Raise Tx0"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 230 + { + title = "H Platform Raise by Value Tx (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 231 + { + title = "H Platform Toggle Ceiling"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 203 + { + title = "H Platform Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Type"; + arg5 = "Movement Amount"; + mark1 = 1; + } + + 215 + { + title = "H Teleport To Line"; + arg1 = "Source Line Tag"; + arg2 = "Target Line Tag"; + arg3 = "Reverse Angle"; + } + + 243 + { + title = "H End Normal"; + arg1 = "Position"; + } + + 244 + { + title = "H End Secret"; + arg1 = "Position"; + } + + 232 + { + title = "H Light Strobe Doom"; + arg1 = "Sector Tag"; + arg2 = "Brightest Duration"; + arg3 = "Darkest Duration"; + mark1 = 1; + } + + 233 + { + title = "H Light Change to Darkest"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 234 + { + title = "H Light Change to Brightest"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 212 + { + title = "H Sector Color"; + arg1 = "Sector Tag"; + arg2 = "Red"; + arg3 = "Green"; + arg4 = "Blue"; + mark1 = 1; + } + + 213 + { + title = "H Sector Fade"; + arg1 = "Sector Tag"; + arg2 = "Red"; + arg3 = "Green"; + arg4 = "Blue"; + mark1 = 1; + } + + 214 + { + title = "H Sector Damage"; + arg1 = "Sector Tag"; + arg2 = "Damage Amount"; + arg3 = "Meaning Of Death"; + mark1 = 1; + } + + 216 + { + title = "H Sector Gravity"; + arg1 = "Sector Tag"; + arg2 = "Gravity Integral"; + arg3 = "Gravity Fractional"; + mark1 = 1; + } + + 219 + { + title = "H Sector Friction"; + arg1 = "Sector Tag"; + arg2 = "Friction Amount"; + mark1 = 1; + } + + 218 + { + title = "H Sector Wind"; + arg1 = "Sector Tag"; + arg2 = "Wind Strength"; + arg3 = "Wind Angle"; + arg4 = "Line Vector"; + mark1 = 1; + } + + 220 + { + title = "H Sector Current"; + arg1 = "Sector Tag"; + arg2 = "Current Strength"; + arg3 = "Current Angle"; + arg4 = "Line Vector"; + mark1 = 1; + } + + 183 + { + title = "H Sector Floor Alignment to Line"; + arg1 = "Line Tag"; + arg2 = "Line Side"; + } + + 184 + { + title = "H Sector Ceiling Alignment to Line"; + arg1 = "Line Tag"; + arg2 = "Line Side"; + } + + 185 + { + title = "H Sector Rotate Alignment"; + arg1 = "Sector Tag"; + arg2 = "Floor Angle"; + arg3 = "Ceiling Angle"; + mark1 = 1; + } + + 186 + { + title = "H Sector Ceiling Panning"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 187 + { + title = "H Sector Floor Panning"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 188 + { + title = "H Sector Ceiling Scale"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 189 + { + title = "H Sector Floor Scale"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 248 + { + title = "H Thing Heal"; + arg1 = "Health Amount"; + } + + 229 + { + title = "H Thing Goal"; + arg1 = "Monster Thing Tag"; + arg2 = "Target Thing Tag"; + arg3 = "Delay"; + mark1 = 2; + mark2 = 2; + } + + 226 + { + title = "H Script Execute Always"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 208 + { + title = "H Translucent Line"; + arg1 = "Line Tag"; + arg2 = "Transparency Amount"; + } + + 221 + { + title = "H Scroll Texture Both"; + arg1 = "Line Tag"; + arg2 = "Left Speed"; + arg3 = "Right Speed"; + arg4 = "Down Speed"; + arg5 = "Up Speed"; + } + + 225 + { + title = "H Scroll Texture by Offsets"; + } + + 222 + { + title = "H Scroll Texture Model"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + } + + 223 + { + title = "H Scroll Floor"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + arg3 = "Method"; + arg4 = "Horizontal Speed"; + arg5 = "Vertical Speed"; + } + + 224 + { + title = "H Scroll Ceiling"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + arg3 = "Method"; + arg4 = "Horizontal Speed"; + arg5 = "Vertical Speed"; + } + + 209 + { + title = "H Transfer Heights"; + arg1 = "Sector Tag"; + arg2 = "When"; + mark1 = 1; + } + + 210 + { + title = "H Transfer Floor Brightness"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 211 + { + title = "H Transfer Ceiling Brightness"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 227 + { + title = "H Point Pusher and Puller Force"; + arg1 = "Sector Tag"; + arg2 = "Thing Tag"; + arg3 = "Strength"; + arg4 = "Line Vector"; + mark1 = 1; + mark2 = 2; + } + + 237 + { + title = "H Camera Change"; + arg1 = "Thing Tag"; + arg2 = "Everyone"; + arg3 = "Movement Resets"; + mark1 = 1; + } + + 191 + { + title = "H Player Property"; + arg1 = "Everyone"; + arg2 = "Toggle"; + arg3 = "Property"; + } + + 249 + { + title = "H Door Close Wait Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 202 + { + title = "H Door Generic"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Type"; + arg4 = "Delay"; + arg5 = "Lock"; + mark1 = 1; + } + + 38 + { + title = "H Ceiling Waggle"; + arg1 = "Sector Tag"; + arg2 = "Amplitude"; + arg3 = "Frequency"; + arg4 = "Phase Offset"; + arg5 = "Duration"; + mark1 = 1; + } + + 15 + { + title = "H Autosave"; + } + + 76 + { + title = "H Teleport Other"; + arg1 = "Thing ID"; + arg2 = "Target Thing ID"; + arg3 = "Fog"; + mark1 = 2; + mark2 = 2; + } + + 77 + { + title = "H Teleport Group"; + arg1 = "Group Thing ID"; + arg2 = "Source Thing ID"; + arg3 = "Target Thing ID"; + arg4 = "Move source"; + arg5 = "Fog"; + mark1 = 2; + mark2 = 2; + mark3 = 2; + } + + 78 + { + title = "H Teleport in sector"; + arg1 = "Sector Tag"; + arg2 = "Source Thing ID"; + arg3 = "Target Thing ID"; + arg4 = "bFog"; + arg5 = "Group Thing ID"; + mark1 = 1; + mark2 = 2; + mark3 = 2; + mark5 = 2; + } + + 117 + { + title = "H Light Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 119 + { + title = "H Thing Damage"; + arg1 = "Thing ID"; + arg2 = "Damage"; + arg3 = "Means of Death"; + mark1 = 2; + } + + 125 + { + title = "H Thing Move"; + arg1 = "Thing ID"; + arg2 = "Target Thing ID"; + mark1 = 2; + mark2 = 2; + } + + 127 + { + title = "H Thing Set Special"; + arg1 = "Thing ID"; + arg2 = "Special"; + arg3 = "Special arg 1"; + arg4 = "Special arg 2"; + arg5 = "Special arg 3"; + mark1 = 2; + } + + 128 + { + title = "H Thing Thrust Z"; + arg1 = "Thing ID"; + arg2 = "Force"; + arg3 = "Down Up"; + arg4 = "Add Set"; + mark1 = 2; + } + + 139 + { + title = "H Thing Spawn Facing"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "No Fog"; + arg4 = "New Thing ID"; + mark1 = 2; + } + + 175 + { + title = "H Thing Projectile Intercept"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "Speed"; + arg4 = "Thing ID target"; + arg5 = "New Thing ID"; + mark1 = 2; + mark4 = 2; + } + + 176 + { + title = "H Thing ID Change"; + arg1 = "Old Thing ID"; + arg2 = "New Thing ID"; + mark1 = 2; + } + + 177 + { + title = "H Thing Hate"; + arg1 = "Hater ID"; + arg2 = "Hatee ID"; + arg3 = "Flags"; + mark1 = 2; + mark2 = 2; + } + + 178 + { + title = "H Thing Aimed Projectile"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "Speed"; + arg4 = "Target Thing ID"; + arg5 = "New Thing ID"; + mark1 = 2; + mark4 = 2; + } + + 179 + { + title = "H Change Skill"; + arg1 = "New Skill Level"; + } + + 180 + { + title = "H Thing Set Translation"; + arg1 = "Thing ID"; + arg2 = "Translation index"; + } + + 182 + { + title = "H Line Mirror"; + } + + 190 + { + title = "H Static Init"; + arg1 = "Sector Tag"; + arg2 = "Property"; + arg3 = "Flip Sky"; + } + + 50 + { + title = "H Transfer Brightness Level"; + arg1 = "Sector Tag"; + arg2 = "Method"; + mark1 = 1; + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Dormant"; + 32 = "Fighter class"; + 64 = "Cleric class"; + 128 = "Mage class"; + 256 = "Singleplayer"; + 512 = "Cooperative"; + 1024 = "Deathmatch"; + 2048 = "Translucent (25%)"; + 4096 = "Invisible"; + 8192 = "Friendly"; + 16384 = "Frozen while inactive"; +} + +// 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 = 1792; // 256 + 512 + 1024 + + +// THING TYPES +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + + 32000 = "3D Mode start"; + } + + cameras + { + color = 7; // Light Grey + arrow = 1; + title = "Cameras and Interpolation"; + width = 16; + sort = 1; + + 9025 = "Camera"; + 9073 + { + title = "Aiming Camera"; + arg1 = "Pitch"; + arg2 = "Max Angle"; + arg3 = "Max Pitch"; + arg4 = "Thing ID"; + } + 9080 = "Skybox Viewpoint"; + 9081 + { + title = "Skybox Picker"; + arg1 = "Thing ID sky"; + } + 9074 + { + title = "Actor Mover"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + arg4 = "Thing ID"; + } + 9070 + { + title = "Interpolation point"; + arg1 = "Pitch"; + arg2 = "Travel Time"; + arg3 = "Hold Time"; + arg4 = "Next"; + arg5 = "High Next"; + } + 9075 = "Interpolation Special"; + 9072 + { + title = "Moving Camera"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + arg4 = "Thing ID looking at"; + } + 9071 + { + title = "Path Follower"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + } + 9047 = "Patrol Special"; + } + + bridges + { + color = 8; // Grey + arrow = 0; + title = "Bridges"; + width = 16; + sort = 1; + + 5064 + { + title = "Bridge radius 16"; + width = 16; + } + 5061 + { + title = "Bridge radius 32"; + width = 32; + } + 5065 + { + title = "Bridge radius 8"; + width = 8; + } + 9990 + { + title = "Bridge Custom"; + arg1 = "Radius"; + arg2 = "Thickness"; + } + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + + 1 = "Player 1 start"; + 2 = "Player 2 start"; + 3 = "Player 3 start"; + 4 = "Player 4 start"; + 4001 = "Player 5 start"; + 4002 = "Player 6 start"; + 4003 = "Player 7 start"; + 4004 = "Player 8 start"; + 11 = "Player Deathmatch start"; + } + + teleport + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + + 14 = "Teleport Landing"; + 9044 = "Teleport with Z Height"; + 52 = "Teleport Glitter (Exit)"; + 74 = "Teleport Glitter"; + } + + sounds + { + color = 5; // Purple + arrow = 0; + title = "Sounds"; + width = 0; + sort = 1; + + 41 = "Waterfall"; + 42 = "Wind"; + 1200 = "Scream"; + 1201 = "Squish"; + 1202 = "Drops"; + 1203 = "Slow Footsteps"; + 1204 = "Heartbeat"; + 1205 = "Bells"; + 1206 = "Growl"; + 1207 = "Magic"; + 1208 = "Laughter"; + 1209 = "Fast Footsteps"; + + 1400 = "Sound Sequence 0"; + 1401 = "Sound Sequence 1"; + 1402 = "Sound Sequence 2"; + 1403 = "Sound Sequence 3"; + 1404 = "Sound Sequence 4"; + 1405 = "Sound Sequence 5"; + 1406 = "Sound Sequence 6"; + 1407 = "Sound Sequence 7"; + 1408 = "Sound Sequence 8"; + 1409 = "Sound Sequence 9"; + 1411 + { + title = "Sound Sequence"; + arg1 = "Sound Sequence Number"; + } + 14001 = "Ambient Sound 1"; + 14002 = "Ambient Sound 2"; + 14003 = "Ambient Sound 3"; + 14004 = "Ambient Sound 4"; + 14005 = "Ambient Sound 5"; + 14006 = "Ambient Sound 6"; + 14007 = "Ambient Sound 7"; + 14008 = "Ambient Sound 8"; + 14009 = "Ambient Sound 9"; + 14010 = "Ambient Sound 10"; + 14011 = "Ambient Sound 11"; + 14012 = "Ambient Sound 12"; + 14013 = "Ambient Sound 13"; + 14014 = "Ambient Sound 14"; + 14015 = "Ambient Sound 15"; + 14016 = "Ambient Sound 16"; + 14017 = "Ambient Sound 17"; + 14018 = "Ambient Sound 18"; + 14019 = "Ambient Sound 19"; + 14020 = "Ambient Sound 20"; + 14021 = "Ambient Sound 21"; + 14022 = "Ambient Sound 22"; + 14023 = "Ambient Sound 23"; + 14024 = "Ambient Sound 24"; + 14025 = "Ambient Sound 25"; + 14026 = "Ambient Sound 26"; + 14027 = "Ambient Sound 27"; + 14028 = "Ambient Sound 28"; + 14029 = "Ambient Sound 29"; + 14030 = "Ambient Sound 30"; + 14031 = "Ambient Sound 31"; + 14032 = "Ambient Sound 32"; + 14033 = "Ambient Sound 33"; + 14034 = "Ambient Sound 34"; + 14035 = "Ambient Sound 35"; + 14036 = "Ambient Sound 36"; + 14037 = "Ambient Sound 37"; + 14038 = "Ambient Sound 38"; + 14039 = "Ambient Sound 39"; + 14040 = "Ambient Sound 40"; + 14041 = "Ambient Sound 41"; + 14042 = "Ambient Sound 42"; + 14043 = "Ambient Sound 43"; + 14044 = "Ambient Sound 44"; + 14045 = "Ambient Sound 45"; + 14046 = "Ambient Sound 46"; + 14047 = "Ambient Sound 47"; + 14048 = "Ambient Sound 48"; + 14049 = "Ambient Sound 49"; + 14050 = "Ambient Sound 50"; + 14051 = "Ambient Sound 51"; + 14052 = "Ambient Sound 52"; + 14053 = "Ambient Sound 53"; + 14054 = "Ambient Sound 54"; + 14055 = "Ambient Sound 55"; + 14056 = "Ambient Sound 56"; + 14057 = "Ambient Sound 57"; + 14058 = "Ambient Sound 58"; + 14059 = "Ambient Sound 59"; + 14060 = "Ambient Sound 60"; + 14061 = "Ambient Sound 61"; + 14062 = "Ambient Sound 62"; + 14063 = "Ambient Sound 63"; + 14064 = "Ambient Sound 64"; + 14065 + { + title = "Ambient Sound"; + arg1 = "Ambient Sound Number"; + } + } + + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 16; + sort = 1; + + 66 = "Gargoyle"; + 5 = "Fire Gargoyle"; + 68 + { + title = "Golem"; + width = 22; + } + 69 + { + title = "Golem Ghost"; + width = 22; + } + 45 + { + title = "Nitrogolem"; + width = 22; + } + 46 + { + title = "Nitrogolem Ghost"; + width = 22; + } + 15 = "Disciple Of D'Sparil"; + 6 + { + title = "Iron Lich"; + width = 40; + } + 7 + { + title = "D'Sparil"; + width = 28; + } + 56 = "D'Sparil Teleport Location"; + 9 + { + title = "Maulotaur"; + width = 28; + } + 64 + { + title = "Undead Warrior"; + width = 24; + } + 65 + { + title = "Undead Warrior Ghost"; + width = 24; + } + 70 + { + title = "Weredragon"; + width = 32; + } + 90 + { + title = "Sabreclaw"; + width = 20; + } + 92 + { + title = "Ophidian"; + width = 22; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + + 53 = "Dragon Claw"; + 2001 = "Ethereal Crossbow"; + 2002 = "Firemace"; + 2003 = "Phoenix Rod"; + 2004 = "Hellstaff"; + 2005 = "Gauntlets Of The Necromancer"; + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 20; + sort = 1; + + 10 = "Wand Crystal"; + 12 = "Crystal Geode"; + 13 = "Mace Spheres"; + 16 = "Pile Of Mace Spheres"; + 18 = "Ethereal Arrows"; + 19 = "Quiver Of Ethereal Arrows"; + 20 = "Lesser Runes"; + 21 = "Greater Runes"; + 22 = "Flame Orb"; + 23 = "Inferno Orb"; + 54 = "Claw Orb"; + 55 = "Energy Orb"; + 8 = "Bag Of Holding"; + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 20; + sort = 1; + + 81 = "Crystal Vial"; + 85 = "Silver Shield"; + 31 = "Enchanted Shield"; + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + + title = "Artifacts"; + width = 20; + sort = 1; + + 30 = "Morph Ovum"; + 32 = "Mystic Urn"; + 33 = "Torch"; + 34 = "Time Bomb Of The Ancients"; + 35 = "Map Scroll"; + 36 = "Chaos Device"; + 75 = "Shadowsphere"; + 82 = "Quartz Flask"; + 83 = "Wings Of Wrath"; + 84 = "Ring of Invulnerability"; + 86 = "Tome of Power"; + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 20; + sort = 1; + + 73 = "Green Key"; + 79 = "Blue Key"; + 80 = "Yellow Key"; + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + + 29 = "Small Pillar"; + 37 = "Stalagmite (Small)"; + 38 = "Stalagmite (Large)"; + 39 = "Stalactite (Small)"; + 40 = "Stalactite (Large)"; + 44 = "Barrel"; + 47 = "Brown Pillar"; + 87 = "Volcano"; + 2035 = "Gasbag"; + 43 = "Gasbag Generator"; + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + + 27 = "Serpent Torch"; + 28 = "Chandelier"; + 50 = "Wall Torch"; + 76 = "Fire Brazier"; + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + + 94 = "Blue Key Marker"; + 95 = "Green Key Marker"; + 96 = "Yellow Key Marker"; + 51 = "Hanging Corpse"; + 17 = "Hanging Skull"; + 24 = "Hanging Skull 2"; + 25 = "Hanging Skull 3"; + 26 = "Hanging Skull 4"; + 48 = "Moss"; + 49 = "Moss 2"; + } + + sectors + { + color = 7; + arrow = 0; + title = "Sector Actions"; + width = 16; + sort = 1; + + 9082 = "Silent Sector"; + 9998 = "Actor enters sector"; + 9989 = "Actor hits fake floor"; + 9996 = "Actor hits ceiling"; + 9999 = "Actor hits floor"; + 9997 = "Actor leaves sector"; + 9982 = "Eyes above fake ceiling"; + 9992 = "Eyes above fake floor"; + 9983 = "Eyes below fake ceiling"; + 9993 = "Eyes below fake floor"; + 9995 = "Player uses sector"; + 9994 = "Player uses wall"; + } + + slopes + { + color = 8; // Grey + arrow = 1; + title = "Slopes"; + width = 0; + sort = 1; + + 9511 + { + title = "Copy ceiling plane"; + arg1 = "tag"; + } + 9510 + { + title = "Copy floor plane"; + arg1 = "tag"; + } + 9503 + { + title = "Set ceiling slope"; + arg1 = "Z-Angle"; + } + 9502 + { + title = "Set floor slope"; + arg1 = "Z-Angle"; + } + 9501 + { + title = "Slope ceiling to here"; + arg1 = "Line ID"; + } + 9500 + { + title = "Slope floor to here"; + arg1 = "Line ID"; + } + } + + zdoom + { + color = 7; // Light Grey + arrow = 1; + title = "ZDoom"; + width = 0; + sort = 1; + + 9200 + { + title = "Decal"; + arg1 = "Decal ID"; + } + 5001 = "Pusher"; + 5002 = "Puller"; + 9024 + { + title = "Path Node"; + arg1 = "Next Node"; + arg2 = "Delay"; + } + 9026 + { + title = "Spark"; + arg1 = "Particles Amount"; + } + 9045 = "Deep Water"; + 9046 = "Secret"; + 9300 = "Polyobject Anchor"; + 9301 = "Polyobject Start Spot"; + 9302 = "Polyobject Start Spot (crush)"; + 9303 = "Polyobject Spawn(Hurts to touch)"; + 9001 = "Map Spot"; + 9013 = "Map Spot (gravity)"; + 9076 = "Hate target"; + } +} \ No newline at end of file diff --git a/Build/Configurations/ZDoom_Hexen.cfg b/Build/Configurations/ZDoom_Hexen.cfg new file mode 100644 index 00000000..a1cedf87 --- /dev/null +++ b/Build/Configurations/ZDoom_Hexen.cfg @@ -0,0 +1,3457 @@ +/*************************************************************\ + Doom Builder Game Configuration for ZDoom (Hexen) +\*************************************************************/ + +// This is the title to show for this game +game = "ZDoom (Hexen)"; + +// Map format determines the way the map will be loaded +mapformat = 2; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 0; + +// Engine specific features +mixtexturesflats = 1; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 999; + + +/* +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. +*/ + +// Texture sources +textures +{ + zdoom1 + { + start = "TX_START"; + end = "TX_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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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 = 3; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 1; MAP36 = 1; MAP37 = 1; MAP38 = 1; MAP39 = 1; MAP40 = 1; + MAP41 = 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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 12; + BLOCKMAP = 4; + BEHAVIOR = 8193; + SCRIPTS = 2; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Phased"; + 2 = "Light Sequence Start"; + 3 = "Light Sequence Special 1"; + 4 = "Light Sequence Special 2"; + 21 = "Light Phased"; + 22 = "Light Sequence Start"; + 23 = "Light Sequence Special 1"; + 24 = "Light Sequence Special 2"; + 26 = "Stairs Special 1"; + 27 = "Stairs Special 2"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt"; + 69 = "Damage Hellslime"; + 71 = "Damage Nukage"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 79 = "Low Friction"; + 80 = "Damage Super Hellslime"; + 81 = "Light Fire Flicker"; + 82 = "Damage -2 or -5% health (no protection)"; + 83 = "Damage -4 or -8% health (no protection)"; + 84 = "Scroll east + -2 or -5% health (no protection)"; + 198 = "Light Indoor 2"; + 199 = "Light Indoor 1"; + 200 = "Sky 2 (MAPINFO)"; + 201 = "Scroll North (slow)"; + 202 = "Scroll North (medium)"; + 203 = "Scroll North (fast)"; + 204 = "Scroll East (slow)"; + 205 = "Scroll East (medium)"; + 206 = "Scroll East (fast)"; + 207 = "Scroll South (slow)"; + 208 = "Scroll South (medium)"; + 209 = "Scroll South (fast)"; + 210 = "Scroll West (slow)"; + 211 = "Scroll West (medium)"; + 212 = "Scroll West (fast)"; + 213 = "Scroll NorthWest (slow)"; + 214 = "Scroll NorthWest (medium)"; + 215 = "Scroll NorthWest (fast)"; + 216 = "Scroll NorthEast (slow)"; + 217 = "Scroll NorthEast (medium)"; + 218 = "Scroll NorthEast (fast)"; + 219 = "Scroll SouthEast (slow)"; + 220 = "Scroll SouthEast (medium)"; + 221 = "Scroll SouthEast (fast)"; + 222 = "Scroll SouthWest (slow)"; + 223 = "Scroll SouthWest (medium)"; + 224 = "Scroll SouthWest (fast)"; +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "Repeatable Action"; + 8192 = "Monster Activates"; + 32768 = "Block Everything"; +} + +// LINEDEF ACTIVATIONS +// Make sure these are in order from lowest value to highest value +linedefactivations +{ + 0 = "Player walks over"; + 1024 = "Player presses Use"; + 2048 = "Monster walks over"; + 3072 = "Projectile hits"; + 4096 = "Player bumps"; + 5120 = "Projectile flies over"; + 6144 = "Player presses Use (PassThru)"; +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + + 20 + { + title = "H Floor Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 21 + { + title = "H Floor Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 22 + { + title = "H Floor Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 23 + { + title = "H Floor Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 24 + { + title = "H Floor Raise to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 25 + { + title = "H Floor Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 28 + { + title = "H Floor Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 35 + { + title = "H Floor Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 36 + { + title = "H Floor Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 46 + { + title = "H Floor Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 66 + { + title = "H Floor Lower Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 67 + { + title = "H Floor Raise Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 68 + { + title = "H Floor Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Target Height (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 40 + { + title = "H Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 41 + { + title = "H Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 42 + { + title = "H Ceiling Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 43 + { + title = "H Ceiling Crush Once"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 44 + { + title = "H Ceiling Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 45 + { + title = "H Ceiling Crush Once and Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 69 + { + title = "H Ceiling Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 95 + { + title = "H Floor and Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 96 + { + title = "H Floor and Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 60 + { + title = "H Platform Perpetual Move"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 61 + { + title = "H Platform Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 62 + { + title = "H Platform Lower Wait Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 63 + { + title = "H Platform Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 64 + { + title = "H Platform Raise Wait Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 65 + { + title = "H Platform Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 29 + { + title = "H Pillar Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 30 + { + title = "H Pillar Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Floor Movement Amount"; + arg4 = "Ceiling Movement Amount"; + mark1 = 1; + } + + 94 + { + title = "H Pillar Build and Crush"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 26 + { + title = "H Stairs Build Down"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 27 + { + title = "H Stairs Build Up"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 31 + { + title = "H Stairs Build Down (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 32 + { + title = "H Stairs Build Up (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 10 + { + title = "H Door Close"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 11 + { + title = "H Door Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 12 + { + title = "H Door Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 13 + { + title = "H Door Locked Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Key Number"; + arg5 = "Light Tag"; + mark1 = 1; + mark5 = 1; + } + + 80 + { + title = "H Script Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 81 + { + title = "H Script Suspend"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 82 + { + title = "H Script Terminate"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 83 + { + title = "H Script Locked Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Key Number"; + } + + 110 + { + title = "H Light Raise"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 111 + { + title = "H Light Lower"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 112 + { + title = "H Light Change"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + mark1 = 1; + } + + 113 + { + title = "H Light Fade"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + arg3 = "Fade Duration"; + mark1 = 1; + } + + 114 + { + title = "H Light Flow"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Fade Duration"; + mark1 = 1; + } + + 115 + { + title = "H Light Flicker"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + mark1 = 1; + } + + 116 + { + title = "H Light Strobe"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Brightest Duration"; + arg5 = "Darkest Duration"; + mark1 = 1; + } + + 121 + { + title = "H Line Identification"; + arg1 = "Set Line ID"; + } + + 100 + { + title = "H Scroll Texture Left"; + arg1 = "Scroll Speed"; + } + + 101 + { + title = "H Scroll Texture Right"; + arg1 = "Scroll Speed"; + } + + 102 + { + title = "H Scroll Texture Up"; + arg1 = "Scroll Speed"; + } + + 103 + { + title = "H Scroll Texture Down"; + arg1 = "Scroll Speed"; + } + + 129 + { + title = "H Use Puzzle Item"; + arg1 = "Item Number"; + arg2 = "Script Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 140 + { + title = "H Sector Change Sound"; + arg1 = "Sector Tag"; + arg2 = "Sound Number"; + mark1 = 1; + } + + 120 + { + title = "H Earthquake"; + arg1 = "Intensity"; + arg2 = "Duration"; + arg3 = "Damage Radius"; + arg4 = "Tremor Radius"; + arg5 = "Thing Tag"; + mark5 = 2; + } + + 74 + { + title = "H Teleport To Map"; + arg1 = "Map Number"; + arg2 = "Position"; + } + + 75 + { + title = "H End Game"; + } + + 70 + { + title = "H Teleport"; + arg1 = "Target MapSpot Tag (0=ignore)"; + arg2 = "Target Sector Tag (0=ignore)"; + mark1 = 2; + mark2 = 1; + } + + 71 + { + title = "H Teleport (silent)"; + arg1 = "Target MapSpot Tag (0=ignore)"; + arg2 = "Use Orientation of MapSpot"; + arg3 = "Target Sector Tag (0=ignore)"; + mark1 = 2; + mark3 = 1; + } + + 72 + { + title = "H Thing Thrust"; + arg1 = "Thrust Angle"; + arg2 = "Thrust Distance"; + } + + 73 + { + title = "H Thing Damage"; + arg1 = "Damage Amount"; + } + + 130 + { + title = "H Thing Activate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 131 + { + title = "H Thing Deactivate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 132 + { + title = "H Thing Remove"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 133 + { + title = "H Thing Destroy"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 134 + { + title = "H Thing Projectile"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 136 + { + title = "H Thing Projectile with Gravity"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 135 + { + title = "H Thing Spawn"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 137 + { + title = "H Thing Spawn (silent)"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 1 + { + title = "H Polyobj Start Line"; + arg1 = "Polyobj Number"; + arg2 = "Mirror Polyobj Number"; + arg3 = "Sound Number"; + } + + 2 + { + title = "H Polyobj Rotate Left"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 3 + { + title = "H Polyobj Rotate Right"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 4 + { + title = "H Polyobj Move"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 5 + { + title = "H Polyobj Explicit Line"; + arg1 = "Polyobj Number"; + arg2 = "Rendering order"; + arg3 = "Mirror Polyobj Number"; + arg4 = "Sound Number"; + } + + 6 + { + title = "H Polyobj Move (8px)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 7 + { + title = "H Polyobj Door Swing"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Delay"; + } + + 8 + { + title = "H Polyobj Door Slide"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + arg5 = "Delay"; + } + + 9 + { + title = "H Line Horizon"; + } + + 90 + { + title = "H Polyobj Rotate Left (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 91 + { + title = "H Polyobj Rotate Right (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 92 + { + title = "H Polyobj Move (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 93 + { + title = "H Polyobj Move (8px, override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 181 + { + title = "H Plane Align (slope)"; + arg1 = "Align Floor"; + arg2 = "Align Ceiling"; + } + + 241 + { + title = "H Floor Lower to Lowest TxTy"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 242 + { + title = "H Floor Lower to Highest"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Adjust Target Height"; + mark1 = 1; + } + + 238 + { + title = "H Floor Raise to Lowest Ceiling"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 239 + { + title = "H Floor Raise by TxTy"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 240 + { + title = "H Floor Raise by Texture"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 138 + { + title = "H Floor Waggle"; + arg1 = "Sector Tag"; + arg2 = "Amplitude"; + arg3 = "Frequency"; + arg4 = "Phase Offset"; + arg5 = "Duration"; + mark1 = 1; + } + + 250 + { + title = "H Floor Donut"; + arg1 = "Sector Tag"; + arg2 = "Pillar Movement Speed"; + arg3 = "Stairs Movement Speed"; + mark1 = 1; + } + + 235 + { + title = "H Floor Transfer Trigger"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 236 + { + title = "H Floor Transfer Numeric"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 200 + { + title = "H Floor Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + arg4 = "Movement Target"; + arg5 = "Flags"; + mark1 = 1; + } + + 199 + { + title = "H Ceiling Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 198 + { + title = "H Ceiling Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 193 + { + title = "H Ceiling Lower Instantly"; + arg1 = "Sector Tag"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 194 + { + title = "H Ceiling Raise Instantly"; + arg1 = "Sector Tag"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 252 + { + title = "H Ceiling Raise to Nearest Ceiling"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 192 + { + title = "H Ceiling Lower to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 253 + { + title = "H Ceiling Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 254 + { + title = "H Ceiling Lower to Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 195 + { + title = "H Ceiling Crush Once and Open A"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 196 + { + title = "H Ceiling Crush Start A"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 197 + { + title = "H Ceiling Crush Start A (silent)"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 255 + { + title = "H Ceiling Crush Once and Open A (silent)"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 201 + { + title = "H Ceiling Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + arg4 = "Movement Target"; + arg5 = "Flags"; + mark1 = 1; + } + + 205 + { + title = "H Ceiling Generic Crush"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Amount"; + arg4 = "Silent"; + arg5 = "Crush Damage"; + mark1 = 1; + } + + 251 + { + title = "H Floor and Ceiling Lower and Raise"; + arg1 = "Sector Tag"; + arg2 = "Floor Movement Speed"; + arg3 = "Ceiling Movement Speed"; + mark1 = 1; + } + + 245 + { + title = "H Elevator Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 246 + { + title = "H Elevator Raise to Activated Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 247 + { + title = "H Elevator Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 217 + { + title = "H Stairs Build Doom"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 204 + { + title = "H Stairs Generic Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Flags"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 207 + { + title = "H Platform Perpetual Move (lip)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Lip Amount"; + mark1 = 1; + } + + 206 + { + title = "H Platform Lower Wait Raise (lip)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Lip Amount"; + mark1 = 1; + } + + 228 + { + title = "H Platform Raise Tx0"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 230 + { + title = "H Platform Raise by Value Tx (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 231 + { + title = "H Platform Toggle Ceiling"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 203 + { + title = "H Platform Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Type"; + arg5 = "Movement Amount"; + mark1 = 1; + } + + 215 + { + title = "H Teleport To Line"; + arg1 = "Source Line Tag"; + arg2 = "Target Line Tag"; + arg3 = "Reverse Angle"; + } + + 243 + { + title = "H End Normal"; + arg1 = "Position"; + } + + 244 + { + title = "H End Secret"; + arg1 = "Position"; + } + + 232 + { + title = "H Light Strobe Doom"; + arg1 = "Sector Tag"; + arg2 = "Brightest Duration"; + arg3 = "Darkest Duration"; + mark1 = 1; + } + + 233 + { + title = "H Light Change to Darkest"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 234 + { + title = "H Light Change to Brightest"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 212 + { + title = "H Sector Color"; + arg1 = "Sector Tag"; + arg2 = "Red"; + arg3 = "Green"; + arg4 = "Blue"; + mark1 = 1; + } + + 213 + { + title = "H Sector Fade"; + arg1 = "Sector Tag"; + arg2 = "Red"; + arg3 = "Green"; + arg4 = "Blue"; + mark1 = 1; + } + + 214 + { + title = "H Sector Damage"; + arg1 = "Sector Tag"; + arg2 = "Damage Amount"; + arg3 = "Meaning Of Death"; + mark1 = 1; + } + + 216 + { + title = "H Sector Gravity"; + arg1 = "Sector Tag"; + arg2 = "Gravity Integral"; + arg3 = "Gravity Fractional"; + mark1 = 1; + } + + 219 + { + title = "H Sector Friction"; + arg1 = "Sector Tag"; + arg2 = "Friction Amount"; + mark1 = 1; + } + + 218 + { + title = "H Sector Wind"; + arg1 = "Sector Tag"; + arg2 = "Wind Strength"; + arg3 = "Wind Angle"; + arg4 = "Line Vector"; + mark1 = 1; + } + + 220 + { + title = "H Sector Current"; + arg1 = "Sector Tag"; + arg2 = "Current Strength"; + arg3 = "Current Angle"; + arg4 = "Line Vector"; + mark1 = 1; + } + + 183 + { + title = "H Sector Floor Alignment to Line"; + arg1 = "Line Tag"; + arg2 = "Line Side"; + } + + 184 + { + title = "H Sector Ceiling Alignment to Line"; + arg1 = "Line Tag"; + arg2 = "Line Side"; + } + + 185 + { + title = "H Sector Rotate Alignment"; + arg1 = "Sector Tag"; + arg2 = "Floor Angle"; + arg3 = "Ceiling Angle"; + mark1 = 1; + } + + 186 + { + title = "H Sector Ceiling Panning"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 187 + { + title = "H Sector Floor Panning"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 188 + { + title = "H Sector Ceiling Scale"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 189 + { + title = "H Sector Floor Scale"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 248 + { + title = "H Thing Heal"; + arg1 = "Health Amount"; + } + + 229 + { + title = "H Thing Goal"; + arg1 = "Monster Thing Tag"; + arg2 = "Target Thing Tag"; + arg3 = "Delay"; + mark1 = 2; + mark2 = 2; + } + + 226 + { + title = "H Script Execute Always"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 208 + { + title = "H Translucent Line"; + arg1 = "Line Tag"; + arg2 = "Transparency Amount"; + } + + 221 + { + title = "H Scroll Texture Both"; + arg1 = "Line Tag"; + arg2 = "Left Speed"; + arg3 = "Right Speed"; + arg4 = "Down Speed"; + arg5 = "Up Speed"; + } + + 225 + { + title = "H Scroll Texture by Offsets"; + } + + 222 + { + title = "H Scroll Texture Model"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + } + + 223 + { + title = "H Scroll Floor"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + arg3 = "Method"; + arg4 = "Horizontal Speed"; + arg5 = "Vertical Speed"; + } + + 224 + { + title = "H Scroll Ceiling"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + arg3 = "Method"; + arg4 = "Horizontal Speed"; + arg5 = "Vertical Speed"; + } + + 209 + { + title = "H Transfer Heights"; + arg1 = "Sector Tag"; + arg2 = "When"; + mark1 = 1; + } + + 210 + { + title = "H Transfer Floor Brightness"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 211 + { + title = "H Transfer Ceiling Brightness"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 227 + { + title = "H Point Pusher and Puller Force"; + arg1 = "Sector Tag"; + arg2 = "Thing Tag"; + arg3 = "Strength"; + arg4 = "Line Vector"; + mark1 = 1; + mark2 = 2; + } + + 237 + { + title = "H Camera Change"; + arg1 = "Thing Tag"; + arg2 = "Everyone"; + arg3 = "Movement Resets"; + mark1 = 1; + } + + 191 + { + title = "H Player Property"; + arg1 = "Everyone"; + arg2 = "Toggle"; + arg3 = "Property"; + } + + 249 + { + title = "H Door Close Wait Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 202 + { + title = "H Door Generic"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Type"; + arg4 = "Delay"; + arg5 = "Lock"; + mark1 = 1; + } + + 38 + { + title = "H Ceiling Waggle"; + arg1 = "Sector Tag"; + arg2 = "Amplitude"; + arg3 = "Frequency"; + arg4 = "Phase Offset"; + arg5 = "Duration"; + mark1 = 1; + } + + 15 + { + title = "H Autosave"; + } + + 76 + { + title = "H Teleport Other"; + arg1 = "Thing ID"; + arg2 = "Target Thing ID"; + arg3 = "Fog"; + mark1 = 2; + mark2 = 2; + } + + 77 + { + title = "H Teleport Group"; + arg1 = "Group Thing ID"; + arg2 = "Source Thing ID"; + arg3 = "Target Thing ID"; + arg4 = "Move source"; + arg5 = "Fog"; + mark1 = 2; + mark2 = 2; + mark3 = 2; + } + + 78 + { + title = "H Teleport in sector"; + arg1 = "Sector Tag"; + arg2 = "Source Thing ID"; + arg3 = "Target Thing ID"; + arg4 = "bFog"; + arg5 = "Group Thing ID"; + mark1 = 1; + mark2 = 2; + mark3 = 2; + mark5 = 2; + } + + 117 + { + title = "H Light Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 119 + { + title = "H Thing Damage"; + arg1 = "Thing ID"; + arg2 = "Damage"; + arg3 = "Means of Death"; + mark1 = 2; + } + + 125 + { + title = "H Thing Move"; + arg1 = "Thing ID"; + arg2 = "Target Thing ID"; + mark1 = 2; + mark2 = 2; + } + + 127 + { + title = "H Thing Set Special"; + arg1 = "Thing ID"; + arg2 = "Special"; + arg3 = "Special arg 1"; + arg4 = "Special arg 2"; + arg5 = "Special arg 3"; + mark1 = 2; + } + + 128 + { + title = "H Thing Thrust Z"; + arg1 = "Thing ID"; + arg2 = "Force"; + arg3 = "Down Up"; + arg4 = "Add Set"; + mark1 = 2; + } + + 139 + { + title = "H Thing Spawn Facing"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "No Fog"; + arg4 = "New Thing ID"; + mark1 = 2; + } + + 175 + { + title = "H Thing Projectile Intercept"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "Speed"; + arg4 = "Thing ID target"; + arg5 = "New Thing ID"; + mark1 = 2; + mark4 = 2; + } + + 176 + { + title = "H Thing ID Change"; + arg1 = "Old Thing ID"; + arg2 = "New Thing ID"; + mark1 = 2; + } + + 177 + { + title = "H Thing Hate"; + arg1 = "Hater ID"; + arg2 = "Hatee ID"; + arg3 = "Flags"; + mark1 = 2; + mark2 = 2; + } + + 178 + { + title = "H Thing Aimed Projectile"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "Speed"; + arg4 = "Target Thing ID"; + arg5 = "New Thing ID"; + mark1 = 2; + mark4 = 2; + } + + 179 + { + title = "H Change Skill"; + arg1 = "New Skill Level"; + } + + 180 + { + title = "H Thing Set Translation"; + arg1 = "Thing ID"; + arg2 = "Translation index"; + } + + 182 + { + title = "H Line Mirror"; + } + + 190 + { + title = "H Static Init"; + arg1 = "Sector Tag"; + arg2 = "Property"; + arg3 = "Flip Sky"; + } + + 50 + { + title = "H Transfer Brightness Level"; + arg1 = "Sector Tag"; + arg2 = "Method"; + mark1 = 1; + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Dormant"; + 32 = "Fighter class"; + 64 = "Cleric class"; + 128 = "Mage class"; + 256 = "Singleplayer"; + 512 = "Cooperative"; + 1024 = "Deathmatch"; + 2048 = "Translucent (25%)"; + 4096 = "Invisible"; + 8192 = "Friendly"; + 16384 = "Frozen while inactive"; +} + +// 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 = 1792; // 256 + 512 + 1024 + + +// THING TYPES +// Color numbers are the basic colors +// Arrow indicates if the things will have an arrow to indicate direction +// Sort: 0 = List as in configuration, 1 = List alphabetically +// Blocking: 0 = No, 1 = Completely, 2 = True-Height +// Error: +// 0 = Dont check for errors +// 1 = Must be inside map (default) +// 2 = Must be inside map and may not collide +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "CLERA1"; + } + 2 + { + title = "Player 2 start"; + sprite = "CLERA1"; + } + 3 + { + title = "Player 3 start"; + sprite = "CLERA1"; + } + 4 + { + title = "Player 4 start"; + sprite = "CLERA1"; + } + 9100 + { + title = "Player 5 Start"; + sprite = "CLERA1"; + } + 9101 + { + title = "Player 6 Start"; + sprite = "CLERA1"; + } + 9102 + { + title = "Player 7 Start"; + sprite = "CLERA1"; + } + 9103 + { + title = "Player 8 Start"; + sprite = "CLERA1"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "CLERR0"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + error = 1; + + 14 + { + title = "Teleport Landing"; + sprite = "TELEA0"; + } + 140 + { + title = "Teleport Smoke"; + sprite = "TSMKA0"; + } + 9044 + { + title = "Teleport with Z Height"; + sprite = "TELEA0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + error = 2; + + 107 + { + title = "Centaur"; + sprite = "CENTA1"; + } + 10060 + { + title = "Affrit"; + sprite = "FDMNA1"; + } + 115 + { + title = "Slaughtar"; + sprite = "CENTF1"; + } + 34 + { + title = "Reiver"; + sprite = "WRTHA1"; + } + 10011 + { + title = "Reiver (buried)"; + sprite = "WRTHA1"; + } + 254 + { + title = "Dragon Lich"; + sprite = "DRAGC1"; + arg1 = "Destination Thing Tag"; + arg2 = "Destination Thing Tag"; + arg3 = "Destination Thing Tag"; + arg4 = "Destination Thing Tag"; + arg5 = "Destination Thing Tag"; + } + 10030 + { + title = "Ettin"; + sprite = "ETTNA1"; + width = 25; + } + 8020 + { + title = "Wendigo"; + sprite = "ICEYA1"; + width = 22; + } + 31 + { + title = "Green Chaos Serpent"; + sprite = "DEMNA1"; + width = 32; + } + 8080 + { + title = "Brown Chaos Serpent"; + sprite = "DEM2A1"; + width = 32; + } + 114 + { + title = "Dark Bishop"; + sprite = "BISHA1"; + width = 22; + } + 121 + { + title = "Stalker"; + sprite = "SSPTB0"; + width = 32; + } + 120 + { + title = "Stalker Boss"; + sprite = "SSPTD0"; + width = 32; + } + 10100 + { + title = "Zedek (fighter)"; + sprite = "PLAYE8"; + width = 16; + } + 10101 + { + title = "Traductus (cleric)"; + sprite = "CLERE8"; + width = 16; + } + 10102 + { + title = "Menelkir (mage)"; + sprite = "MAGEE8"; + width = 16; + } + 10080 + { + title = "Heresiarch"; + sprite = "SORCA1"; + width = 40; + } + 10200 + { + title = "Korax"; + sprite = "KORXA1"; + width = 65; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + + 10 + { + title = "Serpent Staff"; + sprite = "WCSSA0"; + } + 8010 + { + title = "Timon's Axe"; + sprite = "WFAXA0"; + } + 53 + { + title = "Frost Shards"; + sprite = "WMCSA0"; + } + 8009 + { + title = "Firestorm"; + sprite = "WCFMA0"; + } + 123 + { + title = "Hammer Of Retribution"; + sprite = "WFHMA0"; + } + 8040 + { + title = "Arc Of Death"; + sprite = "WMLGG0"; + } + 18 + { + title = "Wraithverge Piece 1"; + sprite = "WCH1A0"; + } + 19 + { + title = "Wraithverge Piece 2"; + sprite = "WCH2A0"; + } + 20 + { + title = "Wraithverge Piece 3"; + sprite = "WCH3A0"; + } + 12 + { + title = "Quietus Piece 1"; + sprite = "WFR1A0"; + } + 13 + { + title = "Quietus Piece 2"; + sprite = "WFR2A0"; + } + 16 + { + title = "Quietus Piece 3"; + sprite = "WFR3A0"; + } + 21 + { + title = "BloodScourge Piece 1"; + sprite = "WMS1A0"; + } + 22 + { + title = "BloodScourge Piece 2"; + sprite = "WMS2A0"; + } + 23 + { + title = "BloodScourge Piece 3"; + sprite = "WMS3A0"; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Mana"; + width = 8; + sort = 1; + + 122 + { + title = "Blue Mana"; + sprite = "MAN1H0"; + } + 124 + { + title = "Green Mana"; + sprite = "MAN2H0"; + } + 8004 + { + title = "Combine Mana"; + sprite = "MAN3A0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 20; + sort = 1; + + 8005 + { + title = "Mesh Armor"; + sprite = "ARM1A0"; + } + 8006 + { + title = "Falcon Shield"; + sprite = "ARM2A0"; + } + 8007 + { + title = "Platinum Helm"; + sprite = "ARM3A0"; + } + 8008 + { + title = "Amulet Of Warding"; + sprite = "ARM4A0"; + } + 81 + { + title = "Crystal Vial"; + sprite = "PTN1A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Artifacts"; + width = 20; + sort = 1; + + 30 + { + title = "Porkalator"; + sprite = "ARTIPORK"; + } + 32 + { + title = "Mystic Urn"; + sprite = "ARTISPHL"; + } + 33 + { + title = "Torch"; + sprite = "ARTITRCH"; + } + 36 + { + title = "Chaos Device"; + sprie = "ARTIATLP"; + } + 82 + { + title = "Quartz Flask"; + sprite = "ARTIPTN2"; + } + 83 + { + title = "Wings Of Wrath"; + sprite = "ARTISOAR"; + } + 84 + { + title = "Icon Of The Defender"; + sprite = "ARTIINVU"; + } + 86 + { + title = "Dark Servant"; + sprite = "ARTISUMN"; + } + 10110 + { + title = "Disc Of Repulsion"; + sprite = "ARTIBLST"; + } + 10120 + { + title = "Mystic Ambit Incant"; + sprite = "ARTIHRAD"; + } + 10040 + { + title = "Banishment Device"; + sprite = "ARTITELO"; + } + 8000 + { + title = "Flechette"; + sprite = "ARTIPSBG"; + } + 8002 + { + title = "Boots Of Speed"; + sprite = "ARTISPED"; + } + 8003 + { + title = "Crater Of Might"; + sprite = "ARTIBMAN"; + } + 8041 + { + title = "Dragonskin Bracers"; + sprite = "ARTIBRAC"; + } + } + + puzzle + { + color = 7; // Light Grey + arrow = 1; + title = "Puzzle Items"; + width = 20; + sort = 1; + + 9007 + { + title = "Daemon Codex"; + sprite = "ARTIBOK1"; + } + 9008 + { + title = "Liber Obscura"; + sprite = "ARTIBOK2"; + } + 9004 + { + title = "Ruby Planet"; + sprite = "ARTIGEMR"; + } + 9005 + { + title = "Emerald Planet 1"; + sprite = "ARTIGEMG"; + } + 9009 + { + title = "Emerald Planet 2"; + sprite = "ARTIGMG2"; + } + 9006 + { + title = "Sapphire Planet 1"; + sprite = "ARTIGEMB"; + } + 9010 + { + title = "Sapphire Planet 2"; + sprite = "ARTIGMB2"; + } + 9018 + { + title = "Clock Gear (steel)"; + sprite = "ARTIGEAR"; + } + 9019 + { + title = "Clock Gear (bronze)"; + sprite = "ARTIGER2"; + } + 9020 + { + title = "Clock Gear (steel and bronze)"; + sprite = "ARTIGER3"; + } + 9021 + { + title = "Clock Gear (bronze and steel)"; + sprite = "ARTIGER4"; + } + 9003 + { + title = "Heart Of D'Sparil"; + sprite = "ARTIBGEM"; + } + 9012 + { + title = "Pedestal Of D'Sparil"; + sprite = "GMPDA0"; + width = 10; + } + 9002 + { + title = "Yorick's Skull"; + sprite = "ARTISKLL"; + } + 9011 + { + title = "Yorick's Statue"; + sprite = "STWNA0"; + width = 10; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 8; + sort = 1; + + 8030 + { + title = "Steel Key"; + sprite = "KEY1A0"; + } + 8031 + { + title = "Cave Key"; + sprite = "KEY2A0"; + } + 8032 + { + title = "Axe Key"; + sprite = "KEY3A0"; + } + 8033 + { + title = "Fire Key"; + sprite = "KEY4A0"; + } + 8034 + { + title = "Emerald Key"; + sprite = "KEY5A0"; + } + 8035 + { + title = "Dungeon Key"; + sprite = "KEY6A0"; + } + 8036 + { + title = "Silver Key"; + sprite = "KEY7A0"; + } + 8037 + { + title = "Rusty Key"; + sprite = "KEY8A0"; + } + 8038 + { + title = "Horn Key"; + sprite = "KEY9A0"; + } + 8039 + { + title = "Swamp Key"; + sprite = "KEYAA0"; + } + 8200 + { + title = "Castle Key"; + sprite = "KEYBA0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + + 8064 + { + title = "Suit Of Armor"; + sprite = "SUITA0"; + width = 16; + } + 77 + { + title = "Battle Rag Banner"; + sprie = "BNR1A0"; + width = 8; + } + 8100 + { + title = "Barrel"; + sprite = "BARLA0"; + width = 15; + } + 8065 + { + title = "Bell"; + sprite = "BBLLA0"; + width = 56; + } + 103 + { + title = "Pillar With Vase"; + sprite = "VASEA0"; + width = 12; + } + 5 + { + title= "Winged Statue"; + sprite = "STTWA0"; + width = 10; + } + 98 + { + title = "Small Rock (brown)"; + sprite = "RKBSA0"; + width = 15; + } + 97 + { + title = "Big Rock (brown)"; + sprite = "RKBLA0"; + width = 17; + } + 99 + { + title = "Big Rock (grey)"; + sprite = "RKBKA0"; + } + 57 + { + title = "Stalactite (small)"; + sprite = "SLC3A0"; + width = 8; + } + 56 + { + title = "Stalactite (medium)"; + sprite = "SLC2A0"; + width = 6; + } + 52 + { + title = "Stalactite (large)"; + sprite = "SLC1A0"; + width = 8; + } + 48 + { + title = "Stalagmite (pillar)"; + sprite = "SGMPA0"; + width = 8; + } + 51 + { + title = "Stalagmite (small)"; + sprite = "SGM3A0"; + width = 8; + } + 50 + { + title = "Stalagmite (medium)"; + sprite = "SGM2A0"; + width = 6; + } + 49 + { + title = "Stalagmite (large)"; + sprite = "SGM1A0"; + width = 8; + } + 80 + { + title = "Gnarled Tree 1"; + sprite = "TRE6A0"; + width = 22; + } + 87 + { + title = "Gnarled Tree 2"; + sprite = "TRE7A0"; + width = 22; + } + 78 + { + title = "Tall Tree 1"; + sprite = "TRE5A0"; + width = 15; + } + 79 + { + title = "Tall Tree 2"; + sprite = "TRE4A0"; + width = 15; + } + 8067 + { + title = "Iron Maiden"; + sprite = "IRONA0"; + width = 12; + } + 63 + { + title = "Tombstone (RIP)"; + sprite = "TMS1A0"; + width = 10; + } + 64 + { + title = "Tombstone (Shane)"; + sprite = "TMS2A0"; + width = 10; + } + 65 + { + title = "Tombstone (slimy)"; + sprite = "TMS3A0"; + width = 10; + } + 66 + { + title = "Tombstone (Brian R)"; + sprite = "TMS4A0"; + width = 10; + } + 67 + { + title = "Tombstone (cross circle)"; + sprite = "TMS5A0"; + width = 10; + } + 68 + { + title = "Tombstone (small cross)"; + sprite = "TMS6A0"; + width = 8; + } + 69 + { + title = "Tombstone (Brian P)"; + sprite = "TMS7A0"; + width = 8; + } + 96 + { + title = "Ice Spike (tiny)"; + sprite = "ICM4A0"; + width = 4; + } + 95 + { + title = "Ice Spike (small)"; + sprite = "ICM3A0"; + width = 5; + } + 94 + { + title = "Ice Spike (medium)"; + sprite = "ICM2A0"; + width = 5; + } + 93 + { + title = "Ice Spike (large)"; + sprite = "ICM1A0"; + width = 8; + } + 92 + { + title = "Icicle (tiny)"; + sprite = "ICT4A0"; + width = 4; + } + 91 + { + title = "Icicle (small)"; + sprite = "ICT3A0"; + width = 4; + } + 90 + { + title = "Icicle (medium)"; + sprite = "ICT2A0"; + width = 5; + } + 89 + { + title = "Icicle (large)"; + sprite = "ICT1A0"; + width = 8; + } + 8068 + { + title = "Evergreen Tree"; + sprite = "XMASA0"; + width = 11; + } + 8062 + { + title = "Leafless Tree"; + sprite = "TRDTA0"; + width = 15; + } + 24 + { + title = "Dead Tree"; + sprite = "TRE1A0"; + width = 10; + } + 25 + { + title = "Dead Tree (destructable)"; + sprite = "TRE1A0"; + width = 15; + } + 60 + { + title = "Dead Tree (mossy)"; + sprite = "SWMVA0"; + width = 8; + } + 26 + { + title = "Mossy Tree 1"; + sprite = "TRE2A0"; + width = 10; + } + 27 + { + title = "Mossy Tree 2"; + sprite = "TRE3A0"; + width = 10; + } + 88 + { + title = "Log"; + sprite = "SLTRA0"; + } + 29 + { + title= "Tree Stump (bare)"; + sprite = "STM2A0"; + width = 12; + } + 28 + { + title= "Tree Stump (burned)"; + sprite = "STM1A0"; + width = 12; + } + 37 + { + title = "Tree Stump 1"; + sprite = "STM3A0"; + } + 38 + { + title = "Tree Stump 2"; + sprite = "STM4A0"; + } + 8051 + { + title = "Bronze Gargoyle (short)"; + sprite = "GAR8A0"; + width = 14; + } + 8047 + { + title = "Bronze Gargoyle (tall)"; + sprite = "GAR4A0"; + width = 14; + } + 8044 + { + title = "Rusty Gargoyle (tall)"; + sprite = "GAR1A0"; + width = 14; + } + 76 + { + title = "Ice Gargoyle (short)"; + sprite = "STT5A0"; + width = 14; + } + 73 + { + title = "Ice Gargoyle (tall)"; + sprite = "STT3A0"; + width = 14; + } + 8050 + { + title = "Lava Gargoyle (short)"; + sprite = "GAR7A0"; + width = 14; + } + 8046 + { + title = "Lava Gargoyle (tall)"; + sprite = "GAR3A0"; + width = 14; + } + 8049 + { + title = "Dark Lava Gargoyle (short)"; + sprite = "GAR6A0"; + width = 14; + } + 8045 + { + title = "Dark Lava Gargoyle (tall)"; + sprite = "GAR2A0"; + width = 14; + } + 74 + { + title = "Stone Gargoyle (short)"; + sprite = "STT4A0"; + width = 14; + } + 72 + { + title = "Stone Gargoyle (tall)"; + sprite = "STT2A0"; + width = 14; + } + 8052 + { + title = "Steel Gargoyle (short)"; + sprite = "GAR9A0"; + width = 14; + } + 8048 + { + title = "Steel Gargoyle (tall)"; + sprite = "GAR5A0"; + width = 14; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 20; + sort = 1; + + 17 + { + title = "Chandelier (lit)"; + sprite = "CDLRA0"; + } + 8063 + { + title = "Chandelier (unlit)"; + sprite = "CDLRD0"; + } + 8066 + { + title = "Blue Candle (lit)"; + sprite = "CANDA0"; + } + 8502 + { + title = "Candle With Web (unlit)"; + sprite = "TST3A0"; + } + 8503 + { + title = "Small Gray Candle (unlit)"; + sprite = "TST4A0"; + } + 8504 + { + title = "Small Candle (unlit)"; + sprite = "TST5A0"; + } + 119 + { + title = "3 Candles (lit)"; + sprite = "CNDLA0"; + } + 10500 + { + title = "Small Flame (timed)"; + sprite = "FFSMA0"; + } + 10501 + { + title = "Small Flame"; + sprite = "FFSMA0"; + } + 10502 + { + title = "Large Flame (timed)"; + sprite = "FFLGD0"; + } + 10503 + { + title = "Large Flame"; + sprite = "FFLGD0"; + } + 54 + { + title = "Wall Torch (lit)"; + sprite = "WLTRB0"; + } + 55 + { + title = "Wall Torch (unlit)"; + sprite = "WLTRI0"; + } + 8042 + { + title = "Minotaur Statue (lit)"; + sprite = "FBULB0"; + } + 8043 + { + title = "Minotaur Statue (unlit)"; + sprite = "FBULH0"; + } + 8069 + { + title = "Cauldron (lit)"; + sprite = "CDRNG0"; + width = 12; + } + 8070 + { + title = "Cauldron (unlit)"; + sprite = "CDRNA0"; + width = 12; + } + 8060 + { + title = "Skull With Flame"; + sprite = "FSKLA0"; + width = 5; + } + 8061 + { + title = "Brazier With Flame"; + sprite = "BRTRB0"; + width = 6; + } + 116 + { + title = "Twined Torch (lit)"; + sprite = "TWTRA0"; + width = 10; + } + 117 + { + title = "Twined Torch (unlit)"; + sprite = "TWTRI0"; + width = 10; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 20; + sort = 1; + + 8071 + { + title = "Chain (short)"; + sprite = "CHNSA0"; + width = 4; + } + 8072 + { + title = "Chain (long)"; + sprite = "CHNSB0"; + width = 4; + } + 8073 + { + title = "Hook With Heart"; + sprite = "CHNSC0"; + width = 4; + } + 8077 + { + title = "Hook With Skull"; + sprite = "CHNSG0"; + width = 4; + } + 8074 + { + title = "Chain With Large Hook"; + sprite = "CHNSD0"; + width = 4; + } + 8075 + { + title = "Chain With Small Hook"; + sprite = "CHNSE0"; + width = 4; + } + 8076 + { + title = "Chain with Spike Ball"; + sprite = "CHNSF0"; + width = 4; + } + 8103 + { + title = "Hanging Bucket"; + sprite = "BCKTA0"; + width = 8; + } + 6 + { + title = "Tiny Rock (mossy)"; + sprite = "RCK1A0"; + } + 7 + { + title = "Small Rock (mossy)"; + sprite = "RCK2A0"; + } + 9 + { + title = "Medium Rock (mossy)"; + sprite = "RCK3A0"; + } + 15 + { + title = "Big Rock (mossy)"; + sprite = "RCK4A0"; + } + 101 + { + title = "Brick Rubble (small)"; + sprite = "RBL2A0"; + } + 102 + { + title = "Brick Rubble (medium)"; + sprite = "RBL3A0"; + } + 100 + { + title = "Brick Rubble (large)"; + sprite = "RBL1A0"; + } + 39 + { + title = "Large Mushroom 1"; + sprite = "MSH1A0"; + } + 40 + { + title = "Large Mushroom 2"; + sprite = "MSH2A0"; + } + 8104 + { + title = "Large Mushroom (explodes)"; + sprite = "SHRMB0"; + width = 6; + } + 41 + { + title = "Medium Mushroom"; + sprite = "MSH3A0"; + } + 42 + { + title = "Small Mushroom 1"; + sprite = "MSH4A0"; + } + 44 + { + title = "Small Mushroom 2"; + sprite = "MSH5A0"; + } + 45 + { + title = "Small Mushroom 3"; + sprite = "MSH6A0"; + } + 46 + { + title = "Small Mushroom 4"; + sprite = "MSH7A0"; + } + 47 + { + title = "Small Mushroom 5"; + sprite = "MSH8A0"; + } + 8101 + { + title = "Shrub"; + sprite = "SHB1A0"; + width = 8; + } + 8102 + { + title = "Shrub 2"; + sprite = "SHB2A0"; + width = 16; + } + 111 + { + title = "Pool Of Blood"; + sprite = "GIBSA0"; + } + 71 + { + title= "Hanging Corpse"; + sprite = "CPS3A0"; + width = 6; + } + 61 + { + title = "Impaled Corpse"; + sprite = "CPS1A0"; + width = 10; + } + 108 + { + title = "Lynched Corpse"; + sprite = "CPS4A0"; + width = 11; + } + 109 + { + title = "Lynched Corpse (heartless)"; + sprite = "CPS5A0"; + width = 10; + } + 110 + { + title = "Corpse (sitting)"; + sprite = "CPS6A0"; + width = 15; + } + 62 + { + title = "Corpse (sleeping)"; + sprite = "CPS2A0"; + } + 8509 + { + title = "Meat Cleaver"; + sprite = "TST0A0"; + } + 8508 + { + title = "Goblet (silver)"; + sprite = "TST9A0"; + } + 8507 + { + title = "Goblet (small)"; + sprite = "TST8A0"; + } + 8506 + { + title = "Goblet (tall)"; + sprite = "TST7A0"; + } + 8505 + { + title = "Goblet (spilled)"; + sprite = "TST6A0"; + } + 8501 + { + title = "Small Silver Stein"; + sprite = "TST2A0"; + } + 8500 + { + title = "Large Brown Stein"; + sprite = "TST1A0"; + } + 104 + { + title = "Pot (tall)"; + sprite = "POT1A0"; + width = 10; + } + 105 + { + title = "Pot (medium)"; + sprite = "POT2A0"; + width = 10; + } + 106 + { + title = "Pot (short)"; + sprite = "POT3A0"; + width = 15; + } + 58 + { + title = "Hanging Moss 1"; + sprite = "MSS1A0"; + } + 59 + { + title = "Hanging Moss 2"; + sprite = "MSS2A0"; + } + 10090 + { + title = "Spike Down"; + sprite = "TSPKD0"; + width = 20; + } + 10091 + { + title = "Spike Up"; + sprite = "TSPKB0"; + width = 20; + } + 9027 = "Red Particle Fountain"; + 9028 = "Green Particle Fountain"; + 9029 = "Blue Particle Fountain"; + 9030 = "Yellow Particle Fountain"; + 9031 = "Purple Particle Fountain"; + 9032 = "Black Particle Fountain"; + 9033 = "White Particle Fountain"; + } + + sounds + { + color = 5; // Purple + arrow = 1; + title = "Sounds"; + width = 0; + sort = 1; + + 1400 = "Sound Sequence 0"; + 1401 = "Sound Sequence 1"; + 1402 = "Sound Sequence 2"; + 1403 = "Sound Sequence 3"; + 1404 = "Sound Sequence 4"; + 1405 = "Sound Sequence 5"; + 1406 = "Sound Sequence 6"; + 1407 = "Sound Sequence 7"; + 1408 = "Sound Sequence 8"; + 1409 = "Sound Sequence 9"; + 1411 + { + title = "Sound Sequence"; + arg1 = "Sound Sequence Number"; + } + 14001 = "Ambient Sound 1"; + 14002 = "Ambient Sound 2"; + 14003 = "Ambient Sound 3"; + 14004 = "Ambient Sound 4"; + 14005 = "Ambient Sound 5"; + 14006 = "Ambient Sound 6"; + 14007 = "Ambient Sound 7"; + 14008 = "Ambient Sound 8"; + 14009 = "Ambient Sound 9"; + 14010 = "Ambient Sound 10"; + 14011 = "Ambient Sound 11"; + 14012 = "Ambient Sound 12"; + 14013 = "Ambient Sound 13"; + 14014 = "Ambient Sound 14"; + 14015 = "Ambient Sound 15"; + 14016 = "Ambient Sound 16"; + 14017 = "Ambient Sound 17"; + 14018 = "Ambient Sound 18"; + 14019 = "Ambient Sound 19"; + 14020 = "Ambient Sound 20"; + 14021 = "Ambient Sound 21"; + 14022 = "Ambient Sound 22"; + 14023 = "Ambient Sound 23"; + 14024 = "Ambient Sound 24"; + 14025 = "Ambient Sound 25"; + 14026 = "Ambient Sound 26"; + 14027 = "Ambient Sound 27"; + 14028 = "Ambient Sound 28"; + 14029 = "Ambient Sound 29"; + 14030 = "Ambient Sound 30"; + 14031 = "Ambient Sound 31"; + 14032 = "Ambient Sound 32"; + 14033 = "Ambient Sound 33"; + 14034 = "Ambient Sound 34"; + 14035 = "Ambient Sound 35"; + 14036 = "Ambient Sound 36"; + 14037 = "Ambient Sound 37"; + 14038 = "Ambient Sound 38"; + 14039 = "Ambient Sound 39"; + 14040 = "Ambient Sound 40"; + 14041 = "Ambient Sound 41"; + 14042 = "Ambient Sound 42"; + 14043 = "Ambient Sound 43"; + 14044 = "Ambient Sound 44"; + 14045 = "Ambient Sound 45"; + 14046 = "Ambient Sound 46"; + 14047 = "Ambient Sound 47"; + 14048 = "Ambient Sound 48"; + 14049 = "Ambient Sound 49"; + 14050 = "Ambient Sound 50"; + 14051 = "Ambient Sound 51"; + 14052 = "Ambient Sound 52"; + 14053 = "Ambient Sound 53"; + 14054 = "Ambient Sound 54"; + 14055 = "Ambient Sound 55"; + 14056 = "Ambient Sound 56"; + 14057 = "Ambient Sound 57"; + 14058 = "Ambient Sound 58"; + 14059 = "Ambient Sound 59"; + 14060 = "Ambient Sound 60"; + 14061 = "Ambient Sound 61"; + 14062 = "Ambient Sound 62"; + 14063 = "Ambient Sound 63"; + 14064 = "Ambient Sound 64"; + 14065 + { + title = "Ambient Sound"; + arg1 = "Ambient Sound Number"; + } + } + + other + { + color = 8; // Dark Grey + arrow = 1; + title = "Other"; + width = 0; + sort = 1; + + 118 + { + title = "Glitter Bridge"; + width = 32; + } + 3000 = "Polyobject Anchor"; + 3001 = "Polyobject Start Spot"; + 3002 = "Polyobject Start Spot (crush)"; + 10225 + { + title = "Spawn Bat"; + arg1 = "Spawn Frequency"; + arg2 = "Spread Angle"; + arg4 = "Spawn Duration"; + arg5 = "Changing Angle"; + } + 10000 + { + title = "Spawn Fog"; + arg1 = "Movement Speed"; + arg2 = "Spread Angle"; + arg3 = "Spawn Frequency"; + arg4 = "Fog Lifetime"; + } + 10001 + { + title = "Fog Patch (small)"; + arg1 = "Movement Speed"; + arg4 = "Fog Lifetime"; + arg5 = "Moving Fog"; + } + 10002 + { + title = "Fog Patch (medium)"; + arg1 = "Movement Speed"; + arg4 = "Fog Lifetime"; + arg5 = "Moving Fog"; + } + 10003 + { + title = "Fog Patch (large)"; + arg1 = "Movement Speed"; + arg4 = "Fog Lifetime"; + arg5 = "Moving Fog"; + } + 113 = "Spawn Leaf"; + } + + zdoom + { + color = 7; // Light Grey + arrow = 1; + title = "ZDoom"; + width = 0; + sort = 1; + + 5001 = "Pusher"; + 5002 = "Puller"; + 9024 + { + title = "Path Node"; + arg1 = "Next Node"; + arg2 = "Delay"; + } + 9025 = "Camera"; + 9026 + { + title = "Spark"; + arg1 = "Particles Amount"; + } + 9045 = "Deep Water"; + 9046 = "Sector Secret"; + 9300 = "Polyobject Anchor"; + 9301 = "Polyobject Start Spot"; + 9302 = "Polyobject Start Spot (crush)"; + 9001 = "Map Spot"; + 9013 = "Map Spot (gravity)"; + } +} diff --git a/Build/Configurations/ZDoom_StrifeHexen.cfg b/Build/Configurations/ZDoom_StrifeHexen.cfg new file mode 100644 index 00000000..3d929321 --- /dev/null +++ b/Build/Configurations/ZDoom_StrifeHexen.cfg @@ -0,0 +1,3134 @@ +/*************************************************************\ + Doom Builder Game Configuration for (Hexen format) +\*************************************************************/ + +// This is the title to show for this game +game = "ZDoom (Strife in Hexen format)"; + +// Map format determines the way the map will be loaded +mapformat = 2; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 1; + +// Engine specific features +mixtexturesflats = 1; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 999; + + +/* +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. +*/ + +// Texture sources +textures +{ + zdoom1 + { + start = "TX_START"; + end = "TX_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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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 = 3; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; +} + +/* +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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 12; + BLOCKMAP = 4; + BEHAVIOR = 8193; + SCRIPTS = 2; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Phased"; + 2 = "Light Sequence Start"; + 3 = "Light Sequence Special 1"; + 4 = "Light Sequence Special 2"; + 21 = "Light Phased"; + 22 = "Light Sequence Start"; + 23 = "Light Sequence Special 1"; + 24 = "Light Sequence Special 2"; + 26 = "Stairs Special 1"; + 27 = "Stairs Special 2"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt"; + 69 = "Damage Hellslime"; + 71 = "Damage Nukage"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 79 = "Low Friction"; + 80 = "Damage Super Hellslime"; + 81 = "Light Fire Flicker"; + 82 = "Damage -2 or -5% health (no protection)"; + 83 = "Damage -4 or -8% health (no protection)"; + 84 = "Scroll east + -2 or -5% health (no protection)"; + 105 = "Delayed damage weak"; + 115 = "Instant death (doesn't work in 2.0.93 yet!)"; + 116 = "Delayed damage strong"; + 118 = "Carry player by tag"; + 198 = "Light Indoor 2"; + 199 = "Light Indoor 1"; + 200 = "Sky 2 (MAPINFO)"; + 201 = "Scroll North (slow)"; + 202 = "Scroll North (medium)"; + 203 = "Scroll North (fast)"; + 204 = "Scroll East (slow)"; + 205 = "Scroll East (medium)"; + 206 = "Scroll East (fast)"; + 207 = "Scroll South (slow)"; + 208 = "Scroll South (medium)"; + 209 = "Scroll South (fast)"; + 210 = "Scroll West (slow)"; + 211 = "Scroll West (medium)"; + 212 = "Scroll West (fast)"; + 213 = "Scroll NorthWest (slow)"; + 214 = "Scroll NorthWest (medium)"; + 215 = "Scroll NorthWest (fast)"; + 216 = "Scroll NorthEast (slow)"; + 217 = "Scroll NorthEast (medium)"; + 218 = "Scroll NorthEast (fast)"; + 219 = "Scroll SouthEast (slow)"; + 220 = "Scroll SouthEast (medium)"; + 221 = "Scroll SouthEast (fast)"; + 222 = "Scroll SouthWest (slow)"; + 223 = "Scroll SouthWest (medium)"; + 224 = "Scroll SouthWest (fast)"; + 40 = "Wind East weak"; + 41 = "Wind East medium"; + 42 = "Wind East strong"; + 43 = "Wind North weak"; + 44 = "Wind North medium"; + 45 = "Wind North strong"; + 46 = "Wind South weak"; + 47 = "Wind South medium"; + 48 = "Wind South strong"; + 49 = "Wind West weak"; + 50 = "Wind West medium"; + 51 = "Wind West strong"; + 225 = "Carry East Slow"; + 226 = "Carry East Med.Slow"; + 227 = "Carry East Medium"; + 228 = "Carry East Med.Fast"; + 229 = "Carry East Fast"; + 230 = "Carry North Slow"; + 231 = "Carry North Med.Slow"; + 232 = "Carry North Medium"; + 233 = "Carry North Med.Fast"; + 234 = "Carry North Fast"; + 235 = "Carry South Slow"; + 236 = "Carry South Med.Slow"; + 237 = "Carry South Medium"; + 238 = "Carry South Med.Fast"; + 239 = "Carry South Fast"; + 240 = "Carry West Slow"; + 241 = "Carry West Med.Slow"; + 242 = "Carry West Medium"; + 243 = "Carry West Med.Fast"; + 244 = "Carry West Fast"; +} + +// GENERALIZED SECTOR TYPES +gen_sectortypes +{ + effect + { + 0 = "Normal"; + 1 = "Light Phased"; + 2 = "Light Sequence Start"; + 3 = "Light Sequence Special 1"; + 4 = "Light Sequence Special 2"; + 21 = "Light Phased"; + 22 = "Light Sequence Start"; + 23 = "Light Sequence Special 1"; + 24 = "Light Sequence Special 2"; + 26 = "Stairs Special 1"; + 27 = "Stairs Special 2"; + 65 = "Light Flicker"; + 66 = "Light Strobe Fast"; + 67 = "Light Strobe Slow"; + 68 = "Light Strobe Hurt"; + 69 = "Damage Hellslime"; + 71 = "Damage Nukage"; + 72 = "Light Glow"; + 74 = "Sector Door Close (30 sec)"; + 75 = "Damage End Level"; + 76 = "Light StrobeSlowSync"; + 77 = "Light StrobeFastSync"; + 78 = "Sector Door Raise (5 min)"; + 80 = "Damage Super Hellslime"; + 81 = "Light Fire Flicker"; + 82 = "Damage -2 or -5% health (no protection)"; + 83 = "Damage -4 or -8% health (no protection)"; + 84 = "Scroll east + -2 or -5% health (no protection)"; + 105 = "Delayed damage weak"; + 115 = "Instant death (doesn't work in 2.0.93 yet!)"; + 116 = "Delayed damage strong"; + 118 = "Carry player by tag"; + 198 = "Light Indoor 2"; + 199 = "Light Indoor 1"; + 200 = "Sky 2 (MAPINFO)"; + 201 = "Scroll North (slow)"; + 202 = "Scroll North (medium)"; + 203 = "Scroll North (fast)"; + 204 = "Scroll East (slow)"; + 205 = "Scroll East (medium)"; + 206 = "Scroll East (fast)"; + 207 = "Scroll South (slow)"; + 208 = "Scroll South (medium)"; + 209 = "Scroll South (fast)"; + 210 = "Scroll West (slow)"; + 211 = "Scroll West (medium)"; + 212 = "Scroll West (fast)"; + 213 = "Scroll NorthWest (slow)"; + 214 = "Scroll NorthWest (medium)"; + 215 = "Scroll NorthWest (fast)"; + 216 = "Scroll NorthEast (slow)"; + 217 = "Scroll NorthEast (medium)"; + 218 = "Scroll NorthEast (fast)"; + 219 = "Scroll SouthEast (slow)"; + 220 = "Scroll SouthEast (medium)"; + 221 = "Scroll SouthEast (fast)"; + 222 = "Scroll SouthWest (slow)"; + 223 = "Scroll SouthWest (medium)"; + 224 = "Scroll SouthWest (fast)"; + 40 = "Wind East weak"; + 41 = "Wind East medium"; + 42 = "Wind East strong"; + 43 = "Wind North weak"; + 44 = "Wind North medium"; + 45 = "Wind North strong"; + 46 = "Wind South weak"; + 47 = "Wind South medium"; + 48 = "Wind South strong"; + 49 = "Wind West weak"; + 50 = "Wind West medium"; + 51 = "Wind West strong"; + 225 = "Carry East Slow"; + 226 = "Carry East Med.Slow"; + 227 = "Carry East Medium"; + 228 = "Carry East Med.Fast"; + 229 = "Carry East Fast"; + 230 = "Carry North Slow"; + 231 = "Carry North Med.Slow"; + 232 = "Carry North Medium"; + 233 = "Carry North Med.Fast"; + 234 = "Carry North Fast"; + 235 = "Carry South Slow"; + 236 = "Carry South Med.Slow"; + 237 = "Carry South Medium"; + 238 = "Carry South Med.Fast"; + 239 = "Carry South Fast"; + 240 = "Carry West Slow"; + 241 = "Carry West Med.Slow"; + 242 = "Carry West Medium"; + 243 = "Carry West Med.Fast"; + 244 = "Carry West Fast"; + } + + damage + { + 0 = "None"; + 256 = "Damage 5 per second"; + 512 = "Damage 10 per second"; + 768 = "Damage 20 per second"; + } + + secret + { + 0 = "No"; + 1024 = "Yes"; + } + + friction + { + 0 = "Disabled"; + 2048 = "Enabled"; + } + + pusher + { + 0 = "Disabled"; + 4096 = "Enabled"; + } +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; + 512 = "Repeatable Action"; + 8192 = "Monster Activates"; + 32768 = "Block Everything"; +} + +// LINEDEF ACTIVATIONS +// Make sure these are in order from lowest value to highest value +linedefactivations +{ + 0 = "Player walks over"; + 1024 = "Player presses Use"; + 2048 = "Monster walks over"; + 3072 = "Projectile hits"; + 4096 = "Player bumps"; + 5120 = "Projectile flies over"; + 6144 = "Player presses Use (PassThru)"; + 7168 = "Projectile hits or crosses"; +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + + 20 + { + title = "H Floor Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 21 + { + title = "H Floor Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 22 + { + title = "H Floor Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 23 + { + title = "H Floor Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 24 + { + title = "H Floor Raise to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 25 + { + title = "H Floor Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 28 + { + title = "H Floor Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 35 + { + title = "H Floor Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 36 + { + title = "H Floor Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 46 + { + title = "H Floor Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 66 + { + title = "H Floor Lower Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 67 + { + title = "H Floor Raise Instantly (8px)"; + arg1 = "Sector Tag"; + arg3 = "Target Height (8px)"; + mark1 = 1; + } + + 68 + { + title = "H Floor Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Target Height (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 40 + { + title = "H Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 41 + { + title = "H Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 42 + { + title = "H Ceiling Crusher Start"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 43 + { + title = "H Ceiling Crush Once"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 44 + { + title = "H Ceiling Crusher Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 45 + { + title = "H Ceiling Crush Once and Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Crush Damage"; + mark1 = 1; + } + + 69 + { + title = "H Ceiling Move (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + arg4 = "Negative Height"; + mark1 = 1; + } + + 95 + { + title = "H Floor and Ceiling Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 96 + { + title = "H Floor and Ceiling Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 60 + { + title = "H Platform Perpetual Move"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 61 + { + title = "H Platform Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 62 + { + title = "H Platform Lower Wait Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 63 + { + title = "H Platform Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 64 + { + title = "H Platform Raise Wait Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 172 + { + title = "H Platform Raise to Nearest Wait Lower"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + mark1 = 1; + } + + 65 + { + title = "H Platform Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Movement Amount (8px)"; + mark1 = 1; + } + + 29 + { + title = "H Pillar Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 30 + { + title = "H Pillar Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Floor Movement Amount"; + arg4 = "Ceiling Movement Amount"; + mark1 = 1; + } + + 94 + { + title = "H Pillar Build and Crush"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 26 + { + title = "H Stairs Build Down"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 27 + { + title = "H Stairs Build Up"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 31 + { + title = "H Stairs Build Down (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 32 + { + title = "H Stairs Build Up (sync)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Reset Delay"; + mark1 = 1; + } + + 10 + { + title = "H Door Close"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 11 + { + title = "H Door Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Light Tag"; + mark1 = 1; + mark3 = 1; + } + + 12 + { + title = "H Door Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 13 + { + title = "H Door Locked Raise"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Close Delay"; + arg4 = "Key Number"; + arg5 = "Light Tag"; + mark1 = 1; + mark5 = 1; + } + + 14 + { + title = "H Door Animated"; + arg1 = "Sector tag"; + arg2 = "Animation Speed"; + arg3 = "Close Delay"; + mark1 = 1; + } + + 80 + { + title = "H Script Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 81 + { + title = "H Script Suspend"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 82 + { + title = "H Script Terminate"; + arg1 = "Script Number"; + arg2 = "Map Number"; + } + + 83 + { + title = "H Script Locked Execute"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Key Number"; + } + + 84 + { + title = "H Script Execute with Result"; + arg1 = "Script Number"; + arg2 = "Script Argument 1"; + arg3 = "Script Argument 2"; + arg4 = "Script Argument 3"; + } + + 110 + { + title = "H Light Raise"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 111 + { + title = "H Light Lower"; + arg1 = "Sector Tag"; + arg2 = "Lighting Amount"; + mark1 = 1; + } + + 112 + { + title = "H Light Change"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + mark1 = 1; + } + + 113 + { + title = "H Light Fade"; + arg1 = "Sector Tag"; + arg2 = "Brightness Level"; + arg3 = "Fade Duration"; + mark1 = 1; + } + + 114 + { + title = "H Light Flow"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Fade Duration"; + mark1 = 1; + } + + 115 + { + title = "H Light Flicker"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + mark1 = 1; + } + + 116 + { + title = "H Light Strobe"; + arg1 = "Sector Tag"; + arg2 = "Brightest Level"; + arg3 = "Darkest Level"; + arg4 = "Brightest Duration"; + arg5 = "Darkest Duration"; + mark1 = 1; + } + + 121 + { + title = "H Line Identification"; + arg1 = "Set Line ID"; + } + + 100 + { + title = "H Scroll Texture Left"; + arg1 = "Scroll Speed"; + } + + 101 + { + title = "H Scroll Texture Right"; + arg1 = "Scroll Speed"; + } + + 102 + { + title = "H Scroll Texture Up"; + arg1 = "Scroll Speed"; + } + + 103 + { + title = "H Scroll Texture Down"; + arg1 = "Scroll Speed"; + } + + 129 + { + title = "H Use Puzzle Item"; + arg1 = "Item Number"; + arg2 = "Script Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 140 + { + title = "H Sector Change Sound"; + arg1 = "Sector Tag"; + arg2 = "Sound Number"; + mark1 = 1; + } + + 120 + { + title = "H Earthquake"; + arg1 = "Intensity"; + arg2 = "Duration"; + arg3 = "Damage Radius"; + arg4 = "Tremor Radius"; + arg5 = "Thing Tag"; + mark5 = 2; + } + + 74 + { + title = "H Teleport To Map"; + arg1 = "Map Number"; + arg2 = "Position"; + arg3 = "Keep orientation"; + } + + 75 + { + title = "H End Game"; + } + + 70 + { + title = "H Teleport"; + arg1 = "Target MapSpot Tag"; + arg2 = "Target Sector Tag"; + arg3 = "No fog at source"; + mark1 = 2; + mark2 = 1; + } + + 71 + { + title = "H Teleport (silent)"; + arg1 = "Target MapSpot Tag"; + arg2 = "Use Orientation of MapSpot"; + arg3 = "Target Sector Tag"; + mark1 = 2; + mark3 = 1; + } + + 39 + { + title = "H Teleport to Pain State (silent)"; + arg1 = "Target MapSpot Tag"; + arg2 = "Target Sector Tag"; + mark1 = 2; + mark2 = 1; + } + + 72 + { + title = "H Thing Thrust"; + arg1 = "Thrust Angle"; + arg2 = "Thrust Distance"; + } + + 73 + { + title = "H Thing Damage"; + arg1 = "Damage Amount"; + } + + 130 + { + title = "H Thing Activate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 131 + { + title = "H Thing Deactivate"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 132 + { + title = "H Thing Remove"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 133 + { + title = "H Thing Destroy"; + arg1 = "Thing Tag"; + mark1 = 2; + } + + 134 + { + title = "H Thing Projectile"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 136 + { + title = "H Thing Projectile with Gravity"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Movement Angle"; + arg4 = "Horizontal Movement Speed"; + arg5 = "Vertical Movement Speed"; + mark1 = 2; + } + + 135 + { + title = "H Thing Spawn"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 137 + { + title = "H Thing Spawn (silent)"; + arg1 = "MapSpot Tag"; + arg2 = "Spawn Thing"; + arg3 = "Thing Angle"; + mark1 = 2; + } + + 1 + { + title = "H Polyobj Start Line"; + arg1 = "Polyobj Number"; + arg2 = "Mirror Polyobj Number"; + arg3 = "Sound Number"; + } + + 2 + { + title = "H Polyobj Rotate Left"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 3 + { + title = "H Polyobj Rotate Right"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 4 + { + title = "H Polyobj Move"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 5 + { + title = "H Polyobj Explicit Line"; + arg1 = "Polyobj Number"; + arg2 = "Rendering order"; + arg3 = "Mirror Polyobj Number"; + arg4 = "Sound Number"; + } + + 6 + { + title = "H Polyobj Move (8px)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 7 + { + title = "H Polyobj Door Swing"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Delay"; + } + + 8 + { + title = "H Polyobj Door Slide"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + arg5 = "Delay"; + } + + 9 + { + title = "H Line Horizon"; + } + + 90 + { + title = "H Polyobj Rotate Left (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 91 + { + title = "H Polyobj Rotate Right (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Target Angle"; + } + + 92 + { + title = "H Polyobj Move (override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length"; + } + + 93 + { + title = "H Polyobj Move (8px, override)"; + arg1 = "Polyobj Number"; + arg2 = "Movement Speed"; + arg3 = "Movement Angle"; + arg4 = "Movement Length (8px)"; + } + + 181 + { + title = "H Plane Align (slope)"; + arg1 = "Align Floor"; + arg2 = "Align Ceiling"; + } + + 241 + { + title = "H Floor Lower to Lowest TxTy"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 242 + { + title = "H Floor Lower to Highest"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Adjust Target Height"; + mark1 = 1; + } + + 238 + { + title = "H Floor Raise to Lowest Ceiling"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 239 + { + title = "H Floor Raise by TxTy"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 240 + { + title = "H Floor Raise by Texture"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 138 + { + title = "H Floor Waggle"; + arg1 = "Sector Tag"; + arg2 = "Amplitude"; + arg3 = "Frequency"; + arg4 = "Phase Offset"; + arg5 = "Duration"; + mark1 = 1; + } + + 250 + { + title = "H Floor Donut"; + arg1 = "Sector Tag"; + arg2 = "Pillar Movement Speed"; + arg3 = "Stairs Movement Speed"; + mark1 = 1; + } + + 235 + { + title = "H Floor Transfer Trigger"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 236 + { + title = "H Floor Transfer Numeric"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 200 + { + title = "H Floor Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + arg4 = "Movement Target"; + arg5 = "Flags"; + mark1 = 1; + } + + 199 + { + title = "H Ceiling Lower (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 198 + { + title = "H Ceiling Raise (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 193 + { + title = "H Ceiling Lower Instantly"; + arg1 = "Sector Tag"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 194 + { + title = "H Ceiling Raise Instantly"; + arg1 = "Sector Tag"; + arg3 = "Movement Amount (8px)"; + mark1 = 1; + } + + 252 + { + title = "H Ceiling Raise to Nearest Ceiling"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 192 + { + title = "H Ceiling Lower to Highest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 253 + { + title = "H Ceiling Lower to Lowest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 254 + { + title = "H Ceiling Lower to Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 195 + { + title = "H Ceiling Crush Once and Open A"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 196 + { + title = "H Ceiling Crush Start A"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 197 + { + title = "H Ceiling Crush Start A (silent)"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 255 + { + title = "H Ceiling Crush Once and Open A (silent)"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Speed"; + arg4 = "Crush Damage"; + mark1 = 1; + } + + 201 + { + title = "H Ceiling Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + arg4 = "Movement Target"; + arg5 = "Flags"; + mark1 = 1; + } + + 205 + { + title = "H Ceiling Generic Crush"; + arg1 = "Sector Tag"; + arg2 = "Crush Movement Speed"; + arg3 = "Raise Movement Amount"; + arg4 = "Silent"; + arg5 = "Crush Damage"; + mark1 = 1; + } + + 251 + { + title = "H Floor and Ceiling Lower and Raise"; + arg1 = "Sector Tag"; + arg2 = "Floor Movement Speed"; + arg3 = "Ceiling Movement Speed"; + mark1 = 1; + } + + 245 + { + title = "H Elevator Raise to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 246 + { + title = "H Elevator Raise to Activated Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 247 + { + title = "H Elevator Lower to Nearest Floor"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 217 + { + title = "H Stairs Build Doom"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Build Step Delay"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 204 + { + title = "H Stairs Generic Build"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Step Amount"; + arg4 = "Flags"; + arg5 = "Reset Delay"; + mark1 = 1; + } + + 207 + { + title = "H Platform Perpetual Move (lip)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Lip Amount"; + mark1 = 1; + } + + 206 + { + title = "H Platform Lower Wait Raise (lip)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Lip Amount"; + arg5 = "Movement sound type"; + mark1 = 1; + } + + 228 + { + title = "H Platform Raise Tx0"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + mark1 = 1; + } + + 230 + { + title = "H Platform Raise by Value Tx (8px)"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Movement Amount"; + mark1 = 1; + } + + 231 + { + title = "H Platform Toggle Ceiling"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 203 + { + title = "H Platform Generic Change"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Reverse Delay"; + arg4 = "Type"; + arg5 = "Movement Amount"; + mark1 = 1; + } + + 215 + { + title = "H Teleport To Line"; + arg1 = "Source Line Tag"; + arg2 = "Target Line Tag"; + arg3 = "Reverse Angle"; + } + + 243 + { + title = "H End Normal"; + arg1 = "Position"; + } + + 244 + { + title = "H End Secret"; + arg1 = "Position"; + } + + 232 + { + title = "H Light Strobe Doom"; + arg1 = "Sector Tag"; + arg2 = "Brightest Duration"; + arg3 = "Darkest Duration"; + mark1 = 1; + } + + 233 + { + title = "H Light Change to Darkest"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 234 + { + title = "H Light Change to Brightest"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 212 + { + title = "H Sector Color"; + arg1 = "Sector Tag"; + arg2 = "Red"; + arg3 = "Green"; + arg4 = "Blue"; + mark1 = 1; + } + + 213 + { + title = "H Sector Fade"; + arg1 = "Sector Tag"; + arg2 = "Red"; + arg3 = "Green"; + arg4 = "Blue"; + mark1 = 1; + } + + 214 + { + title = "H Sector Damage"; + arg1 = "Sector Tag"; + arg2 = "Damage Amount"; + arg3 = "Meaning Of Death"; + mark1 = 1; + } + + 216 + { + title = "H Sector Gravity"; + arg1 = "Sector Tag"; + arg2 = "Gravity Integral"; + arg3 = "Gravity Fractional"; + mark1 = 1; + } + + 219 + { + title = "H Sector Friction"; + arg1 = "Sector Tag"; + arg2 = "Friction Amount"; + mark1 = 1; + } + + 218 + { + title = "H Sector Wind"; + arg1 = "Sector Tag"; + arg2 = "Wind Strength"; + arg3 = "Wind Angle"; + arg4 = "Line Vector"; + mark1 = 1; + } + + 220 + { + title = "H Sector Current"; + arg1 = "Sector Tag"; + arg2 = "Current Strength"; + arg3 = "Current Angle"; + arg4 = "Line Vector"; + mark1 = 1; + } + + 183 + { + title = "H Sector Floor Alignment to Line"; + arg1 = "Line Tag"; + arg2 = "Line Side"; + } + + 184 + { + title = "H Sector Ceiling Alignment to Line"; + arg1 = "Line Tag"; + arg2 = "Line Side"; + } + + 185 + { + title = "H Sector Rotate Alignment"; + arg1 = "Sector Tag"; + arg2 = "Floor Angle"; + arg3 = "Ceiling Angle"; + mark1 = 1; + } + + 186 + { + title = "H Sector Ceiling Panning"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 187 + { + title = "H Sector Floor Panning"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 188 + { + title = "H Sector Ceiling Scale"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 189 + { + title = "H Sector Floor Scale"; + arg1 = "Sector Tag"; + arg2 = "Horizontal Integral"; + arg3 = "Horizontal Fractional"; + arg4 = "Vertical Integral"; + arg5 = "Vertical Fractional"; + mark1 = 1; + } + + 248 + { + title = "H Thing Heal"; + arg1 = "Health Amount"; + } + + 229 + { + title = "H Thing Goal"; + arg1 = "Monster Thing Tag"; + arg2 = "Target Thing Tag"; + arg3 = "Delay"; + mark1 = 2; + mark2 = 2; + } + + 226 + { + title = "H Script Execute Always"; + arg1 = "Script Number"; + arg2 = "Map Number"; + arg3 = "Script Argument 1"; + arg4 = "Script Argument 2"; + arg5 = "Script Argument 3"; + } + + 208 + { + title = "H Translucent Line"; + arg1 = "Line Tag"; + arg2 = "Transparency Amount"; + } + + 221 + { + title = "H Scroll Texture Both"; + arg1 = "Line Tag"; + arg2 = "Left Speed"; + arg3 = "Right Speed"; + arg4 = "Down Speed"; + arg5 = "Up Speed"; + } + + 225 + { + title = "H Scroll Texture by Offsets"; + } + + 222 + { + title = "H Scroll Texture Model"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + } + + 223 + { + title = "H Scroll Floor"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + arg3 = "Method"; + arg4 = "Horizontal Speed"; + arg5 = "Vertical Speed"; + } + + 224 + { + title = "H Scroll Ceiling"; + arg1 = "Line Tag"; + arg2 = "Scroll Bits"; + arg3 = "Method"; + arg4 = "Horizontal Speed"; + arg5 = "Vertical Speed"; + } + + 209 + { + title = "H Transfer Heights"; + arg1 = "Sector Tag"; + arg2 = "When"; + mark1 = 1; + } + + 210 + { + title = "H Transfer Floor Brightness"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 211 + { + title = "H Transfer Ceiling Brightness"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 227 + { + title = "H Point Pusher and Puller Force"; + arg1 = "Sector Tag"; + arg2 = "Thing Tag"; + arg3 = "Strength"; + arg4 = "Line Vector"; + mark1 = 1; + mark2 = 2; + } + + 237 + { + title = "H Camera Change"; + arg1 = "Thing Tag"; + arg2 = "Everyone"; + arg3 = "Movement Resets"; + mark1 = 1; + } + + 191 + { + title = "H Player Property"; + arg1 = "Everyone"; + arg2 = "Toggle"; + arg3 = "Property"; + } + + 249 + { + title = "H Door Close Wait Open"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Delay"; + arg4 = "Light Tag"; + mark1 = 1; + mark4 = 1; + } + + 202 + { + title = "H Door Generic"; + arg1 = "Sector Tag"; + arg2 = "Movement Speed"; + arg3 = "Type"; + arg4 = "Delay"; + arg5 = "Lock"; + mark1 = 1; + } + + 38 + { + title = "H Ceiling Waggle"; + arg1 = "Sector Tag"; + arg2 = "Amplitude"; + arg3 = "Frequency"; + arg4 = "Phase Offset"; + arg5 = "Duration"; + mark1 = 1; + } + + 15 + { + title = "H Autosave"; + } + + 76 + { + title = "H Teleport Other"; + arg1 = "Thing ID"; + arg2 = "Target Thing ID"; + arg3 = "Fog"; + mark1 = 2; + mark2 = 2; + } + + 77 + { + title = "H Teleport Group"; + arg1 = "Group Thing ID"; + arg2 = "Source Thing ID"; + arg3 = "Target Thing ID"; + arg4 = "Move source"; + arg5 = "Fog"; + mark1 = 2; + mark2 = 2; + mark3 = 2; + } + + 78 + { + title = "H Teleport in sector"; + arg1 = "Sector Tag"; + arg2 = "Source Thing ID"; + arg3 = "Target Thing ID"; + arg4 = "bFog"; + arg5 = "Group Thing ID"; + mark1 = 1; + mark2 = 2; + mark3 = 2; + mark5 = 2; + } + + 117 + { + title = "H Light Stop"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 119 + { + title = "H Thing Damage"; + arg1 = "Thing ID"; + arg2 = "Damage"; + arg3 = "Means of Death"; + mark1 = 2; + } + + 125 + { + title = "H Thing Move"; + arg1 = "Thing ID"; + arg2 = "Target Thing ID"; + mark1 = 2; + mark2 = 2; + } + + 127 + { + title = "H Thing Set Special"; + arg1 = "Thing ID"; + arg2 = "Special"; + arg3 = "Special arg 1"; + arg4 = "Special arg 2"; + arg5 = "Special arg 3"; + mark1 = 2; + } + + 128 + { + title = "H Thing Thrust Z"; + arg1 = "Thing ID"; + arg2 = "Force"; + arg3 = "Down Up"; + arg4 = "Add Set"; + mark1 = 2; + } + + 139 + { + title = "H Thing Spawn Facing"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "No Fog"; + arg4 = "New Thing ID"; + mark1 = 2; + } + + 175 + { + title = "H Thing Projectile Intercept"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "Speed"; + arg4 = "Thing ID target"; + arg5 = "New Thing ID"; + mark1 = 2; + mark4 = 2; + } + + 176 + { + title = "H Thing ID Change"; + arg1 = "Old Thing ID"; + arg2 = "New Thing ID"; + mark1 = 2; + } + + 177 + { + title = "H Thing Hate"; + arg1 = "Hater ID"; + arg2 = "Hatee ID"; + arg3 = "Flags"; + mark1 = 2; + mark2 = 2; + } + + 178 + { + title = "H Thing Aimed Projectile"; + arg1 = "Mapspot ID"; + arg2 = "Type"; + arg3 = "Speed"; + arg4 = "Target Thing ID"; + arg5 = "New Thing ID"; + mark1 = 2; + mark4 = 2; + } + + 179 + { + title = "H Change Skill"; + arg1 = "New Skill Level"; + } + + 180 + { + title = "H Thing Set Translation"; + arg1 = "Thing ID"; + arg2 = "Translation index"; + } + + 182 + { + title = "H Line Mirror"; + } + + 190 + { + title = "H Static Init"; + arg1 = "Sector Tag"; + arg2 = "Property"; + arg3 = "Flip Sky"; + } + + 50 + { + title = "H Transfer Brightness Level"; + arg1 = "Sector Tag"; + arg2 = "Method"; + mark1 = 1; + } + + 33 + { + title = "H Forcefield Set"; + } + + 34 + { + title = "H Forcefield Remove"; + arg1 = "Sector Tag"; + mark1 = 1; + } + + 49 + { + title = "H Breakable Glass"; + } + + 173 + { + title = "H Alert monsters"; + arg1 = "ID of target"; + arg2 = "ID of emitter"; + } + + 174 + { + title = "H Communicator message"; + arg1 = "Message ID"; + arg2 = "Front side only"; + arg3 = "Message identification"; + arg4 = "Don't add message to log"; + } +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Dormant"; + 32 = "Fighter class"; + 64 = "Cleric class"; + 128 = "Mage class"; + 256 = "Singleplayer"; + 512 = "Cooperative"; + 1024 = "Deathmatch"; + 2048 = "Translucent (25%)"; + 4096 = "Invisible"; + 8192 = "Friendly"; + 16384 = "Frozen while inactive"; +} + +// 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 = 1792; // 256 + 512 + 1024 + + +// THING TYPES +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + + 32000 = "3D Mode start"; + } + + cameras + { + color = 7; // Light Grey + arrow = 1; + title = "Cameras and Interpolation"; + width = 16; + sort = 1; + + 9025 + { + title = "Camera"; + arg1 = "Pitch"; + arg2 = "Pan"; + arg3 = "Time"; + } + 9073 + { + title = "Aiming Camera"; + arg1 = "Pitch"; + arg2 = "Max Angle"; + arg3 = "Max Pitch"; + arg4 = "Thing ID"; + } + 9080 = "Skybox Viewpoint"; + 9081 + { + title = "Skybox Picker"; + arg1 = "Thing ID sky"; + } + 9074 + { + title = "Actor Mover"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + arg4 = "Thing ID"; + } + 9070 + { + title = "Interpolation point"; + arg1 = "Pitch"; + arg2 = "Travel Time"; + arg3 = "Hold Time"; + arg4 = "Next"; + arg5 = "High Next"; + } + 9075 = "Interpolation Special"; + 9072 + { + title = "Moving Camera"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + arg4 = "Thing ID looking at"; + } + 9071 + { + title = "Path Follower"; + arg1 = "Point"; + arg2 = "High Point"; + arg3 = "bLinear"; + } + 9047 = "Patrol Special"; + } + + bridges + { + color = 8; // Grey + arrow = 0; + title = "Bridges"; + width = 16; + sort = 1; + + 5064 + { + title = "Bridge radius 16"; + width = 16; + } + 5061 + { + title = "Bridge radius 32"; + width = 32; + } + 5065 + { + title = "Bridge radius 8"; + width = 8; + } + 9990 + { + title = "Bridge Custom"; + arg1 = "Radius"; + arg2 = "Thickness"; + } + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 18; + sort = 1; + + 1 = "Player 1 Tan start"; + 2 = "Player 2 Red start"; + 3 = "Player 3 Rust start"; + 4 = "Player 4 Gray start"; + 5 = "Player 5 DGreen start"; + 6 = "Player 6 Gold start"; + 7 = "Player 7 BGreen start"; + 8 = "Player 8 Blue start"; + 11 = "Player Deathmatch start"; + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 18; + sort = 1; + + 14 = "Teleport Destination"; + 23 + { + title = "Teleport Swirl"; + width = 20; + } + 118 = "Teleport New Map Spot 1"; + 119 = "Teleport New Map Spot 2"; + 120 = "Teleport New Map Spot 3"; + 121 = "Teleport New Map Spot 4"; + 122 = "Teleport New Map Spot 5"; + 123 = "Teleport New Map Spot 6"; + 124 = "Teleport New Map Spot 7"; + 125 = "Teleport New Map Spot 8"; + 126 = "Teleport New Map Spot 9"; + 127 = "Teleport New Map Spot 10"; + } + + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 24; + sort = 1; + + 3002 = "Acolyte 1 Tan"; + 142 = "Acolyte 2 Red"; + 143 = "Acolyte 3 Rust"; + 146 = "Acolyte 4 Gray"; + 147 = "Acolyte 5 Dark Green"; + 148 = "Acolyte 6 Gold"; + 232 = "Acolyte 7 Bright Green"; + 231 = "Acolyte 8 Blue"; + 58 = "Shadow Acolyte"; + 3006 + { + title = "Sentinel"; + width = 23; + } + 186 + { + title = "Stalker"; + width = 31; + } + 27 + { + title = "Ceiling Turret"; + width = 20; + } + 3001 + { + title = "Reaver"; + width = 20; + } + 3005 + { + title = "Crusader"; + width = 40; + } + 3003 + { + title = "Templar"; + width = 20; + } + 16 + { + title = "Inquisitor"; + width = 40; + } + 71 + { + title = "Programmer"; + width = 45; + } + 187 + { + title = "Bishop"; + width = 40; + } + 12 + { + title = "Loremaster"; + width = 15; + } + 129 + { + title = "Specter A"; + width = 64; + } + 75 = "Specter B"; + 76 = "Specter C - put with Oracle"; + 167 = "Specter D"; + 168 = "Specter E"; + 26 + { + title = "Entity Nest"; + width = 84; + } + 198 + { + title = "Entity Pod"; + width = 25; + } + 128 + { + title = "Entity"; + width = 130; + } + } + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + + 10 + { + title = "Teleport Beacon"; + width = 16; + } + 2001 = "Crossbow"; + 2002 = "Assault Gun"; + 2006 = "Assault Gun standing"; + 2003 = "Mini-Missile Launcher"; + 154 = "Grenade Launcher"; + 2005 = "Flame Thrower"; + 2004 = "Mauler"; + 77 = "Sigil A lightning strike"; + 78 = "Sigil B rail lightning shot"; + 79 = "Sigil C spread shot"; + 80 = "Sigil D column shot"; + 81 = "Sigil E big blast"; + } + + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 20; + sort = 1; + + 183 = "Ammo Satchel"; + 114 = "Electric Bolts"; + 115 = "Poison Arrows"; + 2007 = "Bullet Clip"; + 2048 = "Box of Bullets"; + 2010 = "Missiles"; + 2046 = "Crate of Missiles"; + 152 = "HE Grenades"; + 153 = "Phosphorous Grenades"; + 84 = "Gas Grenade (demo exe only)"; + 2047 = "Energy Pod"; + 17 = "Energy Pack"; + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 20; + sort = 1; + + 2011 = "Med patch"; + 2012 = "Medikit"; + 2018 = "Leather Armor"; + 2019 = "Leather Armor"; + 83 = "Surgery Kit"; + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + + 2024 = "Shadow Armor"; + 2025 = "Environmental Suit"; + 207 = "Targeter"; + 2026 = "Map"; + 2027 = "Scanner/Map-Radar"; + } + + quests + { + color = 13; // Light Magenta + arrow = 0; + title = "Quest things"; + width = 20; + sort = 1; + + 45 = "Gates (Piston)"; + 182 + { + title = "Computer"; + width = 26; + } + 220 + { + title = "Power Coupling (Only 1)"; + width = 17; + } + 226 + { + title = "Broken Power Coupling (Only 1)"; + width = 16; + } + 205 + { + title = "Offering Chalice"; + width = 10; + } + 90 = "Guard Uniform-gives token"; + 52 = "Officer Uniform-no alarm"; + 206 = "Communicator"; + 93 = "Gold Coin"; + 138 = "10 Gold"; + 139 = "25 Gold"; + 140 = "50 Gold"; + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 20; + sort = 1; + + 13 = "Gold ID Badge"; + 184 = "Blue ID Card"; + 185 = "Travel Passcard"; + 39 = "Brass Key"; + 38 = "Silver Key"; + 40 = "Gold Key"; + 195 = "Chapel Key"; + 230 = "Base Key (Front)"; + 233 = "Mauler Key"; + 234 = "Factory Key"; + 236 = "Core Key"; + 235 = "Mine Key"; + 86 = "Order Key"; + 166 = "Warehouse Key"; + 91 = "Severed Hand"; + 61 = "Oracle Key"; + 192 = "Red Crystal Key"; + 193 = "Blue Crystal Key"; + } + + trees + { + color = 3; // Cyan + arrow = 0; + title = "Trees and Rocks"; + width = 16; + sort = 1; + + 33 + { + title = "Tree Stub"; + width = 15; + } + 51 + { + title = "Palm Tree"; + width = 15; + } + 202 + { + title = "Big Tree"; + width = 15; + } + 203 + { + title = "Potted Tree"; + width = 15; + } + 60 + { + title = "Short Bush"; + width = 15; + } + 62 + { + title = "Tall Bush"; + width = 20; + } + 215 + { + title = "Stick in Water"; + width = 20; + } + 98 = "Stalactite"; + 161 = "Small Stalactite"; + 160 = "Stalacmite"; + 163 = "Stalacmite Small"; + 159 = "Cave Pillar Top"; + 162 = "Cave Pillar Bottom"; + 99 + { + title = "Rock 1"; + width = 20; + } + 100 + { + title = "Rock 2"; + width = 20; + } + 101 + { + title = "Rock 3"; + width = 20; + } + 102 + { + title = "Rock 4"; + width = 20; + } + 29 + { + title = "Rubble 1"; + width = 20; + } + 30 + { + title = "Rubble 2"; + width = 20; + } + 31 + { + title = "Rubble 3"; + width = 20; + } + 32 + { + title = "Rubble 4"; + width = 20; + } + 36 + { + title = "Rubble 5"; + width = 20; + } + 37 + { + title = "Rubble 6"; + width = 20; + } + 41 + { + title = "Rubble 7"; + width = 20; + } + 42 + { + title = "Rubble 8"; + width = 20; + } + } + + pillars + { + color = 3; // Cyan + arrow = 0; + title = "Pillars"; + width = 20; + sort = 1; + + 69 + { + title = "Barricade Column"; + width = 16; + } + 63 = "Chimneystack"; + 48 = "Techno Pillar"; + 54 + { + title = "Aztec Pillar"; + width = 16; + } + 55 + { + title = "Damaged Aztec Pillar"; + width = 16; + } + 56 + { + title = "Ruined Aztec Pillar"; + width = 16; + } + 57 + { + title = "Huge Tech Pillar"; + width = 24; + } + 227 + { + title = "Huge Alien Pillar"; + width = 24; + } + 110 = "Statue"; + 44 = "Ruined Statue"; + 221 + { + title = "Alien Bubble Column"; + width = 16; + } + 222 + { + title = "Alien Floor Bubble"; + width = 16; + } + 223 + { + title = "Alien Ceiling Bubble"; + width = 16; + } + 224 + { + title = "Alien Asp Climber"; + width = 16; + } + } + + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + + 24 = "Claxon warning light"; + 70 + { + title = "Burning Barrel"; + width = 16; + } + 28 = "Cage Light"; + 34 = "Candle"; + 35 + { + title = "Candelabra"; + width = 16; + } + 43 + { + title = "Outside Lamp"; + width = 3; + } + 46 + { + title = "Pole Lantern"; + width = 3; + } + 107 + { + title = "Small Burning Torch"; + width = 0; + } + 108 + { + title = "Small Unlit Torch"; + width = 0; + } + 111 + { + title = "Medium Torch"; + width = 4; + } + 47 + { + title = "Large Torch"; + width = 10; + } + 50 + { + title = "Huge Torch"; + width = 10; + } + 95 + { + title = "Silver Flourescent Light"; + width = 4; + } + 96 + { + title = "Brass Flourescent Light"; + width = 4; + } + 97 + { + title = "Gold Flourescent Light"; + width = 4; + } + 105 + { + title = "Burning Bowl"; + width = 16; + } + 106 + { + title = "Burning Brazier"; + width = 10; + } + 196 + { + title = "Silver Tech Lamp"; + width = 11; + } + 197 + { + title = "Brass Tech Lamp"; + width = 8; + } + 2028 + { + title = "Globe Light"; + width = 16; + } + 225 + { + title = "Alien Spider Light"; + width = 32; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + + + 216 + { + title = "Sigil Banner"; + width = 24; + } + 85 + { + title = "Rat"; + width = 10; + } + 82 + { + title = "Wooden Barrel"; + width = 10; + } + 117 = "Surgery Crab"; + 68 + { + title = "Tray"; + width = 24; + } + 217 = "Rebel Boots"; + 218 = "Rebel Helmet"; + 219 = "Rebel Shirt"; + 208 + { + title = "Practice Target"; + width = 10; + } + 194 + { + title = "Anvil"; + width = 16; + } + 228 + { + title = "Ammo Filler"; + width = 12; + } + 109 = "Ceiling Chain"; + 112 = "Fountain"; + 53 = "Ceiling Water Drip"; + 103 = "Floor Water Drip"; + 104 = "Waterfall Splash"; + 164 = "Mug"; + 2014 = "Water Bottle"; + 191 = "Tub"; + 165 + { + title = "Pot"; + width = 12; + } + 190 = "Metal Pot"; + 188 + { + title = "Pitcher"; + width = 12; + } + 189 + { + title = "Stool"; + width = 6; + } + { + + 9027 = "Red Particle Fountain"; + 9028 = "Green Particle Fountain"; + 9029 = "Blue Particle Fountain"; + 9030 = "Yellow Particle Fountain"; + 9031 = "Purple Particle Fountain"; + 9032 = "Black Particle Fountain"; + 9033 = "White Particle Fountain"; + } + + sectors + { + color = 7; + arrow = 0; + title = "Sector Actions"; + width = 16; + sort = 1; + + 9082 = "Silent Sector"; + 9998 = "Actor enters sector"; + 9989 = "Actor hits fake floor"; + 9996 = "Actor hits ceiling"; + 9999 = "Actor hits floor"; + 9997 = "Actor leaves sector"; + 9982 = "Eyes above fake ceiling"; + 9992 = "Eyes above fake floor"; + 9983 = "Eyes below fake ceiling"; + 9993 = "Eyes below fake floor"; + 9995 = "Player uses sector"; + 9994 = "Player uses wall"; + } + + sounds + { + color = 5; // Purple + arrow = 0; + title = "Sounds"; + width = 0; + sort = 1; + + 1400 = "Sound Sequence 0"; + 1401 = "Sound Sequence 1"; + 1402 = "Sound Sequence 2"; + 1403 = "Sound Sequence 3"; + 1404 = "Sound Sequence 4"; + 1405 = "Sound Sequence 5"; + 1406 = "Sound Sequence 6"; + 1407 = "Sound Sequence 7"; + 1408 = "Sound Sequence 8"; + 1409 = "Sound Sequence 9"; + 1411 + { + title = "Sound Sequence"; + arg1 = "Sound Sequence Number"; + } + 14001 = "Ambient Sound 1"; + 14002 = "Ambient Sound 2"; + 14003 = "Ambient Sound 3"; + 14004 = "Ambient Sound 4"; + 14005 = "Ambient Sound 5"; + 14006 = "Ambient Sound 6"; + 14007 = "Ambient Sound 7"; + 14008 = "Ambient Sound 8"; + 14009 = "Ambient Sound 9"; + 14010 = "Ambient Sound 10"; + 14011 = "Ambient Sound 11"; + 14012 = "Ambient Sound 12"; + 14013 = "Ambient Sound 13"; + 14014 = "Ambient Sound 14"; + 14015 = "Ambient Sound 15"; + 14016 = "Ambient Sound 16"; + 14017 = "Ambient Sound 17"; + 14018 = "Ambient Sound 18"; + 14019 = "Ambient Sound 19"; + 14020 = "Ambient Sound 20"; + 14021 = "Ambient Sound 21"; + 14022 = "Ambient Sound 22"; + 14023 = "Ambient Sound 23"; + 14024 = "Ambient Sound 24"; + 14025 = "Ambient Sound 25"; + 14026 = "Ambient Sound 26"; + 14027 = "Ambient Sound 27"; + 14028 = "Ambient Sound 28"; + 14029 = "Ambient Sound 29"; + 14030 = "Ambient Sound 30"; + 14031 = "Ambient Sound 31"; + 14032 = "Ambient Sound 32"; + 14033 = "Ambient Sound 33"; + 14034 = "Ambient Sound 34"; + 14035 = "Ambient Sound 35"; + 14036 = "Ambient Sound 36"; + 14037 = "Ambient Sound 37"; + 14038 = "Ambient Sound 38"; + 14039 = "Ambient Sound 39"; + 14040 = "Ambient Sound 40"; + 14041 = "Ambient Sound 41"; + 14042 = "Ambient Sound 42"; + 14043 = "Ambient Sound 43"; + 14044 = "Ambient Sound 44"; + 14045 = "Ambient Sound 45"; + 14046 = "Ambient Sound 46"; + 14047 = "Ambient Sound 47"; + 14048 = "Ambient Sound 48"; + 14049 = "Ambient Sound 49"; + 14050 = "Ambient Sound 50"; + 14051 = "Ambient Sound 51"; + 14052 = "Ambient Sound 52"; + 14053 = "Ambient Sound 53"; + 14054 = "Ambient Sound 54"; + 14055 = "Ambient Sound 55"; + 14056 = "Ambient Sound 56"; + 14057 = "Ambient Sound 57"; + 14058 = "Ambient Sound 58"; + 14059 = "Ambient Sound 59"; + 14060 = "Ambient Sound 60"; + 14061 = "Ambient Sound 61"; + 14062 = "Ambient Sound 62"; + 14063 = "Ambient Sound 63"; + 14064 = "Ambient Sound 64"; + 14065 + { + title = "Ambient Sound"; + arg1 = "Ambient Sound Number"; + } + } + + marine + { + color = 15; + arrow = 1; + title = "Marines"; + width = 16; + sort = 1; + + 9100 = "Scripted Marine"; + 9101 = "Marine Fist"; + 9102 = "Marine Berserk"; + 9103 = "Marine Chainsaw"; + 9104 = "Marine Pistol"; + 9105 = "Marine Shotgun"; + 9106 = "Marine SSG"; + 9107 = "Marine Chaingun"; + 9108 = "Marine Rocket Launcher"; + 9109 = "Marine Plasma Rifle"; + 9110 = "Marine Railgun"; + 9111 = "Marine BFG9000"; + } + + slopes + { + color = 8; // Grey + arrow = 0; + title = "Slopes"; + width = 0; + sort = 1; + + 9511 + { + title = "Copy ceiling plane"; + arg1 = "Sector Tag"; + mark1 = 1; + } + 9510 + { + title = "Copy floor plane"; + arg1 = "Sector Tag"; + mark1 = 1; + } + 9503 + { + title = "Set ceiling slope"; + arg1 = "Z-Angle"; + arrow = 1; + } + 9502 + { + title = "Set floor slope"; + arg1 = "Z-Angle"; + arrow = 1; + } + 9501 + { + title = "Slope ceiling to here"; + arg1 = "Line ID"; + } + 9500 + { + title = "Slope floor to here"; + arg1 = "Line ID"; + } + } + + zdoom + { + color = 7; // Light Grey + arrow = 1; + title = "ZDoom"; + width = 0; + sort = 1; + + 9200 + { + title = "Decal"; + arg1 = "Decal ID"; + } + 5001 = "Pusher"; + 5002 = "Puller"; + 9024 + { + title = "Path Node"; + arg1 = "Next Node"; + arg2 = "Delay"; + } + 9026 + { + title = "Spark"; + arg1 = "Particles Amount"; + } + 9045 = "Deep Water"; + 9046 = "Secret"; + 9300 = "Polyobject Anchor"; + 9301 = "Polyobject Start Spot"; + 9302 = "Polyobject Start Spot (crush)"; + 9303 = "Polyobject Spawn(Hurts to touch)"; + 9001 = "Map Spot"; + 9013 = "Map Spot (gravity)"; + 9076 = "Hate target"; + } + + portals + { + color = 7; + arrow = 0; + title = "Portals"; + width = 0; + sort = 1; + + 9077 + { + title = "Upper Sector"; + arg1 = "Flat Transparency"; + } + + 9078 + { + title = "Lower Sector"; + arg1 = "Flat Transparency"; + } + } +} \ No newline at end of file diff --git a/Build/Configurations/jDoom.cfg b/Build/Configurations/jDoom.cfg new file mode 100644 index 00000000..bcf829bc --- /dev/null +++ b/Build/Configurations/jDoom.cfg @@ -0,0 +1,1384 @@ +/*************************************************************\ + Doom Builder Game Configuration for jDoom +\*************************************************************/ + +// This is the title to show for this game +game = "jDoom"; + +// Map format determines the way the map will be loaded +mapformat = 1; + +// No generalized types +generalizedlinedefs = 0; +generalizedsectors = 0; + +// Engine specific features +mixtexturesflats = 0; + +// Thing number for start position in 3D Mode +start3dmode = 32000; + +// Load textures/flats by default from this file +texturesfile = ""; + +// Default lump name for new map +defaultlumpname = ""; + +// Default flags for first new thing +defaulthingflags = 7; //1 + 2 + 4 + + +/* +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. +*/ + +// Texture sources +textures +{ +} + +// 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"; + } +} + + +/* +TEXTURES AND FLATS FILTERING +This allows you to filter textures and flats so that you only see the +textures/flats listed that you prefer to use. + +The key name doesnt matter here, only the values. You can use +the following wildcards in values to specify ranges: + +? = Any character +* = Zero or more characters +# = Any numeric digit +[abc...] = Any of these characters that are between brackets +[!abc..] = Not any of these characters that are between brackets +*/ + +// List these textures... +texturesfilter +{ + all_textures = "*"; +} + +// But do not list these textures... +notexturesfilter +{ + none = ""; +} + +// List these flats... +flatsfilter +{ + all_flats = "*"; +} + +// But do not list these flats... +noflatsfilter +{ + none = ""; +} + + +/* +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; + E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2; + E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2; + E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2; + E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2; + MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1; + MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1; + MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1; + MAP31 = 1; MAP32 = 1; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2; + MAP41 = 2; + DD_DEFNS = 1; DD_DIREC = 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 (or defined as 0) it will stop loading right there. + +The order of items defines the order in which lumps will be written to WAD file on save. +The value (flags) of items determines what the editor should do with it. +You should never mess with value 4, because it may result in incorrect map builds. + +1 = Map lump required +2 = Map lump which must be respected +4 = Lump generated by node builder +8 = Lump allowed to be empty after nodebuilding +4096 = Map lump which can be edited as Text +8192 = Map lump which can be edited as ACS +12288 = Map lump which can be edited as DEHACKED +16384 = Map lump which can be edited as FraggleScript +20480 = Map lump which can be edited as DED +*/ + +maplumpnames +{ + THINGS = 13; + LINEDEFS = 5; + SIDEDEFS = 5; + VERTEXES = 5; + SEGS = 4; + SSECTORS = 4; + NODES = 4; + SECTORS = 5; + REJECT = 4; + BLOCKMAP = 4; + DEHACKED = 12290; + DD_DEFNS = 20482; + DD_DIREC = 4098; +} + + +// DEFAULT SECTOR BRIGHTNESS LEVELS +sectorbrightness +{ + 255; + 240; + 224; + 208; + 192; + 176; + 160; + 144; + 128; + 112; + 96; + 80; + 64; + 48; + 32; + 16; + 0; +} + +// SECTOR TYPES +sectortypes +{ + 0 = "Normal"; + 1 = "Light Blinks (randomly)"; + 2 = "Light Blinks (0.5 sec)"; + 3 = "Light Blinks (1 sec)"; + 4 = "Damage -10 or 20% health and Light Blinks (0.5 sec)"; + 5 = "Damage -5 or 10% health"; + 7 = "Damage -2 or 5% health"; + 8 = "Light Glows (1+ sec)"; + 9 = "Secret"; + 10 = "Door Close Stay (after 30 sec)"; + 11 = "Damage -10 or 20% health and End level"; + 12 = "Light Blinks (0.5 sec sync)"; + 13 = "Light Blinks (1 sec sync)"; + 14 = "Door Open Stay (after 300 sec)"; + 16 = "Damage -10 or 20% health"; + 17 = "Light Flickers (randomly)"; +} + +// LINEDEF FLAGS +linedefflags +{ + 1 = "Impassible"; + 2 = "Block Monster"; + 4 = "Double Sided"; + 8 = "Upper Unpegged"; + 16 = "Lower Unpegged"; + 32 = "Secret"; + 64 = "Block Sound"; + 128 = "Hidden"; + 256 = "Shown"; +} + +// LINEDEF ACTIVATIONS +linedefactivations +{ +} + +// LINEDEF TYPES +// [type] [category] [description] +// i know this should be done the same way as the things types, +// but hey, are you willing to reformat the linedef types for each config? +linedeftypes +{ + 0 = " Normal"; + 1 = "DR Door Open Wait Close (also monsters)"; + 2 = "W1 Door Open Stay"; + 3 = "W1 Door Close Stay"; + 4 = "W1 Door Open Wait Close"; + 5 = "W1 Floor Raise to Lowest Ceiling"; + 6 = "W1 Crusher Start with Fast Damage"; + 7 = "S1 Stairs Raise by 8"; + 8 = "W1 Stairs Raise by 8"; + 9 = "S1 Floor Raise Donut (changes texture)"; + 10 = "W1 Lift Lower Wait Raise"; + 11 = "S1 Exit Level"; + 12 = "W1 Light Change to Brightest Adjacent"; + 13 = "W1 Light Change to Brightest"; + 14 = "S1 Floor Raise by 32 (changes texture)"; + 15 = "S1 Floor Raise by 24 (changes texture)"; + 16 = "W1 Door Close Wait Open"; + 17 = "W1 Light Start Blinking"; + 18 = "S1 Floor Raise to Next Higher Floor"; + 19 = "W1 Floor Lower to Highest Floor"; + 20 = "S1 Floor Raise to Next Higher Floor (changes texture)"; + 21 = "S1 Lift Lower Wait Raise"; + 22 = "W1 Floor Raise to Next Higher Floor (changes texture)"; + 23 = "S1 Floor Lower to Lowest Floor"; + 24 = "G1 Floor Raise to Lowest Ceiling"; + 25 = "W1 Crusher Start with Slow Damage"; + 26 = "DR Door (Blue) Open Wait Close"; + 27 = "DR Door (Yellow) Open Wait Close"; + 28 = "DR Door (Red) Open Wait Close"; + 29 = "S1 Door Open Wait Close"; + 30 = "W1 Floor Raise by Shortest Lower Texture"; + 31 = "D1 Door Open Stay"; + 32 = "D1 Door (Blue) Open Stay"; + 33 = "D1 Door (Red) Open Stay"; + 34 = "D1 Door (Yellow) Open Stay"; + 35 = "W1 Light Change to Darkest"; + 36 = "W1 Floor Lower to 8 above Highest Floor"; + 37 = "W1 Floor Lower to Lowest Floor (changes texture)"; + 38 = "W1 Floor Lower to Lowest Floor"; + 39 = "W1 Teleport"; + 40 = "W1 Ceiling Raise to Highest Ceiling"; + 41 = "S1 Ceiling Lower to Floor"; + 42 = "SR Door Close Stay"; + 43 = "SR Ceiling Lower to Floor"; + 44 = "W1 Ceiling Lower to 8 above Floor"; + 45 = "SR Floor Lower to Highest Floor"; + 46 = "GR Door Open Stay"; + 47 = "G1 Floor Raise to Next Higher Floor (changes texture)"; + 48 = " Scroll Texture Left"; + 49 = "S1 Ceiling Lower to 8 above Floor"; + 50 = "S1 Door Close Stay"; + 51 = "S1 Exit Level (goes to secret level)"; + 52 = "W1 Exit Level"; + 53 = "W1 Floor Start Moving Up and Down"; + 54 = "W1 Floor Stop Moving"; + 55 = "S1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 56 = "W1 Floor Raise to 8 below Lowest Ceiling (crushes)"; + 57 = "W1 Crusher Stop"; + 58 = "W1 Floor Raise by 24"; + 59 = "W1 Floor Raise by 24 (changes texture)"; + 60 = "SR Floor Lower to Lowest Floor"; + 61 = "SR Door Open Stay"; + 62 = "SR Lift Lower Wait Raise"; + 63 = "SR Door Open Wait Close"; + 64 = "SR Floor Raise to Lowest Ceiling"; + 65 = "SR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 66 = "SR Floor Raise by 24 (changes texture)"; + 67 = "SR Floor Raise by 32 (changes texture)"; + 68 = "SR Floor Raise to Next Higher Floor (changes texture)"; + 69 = "SR Floor Raise to Next Higher Floor"; + 70 = "SR Floor Lower to 8 above Highest Floor"; + 71 = "S1 Floor Lower to 8 above Highest Floor"; + 72 = "WR Ceiling Lower to 8 above Floor"; + 73 = "WR Crusher Start with Slow Damage"; + 74 = "WR Crusher Stop"; + 75 = "WR Door Close Stay"; + 76 = "WR Door Close Stay Open"; + 77 = "WR Crusher Start with Fast Damage"; + 79 = "WR Light Change to Darkest"; + 80 = "WR Light Change to Brightest Adjacent"; + 81 = "WR Light Change to Brightest"; + 82 = "WR Floor Lower to Lowest Floor"; + 83 = "WR Floor Lower to Highest Floor"; + 84 = "WR Floor Lower to Lowest Floor (changes texture)"; + 86 = "WR Door Open Stay"; + 87 = "WR Floor Start Moving Up and Down"; + 88 = "WR Lift Lower Wait Raise"; + 89 = "WR Floor Stop Moving"; + 90 = "WR Door Open Wait Close"; + 91 = "WR Floor Raise to Lowest Ceiling"; + 92 = "WR Floor Raise by 24"; + 93 = "WR Floor Raise by 24 (changes texture)"; + 94 = "WR Floor Raise to 8 below Lowest Ceiling (crushes)"; + 95 = "WR Floor Raise to Next Higher Floor (changes texture)"; + 96 = "WR Floor Raise by Shortest Lower Texture"; + 97 = "WR Teleport"; + 98 = "WR Floor Lower to 8 above Highest Floor"; + 99 = "SR Door (Blue) Open Stay (fast)"; + 100 = "W1 Stairs Raise by 16 (fast)"; + 101 = "S1 Floor Raise to Lowest Ceiling"; + 102 = "S1 Floor Lower to Highest Floor"; + 103 = "S1 Door Open Stay"; + 104 = "W1 Light Change to Darkest Adjacent"; + 105 = "WR Door Open Wait Close (fast)"; + 106 = "WR Door Open Stay (fast)"; + 107 = "WR Door Close Stay (fast)"; + 108 = "W1 Door Open Wait Close (fast)"; + 109 = "W1 Door Open Stay (fast)"; + 110 = "W1 Door Close (fast)"; + 111 = "S1 Door Open Wait Close (fast)"; + 112 = "S1 Door Open Stay (fast)"; + 113 = "S1 Door Close Stay (fast)"; + 114 = "SR Door Open Wait Close (fast)"; + 115 = "SR Door Open Stay (fast)"; + 116 = "SR Door Close Stay (fast)"; + 117 = "DR Door Open Wait Close (fast)"; + 118 = "D1 Door Open Stay (fast)"; + 119 = "W1 Floor Raise to Next Higher Floor"; + 120 = "WR Lift Lower Wait Raise (fast)"; + 121 = "W1 Lift Lower Wait Raise (fast)"; + 122 = "S1 Lift Lower Wait Raise (fast)"; + 123 = "SR Lift Lower Wait Raise (fast)"; + 124 = "W1 Exit Level (goes to secret level)"; + 125 = "W1 Teleport (monsters only)"; + 126 = "WR Teleport (monsters only)"; + 127 = "S1 Stairs Raise by 16 (fast)"; + 128 = "WR Floor Raise to Next Higher Floor"; + 129 = "WR Floor Raise to Next Higher Floor (fast)"; + 130 = "W1 Floor Raise to Next Higher Floor (fast)"; + 131 = "S1 Floor Raise to Next Higher Floor (fast)"; + 132 = "SR Floor Raise to Next Higher Floor (fast)"; + 133 = "S1 Door (Blue) Open Stay (fast)"; + 134 = "SR Door (Red) Open Stay (fast)"; + 135 = "S1 Door (Red) Open Stay (fast)"; + 136 = "SR Door (Yellow) Open Stay (fast)"; + 137 = "S1 Door (Yellow) Open Stay (fast)"; + 138 = "SR Light Change to Brightest"; + 139 = "SR Light Change to Darkest"; + 140 = "S1 Floor Raise by 512"; + 141 = "W1 Crusher Start with Slow Damage (silent)"; +} + +// THING FLAGS +thingflags +{ + 1 = "Easy"; + 2 = "Medium"; + 4 = "Hard"; + 8 = "Deaf"; + 16 = "Multiplayer"; +} + +// 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 +thingtypes +{ + editor + { + color = 15; // White + arrow = 1; + title = "Editor Things"; + width = 16; + sort = 1; + height = 0; + hangs = 0; + blocking = 0; + error = 0; + + 32000 = "3D Mode start"; + } + + players + { + color = 10; // Light Green + arrow = 1; + title = "Player Starts"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 1 + { + title = "Player 1 start"; + sprite = "PLAYA2A8"; + } + 2 + { + title = "Player 2 start"; + sprite = "PLAYA2A8"; + } + 3 + { + title = "Player 3 start"; + sprite = "PLAYA2A8"; + } + 4 + { + title = "Player 4 start"; + sprite = "PLAYA2A8"; + } + 11 + { + title = "Player Deathmatch start"; + sprite = "PLAYF1"; + } + } + + teleports + { + color = 2; // Green + arrow = 1; + title = "Teleports"; + width = 16; + sort = 1; + height = 56; + hangs = 0; + blocking = 0; + error = 0; + + 14 + { + title = "Teleport Destination"; + sprite = "TFOGB0"; + } + } + + monsters + { + color = 12; // Light Red + arrow = 1; + title = "Monsters"; + width = 20; + sort = 1; + height = 56; + hangs = 0; + blocking = 1; + error = 2; + + 3004 + { + title = "Former Human"; + sprite = "POSSA2A8"; + } + + + 9 + { + title = "Former Sergeant"; + sprite = "SPOSA2A8"; + } + + + 3001 + { + title = "Imp"; + sprite = "TROOA2A8"; + } + + + 65 + { + title = "Chaingunner"; + sprite = "CPOSA2"; + } + + + 3002 + { + title = "Demon"; + width = 30; + sprite = "SARGA2A8"; + } + + + 58 + { + title = "Spectre"; + width = 30; + sprite = "SARGA2A8"; + } + + + 3006 + { + title = "Lost Soul"; + width = 16; + sprite = "SKULA8A2"; + } + + + 3005 + { + title = "Cacodemon"; + width = 31; + sprite = "HEADA2A8"; + } + + + 69 + { + title = "Hell Knight"; + width = 24; + sprite = "BOS2A2C8"; + height = 64; + } + + + 3003 + { + title = "Baron of Hell"; + width = 24; + sprite = "BOSSA2A8"; + height = 64; + } + + + 68 + { + title = "Arachnotron"; + width = 64; + sprite = "BSPIA2A8"; + height = 64; + } + + + 71 + { + title = "Pain Elemental"; + width = 31; + sprite = "PAINA2A8"; + } + + + 66 + { + title = "Revenant"; + sprite = "SKELA2D8"; + } + + + 67 + { + title = "Mancubus"; + width = 48; + sprite = "FATTC2C8"; + height = 64; + } + + + 64 + { + title = "Archvile"; + sprite = "VILEA2D8"; + } + + + 16 + { + title = "Cyberdemon"; + width = 40; + sprite = "CYBRA2"; + height = 110; + } + + + 7 + { + title = "Spider Mastermind"; + width = 128; + sprite = "SPIDA2A8"; + height = 100; + } + + + 84 + { + title = "Wolfenstein SS"; + sprite = "SSWVA2"; + } + + + 72 + { + title = "Commander Keen"; + width = 16; + sprite = "KEENA0"; + height = 72; + hangs = 1; + } + + + 88 + { + title = "Icon of Sin"; + width = 16; + sprite = "BBRNA0"; + height = 16; + } + + + 89 + { + title = "Monsters Spawner"; + sprite = "BOSFB0"; + height = 32; + } + + + 87 + { + title = "Monsters Target"; + height = 32; + } + } + + weapons + { + color = 14; // Yellow + arrow = 0; + title = "Weapons"; + width = 20; + sort = 1; + height = 25; + hangs = 0; + blocking = 0; + + 2005 + { + title = "Chainsaw"; + sprite = "CSAWA0"; + } + 2001 + { + title = "Shotgun"; + sprite = "SHOTA0"; + } + 82 + { + title = "Super Shotgun"; + sprite = "SGN2A0"; + } + 2002 + { + title = "Chaingun"; + sprite = "MGUNA0"; + } + 2003 + { + title = "Rocket launcher"; + sprite = "LAUNA0"; + } + 2004 + { + title = "Plasma gun"; + sprite = "PLASA0"; + } + 2006 + { + title = "BFG9000"; + sprite = "BFUGA0"; + height = 30; + } + } + + ammunition + { + color = 6; // Brown + arrow = 0; + title = "Ammunition"; + width = 16; + sort = 1; + height = 20; + blocking = 0; + hangs = 0; + + 2007 + { + title = "Ammo clip"; + sprite = "CLIPA0"; + } + 2008 + { + title = "Shotgun shells"; + sprite = "SHELA0"; + } + 2010 + { + title = "Rocket"; + sprite = "ROCKA0"; + height = 25; + } + 2047 + { + title = "Cell charge"; + sprite = "CELLA0"; + } + 2048 + { + title = "Box of Ammo"; + sprite = "AMMOA0"; + } + 2049 + { + title = "Box of Shells"; + sprite = "SBOXA0"; + } + 2046 + { + title = "Box of Rockets"; + sprite = "BROKA0"; + width = 30; + height = 25; + } + 17 + { + title = "Cell charge pack"; + sprite = "CELPA0"; + height = 25; + } + 8 + { + title = "Backpack"; + sprite = "BPAKA0"; + } + } + + health + { + color = 1; // Blue + arrow = 0; + title = "Health and Armor"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 2011 + { + title = "Stimpack"; + sprite = "STIMA0"; + } + 2012 + { + title = "Medikit"; + sprite = "MEDIA0"; + height = 25; + } + 2014 + { + title = "Health bonus"; + sprite = "BON1A0"; + } + 2015 + { + title = "Armor bonus"; + sprite = "BON2A0"; + } + 2018 + { + title = "Green armor"; + sprite = "ARM1A0"; + } + 2019 + { + title = "Blue armor"; + sprite = "ARM2A0"; + } + } + + powerups + { + color = 9; // Light Blue + arrow = 0; + title = "Powerups"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 83 + { + title = "Megasphere"; + sprite = "MEGAA0"; + height = 40; + } + 2013 + { + title = "Soulsphere"; + sprite = "SOULA0"; + height = 45; + } + 2022 + { + title = "Invulnerability"; + sprite = "PINVA0"; + height = 30; + } + 2023 + { + title = "Berserk"; + sprite = "PSTRA0"; + } + 2024 + { + title = "Invisibility"; + sprite = "PINSA0"; + height = 45; + } + 2025 + { + title = "Radiation suit"; + sprite = "SUITA0"; + height = 60; + } + 2026 + { + title = "Computer map"; + sprite = "PMAPA0"; + height = 35; + } + 2045 + { + title = "Lite Amplification goggles"; + sprite = "PVISA0"; + } + } + + keys + { + color = 13; // Light Magenta + arrow = 0; + title = "Keys"; + width = 16; + sort = 1; + height = 20; + hangs = 0; + blocking = 0; + + 5 + { + title = "Blue keycard"; + sprite = "BKEYA0"; + } + 40 + { + title = "Blue skullkey"; + sprite = "BSKUB0"; + } + 13 + { + title = "Red keycard"; + sprite = "RKEYA0"; + } + 38 + { + title = "Red skullkey"; + sprite = "RSKUB0"; + } + 6 + { + title = "Yellow keycard"; + sprite = "YKEYA0"; + } + 39 + { + title = "Yellow skullkey"; + sprite = "YSKUB0"; + } + } + + obstacles + { + color = 3; // Cyan + arrow = 0; + title = "Obstacles"; + width = 20; + sort = 1; + height = 20; + hangs = 0; + blocking = 1; + + 2035 + { + title = "Barrel"; + width = 10; + sprite = "BAR1A0"; + height = 32; + } + 70 + { + title = "Burning barrel"; + width = 10; + sprite = "FCANA0"; + height = 32; + } + 48 + { + title = "Tall techno pillar"; + sprite = "ELECA0"; + } + 30 + { + title = "Tall green pillar"; + sprite = "COL1A0"; + } + 32 + { + title = "Tall red pillar"; + sprite = "COL3A0"; + } + 31 + { + title = "Short green pillar"; + sprite = "COL2A0"; + } + 36 + { + title = "Short green pillar (beating heart)"; + sprite = "COL5A0"; + } + 33 + { + title = "Short red pillar"; + sprite = "COL4A0"; + } + 37 + { + title = "Short red pillar (skull)"; + sprite = "COL6A0"; + } + 47 + { + title = "Stalagmite"; + sprite = "SMITA0"; + } + 43 + { + title = "Gray tree"; + sprite = "TRE1A0"; + } + 54 + { + title = "Large brown tree"; + width = 32; + sprite = "TRE2A0"; + } + 41 + { + title = "Evil Eye"; + sprite = "CEYEA0"; + } + 42 + { + title = "Floating skull rock"; + sprite = "FSKUA0"; + } + } + + lights + { + color = 11; // Light Cyan + arrow = 0; + title = "Light sources"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 1; + + 85 + { + title = "Tall techno floor lamp"; + sprite = "TLMPA0"; + } + 86 + { + title = "Short techno floor lamp"; + sprite = "TLP2A0"; + } + 2028 + { + title = "Floor lamp"; + sprite = "COLUA0"; + } + 34 + { + title = "Candle"; + sprite = "CANDA0"; + blocking = 0; + } + 35 + { + title = "Candelabra"; + sprite = "CBRAA0"; + } + 44 + { + title = "Tall blue firestick"; + sprite = "TBLUA0"; + } + 45 + { + title = "Tall green firestick"; + sprite = "TGRNA0"; + } + 46 + { + title = "Tall red firestick"; + sprite = "TREDA0"; + } + 55 + { + title = "Short blue firestick"; + sprite = "SMBTA0"; + } + 56 + { + title = "Short green firestick"; + sprite = "SMGTA0"; + } + 57 + { + title = "Short red firestick"; + sprite = "SMRTA0"; + } + } + + decoration + { + color = 4; // Red + arrow = 0; + title = "Decoration"; + width = 16; + sort = 1; + height = 16; + hangs = 0; + blocking = 0; + + 79 + { + title = "Pool of blood"; + sprite = "POB2A0"; + } + + + 80 + { + title = "Pool of blood"; + sprite = "POL5A0"; + } + + + 81 + { + title = "Pool of brains"; + sprite = "BRS1A0"; + } + + + 49 + { + title = "Hanging victim, twitching (blocking)"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 63 + { + title = "Hanging victim, twitching"; + sprite = "GOR1A0"; + height = 68; + hangs = 1; + } + + + 50 + { + title = "Hanging victim, arms out (blocking)"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 59 + { + title = "Hanging victim, arms out"; + sprite = "GOR2A0"; + height = 84; + hangs = 1; + } + + + 52 + { + title = "Hanging pair of legs (blocking)"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + blocking = 1; + } + + + 60 + { + title = "Hanging pair of legs"; + sprite = "GOR4A0"; + height = 68; + hangs = 1; + } + + + 51 + { + title = "Hanging victim, 1-legged (blocking)"; + sprite = "GOR3A0"; + height = 84; + hangs = 1; + blocking = 1; + } + + + 61 + { + title = "Hanging victim, 1-legged"; + sprite = "GOR3A0"; + height = 52; + hangs = 1; + } + + + 53 + { + title = "Hanging leg (blocking)"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + blocking = 1; + } + + + 62 + { + title = "Hanging leg"; + sprite = "GOR5A0"; + height = 52; + hangs = 1; + } + + + 25 + { + title = "Impaled human"; + sprite = "POL1A0"; + blocking = 1; + } + + + 26 + { + title = "Twitching impaled human"; + sprite = "POL6A0"; + blocking = 1; + } + + + 27 + { + title = "Skull on a pole"; + sprite = "POL4A0"; + blocking = 1; + } + + + 28 + { + title = "5 skulls shish kebob"; + sprite = "POL2A0"; + blocking = 1; + } + + + 29 + { + title = "Pile of skulls and candles"; + sprite = "POL3A0"; + blocking = 1; + } + + + 10 + { + title = "Bloody mess 1"; + sprite = "PLAYW0"; + } + + + 12 + { + title = "Bloody mess 2"; + sprite = "PLAYW0"; + } + + + 24 + { + title = "Pool of blood and flesh"; + sprite = "POL5A0"; + } + + + 15 + { + title = "Dead player"; + sprite = "PLAYN0"; + } + + + 18 + { + title = "Dead former human"; + sprite = "POSSL0"; + width = 20; + } + + + 19 + { + title = "Dead former sergeant"; + sprite = "SPOSL0"; + width = 20; + } + + + 20 + { + title = "Dead imp"; + sprite = "TROOM0"; + width = 20; + } + + + 21 + { + title = "Dead demon"; + sprite = "SARGN0"; + width = 30; + } + + + 22 + { + title = "Dead cacodemon"; + sprite = "HEADL0"; + width = 31; + } + + + 23 = "Dead lost soul"; + + + 73 + { + title = "Hanging victim, guts removed"; + sprite = "HDB1A0"; + height = 88; + hangs = 1; + blocking = 1; + } + + + 74 + { + title = "Hanging victim, guts and brain removed"; + sprite = "HDB2A0"; + height = 88; + hangs = 1; + blocking = 1; + } + + + 75 + { + title = "Hanging torso, looking down"; + sprite = "HDB3A0"; + height = 64; + hangs = 1; + blocking = 1; + } + + + 76 + { + title = "Hanging torso, open skull"; + sprite = "HDB4A0"; + height = 64; + hangs = 1; + blocking = 1; + } + + + 77 + { + title = "Hanging torso, looking down"; + sprite = "HDB5A0"; + height = 64; + hangs = 1; + blocking = 1; + } + + + 78 + { + title = "Hanging torso, brain removed"; + sprite = "HDB6A0"; + height = 64; + hangs = 1; + blocking = 1; + } + } +} \ No newline at end of file diff --git a/Build/Scripting/Dehacked.cfg b/Build/Scripting/Dehacked.cfg new file mode 100644 index 00000000..e147516f --- /dev/null +++ b/Build/Scripting/Dehacked.cfg @@ -0,0 +1,152 @@ +/*******************************************************************\ + Doom Builder Script highlighting definitions for DED +\*******************************************************************/ + +casesensitive = 0; +insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase +linecomment = "#"; +commentopen = ""; +commentclose = ""; +string = "\""; +escape = "\\"; +terminator = ""; +scopeopen = "{"; +scopeclose = "}"; +delimiters = " \n\r\t(){}[]:;!%^&*-+=.,<>/\?|\""; +functionopen = ""; +functionclose = ""; +argumentdelimiter = ""; +keywordhelp = ""; + +keywords +{ + [CODEPTR] = "[CODEPTR]"; + [PARS] = "[PARS]"; + [STRINGS] = "[STRINGS]"; + Action.sound = "Action sound"; + Alert.sound = "Alert sound"; + Ammo = "Ammo"; + Ammo.&.Keys = "Ammo & Keys"; + Ammo.type = "Ammo type"; + Attack.sound = "Attack sound"; + Auto-map = "Auto-map"; + BEHOLD.menu = "BEHOLD menu"; + Berserk = "Berserk"; + BFG.Cells/Shot = "BFG Cells/Shot"; + Bits = "Bits"; + Blue.Armor.Class = "Blue Armor Class"; + Bobbing.frame = "Bobbing frame"; + Chainsaw = "Chainsaw"; + Change.music = "Change music"; + Cheat = "Cheat"; + Close.attack.frame = "Close attack frame"; + Codep.Frame = "Codep Frame"; + Death.frame = "Death frame"; + Death.sound = "Death sound"; + Deselect.frame = "Deselect frame"; + Doom.version = "Doom version"; + Duration = "Duration"; + Exploding.frame = "Exploding frame"; + Far.attack.frame = "Far attack frame"; + Firing.frame = "Firing frame"; + First.moving.frame = "First moving frame"; + Frame = "Frame"; + God.mode = "God mode"; + God.Mode.Health = "God Mode Health"; + Green.Armor.Class = "Green Armor Class"; + Height = "Height"; + Hit.points = "Hit points"; + ID.# = "ID #"; + IDFA.Armor = "IDFA Armor"; + IDFA.Armor.Class = "IDFA Armor Class"; + IDKFA.Armor = "IDKFA Armor"; + IDKFA.Armor.Class = "IDKFA Armor Class"; + INCLUDE = "INCLUDE"; + INCLUDE.NOTEXT = "INCLUDE NOTEXT"; + Initial.Bullets = "Initial Bullets"; + Initial.frame = "Initial frame"; + Initial.Health = "Initial Health"; + Injury.frame = "Injury frame"; + Invincibility = "Invincibility"; + Invisibility = "Invisibility"; + Level.Warp = "Level Warp"; + Lite-amp.Goggles = "Lite-amp Goggles"; + Mass = "Mass"; + Max.ammo = "Max ammo"; + Max.Armor = "Max Armor"; + Max.Health = "Max Health"; + Max.Soulsphere = "Max Soulsphere"; + Megasphere.Health = "Megasphere Health"; + Misc = "Misc"; + Missile.damage = "Missile damage"; + Monsters.Infight = "Monsters Infight"; + Next.frame = "Next frame"; + No.Clipping.1 = "No Clipping 1"; + No.Clipping.2 = "No Clipping 2"; + Offset = "Offset"; + Pain.chance = "Pain chance"; + Pain.sound = "Pain sound"; + par = "par"; + Patch.format = "Patch format"; + Per.ammo = "Per ammo"; + Player.Position = "Player Position"; + Pointer = "Pointer"; + Radiation.Suit = "Radiation Suit"; + Reaction.time = "Reaction time"; + Respawn.frame = "Respawn frame"; + Select.frame = "Select frame"; + Shooting.frame = "Shooting frame"; + Soulsphere.Health = "Soulsphere Health"; + Sound = "Sound"; + Speed = "Speed"; + Sprite = "Sprite"; + Sprite.number = "Sprite number"; + Sprite.subnumber = "Sprite subnumber"; + Text = "Text"; + Thing = "Thing"; + Unknown.1 = "Unknown 1"; + Unknown.2 = "Unknown 2"; + Weapon = "Weapon"; + Width = "Width"; + Zero.1 = "Zero 1"; + Zero.2 = "Zero 2"; + Zero.3 = "Zero 3"; + Zero.4 = "Zero 4"; + Zero/One = "Zero/One"; +} + +constants +{ + AMBUSH; + BOUNCES; + CORPSE; + COUNTITEM; + COUNTKILL; + DROPOFF; + DROPPED; + FLOAT; + FRIEND; + INFLOAT; + JUSTATTACKED; + JUSTHIT; + MISSILE; + NOBLOCKMAP; + NOBLOOD; + NOCLIP; + NOGRAVITY; + NOSECTOR; + NOTDMATCH; + PICKUP; + SHADOW; + SHOOTABLE; + SKULLFLY; + SLIDE; + SOLID; + SPAWNCEILING; + SPECIAL; + TELEPORT; + TOUCHY; + TRANSLATION1; + TRANSLATION2; + TRANSLUCENT; +} diff --git a/Build/Scripting/Doomsday_DED.cfg b/Build/Scripting/Doomsday_DED.cfg new file mode 100644 index 00000000..eb8ac17e --- /dev/null +++ b/Build/Scripting/Doomsday_DED.cfg @@ -0,0 +1,105 @@ +/*******************************************************************\ + Doom Builder Script highlighting definitions for DED +\*******************************************************************/ + +casesensitive = 0; +insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase +linecomment = "#"; +commentopen = "#>"; +commentclose = "<#"; +string = "\""; +escape = "\\"; +terminator = ""; +scopeopen = "{"; +scopeclose = "}"; +delimiters = " \n\r\t(){}[]:;!%^&*-+=.,<>/\?|\""; +functionopen = ""; +functionclose = ""; +argumentdelimiter = ""; +keywordhelp = "http://deng.sourceforge.net/dew/Editing/%K"; + +keywords +{ + Blending.Mode = "Blending Mode"; + Copy.Model = "Copy Model"; + File = "File"; + Flags = "Flags"; + Frame = "Frame"; + Frame.Range = "Frame Range"; + Group = "Group"; + ID = "ID"; + Include = "Include"; + IncludeIf = "IncludeIf"; + IncludeIf.Not = "IncludeIf Not"; + Inter = "Inter"; + Interpolate = "Interpolate"; + MD2 = "MD2"; + Model = "Model"; + ModelPath = "ModelPath"; + Off = "Off"; + Offset = "Offset"; + Offset.XYZ = "Offset XYZ"; + Parm = "Parm"; + Resize = "Resize"; + Scale = "Scale"; + Scale.XYZ = "Scale XYZ"; + Selector = "Selector"; + Selskin = "Selskin"; + Selskin.Mask = "Selskin Mask"; + Selskin.Shift = "Selskin Shift"; + Selskins = "Selskins"; + Shadow.Radius = "Shadow Radius"; + Shiny = "Shiny"; + Shiny.Color = "Shiny Color"; + Shiny.Reaction = "Shiny Reaction"; + Shiny.Skin = "Shiny Skin"; + Skin = "Skin"; + Skin.File = "Skin File"; + Skin.Range = "Skin Range"; + Skin.Ticks = "Skin Ticks"; + SkipIf = "SkipIf"; + SkipIf.Not = "SkipIf Not"; + Sprite = "Sprite"; + Sprite.Frame = "Sprite Frame"; + State = "State"; + Sub = "Sub"; + Transparent = "Transparent"; +} + +constants +{ + add; + alignpitch; + alignyaw; + autoscale; + brightshadow; + brightshadow2; + dark; + darkshadow; + fullbright; + idangle; + idframe; + idskin; + invmul; + litshiny; + movpitch; + movyaw; + mul; + nointerpol; + nomaxz; + noptc; + normal; + notexcomp; + noz; + ptoffsub1; + revsub; + selskin; + shadow1; + shadow2; + skintrans; + specular; + spin; + sub; + sub2; + worldtime; +} diff --git a/Build/Scripting/Hellbent_LUA.cfg b/Build/Scripting/Hellbent_LUA.cfg new file mode 100644 index 00000000..13eeff6b --- /dev/null +++ b/Build/Scripting/Hellbent_LUA.cfg @@ -0,0 +1,87 @@ +/*******************************************************************\ + Doom Builder Script highlighting definitions for LUA +\*******************************************************************/ + +casesensitive = 1; +insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase +linecomment = "--"; +commentopen = "--["; +commentclose = "]--"; +string = "\""; +escape = "\\"; +terminator = ";"; +scopeopen = ""; +scopeclose = ""; +delimiters = " \n\r\t(){}[]:;!%^&*-+=.,<>/\?|\"'"; +functionopen = "("; +functionclose = ")"; +argumentdelimiter = ","; +keywordhelp = ""; + +keywords +{ + // Reserved keywords + and = "and"; + break = "break"; + do = "do"; + else = "else"; + elseif = "elseif"; + end = "end"; + false = "false"; + for = "for"; + function = "function"; + if = "if"; + in = "in"; + local = "local"; + nil = "nil"; + not = "not"; + or = "or"; + repeat = "repeat"; + return = "return"; + then = "then"; + true = "true"; + until = "until"; + while = "while"; + type = "type(v);"; + + // Debug methods + ConsoleLine = "ConsoleLine(text)"; + + // Scripting methods + DelayedCall = "DelayedCall(delay, method, [arguments])"; + CancelCall = "CancelCall(callid)"; + + // Object methods + IsValidObjectID = "IsValidObjectID(id)"; + GetObjectType = "GetObjectType(id)"; + GetObjectAngle = "GetObjectAngle(id)"; + GetObjectPosition = "GetObjectPosition(id)"; + GetObjectsByTag = "GetObjectsByTag(tag)"; + + // Player methods + GetCurrentPlayers = "GetCurrentPlayers()"; + GetPlayerName = "GetPlayerName(id)"; + GetPlayerPlainTextName = "GetPlayerPlainTextName(id)"; + LookAtPlayer = "LookAtPlayer(id)"; + LookAtObject = "LookAtObject(playerid, targetid, speed)"; + LookAtPosition = "LookAtPosition(playerid, x, y, z, angle, speed)"; + + // Map methods + GetCeilingTexture = "GetCeilingTexture(tag)"; + GetFloorTexture = "GetFloorTexture(tag)"; + ChangeCeilingTexture = "ChangeCeilingTexture(tag, texture)"; + ChangeFloorTexture = "ChangeFloorTexture(tag, texture)"; + GetCeilingHeight = "GetCeilingHeight(tag)"; + GetFloorHeight = "GetFloorHeight(tag)"; + MoveCeiling = "MoveCeiling(tag, targetheight, speed)"; + MoveFloor = "MoveFloor(tag, targetheight, speed)"; +} + +constants +{ + ACTIVATOR; // Object that activated the script + GAMETYPE; // Game type of the game currently running + SKILL; // Skill of the game currently running + MAPPACK; // Current map pack name + MAPNAME; // Current map name +} diff --git a/Build/Scripting/Legacy_FS.cfg b/Build/Scripting/Legacy_FS.cfg new file mode 100644 index 00000000..4b03cb92 --- /dev/null +++ b/Build/Scripting/Legacy_FS.cfg @@ -0,0 +1,172 @@ +/*******************************************************************\ + Doom Builder Script highlighting definitions for FS +\*******************************************************************/ + +casesensitive = 1; +insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase +linecomment = "//"; +commentopen = "/*"; +commentclose = "*/"; +string = "\""; +escape = "\\"; +terminator = ";"; +scopeopen = "{"; +scopeclose = "}"; +delimiters = " \n\r\t(){}[]:;!%^&*-+=.,<>/\?|\""; +functionopen = "("; +functionclose = ")"; +argumentdelimiter = ","; +keywordhelp = ""; + +keywords +{ + Abs = "Abs(x)"; + ACos = "ACos(x)"; + AmbientSound = "AmbientSound(soundname)"; + ASin = "ASin(x)"; + ATan = "ATan(x)"; + Beep = "Beep()"; + Break = "Break()"; + CeilingHeight = "CeilingHeight(tag, height)"; + CeilingText = "CeilingText(tag, flat)"; + ChangemMusic = "ChangemMusic(musicname)"; + CheckCVar = "CheckCVar(cvar)"; + CheckLife = "CheckLife(obj)"; + ClearCamera = "ClearCamera()"; + Clock = "Clock()"; + CloseDoor = "CloseDoor(tag, speed)"; + ColorMap = "ColorMap(tag, colormap)"; + Const = "Const identifier = value"; + Continue = "Continue()"; + CopyInto = "CopyInto(source, target)"; + Cos = "Cos(x)"; + CreatePic = "CreatePic(lumpname, x, y, draw, trans, priority)"; + DamageObj = "DamageObj(obj, damage)"; + ElementAt = "ElementAt(array, index)"; + Else = "Else"; + ElseIf = "ElseIf(expression)"; + ExitLevel = "ExitLevel()"; + ExitSecret = "ExitSecret()"; + Exp = "Exp(x)"; + FadeLight = "FadeLight(tag, level, speed)"; + Fixed = "Fixed expression"; + Floor = "Floor(x)"; + FloorHeight = "FloorHeight(tag, height)"; + FloorText = "FloorText(tag, flat)"; + For = "For(initialization, condition, iteration)"; + GameMode = "GameMode()"; + GameSkill = "GameSkill()"; + GetFriction = "GetFriction(tag)"; + GetPicAttr = "GetPicAttr(handle, selector)"; + GetPicHandle = "GetPicHandle(lumpname, x, y)"; + GetPicHP = "GetPicHP()"; + GetPicLP = "GetPicLP()"; + GetPicPriority = "GetPicPriority(handle)"; + Goto = "Goto(label)"; + HealObj = "HealObj(obj, heal)"; + Hub = "Hub"; + If = "If(expression)"; + Include = "Include(lumpname)"; + Int = "Int expression"; + IsPlayerObj = "IsPlayerObj(obj)"; + Kill = "Kill(obj)"; + Length = "Length(array)"; + LightLevel = "LightLevel(tag, level)"; + LineAttack = "LineAttack(obj, angle, damage)"; + LineTrigger = "LineTrigger(special, tag)"; + Log = "Log(x)"; + MapThingNumExist = "MapThingNumExist(mapthing)"; + MapThings = "MapThings()"; + Max = "Max(x, y)"; + MaxPlayerAmmo = "MaxPlayerAmmo(plnum, ammonum, amount)"; + Message = "Message(message)"; + Min = "Min(x, y)"; + MObj = "MObj expression"; + ModifyPic = "ModifyPic(handle, lumpname, x, y)"; + MoveCamera = "MoveCamera(target, targetheight, movespeed, targetangle, anglespeed)"; + MoveCeil = "MoveCeil(tag, destheight, speed)"; + MoveFloor = "MoveFloor(tag, destheight, speed)"; + NewArray = "NewArray(array)"; + ObjAngle = "ObjAngle(obj)"; + ObjAwaken = "ObjAwaken(obj)"; + ObjFlag = "ObjFlag()"; + ObjFlag2 = "ObjFlag2()"; + ObjHealth = "ObjHealth(obj)"; + ObjMomX = "ObjMomX(obj, momx)"; + ObjMomY = "ObjMomY(obj, momy)"; + ObjMomZ = "ObjMomZ(obj, momz)"; + ObjSector = "ObjSector(obj)"; + ObjState = "ObjState(obj, state)"; + ObjTarget = "ObjTarget(source, target)"; + ObjType = "ObjType(obj)"; + ObjX = "ObjX(obj)"; + ObjY = "ObjY(obj)"; + ObjZ = "ObjZ(obj)"; + OpenDoor = "OpenDoor(tag, waittime, speed)"; + PlayDemo = "PlayDemo(demolump)"; + Player = "Player(playerobj)"; + PlayerAddFrag = "PlayerAddFrag(playerid, modifier)"; + PlayerAmmo = "PlayerAmmo(plnum, ammonum, amount)"; + PlayerInGame = "PlayerInGame(playerid)"; + PlayerKeys = "PlayerKeys(plnum, keynum, givetake)"; + PlayerMsg = "PlayerMsg(player, message)"; + PlayerName = "PlayerName(playerid)"; + PlayerObj = "PlayerObj(playerid)"; + PlayerSelWep = "PlayerSelWep(playerid, weapon)"; + PlayerSkin = "PlayerSkin(playerid)"; + PlayerTimedTip = "PlayerTimedTip(message)"; + PlayerTip = "PlayerTip(message)"; + PlayerWeapon = "PlayerWeapon(playerid, weapon, givetake)"; + PointToAngle = "PointToAngle(x1, y1, x2, y2)"; + PointToDist = "PointToDist(x1, y1, x2, y2)"; + Pow = "Pow(x, y)"; + Print = "Print(message)"; + PRnd = "PRnd()"; + PushThing = "PushThing(obj, angle, force)"; + RadiusAttack = "RadiusAttack(spot, source, damage)"; + ReactionTime = "ReactionTime(obj, val)"; + RemoveObj = "RemoveObj(obj)"; + Ressurect = "Ressurect(obj)"; + Return = "Return()"; + Rnd = "Rnd()"; + RunCommand = "RunCommand(command)"; + Script = "Script expression"; + ScriptRunning = "ScriptRunning(scriptid)"; + ScriptWait = "ScriptWait(scriptid)"; + ScriptWaitPre = "ScriptWaitPre(scriptid)"; + SetCamera = "SetCamera(obj, angle, height, pitch)"; + SetCoronas = "SetCoronas()"; + SetElementAt = "SetElementAt(array, index, element)"; + SetFriction = "SetFriction(tag, friction)"; + SetLineBlocking = "SetLineBlocking(tag, block)"; + SetLineMnBlock = "SetLineMnBlock(tag, block)"; + SetLineTexture = "SetLineTexture(tag, side, position, texture)"; + SetPicPriority = "SetPicPriority(handle, priority)"; + SetPicTrans = "SetPicTrans(handle, trans)"; + SetPicVisible = "SetPicVisible(handle, visible)"; + SilentTeleport = "SilentTeleport(obj, sectortag)"; + Sin = "Sin(x)"; + SkinColor = "SkinColor(playerid)"; + Spawn = "Spawn(type, x, y, angle, z)"; + SpawnExplosion = "SpawnExplosion(damage, spot, source)"; + SpawnMissile = "SpawnMissile(obj, target, missile)"; + SpawnShot = "SpawnShot(type, source, target, face)"; + Sqrt = "Sqrt(x)"; + StartScript = "StartScript(scriptid)"; + StartSectorSound = "StartSectorSound(tag, soundname)"; + StartSkill = "StartSkill(skill)"; + StartSound = "StartSound(obj, soundname)"; + String = "String expression"; + TagWait = "TagWait(tag)"; + Tan = "Tan(x)"; + Teleport = "Teleport(obj, sectortag)"; + TestLocation = "TestLocation(obj)"; + TimedTip = "TimedTip(message)"; + Tip = "Tip(message)"; + Wait = "Wait(time)"; + While = "While(expression)"; +} + +constants +{ +} diff --git a/Build/Scripting/ZDoom_ACS.cfg b/Build/Scripting/ZDoom_ACS.cfg new file mode 100644 index 00000000..a0dfc9ef --- /dev/null +++ b/Build/Scripting/ZDoom_ACS.cfg @@ -0,0 +1,676 @@ +/*******************************************************************\ + Doom Builder Script highlighting definitions for ACS +\*******************************************************************/ + +casesensitive = 0; +insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase +linecomment = "//"; +commentopen = "/*"; +commentclose = "*/"; +string = "\""; +escape = "\\"; +terminator = ";"; +scopeopen = "{"; +scopeclose = "}"; +delimiters = " \n\r\t(){}[]:;!%^&*-+=.,<>/\?|\""; +functionopen = "("; +functionclose = ")"; +argumentdelimiter = ","; +keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K"; + +keywords +{ + #Define = "#Define identifier expression"; + #Include = "#Include \"\""; + #Library = "#Library \"\""; + ACS_Execute = "ACS_Execute(script, map, arg1, arg2, arg3)"; + ACS_ExecuteAlways = "ACS_ExecuteAlways(script, map, arg1, arg2, arg3)"; + ACS_ExecuteWait = "ACS_ExecuteWait(script, map, arg1, arg2, arg3)"; + ACS_ExecuteWithResult = "ACS_ExecuteWithResult(script, arg1, arg2, arg3)"; + ACS_LockedExecute = "ACS_LockedExecute(script, map, arg1, arg2, lock)"; + ACS_Suspend = "ACS_Suspend(script, map)"; + ACS_Terminate = "ACS_Terminate(script, map)"; + ActivatorSound = "ActivatorSound(name, volume)"; + ActivatorTID = "ActivatorTID()"; + AmbientSound = "AmbientSound(name, volume)"; + Autosave = "Autosave()"; + bool = "bool expression"; + Break = "Break"; + CancelFade = "CancelFade()"; + Case = "Case expression:"; + Ceiling_CrushAndRaise = "Ceiling_CrushAndRaise(tag, speed, crush)"; + Ceiling_CrushAndRaiseA = "Ceiling_CrushAndRaiseA(tag, dspeed, uspeed, crush)"; + Ceiling_CrushAndRaiseSilentA = "Ceiling_CrushAndRaiseSilentA(tag, dspeed, uspeed, crush)"; + Ceiling_CrushRaiseAndStay = "Ceiling_CrushRaiseAndStay(tag, speed, crush)"; + Ceiling_CrushRaiseAndStayA = "Ceiling_CrushRaiseAndStayA(tag, dspeed, uspeed, crush)"; + Ceiling_CrushRaiseAndStaySilA = "Ceiling_CrushRaiseAndStaySilA(tag, dspeed, uspeed, crush)"; + Ceiling_CrushStop = "Ceiling_CrushStop(tag)"; + Ceiling_LowerAndCrush = "Ceiling_LowerAndCrush(tag, speed, crush)"; + Ceiling_LowerByValue = "Ceiling_LowerByValue(tag, speed, height)"; + Ceiling_LowerByValueTimes8 = "Ceiling_LowerByValueTimes8(tag, speed, height)"; + Ceiling_LowerInstant = "Ceiling_LowerInstant(tag, arg1, height)"; + Ceiling_LowerToFloor = "Ceiling_LowerToFloor(tag, speed)"; + Ceiling_LowerToHighestFloor = "Ceiling_LowerToHighestFloor(tag, speed)"; + Ceiling_LowerToLowest = "Ceiling_LowerToLowest(tag, speed)"; + Ceiling_MoveToValueTimes8 = "Ceiling_MoveToValueTimes8(tag, speed, height, neg)"; + Ceiling_RaiseByValue = "Ceiling_RaiseByValue(tag, speed, height)"; + Ceiling_RaiseByValueTimes8 = "Ceiling_RaiseByValueTimes8(tag, speed, height)"; + Ceiling_RaiseInstant = "Ceiling_RaiseInstant(tag, arg1, height)"; + Ceiling_RaiseToNearest = "Ceiling_RaiseToNearest(tag, speed)"; + Ceiling_Waggle = "Ceiling_Waggle(tag, amp, freq, offset, time)"; + ChangeCamera = "ChangeCamera(tid, who, revert)"; + ChangeCeiling = "ChangeCeiling(tag, flat)"; + ChangeFloor = "ChangeFloor(tag, flat)"; + ChangeSkill = "ChangeSkill(skill)"; + ChangeSky = "ChangeSky(sky1, sky2)"; + CheckInventory = "CheckInventory(type)"; + CheckWeapon = "CheckWeapon(weapon)"; + ClearInventory = "ClearInventory()"; + ClearLineSpecial = "ClearLineSpecial()"; + ClearForceField = "ClearForceField(tag)"; + Const = "Const"; + Continue = "Continue"; + cos = "cos(angle)"; + CreateTranslation = "CreateTranslation(transnumber, translation, translation, translation, ...)"; + DamageThing = "DamageThing(amount)"; + Default = "Default:"; + Delay = "Delay(tics)"; + Do = "Do"; + Door_Close = "Door_Close(tag, speed)"; + Door_CloseWaitOpen = "Door_CloseWaitOpen(tag, speed, delay)"; + Door_LockedRaise = "Door_LockedRaise(tag, speed, delay, lock)"; + Door_Open = "Door_Open(tag, speed)"; + Door_Raise = "Door_Raise(tag, speed, delay)"; + Elevator_LowerToNearest = "Elevator_LowerToNearest(tag, speed)"; + Elevator_MoveToFloor = "Elevator_MoveToFloor(tag, speed)"; + Elevator_RaiseToNearest = "Elevator_RaiseToNearest(tag, speed)"; + Else = "Else"; + Exit_Normal = "Exit_Normal(pos)"; + Exit_Secret = "Exit_Secret(pos)"; + FadeRange = "FadeRange(red1, green1, blue1, red2, green2, blue2, amount, seconds)"; + FadeTo = "FadeTo(red, green, blue, amount, seconds)"; + FixedDiv = "FixedDiv(fa, fb)"; + FixedMul = "FixedMul(fa, fb)"; + Floor_CrushStop = "Floor_CrushStop(tag)"; + Floor_Donut = "Floor_Donut(ptag, pspeed, sspeed)"; + Floor_LowerByValue = "Floor_LowerByValue(tag, speed, height)"; + Floor_LowerByValueTimes8 = "Floor_LowerByValueTimes8(tag, speed, height)"; + Floor_LowerInstant = "Floor_LowerInstant(tag, arg1, height)"; + Floor_LowerToHighest = "Floor_LowerToHighest(tag, speed, adjust)"; + Floor_LowerToLowest = "Floor_LowerToLowest(tag, speed)"; + Floor_LowerToLowestTxTy = "Floor_LowerToLowestTxTy(tag, speed)"; + Floor_LowerToNearest = "Floor_LowerToNearest(tag, speed)"; + Floor_MoveToValueTimes8 = "Floor_MoveToValueTimes8(tag, speed, height, neg)"; + Floor_RaiseAndCrush = "Floor_RaiseAndCrush(tag, speed, crush)"; + Floor_RaiseByTexture = "Floor_RaiseByTexture(tag, speed)"; + Floor_RaiseByValue = "Floor_RaiseByValue(tag, speed, height)"; + Floor_RaiseByValueTimes8 = "Floor_RaiseByValueTimes8(tag, speed, height)"; + Floor_RaiseByValueTxTy = "Floor_RaiseByValueTxTy(tag, speed, height)"; + Floor_RaiseInstant = "Floor_RaiseInstant(tag, arg1, height)"; + Floor_RaiseToHighest = "Floor_RaiseToHighest(tag, speed)"; + Floor_RaiseToLowestCeiling = "Floor_RaiseToLowestCeiling(tag, speed)"; + Floor_RaiseToNearest = "Floor_RaiseToNearest(tag, speed)"; + Floor_TransferNumeric = "Floor_TransferNumeric(tag)"; + Floor_TransferTrigger = "Floor_TransferTrigger(tag)"; + Floor_Waggle = "Floor_Waggle(tag, amp, freq, offset, time)"; + FloorAndCeiling_LowerByValue = "FloorAndCeiling_LowerByValue(tag, speed, height)"; + FloorAndCeiling_LowerRaise = "FloorAndCeiling_LowerRaise(tag, fspeed, cspeed)"; + FloorAndCeiling_RaiseByValue = "FloorAndCeiling_RaiseByValue(tag, speed, height)"; + For = "For(initialization, condition, iteration)"; + Function = "Function Void expression (Void)"; + GameSkill = "GameSkill()"; + GameType = "GameType()"; + Generic_Ceiling = "Generic_Ceiling(tag, speed, height, target, flag)"; + Generic_Crusher = "Generic_Crusher(tag, dspeed, uspeed, silent, crush)"; + Generic_Door = "Generic_Door(tag, speed, kind, delay, lock)"; + Generic_Floor = "Generic_Floor(tag, speed, height, target, flags)"; + Generic_Lift = "Generic_Lift(tag, speed, delay, type, height)"; + Generic_Stairs = "Generic_Stairs(tag, speed, height, flags, reset)"; + GetActorAngle = "GetActorAngle(tid)"; + GetActorProperty = "GetActorProperty(tid, property)"; + GetAmmoCapacity = "GetAmmoCapacity(typename)"; + GetActorFloorZ = "GetActorFloorZ(tid)"; + GetActorX = "GetActorX(tid)"; + GetActorY = "GetActorY(tid)"; + GetActorZ = "GetActorZ(tid)"; + GetCVar = "GetCVar(name)"; + GetLevelInfo = "GetLevelInfo(levelinfo)"; + GetLineRowOffset = "GetLineRowOffset()"; + GetScreenHeight = "GetScreenHeight()"; + GetScreenWidth = "GetScreenWidth()"; + GetSectorCeilingZ = "GetSectorCeilingZ(tag, x, y)"; + GetSectorFloorZ = "GetSectorFloorZ(tag, x, y)"; + GiveInventory = "GiveInventory(type, amount)"; + HealThing = "HealThing(amount)"; + HudMessage = "HudMessage(text; type, id, color, x, y, holdtime)"; + HudMessageBold = "HudMessageBold(text; type, id, color, x, y, holdtime)"; + If = "If(expression)"; + int = "int expression"; + Light_ChangeToValue = "Light_ChangeToValue(tag, value)"; + Light_Fade = "Light_Fade(tag, value, tics)"; + Light_Flicker = "Light_Flicker(tag, upper, lower)"; + Light_ForceLightning = "Light_ForceLightning()"; + Light_Glow = "Light_Glow(tag, upper, lower, tics)"; + Light_LowerByValue = "Light_LowerByValue(tag, value)"; + Light_MaxNeighbor = "Light_MaxNeighbor(tag)"; + Light_MinNeighbor = "Light_MinNeighbor(tag)"; + Light_RaiseByValue = "Light_RaiseByValue(tag, value)"; + Light_Stop = "Light_Stop(tag)"; + Light_Strobe = "Light_Strobe(tag, upper, lower, u-tics, l-tics)"; + Light_StrobeDoom = "Light_StrobeDoom(tag, u-tics, l-tics)"; + Line_AlignCeiling = "Line_AlignCeiling(lineid, side)"; + Line_AlignFloor = "Line_AlignFloor(lineid, side)"; + LineSide = "LineSide()"; + LocalAmbientSound = "LocalAmbientSound(name, volume)"; + LocalSetMusic = "LocalSetMusic(song, pattern, transition)"; + NoiseAlert = "NoiseAlert(target, emitter)"; + Open = "Script expression Open"; + Pillar_Build = "Pillar_Build(tag, speed, height)"; + Pillar_BuildAndCrush = "Pillar_BuildAndCrush(tag, speed, height, crush)"; + Pillar_Open = "Pillar_Open(tag, speed, fdist, cdist)"; + Plat_DownByValue = "Plat_DownByValue(tag, speed, delay, height)"; + Plat_DownWaitUpStay = "Plat_DownWaitUpStay(tag, speed, delay)"; + Plat_DownWaitUpStayLip = "Plat_DownWaitUpStayLip(tag, speed, delay, lip)"; + Plat_PerpetualRaise = "Plat_PerpetualRaise(tag, speed, delay)"; + Plat_PerpetualRaiseLip = "Plat_PerpetualRaiseLip(tag, speed, delay, lip)"; + Plat_RaiseAndStayTx0 = "Plat_RaiseAndStayTx0(tag, speed)"; + Plat_Stop = "Plat_Stop(tag)"; + Plat_ToggleCeiling = "Plat_ToggleCeiling(tag)"; + Plat_UpByValue = "Plat_UpByValue(tag, speed, delay, height)"; + Plat_UpByValueStayTx = "Plat_UpByValueStayTx(tag, speed, height)"; + Plat_UpNearestWaitDownStay = "Plat_UpNearestWaitDownStay(tag, speed, delay)"; + Plat_UpWaitDownStay = "Plat_UpWaitDownStay(tag, speed, delay)"; + Player_GiveItem = "Player_GiveItem(item, message)"; + Player_RemoveItem = "Player_RemoveItem(item, message)"; + Player_SetTeam = "Player_SetTeam(team)"; + PlayerCount = "PlayerCount()"; + PlayerInGame = "PlayerInGame(playernum)"; + PlayerIsBot = "PlayerIsBot(playernum)"; + PlayerNumber = "PlayerNumber()"; + PlayMovie = "PlayMovie(moviename)"; + Polyobj_DoorSlide = "Polyobj_DoorSlide(po, speed, angle, dist, delay)"; + Polyobj_DoorSwing = "Polyobj_DoorSwing(po, speed, angle, delay)"; + Polyobj_Move = "Polyobj_Move(po, speed, angle, dist)"; + Polyobj_MoveTimes8 = "Polyobj_MoveTimes8(po, speed, angle, dist)"; + Polyobj_OR_Move = "Polyobj_OR_Move(po, speed, angle, distance)"; + Polyobj_OR_MoveTimes8 = "Polyobj_OR_MoveTimes8(po, speed, angle, distance)"; + Polyobj_OR_RotateLeft = "Polyobj_OR_RotateLeft(po, speed)"; + Polyobj_OR_RotateRight = "Polyobj_OR_RotateRight(po, speed, angle)"; + Polyobj_RotateLeft = "Polyobj_RotateLeft(po, speed, angle)"; + Polyobj_RotateRight = "Polyobj_RotateRight(po, speed, angle)"; + PolyWait = "PolyWait(po)"; + Print = "Print(type:expression)"; + PrintBold = "PrintBold(type:expression)"; + Radius_Quake = "Radius_Quake(intensity, duration, damrad, tremrad, tid)"; + Random = "Random(low, high)"; + Restart = "Restart"; + Script = "Script expression (Void)"; + ScriptWait = "ScriptWait(scriptid)"; + Scroll_Ceiling = "Scroll_Ceiling(tag, scrollbits, 0, xmove, ymove)"; + Scroll_Floor = "Scroll_Floor(tag, scrollbits, method xmove, ymove)"; + Scroll_Texture_Both = "Scroll_Texture_Both(lineid, left, right, down, up)"; + Sector_ChangeSound = "Sector_ChangeSound(tag, newsequence)"; + Sector_SetCeilingPanning = "Sector_SetCeilingPanning(tag, u-int, u-frac, v-int, v-frac)"; + Sector_SetCeilingScale = "Sector_SetCeilingScale(tag, u-int, u-frac, v-int, v-frac)"; + Sector_SetColor = "Sector_SetColor(tag, r, g, b)"; + Sector_SetDamage = "Sector_SetDamage(tag, amount, mod)"; + Sector_SetFade = "Sector_SetFade(tag, r, g, b)"; + Sector_SetFloorPanning = "Sector_SetFloorPanning(tag, u-int, u-frac, v-int, v-frac)"; + Sector_SetFloorScale = "Sector_SetFloorScale(tag, u-int, u-frac, v-int, v-frac)"; + Sector_SetFriction = "Sector_SetFriction(tag, amount)"; + Sector_SetGravity = "Sector_SetGravity(tag, ipart, fpart)"; + Sector_SetRotation = "Sector_SetRotation(tag, floor-angle, ceiling-angle)"; + SectorSound = "SectorSound(name, volume)"; + SetActorProperty = "SetActorProperty(tid, property, value)"; + SetAirControl = "SetAirControl(amount)"; + SetAmmoCapacity = "SetAmmoCapacity(typename, maxamount)"; + SetCameraToTexture = "SetCameraToTexture(tid, texture, fov)"; + SetCeilingTrigger = "SetCeilingTrigger(tag, height, special, arg1, arg2, arg3, arg4, arg5)"; + SetFloorTrigger = "SetFloorTrigger(tag, height, special, arg1, arg2, arg3, arg4, arg5)"; + SetFont = "SetFont(fontname)"; + SetGravity = "SetGravity(amount)"; + SetHudSize = "SetHudSize(width, height, statusbar)"; + SetLineBlocking = "SetLineBlocking(line, blocking)"; + SetLineMonsterBlocking = "SetLineMonsterBlocking(line, blocking)"; + SetLineSpecial = "SetLineSpecial(line, special, arg1, arg2, arg3, arg4, arg5)"; + SetLineTexture = "SetLineTexture(line, side, position, texture)"; + SetMarineSprite = "SetMarineSprite(tid, actorclass)"; + SetMarineWeapon = "SetMarineWeapon(tid, weapon)"; + SetMusic = "SetMusic(song, pattern, transition)"; + SetPlayerProperty = "SetPlayerProperty(who, set, which)"; + SetResultValue = "SetResultValue(value)"; + SetThingSpecial = "SetThingSpecial(tid, special, arg1, arg2, arg3, arg4, arg5)"; + SetWeapon = "SetWeapon(weaponname)"; + sin = "sin(angle)"; + SoundSequence = "SoundSequence(name)"; + Spawn = "Spawn(type, x, y, z, thingid, angle)"; + SpawnSpot = "SpawnSpot(type, spotid, thingid, angle)"; + Special = "Special"; + Stairs_BuildDown = "Stairs_BuildDown(tag, speed, height, delay, reset)"; + Stairs_BuildDownSync = "Stairs_BuildDownSync(tag, speed, height, reset)"; + Stairs_BuildUp = "Stairs_BuildUp(tag, speed, height, delay, reset)"; + Stairs_BuildUpDoom = "Stairs_BuildUpDoom(tag, speed, height, delay, reset)"; + Stairs_BuildUpSync = "Stairs_BuildUpSync(tag, speed, height, reset)"; + str = "str expression"; + strlen = "strlen(string)"; + Suspend = "Suspend"; + Switch = "Switch(expression)"; + TagWait = "TagWait(tag)"; + TakeInventory = "TakeInventory(type, amount)"; + Team_Score = "Team_Score(amount, nogrin)"; + Teleport = "Teleport(tid)"; + Teleport_EndGame = "Teleport_EndGame()"; + Teleport_Line = "Teleport_Line(thisid, destid, flip)"; + Teleport_NewMap = "Teleport_NewMap(map, pos)"; + Teleport_NoFog = "Teleport_NoFog(tid)"; + TeleportGroup = "TeleportGroup(groupid, sourceid, destinationid, movesource, fog)"; + TeleportInSector = "TeleportInSector(tag, sourceid, destinationid, fog, groupid)"; + TeleportOther = "TeleportOther(tid, destinationid, fog)"; + Teleport_ZombieChanger = "Teleport_ZombieChanger(tid, tag)"; + Terminate = "Terminate"; + Thing_Activate = "Thing_Activate(tid)"; + Thing_ChangeTID = "Thing_ChangeTID(oldtid, newtid)"; + Thing_Damage = "Thing_Damage(tid, amount, mod)"; + Thing_Deactivate = "Thing_Deactivate(tid)"; + Thing_Destroy = "Thing_Destroy(tid, extreme)"; + Thing_Hate = "Thing_Hate(hater, hatee, type)"; + Thing_Move = "Thing_Move(tid, destid)"; + Thing_Projectile = "Thing_Projectile(tid, type, angle, speed, vspeed)"; + Thing_Projectile2 = "Thing_Projectile2(tid, type, angle, speed, vspeed, gravity, newtid)"; + Thing_ProjectileAimed = "Thing_ProjectileAimed(tid, type, speed, target, newtid)"; + Thing_ProjectileGravity = "Thing_ProjectileGravity(tid, type, angle, speed, vspeed)"; + Thing_ProjectileIntercept = "Thing_ProjectileIntercept(tid, type, speed, target, newtid)"; + Thing_Remove = "Thing_Remove(tid)"; + Thing_SetFrame = "Thing_SetFrame(tid, frame)"; + Thing_SetGoal = "Thing_SetGoal(tid, goal, delay)"; + Thing_SetSpecial = "Thing_SetSpecial(tid, special, arg1, arg2, arg3)"; + Thing_SetTranslation = "Thing_SetTranslation(tid, translation)"; + Thing_Spawn = "Thing_Spawn(tid, type, angle, newtid)"; + Thing_SpawnFacing = "Thing_SpawnFacing(tid, type, nofog, newtid)"; + Thing_SpawnNoFog = "Thing_SpawnNoFog(tid, type, angle, newtid)"; + ThingCount = "ThingCount(type, id)"; + ThingSound = "ThingSound(thingid, name, volume)"; + ThrustThing = "ThrustThing(angle, force)"; + ThrustThingZ = "ThrustThingZ(tid, speed, upordown, addorset)"; + Timer = "Timer()"; + TranslucentLine = "TranslucentLine(lineid, amount, additive)"; + Until = "Until(expression)"; + UsePuzzleItem = "UsePuzzleItem(item, script)"; + VectorAngle = "VectorAngle(x, y)"; + Void = "Void"; + While = "While(expression)"; + World = "World Int expression:identifier"; +} + +constants +{ + TRUE; + FALSE; + ON; + OFF; + YES; + NO; + LINE_FRONT; + LINE_BACK; + SIDE_FRONT; + SIDE_BACK; + TEXTURE_TOP; + TEXTURE_MIDDLE; + TEXTURE_BOTTOM; + GAME_SINGLE_PLAYER; + GAME_NET_COOPERATIVE; + GAME_NET_DEATHMATCH; + GAME_NET_TEAMGAME; + TEAM_BLUE; + TEAM_RED; + CLASS_FIGHTER; + CLASS_CLERIC; + CLASS_MAGE; + SKILL_VERY_EASY; + SKILL_EASY; + SKILL_NORMAL; + SKILL_HARD; + SKILL_VERY_HARD; + BLOCK_NOTHING; + BLOCK_CREATURES; + BLOCK_EVERYTHING; + SCROLL; + CARRY; + SCROLL_AND_CARRY; + MOD_UNKNOWN; + MOD_FIST; + MOD_PISTOL; + MOD_SHOTGUN; + MOD_CHAINGUN; + MOD_ROCKET; + MOD_R_SPLASH; + MOD_PLASMARIFLE; + MOD_BFG_BOOM; + MOD_BFG_SPLASH; + MOD_CHAINSAW; + MOD_SSHOTGUN; + MOD_WATER; + MOD_SLIME; + MOD_LAVA; + MOD_CRUSH; + MOD_TELEFRAG; + MOD_FALLING; + MOD_SUICIDE; + MOD_BARREL; + MOD_EXIT; + MOD_SPLASH; + MOD_HIT; + MOVIE_Played; + MOVIE_Played_NoVideo; + MOVIE_Played_Aborted; + MOVIE_Failed; + PROP_FROZEN; + PROP_NOTARGET; + PROP_INSTANTWEAPONSWITCH; + PROP_FLY; + PROP_TOTALLYFROZEN; + CR_UNTRANSLATED; + CR_BRICK; + CR_TAN; + CR_GRAY; + CR_GREY; + CR_GREEN; + CR_BROWN; + CR_GOLD; + CR_RED; + CR_BLUE; + CR_ORANGE; + CR_WHITE; + CR_YELLOW; + HUDMSG_PLAIN; + HUDMSG_FADEOUT; + HUDMSG_TYPEON; + HUDMSG_LOG0x80000; + MARINEWEAPON_Dummy; + MARINEWEAPON_Fist; + MARINEWEAPON_BerserkFis; + MARINEWEAPON_Chainsaw; + MARINEWEAPON_Pistol; + MARINEWEAPON_Shotgun; + MARINEWEAPON_SuperShotgu; + MARINEWEAPON_Chaingun; + MARINEWEAPON_RocketLaunche; + MARINEWEAPON_PlasmaRifl; + MARINEWEAPON_Railgun; + MARINEWEAPON_BFG; + APROP_Health; + APROP_Speed; + APROP_Damage; + APROP_Alpha; + APROP_RenderStyl; + APROP_Ambush; + APROP_Invulnerable; + APROP_SeeSound; + APROP_AttackSoun; + APROP_PainSound; + APROP_DeathSoun; + APROP_ActiveSoun; + STYLE_None; + STYLE_Normal; + STYLE_Fuzzy; + STYLE_SoulTrans; + STYLE_OptFuzzy; + STYLE_Translucen; + STYLE_Add; + T_ROCK1; + T_ROCK2; + T_ROCK3; + T_DIRT1; + T_DIRT2; + T_DIRT3; + T_DIRT4; + T_DIRT5; + T_DIRT6; + T_STAINEDGLASS1; + T_STAINEDGLASS2; + T_STAINEDGLASS3; + T_STAINEDGLASS4; + T_STAINEDGLASS5; + T_STAINEDGLASS6; + T_STAINEDGLASS7; + T_STAINEDGLASS8; + T_STAINEDGLASS9; + T_STAINEDGLASS0; + T_NONE; + T_SHOTGUY; + T_CHAINGUY; + T_BARON; + T_ZOMBIE; + T_IMP; + T_ARACHNOTRON; + T_SPIDERMASTERMIND; + T_DEMON; + T_SPECTRE; + T_IMPFIREBALL; + T_CLIP; + T_SHELLS; + T_CACODEMON; + T_REVENANT; + T_BRIDGE; + T_ARMORBONUS; + T_STIMPACK; + T_MEDKIT; + T_SOULSPHERE; + T_SHOTGUN; + T_CHAINGUN; + T_ROCKETLAUNCHER; + T_PLASMAGUN; + T_BFG; + T_CHAINSAW; + T_SUPERSHOTGUN; + T_PLASMABOLT; + T_TRACER; + T_GREENARMOR; + T_BLUEARMOR; + T_CELL; + T_BLUEKEYCARD; + T_REDKEYCARD; + T_YELLOWKEYCARD; + T_YELLOWSKULLKEY; + T_REDSKULLKEY; + T_BLUESKULLKEY; + T_TEMPLARGEFLAME; + T_STEALTHBARON; + T_STEALTHKNIGHT; + T_STEALTHZOMBIE; + T_STEALTHSHOTGUY; + T_LOSTSOUL; + T_VILE; + T_MANCUBUS; + T_HELLKNIGHT; + T_CYBERDEMON; + T_PAINELEMENTAL; + T_WOLFSS; + T_STEALTHARACHNOTRON; + T_STEALTHVILE; + T_STEALTHCACODEMON; + T_STEALTHCHAINGUY; + T_STEALTHSERGEANT; + T_STEALTHIMP; + T_STEALTHMANCUBUS; + T_STEALTHREVENANT; + T_BARREL; + T_CACODEMONSHOT; + T_ROCKET; + T_BFGSHOT; + T_ARACHNOTRONPLASMA; + T_BLOOD; + T_PUFF; + T_MEGASPHERE; + T_INVULNERABILITY; + T_BERSERK; + T_INVISIBILITY; + T_IRONFEET; + T_COMPUTERMAP; + T_LIGHTAMP; + T_AMMOBOX; + T_ROCKETAMMO; + T_ROCKETBOX; + T_BATTERY; + T_SHELLBOX; + T_BACKPACK; + T_GUTS; + T_BLOODPOOL; + T_BLOODPOOL1; + T_BLOODPOOL2; + T_FLAMINGBARREL; + T_BRAINS; + T_SCRIPTEDMARINE; + T_HEALTHBONUS; + T_MANCUBUSSHOT; + T_BARONBALL; + T_GRENADE; + T_DARKIMP; + T_BLOODDEMON; + T_SSGGUY; + T_HECTEBUS; + T_CACOLANTERN; + T_BELPHEGOR; + T_SAUSAGEHEAD; + T_SAUSAGESPITTER; + T_PISTOL; + T_GRENADELAUNCHER; + T_RAILGUN; + T_BFG10000; + T_MINIGUN; + T_MAXHEALTHBONUS; + T_MASARMORBONUS; + T_REDARMOR; + T_TURBOSPHERE; + T_ANTIGRAVBELT; + T_TIMEFREEZER; + T_INFRAGOGGLES; + T_INFRATRACKER; + T_TRANSLUCENCY; + T_DOOMSPHERE; + T_RANDOMPOWERUP; + T_BLUEFLAG; + T_REDFLAG; + T_WHITEFLAG; + T_STRENGTH; + T_RAGE; + T_DRAIN; + T_SPREAD; + T_RESISTANCE; + T_REGENERATION; + T_PROSPERITY; + T_REFLECTION; + T_HIGHJUMP; + T_HASTE; + T_DEADCYBERDEMON; + T_BOBBINGSKULLINFLAMES; + T_IMPALINGSPIKE; + T_IMPALINGSPIKECGUN; + T_IMPALINGSPIKEZOMB; + T_IMPSTATUE; + T_DEMONSTATUE; + T_ARCHSTATUE; + T_BARONSTATUE; + T_CYBERDEMONSTATUE; + T_MASSMOUTHSTATUE; + T_GREYSTALAGMITE; + T_SHORTGREYPILLAR; + T_TALLGREYPILLAR; + T_GREYPILLARHEART; + T_TALLGOTHICPILLAR; + T_REVENANTHAND; + T_IMPHEAD; + T_HISSY; + T_HELLPILLAR; + T_GOTHICPILLAR; + T_STARBASEPILLAR; + T_MILITARYPILLAR; + T_LABORTORYPILLAR; + T_CLINK; + T_MUMMYLEADER; + T_BEAST; + T_MUMMY; + T_KNIGHT; + T_IMPLEADER; + T_MUMMYGHOST; + T_MUMMYLEADERGHOST; + T_WIMPYWANDAMMO; + T_HEFTYWANDAMMO; + T_ITEMEGG; + T_ITEMFLIGHT; + T_ITEMTELEPORT; + T_WIZARD; + T_IRONLICH; + T_ITEMHEALTHPOTION; + T_ITEMHEALTHFLASH; + T_ITEMHEALTHFULL; + T_CROSSBOW; + T_BLASTER; + T_PHOENIXROD; + T_SKULLROD; + T_MACE; + T_GAUNTLETS; + T_WIMPYCROSSBOWAMMO; + T_HEFTYCROSSBOWAMMO; + T_WIMPYMACEAMMO; + T_HEFTYMACEAMMO; + T_WIMPYBLASTERAMMO; + T_HEFTYBLASTERAMMO; + T_MORPHBLAST; + T_SHIELD1; + T_SHIELD2; + T_ITEMTIMEBOMB; + T_ITEMTORCH; + T_BLUEKEY; + T_GREENKEY; + T_YELLOWKEY; + T_SOUND_WIND; + T_SOUND_WATERFALL; + T_BEASTBALL; + T_FEATHER; + T_CHICKEN; + T_VOLCANOBALL; + T_TINYVOLCANOBALL; + T_POD; + T_PODGENERATOR; + T_KNIGHTAXE; + T_KNIGHTBLOODAXE; + T_KNIGHTGHOST; + T_MUMMYHEAD; + T_SNAKE; + T_ITEMINVULNERABILITY; + T_ITEMTOME; + T_ITEMINVISIBILITY; + T_ITEMBAGOFHOLDING; + T_ITEMALLMAP; + T_SNAKEPROJECTILE; + T_SNAKEPROJECTILEBIG; + T_WIZARDSHOT; + T_DSPARILTELEPORTDEST; + T_DSPARILONSERPENT; + T_DSPARILALONE; + T_SERPENTFIREBALL; + T_DSPARILBLUESHOT; + T_DSPARILWIZARDSPAWNER; + T_CROSSBOWMAINBLAST; + T_CROSSBOWMINIBLAST; + T_CROSSBOWPOWERBLAST; + T_VOLCANO; + T_POWERWANDMINIBLAST; + T_POWERWANDBIGGERBLAST; + T_DEATHBALL; + T_NOGRAVITYMACEBALL; + T_BOUNCYMACEBALL; + T_HEAVYMACEBALL; + T_RIPPER; + T_WIMPYSKULLRODAMMO; + T_HEFTYSKULLRODAMMO; + T_SKULLRODBLAST; + T_WIMPYPHOENIXRODAMMO; + T_HEFTYPHOENIXRODAMMO; + T_PHOENIXSHOT; + T_IRONLICHBLUESHOT; + T_WHIRLWIND; + T_REDTELEGLITTER; + T_BLUETELEGLITTER; +} diff --git a/Builder.sln b/Builder.sln new file mode 100644 index 00000000..c9c09102 --- /dev/null +++ b/Builder.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Builder", "Source\Builder.csproj", "{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {818B3D10-F791-4C3F-9AF5-BB2D0079B63C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Resources/Builder.ico b/Resources/Builder.ico new file mode 100644 index 00000000..eb8a0547 Binary files /dev/null and b/Resources/Builder.ico differ diff --git a/Resources/Builder_16.ico b/Resources/Builder_16.ico new file mode 100644 index 00000000..2a8cf2cb Binary files /dev/null and b/Resources/Builder_16.ico differ diff --git a/Resources/Builder_32.ico b/Resources/Builder_32.ico new file mode 100644 index 00000000..9607b7d7 Binary files /dev/null and b/Resources/Builder_32.ico differ diff --git a/Resources/Builder_48.ico b/Resources/Builder_48.ico new file mode 100644 index 00000000..a13e7f3c Binary files /dev/null and b/Resources/Builder_48.ico differ diff --git a/Resources/Splash.cpt b/Resources/Splash.cpt new file mode 100644 index 00000000..830b7153 Binary files /dev/null and b/Resources/Splash.cpt differ diff --git a/Resources/Splash2.png b/Resources/Splash2.png new file mode 100644 index 00000000..eae651db Binary files /dev/null and b/Resources/Splash2.png differ diff --git a/Source/Builder.csproj b/Source/Builder.csproj new file mode 100644 index 00000000..8d33cdc0 --- /dev/null +++ b/Source/Builder.csproj @@ -0,0 +1,94 @@ + + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {818B3D10-F791-4C3F-9AF5-BB2D0079B63C} + WinExe + Properties + CodeImp.DoomBuilder + Builder + CodeImp.DoomBuilder.General + Builder.ico + + + true + full + false + ..\Build\ + DEBUG;TRACE + prompt + 4 + false + true + + + pdbonly + true + ..\Build\ + + + prompt + 4 + false + true + + + + + + + + + + + + + + + Form + + + MainForm.cs + + + + + + + True + True + Resources.resx + + + + + + + + + + Designer + MainForm.cs + + + Designer + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + \ No newline at end of file diff --git a/Source/Builder.ico b/Source/Builder.ico new file mode 100644 index 00000000..eb8a0547 Binary files /dev/null and b/Source/Builder.ico differ diff --git a/Source/General/General.cs b/Source/General/General.cs new file mode 100644 index 00000000..6dceee80 --- /dev/null +++ b/Source/General/General.cs @@ -0,0 +1,85 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.Windows.Forms; +using System.IO; +using System.Reflection; +using CodeImp.DoomBuilder.Interface; +using CodeImp.DoomBuilder.IO; + +namespace CodeImp.DoomBuilder +{ + internal static class General + { + #region ================== Constants + + // Files and Folders + private const string SETTINGS_CONFIG_FILE = "Builder.cfg"; + + #endregion + + #region ================== Variables + + // Files and Folders + private static string apppath; + private static string temppath; + + // Main objects + private static MainForm mainwindow; + private static Configuration settings; + + #endregion + + #region ================== Properties + + public static string AppPath { get { return apppath; } } + public static string TempPath { get { return temppath; } } + public static MainForm MainWindow { get { return mainwindow; } } + public static Configuration Settings { get { return settings; } } + + #endregion + + #region ================== Methods + + // Main program entry + public static void Main(string[] args) + { + // Find application path + string dirpath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase); + Uri localpath = new Uri(dirpath); + apppath = Uri.UnescapeDataString(localpath.AbsolutePath); + + // Temporary directory + temppath = Path.GetTempPath(); + + // Load configuration + if(!File.Exists(Path.Combine(apppath, SETTINGS_CONFIG_FILE))) throw (new FileNotFoundException("Unable to find the program configuration \"" + SETTINGS_CONFIG_FILE + "\".")); + settings = new Configuration(Path.Combine(apppath, SETTINGS_CONFIG_FILE), false); + + // Create main window + mainwindow = new MainForm(); + + // Show main window + mainwindow.Show(); + + // Run application from the main window + Application.Run(mainwindow); + } + + #endregion + } +} diff --git a/Source/Geometry/Angle2D.cs b/Source/Geometry/Angle2D.cs new file mode 100644 index 00000000..019731a1 --- /dev/null +++ b/Source/Geometry/Angle2D.cs @@ -0,0 +1,58 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; + +namespace CodeImp.DoomBuilder.Geometry +{ + internal struct Angle2D + { + #region ================== Constants + + public const float PI = (float)Math.PI; + public const float PI2 = (float)Math.PI * 2f; + + #endregion + + #region ================== Methods + + // This normalizes an angle + public static float Normalized(float a) + { + while(a < 0f) a += PI2; + while(a > PI2) a -= PI2; + return a; + } + + // This returns the difference between two angles + public static float Difference(float a, float b) + { + float d; + + // Calculate delta angle + d = Normalized(a) - Normalized(b); + + // Make corrections for zero barrier + if(d < 0f) d += PI2; + if(d > PI) d -= PI2; + + // Return result + return d; + } + + #endregion + } +} diff --git a/Source/Geometry/Line2D.cs b/Source/Geometry/Line2D.cs new file mode 100644 index 00000000..2e362862 --- /dev/null +++ b/Source/Geometry/Line2D.cs @@ -0,0 +1,260 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; + +namespace CodeImp.DoomBuilder.Geometry +{ + internal struct Line2D + { + #region ================== Constants + + #endregion + + #region ================== Variables + + // Coordinates + public Vector2D v1; + public Vector2D v2; + + #endregion + + #region ================== Constructors + + // Constructor + public Line2D(Vector2D v1, Vector2D v2) + { + this.v1 = v1; + this.v2 = v2; + } + + // Constructor + public Line2D(Vector2D v1, float x2, float y2) + { + this.v1 = v1; + this.v2 = new Vector2D(x2, y2); + } + + // Constructor + public Line2D(float x1, float y1, Vector2D v2) + { + this.v1 = new Vector2D(x1, y1); + this.v2 = v2; + } + + // Constructor + public Line2D(float x1, float y1, float x2, float y2) + { + this.v1 = new Vector2D(x1, y1); + this.v2 = new Vector2D(x2, y2); + } + + #endregion + + #region ================== Statics + + // This calculates the length + public static float GetLength(float dx, float dy) + { + // Calculate and return the length + return (float)Math.Sqrt(GetLengthSq(dx, dy)); + } + + // This calculates the square of the length + public static float GetLengthSq(float dx, float dy) + { + // Calculate and return the length + return dx * dx + dy * dy; + } + + // This calculates the normal of a line + public static Vector2D GetNormal(float dx, float dy) + { + return new Vector2D(dx, dy).GetNormal(); + } + + // This tests if the line intersects with the given line coordinates + public static bool GetIntersection(Vector2D v1, Vector2D v2, float x3, float y3, float x4, float y4) + { + float u_ray, u_line; + return GetIntersection(v1, v2, x3, y3, x4, y4, out u_ray, out u_line); + } + + // This tests if the line intersects with the given line coordinates + public static bool GetIntersection(Vector2D v1, Vector2D v2, float x3, float y3, float x4, float y4, out float u_ray) + { + float u_line; + return GetIntersection(v1, v2, x3, y3, x4, y4, out u_ray, out u_line); + } + + // This tests if the line intersects with the given line coordinates + public static bool GetIntersection(Vector2D v1, Vector2D v2, float x3, float y3, float x4, float y4, out float u_ray, out float u_line) + { + // Calculate divider + float div = (y4 - y3) * (v2.x - v1.x) - (x4 - x3) * (v2.y - v1.y); + + // Can this be tested? + if((div > 0.000001f) || (div < -0.000001f)) + { + // Calculate the intersection distance from the line + u_line = ((x4 - x3) * (v1.y - y3) - (y4 - y3) * (v1.x - x3)) / div; + + // Calculate the intersection distance from the ray + u_ray = ((v2.x - v1.x) * (v1.y - y3) - (v2.y - v1.y) * (v1.x - x3)) / div; + + // Return if intersecting + return (u_ray >= 0.0f) && (u_ray <= 1.0f) && (u_line >= 0.0f) && (u_line <= 1.0f); + } + else + { + // Unable to detect intersection + u_line = float.NaN; + u_ray = float.NaN; + return false; + } + } + + // This tests on which side of the line the given coordinates are + // returns < 0 for front (right) side, > 0 for back (left) side and 0 if on the line + public static float GetSideOfLine(Vector2D v1, Vector2D v2, Vector2D p) + { + // Calculate and return side information + return (p.y - v1.y) * (v2.x - v1.x) - (p.x - v1.x) * (v2.y - v1.y); + } + + // This returns the shortest distance from given coordinates to line + public static float GetDistanceToLine(Vector2D v1, Vector2D v2, Vector2D p, bool bounded) + { + return (float)Math.Sqrt(GetDistanceToLineSq(v1, v2, p, bounded)); + } + + // This returns the shortest distance from given coordinates to line + public static float GetDistanceToLineSq(Vector2D v1, Vector2D v2, Vector2D p, bool bounded) + { + // Calculate intersection offset + float u = ((p.x - v1.x) * (v2.x - v1.x) + (p.y - v1.y) * (v2.y - v1.y)) / GetLengthSq(v2.x - v1.x, v2.y - v1.y); + + if(bounded) + { + /* + // Limit intersection offset to the line + float lbound = 1f / GetLength(v2.x - v1.x, v2.y - v1.y); + float ubound = 1f - lbound; + if(u < lbound) u = lbound; + if(u > ubound) u = ubound; + */ + if(u < 0f) u = 0f; else if(u > 1f) u = 1f; + } + + // Calculate intersection point + Vector2D i = v1 + u * (v2 - v1); + + // Return distance between intersection and point + // which is the shortest distance to the line + float ldx = p.x - i.x; + float ldy = p.y - i.y; + return ldx * ldx + ldy * ldy; + } + + // This returns the offset coordinates on the line nearest to the given coordinates + public static float GetNearestOnLine(Vector2D v1, Vector2D v2, Vector2D p) + { + // Calculate and return intersection offset + return ((p.x - v1.x) * (v2.x - v1.x) + (p.y - v1.y) * (v2.y - v1.y)) / GetLengthSq(v2.x - v1.x, v2.y - v1.y); + } + + // This returns the coordinates at a specific position on the line + public static Vector2D GetCoordinatesAt(Vector2D v1, Vector2D v2, float u) + { + // Calculate and return intersection offset + return new Vector2D(v1.x + u * (v2.x - v1.x), v1.y + u * (v2.y - v1.y)); + } + + #endregion + + #region ================== Methods + + // This calculates the angle + public float GetAngle() + { + // Calculate and return the angle + Vector2D d = GetDelta(); + return -(float)Math.Atan2(-d.y, d.x) + (float)Math.PI * 0.5f; + } + + public Vector2D GetDelta() { return v2 - v1; } + + public float GetLength() { return Line2D.GetLength(v2.x - v1.x, v2.y - v1.y); } + public float GetLengthSq() { return Line2D.GetLengthSq(v2.x - v1.x, v2.y - v1.y); } + + public bool GetIntersection(float x3, float y3, float x4, float y4) + { + return Line2D.GetIntersection(v1, v2, x3, y3, x4, y4); + } + + public bool GetIntersection(float x3, float y3, float x4, float y4, out float u_ray) + { + return Line2D.GetIntersection(v1, v2, x3, y3, x4, y4, out u_ray); + } + + public bool GetIntersection(float x3, float y3, float x4, float y4, out float u_ray, out float u_line) + { + return Line2D.GetIntersection(v1, v2, x3, y3, x4, y4, out u_ray, out u_line); + } + + public bool GetIntersection(Line2D ray) + { + return Line2D.GetIntersection(v1, v2, ray.v1.x, ray.v1.y, ray.v2.x, ray.v2.y); + } + + public bool GetIntersection(Line2D ray, out float u_ray) + { + return Line2D.GetIntersection(v1, v2, ray.v1.x, ray.v1.y, ray.v2.x, ray.v2.y, out u_ray); + } + + public bool GetIntersection(Line2D ray, out float u_ray, out float u_line) + { + return Line2D.GetIntersection(v1, v2, ray.v1.x, ray.v1.y, ray.v2.x, ray.v2.y, out u_ray, out u_line); + } + + public float GetSideOfLine(Vector2D p) + { + return Line2D.GetSideOfLine(v1, v2, p); + } + + public float GetDistanceToLine(Vector2D p, bool bounded) + { + return Line2D.GetDistanceToLine(v1, v2, p, bounded); + } + + public float GetDistanceToLineSq(Vector2D p, bool bounded) + { + return Line2D.GetDistanceToLineSq(v1, v2, p, bounded); + } + + public float GetNearestOnLine(Vector2D p) + { + return Line2D.GetNearestOnLine(v1, v2, p); + } + + public Vector2D GetCoordinatesAt(float u) + { + return Line2D.GetCoordinatesAt(v1, v2, u); + } + + #endregion + } +} diff --git a/Source/Geometry/Vector2D.cs b/Source/Geometry/Vector2D.cs new file mode 100644 index 00000000..1d6461b3 --- /dev/null +++ b/Source/Geometry/Vector2D.cs @@ -0,0 +1,257 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; + +namespace CodeImp.DoomBuilder.Geometry +{ + internal struct Vector2D + { + #region ================== Constants + + private const float TINY_VALUE = 0.0000000001f; + + #endregion + + #region ================== Variables + + // Coordinates + public float x; + public float y; + + #endregion + + #region ================== Constructors + + // Constructor + public Vector2D(float x, float y) + { + this.x = x; + this.y = y; + } + + // Constructor + public Vector2D(Vector3D v) + { + this.x = v.x; + this.y = v.y; + } + + #endregion + + #region ================== Statics + + // Conversion to Vector3D + public static implicit operator Vector3D(Vector2D a) + { + return new Vector3D(a); + } + + // This adds two vectors + public static Vector2D operator +(Vector2D a, Vector2D b) + { + return new Vector2D(a.x + b.x, a.y + b.y); + } + + // This adds to a vector + public static Vector2D operator +(float a, Vector2D b) + { + return new Vector2D(a + b.x, a + b.y); + } + + // This adds to a vector + public static Vector2D operator +(Vector2D a, float b) + { + return new Vector2D(a.x + b, a.y + b); + } + + // This subtracts two vectors + public static Vector2D operator -(Vector2D a, Vector2D b) + { + return new Vector2D(a.x - b.x, a.y - b.y); + } + + // This subtracts from a vector + public static Vector2D operator -(Vector2D a, float b) + { + return new Vector2D(a.x - b, a.y - b); + } + + // This subtracts from a vector + public static Vector2D operator -(float a, Vector2D b) + { + return new Vector2D(a - b.x, a - b.y); + } + + // This reverses a vector + public static Vector2D operator -(Vector2D a) + { + return new Vector2D(-a.x, -a.y); + } + + // This scales a vector + public static Vector2D operator *(float s, Vector2D a) + { + return new Vector2D(a.x * s, a.y * s); + } + + // This scales a vector + public static Vector2D operator *(Vector2D a, float s) + { + return new Vector2D(a.x * s, a.y * s); + } + + // This scales a vector + public static Vector2D operator *(Vector2D a, Vector2D b) + { + return new Vector2D(a.x * b.x, a.y * b.y); + } + + // This scales a vector + public static Vector2D operator /(float s, Vector2D a) + { + return new Vector2D(a.x / s, a.y / s); + } + + // This scales a vector + public static Vector2D operator /(Vector2D a, float s) + { + return new Vector2D(a.x / s, a.y / s); + } + + // This scales a vector + public static Vector2D operator /(Vector2D a, Vector2D b) + { + return new Vector2D(a.x / b.x, a.y / b.y); + } + + // This calculates the dot product + public static float DotProduct(Vector2D a, Vector2D b) + { + // Calculate and return the dot product + return a.x * b.x + a.y * b.y; + } + + // This reflects the vector v over mirror m + // Note that mirror m must be normalized! + // R = V - 2 * M * (M dot V) + public static Vector2D Reflect(Vector2D v, Vector2D m) + { + // Get the dot product of v and m + float dp = Vector2D.DotProduct(m, v); + + // Make the reflected vector + Vector2D mv = new Vector2D(); + mv.x = v.x - (2f * m.x * dp); + mv.y = v.y - (2f * m.y * dp); + + // Return the reflected vector + return mv; + } + + // This returns the reversed vector + public static Vector2D Reversed(Vector2D v) + { + // Return reversed vector + return new Vector2D(-v.x, -v.y); + } + + // This returns a vector from an angle + public static Vector2D FromAngle(float angle) + { + // Return vector from angle + return new Vector2D((float)Math.Sin(angle), -(float)Math.Cos(angle)); + } + + // This returns a vector from an angle with a given legnth + public static Vector2D FromAngle(float angle, float length) + { + // Return vector from angle + return FromAngle(angle) * length; + } + + #endregion + + #region ================== Methods + + // This calculates the angle + public float GetAngle() + { + // Calculate and return the angle + return -(float)Math.Atan2(-y, x) + (float)Math.PI * 0.5f; + } + + // This calculates the length + public float GetLength() + { + // Calculate and return the length + return (float)Math.Sqrt(x * x + y * y); + } + + // This calculates the square length + public float GetLengthSq() + { + // Calculate and return the square length + return x * x + y * y; + } + + // This calculates the length + public float GetManhattanLength() + { + // Calculate and return the length + return Math.Abs(x) + Math.Abs(y); + } + + // This returns a normalized vector + public Vector2D GetNormal() + { + float lensq = this.GetLengthSq(); + if(lensq > TINY_VALUE) + { + // Divide each element by the length + float mul = 1f / (float)Math.Sqrt(lensq); + return new Vector2D(x * mul, y * mul); + } + else + { + // Cannot make normal + return new Vector2D(0f, 0f); + } + } + + // This scales the vector + public Vector2D GetScaled(float s) + { + // Scale the vector + return new Vector2D(x * s, y * s); + } + + // This changes the vector length + public Vector2D GetFixedLength(float l) + { + // Normalize, then scale + return this.GetNormal().GetScaled(l); + } + + // Output + public override string ToString() + { + return x + ", " + y; + } + + #endregion + } +} diff --git a/Source/Geometry/Vector3D.cs b/Source/Geometry/Vector3D.cs new file mode 100644 index 00000000..5bc0ff62 --- /dev/null +++ b/Source/Geometry/Vector3D.cs @@ -0,0 +1,276 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; + +namespace CodeImp.DoomBuilder.Geometry +{ + internal struct Vector3D + { + #region ================== Constants + + private const float TINY_VALUE = 0.0000000001f; + + #endregion + + #region ================== Variables + + // Coordinates + public float x; + public float y; + public float z; + + #endregion + + #region ================== Constructors + + // Constructor + public Vector3D(float x, float y, float z) + { + this.x = x; + this.y = y; + this.z = z; + } + + // Constructor + public Vector3D(Vector2D v) + { + this.x = v.x; + this.y = v.y; + this.z = 0f; + } + + #endregion + + #region ================== Statics + + // Conversion to Vector2D + public static implicit operator Vector2D(Vector3D a) + { + return new Vector2D(a); + } + + // This adds two vectors + public static Vector3D operator +(Vector3D a, Vector3D b) + { + return new Vector3D(a.x + b.x, a.y + b.y, a.z + b.z); + } + + // This subtracts two vectors + public static Vector3D operator -(Vector3D a, Vector3D b) + { + return new Vector3D(a.x - b.x, a.y - b.y, a.z - b.z); + } + + // This reverses a vector + public static Vector3D operator -(Vector3D a) + { + return new Vector3D(-a.x, -a.y, -a.z); + } + + // This scales a vector + public static Vector3D operator *(float s, Vector3D a) + { + return new Vector3D(a.x * s, a.y * s, a.z * s); + } + + // This scales a vector + public static Vector3D operator *(Vector3D a, float s) + { + return new Vector3D(a.x * s, a.y * s, a.z * s); + } + + // This scales a vector + public static Vector3D operator *(Vector3D a, Vector3D b) + { + return new Vector3D(a.x * b.x, a.y * b.y, a.z * b.z); + } + + // This scales a vector + public static Vector3D operator /(float s, Vector3D a) + { + return new Vector3D(a.x / s, a.y / s, a.z / s); + } + + // This scales a vector + public static Vector3D operator /(Vector3D a, float s) + { + return new Vector3D(a.x / s, a.y / s, a.z / s); + } + + // This compares a vector + public static bool operator ==(Vector3D a, Vector3D b) + { + return (a.x == b.x) && (a.y == b.y) && (a.z == b.z); + } + + // This compares a vector + public static bool operator !=(Vector3D a, Vector3D b) + { + return (a.x != b.x) || (a.y != b.y) || (a.z != b.z); + } + + // This calculates the cross product + public static Vector3D CrossProduct(Vector3D a, Vector3D b) + { + Vector3D result = new Vector3D(); + + // Calculate and return the dot product + result.x = a.y * b.z - a.z * b.y; + result.y = a.z * b.x - a.x * b.z; + result.z = a.x * b.y - a.y * b.x; + return result; + } + + // This calculates the dot product + public static float DotProduct(Vector3D a, Vector3D b) + { + // Calculate and return the dot product + return a.x * b.x + a.y * b.y + a.z * b.z; + } + + // This reflects the vector v over mirror m + // Note that mirror m must be normalized! + public static Vector3D Reflect(Vector3D v, Vector3D m) + { + // Get the dot product of v and m + float dp = Vector3D.DotProduct(v, m); + + // Make the reflected vector + Vector3D mv = new Vector3D(); + mv.x = -v.x + 2f * m.x * dp; + mv.y = -v.y + 2f * m.y * dp; + mv.z = -v.z + 2f * m.z * dp; + + // Return the reflected vector + return mv; + } + + // This returns the reversed vector + public static Vector3D Reversed(Vector3D v) + { + // Return reversed vector + return new Vector3D(-v.x, -v.y, -v.z); + } + + // This returns a vector from an angle + public static Vector3D FromAngleXY(float angle) + { + // Return vector from angle + return new Vector3D((float)Math.Sin(angle), -(float)Math.Cos(angle), 0f); + } + + // This returns a vector from an angle with a given legnth + public static Vector3D FromAngleXY(float angle, float length) + { + // Return vector from angle + return FromAngleXY(angle) * length; + } + + // This returns a vector from an angle with a given legnth + public static Vector3D FromAngleXYZ(float anglexy, float anglez) + { + // Calculate x y and z + float ax = (float)Math.Sin(anglexy) * (float)Math.Cos(anglez); + float ay = -(float)Math.Cos(anglexy) * (float)Math.Cos(anglez); + float az = (float)Math.Sin(anglez); + + // Return vector + return new Vector3D(ax, ay, az); + } + + #endregion + + #region ================== Methods + + // This calculates the angle + public float GetAngleXY() + { + // Calculate and return the angle + return -(float)Math.Atan2(-y, x) + (float)Math.PI * 0.5f; + } + + // This calculates the angle + public float GetAngleZ() + { + Vector2D xy = new Vector2D(x, y); + + // Calculate and return the angle + return -(float)Math.Atan2(xy.GetLength(), z) + (float)Math.PI * 0.5f; + //return -(float)Math.Atan2(xy.GetLength(), z) - (float)Math.PI * 0.5f; + } + + // This calculates the length + public float GetLength() + { + // Calculate and return the length + return (float)Math.Sqrt(x * x + y * y + z * z); + } + + // This calculates the squared length + public float GetLengthSq() + { + // Calculate and return the length + return x * x + y * y + z * z; + } + + // This calculates the length + public float GetManhattanLength() + { + // Calculate and return the length + return Math.Abs(x) + Math.Abs(y) + Math.Abs(z); + } + + // This normalizes the vector + public Vector3D GetNormal() + { + float lensq = this.GetLengthSq(); + if(lensq > TINY_VALUE) + { + // Divide each element by the length + float mul = 1f / (float)Math.Sqrt(lensq); + return new Vector3D(x * mul, y * mul, z * mul); + } + else + { + // Cannot normalize + return new Vector3D(0f, 0f, 0f); + } + } + + // This scales the vector + public Vector3D GetScaled(float s) + { + // Scale the vector + return new Vector3D(x * s, y * s, z * s); + } + + // This changes the vector length + public Vector3D GetFixedLength(float l) + { + // Normalize, then scale + return this.GetNormal().GetScaled(l); + } + + // Output + public override string ToString() + { + return x + ", " + y + ", " + z; + } + + #endregion + } +} diff --git a/Source/IO/ClippedStream.cs b/Source/IO/ClippedStream.cs new file mode 100644 index 00000000..a223a662 --- /dev/null +++ b/Source/IO/ClippedStream.cs @@ -0,0 +1,238 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.IO; + +namespace CodeImp.DoomBuilder.IO +{ + internal class ClippedStream : Stream + { + #region ================== Variables + + // Base stream + private Stream basestream; + + // Data limit + private int offset; + private int length; + private long position; + + // Disposing + private bool isdisposed = false; + + #endregion + + #region ================== Properties + + public override long Length { get { return length; } } + public override long Position { get { return position; } set { this.Seek(value, SeekOrigin.Begin); } } + public override bool CanRead { get { return basestream.CanRead; } } + public override bool CanSeek { get { return basestream.CanSeek; } } + public override bool CanWrite { get { return basestream.CanWrite; } } + public bool IsDisposed { get { return isdisposed; } } + + #endregion + + #region ================== Constructor / Disposer + + // Constructor + public ClippedStream(Stream basestream, int offset, int length) + { + // Can only create from a stream that can seek + if(!basestream.CanSeek) throw new ArgumentException("ClippedStream can only be created with a Stream that allows Seeking."); + + // Initialize + this.basestream = basestream; + this.position = 0; + this.offset = offset; + this.length = length; + + // We have no destructor + GC.SuppressFinalize(this); + } + + // Diposer + public new void Dispose() + { + // Not already disposed? + if(!isdisposed) + { + // Clean up + basestream = null; + + // Dispose base + base.Dispose(); + + // Done + isdisposed = true; + } + } + + #endregion + + #region ================== Methods + + // This flushes the written changes + public override void Flush() + { + // Flush base stream + basestream.Flush(); + } + + // This reads from the stream + public override int Read(byte[] buffer, int offset, int count) + { + // Check if this exceeds limits + if((basestream.Position + count) > (this.offset + this.length)) + throw new ArgumentException("Attempted to read outside the range of the stream."); + + // Seek if needed + if(basestream.Position != (this.offset + this.position)) + basestream.Seek(this.offset + this.position, SeekOrigin.Begin); + + // Read from base stream + return basestream.Read(buffer, offset, count); + } + + // This writes to the stream + public override void Write(byte[] buffer, int offset, int count) + { + // Check if this exceeds limits + if((basestream.Position + count) > (this.offset + this.length)) + throw new ArgumentException("Attempted to write outside the range of the stream."); + + // Seek if needed + if(basestream.Position != (this.offset + this.position)) + basestream.Seek(this.offset + this.position, SeekOrigin.Begin); + + // Read from base stream + basestream.Write(buffer, offset, count); + } + + // Seek within clipped buffer + public override long Seek(long offset, SeekOrigin origin) + { + // Seeking from beginning + if(origin == SeekOrigin.Begin) + { + // Check if this exceeds limits + if((offset >= this.length) || (offset < 0)) + throw new ArgumentException("Attempted to seek outside the range of the stream."); + + // Seek + return basestream.Seek(this.offset + offset, SeekOrigin.Begin) - this.offset; + } + // Seeking from current position + else if(origin == SeekOrigin.Current) + { + // Check if this exceeds limits + if((this.position + offset >= this.length) || (this.position + offset < 0)) + throw new ArgumentException("Attempted to seek outside the range of the stream."); + + // Seek + return basestream.Seek(this.offset + this.position + offset, SeekOrigin.Begin) - this.offset; + } + // Seeking from end + else + { + // Check if this exceeds limits + if((offset > 0) || (this.length + offset < 0)) + throw new ArgumentException("Attempted to seek outside the range of the stream."); + + // Seek + return basestream.Seek(this.offset + this.length + offset, SeekOrigin.Begin) - this.offset; + } + } + + // Change the length of the steam + public override void SetLength(long value) + { + // Not supported + throw new NotSupportedException("This operation is not supported."); + } + + // Asynchronous read from stream + public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state) + { + // Check if this exceeds limits + if((basestream.Position + count) > (this.offset + this.length)) + throw new ArgumentException("Attempted to read outside the range of the stream."); + + // Seek if needed + if(basestream.Position != (this.offset + this.position)) + basestream.Seek(this.offset + this.position, SeekOrigin.Begin); + + // Read + return base.BeginRead(buffer, offset, count, callback, state); + } + + // Asynchronous write to stream + public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) + { + // Check if this exceeds limits + if((basestream.Position + count) > (this.offset + this.length)) + throw new ArgumentException("Attempted to write outside the range of the stream."); + + // Seek if needed + if(basestream.Position != (this.offset + this.position)) + basestream.Seek(this.offset + this.position, SeekOrigin.Begin); + + // Write + return base.BeginWrite(buffer, offset, count, callback, state); + } + + // This closes the stream + public override void Close() + { + basestream.Close(); + base.Close(); + this.Dispose(); + } + + // This reads a single byte from the stream + public override int ReadByte() + { + // Check if this exceeds limits + if((basestream.Position + 1) > (this.offset + this.length)) + throw new ArgumentException("Attempted to read outside the range of the stream."); + + // Seek if needed + if(basestream.Position != (this.offset + this.position)) + basestream.Seek(this.offset + this.position, SeekOrigin.Begin); + + // Read from base stream + return basestream.ReadByte(); + } + + // This writes a single byte to the stream + public override void WriteByte(byte value) + { + // Check if this exceeds limits + if((basestream.Position + 1) > (this.offset + this.length)) + throw new ArgumentException("Attempted to write outside the range of the stream."); + + // Seek if needed + if(basestream.Position != (this.offset + this.position)) + basestream.Seek(this.offset + this.position, SeekOrigin.Begin); + + // Read from base stream + basestream.WriteByte(value); + } + + #endregion + } +} diff --git a/Source/IO/Configuration.cs b/Source/IO/Configuration.cs new file mode 100644 index 00000000..ec609571 --- /dev/null +++ b/Source/IO/Configuration.cs @@ -0,0 +1,1277 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#region = CFG file structure syntax = +/* +' ==================================================================================== +' CONFIGURATION FILE STRUCTURE SYNTAX +' ==================================================================================== +' +' Whitepace is always allowed. This includes spaces, tabs +' linefeeds (10) and carriage returns (13) +' +' Keys may not have spaces or assignment operator = in them. +' +' Comments start with // (unless used within strings) +' and count as comment for the rest of the line. Or use /* and */ /* +' to mark the beginning and end of a comment. +' +' Simple setting: +' +' key = value; +' +' Example: speed = 345; +' cars = 8; +' +' Strings must be in quotes. +' +' Example: nickname = "Gherkin"; +' altnick = "Gherk inn"; +' +' String Escape Sequences: +' \n New line (10) +' \r Carriage return (13) +' \t Tab (9) +' \" Double-quotation mark +' \\ Backslash +' \000 Any ASCII character (MUST be 3 digits! So for 13 you use \013) +' +' Decimals ALWAYS use a dot, NEVER comma! +' +' Example: pressure = 15.29; +' acceleration = 1.0023; +' +' true, false and null are valid keywords. +' null values can be left out. +' +' In this example, both items are null. +' Example: myitem = null; +' myotheritem; +' +' Structures must use brackets. +' +' Structure Example: +' +' key +' { +' key = value; +' key = value; +' +' key +' { +' key = value; +' key = value; +' key = value; +' } +' +' key = value; +' key = value; +' key = value; +' key = value; +' key = value; +' } +' +' As you can see, structures inside structures are allowed +' and you may go as deep as you want. Note that only the root structures +' can be readed from config using ReadSetting. ReadSetting will return a +' Dictionary object containing everything in that root structure. +' +' Key names must be unique within their scope. +' +' This is NOT allowed, it may not have 'father' more +' than once in the same scope: +' +' mother = 45; +' father = 52; +' +' father +' { +' length = 1.87; +' } +' +' This however is allowed, because father +' now exists in a different scope: +' +' mother = 45; +' father = 52; +' +' parents +' { +' father = 52; +' } +' +' This too is allowed, both 'age' are in a different scope: +' +' mother +' { +' age = 45; +' } +' +' father +' { +' age = 52; +' } +*/ +#endregion + + +using System; +using System.IO; +using System.Text; +using System.Globalization; +using System.Collections; +using System.Collections.Specialized; + +namespace CodeImp.DoomBuilder.IO +{ + internal sealed class Configuration + { + #region ================== Constants + + // Path seperator + public const string DEFAULT_SEPERATOR = "/"; + + // Parse mode constants + private const int PM_NOTHING = 0; + private const int PM_ASSIGNMENT = 1; + private const int PM_NUMBER = 2; + private const int PM_STRING = 3; + private const int PM_KEYWORD = 4; + + // Error strings + private const string ERROR_KEYMISSING = "Missing key name in assignment or scope."; + private const string ERROR_KEYSPACES = "Spaces not allowed in key names."; + private const string ERROR_ASSIGNINVALID = "Invalid assignment. Missing a previous terminator symbol?"; + private const string ERROR_VALUEINVALID = "Invalid value in assignment. Missing a previous terminator symbol?"; + private const string ERROR_VALUETOOBIG = "Value too big."; + private const string ERROR_KEYNOTUNQIUE = "Key is not unique within scope."; + private const string ERROR_KEYWORDUNKNOWN = "Unknown keyword in assignment. Missing a previous terminator symbol?"; + + #endregion + + #region ================== Variables + + // Error result + private int cpErrorResult = 0; + private string cpErrorDescription = ""; + private int cpErrorLine = 0; + + // Configuration root + private IDictionary root = null; + + #endregion + + #region ================== Properties + + // Properties + public int ErrorResult { get { return cpErrorResult; } } + public string ErrorDescription { get { return cpErrorDescription; } } + public int ErrorLine { get { return cpErrorLine; } } + public IDictionary Root { get { return root; } set { root = value; } } + public bool Sorted { get { return (root is ListDictionary); } } + + #endregion + + #region ================== Constructor / Destructor + + // Constructor + public Configuration() + { + // Standard new configuration + NewConfiguration(); + } + + // Constructor + public Configuration(bool sorted) + { + // Standard new configuration + NewConfiguration(sorted); + } + + // Constructor to load a file immediately + public Configuration(string filename) + { + // Load configuration from file + LoadConfiguration(filename); + } + + // Constructor to load a file immediately + public Configuration(string filename, bool sorted) + { + // Load configuration from file + LoadConfiguration(filename, sorted); + } + + #endregion + + #region ================== Private Methods + + // This is called by all the ReadSetting overloads to perform the read + private object ReadAnySetting(string setting, object defaultsetting, string pathseperator) + { + IDictionary cs = null; + + // Split the path in an array + string[] keys = setting.Split(pathseperator.ToCharArray()); + + // Get the root item + object item = root; + + // Go for each item + for(int i = 0; i < keys.Length; i++) + { + // Check if the current item is of ConfigStruct type + if(item is IDictionary) + { + // Check if the key is valid + if(ValidateKey(null, keys[i].Trim(), -1) == true) + { + // Cast to ConfigStruct + cs = (IDictionary)item; + + // Check if the requested item exists + if(cs.Contains(keys[i]) == true) + { + // Set the item to the next item + item = cs[keys[i]]; + } + else + { + // Key not found + // return default setting + return defaultsetting; + } + } + else + { + // Invalid key in path + // return default setting + return defaultsetting; + } + } + else + { + // Unable to go any further + // return default setting + return defaultsetting; + } + } + + // Return the item + return item; + } + + // This helps operator + to combine configurations inherited + private static IDictionary Combined(IDictionary d1, IDictionary d2, bool sorted) + { + // Create new dictionary + IDictionary result; + if(sorted) result = new ListDictionary(); else result = new Hashtable(); + + // Copy all items from d1 to result + IDictionaryEnumerator d1e = d1.GetEnumerator(); + while(d1e.MoveNext()) result.Add(d1e.Key, d1e.Value); + + // Go for all items in d2 + IDictionaryEnumerator d2e = d2.GetEnumerator(); + while(d2e.MoveNext()) + { + // Check if this is another Hashtable + if(d2e.Value is IDictionary) + { + // Check if already in result + if(result.Contains(d2e.Key)) + { + // Modify result + result[d2e.Key] = Combined((IDictionary)result[d2e.Key], (IDictionary)d2e.Value, sorted); + } + else + { + // Copy from d2 + if(sorted) + { + // Sorted combine + result.Add(d2e.Key, Combined(new ListDictionary(), (IDictionary)d2e.Value, sorted)); + } + else + { + // Unsorted combine + result.Add(d2e.Key, Combined(new Hashtable(), (IDictionary)d2e.Value, sorted)); + } + } + } + else + { + // Check if also in d1 + if(d1.Contains(d2e.Key)) + { + // Modify result + result[d2e.Key] = d2e.Value; + } + else + { + // Copy + result.Add(d2e.Key, d2e.Value); + } + } + } + + // Return result + return result; + } + + + // This returns a string added with escape characters + private string EscapedString(string str) + { + // Replace the \ with \\ first! + str = str.Replace("\\", "\\\\"); + str = str.Replace("\n", "\\n"); + str = str.Replace("\r", "\\r"); + str = str.Replace("\t", "\\t"); + str = str.Replace("\"", "\\\""); + + // Return result + return str; + } + + + // This raises an error + private void RaiseError(int line, string description) + { + // Raise error + cpErrorResult = 1; + cpErrorDescription = description; + cpErrorLine = line; + } + + + // This validates a given key and sets + // error properties if key is invalid and errorline > -1 + private bool ValidateKey(IDictionary container, string key, int errorline) + { + bool validateresult; + + // Check if key is an empty string + if(key == "") + { + // ERROR: Missing key name in statement + if(errorline > -1) RaiseError(errorline, ERROR_KEYMISSING); + validateresult = false; + } + else + { + // Check if there are spaces in the key + if(key.IndexOfAny(" ".ToCharArray()) > -1) + { + // ERROR: Spaces not allowed in key names + if(errorline > -1) RaiseError(errorline, ERROR_KEYSPACES); + validateresult = false; + } + else + { + // Check if we can test existance + if(container != null) + { + // Test if the key exists in this container + if(container.Contains(key) == true) + { + // ERROR: Key is not unique within struct + if(errorline > -1) RaiseError(errorline, ERROR_KEYNOTUNQIUE); + validateresult = false; + } + else + { + // Key OK + validateresult = true; + } + } + else + { + // Key OK + validateresult = true; + } + } + } + + // Return result + return validateresult; + } + + + // This validates a given keyword and sets + // error properties if keyword is invalid and errorline > -1 + private bool ValidateKeyword(string keyword, int errorline) + { + bool validateresult; + + // Check if key is an empty string + if(keyword == "") + { + // ERROR: Missing key name in statement + if(errorline > -1) RaiseError(errorline, ERROR_ASSIGNINVALID); + validateresult = false; + } + else + { + // Check if there are spaces in the key + if(keyword.IndexOfAny(" ".ToCharArray()) > -1) + { + // ERROR: Spaces not allowed in key names + if(errorline > -1) RaiseError(errorline, ERROR_ASSIGNINVALID); + validateresult = false; + } + else + { + // Key OK + validateresult = true; + } + } + + // Return result + return validateresult; + } + + + // This parses a structure in the given data starting + // from the given pos and line and updates pos and line. + private IDictionary InputStructure(ref string data, ref int pos, ref int line, bool sorted) + { + char c = '\0'; // current data character + int pm = PM_NOTHING; // current parse mode + string key = "", val = ""; // current key and value beign built + bool escape = false; // escape sequence? + bool endofstruct = false; // true as soon as this level struct ends + IDictionary cs; + + // Create new struct to hold variables + if(sorted) cs = new ListDictionary(); else cs = new Hashtable(); + + // Go through all of the data until + // the end or until the struct closes + // or when an arror occurred + while ((pos < data.Length) && (cpErrorResult == 0) && (endofstruct == false)) + { + // Get current character + c = data[pos]; + + // ================ What parse mode are we at? + if(pm == PM_NOTHING) + { + // Now check what character this is + switch(c) + { + case '{': // Begin of new struct + + // Validate key + if(ValidateKey(cs, key.Trim(), line)) + { + // Next character + pos++; + + // Parse this struct and add it + cs.Add(key.Trim(), InputStructure(ref data, ref pos, ref line, sorted)); + + // Check the last character + pos--; + + // Reset the key + key = ""; + } + + // Leave switch + break; + + case '}': // End of this struct + + // Stop parsing in this struct + endofstruct = true; + + // Leave the loop + break; + + case '=': // Assignment + + // Validate key + if(ValidateKey(cs, key.Trim(), line)) + { + // Now parsing assignment + pm = PM_ASSIGNMENT; + } + + // Leave switch + break; + + case ';': // Terminator + + // Validate key + if(ValidateKey(cs, key.Trim(), line)) + { + // Add the key with null as value + cs.Add(key.Trim(), null); + + // Reset key and value + key = ""; + val = ""; + } + + // Leave switch + break; + + case '\n': // New line + + // Count the line + line++; + + // Add this to the key as a space. + // Spaces are not allowed, but it will be trimmed + // when its the first or last character. + key += " "; + + // Leave switch + break; + + case '\\': // Possible comment + case '/': + + // Check for the line comment // + if(data.Substring(pos, 2) == "//") + { + // Find the next line + int np = data.IndexOf("\n", pos); + + // Next line found? + if(np > -1) + { + // Count the line + line++; + + // Skip everything on this line + pos = np; + } + else + { + // No end of line + // Skip everything else + pos = data.Length; + } + } + // Check for the block comment /* */ + else if(data.Substring(pos, 2) == "/*") + { + // Find the next closing block comment + int np = data.IndexOf("*/", pos); + + // Closing block comment found? + if(np > -1) + { + // Count the lines in the block comment + string blockdata = data.Substring(pos, np - pos + 2); + line += (blockdata.Split("\n".ToCharArray()).Length - 1); + + // Skip everything in this block + pos = np + 1; + } + else + { + // No end of line + // Skip everything else + pos = data.Length; + } + } + + // Leave switch + break; + + default: // Everything else + + // Add character to key + key += c.ToString(CultureInfo.InvariantCulture); + + // Leave switch + break; + } + } + // ================ Parsing an assignment + else if(pm == PM_ASSIGNMENT) + { + // Check for string opening + if(c == '\"') + { + // Now parsing string + pm = PM_STRING; + } + // Check for numeric character + else if("0123456789-.&".IndexOf(c.ToString(CultureInfo.InvariantCulture)) > -1) + { + // Now parsing number + pm = PM_NUMBER; + + // Go one byte back, because this + // byte is part of the number! + pos--; + } + // Check for new line + else if(c == '\n') + { + // Count the new line + line++; + } + // Check if assignment ends + else if(c == ';') + { + // End of assignment + pm = PM_NOTHING; + + // Remove this if it causes problems + key = ""; + val = ""; + } + // Otherwise (if not a space) it will be a keyword + else if(c != ' ') + { + // Now parsing a keyword + pm = PM_KEYWORD; + + // Go one byte back, because this + // byte is part of the keyword! + pos--; + } + } + // ================ Parsing a number + else if(pm == PM_NUMBER) + { + // Check if number ends here + if(c == ';') + { + // Floating point? + if(val.IndexOf("f") > -1) + { + float fval = 0; + + // Convert to float (remove the f first) + try { fval = System.Convert.ToSingle(val.Trim().Replace("f", ""), CultureInfo.InvariantCulture); } + catch(System.FormatException) + { + // ERROR: Invalid value in assignment + RaiseError(line, ERROR_VALUEINVALID); + } + + // Add it to struct + cs.Add(key.Trim(), fval); + } + else + { + int ival = 0; + long lval = 0; + + // Convert to int + try + { + // Convert to value + ival = System.Convert.ToInt32(val.Trim(), CultureInfo.InvariantCulture); + + // Add it to struct + cs.Add(key.Trim(), ival); + } + catch(System.OverflowException) + { + // Too large for Int32, try Int64 + try + { + // Convert to value + lval = System.Convert.ToInt64(val.Trim(), CultureInfo.InvariantCulture); + + // Add it to struct + cs.Add(key.Trim(), lval); + } + catch(System.OverflowException) + { + // Too large for Int64, return error + RaiseError(line, ERROR_VALUETOOBIG); + } + catch(System.FormatException) + { + // ERROR: Invalid value in assignment + RaiseError(line, ERROR_VALUEINVALID); + } + } + catch(System.FormatException) + { + // ERROR: Invalid value in assignment + RaiseError(line, ERROR_VALUEINVALID); + } + } + + // Reset key and value + key = ""; + val = ""; + + // End of assignment + pm = PM_NOTHING; + } + // Check for new line + else if(c == '\n') + { + // Count the new line + line++; + } + // Everything else is part of the value + else + { + val += c.ToString(CultureInfo.InvariantCulture); + } + } + // ================ Parsing a string + else if(pm == PM_STRING) + { + // Check if in an escape sequence + if(escape) + { + // What character? + switch(c) + { + case '\\': val += "\\"; break; + case 'n': val += "\n"; break; + case '\"': val += "\""; break; + case 'r': val += "\r"; break; + case 't': val += "\t"; break; + default: + + // Is it a number? + if("0123456789".IndexOf(c.ToString(CultureInfo.InvariantCulture)) > -1) + { + int vv = 0; + char vc = '0'; + + // Convert the next 3 characters to a number + string v = data.Substring(pos, 3); + try { vv = System.Convert.ToInt32(v.Trim(), CultureInfo.InvariantCulture); } + catch(System.FormatException) + { + // ERROR: Invalid value in assignment + RaiseError(line, ERROR_VALUEINVALID); + } + + // Convert the number to a char + try { vc = System.Convert.ToChar(vv, CultureInfo.InvariantCulture); } + catch(System.FormatException) + { + // ERROR: Invalid value in assignment + RaiseError(line, ERROR_VALUEINVALID); + } + + // Add the char + val += vc.ToString(CultureInfo.InvariantCulture); + } + else + { + // Add the character as it is + val += c.ToString(CultureInfo.InvariantCulture); + } + + // Leave switch + break; + } + + // End of escape sequence + escape = false; + } + else + { + // Check for sequence start + if(c == '\\') + { + // Next character is of escape sequence + escape = true; + } + // Check if string ends + else if(c == '\"') + { + // Add string to struct + cs.Add(key.Trim(), val); + + // End of assignment + pm = PM_ASSIGNMENT; + + // Reset key and value + key = ""; + val = ""; + } + // Check for new line + else if(c == '\n') + { + // Count the new line + line++; + } + // Everything else is just part of string + else + { + // Add to value + val += c.ToString(CultureInfo.InvariantCulture); + } + } + } + // ================ Parsing a keyword + else if(pm == PM_KEYWORD) + { + // Check if keyword ends + if(c == ';') + { + // Validate the keyword + if(ValidateKeyword(val.Trim(), line)) + { + // Add to the struct depending on the keyword + switch(val.Trim().ToLower()) + { + case "true": + + // Add boolean true + cs.Add(key.Trim(), true); + break; + + case "false": + + // Add boolean false + cs.Add(key.Trim(), false); + break; + + case "null": + + // Add null + cs.Add(key.Trim(), null); + break; + + default: + + // Unknown keyword + RaiseError(line, ERROR_KEYWORDUNKNOWN); + break; + } + + // End of assignment + pm = PM_NOTHING; + + // Reset key and value + key = ""; + val = ""; + } + } + // Check for new line + else if(c == '\n') + { + // Count the new line + line++; + } + // Everything else is just part of keyword + else + { + // Add to value + val += c.ToString(CultureInfo.InvariantCulture); + } + } + + // Next character + pos++; + } + + // Return the parsed result + return cs; + } + + + // This will create a data structure from the given object + private string OutputStructure(IDictionary cs, int level, string newline, bool whitespace) + { + string leveltabs = ""; + string spacing = ""; + StringBuilder db = new StringBuilder(""); + + // Check if this ConfigStruct is not empty + if(cs.Count > 0) + { + // Create whitespace + if(whitespace) + { + for(int i = 0; i < level; i++) leveltabs += "\t"; + spacing = " "; + } + + // Get enumerator + IDictionaryEnumerator de = cs.GetEnumerator(); + + // Go for each item + for(int i = 0; i < cs.Count; i++) + { + // Go to next item + de.MoveNext(); + + // Check if the value is null + if(de.Value == null) + { + // Output the keyword "null" + //db.Append(leveltabs); db.Append(de.Key.ToString()); db.Append(spacing); + //db.Append("="); db.Append(spacing); db.Append("null;"); db.Append(newline); + + // Output key only + db.Append(leveltabs); db.Append(de.Key.ToString()); db.Append(";"); db.Append(newline); + } + // Check if the value if of ConfigStruct type + else if(de.Value is IDictionary) + { + // Output recursive structure + if(whitespace) { db.Append(leveltabs); db.Append(newline); } + db.Append(leveltabs); db.Append(de.Key); db.Append(newline); + db.Append(leveltabs); db.Append("{"); db.Append(newline); + db.Append(OutputStructure((IDictionary)de.Value, level + 1, newline, whitespace)); + db.Append(leveltabs); db.Append("}"); db.Append(newline); + if(whitespace) { db.Append(leveltabs); db.Append(newline); } + } + // Check if the value is of boolean type + else if(de.Value is bool) + { + // Check value + if((bool)de.Value == true) + { + // Output the keyword "true" + db.Append(leveltabs); db.Append(de.Key.ToString()); db.Append(spacing); + db.Append("="); db.Append(spacing); db.Append("true;"); db.Append(newline); + } + else + { + // Output the keyword "false" + db.Append(leveltabs); db.Append(de.Key.ToString()); db.Append(spacing); + db.Append("="); db.Append(spacing); db.Append("false;"); db.Append(newline); + } + } + // Check if value is of float type + else if(de.Value is float) + { + // Output the value with a postfixed f + db.Append(leveltabs); db.Append(de.Key); db.Append(spacing); db.Append("="); + db.Append(spacing); db.Append(de.Value); db.Append("f;"); db.Append(newline); + } + // Check if value is of other numeric type + else if(de.Value.GetType().IsPrimitive) + { + // Output the value unquoted + db.Append(leveltabs); db.Append(de.Key); db.Append(spacing); db.Append("="); + db.Append(spacing); db.Append(de.Value); db.Append(";"); db.Append(newline); + } + else + { + // Output the value with quotes and escape characters + db.Append(leveltabs); db.Append(de.Key); db.Append(spacing); db.Append("="); + db.Append(spacing); db.Append("\""); db.Append(EscapedString(de.Value.ToString())); db.Append("\";"); db.Append(newline); + } + } + } + + // Return the structure + return db.ToString(); + } + + #endregion + + #region ================== Public Methods + + // Operator + combines two collections and overrides any from cfg2 over cfg1 + public static Configuration operator+(Configuration cfg1, Configuration cfg2) + { + // Create new configuration + Configuration result = new Configuration(cfg1.Sorted | cfg2.Sorted); + + // Combine both roots + result.root = Combined(cfg1.root, cfg2.root, cfg1.Sorted | cfg2.Sorted); + + // Return result + return result; + } + + + // This clears the last error + public void ClearError() + { + // Clear error + cpErrorResult = 0; + cpErrorDescription = ""; + cpErrorLine = 0; + } + + + // This creates a new configuration + public void NewConfiguration() { NewConfiguration(false); } + public void NewConfiguration(bool sorted) + { + // Create new configuration + if(sorted) root = new ListDictionary(); else root = new Hashtable(); + } + + + // This can give a value of a key specified in a path form + // also, this does not error when the setting does not exist, + // but instead returns the given default value. + public string ReadSetting(string setting, string defaultsetting) { object r = ReadAnySetting(setting, defaultsetting, DEFAULT_SEPERATOR); if(r != null) return r.ToString(); else return null; } + public string ReadSetting(string setting, string defaultsetting, string pathseperator) { object r = ReadAnySetting(setting, defaultsetting, pathseperator); if(r != null) return r.ToString(); else return null; } + public int ReadSetting(string setting, int defaultsetting) { return Convert.ToInt32(ReadAnySetting(setting, defaultsetting, DEFAULT_SEPERATOR), CultureInfo.InvariantCulture); } + public int ReadSetting(string setting, int defaultsetting, string pathseperator) { return Convert.ToInt32(ReadAnySetting(setting, defaultsetting, pathseperator), CultureInfo.InvariantCulture); } + public float ReadSetting(string setting, float defaultsetting) { return Convert.ToSingle(ReadAnySetting(setting, defaultsetting, DEFAULT_SEPERATOR), CultureInfo.InvariantCulture); } + public float ReadSetting(string setting, float defaultsetting, string pathseperator) { return Convert.ToSingle(ReadAnySetting(setting, defaultsetting, pathseperator), CultureInfo.InvariantCulture); } + public short ReadSetting(string setting, short defaultsetting) { return Convert.ToInt16(ReadAnySetting(setting, defaultsetting, DEFAULT_SEPERATOR), CultureInfo.InvariantCulture); } + public short ReadSetting(string setting, short defaultsetting, string pathseperator) { return Convert.ToInt16(ReadAnySetting(setting, defaultsetting, pathseperator), CultureInfo.InvariantCulture); } + public long ReadSetting(string setting, long defaultsetting) { return Convert.ToInt64(ReadAnySetting(setting, defaultsetting, DEFAULT_SEPERATOR), CultureInfo.InvariantCulture); } + public long ReadSetting(string setting, long defaultsetting, string pathseperator) { return Convert.ToInt64(ReadAnySetting(setting, defaultsetting, pathseperator), CultureInfo.InvariantCulture); } + public bool ReadSetting(string setting, bool defaultsetting) { return Convert.ToBoolean(ReadAnySetting(setting, defaultsetting, DEFAULT_SEPERATOR), CultureInfo.InvariantCulture); } + public bool ReadSetting(string setting, bool defaultsetting, string pathseperator) { return Convert.ToBoolean(ReadAnySetting(setting, defaultsetting, pathseperator), CultureInfo.InvariantCulture); } + public byte ReadSetting(string setting, byte defaultsetting) { return Convert.ToByte(ReadAnySetting(setting, defaultsetting, DEFAULT_SEPERATOR), CultureInfo.InvariantCulture); } + public byte ReadSetting(string setting, byte defaultsetting, string pathseperator) { return Convert.ToByte(ReadAnySetting(setting, defaultsetting, pathseperator), CultureInfo.InvariantCulture); } + public IDictionary ReadSetting(string setting, IDictionary defaultsetting) { return (IDictionary)ReadAnySetting(setting, defaultsetting, DEFAULT_SEPERATOR); } + public IDictionary ReadSetting(string setting, IDictionary defaultsetting, string pathseperator) { return (IDictionary)ReadAnySetting(setting, defaultsetting, pathseperator); } + + + // This writes a given setting to the configuration. + // Wont change existing structs, but will add them as needed. + // Returns true when written, false when failed. + public bool WriteSetting(string setting, object settingvalue) { return WriteSetting(setting, settingvalue, DEFAULT_SEPERATOR); } + public bool WriteSetting(string setting, object settingvalue, string pathseperator) + { + IDictionary cs = null; + + // Split the path in an array + string[] keys = setting.Split(pathseperator.ToCharArray()); + string finalkey = keys[keys.Length - 1]; + + // Get the root item + object item = root; + + // Go for each path item + for(int i = 0; i < (keys.Length - 1); i++) + { + // Check if the key is valid + if(ValidateKey(null, keys[i].Trim(), -1) == true) + { + // Cast to ConfigStruct + cs = (IDictionary)item; + + // Check if the requested item exists + if(cs.Contains(keys[i]) == true) + { + // Check if the requested item is a ConfigStruct + if(cs[keys[i]] is IDictionary) + { + // Set the item to the next item + item = cs[keys[i]]; + } + else + { + // Cant proceed with path + return false; + } + } + else + { + // Key not found + // Create it now + IDictionary ncs; + if(root is ListDictionary) ncs = new ListDictionary(); else ncs = new Hashtable(); + cs.Add(keys[i], ncs); + + // Set the item to the next item + item = cs[keys[i]]; + } + } + else + { + // Invalid key in path + return false; + } + } + + // Cast to ConfigStruct + cs = (IDictionary)item; + + // Check if the key already exists + if(cs.Contains(finalkey) == true) + { + // Update the value + cs[finalkey] = settingvalue; + } + else + { + // Create the key/value pair + cs.Add(finalkey, settingvalue); + } + + // Return success + return true; + } + + + // This removes a given setting from the configuration. + public bool DeleteSetting(string setting) { return DeleteSetting(setting, DEFAULT_SEPERATOR); } + public bool DeleteSetting(string setting, string pathseperator) + { + IDictionary cs = null; + + // Split the path in an array + string[] keys = setting.Split(pathseperator.ToCharArray()); + string finalkey = keys[keys.Length - 1]; + + // Get the root item + object item = root; + + // Go for each path item + for(int i = 0; i < (keys.Length - 1); i++) + { + // Check if the key is valid + if(ValidateKey(null, keys[i].Trim(), -1) == true) + { + // Cast to ConfigStruct + cs = (IDictionary)item; + + // Check if the requested item exists + if(cs.Contains(keys[i]) == true) + { + // Check if the requested item is a ConfigStruct + if(cs[keys[i]] is IDictionary) + { + // Set the item to the next item + item = cs[keys[i]]; + } + else + { + // Cant proceed with path + return false; + } + } + else + { + // Key not found + // Create it now + IDictionary ncs; + if(root is ListDictionary) ncs = new ListDictionary(); else ncs = new Hashtable(); + cs.Add(keys[i], ncs); + + // Set the item to the next item + item = cs[keys[i]]; + } + } + else + { + // Invalid key in path + return false; + } + } + + // Cast to ConfigStruct + cs = (IDictionary)item; + + // Arrived at our destination + // Delete the key if the key exists + if(cs.Contains(finalkey) == true) + { + // Key exists, delete it + cs.Remove(finalkey); + + // Return success + return true; + } + else + { + // Key not found, return fail + return false; + } + } + + + // This will save the current configuration to the specified file + public bool SaveConfiguration(string filename) { return SaveConfiguration(filename, "\r\n", true); } + public bool SaveConfiguration(string filename, string newline) { return SaveConfiguration(filename, newline, true); } + public bool SaveConfiguration(string filename, string newline, bool whitespace) + { + // Kill the file if it exists + if(File.Exists(filename) == true) File.Delete(filename); + + // Open file stream for writing + FileStream fstream = File.OpenWrite(filename); + + // Create output structure and write to file + string data = OutputConfiguration(newline, whitespace); + byte[] baData= Encoding.ASCII.GetBytes(data); + fstream.Write(baData, 0, baData.Length); + fstream.Close(); + + // Return true when done, false when errors occurred + if(cpErrorResult == 0) return true; else return false; + } + + + // This will output the current configuration as a string + public string OutputConfiguration() { return OutputConfiguration("\r\n", true); } + public string OutputConfiguration(string newline) { return OutputConfiguration(newline, true); } + public string OutputConfiguration(string newline, bool whitespace) + { + // Simply return the configuration structure as string + return OutputStructure(root, 0, newline, whitespace); + } + + + // This will load a configuration from file + public bool LoadConfiguration(string filename) { return LoadConfiguration(filename, false); } + public bool LoadConfiguration(string filename, bool sorted) + { + // Check if the file is missing + if(File.Exists(filename) == false) + { + throw(new FileNotFoundException("File not found \"" + filename + "\"", filename)); + } + else + { + // Load the file contents + FileStream fstream = File.OpenRead(filename); + byte[] fbuffer = new byte[fstream.Length]; + fstream.Read(fbuffer, 0, fbuffer.Length); + fstream.Close(); + + // Convert byte array to string + string data = Encoding.ASCII.GetString(fbuffer); + + // Load the configuration from this data + return InputConfiguration(data, sorted); + } + } + + + // This will load a configuration from string + public bool InputConfiguration(string data) { return InputConfiguration(data, false); } + public bool InputConfiguration(string data, bool sorted) + { + // Remove returns and tabs because the + // parser only uses newline for new lines. + data = data.Replace("\r", ""); + data = data.Replace("\t", ""); + + // Clear errors + ClearError(); + + // Parse the data to the root structure + int pos = 0; + int line = 1; + root = InputStructure(ref data, ref pos, ref line, sorted); + + // Return true when done, false when errors occurred + if(cpErrorResult == 0) return true; else return false; + } + + #endregion + } +} diff --git a/Source/IO/Lump.cs b/Source/IO/Lump.cs new file mode 100644 index 00000000..17dad2cf --- /dev/null +++ b/Source/IO/Lump.cs @@ -0,0 +1,122 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.IO; + +namespace CodeImp.DoomBuilder.IO +{ + internal class Lump : IDisposable + { + #region ================== Variables + + // Owner + private WAD owner; + + // Data stream + private ClippedStream stream; + + // Data info + private string name; + private byte[] fixedname; + private int offset; + private int length; + + // Disposing + private bool isdisposed = false; + + #endregion + + #region ================== Properties + + public WAD Owner { get { return owner; } } + public string Name { get { return name; } } + public byte[] FixedName { get { return fixedname; } } + public int Offset { get { return offset; } } + public int Length { get { return length; } } + public ClippedStream Stream { get { return stream; } } + public bool IsDisposed { get { return isdisposed; } } + + #endregion + + #region ================== Constructor / Disposer + + // Constructor + public Lump(Stream data, WAD owner, byte[] fixedname, int offset, int length) + { + // Initialize + this.stream = new ClippedStream(data, offset, length); + this.owner = owner; + this.fixedname = fixedname; + this.offset = offset; + this.length = length; + + // Make uppercase name + this.name = MakeNormalName(fixedname, owner.Encoding).ToUpperInvariant(); + this.fixedname = MakeFixedName(name, owner.Encoding); + + // We have no destructor + GC.SuppressFinalize(this); + } + + // Diposer + public void Dispose() + { + // Not already disposed? + if(!isdisposed) + { + // Clean up + stream.Dispose(); + owner = null; + + // Done + isdisposed = true; + } + } + + #endregion + + #region ================== Methods + + // This makes the normal name from fixed name + private static string MakeNormalName(byte[] fixedname, Encoding encoding) + { + // Return the name as a string + return encoding.GetString(fixedname); + } + + // This makes the fixed name from normal name + public static byte[] MakeFixedName(string name, Encoding encoding) + { + // Make 8 bytes, all zeros + byte[] fixedname = new byte[8]; + + // Write the name in bytes + encoding.GetBytes(name, 0, name.Length, fixedname, 0); + + // Return result + return fixedname; + } + + // String representation + public override string ToString() + { + return name; + } + + #endregion + } +} diff --git a/Source/IO/WAD.cs b/Source/IO/WAD.cs new file mode 100644 index 00000000..154613b2 --- /dev/null +++ b/Source/IO/WAD.cs @@ -0,0 +1,313 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.IO; + +namespace CodeImp.DoomBuilder.IO +{ + internal class WAD : IDisposable + { + #region ================== Constants + + // WAD types + public const string TYPE_IWAD = "IWAD"; + public const string TYPE_PWAD = "PWAD"; + + #endregion + + #region ================== Variables + + // File objects + private FileStream file; + private BinaryReader reader; + private BinaryWriter writer; + + // Encoder + private readonly Encoding encoding = Encoding.ASCII; + + // Header + private string type; + private int numlumps; + private int lumpsoffset; + + // Lumps + private List lumps; + + // Status + private bool isreadonly = false; + private bool isdisposed = false; + + #endregion + + #region ================== Properties + + public string Type { get { return type; } } + public Encoding Encoding { get { return encoding; } } + public bool IsReadOnly { get { return isreadonly; } } + public bool IsDisposed { get { return isdisposed; } } + public List Lumps { get { return lumps; } } + + #endregion + + #region ================== Constructor / Disposer + + // Constructor to open or create a WAD file + public WAD(string pathfilename) + { + // Initialize + this.isreadonly = false; + this.Open(pathfilename); + } + + // Constructor to open or create a WAD file + public WAD(string pathfilename, bool openreadonly) + { + // Initialize + this.isreadonly = openreadonly; + this.Open(pathfilename); + } + + // Destructor + ~WAD() + { + // Make sure everything is disposed + this.Dispose(); + } + + // Diposer + public void Dispose() + { + // Not already disposed? + if(!isdisposed) + { + // Clean up + foreach(Lump l in lumps) l.Dispose(); + if(writer != null) writer.Close(); + if(reader != null) reader.Close(); + if(file != null) file.Dispose(); + + // Done + isdisposed = true; + } + } + + #endregion + + #region ================== IO + + // Open a WAD file + private void Open(string pathfilename) + { + FileAccess access; + FileShare share; + + // Determine if opening for read only + if(isreadonly) + { + // Read only + access = FileAccess.Read; + share = FileShare.ReadWrite; + } + else + { + // Private access + access = FileAccess.ReadWrite; + share = FileShare.Read; + } + + // Open the file stream + file = File.Open(pathfilename, FileMode.OpenOrCreate, access, share); + + // Create file handling tools + reader = new BinaryReader(file, encoding); + if(!isreadonly) writer = new BinaryWriter(file, encoding); + + // Read information from file + ReadHeaders(); + } + + // This reads the WAD header and lumps table + private void ReadHeaders() + { + int offset, length; + byte[] fixedname; + + // Make sure the write is finished writing + if(!isreadonly) writer.Flush(); + + // Seek to beginning + file.Seek(0, SeekOrigin.Begin); + + // Read WAD type + type = encoding.GetString(reader.ReadBytes(4)); + + // Number of lumps + numlumps = reader.ReadInt32(); + + // Lumps table offset + lumpsoffset = reader.ReadInt32(); + + // Seek to the lumps table + file.Seek(lumpsoffset, SeekOrigin.Begin); + + // Dispose old lumps and create new list + if(lumps != null) foreach(Lump l in lumps) l.Dispose(); + lumps = new List(numlumps); + + // Go for all lumps + for(int i = 0; i < numlumps; i++) + { + // Read lump information + offset = reader.ReadInt32(); + length = reader.ReadInt32(); + fixedname = reader.ReadBytes(8); + + // Create the lump + lumps.Add(new Lump(file, this, fixedname, offset, length)); + } + } + + // This reads the WAD header and lumps table + private void WriteHeaders() + { + // Seek to beginning + file.Seek(0, SeekOrigin.Begin); + + // Write WAD type + writer.Write(encoding.GetBytes(type)); + + // Number of lumps + writer.Write(numlumps); + + // Lumps table offset + writer.Write(lumpsoffset); + + // Seek to the lumps table + file.Seek(lumpsoffset, SeekOrigin.Begin); + + // Go for all lumps + for(int i = 0; i < lumps.Count; i++) + { + // Write lump information + writer.Write(lumps[i].Offset); + writer.Write(lumps[i].Length); + writer.Write(lumps[i].FixedName); + } + } + + // This flushes writing changes + public void Flush() + { + // Only possible when not read-only + if(!isreadonly) + { + // Flush writing changes + writer.Flush(); + file.Flush(); + } + } + + #endregion + + #region ================== Lumps + + // This creates a new lump in the WAD file + public Lump Insert(string name, int position, int datalength) + { + Lump lump; + + // We will be adding a lump + numlumps++; + + // Extend the file + file.SetLength(file.Length + datalength + 16); + + // Create the lump + lump = new Lump(file, this, Lump.MakeFixedName(name, encoding), lumpsoffset, datalength); + lumps.Insert(position, lump); + + // Advance lumps table offset + lumpsoffset += datalength; + + // Write the new headers + WriteHeaders(); + + // Return the new lump + return lump; + } + + // This removes a lump from the WAD file + public void Remove(Lump lump) + { + // Remove from list + lumps.Remove(lump); + lump.Dispose(); + + // Write the new headers + WriteHeaders(); + } + + // This finds a lump by name, returns null when not found + public Lump FindLump(string name) + { + // Do search + return FindLump(name, 0, lumps.Count - 1); + } + + // This finds a lump by name, returns null when not found + public Lump FindLump(string name, int start) + { + // Do search + return FindLump(name, start, lumps.Count - 1); + } + + // This finds a lump by name, returns null when not found + public Lump FindLump(string name, int start, int end) + { + byte[] fixedname; + + // Fix end when it exceeds length + if(end > (lumps.Count - 1)) end = lumps.Count - 1; + + // Make sure name is in uppercase + name = name.ToUpperInvariant(); + + // Make fixed name + fixedname = Lump.MakeFixedName(name, encoding); + + // Loop through the lumps + for(int i = start; i <= end; i++) + { + // Check if first byte matches + if(lumps[i].FixedName[0] == fixedname[0]) + { + // Check if the lump name matches + if(lumps[i].Name.StartsWith(name, false, CultureInfo.InvariantCulture)) + { + // Found the lump! + return lumps[i]; + } + } + } + + // Nothing found + return null; + } + + #endregion + } +} diff --git a/Source/Interface/MainForm.Designer.cs b/Source/Interface/MainForm.Designer.cs new file mode 100644 index 00000000..52b38a63 --- /dev/null +++ b/Source/Interface/MainForm.Designer.cs @@ -0,0 +1,201 @@ +namespace CodeImp.DoomBuilder.Interface +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if(disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.menumain = new System.Windows.Forms.MenuStrip(); + this.menufile = new System.Windows.Forms.ToolStripMenuItem(); + this.itemnewmap = new System.Windows.Forms.ToolStripMenuItem(); + this.itemopenmap = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.itemsavemap = new System.Windows.Forms.ToolStripMenuItem(); + this.itemsavemapas = new System.Windows.Forms.ToolStripMenuItem(); + this.itemsavemapinto = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); + this.itemexit = new System.Windows.Forms.ToolStripMenuItem(); + this.toolbar = new System.Windows.Forms.ToolStrip(); + this.statusbar = new System.Windows.Forms.StatusStrip(); + this.panelinfo = new System.Windows.Forms.Panel(); + this.display = new System.Windows.Forms.PictureBox(); + this.menumain.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.display)).BeginInit(); + this.SuspendLayout(); + // + // menumain + // + this.menumain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.menufile}); + this.menumain.Location = new System.Drawing.Point(0, 0); + this.menumain.Name = "menumain"; + this.menumain.Size = new System.Drawing.Size(619, 24); + this.menumain.TabIndex = 0; + this.menumain.Text = "menuStrip1"; + // + // menufile + // + this.menufile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.itemnewmap, + this.itemopenmap, + this.toolStripMenuItem1, + this.itemsavemap, + this.itemsavemapas, + this.itemsavemapinto, + this.toolStripMenuItem2, + this.itemexit}); + this.menufile.Name = "menufile"; + this.menufile.Size = new System.Drawing.Size(35, 20); + this.menufile.Text = "File"; + // + // itemnewmap + // + this.itemnewmap.Name = "itemnewmap"; + this.itemnewmap.Size = new System.Drawing.Size(167, 22); + this.itemnewmap.Text = "New Map..."; + // + // itemopenmap + // + this.itemopenmap.Name = "itemopenmap"; + this.itemopenmap.Size = new System.Drawing.Size(167, 22); + this.itemopenmap.Text = "Open Map..."; + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(164, 6); + // + // itemsavemap + // + this.itemsavemap.Name = "itemsavemap"; + this.itemsavemap.Size = new System.Drawing.Size(167, 22); + this.itemsavemap.Text = "Save Map"; + // + // itemsavemapas + // + this.itemsavemapas.Name = "itemsavemapas"; + this.itemsavemapas.Size = new System.Drawing.Size(167, 22); + this.itemsavemapas.Text = "Save Map As..."; + // + // itemsavemapinto + // + this.itemsavemapinto.Name = "itemsavemapinto"; + this.itemsavemapinto.Size = new System.Drawing.Size(167, 22); + this.itemsavemapinto.Text = "Save Map Into..."; + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size(164, 6); + // + // itemexit + // + this.itemexit.Name = "itemexit"; + this.itemexit.Size = new System.Drawing.Size(167, 22); + this.itemexit.Text = "Exit"; + // + // toolbar + // + this.toolbar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.toolbar.Location = new System.Drawing.Point(0, 24); + this.toolbar.Name = "toolbar"; + this.toolbar.Size = new System.Drawing.Size(619, 25); + this.toolbar.TabIndex = 1; + this.toolbar.Text = "toolStrip1"; + // + // statusbar + // + this.statusbar.Location = new System.Drawing.Point(0, 471); + this.statusbar.Name = "statusbar"; + this.statusbar.Size = new System.Drawing.Size(619, 22); + this.statusbar.TabIndex = 2; + // + // panelinfo + // + this.panelinfo.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panelinfo.Location = new System.Drawing.Point(0, 370); + this.panelinfo.Name = "panelinfo"; + this.panelinfo.Size = new System.Drawing.Size(619, 101); + this.panelinfo.TabIndex = 4; + // + // display + // + this.display.BackColor = System.Drawing.SystemColors.AppWorkspace; + this.display.BackgroundImage = global::CodeImp.DoomBuilder.Properties.Resources.Splash2; + this.display.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.display.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.display.Dock = System.Windows.Forms.DockStyle.Fill; + this.display.ErrorImage = null; + this.display.InitialImage = null; + this.display.Location = new System.Drawing.Point(0, 49); + this.display.Name = "display"; + this.display.Size = new System.Drawing.Size(619, 321); + this.display.TabIndex = 5; + this.display.TabStop = false; + // + // MainForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(619, 493); + this.Controls.Add(this.display); + this.Controls.Add(this.panelinfo); + this.Controls.Add(this.statusbar); + this.Controls.Add(this.toolbar); + this.Controls.Add(this.menumain); + this.DoubleBuffered = true; + this.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.MainMenuStrip = this.menumain; + this.Name = "MainForm"; + this.Text = "Doom Builder"; + this.menumain.ResumeLayout(false); + this.menumain.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.display)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.MenuStrip menumain; + private System.Windows.Forms.ToolStrip toolbar; + private System.Windows.Forms.StatusStrip statusbar; + private System.Windows.Forms.Panel panelinfo; + private System.Windows.Forms.PictureBox display; + private System.Windows.Forms.ToolStripMenuItem menufile; + private System.Windows.Forms.ToolStripMenuItem itemnewmap; + private System.Windows.Forms.ToolStripMenuItem itemopenmap; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem itemsavemap; + private System.Windows.Forms.ToolStripMenuItem itemsavemapas; + private System.Windows.Forms.ToolStripMenuItem itemsavemapinto; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem itemexit; + } +} \ No newline at end of file diff --git a/Source/Interface/MainForm.cs b/Source/Interface/MainForm.cs new file mode 100644 index 00000000..3dff4d95 --- /dev/null +++ b/Source/Interface/MainForm.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace CodeImp.DoomBuilder.Interface +{ + public partial class MainForm : Form + { + // Constructor + public MainForm() + { + // Setup controls + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/Source/Interface/MainForm.resx b/Source/Interface/MainForm.resx new file mode 100644 index 00000000..901d8b4d --- /dev/null +++ b/Source/Interface/MainForm.resx @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 121, 17 + + + 207, 17 + + + + + AAABAAMAEBAAAAEACABoBQAANgAAACAgAAABAAgAqAgAAJ4FAAAwMAAAAQAIAKgOAABGDgAAKAAAABAA + AAAgAAAAAQAIAAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgAYntiAHeMdwBqgWoAYnNiAAAE + AABpgGkAIDMgAEVZRQAqPyoAip6KAGR4ZABIXkgAfpR+AH6TfgBRZ1EAYndiAJOmkwApPikADikOACQ5 + JAA7UDsAUGRQAIWYhQBleWUAY3djAE9jTwAjOCMADyoPABMfEwAWKRYAGykbABIoEgBZbVkANUo1AF9z + XwBabloAEScRACM6IwALFQsAFCIUAAMJAwAVLxUABx4HAF5zXgBVa04AO1IvADtSNgBVa0oAVWpVAAgg + CAAPIw8AAwgDAAYNBgAfOh8APlU+ACYuHgAAAE8AAADwAAwVAAAMFQcAAAAnAAAA9AAnLxoAP1c/ABQg + FAAMGwwABAwEACs8KwBtg20ASF9AACoyHQB5j3kAKzImAD1VMgByh3IAKjwqAAQLBAASKhIAGycbAC9G + LwB5jHkAPlQ+AH+SfwAzSjMAGTcZAAYSBgAdNB0AU2dTABkvGQAGEQYABwwHABs1GwADGwMAFiwWABwy + HAACGgIAMjwyAD1TPQBvhW8AMTsxACAsIAA4QzgAHysfAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAGZnZ2gAAAAAAAAAAAAAAGIEU2NkZQAAAAAAAAAAAFxdXl9gYV1cAAAAAABE + AABXWFlaWllYWwAATgAATyMAUVJTVFRTUlUAI1YAAEQARUZHSElJSktMTQBOADYANzg5Ojs8PT4/QEFC + AEMqACssLS4vDQ0wMTIzNAA1Hh8gISIjJAwMJCMlJicoKQAUFRYXGBkaGhkYGxYcHQAACAkKCwwNDg8Q + ERITCQgAAAACAwQFAAAAAAUHAwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP// + AAD8PwAA+B8AAPAPAACQCQAAkAkAAIABAAAAAAAAAAAAAAAAAACAAQAAgAEAAMPDAAD//wAA//8AACgA + AAAgAAAAQAAAAAEACAAAAAAAgAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAgACAAIAAAACAgAAAAIAAAACA + gAAAAIAAwMDAAMDcwADwyqYAgICAAP8A/wD/AAAA//8AAAD/AAAA//8AAAD/AP///wDw+/8ApKCgANTw + /wCx4v8AjtT/AGvG/wBIuP8AJar/AACq/wAAktwAAHq5AABilgAASnMAADJQANTj/wCxx/8Ajqv/AGuP + /wBIc/8AJVf/AABV/wAASdwAAD25AAAxlgAAJXMAABlQANTU/wCxsf8Ajo7/AGtr/wBISP8AJSX/AAAA + /wAAANwAAAC5AAAAlgAAAHMAAABQAOPU/wDHsf8Aq47/AI9r/wBzSP8AVyX/AFUA/wBJANwAPQC5ADEA + lgAlAHMAGQBQAPDU/wDisf8A1I7/AMZr/wC4SP8AqiX/AKoA/wCSANwAegC5AGIAlgBKAHMAMgBQAP/U + /wD/sf8A/47/AP9r/wD/SP8A/yX/AP8A/wDcANwAuQC5AJYAlgBzAHMAUABQAP/U8AD/seIA/47UAP9r + xgD/SLgA/yWqAP8AqgDcAJIAuQB6AJYAYgBzAEoAUAAyAP/U4wD/sccA/46rAP9rjwD/SHMA/yVXAP8A + VQDcAEkAuQA9AJYAMQBzACUAUAAZAP/U1AD/sbEA/46OAP9rawD/SEgA/yUlAP8AAADcAAAAuQAAAJYA + AABzAAAAUAAAAP/j1AD/x7EA/6uOAP+PawD/c0gA/1clAP9VAADcSQAAuT0AAJYxAABzJQAAUBkAAP/w + 1AD/4rEA/9SOAP/GawD/uEgA/6olAP+qAADckgAAuXoAAJZiAABzSgAAUDIAAP//1AD//7EA//+OAP// + awD//0gA//8lAP//AADc3AAAubkAAJaWAABzcwAAUFAAAPD/1ADi/7EA1P+OAMb/awC4/0gAqv8lAKr/ + AACS3AAAerkAAGKWAABKcwAAMlAAAOP/1ADH/7EAq/+OAI//awBz/0gAV/8lAFX/AABJ3AAAPbkAADGW + AAAlcwAAGVAAANT/1ACx/7EAjv+OAGv/awBI/0gAJf8lAAD/AAAA3AAAALkAAACWAAAAcwAAAFAAANT/ + 4wCx/8cAjv+rAGv/jwBI/3MAJf9XAAD/VQAA3EkAALk9AACWMQAAcyUAAFAZANT/8ACx/+IAjv/UAGv/ + xgBI/7gAJf+qAAD/qgAA3JIAALl6AACWYgAAc0oAAFAyANT//wCx//8Ajv//AGv//wBI//8AJf//AAD/ + /wAA3NwAALm5AACWlgAAc3MAAFBQAPLy8gDm5uYA2traAM7OzgDCwsIAtra2AKqqqgCenp4AkpKSAIaa + hgB6jnoAboJuAGJ2YgBWalYASl5KAD5SPgAyRjIAJjomABouGgAOIg4AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz7+fn5+fv8AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAD6+vn5+fn5+fn6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr5+/7///77+foAAAAAAAAAAAAAAAAA + AAAAAAAAAP7+/v/+/v7+/v7//v7+AAAAAAAAAAAAAAAAAAAAAAAAAP7//////v7+/////gAAAAAAAAAA + AAAAAAAAAAAAAAAA/v75/Pz+/vz8+f7+AAAAAAAAAAAAAAAAAP8AAAAA//78/v75/v7+/vn+/vz+/wAA + AAD/AAAAAAD//wAAAP7++/n8/v749vb4/v78+fv//gAAAP//AAAAAAD/AAAA+/779/b3+fn39/n59/b3 + +/z7AAAA//8AAAAA/wAAAAD6+vv5+fn59/f39/n5+fv6+voAAAD/AAAAAAAAAAAA//v3+fz+AAD79/f7 + AAD+/Pn3+/8AAAAAAAAA/wAA////9wAANjUQNQD7+wAANRA1AAD3//8AAAD/AAAAAAD8///8+fr8AAD/ + AP7+AP8AAPz6+fz/APwAAP8AAP8AAP/////8/P7+/vz8/v78/P7+/vz8/////wAAAAAAAAAA//7//vn3 + 9/f5/Pn5+fn8+ff3+fn+//4AAAD/AAD/AP4A/f/+/Pj5/Pf79/r69/v3/Pn4/P7//f/+AP8AAP3//v7+ + /f/7+fz8+fr5+fn5+vn8/Pn7//3+/gD//QAAAP///v7++vn5+Pb3+fn5+fn59/b4+fn6/v7+//8AAAAA + ///+/Pz8/Pn39/n5+Pj4+Pn59/f5/Pz8/P7//wAAAAD8/vz7//z2+ff3+fv39vb3+fn39/f2/P/7/P78 + AAAAAAD+/vn5/Pb2+/n7+/n5+fn7+/n79vb8+fn+/gAAAAAAAPz++vn3+vr2+vwAAAAAAAD8+vb6+vf5 + +v78AAAAAAAAAPj4+fn49/cAAAAAAAAAAAAA9/f4+fn4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////// + ////+B///+AH///AA///wAP//4AB//8AAP/HAADjxwAA44YAAGGGAABhhAAAIYAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACAAAABgAAAAcAAAAPAAAAD4AfgB/Af+A//////////////////////KAAAADAA + AABgAAAAAQAIAAAAAACACgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAIDAgAYntiAHeMdwBqgWoAYnNiAAAE + AABpgGkAIDMgAEVZRQAqPyoAip6KAGR4ZABIXkgAfpR+AH6TfgBRZ1EAYndiAJOmkwApPikADikOACQ5 + JAA7UDsAUGRQAIWYhQBleWUAY3djAE9jTwAjOCMADyoPABMfEwAWKRYAGykbABIoEgBZbVkANUo1AF9z + XwBabloAEScRACM6IwALFQsAFCIUAAMJAwAVLxUABx4HAF5zXgBVa04AO1IvADtSNgBVa0oAVWpVAAgg + CAAPIw8AAwgDAAYNBgAfOh8APlU+ACYuHgAAAE8AAACuAAwVAAAMFQcAAAAnAAAA9AAnLxoAP1c/ABQg + FAAMGwwABAwEACs8KwBtg20ASF9AACoyHQB5j3kAKzImAD1VMgByh3IAKjwqAAQLBAASKhIAGycbAC9G + LwB5jHkAPlQ+AH+SfwAzSjMAGTcZAAYSBgAdNB0AU2dTABkvGQAGEQYABwwHABs1GwADGwMAFiwWABwy + HAACGgIAMjwyAD1TPQBvhW8AMTsxACAsIAA4QzgAHysfAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////1xc + XFxcXFxc//////////////////////////////////////////////////9cXAoKCgoKCgoKXFz///// + /////////////////////////////////////////1wKUVEWGxsbGxZRCgpc//////////////////// + ////////////////////////XAoKQRsbBQUFBRsbQRYKXP////////////////////////////////// + //////9cKBYWGxsbQUFBQUEbGxsWKFz//////////////////////////////////////1xQKEpRUQoK + CjQ0CgoKUVFKKFBc/////////////////////////////////////1woKFA0Kys0KCgoKDQrKzRQKChc + /////////////////////////////////////1woUFAoAVxcXFxcXFxcAShQUChc//////////////// + ////////////////////XFAoUFxcXFxcXFxcXFxcXFxcUChQXP////////////////////////////// + ////XEpQUFxcCAoWFlBQFhYKCFxcUFBKXP//////////////////////XFxc//////9cXEooXFwICgoK + ClxcCgoKCghcXChKXFz//////1xcXP////////9cXFxcXP////9QAVFKKFxQUUEKKFxcKApBUVBcKEpR + AVD/////XFxcXFz///////9cXFxcXP///0pcUBZRSihQUFEoKCsrKChRUFAoSlEWUFxK////XFxcXFz/ + /////1xcXFxcXP///yhQUBsbQUpQUCgFMgcHMgUoUFBKQRsbNFAo////XFxcXFxc////UFxcXFxcXP// + SlFKK0EFBwcFGxsbGwUFGxsbGwUHBwVBClFRSv//XFxcXFxcUP//XFxcXFxcXP9cShYbFlFBQUFBQRsb + BQUFBRsbQUFBQVFRFhsWSlz/XFxcXFxcXP//XFxcXFxcXP9QKBsWGxsKKFBcUApRGwUFG1EKUFxQKAob + GxYbNFD/XFxcXFxcXP//XFxcXFxcXFxcKFEbBRZKAVBcXFxcUQUFUVxcXFxQAUoWBRtRK1xcXFxcXFxc + XP//XFxcXFxcXFxcUQoKNCgoOjs7O1xcXEFBXFxcOjo7OzsoNAoKUVxcXFxcXFxcXFxcXFxcXFxcXFxc + CgUKXFw6OwA6PztcXFFRXFxcOjsAOj87XAoFClxcXFxcXFxcXFxcXFxcXCgoKFxcXBsWSkpBUUpcXFxc + XBYWXFxcXFxKUQVKShYbXFxcKCgoXFxcXFxQKAEBXEpKKFxcAQpRG0pKUFxcXDQ0XCsrXDQ0XFxcUEpK + G1EKAVxcKEpKXAEBKFBQXFxcKCgBXFxcXFwoCkpQUFAoNEpRSlBQSlFKNChQUFBKCihcXFxcXAEoKFxc + XFBcXFxcKFxcUFBcXChQGwUFBQUbFgorQUFBQSsKFhsFBQUFG1AoXFxQUFxcKFxcXFxcXFxcXAFcXChc + XChQFgcHBQcyFgpRFgoKFlEKFjIHBQcHFlAoXFwoXFwBXFxcXFxcXFxcUCgBXEpcXFBKSgVBUQoFMlEb + BRYWBRtRMgUKUUEFSkpQXFxKXAEoUFxcXFwoXEooXFBQUFBKUFwKUUFKSgobBRYFGxsbGwUWBRsKSkpB + UQpcUEpQUFBQXChKXCj/XFxcXFxcKChKSgoKFhYbGwUFG0EFGzIyGwVBGwUFGxsWFgoKSkooKFxcXFxc + XP//KFxcXFxQKCgoURZBGwcyBQcFFhsFG0FBGwUbFgUHBTIHG0EWUSgoKFBcXFxcKP//UVxcXFwoUEpK + UAoWQQUHBwUyURsFBVFRBQUbFjIFBwcFQRYKUEpKUChcXFxcUf///1BcXEooKEpKSkpQSjIFBwUbURsH + MjIyMgcbURsFBwUySlBKSkpKKChKXFxQ/////yhcKEooSlAWBxtKFgcHBxtRURsFBxsbBwUbUVEbBwcH + FkobBxZQSihKKFwo//////9KUCgoKEEbCkobBxtRGxtRUVFBGxsbG0FRUVEbG1EbBxtKChtBKCgoUEr/ + ////////KChKUEpRFhsFBxYbBzJBCv//////////CkEyBxsWBwUbFlFKUEooKP///////////1FQMhYb + FgUHFhsHGxYK/////////////woWGwcbFgcFFhsWMlBR/////////////wpKURYWBQcWGwcbFkH///// + //////////9BFhsHGxYHBRYWUUoK//////////////8yQTIbQUEbMgUF/////////////////////wUF + MjJBQRsyQTL///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////wD////////8AD//////// + gAH///////8AAP///////gAAf//////8AAA///////wAAD///////AAAP//////4AAAf//////gAAB// + ///x8AAAD4///+DwAAAPB///4OAAAAcH///A4AAABwP//4DAAAADAf//gIAAAAEB//+AgAAAAQH//4AA + AAAAAf//gAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//gAAAAAAB//+AAAAAAAH//4AAAAAAAf//wAAAAAAD///AAAAAAAP//+AA + AAAAB///8AAP8AAP///4AB/4AB////gAP/wAH////AD//wA///////////////////////////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/Source/Map/Linedef.cs b/Source/Map/Linedef.cs new file mode 100644 index 00000000..3cf2dd8c --- /dev/null +++ b/Source/Map/Linedef.cs @@ -0,0 +1,99 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; + +namespace CodeImp.DoomBuilder.Map +{ + internal class Linedef : IDisposable + { + #region ================== Constants + + #endregion + + #region ================== Variables + + // Vertices + private Vertex start; + private Vertex end; + + // Sidedefs + private Sidedef front; + private Sidedef back; + + // Properties + private int flags; + private int action; + private int tag; + private byte[] args; + + // Disposing + private bool isdisposed = false; + + #endregion + + #region ================== Properties + + // Disposing + public bool IsDisposed { get { return isdisposed; } } + + #endregion + + #region ================== Constructor / Disposer + + // Constructor + public Linedef(Vertex start, Vertex end) + { + // Initialize + this.start = start; + this.end = end; + + // We have no destructor + GC.SuppressFinalize(this); + } + + // Diposer + public void Dispose() + { + // Not already disposed? + if(!isdisposed) + { + // Detach from vertices + start.Detach(this); + end.Detach(this); + + // Dispose sidedefs + front.Dispose(); + back.Dispose(); + + // Clean up + start = null; + end = null; + front = null; + back = null; + + // Done + isdisposed = true; + } + } + + #endregion + + #region ================== Methods + + #endregion + } +} diff --git a/Source/Map/MapManager.cs b/Source/Map/MapManager.cs new file mode 100644 index 00000000..b97aaee2 --- /dev/null +++ b/Source/Map/MapManager.cs @@ -0,0 +1,71 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; + +namespace CodeImp.DoomBuilder.Map +{ + internal class MapManager : IDisposable + { + #region ================== Constants + + #endregion + + #region ================== Variables + + // Disposing + private bool isdisposed = false; + + #endregion + + #region ================== Properties + + // Disposing + public bool IsDisposed { get { return isdisposed; } } + + #endregion + + #region ================== Constructor / Disposer + + // Constructor + public MapManager() + { + // Initialize + + // We have no destructor + GC.SuppressFinalize(this); + } + + // Diposer + public void Dispose() + { + // Not already disposed? + if(!isdisposed) + { + // Clean up + + // Done + isdisposed = true; + } + } + + #endregion + + #region ================== Methods + + #endregion + } +} diff --git a/Source/Map/Sidedef.cs b/Source/Map/Sidedef.cs new file mode 100644 index 00000000..1db1cbec --- /dev/null +++ b/Source/Map/Sidedef.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; + +namespace CodeImp.DoomBuilder.Map +{ + internal class Sidedef : IDisposable + { + #region ================== Constants + + #endregion + + #region ================== Variables + + // Disposing + private bool isdisposed = false; + + #endregion + + #region ================== Properties + + // Disposing + public bool IsDisposed { get { return isdisposed; } } + + #endregion + + #region ================== Constructor / Disposer + + // Constructor + public Sidedef() + { + // Initialize + + // We have no destructor + GC.SuppressFinalize(this); + } + + // Diposer + public void Dispose() + { + // Not already disposed? + if(!isdisposed) + { + // Clean up + + // Done + isdisposed = true; + } + } + + #endregion + + #region ================== Methods + + #endregion + } +} diff --git a/Source/Map/Vertex.cs b/Source/Map/Vertex.cs new file mode 100644 index 00000000..4fb6c073 --- /dev/null +++ b/Source/Map/Vertex.cs @@ -0,0 +1,99 @@ + +/* + * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com + * This program is released under GNU General Public License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using CodeImp.DoomBuilder.Geometry; + +namespace CodeImp.DoomBuilder.Map +{ + internal class Vertex : IDisposable + { + #region ================== Constants + + #endregion + + #region ================== Variables + + // Position + private Vector2D pos; + + // References + private List linedefs; + + // Disposing + private bool isdisposed = false; + + #endregion + + #region ================== Properties + + public List Linedefs { get { return linedefs; } } + public Vector2D Position { get { return pos; } } + public bool IsDisposed { get { return isdisposed; } } + + #endregion + + #region ================== Constructor / Disposer + + // Constructor + public Vertex(Vector2D pos) + { + // Initialize + this.pos = pos; + + // We have no destructor + GC.SuppressFinalize(this); + } + + // Diposer + public void Dispose() + { + // Not already disposed? + if(!isdisposed) + { + // Dispose the lines that are attached to this vertex + // because a linedef cannot exist without 2 vertices. + foreach(Linedef l in linedefs) l.Dispose(); + + // Clean up + linedefs = null; + + // Done + isdisposed = true; + } + } + + #endregion + + #region ================== Methods + + // This attaches a linedef + public void Attach(Linedef l) { linedefs.Add(l); } + + // This detaches a linedef + public void Detach(Linedef l) { linedefs.Remove(l); } + + // This rounds the coordinates to integrals + public void Round() + { + // Round to integrals + pos.x = (float)Math.Round(pos.x); + pos.y = (float)Math.Round(pos.y); + } + + #endregion + } +} diff --git a/Source/Properties/Resources.Designer.cs b/Source/Properties/Resources.Designer.cs new file mode 100644 index 00000000..4760c60a --- /dev/null +++ b/Source/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CodeImp.DoomBuilder.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CodeImp.DoomBuilder.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap Splash2 { + get { + object obj = ResourceManager.GetObject("Splash2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Properties/Resources.resx b/Source/Properties/Resources.resx new file mode 100644 index 00000000..3e021267 --- /dev/null +++ b/Source/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Splash2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Resources/Splash2.png b/Source/Resources/Splash2.png new file mode 100644 index 00000000..eae651db Binary files /dev/null and b/Source/Resources/Splash2.png differ diff --git a/Source/obj/Builder.csproj.FileList.txt b/Source/obj/Builder.csproj.FileList.txt new file mode 100644 index 00000000..cab0db36 --- /dev/null +++ b/Source/obj/Builder.csproj.FileList.txt @@ -0,0 +1,8 @@ +..\Build\Builder.exe +..\Build\Builder.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Builder.csproj.GenerateResource.Cache +obj\Debug\Builder.exe +obj\Debug\Builder.pdb +obj\Debug\CodeImp.DoomBuilder.Interface.MainForm.resources +obj\Debug\CodeImp.DoomBuilder.Properties.Resources.resources diff --git a/Source/obj/Debug/Builder.csproj.GenerateResource.Cache b/Source/obj/Debug/Builder.csproj.GenerateResource.Cache new file mode 100644 index 00000000..bc6668f8 Binary files /dev/null and b/Source/obj/Debug/Builder.csproj.GenerateResource.Cache differ diff --git a/Source/obj/Debug/Builder.exe b/Source/obj/Debug/Builder.exe new file mode 100644 index 00000000..49a5798b Binary files /dev/null and b/Source/obj/Debug/Builder.exe differ diff --git a/Source/obj/Debug/Builder.pdb b/Source/obj/Debug/Builder.pdb new file mode 100644 index 00000000..4100d2a8 Binary files /dev/null and b/Source/obj/Debug/Builder.pdb differ diff --git a/Source/obj/Debug/CodeImp.DoomBuilder.Interface.MainForm.resources b/Source/obj/Debug/CodeImp.DoomBuilder.Interface.MainForm.resources new file mode 100644 index 00000000..5dc82e30 Binary files /dev/null and b/Source/obj/Debug/CodeImp.DoomBuilder.Interface.MainForm.resources differ diff --git a/Source/obj/Debug/CodeImp.DoomBuilder.Properties.Resources.resources b/Source/obj/Debug/CodeImp.DoomBuilder.Properties.Resources.resources new file mode 100644 index 00000000..f5e08218 Binary files /dev/null and b/Source/obj/Debug/CodeImp.DoomBuilder.Properties.Resources.resources differ diff --git a/Source/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/Source/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 00000000..f6ac13f5 Binary files /dev/null and b/Source/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ