M.D.E. - "My DOOM Editor" by Patrick J. Steele Copyright (c) 1994, Patrick J. Steele Version 1.0 Additional design/input by Steven Spalding and Kevin Plancke ** NEW TO VERSION 1.00 ** ------------------------- * PWAD support! MDE will now create a PWAD instead of modifying your original DOOM.WAD. A PWAD is a small WAD file with only the information for one level - great for uploading to bbs'! * Enhanced user interface! Now objects, wall textures and floor textures have a "windows-like" listbox from which to make your selections. * The listbox mentioned above has a "preview" option to look at the floor/ceiling textures as well as the wall textures! * The floor/ceiling texture display (as well as the new wall display) have been greatly speeded up! * Color-coded objects! The map is easier to view and setup with the addition of color codes for the different objects. * Deaf creatures! You can now modify the behavior of the DOOM creatures. Deaf creatures will not move until they actually see you, while "non-deaf" creatures will start hunting you down as soon as they hear all the racket you're making! * Thanks to the new DOOM specs (v1.2) all of the Linedef attributes are known, and modifiable, in MDE. * A "Use Last" button when changing wall textures! This button allows you to quickly copy wall textures to different walls. * MDE now has a batch file to load/unload the video driver automatically. FASTGRAPH/LIGHT --------------- This program is using FastGraph/Light, a powerful graphics library for C/C++, BASIC, PASCAL and FORTRAN. I highly recommend it to all programmers looking for a fast graphics library that supports a *lot* of video cards/modes. Contact: Ted Gruber Software PO Box 13408 Las Vegas, NV 89112 Orders/Info (702) 735-1980 FAX (702) 735-4603 BBS (702) 796-7134 The one drawback is the external driver needed to run FG/Light applications. It's included with MDE and it must be loaded before running MDE. It takes about 120k of conventional memory. The full blown version of FastGraph does not require this driver (and it has a lot more features), but it was $150 more than FG/Light ($49). So, I hope you have enough memory to run MDE. I still need to do more testing to determine the minimum amount needed to run. LEGAL NOTICE ------------ MDE will only work with the registered version of DOOM. If you only have the shareware version, I strongly suggest you register. The $46 is well worth it. Episodes 2 and 3 are fantastic! MDE is Copyright(c) 1994 by Patrick J. Steele. MDE is not an id Software product and id Software cannot provide any support or assistance for MDE. Also, id Software cannot provide any support for any levels modified by MDE. THANKS ------ A special thanks goes out to Steven Spalding and Kevin Plancke for beta testing MDE and providing some really neat ideas. Thanks guys! INSTRUCTIONS ------------ To run MDE, simply enter, "MDE" at the DOS prompt. The FastGraph video driver will be installed and MDE will run (NOTE: The driver will automatically be unloaded after you exit MDE). You will be prompted with a selection screen. You can use the arrow keys to select the episode and level number you want to edit. Any other keys will be used as input into the bottom field where the location of your DOOM.WAD is located. You need to include the DOOM.WAD in the filename. Example: If you have DOOM installed on the E: drive in a directory named "DOOM", your path would be: E:\DOOM\DOOM.WAD Once you've entered the location of your DOOM.WAD and selected a map, press to edit the map. You will be given an overhead view of the map. The red dots are creatures, the blue dots are objects you can pick up or interact with (ammo, weapons, keys, health, etc.), the yellow dots are the rest of the miscellaneous items (trees, candles, dead bodies, etc.) and the green points are vertexes. Move the mouse to the edges of the screen and the map will automatically scroll. Press the left mouse button while pointing to an object or a vector to bring up detailed information. FOR OBJECTS: You may change what the object is, the angle it faces, what skill levels it will appear on and whether it will show up only in network play. For setting the angle, the following numbers are used: 9 0 135 | 45 180 -+- 0 225 | 315 270 The option to set a deaf creature is also available. A deaf creature will not attack you, no matter how much noise you're making, unless he can actually see you. A "non-deaf" creature will start moving and searching for you once he hears you shooting. This option is great to create an ambush situation. Place about 5 "non- deaf" sergeants around a corner. Then place a former human at the end of the hall leading to that corner. The DOOM player will take a few shots at the former human, and the guards will growl to life and suddenly, the player is faced with 5 angry sergeant blasting away at him! FOR VERTEXES: In the DOOM maps, two vertexes form a line (called a "linedef" in the WAD file). A line consists of a "from" vertex and a "to" vertex. When you select a vertex, MDE will display a green line that corresponds to a linedef. MDE assumes the vertex you selected was the "from" vertex. NOTE: Some lines are formed by two vertexes at the same x,y location. Example: 1 | | | 2------------4 | | | 3 This map shows a line going from 1 to 2, a line from 2 to 3, and a line from 2 to 4. If you select vertex 2, MDE will find the first line that uses vertex 2 as the "from" vertex. If the line from 2 to 3 was the first one, that line would always be selected. To tell MDE to ignore the first instance of the vertex, hold the ALT key down while pressing the left mouse button on a vertex. In this example, the result would be the line from 2 to 4 being selected. Once a line is selected, a dialog box will display information for that "linedef". A sample dialog box is show below: +------------------------------------------------+ | Attrib |Impass | |MBlock | |2-sided| |BlkSnd | | | |Up-Upeg| |Lo-Upeg| |NoMap | |StrtMap| | | |Secret | | | | | Type 000 |+| |-| Trigger 000 |+| |-| | | | | |Edit R Side| |Edit L Side| | +------------------------------------------------+ NOTE: The "Edit L Side" button will only be displayed if there is a left sidedef (explained later) for this line. "Impass" - This toggle button will make a line impassable by the DOOM player. This is generally used along walls and the edge of the DOOM playfield. "MBlock" - When pressed, this toggle button will block a monster from passing this line. "2-sided" - This attribute tells the DOOM engine that this line has two sides - so if no wall texture is defined, the wall is transparent. Wall textures are discussed later. "BlkSnd" - When pressed, this toggle button will block sound from passing the selected line. "Up-Upeg" and "Lo-Upeg" - These attributes tell the DOOM engine whether the above (upper) and below (lower) wall textures (explained later) are "pegged" or not. A pegged texture will move along the sector it's defined when the sector moves (changes height). An unpegged texture will not move. It's a difficult thing to explain. Try and look at it graphically: Imagine the "above" texture being the numbers 1-5 listed vertically - here's the effect of the wall texture on a line that is "unpegged". | 1 | | 1 | | 1 | | 1 | | 1 | +-----+ | 2 | | 2 | | 2 | | 2 | +-----+ | 3 | | 3 | | 3 | +-----+ | 4 | | 4 | +-----+ | 5 | +-----+ It looks "funny". The wall doesn't actually look like it's "moving" down. If you set the texture to be "pegged", the effect will be like this: | 5 | | 4 | | 3 | | 2 | | 1 | +-----+ | 5 | | 4 | | 3 | | 2 | +-----+ | 5 | | 4 | | 3 | +-----+ | 5 | | 4 | +-----+ | 5 | +-----+ See the difference? The five is always at the bottom of the wall. The "above" texture "moves" with the wall. You will see pegged textures with doors, since you want the texture to move up as the door opens. "NoMap" - When this button is pressed, the selected line will not show up on the map - even when the Computer Map is found. "StrtMap" - When this button is pressed, the selected line will show up on the map at the beginning of the level - even if you haven't seen the line yet. "Special" - This button will make the automapper draw the selected line as a normal line - protecting any secret area until the secret is opened. This option has nothing to do with the secret percentage at the end of a level. "Type" - The primary use of this field is for special "trigger" functions (explained later). "Trigger" - This field will tie a line and a sector (or sectors) together, so when this line is crossed or the wall this line defines is pushed, something will happen in the sector(s) with the same trigger number. That "something" will depend on the "Type" field. For example, the value 35 in the Type field will cause a sector to go dark (loose all light) when the line is crossed. Triggers will be discussed in more detail later. For the "Type" and "Trigger" fields, click the +/- buttons to increase and decrease the values. Hold down the control key while clicking with the mouse to change the value by 10. Clicking on one of the two "Edit Side" buttons will bring up information for a sidedef (explained later). A sample dialog box for a sidedef is show below: +-----------------------------+ | T-above - |?| | | T-norml STARTAN3 |?| | | T-below - |?| | | | | |Edit Sector| |Restore| | | |Use Last | | +-----------------------------+ "T-above" shows the name of the texture used to define the area of a wall "above" a sector where there is an adjacent sector with a lower ceiling. "T-norml" is the name of the normal (eye-level) texture used to define the wall image. "T-below" is the name of the texture used to define the area of a wall "below" a sector where there is an adjacent sector with a higher floor. For the 3 texture fields, click the ? button next to the texture name to display a list of available wall textures. The 'T' and 'B' keys in the listbox allow you to quickly move to the top and bottom of the list. The up and down triangle move the list in pages, while the up and down arrows move through the selections displayed. To see what a wall texture looks like click on the "Preview" button. When you are done viewing the wall, press the right mouse button to continue. Select "Ok" to use the selected texture or "Cancel" to ignore your selection. A texture of "-" means there is nothing defined for that texture. See the "DETAILED INFORMATION" section below for help on these fields. "Edit Sector" will bring up detailed info about the sector this sidedef surrounds (defines). You may change a sectors' floor/ceiling texture, floor/ceiling height, the amount of light in the sector, set up special flags for the sector (radioactive damage, flickering lights, pulsating lights, etc.) and set the trigger number for special effects. "Restore" will restore the texture names to the ones first displayed in this dialog box. If you made a mistake in the selection of wall textures, press "Restore" to bring the old names back. Once you leave this dialog box, the names are saved in memory for the rest of the editing session. "Use Last" will use names of the textures from the last "side" you edited. This is handy for copying a common set of textures across multiple lines. When you press the "Edit Sector" button, a third dialog box will appear with information for that sector. A sample is show below: +---------------------------------+ | Ceiling CEIL3_5 72 + - | | Floor FLOOR4_2 0 + - | | Light 144 + - | | Special 0 + - | | Trigger 0 + - | +---------------------------------+ "Ceiling" and "Floor" shows the name of the texture used on the ceiling and the floor, respectively (CEIL3_5 and FLOOR4_2 in this example), the ceiling height (72) and the floor height (0) and the usual +/- buttons for changing the height of the ceiling/floor. Click on the texture name to change the ceiling or floor texture. A listbox will appear allowing you to select a new texture. Since floor and ceiling textures are so small, the preview button is enabled while you scroll through your selections. The ranges for the ceiling/floor seem to be from 512 to -264. A difference of more than 28 will prevent the DOOM player from crossing into a higher sector. The DOOM player may fall any distance. "Light" displays the light level for the sector. The ranges are from 0 (very dark!) to 255 (full light) "Special" - set special flags for this sector. In the list below, sectors that cause damage have two percentages listed. The first percentage is the damage when playing at skill level 1, the second percentage is the damage playing at skill levels 2 and above. The current known values for "Special" are: 0 - Normal sector 1 - light level blinks randomly 2 - light quickly blinks for 0.5 seconds 3 - light quickly blinks for 1.0 second 4 - lights pulsate and 10%/20% health loss 5 - 5%/10% health loss 7 - 2%/5% health loss (typical green acid) 8 - light oscillate from 255 to light level of adjacent sector 9 - secret sector (increments the # of secrets found) 10 - unknown 11 - 10%/20% health loss and takes player out of god mode 12 - blink (down to very dark) 13 - quick pulsate 16 - 10%/20% health loss Values other than those listed can cause DOOM to crash with a "UNKNOWN SPECIAL SECTOR" error. "Trigger" - This will tie a sector and a linedef together. Set this field to the same number as the trigger field in a linedef to "connect" the sector and linedef. The number used to connect the sector can be any number you want, just make it unique. Click the right mouse button to back out of all of these menus. OBJECT MOVEMENT --------------- To move an object, select it with the right mouse button. While holding down the right mouse button, drag the object where you want it and release the mouse button. KEYS ---- Press 'W' to write your changes to a PWAD file. If you don't press 'W' your changes will not be saved! MDE will warn you if you try to exit without saving your changes. The name of the PWAD will be MDE_ExMy.WAD where 'x' is the episode # (1-3) and 'y' is the level # (1-9). Press [ESC] to exit the program. To run DOOM with your PWAD file, simply run DOOM with the following command: DOOM -file [your wad file] Example: If you modified episode 2, level 6 and saved the PWAD (MDE_E2M6.WAD), run DOOM as: DOOM -file mde_e2m6.wad DETAILED INFORMATION -------------------- Here's some more detailed info about MDE. The moving and changing of objects is pretty straightforward. What I'll explain here is the options you have with the vertexes, sidedefs and sectors. If you want to understand more of what's here, I've included a copy of "The Unofficial DOOM Specs v1.2". That's what made this editor possible and it may explain better what I'm about to describe. Each line will have at least one side defined, called a "sidedef", or possibly two. A line will only have one sidedef if the DOOM player will never see the other side. For example, on the first level of episode one, the DOOM player can turn around 180 degrees and see a door. There is no way (except with cheat codes) for the player to be on the other side of that door, so that line only has one sidedef. An example of a line with two sidedefs is also on the first level of episode one. If you look out the window to the right, there's the familiar pool of ooze with the combat (blue) armor. The lines defining that pool of acid have two sidedefs, the side that faces "in" the pool of acid, and the side that faces "out" of the pool. All of the lines in DOOM have a 'from' vertex and a 'to' vertex. As noted earlier, when you select a vertex, MDE will find a line based on the point you select being the 'from' vertex. When you select a vertex with the left mouse button, hold down the mouse button. The line will be high- lighted in green so you can see the entire line. The 'from' and 'to' vertexes for a line also establish a direction for the line. Consider the picture below: "left side" "right side" From------------------->To<-----------------From "right side" "left side" If you were standing with your back to the 'from' vertex and your head facing the 'to' vertex, you would see that your right arm is on the "right" side of the line and your left arm is on the "left" side of the line. When you release the mouse button, the dialog box for the line displays. The button "Edit R Side" allows you to edit the right side of the line. The "Edit L Side" button allows you to edit the left side of the line. This is cumbersome at first, but after a while, you'll get used to it. As noted above, each line has at least one sidedef. A collection of sidedefs forms (or "defines/surrounds") a sector. A sector is where the floor/ceiling altitude is defined and where the lighting and special flags (for acid damage, etc.) are defined. You may edit the altitude of the floor and the ceiling, set the light level, and set special flags for the sector. You may also tie a line to a sector with the "Trigger" field. SIDEDEF TEXTURES ---------------- The three texture names for a sidedef, T-above, T-norml, and T-below, all have special meaning. The T-norml level is easy - it's the "eye-level" texture for the wall. The above and below names are a little tricky. The above texture tells DOOM what to draw "above" a sector, if the sector's ceiling is lower than an adjacent sector. Episode 1, Level 1 will give us a good example. Start on this level, and go the left. When you stand at the base of the stairs (leading up to the armor), there are two columns with some pulsating lights. This is an example of a sector with a lower ceiling than an adjacent sector. At the top of the column is a kind of diamond shaped light. That is the ceiling texture for that sector. The sector you are standing in has a higher ceiling than the column, thus DOOM needs to know what to draw "above" the column. If you look at sidedef1 for each of the 4 sides of the column, T- above is set to TEKWALL4. This same reasoning applies to the below texture. If the column and gone all the way to the floor, you wouldn't need a below texture. However, the floor of the column is "higher" than the "adjacent" sector (which is the sector you are standing in). DOOM needs to know what to draw under the floor. TRIGGERS -------- To get a sector "tied in" to a line, set the "Trigger" field for the linedef and the sector to the same value (any value you make up is fine - just make sure it's not in use by some other trigger). Once a line and sector are tied together (by having the same trigger number), you can define what will happen to the sector when the line is crossed, or a button along the line is pushed. The "Type" field of a line will determine what will happen in the "tied in" sector. The DOOM specs do an excellent job of listing all of the values currently known. Instead of duplicating the effort, please consult the DOOM specs for the trigger values. One note about teleporters (trigger 39 and 97): Teleporters *require* a teleport destination object to be in the sector the trigger is tied to. You will teleport into the sector that is "tied in" to the linedef. If a DOOM player crosses a line with a type of 39 or 97, DOOM will look for the sector the line is tied to. If there is no teleport destination object in that sector, the teleport will not work (nothing will happen). If there is a teleport destination object, the player will be placed there and will be facing whatever direction the object is pointed in. THE END? -------- Ok, now I need to know what you think. I need all feedback - good/bad/wants/needs. Please leave feedback to me on: Software Creations: (508) 368-7036 User name: Patrick Steele Internet: patrick.steele@swcbbs.com COMING UP --------- * Creating maps! Right now, there are a few editors out there that let you edit/create levels. As soon as I get a hold of some code for the internal structures of the WAD file that need to be re-created when walls are added/moved, I'll start work on MDE to allow map creation! * Because of memory requirements, Episode #2, Level 7 can not be loaded into MDE. It's a huge level (almost 200k of data!) I'm going to use expanded memory (EMM) in my next version of MDE to reduce the amount of conventional memory required. With EMM, adding objects will be available! * One of my beta testers, Steve Spalding, suggested some kind of utility to easily run DOOM with multiple PWAD files (instead of typing them all in at the command line). I'm looking into that.