                DMapEdit v4.0 - a doom map editor!  


Section  Title

[1]   Legal stuff
[2]   About DMapEdit
[3]   New stuff since v3.01
[4]   New stuff since v3.0
[5]   New stuff since v2.1
[6]   New stuff since v2.0
[7]   New stuff since v1.1
[8]   Future expansion
[9]   Introduction
[10]  How do I play a map I made?
[11]  Keyboard commands
[12]  Pop-up windows
[13]  Thing display filter
[14]  Thing editing
[15]  Line editing
[16]  Sector editing
[17]  Marking
[18]  Making maps from scatch
[19]  Misc. notes
[20]  Alternate video modes
[21]  Thanks

Note: if you are viewing this with a decent text file viewer, then you 
can get to the section you are interested in using it's "search for" 
command.  All sections will start with it's number surrounded by []'s, 
as shown above, so search by that.

---------------
[1] Legal stuff
---------------

DMapEdit is my trademark
Doom is a trademark of id Software Inc.
UniVesa - Universal VESA TSR is copyright (C) 1993 Kendall Bennett.
Ms-windows is a trademark of Microsoft

Copyright (C) 1994 Jason Hoffoss.  All rights reserved.

<p>This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.  Since I am not a lawyer myself, I do not 
know exactly what is allowed and what isn't.  Therefore, in addition to 
GNU General Public License (refered to as GPL from this point on in this 
document), the following restrictions also apply.  In the event that I 
am not allowed to enforce further restrictions on my product under the 
GPL, this program is not under the terms of the GPL.  Should any legal
events occur requiring a determination be made on weather or not
DMapEdit falls under the terms of the GPL, it can be determined at that
time.

So, here are the further restrictions.  You may not sell this program 
for more than $5, if you decide to do so at all.  This is only if you 
sell it as a lone product.  If you sell it as part of a package (more 
than one program), this does not apply, and you may set whatever price 
you deem appropriate for the package.  In either case, this is still my 
program, and you may not modify it, claim ownership or authorship of it, 
etc.  You may modify and/or create other programs based on DMapEdit,
however they must follow the restriction listed within the source code.
Each source file that is part of the DMapEdit program has a header that
explains the restrictions on it.

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.  Even if DMapEdit doesn't 
in fact fall under the GPL, there is still to warranty on DMapEdit.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

id Software's "data utility license":

   "DOOM(tm) is a trademark of id Software, Inc.  The Doom(tm) characters 
   and the id Software logo are trademarks of id Software, Inc.  Doom(tm) 
   Copyright(c) 1993.  id Software, Inc.  All rights reserved.  This 
   utility product is not a product of id Software, Inc. and has not been 
   approved by id Software, Inc.  id Software will not provide technical 
   support for this product.  The purchaser of this utility product may
   not distribute for money or other consideration any software data
   created and/or modified by the use of this utility product."

This Editor is not a product of id Software and id Software cannot and
will not provide support it, nor for maps created with it, nor for DOOM
itself if you modify the DOOM.WAD or DOOM2.WAD (IWAD) files.  Same is 
true for the HERETIC.WAD and HEXEN.WAD files.

If any lawyer types happen to notice any 'holes' in this section,
please feel free to let me know about it.  As I said, I am not a
lawyer, and so really don't know much about lawyery things. :)

------------------
[2] About DMapEdit
------------------

Welcome to DMapEdit.  DMapEdit is a true, full-featured map editor.  It 
allows full editing of original and add-on doom maps, and creation of 
new maps from scratch.

My philosophy in writting DMapEdit is to create a map editor that is 
BOTH very powerful and easy to use.  Many people seem to beleive that 
you can't have both, and that one cancels out the other.  I, however, 
beleive that it can be done, and DMapEdit is my proof of this.  It is a 
little harder to accomplish such a programming feat, but far from 
impossible.  It can do almost anything any other editor can, and usually 
easier.  If it can't, it's probably something that has little value in 
map making anyway.  Basically, you have full control over everything of 
value, while the computer does everything else for you, allowing maps to 
be built more quickly, easily, and reliably.  If DMapEdit doesn't do 
something that you want it to, and have an idea on how it should be 
done, ideas are always welcome (email prefered).

