Pages for the Creations of Ryan Armstrong
This is a series of Python scripts to generate Isometric views of Rise of the Triad maps, as well as extract the complete contents of DARKWAR.WAD. These scripts requirethe Pillow fork of the Python Imaging Library (PIL) andPython 3.x. This was tested with Python 3.9.2,but it does not use any recently-introduced features. As such, it shouldrun with just about any version of Python 3. At the time of updating toPython 3 in 2021, the oldest version of Python still receiving updatesis 3.6, so I do not recommend anything older.
Windows and macOS users should be able to download Python from the above links and usepip
to install Pillow. Most Linux/Unix varients should be able to install Python and Pillow via your package manager of choice; Ubuntu users can install thepython3 andpython3-pil libraries.
The scripts also obviously requireRise of the Triad: Dark War, which can be purchased fromGOG.com. For the mapping scripts,DARKWAR.WAD must be in the current directory.
There are three scripts included in the package that are intended to be executed directly.rottmapper.py is the main isometric mapper script,rottdebugmapper.py is a script to generate debug maps containing all the original wall/sprite/info values, andwad.py is a script to extract the complete contents of a ROTT wad file. In addition to the three scripts above,rtl.py can also be run directly to generate a simple black and white pixel image of a level, but this is not its primary purpose.
python rottmapper.py [RTL/RTC FILE] ([Level Num])
Generates PNG isometric map images based on the specified ROTT RTL or
RTC file. If [Level Num] is specified, this will only generate a map
for the indicated level. Otherwise, maps for every level in the RTL/RTC
will be generated.
This tool requires DARKWAR.WAD from the registered version of ROTT
to be present in the current directory. Note that on case-sensitive file
systems the file name must also be uppercase.
python rottdebugmapper.py [RTL/RTC FILE]...
Generates a debug HTML file for each level in the specified ROTT RTL or
RTC file. Each index in the map is output into a cell in an HTML table
containing the following information:
python wad.py [WAD FILE]
Extracts the complete contents of a give ROTT wad file. Currently only
supports DARKWAR.WAD. All images will be written as PNG files,
other data will remain in its original format (e.g. .mid for music,
.voc for SFX). Unidentified data will be written with no extension.
rottmapper.tar.gz (47.6 kB)
rottmapper.zip (49.7 kB)
Source is available inGitHub, including the legacy Python 2.xversion (under thepy2 tag).
Posted on
This is a nice utility! I loved Rise of the Triad, and it's nice to see someone write an export tool that is capable of exporting most graphics to PNGs.
Any chance on a way to re-import edited PNGs and VOCs and such to an IWAD? It'd be perfect as your utility is the only utility that properly recognizes masked patches with translucency.
Posted on
At present, I don't have any plans for import. The export capabilities went hand-in-hand with my Isometric mapping project, but Import capabilities weren't something I was originally planning for. That's not to say it isn't possible to write an import tool, but it wouldn't be able to re-use very much from this tool, as writing a new WAD file and encoding masked sprites/walls/etc is a fair bit different from just reading.
Posted on
I've been trying to use it, but perhaps I'm not doing something right as I get this:
C:\rottmapper>python rottmapper.py DARKWAR.RTL File "rottmapper.py", line 33 print "Initializing Map {} '{}'".format(level.index+1, level.name) ^SyntaxError: invalid syntax
Am I doing something wrong? I have both darkwar.rtl and darkwar.wad from the registered game in the directory. Have tried with and without all forms of parentheses but still no luck.