______   _____   _____  __    ___   DMPSMU   ___    __   ___   ______    ____ 
| __  \ |  _  | |  _  | | \  /  | PostScript |  \  / |  / _ \  | ___ \  /  __|
| | \ | | | | | | | | | || \/ . | %%  %%  !! | . \/ || / /_\ \ | |_/ / {  {_
| | / | | \_/ | | \_/ | ||\  /| | %% %    !! | |\  /|| |  _  | |  __/   \__ \
| |/ /   \   /   \   /  || \/ | |   % %%  !! | | \/ || | | | | | |     __  \ \
| ' /     \_/     \_/   \|    | | %%  %%  !! | |    |/ \_| |_/ \_|     \ \_/ /
|__/                          \_|  Utility.  |_/                        \___/
                                     v2.0
                     Frans P. de Vries (fpv@xymph.iaf.nl)
                               October 31, 1994


This is DMPSMU, the DOOM PostScript Maps Utility package. It provides DMPSMU,
an interactive utility to generate PostScript maps of levels in DOOM / DOOM ][,
the 3D action games by id Software, and DMPSMAP, a command-line based sidekick.
They offer everything you ever wanted from a DOOM map generator, and more!
The following features are presented:

  * detailed control over layout and appearance of the page(s):
    Supports European/American paper sizes, Portrait/Landscape orientation,
    printing of a border, the level name (possibly user defined) and a legend
    box, and auto scaling depending on the size and orientation of the map
    versus the paper size as well as the map's shape versus the presence of
    level name and/or legend box.

  * multi-page capability, printing on 2 or 4 normal pages:
    Creates one PostScript file in A4/A3/A2 or Letter/Tabloid/double_Tabloid
    size, from which individual A4/Letter size pages can be printed using
    shell script utilities.

  * detailed control over which Things will be printed:
    Distinguishes between starting points, teleport exits, small bonuses,
    weapons, enhancements, enemies, barrels and decorations, as well as
    their multi-player and difficulty-setting properties.

  * fading LineDefs that are secret or part of a secret Sector:
    Prints grey lines for secret LineDefs or LineDefs belonging to a secret
    Sector. For really seeing where the secrets are, the following feature
    is even better though.

  * shading secret Sector areas, but not their inner Sectors:
    Prints grey areas for secret Sectors but excludes any inner Sectors like
    massive pillars. Truly visualizes where you must have been to get a 100%
    Secret score.

  * linking teleporters and their exits by faint lines:
    Shows where you're teleported by linking the midpoint of a teleporting
    LineDef to the corresponding teleport exit. Now you never have to feel
    tele-lost again!

  * support for DOOM ][ WAD files:
    Recognizes the new level numbering, level names, things, monsters and
    monster-only teleporters.

You have extensive control over which features are used when printing your
maps by setting and clearing one or more of 16 print flags, boosting a
staggering 48K (no, not 64K ;) possibilities in outputting your maps!  In
practice you will need to use only a few flags though, as most flags are set
to defaults which you'll like to use all the time.

In addition, since the interactive utility DMPSMU is derived from DEU, the
Doom Editor Utility, and retains from this tool all functions that have a
read-only effect on the DOOM WAD files, it offers examination but not
modification of these files under Unix and has a new function to display a
level's vital statistics.

--
Frans P. de Vries (FPV) | Snail: de Wilmskamp 83, 7552 GW Hengelo, Netherlands
Email: fpv@xymph.iaf.nl | Voice: +31 (74) 916 034 | DOOM][+GUS1M == ImMeRsIoN!



INSTALL
=======

Installation of the package is straight-forward. Unzip the package (which
you have probably done already to read this file ;)  preferably recursively
(default in Info-UNZIP, requires '-d' option to PKUNZIP). Go into the source
directory and check the Makefile for the C compiler and its flag and include
definitions. Set CC to your ANSI C compiler, CFLAGS & LDFLAGS as desired and
if necessary, INCLUDES to your directory with ANSI C header files. If you're
on a big endian system, leave DEFINES as is, otherwise select the empty one.
Then type 'make'.

Find a way to copy your DOOM{1,2}.WAD file to your Unix system and copy the
shell scripts 'all*.sh' and 'dmps*.sh' as well as the just 'made' executables
into the same directory for easy access to the WAD file. And presto, you're
all set to _truly_ paper the wall with DOOM and DOOM ][ PostScript Maps! :-)


RANDOM NOTES
============

The following DOOM levels are best printed in Portrait:
  E1M8, E2M2, E2M6, E2M8, E3M1, E3M2, E3M6, E3M7, E3M8, E3M9
The remaining DOOM levels are best printed in Landscape:
  E1M1, E1M2, E1M3, E1M4, E1M5, E1M6, E1M7, E1M9,
  E2M1, E2M3, E2M4, E2M5, E2M7, E2M9, E3M3, E3M4, E3M5
The script 'allmaps.sh' prints the DOOM maps accordingly.

The following DOOM ][ levels are best printed in Portrait:
  MAP01, MAP02, MAP10, MAP12, MAP13, MAP15, MAP16, MAP17, MAP19,
  MAP20, MAP23, MAP25, MAP27, MAP28, MAP30, MAP32
The remaining DOOM ][ levels are best printed in Landscape:
  MAP03, MAP04, MAP05, MAP06, MAP07, MAP08, MAP09, MAP11, MAP14,
  MAP18, MAP21, MAP22, MAP24, MAP26, MAP29, MAP31
The script 'allmaps2.sh' prints the DOOM ][ maps accordingly.

A few minor flaws in the maps of DOOM v1.2/v1.666 show up on the maps:
E2M1: has a stray teleport exit Thing in sector 54 in the north-west, at
      the end of the narrow corridor.
E2M2: has no 'impassible' bits set on the LineDefs surrounding sector 32 in
      the south-west, around the secret plasma gun.
E3M3: has no 'impassible' bit set on the northern LineDef of sector 165 in
      the north-east, north of the pit with the two demons.

Another few minor flaws in the maps of DOOM ][ v1.666 were also revealed:
MAP03: has a stray teleport exit Thing in sector 1 in front of the secret area.
MAP06: has a stray teleport exit Thing in sector 120 up on the ledge in the
       south-east corner of the 'crusher hall' (this sector is actually tagged
       the same as the lower numbered sector 72 to which teleporting happens).
MAP11: has a stray teleport exit Thing in sector 119 before the red door.
MAP12: has LineDef 113 before the alcove at the end of the "falling" passage
       after the green armor marked as teleporting to a sector tagged 13,
       which doesn't exits; the teleport line thus does nothing.
MAP18: has no 'impassible' bits set on LineDefs 717 & 725 east and west of the
       exit door.
MAP22: has no 'impassible' bits set on LineDefs 518 & 509 north and south just
       outside the alcove west of the central room.
MAP23: has 'secret' LineDefs on the pillar in the north-west bended passage,
       while that pillar really isn't all that secret :)
MAP30: has a stray LineDef (55) in the east, visible even on the Automap.
Note : all above LineDef and Sector numbers verified with a quickly hacked
       (<2 hours;) incomplete port of DEU 5.21 GCC Linux to DOOM ][. Of course
       I had a headstart from porting DMPSMU :)

