This archive contains the Doom Things Analyzer version 1.03,
plus as a bonus, a utility to find secrets in Doom levels.


                         DOOM THINGS ANALYZER
                         --------------------

                             Version 1.03
                      Programmed by Yonatan Donner

What is the Doom Things Analyzer?
---------------------------------

The Doom Things Analyzer, or DMTHA in short, is a tool to quickly analyze
any Doom, Ultimate Doom, Doom II or Final Doom level including external ones
from a THINGS point of view.

DMTHA reads all of the things in any level in any wad file and generates a
report in one of five selectable detail levels about the level, how much
health and armor it has in total, how much ammo of every kind and total
strength of the ammo, how many monsters of every kind etc..

The Command Line
----------------

The case is insensitive, so you don't have to use capitals.

Usage: DMTHA <wadname> [switches]

<wadname>  - the name of the WAD file to analyze

Switches:

/Mmapname  - analyze only one map - the map called mapname. For example:
            DMTHA DOOM2.WAD /MMAP29 will analyze only level 29 of Doom2.
            The default is to analyze all levels in the WAD file.

/A         - ignore ammo taken from monsters. By default, DMTHA considers
            every sergeant you kill as four additional shells, since that
            is the ammo you get when you take his shotgun. The same with
            other monsters who drop ammo. Using this switch prevents DMTHA
            from considering these monsters as more ammo.

/Dx        - use detail level x from 1-5 (default = 3)
            Using this switch you can select the detail level you wish
            DMTHA to use when analyzing.

            The differences between detail levels are:
            1 - only general map information. How many things are in the
                map and how many monsters there are in the map.
            2 - also the total strength of monsters hitpoints, total damage
                of the ammo considering the available weapons, total health
                and total armor in the level.
            3 - also the specific ammo amounts. How many bullets, shells,
                rockets and cells are in the level. Also health and ammo
                vs. monsters rations to help calculate difficulties. This is
                the default detail level.
            4 - also the monster counts. How many monsters of every kind
                are in the level. Also weapons counts: which weapons are in
                the level and how many. Also miscellaneous items: how many
                invulnerabilities, partial invisibilities etc. are in the
                level. Keys: what keys are in the level.
            5 - going down to specifics in ammo, health and armor. Not only
                how many bullets there are in the level but how they are
                divided to boxes and clips. The same about all kinds of
                ammo and health and armor.

/Fx        - find item x and report coordinates
            The search feature. DMTHA will find the item you want to search
            for and report it's x and y coordinates, and it's number. Then
            you can go directly to the item using a level editor and know
            where it is. See later in this text file for a list of items
            and their numbers.

/I         - ignore startup health and ammo for complete health and ammo
            calculations. By default, DMTHA adds 100 health to the total
            health and 50 ammo since that's how you begin a level (from
            scratch). If you don't want that, however, use this switch.

/N         - take netgames only items into account too
            By default, DMTHA ignores items that appear only in netgames.
            Using this switch, DMTHA will take these into account too.

/Px        - consider pain elementals as additional x lost souls (default = 2)
            Since painelementals don't have an attack of their own but only
            generate lost souls, DMTHA considers them as some additional
            lost souls. The default value is 2 but it can be changed using
            this switch.

/Rfilename - output results into filename
            This switch creates a report file with the analysis. You can
            also achieve that effect by redirecting, for example:
            DMTHA PLUTONIA.WAD /MMAP32 > GO2IT.TXT

/S         - use all skills, not only UV/NM
            By default DMTHA only takes into account items that appear in
            the two highest skill levels, Ultra Violence and Nightmare.
            Using this switch DMTHA will also consider items that appear
            on lower skills but not on these skills.

/U         - don't ignore ammo for weapons that aren't in the level
            By default DMTHA ignores ammo for weapons that are not present
            in the level, for example if there are 300 cells in the level
            but no plasma gun or BFG, DMTHA will ignore them. Using this
            switch DMTHA will take them into account too.


Difficulty calculation
----------------------

