Creating Automaps - A Tutorial
First a few words about the way Thief handles maps:
The basic map is the one you see when you are nowhere special - nothing is marked
in blue. Room maps are parts of the basic map, with a part of them blue.
Thief copies one of these on the basic map when the room you are in has an
Automap property, but more on that later. If that all sounds rather strange,
take a look at the maps that come with Thief (which is never a bad idea).
There are three kinds of files necessary for a functioning automap:
The basic map. Obviously you can have more than one, but numbering should always start at 001,
with ddd being a three digit number.
The room maps for the basic map named Pageddd.pcx. The numbering is similar: ddd should be the same
as that of the basic map to which it belongs, nnn is the number of the room map and should begin with 000.
For each of these, numbering should be continually, without gaps.
This file contains positioning information for the room maps. When Thief copies the room map unto the basic map,
it needs to know where to put it. That information is found here.
Creating the map:
I can't really help with drawing the map, because you've got to know yourself what
you want it to look like.
What you'll need to do is use some graphics editing program and load the blank map
named Page001.pcx that came with DromEd. Sketch your level unto it.
Save it as Page001.pcx
(I don't need to remind you that you'll want to keep the blank map for further projects, do I?).
Now select a part of the map you want to display as automap and copy it to a new file/image. Edit this smaller image to give
your room the blueish color.
(I haven't found a perfect way to do this yet, as I'm not really talented in editing
graphics. I'm working with Picture Publisher, so what I did was select the part of the
image I wanted to turn blue and used 'Hue Shift'. The problem is, it only works in
True Color and I had to convert the image back to the Thief palette afterwards -
Thief wants the maps to be 256 color and have its usual palette, else it won't work properly.)
When you're done with painting, save the room map as P001R000.pcx. You can create
room maps for P001R001and onwards the same way.
Positioning the room maps:
Probably the most complicated part: For each of your created room maps you need to get
the X and Y values of the upper left corner where it should appear on the basic map,
and the room map's width and height. Those values are needed for the positioning file.
Now create a file named P001ra.bin with a size of 8*(number of your rooms) bytes.
You can do that easily with a text editor (like Notepad) by writing the above amount
of characters inside.
For the next part you should use a Hex-Editor. Open the file and enter the values for
X,Y,width,height. Each of these values go in two bytes, so that there's 8 bytes for any
room map. Remember that low byte comes first.
(That means, if you have an X value of, say 270, which is 010E in Hex, you'll write
0E 01 into the first two bytes) The first 8 bytes are for the room map P001R000,
the next for P001R001 and so on. Enter the values for each room.
For your mission to use these files, they need to be put into the
\intrface\missxx\english directory, where xx is the number of your mission.
Things to do in DromEd:
For DromEd to use the automaps, select a room brush. Edit its properties and Add:
Room->Automap. Enter the number of the basic map into the first line and the
number of the room map in the second line. (If you want to show the basic map Page001.pcx
with the room map P001R000.pcx on it, first is 1, second is 0).
Another thing do do is set the map_max_page and map_min_page. The numbers you need to enter here
correspond with those of your Pageddd.pcx files.
(If you have 4 basic maps numbered Page001-Page004, map_min_page should be set to 1
and map_max_page to 4. Those variables are entered like the other quest variables with quest_create_mis.)
DromEd should now display the proper automap when you are inside the room.
One thing to note: When I created room brushes they were all named 'default room',
and on adding the Automap property, the others seemed to inherit it. What I did
to get rooms with different automaps was to go into the Object Hierarchy and select
Rooms (as opposed to Archetypes etc.) from the dropdown list. In there already are
usually 'Default Room' with 'Base Room'.
For a another room type, press Add and enter a name for the special room. Then press Create.
You can now create this room brush like any other (even Shift-Insert works). Remember that an automap added to this room
will also show up in other rooms of the same type (I wonder if there's a way around that).
On another note: It seems that, in the game, if you enter a room without an automap property after
leaving one with the property, it will show the basic map without any room map (as it should be).
If that is true in all cases, it would be advisable to always give the room around
the StartingPoint an automap.