Anyone know the proper name for double_Tabloid?  Please email me.
Anyone know a more complete list of big/little endian systems? Ditto.
The same goes for ideas for new features and other improvements.
And I especially welcome a better algorithm for FindTeleExit in 'print.c'.

If you want different default settings for the print flags, then change them
in 'source/print.c' and remake.

Best results are of course produced by printing the PostScript files on a
better than 300 dpi printer <duh;>

The delay since finishing the coding/testing/documenting in August was due to
the need for setting up a Linux/DOS box and Internet access at home first,
and then to add DOOM ][ support and other new features. Sorry to keep you all
deprived of DMPSMU for so long ;-)


BUGS
====

-   there still are some teleport mislinkings in DOOM ][ levels MAP13 & MAP16.
    (see the remark about the algorithm above)


TODO
====

-   port back to PC/DJGPP-GO32 and add DOS-runnable executable for DMPSMAP.


CREDITS
=======

My thanks go to the following people for their work:

-   the folks at id Software for creating such a fabulous game!

-   Brendon J. Wyber and Raphal Quinet (and everyone working with them)
    for creating the DEU editor and Per Allansson and Per Kofod for porting
    it to a more sane C compiler ;)
    And: if they hadn't released the source with it, this utility wouldn't
    exist (or at least not in the same form :-)

-   Matt Fell for the indispensable DOOM Specs (distributed by Hank Leukart),
    especially for the v1.666 preview!

-   James Bonfield for showing (in his early v1.1 hack at this PostScript
    thingy) how to solve the big/little endian problem.


RESTRICTIONS
============

    The source in the DMPSMU package should not be used to create a utility
    that can modify the DOOM WAD file; you're better off with DEU v5.21 GCC
    anyway. It is illegal to use the source in this package to modify the
    shareware version of DOOM.

    If you derive another utility from this package, name it something else
    and give some credit to the original author(s).

    If you distribute the DMPSMU package, please distribute the original ZIP
    file unmodified and under the same name.


TRADEMARKS
==========

    DOOM and DOOM ][ are trademarks of id Software Incorporated.
    PostScript is a trademark of Adobe Systems Incorporated.

    DEU is copyrighted by Brendon J. Wyber and Raphal Quinet.


COPYLEFT
========

    DooM PostScript Maps Utility (DMPSMU & DMPSMAP)
    Copyright (C) 1994  Frans P. de Vries, Hengelo, The Netherlands

    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.

    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.

    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.

