关于地图内部数据解析
THE COMMAND & CONQUER MAPS
Rev. 1f
by Vladan Bato (bat22@geocities.com)
This document explains the format of the maps and the associated graphics
files. It has also a complete listing of all available map values.
This document is meant for people who want to make a C&C scenery
editor.
You can also use it to edit manually the maps but IMHO it's a suicide if
you
can't see what you are doing.
ABOUT .MIX FILES
First of all I will explain the structure of MIX files, since all the
graphics are in the TEMPERAT, DESERT, and WINTER.MIX files.
Each MIX file contains several internal files that can be extracted. I will
refer to the internal files as just "files".
The MIX file is made up of two parts: the first one is the Header, the
second
one is the Body that contains all the files.
The structure of the header is:
(I will use pascal notation here)
Header = record
NumFiles : word;
{Number of internal files}
BodyLength : longint;
{Length of the body}
Index : array [1..NumFiles] of
record
ID :
longint; {ID of file, computed from filename}
Start :
longint; {Offset of file in the body}
Size :
longint; {Size of the file}
end;
end;
Of course you can't use directly such a structure in pascal because its
length is not fixed.
Note that the offsets are relative to the start of the body so to find the
actual offset in the MIX you have to add the size of the header which
is
NumFiles*12+6
Note also that the records in the Index are not in the same order as the
files are physically stored in the MIX. In this document I will always
refer
to the record number in the index and not to the file's actual position in
the MIX.
ABOUT THE MAP
All the maps are 64x64 squares large. There are 2 bytes of information for
each square, thus the file is 8192 bytes long.
The two bytes indicate which image should be placed there. The first one
indicates in which of the internal files of TEMPERAT, DESERT or WINTER.MIX
it is. Each of these internal files contains several images; the second
byte
tells which of those images should be taken. The images inside one of the
internal files, if put together, form a larger image. It can be a bridge,
a road section, etc. These are called "templates". Thus, each internal file
contains a template. Each template is made of several "tiles" (images).
Each square of the map contains one tile. It's not necessary to put all
the tiles of a template on the map.
There are templates of various sizes: from 1x1 to 6x8.
(I will always write the dimensions as WidthxHeight)
The tile numbers range from 0 to WxH-1.
However there are some tiles, which I call "empty tiles", that don't have
any images associated with them. If you try using them C&C will display
the default terrain for that Theater instead. There are empty tiles
especially in the corners of large templates.
An example may be useful:
The SW-NE bridge in the temperate theater has two empty tiles:
XXOr X - Empty tile O - other tiles
wbbO b - Bridge
Obbw w - Water
(This is probably wrong, I can't check now)
rOOO r - road
We can see that in the upper left corner there are two empty tiles.
We can put the values 00 and 01 in our map (as the second byte; the first
would be A5h for the bridge), in that case we'll see some grass there. But
we can replace those two tiles with anything else without disturbing the
rest. What I mean, is that if we changed any other tile, a piece of river
would be missing or a rock could be cut, ruining the map; but if we
replace the empty tiles everything is OK.
So, when we have an empty tile, we can leave it there, or replace it with
anything else. There are two exceptions to this rule however:
1) Sometimes the empty tiles should be water, but if we don't replace them
C&C will show land in the middle of our lake or sea;
2) There are templates containing roads that finish in one of the corners,
so that the next template must have an empty tile in the
opposite corner
to stick to the other.
An example might help:
Imagine that we have two road sections like these:
OOrr OOrr
Orrr Orrr
rrrO rrrO
rrOO rrOO
and we want to stick them diagonally:
OOrr
Orrr
rrrO
rrOO
OOrr
Orrr
rrrO
rrOO
Something is obviously missing. We need to add some tiles to fill it like
this:
OOrr
Orrr
rrrO
RrrOO
OOrrR
Orrr
rrrO
rrOO
The solution could be to have two templates like these:
OOOO ROOO
OOOO OOOO
OOOO OOOO
OOOR OOOO
or to have one little template with empty tiles:
RX
XR (Where X are empty tiles)
Now we can put this between the two road sections, replacing the empty
tiles with the corner tiles of the road sections.
There are many road sections like this and I've indicated them with
"(Conn.)" in the table at the end of this document.
ABOUT THE DESERT, TEMPERAT, and WINTER.MIX FILES
These are the files that hold the graphics for the templates. There's one
file inside the MIX for each template, and each file has several tiles
inside.
There are other files inside the MIXes, probably for the trees and other
overlay elements but I don't know the format. If somebody knows their
format,
please let me know.
In each MIX there's also a palette, the entries are:
DESERT.MIX entry n. 26
TEMPERAT.MIX entry n. 62
WINTER.MIX entry n. 62
I will now explain the format of the files with map graphics.
First of all there's a header with the following structure:
Header = record
Width : word; {Width
of images, always 24 (18h)}
Heigth : word; {Heigth of
images, always 24}
NumTil : word; {Number of
Tiles (may differ from num. of
Images}
Zero1 : word;
{Seems to be always 0000h}
Size :
longint; {size of file}
ImgStart : longint; {Offset of
first image}
Zero2 : longint;
{Seems to be always 00000000h}
ID1 : word;
{Always FFFFh}
ID2 : word;
{Always 1A0Dh (or 0D1Ah I can't remeber}
Index2 : longint;
{Offset of Index2}
Index1 : longint;
{Offset of Index1} {I will explain these later}
end;
The images follow the header but I suppose they could be anywhere.
They are all 24x24 pixel, uncompressed and are one after the other.
Note that the number of images may differ from the number of tiles if
there are some empty tiles. If there are empty tiles, the actual number of
images can be smaller than the number of tiles. To work out the number
of images you can use the formula : (Index1-ImgStart)/(24*24).
However, you won't have to do this if the index is not corrupt.
Index1 has the following format:
Index1 : array [0..NumTil-1] of byte;
where NumTil is the number of tiles.
Each entry in Index1 corresponds to one tile, and indicates which image
(of that file) is associated with it. If the entry is FFh than that tile
is empty.
Index2 is an array of NumImages bytes where NumImages is the real
number of images in the file. However it's always filled with zeros
(sometimes there's a 1 somewhere but I don't know it's meaning).
Note that there's no way to know the dimensions (Width and Height) of the
template. If there are 6 tiles it could be 6x1, 1x6, 3x2, 2x3. I worked out
the dimensions of all templates myself (It's easy, all you have to do is to
try different widths and look at the screen).
For example a procedure that has to display template 61h, tile 3 of the
Desert
theater would do:
1) Look in the table and find in which file it is in (entry 168 of
DESERT.MIX)
2) Open that file (seek it inside the MIX)
2) Read the Header
3) Read Index1 and read the 4th byte (for tile 3), let it be N
4) Seek ImgStart+Width*Height*N
5) Read the Image and display it
AND FINALLY THE TABLE
Here is the table of all available map values (template numbers), the
dimensions and the relative entries in the DESERT, WINTER, and
TEMPERAT.MIX.
There's also a brief description for those that don't want or don't know
how to write an editor. However, I think that it will be difficult to stick
the templates together without seeing them.
An "x" means that the template doesn't exist in that theater. There are
many
templates that exist only in one theater and will show as black holes in
the
others (causing the HOM effect). The WINTER and TEMPERATE theaters are
however very similar, and differ only in a few templates.
The roads and cliffs are mostly the same for the three theaters, but be
careful about the river and coast templates because they are not the same.
V | DES | TEM | WIN | Dim. | Name |
Description
-----+-----+-----+-----+-------+----------+-----------------------------------
00h | 007 | 011 | 028 | [4x4] | CLEAR1 | Default terrain
01h | 002 | 007 | 007 | [1x1] | W1 | Water (not
animated)
02h | x | 009 | 009 | [2x2] | W2 |
Water
03h | x | 087 | 087 | [3x3] | SH1 | Coast
WD (1)
04h | x | 106 | 105 | [3x3] | SH2 | Coast
WD
05h | x | 126 | 124 | [1x1] | SH3 | Rock in
water
06h | x | 143 | 140 | [2x1] | SH4 | Rock in
water
07h | x | 159 | 157 | [3x3] | SH5 | Coast
WD
08h | x | 018 | 017 | [3x3] | SH11 | Fjord
WD
09h | x | 024 | 023 | [3x3] | SH12 | Coast
WU
0Ah | x | 031 | 031 | [3x3] | SH13 | Coast
WU
0Bh | x | 037 | 037 | [3x3] | SH14 | Coast
WU
0Ch | x | 042 | 042 | [3x3] | SH15 | Coast
WU
0Dh | 106 | 074 | 074 | [2x2] | S01 | Cliff Left Edge
0Eh | 122 | 093 | 092 | [2x3] | S02 | Cliff Wu-Wd
(2)
0Fh | 138 | 112 | 110 | [2x2] | S03 | Cliff W-E
10h | 154 | 131 | 128 | [2x2] | S04 | Cliff W-E
11h | 170 | 147 | 144 | [2x2] | S05 | Cliff W-E
12h | 185 | 163 | 161 | [2x3] | S06 | Cliff Wd-Eu
13h | 200 | 180 | 179 | [2x2] | S07 | Cliff Right Edge
14h | 212 | 195 | 195 | [2x2] | S08 | Cliff Top Edge
15h | 225 | 208 | 209 | [3x2] | S09 | Cliff N-S
16h | 096 | 064 | 064 | [2x2] | S10 | Cliff N-S
17h | 108 | 078 | 078 | [2x2] | S11 | Cliff N-S
18h | 124 | 097 | 096 | [2x2] | S12 | Cliff N-S
19h | 140 | 117 | 115 | [3x2] | S13 | Cliff N-S
1Ah | 157 | 135 | 132 | [2x2] | S14 | Cliff Bottom Edge
1Bh | 172 | 151 | 149 | [2x2] | S15 | Cliff Left Edge
1Ch | 187 | 167 | 166 | [2x3] | S16 | Cliff Wu-Ed
1Dh | 202 | 184 | 184 | [2x2] | S17 | Cliff W-E
1Eh | 215 | 199 | 200 | [2x2] | S18 | Cliff W-E
1Fh | 228 | 211 | 213 | [2x2] | S19 | Cliff W-E
20h | 098 | 068 | 069 | [2x3] | S20 | Cliff Wu-Ed
21h | 110 | 082 | 082 | [1x2] | S21 | Cliff Right Edge
22h | 126 | 101 | 100 | [2x1] | S22 | Cliff Corner S-E
Internal
23h | 142 | 121 | 119 | [3x2] | S23 | Cliff Sl-Nr
24h | 159 | 139 | 136 | [2x2] | S24 | Cliff N-S
25h | 174 | 155 | 153 | [2x2] | S25 | Cliff N-S
26h | 189 | 171 | 170 | [2x2] | S26 | Cliff N-S
27h | 204 | 188 | 188 | [3x2] | S27 | Cliff Nl-Sr
28h | 218 | 202 | 203 | [2x2] | S28 | Cliff Bottom Edge
29h | 230 | 213 | 215 | [2x2] | S29 | Cliff Corner N-E
External
2Ah | 101 | 070 | 071 | [2x2] | S30 | Cliff Corner S-E
Ext
2Bh | 113 | 084 | 084 | [2x2] | S31 | Cliff Corner W-S
Ext
2Ch | 129 | 103 | 102 | [2x2] | S32 | Cliff Corner N-W
Ext
2Dh | 145 | 123 | 121 | [2x2] | S33 | Cliff Corner N-E
Internal
2Eh | 162 | 141 | 138 | [2x2] | S34 | Cliff Corner S-E
Int
2Fh | 177 | 157 | 155 | [2x2] | S35 | Cliff Corner W-S
Int
30h | 192 | 173 | 172 | [2x2] | S36 | Cliff Corner W-N
Int
31h | 207 | 190 | 190 | [2x2] | S37 | Cliff Junction
NW-SE
32h | 221 | 204 | 205 | [2x2] | S38 | Cliff Junction
SW-NE
33h | x | 027 | 026 | [3x3] | SH32 | Coast
Corner N-W Int
34h | x | 033 | 033 | [3x3] | SH33 | Coast
Corner N-E Int
35h | 017 | x | x | [4x1] | SH20
| Coast WD
36h | 024 | x | x | [3x1] | SH21
| Coast WD
37h | 041 | x | x | [6x2] | SH22
| Coast WD
38h | 049 | x | x | [2x2] | SH23
| Coast WD
39h | 118 | x | x | [1x1] | BR1
| Bush
3Ah | 134 | x | x | [1x1] | BR2
| Bush
3Bh | 150 | x | x | [1x1] | BR3
| Cactus
3Ch | 166 | x | x | [1x1] | BR4
| Cactus
3Dh | 181 | x | x | [1x1] | BR5
| ??? Purple square (bug ?)
3Eh | 196 | x | x | [2x2] | BR6
| Bushes
3Fh | 210 | x | x | [2x2] | BR7
| Bushes
40h | 223 | x | x | [3x2] | BR8
| Bushes
41h | 234 | x | x | [3x2] | BR9
| Bushes
42h | 016 | x | x | [2x1] | BR10
| ??? Purple squares (bug ?)
43h | 105 | 073 | x | [1x1] | P01 | Bones /
Wall (3)
44h | 121 | 092 | x | [1x1] | P02 | Bones /
Wall (3)
45h | 137 | 111 | x | [1x1] | P03 | Mud /
UFO (3) (6)
46h | 153 | 130 | x | [1x1] | P04 | Rock /
UFO (3) (6)
47h | 169 | x | x | [2x2] | P05
| Gray Sand
48h | 184 | x | x | [6x4] | P06
| Gray Sand
49h | 199 | 179 | 178 | [4x2] | P07 | Mud
4Ah | x | 194 | 194 | [3x2] | P08 | Mud
4Bh | x | 045 | 045 | [3x2] | SH16 | Fjord
WU
4Ch | 072 | 047 | 047 | [2x2] | SH17 | Water (anim.)
4Dh | 078 | 049 | 049 | [2x2] | SH18 | Water (anim.)
4Eh | 084 | x | x | [3x2] | SH19
| Coast WD
4Fh | x | 116 | 114 | [3x2] | P13 |
Destroyed House
50h | x | 134 | 131 | [2x1] | P14 | Walls
51h | x | x | 148 | [4x2] | P15
| Snow
52h | 001 | 006 | 006 | [1x1] | B1 | Rock
53h | 003 | 008 | 008 | [2x1] | B2 | Rock
54h | x | 010 | 010 | [3x1] | B3 |
Rock
55h | 004 | x | x | [1x1] | B4
| ?? Rock (7)
56h | 005 | x | x | [1x1] | B5
| ?? Rock (7)
57h | 006 | x | x | [1x1] | B6
| ?? Rock (7)
58h | x | 175 | 174 | [3x3] | SH6 | Coast
WD
59h | x | 191 | 191 | [2x2] | SH7 | Coast
Corner W-N External
5Ah | x | 205 | 206 | [3x3] | SH8 | Coast
Corner S-E Ext
5Bh | x | 215 | 217 | [3x3] | SH9 | Coast
Corner W-S Ext
5Ch | x | 012 | 011 | [2x2] | SH10 | Coast
Corner N-E Ext
5Dh | 104 | 072 | 073 | [2x2] | D01 | Road Bottom End
5Eh | 120 | 091 | 091 | [2x2] | D02 | Road Left End
5Fh | 136 | 110 | 109 | [1x2] | D03 | Road Top End
60h | 152 | 129 | 127 | [2x2] | D04 | Road Right End
61h | 168 | 146 | 143 | [3x4] | D05 | Road S-N
62h | 183 | 162 | 160 | [2x3] | D06 | Road S-N
63h | 198 | 178 | 177 | [3x2] | D07 | Road S-N
64h | 211 | 193 | 193 | [3x2] | D08 | Road S-N
65h | 224 | 207 | 208 | [4x3] | D09 | Road W-E
66h | 095 | 063 | 063 | [4x2] | D10 | Road W-E
67h | 107 | 077 | 077 | [2x3] | D11 | Road W-E
68h | 123 | 096 | 095 | [2x2] | D12 | Road W-E
69h | 139 | 115 | 113 | [4x3] | D13 | Road Wu-Ed
6Ah | 156 | 133 | 130 | [3x3] | D14 | Road T
N--W+E (4)
6Bh | 171 | 150 | 147 | [3x3] | D15 | Road Y
S--N+E (4)
6Ch | 186 | 166 | 164 | [3x3] | D16 | Road Y S--N+E
6Dh | 201 | 183 | 182 | [3x2] | D17 | Road T S--W+E
6Eh | 214 | 198 | 198 | [3x3] | D18 | Road T W--N+S
6Fh | 227 | 210 | 211 | [3x3] | D19 | Road + W-N-E-S
70h | 097 | 067 | 067 | [3x3] | D20 | Road Corner N-E
71h | 109 | 081 | 081 | [3x2] | D21 | Road Corner S-E
72h | 125 | 100 | 099 | [3x3] | D22 | Road Corner W-S
73h | 141 | 120 | 118 | [3x3] | D23 | Road Corner W-N
74h | 158 | 138 | 135 | [3x3] | D24 | Road Diagonal
NW-SE (5)
75h | 173 | 154 | 152 | [3x3] | D25 | Road Diag NW-SE
76h | 188 | 170 | 169 | [2x2] | D26 | Road Diag NW-SE
(Conn.) (5)
77h | 203 | 187 | 187 | [2x2] | D27 | Road Diag NW-SE
(Conn.)
78h | 217 | 201 | 202 | [2x2] | D28 | Road Corner W-SE
(Conn.)
79h | 229 | 212 | 214 | [2x2] | D29 | Road Corner N-SE
(Conn.)
7Ah | 100 | 069 | 070 | [2x2] | D30 | Road Y SE--N+W
(Conn.)
7Bh | 112 | 083 | 083 | [2x2] | D31 | Road Corner E-NW
(Conn.)
7Ch | 128 | 102 | 101 | [2x2] | D32 | Road Corner S-NW
(Conn.)
7Dh | 144 | 122 | 120 | [2x2] | D33 | Road Y NW--S+E
(Conn.)
7Eh | 161 | 140 | 137 | [3x3] | D34 | Road Diag SW-NE
7Fh | 176 | 156 | 154 | [3x3] | D35 | Road Diag SW-NE
80h | 191 | 172 | 171 | [2x2] | D36 | Road Diag SW-NE
(Conn.)
81h | 206 | 189 | 189 | [2x2] | D37 | Road Diag SW-NE
(Conn.)
82h | 220 | 203 | 204 | [2x2] | D38 | Road Corner E-SW
(Conn.)
83h | 232 | 214 | 216 | [2x2] | D39 | Road Corner N-SW
(Conn.)
84h | 103 | 071 | 072 | [2x2] | D40 | Road Y SW--N+E
(Conn.)
85h | 115 | 085 | 085 | [2x2] | D41 | Road Corner W-NE
(Conn.)
86h | 131 | 104 | 103 | [2x2] | D42 | Road Corner S-NE
(Conn.)
87h | 147 | 124 | 122 | [2x2] | D43 | Road Y NE--W+S
(Conn.)
88h | x | 017 | 016 | [5x4] | RV01 | River
W-E
89h | x | 023 | 022 | [5x3] | RV02 | River
W-E
8Ah | x | 030 | 030 | [4x4] | RV03 | River
Wu-Ed
8Bh | x | 036 | 036 | [4x4] | RV04 | River
Wd-Eu
8Ch | x | 041 | 041 | [3x3] | RV05 | River
N-S
8Dh | x | 044 | 044 | [3x2] | RV06 | River
N-S
8Eh | x | 046 | 046 | [3x2] | RV07 | River
N-S
8Fh | x | 048 | 048 | [2x2] | RV08 | River
Corner S-E
90h | x | 052 | 052 | [2x2] | RV09 | River
Corner W-S
91h | x | 014 | 013 | [2x2] | RV10 | River
Corner N-E
92h | x | 020 | 019 | [2x2] | RV11 | River
Corner W-N
93h | x | 026 | 025 | [3x4] | RV12 | River Y
N--W+S
94h | x | 032 | 032 | [4x4] | RV13 | River Y
Eu--W+S
95h | 055 | x | x | [4x3] | RV14
| River W-E
96h | 060 | x | x | [4x3] | RV15
| River W-E
97h | 067 | x | x | [6x4] | RV16
| River Wd-Eu
98h | 073 | x | x | [6x5] | RV17
| River Wu-Ed
99h | 079 | x | x | [4x4] | RV18
| River N-S
9Ah | 085 | x | x | [4x4] | RV19
| River N-S
9Bh | 018 | x | x | [6x8] | RV20
| River Nr-Sl
9Ch | 025 | x | x | [5x8] | RV21
| River Nl-Sr
9Dh | 042 | x | x | [3x3] | RV22
| River Corner E-S
9Eh | 050 | x | x | [3x3] | RV23
| River Corner W-S
9Fh | 057 | x | x | [3x3] | RV24
| River Corner N-E
A0h | 062 | x | x | [3x3] | RV25
| River Corner N-W
A1h | 009 | 002 | 004 | [3x3] | FORD1 | River Crossing (Road
W-E)
A2h | 010 | 003 | 005 | [3x3] | FORD2 | River Crossing (Road
N-S)
A3h | 047 | 057 | 057 | [3x3] | FALLS1 | Falls W-E
A4h | 048 | 058 | 058 | [3x2] | FALLS2 | Falls N-S
A5h | x | 218 | 220 | [4x4] | BRIDGE1 | Bridge SW-NE
A6h | x | 059 | 059 | [4x4] | BRIDGE1D | Fallen Bridge SW-NE
A7h | x | 219 | 221 | [5x5] | BRIDGE2 | Bridge NW-SE
A8h | x | 060 | 060 | [5x5] | BRIDGE2D | Fallen Bridge NW-SE
A9h | 236 | x | x | [6x5] | BRIDGE3 | Bridge
SW-NE
AAh | 092 | x | x | [6x5] | BRIDGE3D | Fallen
Bridge SW-NE
ABh | 237 | x | x | [6x4] | BRIDGE4 | Bridge
NW-SE
ACh | 093 | x | x | [6x4] | BRIDGE4D | Fallen
Bridge NW-SE
ADh | 056 | x | x | [3x3] | SH24
| Fjord WD
AEh | 061 | x | x | [3x2] | SH25
| Coast WU
AFh | 068 | x | x | [3x2] | SH26
| Coast WU
B0h | 074 | x | x | [4x1] | SH27
| Coast WU
B1h | 080 | x | x | [3x1] | SH28
| Coast WU
B2h | 086 | x | x | [6x2] | SH29
| Coast WU
B3h | 019 | x | x | [2x2] | SH30
| Coast WU
B4h | 027 | x | x | [3x3] | SH31
| Fjord WU
B5h | x | x | 165 | [2x2] | P16
| Snow
B6h | x | x | 183 | [4x2] | P17
| Snow
B7h | x | x | 199 | [4x3] | P18
| Snow
B8h | x | x | 212 | [4x3] | P19
| Snow
B9h | x | x | 068 | [4x3] | P20
| Snow
BAh | x | 038 | 038 | [3x3] | SH34 | Coast
WR
BBh | x | 043 | 043 | [3x3] | SH35 | Coast
WL
BCh | 069 | x | x | [1x1] | SH36
| Coast Corner S-E Int
BDh | 075 | x | x | [1x1] | SH37
| Coast Corner W-S Int
BEh | 081 | x | x | [1x1] | SH38
| Coast Corner N-E Int
BFh | 087 | x | x | [1x1] | SH39
| Coast Corner N-W Int
C0h | 020 | x | x | [3x3] | SH40
| Coast Corner S-E Int
C1h | 028 | x | x | [3x3] | SH41
| Coast Corner N-W Int
C2h | 043 | x | x | [1x2] | SH42
| Coast WL
C3h | 051 | x | x | [1x3] | SH43
| Coast WL
C4h | 058 | x | x | [1x3] | SH44
| Coast WR
C5h | 063 | x | x | [1x2] | SH45
| Coast WR
C6h | 070 | x | x | [3x3] | SH46
| Coast Corner S-E Int
C7h | 076 | x | x | [3x3] | SH47
| Coast Corner S-E Int
C8h | 082 | x | x | [3x3] | SH48
| Coast Corner N-E Int
C9h | 088 | x | x | [3x3] | SH49
| Coast Corner N-W Int
CAh | 021 | x | x | [4x3] | SH50
| Coast Corner S-E Ext
CBh | 029 | x | x | [4x3] | SH51
| Coast Corner W-S Ext
CCh | 044 | x | x | [4x3] | SH52
| Coast Corner N-E Ext
CDh | 052 | x | x | [4x3] | SH53
| Coast Corner N-W Ext
CEh | 059 | x | x | [3x2] | SH54
| Coast WD
CFh | 064 | x | x | [3x2] | SH55
| Coast WD
D0h | 071 | x | x | [3x2] | SH56
| Coast WU
D1h | 077 | x | x | [3x2] | SH57
| Coast WU
D2h | 083 | x | x | [2x3] | SH58
| Coast WR
D3h | 089 | x | x | [2x3] | SH59
| Coast WR
D4h | 022 | x | x | [2x3] | SH60
| Coast WL
D5h | 030 | x | x | [2x3] | SH61
| Coast WL
D6h | 045 | x | x | [6x1] | SH62
| Coast WD
D7h | 053 | x | x | [4x1] | SH63
| Coast WD
!! Warning !!
Values from D8h-FEh will cause the game to crash (it just locks up on
my computer)!!!
The value FFh indicates the default terrain (I think the 4x4 template is
used).
Notes:
(0a) There may be some errors in this table because I typed it in a hurry
(you don't know how much time it takes), so if you find
any errors
please report them to me.
(0b) The names are taken from the GAME.DAT file. I matched them with the
files in the theater mix files. The complete filenames
are the names
above plus an extension that depends on the theater
(.DES, .TEM, .WIN).
(1) For Coasts, WD, WU, WL, and WR mean : Water on the bottom
(Down), Top (Up), left and right.
(2) For cliffs and roads the two letters indicate from which to which side
the Road (or cliff) goes. The lowercase letter means up,
down, left,
right to indicate in which part of that side it starts.
For Example:
River Wu-Ed :
OOOOO
rOOOO
OrrOO
OOOrr
OOOOO
(3) These templates exist in both the DESERT and the TEMPERATE theaters but
are not the same. I've put a description of both.
(4) For Roads:
Roads T and Y mean that the road splits in the shape of
a T or a Y.
E--N+S means it starts from the east edge then splits
in two parts, one
going to the north and the other to the south edge
(5) NW or any other corner means that the road ends in that corner and if
it
says (Conn.), that means that it has an empty tile in that
corner.
So you have to use the (Conn.) templates to stick together
the other
ones.
(6) In TEMPERAT.MIX these two files are buggy, they report there are 67h
tiles, but if you look at the index you'll see they all point
to the
second image which (I think) is of uniform color. Only the
first tile is
ever used.
(7) These three templates don't work in C&C (HOM effect), but their
graphics
exist in the DESERT.MIX file. Do not use them !
That's all. I hope this info will be used by somebody to make a scenery
editor.
Report any errors to me. Also, if you have any info about other file
formats
please share it with me.