DMapEdit is a shareware product.  Though it is no longer crippled in any 
way, you are required to register this product if you decide to use it.  
You may evaluate it for a period of 15 days, after which you must decide 
if you wish to register, or delete it from your system.  Registeration 
is only $10, which should present no problem for anyone.  (If you can 
afford to use a computer, $10 shouldn't be outside your budget!)  To 
register this program, simply send me a $10 check, money order or whatever.

My address is:

	Jason Hoffoss
	10321 110th st. N.
	Stillwater, MN  55082

When I receive your order, I will include your name to my list of 
registered users.  You only ever need to register once, as this will 
last for the life of this program.

When later versions become available, I will distribute them electronically
through the Internet and Bulletin Board systems.  If you can't get it
through these methods, or don't want to wait for it to show up on your
BBS's, you can send me more than $10, and I will send you upgrades by postal
mail when they become available.  Each upgrade I send will cost $2.50, so 
$15 gets your 2 upgrades, $20 gets you 4, and $25 gets you 6, etc..  If you
want me to send it by some special method (Express Overnight or whatever),
then make sure you send me enough money to cover such mailing methods, or
else it goes by postal mail (about a dollar goes to mailing by this 
method).  I have bubble-lined mailing envelopes I use, by the way, so you
don't need to send me an envelope to use or anything.

And hey, send me a letter if you want.  Tell me you love/hate this editor,
or whatever.  I don't have unlimited ideas, and many improvements and 
idea for DMapEdit come from the users.  Tell me how to make it better 
for you!  E-Mail can be send to me on this BBS:

	Erebus BBS  (612) 439-7808

or on internet by account is hoffo002@gold.tc.umn.edu for anyone wishing
to leave me email there.  I read my internet email daily, while I don't
call BBS's much anymore.  Why bother when you have internet?

-------------------------
[3] New stuff since v3.01
-------------------------

* Whole new interface!  Menus, toolbar, info boxes!  Better than windows 
   itself! (only my opinion, of course)  And a lot more colorful too.  
   Dunno about Win95 yet, since I still haven't even seen it. :)
   If you are going to spend hours building maps, shouldn't it be 
   plesant to look at?

* Better docs!  It talk in detail not only how to use DMapEdit, but how 
   to go about making maps, what rules need to be followed, how doors, 
   lift, etc work, you name it.  And because it is split up into several 
   files, the info you are looking for is generally easier to find.  
   There's even a DMapEdit FAQ.

* Copy and paste!  Duplicate whole groups of Things, Lines, etc. and put 
   copies elsewhere on your map.

* Template support!  Mark a group of objects, copy them, and save to a 
   template file to use later in other pwads.  Grab template files from 
   friends and build a prefabricated structures library.  Distribute whole 
   libraries for others to use.  You can use templates to snag an area 
   from another pwad and put it into one of yours too.  Templates are 
   the future of doom map editing, and will make map creating a snap.

* Map scrollable with the mouse.  Bring the cursor near the edge of the 
   screen, and it changes to an arrow.  Press the left mouse button to 
   scroll a single step, or the right mouse button to scroll continuously.
   Also, holding shift, pressing a mouse button and dragging will drag 
   the map viewing area.  Nice for positioning it exactly where you want 
   it.

* Several preferences selectable from the preferences menu.  Things like 
   zoom on cursor position, grid size follows roundoff value, etc.

* File picklist system, much like most DOS programs use.  See all the 
   PWADs you have in your directory and click on the one you want to 
   load.  You can even use the 'del' key to remove PWADs you want to delete.

* One of the best map error checking systems of any editor.  If your map
  has an error, chances are DMapEdit will find it!  The only thing I
  know of that it won't find is HOM.  This is something that is almost
  impossible to detect.

* Node generator has been improved.  It is more reliable now, and 
   faster.  It is not based on any other node builder (DEU, BSP, etc), but 
   written from scratch by yours truely.  Ideas from the Renegade Node 
   builder have been used to improve mine, however.

* Linetype picklist added.  No need to try and remember linetype 
   numbers, or look up linetypes in a list your printed out or anything.

* Map rating system for all difficulty settings.  Nice for telling how 
   hard a map is likely to be, and to see if difficulty settings are even 
   implimented in a map.

* Two bugs fixed: Line color not updated after editing it, and the 
   cancel button not reachable in 1024x768 graphics mode.

------------------------
[4] New stuff since v3.0
------------------------

* Combined the shareware module (unreg.c) and registered module (reg.c)
   into a single module, which is now used.  It's basically just the
   registered version now, except for messages and such.

* Fixed a minor bug in the texture picklist.  No, it's not the major bug
   that some people are talking about.  I haven't found that one yet, and
   may not anytime in the near future.  This one's hiding really well in
   there.  I don't know if it's every really in the texture picklist
   routines, or is somewhere else, and the picklist just shows the symptoms
   of it.  If anyone out there can debug, and has this problem on their
   system (it doesn't show up on my system normally) and are interested in
   trying to find it, THANX!  Your name will go to the front of the 'thanks
   you' list at the end of this file.

* Fixed the group line edit bugs.  Now, when you change something, it will
   actually be changed!

* Fixed a bug in saving maps.  Some people said that texture names were
   getting screwed up after a blockmap generation.  Well, close.  Actually
   it happened when you saved a map with the size of the sidedef memory
   block >64k.  Fixed now, though.

* Included is a very helpful file called 'concepts.doc', which I wrote to
   help anyone out there who doesn't have god-like knowledge of the internal
   workings of Doom by reading and fully understanding the unofficial Doom
   specs.  It's an excellent file for programmers and hackers, but it's not
   really written for map designers.  So, 'concepts.doc' will give you all
   the basic concepts and such you need to know instead.  Let me know if
   you have any ideas/complains/feedback on this file.  I'm more of a
   programmer than a docs writter..

------------------------
[5] New stuff since v2.1
------------------------

* Memory usage has been drastically altered.  You should be able to use 
   it with less memory now, and with larger files, as long as you have 
   memory for it all.  The old limits I had for everything are now 
   gone.  It still uses base memory, and not EMS or XMS.  Until I know 
   how to use these memories, it will stay this way.  If your map gets 
   too big to for DMapEdit, it's probably too to play with Doom without 
   it being slow on the average pc.  Split it into a few missions instead!

* Texture picklists!  No need to try and remember/figure out all the 
   wall texture names.  If you become familiar with the names, though, 
   and know just what texture you want, you can still just type it in,  
   (for power users like myself), by clicking with the right mouse
   button instead.

* Zooming, roundoff, and the grid has been changed around.  Zooming has 
   "half-steps" now.  The grid now displays to the scale of the roundoff 
   level, unless the space would fall below 7 pixils between lines.  In 
   this case, every other line/fourth line, eighth/etc is drawn instead.

* Made a new hilight method, which is now the default.  If you liked the 
   old way better, though, it is still possible to use that.  Just put 
   "flash mode=old" in the INI file.  Which brings us to:

* INI file support.  You change all sorts of default settings in the 
   "dmapedit.ini" file.  Take a look at it.  A list of all INI file 
   variables and values is discussed in "dme_ini.doc".

* There is now a crosshair that shows where adding things, etc will be
   put.  With roundoff values greater than 1, this position can be 
   different from the mouse hotspot.  ("roundoff" is know and "snap-to 
   grid" in some other editors)  If it gets on your nerves or something, 
   you can turn it off with the 'x' key.

* Node generator has been improved to eliminate the "sliver" effect it 
   used to produce.  The "sliver" effect is a very narrow vertical line 
   that you can see through while playing doom.  The speed hasn't been 
   changed from v2.1.  This will be worked on for the next version, 
   hopefully.

* Loading/saving to a working datafile is no longer supported.  Such 
   files are obsolete, and PWADs should be used instead.  The new 
   load/save routines have been greatly improved as well. "L" and "S" 
   are now used to load/save to/from a PWAD, which is first prompts 
   your for.  "Alt-L" and "Alt-S" will also load/save to/from a PWAD, 
   but it doesn't prompt you for the name first, unless this is the 
   first time it has asked you.

* Ability to re-configure the mouse buttons.  Key to do this is <tab>.
   Then just click the function button with the whatever mouse button 
   you wish that button to be used for.

* Ability to mark objects (an object is a Thing, Vertex, Line, Sidedef, 
   or Sector).  Except for Things, all marked objects affect the marking 
   of the remaining object.  Thus, if you mark a sector, it also marks 
   all the lines touching the sector, all sidedefs facing the sector, 
   and all vertexes involved.  Once you have marked object(s), you can 
   do several things with them as a group.  See the appropriate section 
   below for more information.

* Ok and Cancel buttons have been added to the relevent windows.  The 
   <enter> key simulates the Ok button, and <esc> for Cancel also.

* Most of the edit modes have been changed around a little to be more 
   intuative and useful.

* More error checking routines have been implemented.

* Many bugs have been corrected from v2.1, including: change level bug, 
   which reported inability to open "", display filter buttons wouldn't 
   light up, "sliver" bug in node generator, creating 'donut sectors.'
   That's all I can remember offhand.

------------------------
[6] New stuff since v2.0
------------------------

* Shareware version will allow you to save maps of limited size now.  A 
   map such as E1M1 is too big.  In fact, all the original maps are too 
   big.  This has been done so that people can test it out and verify 
   that it does actually work (with the distrust of current node 
   generations lately, I needed to provide this save ability)

* Bug fixes.  Ok, so I guess I didn't get all the bugs.  I planned to, 
   but forgot to do so with everything else on my mind.  Sorry.  Got 
   them now, though.  I'm sure this time, because unlike last time, I
   fixed them before I am writting this. :)

* Ability to flip lines now, (and flip line & sidedefs).  Because of 
   dooms pickyness with a sidedef on the right side, you can do this.  I 
   really don't think it will be needed anymore, though.  DMapEdit will 
   automatically handle these problems for you, but in case I'm wrong (I 
   didn't write Doom, so I can't be sure what will and will not cause 
   problems), this options is here.

Note: Be sure to line error-check any map from other editors or previous 
      versions of DMapEdit.  Can't hurt anything, and it will fix any
      minor problems a map may have.  (such as a map causing doom to 
      hang or reboot when it loads the map, which happened to me, and 
      thus I was able to fix DMapEdit to repair them)
	       
------------------------
[7] New stuff since v1.1
------------------------

* Fix of all know bugs!  If there's still any around, then let me know, 
   since I can only fix bugs I know about, and if there still are any
   in there, I don't know about them.

* Sector edit mode has been improved.  You can add/delete sectors with
   the proper add/delete mouse buttons (or ins/del keys).  There is also 
   a sector blend/copy function now (requested by Rod McCabe, in the 
   first postal letter I have received of 2 total to date :)  For
   information about this function, see below under 'sector editing'.

* A new misc/advanced functions menu (F9 key), with several options:

  * Error checking options:  Use these to check over a new map to 
     identify any errors that might exist (and fix some of them).  If 
     you get a new PWAD from somewhere, you should error check it before
     you start messing around with it in DMapEdit.  Strange thing might
     happen if you start editing a map with errors.

  * Line Fixer:  This option will correct any errors or inconsistancies
     it detects with the lines/sidedefs.  It may change things that 
     are meant to be the way they are (the less common special effect 
     type things), so it should probably be used mainly for a major 
     overhaul, or to setup sidedefs for a new map that you have laid out 
     the lines for (easier than doing it by hand!)

  * Sector generator:  This options will reconstruct, from scratch, all 
     the sectors.  This should really only be used for a major overhaul, 
     or on a new map without any sectors yet, since any existing sector 
     information will be lost, replaced with a standard sector definition.

  * Fix sectors:  Not yet available, this will attempt to correct any 
     problems with existing sectors, and create new sectors in any 
     empty polygons.  The result will be pretty much the same as with 
     the sector generator, except the current sector info will not be 
     trashed, but incorperated.

  * Node generator:  Before a new or line changed map can be played, a 
     node structure must be generated.  That is what this option will 
     do.  I have fixed all the bugs in it, and tested it out on several 
     maps, and it has worked fine on them all.

  * Blockmap generator: When you complete a new map, or finish changing
     an existing map around, the last two steps are to create a Node BSP 
     tree, and a blockmap, before you can play it.  The blockmap 
     generator works flawlessly, but the node generator..you know..

* Working PWAD/datafile name and editing mode is now displayed at the 
   bottom of the screen.

* Picklist now is scrollable in 2 directions.  The old selection is also 
   in the middle of the displayed list now, instead of the top. (for 
   example, the current thing is an ammo clip, and you select picklist, 
   then the ammo clip will be in the center of the displayed list).

--------------------
[8] Future expansion
--------------------

What can you expect from future versions of DMapEdit?

I plan to add template support, so you can add standardized wall 
formations (doors, columns, staircase, etc.) easily, without having to 
make them all yourself.  Since DoomCad beat me to this idea, I'll 
support templates created with it, and make DMapEdit's templates usable 
by DoomCad.  This isn't really a problem, since his method of doing it
turns out to be very close to how I had planned to go about it. (I think 
this 'TWAD' idea was a little overboard, though)

I plan to add help information to explain whatever you are dealing with 
at any perticular time.  Thus, if you come across something you don't 
understand, you can request help about it.

I plan to add 2 new editing modes: sidedef and all.  These are really 
only needed for doing marking and marking related functions.  All mode 
is there to allow you to mark all objects within a stretch-box, including
Things, Vertexes, Lines, and Sectors.  Is another mode really needed for
this?  I've been looking for another way around it, but I haven't come up
with anything yet.  Ideas from you the user are most welcome.

*I plan to add a function to analyze a map and report a difficulty rating 
for it in each difficult level and in multiplayer mode.  So, please send 
me your ideas on how you think I should rate all the Things (i.e. 
weighted values) since I really don't have any ideas for this yet.  (any 
authors for other editors wanting to also inplement this idea, let me 
know and we'll work on it together.)

And if anyone has any other great ideas for anything to put in, go ahead
and send me your ideas.  Just make sure you explain it good.  Try to be 
specific.  Sometimes I just can't figure out what you mean when you 
explain something to me, so try and be specific.

Interested in beta testing the next version of DMapEdit?  There's only one
requirement;  You must be a registered user.  So, there's a good reason 
to register.  If you are already registered and are interested in a 
beta, just let me know.  Of course, it will be a little while after this 
version has been out before I will have the next version beta ready.

----------------
[9] Introduction
----------------

So, what all can you do with this editor?  Well, you can edit Things, 
Vertexes, Lines and Sectors, etc, in order to create a new and unique 
map that can then be played in Doom.  If you are lost already, you 
should go and read the 'concepts.txt' file before reading any further in 
this file, and then come back here.  You can also generate the internal
structures that doom needs to operate (Nodes, Sub Sectors, Segments and
a Blockmap), which will all need to be made (or remade) in order to play
any new or modified map with Doom.  You can edit (or just examine)
existing maps (from doom, or from PWADs created by other people).  Be
sure to follow the pwad's author's copyrights for such maps. (Doom
doesn't want any modified maps made from their original doom levels to
be distributed.  In fact, they don't want their unmodified maps to be
distributed either, except for with the shareware doom package.)

Map making is rather a complex task.  There is a lot that goes into 
making a map, and being able to just 'slap a few lines down, make the 
nodes and run' really isn't possible.  All any editor really does is 
make the task of creating maps easier, by doing a lot of the stuff for 
you.  This can cut down on what the user is required to know, but there 
will still be much that he/she will still need to know.  Furthermore, 
the more you know about making maps, the better your maps will tend to 
be.  Therefore, I strongly recommend reading the file 'concepts.txt', 
included with this package.  It will give you an understanding of all 
the basic concepts of map building.  Even if you think you already know 
it all, I still recommend you read it.  You might just find something 
that you didn't know yet.  My goal in writting DMapEdit is to make map
generation as simple as possible, while still having the ability to do
everything you could possible want to do.  Having the ability to do
exactly what you want is the main goal.  If you think you can't do
something, you probably can, but just don't know exactly how to go about
it.  In such a case, you can read through 'dmapedit.faq' to see if it's 
covered there.  If not, you can read through this file and see if you 
can find any info about it.  If that still doesn't help, you can contact 
me and I will help you.  Please check this file first, though.  If it's
not in here, and you need to contact me, I will add it to this file
(correcting the oversite).  At present, I feel that this editor is easier
to use than any other out there, while still being nearly equally powerful,
and becoming more powerful with every release.  If you disagree, and have
ideas on how I can make it better (or can just point out what some other
editor does better), please let me know.
 
------------------------------------------------------------------------

Ok, running this program is pretty easy.  All the files that DMapEdit 
comes with should all be in the same place.  You can run it without it 
being in the current directory, if you wish.  If Doom.wad or Doom1.wad
isn't in the current directory, you will need to tell DMapEdit where it 
can find this file.  This is done by giving the path to it with the -i 
switch, like so: 

dmapedit -i/doom/doom.wad

  or

c:\wherever\it\is\dmapedit -ic:\and\doom\is\here\

or by adding a line to the INI file like:

doom path=c:/doom

Note that either '/' or '\' can be used.  Also note that there is no 
space between the '-i' and the path itself or the '='.  This path that
you give should either point to the directory the IWAD can be found (an
IWAD is what the file 'doom.wad' is) or point to the IWAD itself.

Dmapedit defaults to VESA SVGA 640x480x256 colors.  If you don't have a 
VESA card but you do have SVGA, run univesa to create a VESA interface 
for your card.  If you don't even have SVGA, why not?  A 386+ without a 
SVGA card?  If you want to use a different graphics interface, or
resolution, read about the -v switch at the end of this file.

Once the program is up and running, you should see a map of episode 1, 
mission 1.  The program defaults to thing edit mode at startup.  At this 
point, you can move things around by pressing the left mouse button on a 
thing and dragging it to it's new location.  Pressing the left mouse 
button while not on a thing will add a new thing (using the defaults) 
and placing it when you releast the button.  The right mouse button is 
used to delete a thing.  The middle button (if you have one) is used to 
change the information about a thing, or the default thing if you are 
not on a thing at the time you press the button.  This is the standard 
mouse interface I use for this program, and editing vertexes and lines 
works the same way.

--------------------------------
[10] How do I play a map I made?
--------------------------------

Once you have made a map, you must save it to a PWAD file.  Then you 
start doom from dos like so:

doom -file pwad1.wad [pwad2.wad] [pwad3.wad] [...]

In this example, you would have saved your PWAD with the name 'pwad1'.  
If you used the name 'new', you would type:

doom -file new.wad

Another thing to note about the first example, you can use more than one 
PWAD file at once.  This would be done for files that have different 
information in them.  If they both use the same information (like both 
having E1M1 in them), you probably shouldn't do it this way, and really 
don't have any reason to.  You would use this for something like pwad1 
having E1M1, pwad2 having E1M2, and pwad3 having new sound effects.  (by 
the way, files is [] are optional, if you havn't figure this out yet.  
You wouldn't actually type the '[' or ']')

----------------------
[11] Keyboard commands
----------------------

These are all the keyboard commands:

(global commands - available in all edit modes)

	 ?: display key commands

Arrow keys,
 home, end,
   page up,
 page down: These keys will scroll the map around..

      =, +: zoom in

	 -: zoom out

	 _: re-center map

     alt-q,
     alt-x,
       esc: quit and exit editor

       ins: add (same as left mouse) (see note1)

   alt-ins: sticky add (see note5)

       del: delete (same as right mouse button) (see note1)

     space: change/edit (same as middle mouse button) (see note1)

	 m: mark/unmark selected object

     alt-m: sticky mark (stretch-box marking) (see note5)

     1 - 5: change displayed vertex point size

	 0: turn off vertex point display

	 t: change displayed things icon size: big, small, off (see note2)

	 \: change displayed lines size (thickness)

	F1: select thing edit mode

	F2: select vertex edit mode

	F3: select line edit mode

	F4: select sector edit mode

	F9: misc/advanced options (build nodes, error check, etc)

       tab: re-configure the mouse buttons

	 s: save map to a PWAD, promting for name first

	 l: load map from a PWAD, promting for name first (see note3)

     alt-s: save map to a PWAD

     alt-l: load map from a PWAD (see note3)

     alt-w: write map to original Doom WAD file (IWAD)

     alt-r: reload map from original Doom WAD file (IWAD)

	 c: change episode and mission

	 f: change thing display filter (see next section)

	 r: change roundoff level: 1, 8, 16 (default), 32. (see note4)

	 g: change grid display intensity level

      ., >: increase roundoff level (grid drawn to roundoff level)

      ,, <: decrease roundoff level

	 n: start a new map from scratch (erase currently displayed map)

	 z: show current statistics (totals, and memory usage)


Note1: These are the default mouse buttons.  The mouse buttons can be 
       re-configured with the <tab> key.

Note2: Thing icons can't be turned off while in thing edit mode.  There 
       is also a setting that shows circles.  This represents the size 
       of the object and is useful to see if monsters overlap, are stuck 
       in walls, etc.

Note3: It will try to load a map from the current PWAD.  If that map 
       doesn't exist in that PWAD, however, it will load the map from the
       IWAD.

Note4: This is used to round off all map coordinates, so things can be 
       placed with a more symetrical feel.  This is also called "snap-to 
       Grid" in some other editors.  A value of 1 will not produce any
		 roundoff.  The crosshair shows the rounded-off position.  The
       grid display intersections also show the roundoff positions, 
       unless the spacing drops below 8 between the lines, in which case 
       every other line/4th line/8th line/etc will be displayed to meet 
       this condition.  This is to not clutter up the screen.

Note5: These keys simulate the effect of holding down the equivelant 
       mouse button while moving the mouse around (called dragging).  It 
       will remain "stuck" until another key is pressed, or a mouse button.


(Thing edit mode)
 ----- ---- ----

     enter: Copy selected Thing to default Thing


(Line edit mode)
 ---- ---- ----

	 f: flip line (swap left and right sides) (see note6)

     alt-f: flip line and sidedefs (see note6)


Note6: In actuality, the sidedefs are swapped too, so that they seem to 
       be where they were before.  In other words, since the left side 
       of the line is now the right side, (and the sidedef hasn't been 
       swapped yet) it will look like, from the users perspective, that 
       the sidedef switched sides, though it didn't really.  Thus, alt-f 
       will not swap the sidedefs, but only the vertexes it runs between.


(Inside of a window)
 ------ -- - ------

     enter: same as clicking Ok button (if there)

     alt-q,
     alt-x,
       esc: exit out of window (same as clicking Cancel button)

       tab: move mouse pointer to next button position

   page-up,
 page-down: in windows with 2-way scroll buttons, scrolls list


-------------------
[12] Pop-up windows
-------------------

Pop-up window manipulation has become a little complex, so I figured I 
should put in a section to cover it.  Pop-up windows are rectangles with 
a yellow boarder that appear with information inside it.  There are 2 
basic types.  The first doesn't have an Ok or Cancel button.  This is an 
informational window, and just gives you information.  Pressing any key 
or clicking the mouse anywhere on the screen will make it go away.  The 
second type is the interactive window (also called edit window window), 
and will have a Cancel button, and usually an Ok button.  To close this 
type of window, you must click on the Ok or Cancel button.  If an Ok 
button isn't there, making a selection from inside the window will 
automatically to an Ok operation.

The Ok button will exit the window, using the window's current 
information.  Selecting Cancel, however, will ignore anything that 
occured in the window.  Another function these buttons can be used for 
is for confirmation of some operation you selected.  In this case, you 
must select Ok to proceed.

A similar sort of button you may see is the 'big button'.  This button 
also has text inside it, but is white, and is always inside the window.  
Selecting such a button will perform the action the text describes.

Usually, edit windows will have small, circular buttons, which is the 
main form of doing any 'editing' in the window.  Just click the button 
next to what you are interested in changing.  These 'radio' buttons do 
one of 2 things: switch states ('on' or 'off' condition), or select 
item.  Buttons that select an item will never be filled in.

Inactive radio buttons will be displayed as dimmed (dark gray instead of 
white).  This doesn't always mean you can't select them, however.  Try 
clicking on it to see.  When editing a group of marked items, only the 
non-dimmed items will be changed when you select Ok.  So, this being the 
case, you need to be able to change what's dimmed and what isn't.  To do 
this, you can select the button normally, and it will activate 
automatically, or you can click on the button with the middle mouse 
button (spacebar) to toggle the active status of the button.  Only 
buttons that can logically be toggled will be allowed to be toggled.

-------------------------
[13] Thing display filter
-------------------------

Things are not always on every difficulty level.  Generally, harder 
difficulty levels tend to have more monsters running around.  The thing 
display filter is to allow you to display only what you want to display, 
such as only level 1 things.  Using this filter is a little tricky, 
however.

There are 5 different flags used by all things in doom:

	flag 1: skill level 1 & 2
	flag 2: skill level 3
	flag 3: skill level 4 & 5
	flag 4: deathmatch mode
	flag 5: deaf monster

Skill level 1 being "don't hurt me" and 5 being "Nightmare".  If a skill 
level flag is set, then this thing will appear to a player playing on 
that skill level.  If the deathmatch mode flag is set, then this thing 
will only appear when playing a deathmatch mode game.  Note that this 
flag is in addition to the skill level flag.  If you just set the 
deathmatch mode flag and leave all three skill level flags cleared, then 
the thing will never appear in any deathmatch mode game.

The deaf monster flag is only useful with monsters.  If it is set, then
monster will only "activate" (come alive) upon spoting a player or being
attacked.  If the monster isn't deaf, then it will also "activate" whenever
it hears a players weapon being used (even punching air will do it).

There are 2 switches for each of these flags in the filter.  There are a 
total of 4 possible combinations for these 2 switches.  The first switch
is used as a matching state.  The second switch is set if you want to
force the first switch to match a flag exactly.  This may be confusing, 
so I will detail the 4 possible switch combinations..

Combination 1: both switches off (O O)

With this combination, the flag is ignored and not displayed.  If all 4 
flags have this combination, nothing will be displayed.

Combination 2: first switch on, second off (* O)

This will display the thing if the flag is set.  If the flag isn't 
set, the thing may still be displayed if another flag with this 
combination is set.  This is a basic OR situation between flags.

Combination 3: first switch off, second on (O *)

For a thing to be displayed with this combination, the flag must be 
off.  If the flag is on, the thing will not be displayed, regardless of 
the other flag settings.  This is used to hide what you don't want 
displayed.

combination 4: both switches on (* *)

With this combination, similar to combination 3, the flag must be on to 
display this thing.  Unlike combination 2, a thing will not be displayed 
if the flag is off, period.  Other flags have no effect on it.

Common filter settings:

	O = off, * = on


Display level 1 & 2 things:

Skill level 1 & 2: * O
    Skill level 3: O O
    Skill level 4: O O
  Deathmatch mode: O O


Display only level 4 things, non-deathmatch mode:

Skill level 1 & 2: O O
    Skill level 3: O O
    Skill level 4: * O
  Deathmatch mode: O *


Display all things:

Skill level 1 & 2: * O
    Skill level 3: * O
    Skill level 4: * O
  Deathmatch mode: * O


Display only Deathmatch mode things:

Skill level 1 & 2: O *
    Skill level 3: O *
    Skill level 4: O *
  Deathmatch mode: * O

Display only things unique to level 4:

Skill level 1 & 2: O *
    Skill level 3: O *
    Skill level 4: * O
  Deathmatch mode: O O

Personal note: I think it would be an excellent idea for id to have made 
another flag for 'respawn'.  This way you could make certain monsters 
respawn (appearing at their original starting location), instead of 
either all monster respawn or none.  It would also avoid such things 
as a second cyber-demon appearing, which really ruins the whole idea 
behind having respawn in the first place.  You could also have different 
amounts of monsters respawn at different difficulty levels. (for 
example, 5 at ultra-violence and 15 at nightmare).  I can't beleive that 
adding this would be very hard programming-wise.  You have a bunch of 
empty flags, you have already written the respawn routines..  Wish I 
knew how to get this idea to id <sigh>.

------------------
[14] Thing editing
------------------

Editing things is very easy.  If you want to move a thing to somewhere 
else on the map, just click on it with the left mouse button, and drag 
it to it's new location while holding the button down.  To delete 
something from the map, click on it with the right mouse button.  And, 
to add a new thing to the map, click the left mouse button while the 
mouse isn't on a thing.  (it will be placed when you release the button, 
so you can drag it around too.)  You can tell if you are on a thing by a 
box around the thing.  If you see this box around it, then that is the 
thing currently selected.  Information about this currently selected 
thing is displayed at the top of the screen.

To change the currently selected thing, press the middle button (or the 
spacebar).  This will bring up all information about the thing.  To 
change any of this information, simply select the proper button.  If you 
press the middle button (or the spacebar) while a thing isn't selected, 
then you can change the default thing's information.  The default thing 
is used whenever you add a new thing to the map.  Lastly, pressing the 
Enter key will scan the selected thing's information into the default 
thing.

-----------------
[15] Line editing
-----------------

I have tried to make the line editing mode as useful and intuative as 
possible.  I have also tried to put as many abilities in this one mode 
as I could.  As a result, you shouldn't need to use vertex edit mode 
very much, if at all.  To use this mode effectively, however, you need 
to know how to use it properly.  So, here goes..

When you move the mouse cursor around the screen, it will lock onto the 
closest line, and the closest vertex, if it's not too far away.  If you 
have a line selected, you can use the spacebar (middle mouse button) to 
edit that line's characteristics, and it's sidedefs.  Also, when a line 
is selected, information about it is displayed at the top of the screen.
Sidedef info is also displayed.  Each line has 2 sidedefs (or possible 
sidedefs, anyway), a left sidedef and a right sidedef.  Whichever side 
of the line the mouse cursor is on is the sidedef that is displayed.  
When editing the selected line, a small dot will mark this sidedef as 
well.

Note: When a linedef that triggers an event is hilighted, the effected 
      sector(s) are also hilighted, using a dotted lines.

Adding a line (left mouse button):

A line is added by pressing the left mouse button at the starting point, 
and releasing the button at the ending point.  Pressing the button when a
vertex is selected (hilighted) will start the line at this vertex.  If a
vertex is not selected, a new vertex is added, and becomes the starting
point for the line.  Releasing the button when a second vertex is 
selected will make that vertex the ending point.  Otherwise, a vertex is 
added and is used for the ending point.

One last possible situation is having a line selected, but not a 
vertex.  When you press the left mouse button here, a vertex is added, 
spliting the line into two parts.

Deleting a line (right mouse button):

Simply select the line you wish to delete, and press the button.  Doing 
this will leave a gap where the line was.  If you use the vertex edit 
mode to delete a vertex, it will reroute all the line that went to that 
vertex to the closest vertex along that vertexes lines (deleting a line 
in the process).

Please note that lines may switch sides from time to time.  This is 
because Doom is very picky about having the 'important sidedef' on the 
right side.  This means that if you only have one sidedef, it must be on 
the right side, so DMapEdit will flip the line around if needed to make 
it so.  Also, if a line has two sidedefs, and only one sidedef has any 
textures, it must be on the right side.  Again, DMapEdit will make this 
so.  You don't have to worry about these details, just edit your map 
however you want to, and DMapEdit will make these changes as needed.

-------------------
[16] Sector editing
-------------------

Once you have all your lines in place, all forming closed polygon 
shapes, you need to make sectors.  Any location (polygon) a player or 
monster is allowed to be in needs to be a sector.  A sector definition 
tells doom what heights the floor and ceiling is at for the polygon, as 
well as how much light there is there.  If you are making a new map, and 
have put in all the lines, but have done nothing with the sectors yet, 
select "generate sectors" from the advanced options menu.  This will 
examine your map and automatically assign a sector to every polygon that 
needs one. (be sure your lines are set up correctly, however.  Use "fix 
lines" or "error check lines" first)  Then, you can simply edit the 
various sectors to your liking.

Sector edit mode is selected with the F4 key.  In this mode, the mouse 
will hilight whatever sector the mouse is in (if the sectors aren't 
damaged).  Information about the sector is displayed at the top of the 
screen.  The spacebar or middle mouse button will let you edit this
sector information.

Note: When you hilight a sector that is triggered with a linedef(s), the 
      linedef(s) will be hilighted too, using a dotted line.

If you want to make a new sector where there currently isn't one 
(no lines hilight), or want to fix a damaged sector (only some lines 
hilight), simply press the left mouse button (or insert key) to create a 
new sector there.  It will remove whatever sector(s) were there, if 
any.  The sector will have the characteristics of whatever sector most 
of the lines seemed to be linked to.  If it was totally empty, it will 
assume the standard sector definition.

If you want to remove a sector (making a pillar solid, for example, so a 
player can't be inside it) simply press the left mouse button (or delete 
key) while the sector is hilighted.  If a sector is damaged for some 
reason, you should remake it first (left mouse button) and then remove it.

In order for a player or monster to fit inside the sector, there must be 
a different of 7 between the floor and the ceiling.  This is the 
minimum.  A difference of 6 will make it impossable to enter the sector.
Also, a floor height difference of 3 can be climbed, but a difference of 
4 is too high a step to climb.  The player can fall down a step of any 
height.

Another option available in sector edit mode is the blend/copy 
function.  You press "B" while in sector edit mode to get the blend/copy 
setup screen.  Information from the hilighted sector is used to fill in 
information on this screen.  You can change the initial sector 
information to be used, though, on this screen.  You will also see 
adjustment factors to the right.  This is how much it will change the 
initial values by each time.  For example, having a floor height of 4, 
and an adjustment factor of +2 will make the first sector floor height 
4, the next 6, the next 8, etc..  Using an adjustment factor of zero 
will basically perform a copy operation (the initial value never 
changes).  This can be useful to set a bunch of sectors to one light 
value, or ceiling height, or whatever.  If you select the button that's 
already on, you will turn it off, so that no adjustment factor is 
selected.  When you do this, this Sector characteristic is ignored, and 
thus not changed when you blend/copy.  This can let you change only the 
floor heights, for example, and not the light or ceiling levels.  Or, 
you can simple change the ceiling to the sky texture for a group of 
sectors without changing anything else about the sectors.  As you can 
see, this can be quite handy.

Once you have the setup set properly, select the Engage button.  You 
will now be in blend mode.  The top line will display what values you 
are currently at.  To set a sector to these values, simply click on the 
sector, and the sector will be updated.  This will also adjust each 
value by it's adjustment factor, and you are now ready to update the 
next sector.  This is very useful for making stairs.  Simply click on 
each stair, in order, until you are done.  To get out of blend mode, 
simply press escape, or the right mouse button (or delete key).  To get 
back to the blend mode setup screen, press "B" again, or the middle 
mouse button (or spacebar).

------------
[17] Marking
------------

Objects can be marked to perform an operation on them as a group.  
Marking is done using the 'm' key, or clicking on an object with the 
marking mouse button.  By default, there isn't a mouse button for this, 
so you will have to reconfigure the mouse buttons with the <tab> key.  
You can also mark objects with a stretch-box by dragging with the mouse 
button, or pressing 'alt-m'.

Objects that you mark will also mark other objects that they affect.  
For example, if you mark a sector, it will also mark all the lines, 
sidedefs, and vertexes that sector uses.  Thus, you can mark objects in 
one mode, and then switch to another mode to do an operation on it, such 
as marking a sector, and then switching to line edit mode to change the 
lines of that sector.  The backspace key will unmark all objects 
currently marked.

With a group of objects selected, you can move the whole group with the 
add button.  You can delete the group (effect depends on the edit mode 
you are in) with the delete button.  After you do a delete, there will 
not be any objects marked.  And finally, you can edit the group of 
objects (vertexes can't be edited, since they have no properties).  You 
would edit the objects just as if you were editing a single object, 
except changes will be made to all of the marked objects.  To tell what 
will and won't be changed, the buttons will be normal or dimmed.  If it 
is dimmed, this property will not be changed (changing only occurs when 
you exit the edit window).  If you change something, but then decide you 
don't want to change this after all, you can toggle the button dimming 
with the middle mouse button (spacebar).

copy.

----------------------------
[18] Making maps from scatch
----------------------------

Map generation starts with putting vertexes and lines where you want 
them.  This lays the foundation for everything else.  Once all the lines 
are in place, you need to make sidedefs for these lines (unless you do 
so along the way while you are creating the lines).  The easiest way to 
do this is to select the "Fix Lines" options from the advanced options 
menu (F9).  If you already have sidedefs setup, then you should at least 
error check the lines, just to make sure it's all ok.  Once this is 
done, you need to make all the Sectors.  If you have all the sidedefs 
where you need them, you can use the "Generate Sectors" option from the 
advanced options menu.  This will put make sectors for every polygon on 
the map.  Another method you can use is to simply enter sector edit mode 
and add sectors manually to each polygon.  One advantage to this method 
is that you don't need to have the sidedefs in place.  It will create 
the sidedefs if it needs to for lines as it goes along.

At this point, you have the vertexes, lines, sidedefs, and sectors all 
created.  However, they are all most likely set to standard values 
(walls are all brown1 texture, sectors are all the same heights and 
textures, etc), so you will need to go in and set them to the values 
you want them to be at.  By the way, Things can be added at any time 
along the process of making a new map.  It's usually better to do so 
after the lines are drawn, though, so you know where to put them, but 
you are the boss.

When you have everything set the way you want it, it's time to generate 
Nodes, and a Blockmap.  Making a Blockmap is fairly quick, so you might 
want to do this first.  I also recommend you save your map before you 
generate these two structure.  In fact, I recommend you save your map 
often!  Anyway, once you have made your Blockmap and Nodes, save your 
map, and enjoy playing your new map!

Notes:

Maps must have all areas enclosed by lines, forming a polygon.  A map with
only 3 lines, for example, in an open ended box shape, isn't complete.
Keep in mind that a line doesn't have to be a wall.  Lines are required
anywhere you wish to:

	change floor or ceiling height
	change lines angle
	change wall, floor, or ceiling patterns
	change lighting
	change floor hurt-player damage

Also, every map should have a starting point for all four possible 
players.  You should also have, minimum, 4 deathmatch mode starting 
points.  And, of course, you should have an exit.

----------------
[19] Misc. notes
----------------

Changing a map's episode and mission number:

   Suppose you want to change a map from E1M1 to E2M2.  How does one do 
this?  Simple.  Just press 'C' to 'change map'.  Now, select the 
episode/mission you want it to be.  Once you do this, just click outside 
the window (or press Esc) and now your map has a new episode/mission 
value.  At this point you can save it to a PWAD or whatever.  This can 
be useful for taking several one-map PWADs and putting them all into one 
big PWAD.

--------------------------
[20] Alternate video modes
--------------------------

DMapEdit defaults to 640x480x256 colors, svga.  You can select other 
video modes if you wish, however.  640x400 is the minimum, however.  
DMapEdit will not run in resolutions lower than this.  256 colors are 
also required.  DMapEdit does not support more than 256 colors.  To make 
DMapEdit run in other video modes, use the '-v' switch.

dmapedit -vmode

Mode: This is a number, from 0 to 4.  These are what each represents:

	0: 320x200 (VGA/MCGA)  (Mode not usable with DMapEdit)
	1: 640x400
	2: 640x480 (default)
	3: 800x600
	4: 1024x768

-----------
[21] Thanks
-----------

I'd just like to say thanx to the following people:

Paul Hagstrom: For being my internet contact originally back before I 
     had an account.

James Sterrett: For the very first registration I received.

Alistair Brown: For finding that insanity-causing bug in the node 
     generator.  I'm recovering quite nicely now..

Rod McCabe: For his letter and ideas. (quite a while ago, though)

Pierre Fournier: For tracking down that intermittent bug in the picklist 
     so well for me.  I'd see it from time to time, but couldn't figure
     out how to re-create it, until Pierre came along.

DEU authors: For making their editor's source available.  I learned a 
     few tricks from it.

PWAD creators everythere: For making fun PWADs for me to play when I get 
     bored!

Registered users: For registering!  :)

Cameron Booth: Beta tester and idea suggestor.

joost schuur: Beta tester and idea suggestor.

Matt Fell: For creating the Unofficial Doom Specs, making this problem 
     even possible.

id: For creating Doom in the first place.  Great game guys. :)

