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 [switches] - 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 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