home *** CD-ROM | disk | FTP | other *** search
/ MegaDoom Adventures / PMWMEGADOOM.iso / doom / editors / wadfile / mydmedit / mde90b.txt < prev    next >
Text File  |  1994-02-20  |  25KB  |  603 lines

  1.                   M.D.E. - "My DOOM Editor"
  2.                     by Patrick J. Steele
  3.  
  4. Copyright (c) 1994, Patrick J. Steele
  5. [BETA] v0.9b
  6.  
  7. NOTE:  This *is* a beta version.  The reason I call it beta
  8. is because I don't think it's "polished" or user-friendly
  9. enough to be a final product, but it is fully functional.
  10. It will not change your WAD file unless you tell it to
  11. (explained later).  Also, this program will only work on the
  12. registered version of DOOM.
  13.  
  14. Beta or not, PLEASE MAKE A BACKUP OF YOUR WAD FILE BEFORE
  15. USING ANY DOOM EDITOR.
  16.  
  17. ** NEW TO VERSION 0.9b **
  18. -------------------------
  19.  
  20.      * You can now change the floor/ceiling textures!  Just
  21.      click on the name of the texture (in the sectors dialog
  22.      box) and the textures available will be presented.
  23.      Press the "<" and ">" to move through the textures.
  24.      Select a texture by clicking on it's name under the
  25.      picture.
  26.      
  27.      * You can now change the wall textures!  When the data
  28.      for a sidedef is displayed, the 3 textures associated
  29.      with that sidedef can be changed using the "+" and "-"
  30.      buttons next to the texture names.
  31.      
  32.      * You can set up your own "triggers"!  A trigger is
  33.      something that happens when a wall is pressed or a line
  34.      crossed.  You can set up your own crushing ceilings,
  35.      lowering platforms and teleport locations!
  36.      
  37.      * MDE now uses the DOOM palette.  This allows the
  38.      floor/ceiling textures to be viewed as they would in
  39.      the game.  The red component is heavily used in the
  40.      DOOM palette so the screen has a sort of "red tint" to
  41.      it.
  42.      
  43.      * Since I have the triggers option, this version will
  44.      work on all three episodes of DOOM.
  45.  
  46. FASTGRAPH/LIGHT
  47. ---------------
  48.  
  49. This program is using FastGraph/Light, a powerful graphics
  50. library for C/C++, BASIC, PASCAL and FORTRAN.  I highly
  51. recommend it to all programmers looking for a fast graphics
  52. library that supports a *lot* of video cards/modes.
  53. Contact:
  54.  
  55.                      Ted Gruber Software
  56.                         PO Box 13408
  57.                      Las Vegas, NV 89112
  58.                  Orders/Info (702) 735-1980
  59.                      FAX (702) 735-4603
  60.                      BBS (702) 796-7134
  61.  
  62. The one drawback is the external driver needed to run
  63. FG/Light applications.  It's included with MDE and it must
  64. be loaded before running MDE.  It takes about 120k of
  65. conventional memory.  The full blown version of FastGraph
  66. does not require this driver (and it has a lot more
  67. features), but it was $150 more than FG/Light ($49).  So, I
  68. hope you have enough memory to run MDE.  I still need to do
  69. more testing to determine the minimum amount needed to run.
  70.  
  71. BUGS
  72. ----
  73.  
  74. * There is a problem that I know about and I'm looking into,
  75. although it may be out of my control.  I have a Microsoft
  76. mouse and the mouse driver that came with it is ver. 9.1.
  77. For some reason, that mouse driver (when running MDE) moves
  78. along at 2 pixels horizontally instead of 1, so I only
  79. receive values of 0,2,4,6,8,etc... from the mouse.  If an
  80. object is in placed in an odd pixel (1,3,5,7,etc...) you
  81. will not be able to select it.  Older Microsoft mouse
  82. drivers do not have this problem.  I found a ver 8.2
  83. Microsoft mouse driver, and when using that one, MDE works
  84. fine.  I'm going to see if I change the mouse speed or
  85. something to see if I can get it to move along every pixel
  86. horizontally.  If you have ver 9.1 of the Microsoft mouse
  87. driver I'm sorry - I'm trying to remedy the situation.  See
  88. if you can get an older version (8.2 works).
  89.  
  90. * Occasionally, after selecting a new floor/ceiling texture,
  91. the new texture name is not displayed in the sectors dialog
  92. box correctly.  This is a display problem only.  If you back
  93. out of the dialog box with the right mouse button and then
  94. go back in by selecting the "Edit Sector" button, the
  95. correct name is displayed.  I'm looking into it.
  96.  
  97. INSTRUCTIONS
  98. ------------
  99.  
  100. To run MDE, you'll first need to load the FastGraph/Light
  101. driver.  This is included with MDE.  After extracting MDE,
  102. enter:
  103.  
  104.      FGDRIVER
  105.  
  106. This will load the FastGraph/Light driver (when you are done
  107. with MDE, you may unload the FG/Light driver with "FGDRIVER
  108. /u").  To run MDE, enter:
  109.  
  110.      MDE [WAD file] [ExMy]
  111.  
  112. Where,
  113.  
  114. [WAD file] - is the name of the .wad file you want to modify
  115. [ExMy] - where x is the episode# and y is the level
  116.  
  117. EXAMPLE: To modify the final level of Episode #1, enter:
  118.  
  119.      MDE DOOM.WAD E1M8
  120.  
  121. This will use DOOM.WAD as the wad file and edit level 8 of
  122. episode 1 (level 9 is the secret level).
  123.  
  124. You will be given an overhead view of the map.  The blue
  125. dots are objects, the green points are vertexes.  Move the
  126. mouse to the edges of the screen and the map will
  127. automatically scroll.
  128.  
  129. Press the left mouse button while pointing to an object
  130. (blue dot) or a vector (green dot) to bring up detailed
  131. information.
  132.  
  133. FOR OBJECTS:
  134.  
  135.      You may change what the object is, the angle it faces,
  136.      what skill levels it will appear on and whether it will
  137.      show up only in network play.
  138.  
  139. FOR VERTEXES:
  140.  
  141.      In the DOOM maps, two vertexes form a line (called a
  142.      "linedef" in the WAD file).  A line consists of a
  143.      "from" vertex and a "to" vertex.  When you select a
  144.      vertex, MDE will display a green line that corresponds
  145.      to a linedef.  MDE assumes the vertex you selected was
  146.      the "from" vertex.
  147.      
  148.      NOTE: Some lines are formed by two vertexes at the same
  149.      x,y location.  Example:
  150.      
  151.                1
  152.                |
  153.                |
  154.                |
  155.                2------------4
  156.                |
  157.                |
  158.                |
  159.                3
  160.      
  161.      This map shows a line going from 1 to 2, a line from 2
  162.      to 3, and a line from 2 to 4.  If you select vertex 2,
  163.      MDE will find the first line that uses vertex 2 as the
  164.      "from" vertex.  If the line from 2 to 3 was the first
  165.      one, that line would always be selected.  To tell MDE
  166.      to ignore the first instance of the vertex, hold the
  167.      ALT key down while pressing the left mouse button on a
  168.      vertex.  In this example, the result would be the line
  169.      from 2 to 4 being selected.
  170.      
  171.      Once a line is selected, a dialog box will display
  172.      information for that "linedef".  A sample dialog box is
  173.      show below:
  174.      
  175.                +------------------------+
  176.                | Select SideDef to View |
  177.                | Control    1  +  -     |
  178.                | Flags      0  +  -     |
  179.                | Trigger    0  +  -     |
  180.                |                        |
  181.                | SideDef1    SideDef2   |
  182.                +------------------------+
  183.      
  184.      NOTE: The "SideDef2" button will only be displayed if
  185.      there are two sidedefs (explained later) for this line.
  186.      
  187.           "Control" - This field has something to do with
  188.           defining a "wall" versus an "opening" in the DOOM
  189.           playfield.  A typical value is 1, which means a
  190.           wall that the DOOM player may not pass.  There may
  191.           or may not be a wall stopping you.  At the
  192.           beginning of Episode 1, Level 1, you can look out
  193.           the 2 windows and see the blue armor in the green
  194.           ooze.  Technically, the opening for the window is
  195.           low enough to allow the DOOM player to pass, but
  196.           the Control value is set to 1, so you may not jump
  197.           out the window.  "Control" is also used in
  198.           conjunction with the "Flags" field to make a wall
  199.           into a door.  As you look at the linedefs on the
  200.           existing map, you will see some common values
  201.           used.  I don't have all of the values documented,
  202.           so you may play around with this field.
  203.           
  204.           "Flags" - The primary use of this field is for
  205.           special "trigger" functions (explained later).  I
  206.           have also seen this field used in conjunction with
  207.           the "Control" field for doors.
  208.           
  209.           "Trigger" - This field will tie a line and a
  210.           sector together, so when this line is crossed or
  211.           the wall this linedef defines is pushed, something
  212.           will happen in the sector with the same trigger
  213.           number.  That "something" will depend on the
  214.           "Flags" field.  For example, the value 35 in the
  215.           Flags field will cause a sector to go dark (loose
  216.           all light) - 77 will start the up/down motion of a
  217.           crushing ceiling.  More on triggers later.
  218.           
  219.           For these 3 fields, click the +/- buttons to
  220.           increase and decrease the values.  Hold down the
  221.           control key while clicking with the mouse to
  222.           change the value by 10.
  223.           
  224.      Clicking on one of the two "sidedef" buttons will bring
  225.      up information for a sidedef (explained later).  A
  226.      sample dialog box for a sidedef is show below:
  227.      
  228.                +--------------------------+
  229.                | T-above -          +  -  |
  230.                | T-norml STARTAN3   +  -  |
  231.                | T-below -          +  -  |
  232.                |                          |
  233.                | Edit Sector     Restore  |
  234.                +--------------------------+
  235.                
  236.           "T-above" shows the name of the texture used to
  237.           define the area of a wall "above" a sector where
  238.           there is an adjacent sector with a higher ceiling.
  239.           
  240.           "T-norml" is the name of the normal (eye-level)
  241.           texture used to define the wall image.
  242.      
  243.           "T-below" is the name of the texture used to
  244.           define the area of a wall "below" a sector where
  245.           there is an adjacent sector with a lower floor.
  246.           
  247.           For the 3 texture fields, click the +/- buttons to
  248.           move forward/backward through the list of
  249.           available texture names.  Hold down the control
  250.           key while clicking with the mouse to change the
  251.           value by 10.  A texture of "-" means there is
  252.           nothing defined for that texture.  See the
  253.           "DETAILED INFORMATION" section below for help on
  254.           these fields.
  255.      
  256.           "Edit Sector" will bring up detailed info about
  257.           the sector this sidedef surrounds (defines).  You
  258.           may change a sectors' floor/ceiling height, the
  259.           amount of light in the sector, set up special
  260.           flags for the sector (radioactive damage,
  261.           flickering lights, pulsating lights, etc...) and
  262.           set the trigger number for special effects.
  263.           
  264.           "Restore" will restore the texture names to the
  265.           ones first displayed in this dialog box.  If you
  266.           got lost in the selection of wall textures, press
  267.           "Restore" to bring the old names back.  Once you
  268.           leave this dialog box, the names are saved in
  269.           memory for the rest of the editing session.
  270.           
  271.      When you press the "Edit Sector" button, a third dialog
  272.      box will appear with information for that sector.  A
  273.      sample is show below:
  274.      
  275.                +---------------------------------+
  276.                | Ceiling  CEIL3_5     72  +   -  |
  277.                |   Floor FLOOR4_2      0  +   -  |
  278.                |   Light 144  +  -               |
  279.                | Special   0  +  -               |
  280.                | Trigger   0  +  -               |
  281.                +---------------------------------+
  282.           
  283.           "Ceiling" and "Floor" shows the name of the
  284.           texture used on the ceiling and the floor,
  285.           respectively (CEIL3_5 and FLOOR4_2 in this
  286.           example), the ceiling height (72) and the floor
  287.           height (0) and the usual +/- buttons for changing
  288.           the height of the ceiling/floor.  Click on the
  289.           texture name to change the ceiling or floor
  290.           texture.  Available textures will be displayed
  291.           along with a ">" and "<" for scrolling through the
  292.           textures.  Click on the name of the texture
  293.           (displayed below the texture) to select it.
  294.           
  295.           The ranges for the ceiling/floor seem to be from
  296.           512 to -264.  A difference of more than 28 will
  297.           prevent the DOOM player from crossing into a
  298.           higher sector.  The DOOM player may fall any
  299.           distance.
  300.           
  301.           "Light" displays the light level for the sector.
  302.           The ranges are from 0 (very dark!) to 255 (full
  303.           light)
  304.           
  305.           "Special" - set special flags for this sector.  A
  306.           few that have been found are:
  307.           
  308.                0 - Normal sector
  309.                1 - light level blinks randomly
  310.                2 - light quickly blinks
  311.                3 - lights blink
  312.                4 - lights pulsate and 10% health loss
  313.                5 - 5% health loss
  314.                6 - DO NOT USE! Exits to DOS with "unknown
  315.                sector flag"
  316.                7 - 2% health loss (typical green acid)
  317.                8 - lights pulsate
  318.                9 - secret sector (increments the # of
  319.                secrets found)
  320.                10 - unknown
  321.                11 - 10% health loss
  322.                12 - blink (down to very dark)
  323.                13 - quick pulsate
  324.                14 - unknown
  325.                15 - unknown
  326.                16 - 20% health loss
  327.           
  328.           Beyond that, use at your own risk!
  329.           
  330.           "Trigger" - This will tie a sector and a linedef
  331.           together.  Set this field to the same number as
  332.           the trigger field in a linedef to "connect" the
  333.           sector and linedef.
  334.      
  335.      Click the right mouse button to back out of all of
  336.      these menus.
  337.  
  338. OBJECT MOVEMENT
  339. ---------------
  340.  
  341. To move an object, select it with the right mouse button.
  342. While holding down the right mouse button, drag the object
  343. where you want it and release the mouse button.
  344.  
  345. KEYS
  346. ----
  347.  
  348. Press 'E' to export the placement of the objects for this
  349. level.  A file will be created called DMAPExMy.DAT where x
  350. is the episode# and y is the level.
  351.  
  352. Press 'I' to import object placement data from the
  353. corresponding .DAT file as explained above.
  354.  
  355. Before you exit, press 'W' to write your changes to the WAD
  356. file.  If you don't press 'W' your changes will not be
  357. saved!  Press [ESC] to exit the program.
  358.  
  359. DETAILED INFORMATION
  360. --------------------
  361.  
  362. Here's some more detailed info about MDE.  The moving and
  363. changing of objects is pretty straightforward.  What I'll
  364. explain here is the options you have with the vertexes,
  365. sidedefs and sectors.  If you want to understand more of
  366. what's here, please D/L DMSPCS10.ZIP (The Unofficial DOOM
  367. Specs).  That's what made this editor possible (thank you
  368. rogerffff@aol.com!!) and it may explain better what I'm
  369. about to describe.
  370.  
  371. Each line will have at least one side defined, called a
  372. "sidedef", or possibly two.  A line will only have one
  373. sidedef if the DOOM player will never see the other side.
  374. For example, on the first level of episode one, the DOOM
  375. player can turn around 180 degrees and see a door.  There is
  376. no way (except with cheat codes) for the player to be on the
  377. other side of that door, so that line only has one sidedef.
  378.  
  379. An example of a line with two sidedefs is also on the first
  380. level of episode one.  If you look out the window to the
  381. right, there's the familiar pool of ooze with the combat
  382. (blue) armor.  The lines defining that pool of acid have two
  383. sidedefs, the side that faces "in" the pool of acid, and the
  384. side that faces "out" of the pool.
  385.  
  386. As noted above, each line has at least one sidedef.  A
  387. collection of sidedefs forms (or "defines/surrounds") a
  388. sector.  A sector is where the floor/ceiling altitude is
  389. defined and where the lighting and special flags (for acid
  390. damage, etc...) are defined.  You may edit the altitude of
  391. the floor and the ceiling, set the light level, and set
  392. special flags for the sector.  You may also tie a line to a
  393. sector with the "Trigger" field.
  394.  
  395. The names of the textures for a sidedef should help you pick
  396. which sector to modify when there are two sidedefs (since I
  397. cannot tell from the vertex you select which sector you want
  398. to edit).
  399.  
  400. SIDEDEF TEXTURES
  401. ----------------
  402.  
  403. The three texture names for a sidedef, T-above, T-norml, and
  404. T-below, all have special meaning.  The T-norml level is
  405. easy - it's the "eye-level" texture for the wall.  The above
  406. and below names are a little tricky.
  407.  
  408. The above texture tells DOOM what to draw "above" a sector,
  409. if the sector's ceiling is lower than an adjacent sector.
  410. Episode 1, Level 1 will give us a good example.
  411.  
  412. Start on this level, and go the left.  When you stand at the
  413. base of the stairs (leading up to the armor), there are two
  414. columns with some pulsating lights.  This is an example of a
  415. sector with a lower ceiling than an adjacent sector.
  416.  
  417. At the top of the column is a kind of diamond shaped light.
  418. That is the ceiling texture for that sector.  The sector you
  419. are standing in has a higher ceiling than the column, thus
  420. DOOM needs to know what to draw "above" the column.  If you
  421. look at sidedef1 for each of the 4 sides of the column, T-
  422. above is set to TEKWALL4.
  423.  
  424. This same reasoning applies to the below texture.  If the
  425. column and gone all the way to the floor, you wouldn't need
  426. a below texture.  However, the floor of the column is
  427. "higher" than the "adjacent" sector (which is the sector you
  428. are standing in).  DOOM needs to know what to draw under the
  429. floor.
  430.  
  431. TRIGGERS
  432. --------
  433.  
  434. I'm going to explain triggers first (before the "Control"
  435. field).  This is because I've played around with triggers
  436. more than the "Control" field!
  437.  
  438. First off, to get a sector "tied in" to a line, set the
  439. "Trigger" field for the linedef and the sector to the same
  440. value.  Once a line and sector are tied together, you can
  441. define what will happen to the sector when the line is
  442. crossed (usually - some things require buttons).
  443.  
  444. The "Flags" field of a line will determine what will happen
  445. in the "tied in" sector.  Here's some values to play with:
  446.  
  447.  46 - Wall must be "shot" to open
  448.  35 - Set the light level to 0 in the sector (panic time!)
  449.  13 - Set the light level to 255
  450.   9 - Bring sector to level of adjacent sector (like pushing
  451. the button to lower the platform with the chain saw on
  452. Episode 1, Level 2)
  453.  21 - Same as 9, but only temporary.  The sector will rise
  454. back up after a momentary delay.
  455.  77 - Start a crushing ceiling
  456.  74 - Stop a crushing ceiling
  457.  88 - Trigger a platform to lower temporarily.  You get a
  458. pause of a second or two to step on the platform, then it
  459. will raise again.
  460.  87 - Seems to start a platform on an automatic up and down
  461. motion
  462.  22 - Raise the sector to the level of the adjacent sector
  463. and make the two sectors have the same floor texture.  This
  464. can be used to cause a sector in a pool of ooze to raise up
  465. and form a walkway.
  466.  37 - This is the opposite of 22.  It causes the sector to
  467. lower to the sector of the adjacent sector and take on the
  468. floor texture of that other sector.  This has the effect of
  469. a walkway lowering and disappearing.
  470.  90 - Temporarily open a door when this line is crossed.
  471.   2 - Make a door opening sound and raise the sector.
  472. 103 - Seems to basically open a door when a the wall this
  473. trigger is on is pushed.
  474.  97 - Teleport!  This *requires* a teleport destination
  475. object to be in the sector this trigger is tied to.  You
  476. will teleport into the sector that is "tied in" to the
  477. linedef.  If you have a 97 trigger set up, DOOM will look
  478. for the sector the line is tied to.  If there is no teleport
  479. destination object in that sector, the teleport will not
  480. work (nothing will happen).
  481.  
  482. Many of these have been verified to work, but some need a
  483. little "tweaking" (i.e. the "Control" field must be set to a
  484. certain value also - see below).
  485.  
  486. The following "Flags" value have meaning, but are not tied
  487. to a "trigger".
  488.  
  489.  11 - End the level (go to next level)
  490.  51 - End the level (go to secret level)
  491.  48 - Texture is "animated" (like the pedestal with green
  492. armor at the beginning of Episode 1, Level 1)
  493.  
  494. CONTROL
  495. -------
  496.  
  497. I'm still working on this field.  A few values for this
  498. field must be used with a certain "flags" value.  These are:
  499.  
  500. Control 36/Flags 1 - This seems to be your basic door
  501. (open/pause/close).
  502. Control 4/Flag 1 - This is also a door, but it stays open
  503. permanently.
  504.  
  505. When setting up some of the "Triggers", the "Control" field
  506. can be set to help the "visual" aspect of the effect.
  507. Example:  If you have a trigger of 2 (make a door opening
  508. sound and raise the sector), you will probably want to set
  509. the "Control" field to 4.  Here's why:
  510.  
  511. Imagine a ceiling that will come down when a line is crossed
  512. (that's easy to do with Flags value 77).  This will cause
  513. the ceiling to move down, thus an "above" texture will need
  514. to be defined.  If the control field is not 4, the "above"
  515. texture is just pasted on the sidedef as the ceiling comes
  516. down.  Imagine the "above" texture being the numbers 1-5
  517. listed vertically - here's the effect:
  518.  
  519. |   1   |  |   1   |  |   1   |  |   1   |  |   1   |
  520. +-------+  |   2   |  |   2   |  |   2   |  |   2   |
  521.            +-------+  |   3   |  |   3   |  |   3   |
  522.                       +-------+  |   4   |  |   4   |
  523.                                  +-------+  |   5   |
  524.                                             +-------+
  525.  
  526. It looks "funny".  The wall doesn't actually look like it's
  527. "moving" up and down.  If you set the control field to 4,
  528. the effect will be like this:
  529.  
  530. |   5   |  |   4   |  |   3   |  |   2   |  |   1   |
  531. +-------+  |   5   |  |   4   |  |   3   |  |   2   |
  532.            +-------+  |   5   |  |   4   |  |   3   |
  533.                       +-------+  |   5   |  |   4   |
  534.                                  +-------+  |   5   |
  535.                                             +-------+
  536.  
  537. See the difference?  The five is always at the bottom of the
  538. wall.  The "above" texture "moves" with the wall.  This
  539. should be used in any of the triggers than cause a sector to
  540. raise or lower.
  541.  
  542.  
  543. THE END?
  544. --------
  545.  
  546. Ok, now I need to know what you think.  I need all feedback
  547. - good/bad/wants/needs.  Please leave feedback to me on:
  548.  
  549.      Software Creations: (508) 368-7036
  550.               User name: Patrick Steele
  551.      
  552.      Internet: patrick.steele@swcbbs.com
  553.      
  554.      I also have an America On-Line account (psteel@aol.com)
  555.      - but, I've been having a real hard time getting on to
  556.      AOL, so you may have better luck with the above
  557.      Internet address)
  558.  
  559. COMING UP
  560. ---------
  561.  
  562. You can preview the floor/ceiling textures but not the wall
  563. textures.  The floor/ceiling are simple 64x64 pixel squares,
  564. which makes it easy.  The wall textures are composed of
  565. "parts" which are put together to form one wall.  Some walls
  566. are only one part, but others can be as many as 10 parts!
  567. It's really a speed issue.  I have the code to pull the
  568. parts out of the WAD file and then assemble them into a wall
  569. based on the texture information - it's just not as fast as
  570. I'd like.  To help you pick a wall texture, I've included a
  571. utility called "WALLS".  To run it, type:
  572.  
  573.      WALLS [WAD file] [TEXTURE1 or TEXTURE2]
  574.  
  575. This will display all of the wall textures along with their
  576. names.  There's two texture structures in the WAD file,
  577. TEXTURE1 and TEXTURE2.  To display the texture names from
  578. the first one, enter:
  579.  
  580.      WALLS DOOM.WAD TEXTURE1
  581.  
  582. Consequently, use TEXTURE2 to view the other textures.
  583.  
  584. I still plan on setting the mouse to a sort of "bulls-eye"
  585. to make object/vertex selection easier.
  586.  
  587. I'm going to change the export to export the object
  588. placement data for an entire episode (not just on level as
  589. it is now).  I also need to add exporting of the linedef,
  590. sidedef and sector data that is changed.  This may, however,
  591. result in going back to a single export file per level
  592. (because of disk space).
  593.  
  594. I'd like to be able to add objects to a level.  This is
  595. rather easy process in memory, but again, when it comes to
  596. disk space, I'll need to recreate the entire .wad file!
  597. (Got a spare 10megs for the new wad file!?).  As for
  598. deleting objects, just move them off the map.
  599.  
  600. I need to add a confirmation if you attempt to leave the
  601. program without writing your changes.
  602.  
  603.