There are two numbers DMTHA gives you in detail level 3 and up about the
level's difficulty: the healthwise difficulty and the ammowise difficulty.
The healthwise difficulty is the ratio of the monsters vs. the total
health in the level. I don't know how to implement armor, so it's just
ignored for now. Maybe I'll make armor count too in future versions. Anyway,
the higher the number, the harder the level is for you to survive in. The
ammowise difficulty is the ratio of the monsters vs. the total ammo in the
level. The higher the number, the harder it is not to run out of ammo. Not
always, though, since many times many monsters kill each other, and many can
be killed using the berserk/chainsaw (see Doom2 level 8 for a great example of
a miscalculated difficulty, both healthwise and ammowise).

I hope these difficulty estimates can help.

History
-------

Here are the improvements in DMTHA from the various versions:

0.95 - initial version
0.96 - fixed input/output problem
      made output a lot more readable
0.97 - added switches support
      added /A switch
      added /S switch
      added /N switch
      added /U switch
      added /Mmapname switch
0.98 - fixed case problem: switches and mapnames don't have to be uppercase now
      wad name now appears without full path and without varying case
0.99 - added /P switch for painelementals
      added very important /D switch for varying detail levels
      fixed some display bugs
      changed items to be written only if they are actually on the map
      added /R switch for report file
      fixed another small display problem
1.00 - added /F find feature
      no serious bugs found/reported, ready for first release
1.01 - added difficulty health/ammo calculations to detail level 3 and up
1.02 - added startup health & ammo to difficulty calculation
1.03 - added /I switch

Future plans
------------

Automatically create a lmp, finishing that level on Ultra-Violence with 100%
kills and secrets, for that level. Just kidding! I have no ideas right now ;-)

If you have any ideas for further improvement, please mail me at
<[email protected]> and let me know them.

Things Types
------------

These are the thing types for use with the /F switch.

Enemies:

3004 Trooper
  9 Sergeant
 84 SS Soldier
3001 Imp
 65 Heavy Weapons Dude
3002 Demon
 58 Spectre
3006 Lost Soul
 66 Revenant
3005 Cacodemon
 71 Pain Elemental
 68 Arachnotron
 69 Hell Knight
 67 Manucubs
 64 Archvile
3003 Baron of Hell
  7 Spiderdemon
 16 Cyberdemon

Weapons:

2005 Chainsaw
2001 Shotgun
 82 Super Shotgun
2002 Chaingun
2003 Rocket Launcher
2004 Plasma Gun
2006 BFG9000

Ammo:

2007 10 Bullets
2008 4 Shells
2010 1 Rocket
2047 20 Cells
2048 50 Bullets
2049 20 Shells
2046 5 Rockets
 17 100 Cells
  8 Backpack

Health:

2014 1% Health
2011 Stimpak
2012 Medikit
2023 Berserk
2013 Soulsphere
 83 Megasphere

Armor:

2015 1% Armor
2018 100% Armor
2019 200% Armor

Misc. Items:

2022 Invulnerability
2024 Partial Invisibility
2025 Radiation Suit
2026 Computer Automap
2045 Light Amp Goggles

Keys:

  5 Blue Key (card)
 40 Blue Key (skull)
 13 Red Key (card)
 38 Red Key (skull)
  6 Yellow Key (card)
 39 Yellow Key (skull)

Information source
------------------
The excellent information sources I used to program DMTHA are:

The Unofficial Doom specs v1.666 by Matt Fell
The Unofficial Doom FAQ v6.666 by Hank Leukart

Credits
-------
Thanks go to the writers of the above-mentioned information sources, id
Software for these wonderful games and of course Andreas "Anthe" Kren (who
thought of the /f idea), Peo Sjoblom and Richard J. Sham for testing and many
helpful ideas.

That's it
---------
If you have anything to say about DMTHA, please don't hesitate to mail me.
I have no more ideas for further improvements but I'm not sure yet if I
might have some in the future, so there may be future versions.

Yonatan Donner
<[email protected]>