1 <!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
5 <meta name=
"Author" content=
"Marcin Grzegorczyk">
6 <meta name=
"Description" content=
"Structure of OpenTTD (OTTD) landscape arrays">
7 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8">
8 <title>OpenTTD Landscape Internals
</title>
13 <h3><a name=
"Landscape">Landscape
</a></h3>
15 For a graphical representation of the tile-layout have a look at
16 <a href=
"landscape_grid.html">Landscape grid
</a> page.
18 <p>Eight attributes (counting
"<span style=
"font-weight: bold;">type_height
</span>") hold the informations about a tile.
<BR>
19 These attributes are referred to as
20 "<span style=
"font-weight: bold;">type_height
</span>",
21 "<span style="font-weight: bold;
">m1</span>", "<span style="font-weight: bold;
">m2</span>",
22 "<span style="font-weight: bold;
">m3</span>", "<span style="font-weight: bold;
">m4</span>",
23 "<span style="font-weight: bold;
">m5</span>", "<span style="font-weight: bold;
">m6</span>"
24 and "<span style=
"font-weight: bold;">m7
</span>".<br>
25 The most important value is the class of a tile, stored in the upper 4 bits
26 of the <span style="font-weight: bold;
">type_height</span> attribute. The lower 4 bits are used to encode the height and
30 Frequently repeating patterns:
32 <li><span style="font-weight: bold;
">m1</span>
35 <a name="WaterClass
"></a>
37 <table border="1" style="width:
30em;
">
38 <tr bgcolor="#CCCCCC
"><td colspan="2">The type of water that is on a tile.
39 <tr><td style="width:
5em;
"><tt>00</tt></td><td align=left>Sea</td></tr>
40 <tr><td><tt>01</tt></td><td align=left>Canal</td></tr>
41 <tr><td><tt>02</tt></td><td align=left>River</td></tr>
42 <tr><td><tt>03</tt></td><td align=left>Invalid, i.e. no water on this tile</td></tr>
44 Some tiles, such as houses, reuse these bits of other purposes.
47 <a name="OwnershipInfo
"></a>
49 <table border="1" style="width:
30em;
">
50 <tr bgcolor="#CCCCCC
"><td colspan="2">The owner of a tile can be either companies (human or AI) or "Game entities
".
51 <tr><td style="width:
5em;
"><tt>00..0E</tt></td><td align=left>Normal companies</td></tr>
52 <tr><td><tt>0F</tt></td><td align=left>a town owns the tile</td></tr>
53 <tr><td><tt>10</tt></td><td align=left>nobody owns the tile</td></tr>
54 <tr><td><tt>11</tt></td><td align=left>"water
" owns the tile</td></tr>
55 <tr><td><tt>FF</tt></td><td align=left>spectator in MP or in scenario editor</td></tr>
57 Some tiles, such as houses and industries, reuse these bits of other purposes.
61 <li><span style="font-weight: bold;
">m6</span>
64 <a name="bridge_direction
"></a>
66 <table border="1" style="width:
30em;
">
67 <tr bgcolor="#CCCCCC
"><td colspan="2">Presence and direction of bridge above, for tiles that support this.</td></tr>
68 <tr><td style="width:
5em;
"><tt>00</tt></td><td>no bridge</td></tr>
69 <tr><td><tt>01</tt></td><td>Axis X (North-East)</td></tr>
70 <tr><td><tt>02</tt></td><td>Axis Y (South-West)</td></tr>
72 Some tiles, such as houses do not support bridges over them and use these bits for other purposes.
75 <a name="tropic_zone
"></a>
77 <table border="1" style="width:
30em;
">
78 <tr bgcolor="#CCCCCC
"><td colspan="2">Only meaningfull in tropic climate. It contains the definition of the available zones</td></tr>
79 <tr><td style="width:
5em;
"><tt>00</tt></td><td>normal</td></tr>
80 <tr><td><tt>01</tt></td><td>desert</td></tr>
81 <tr><td><tt>02</tt></td><td>rain forest</td></tr>
83 In any other climate these 2 bits are theoretically free of use, however using them does not seem useful.
87 <li><span style="font-weight: bold;
">m7:</span><br>
88 Animation frame/state. Used for houses, industries, objects and stations.
92 <p>OTTD's class-specific periodic tile processing routine is called once every +256 ticks for each tile.</p>
94 <table border=1 cellpadding=3>
95 <tr bgcolor="#
0099FF
">
96 <th align=left><font color="#FFFFFF
">Class</font></th>
97 <th align=left><font color="#FFFFFF
">Meaning & details of encoding</font></th>
99 <tr bgcolor="#CCCCCC
">
100 <td align=left><strong><a name="Class0
"><tt> 0 </tt></a></strong></td>
101 <td align=left> <strong>Ground </strong></td>
104 <td valign=top nowrap> </td>
107 <li>m1 bits 4..0: <a href="#OwnershipInfo
">owner</a> of the tile (normally <tt>10</tt>)</li>
108 <li>m2: see fields</li>
109 <li>m3 bits 7..5: type of hedge on NE border of the tile</li>
110 <li>m3 bits 3..0: see fields</li>
111 <li>m3 bit 4: set if the tile is covered with snow</li>
112 <li>m4 bits 7..5: type of hedge on the SW border of the tile (1 through 6, or 0=none)</li>
113 <li>m4 bits 4..2: same as 7..5, but for the SE border</li>
114 <li>m5 bits 7..5: update counter, incremented on every periodic processing for tile types,
115 other than <tt>03</tt>, <tt>07</tt>, <tt>0B</tt>, <tt>10</tt> and above.<BR>
116 on wraparound, the tile is updated (for fields, the type of fields in m3 is increased, for other types the tile type in m5 is increased).<BR>
117 For snow and desert, these bits are not used, tile is updated on every periodic processing.</li>
118 <li>m5 bits 4..2: tile type:
121 <td nowrap valign=top><tt>0</tt> </td>
122 <td align=left>bare land / grass</td>
126 <td nowrap valign=top><tt>1</tt> </td>
127 <td align=left>rough land (density must be 3)</td>
131 <td nowrap valign=top><tt>2</tt> </td>
132 <td align=left>rocks (density must be 3)</td>
136 <td nowrap valign=top><tt>3</tt> </td>
137 <td align=left>fields (density must be 3)
139 <li>m2: index into the array of industries (farms), INVALID_INDUSTRY (0xFFFF) if farm has been removed</li>
140 <li>m3 bits 3..0: field type (legal values: 0 through 9)</li>
146 <td nowrap valign=top><tt>4</tt> </td>
147 <td align=left>snow</td>
151 <td nowrap valign=top><tt>5</tt> </td>
152 <td align=left>desert (density must be 1 or 3)</td>
156 <li>m5 bits 1..0: density:
159 <td nowrap valign=top><tt>0</tt> </td>
169 <td nowrap valign=top><tt>1</tt> </td>
174 <td>2/4 snow; </td>
179 <td nowrap valign=top><tt>2</tt> </td>
189 <td nowrap valign=top><tt>3</tt> </td>
190 <td>full grass; </td>
191 <td>rough land; </td>
192 <td>rocks; </td>
193 <td>fields; </td>
194 <td>full snow; </td>
199 <li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction
">direction specified</a></li>
200 <li>m6 bits 4..2: type of hedge on NW border of the tile</li>
201 <li>m6 bits 1..0 : <a href="#tropic_zone
">Tropic zone definition</a></li>
206 <tr bgcolor="#CCCCCC
">
207 <td valign=top nowrap><strong><a name="Class1
"><tt> 1</tt></a></strong></td>
208 <td><strong>Railway tracks</strong></td>
211 <td valign=top nowrap> </td>
214 <li>m1 bits 4..0: <a href="#OwnershipInfo
">owner</a> of the tile</li>
215 <li>m2: see signals</li>
216 <li>m3 bits 7..4: see signals</li>
217 <li>m3 bits 3..0 = <a name="TrackType
">track type</a>:
220 <td><tt>0</tt> </td>
221 <td>conventional railway</td>
225 <td><tt>1</tt> </td>
226 <td>electrified railway</td>
230 <td><tt>2</tt> </td>
235 <td><tt>3</tt> </td>
240 <li>m4 bits 7..4: see signals</li>
241 <li>m4 bits 3..0: Ground type (values with fences are not valid for depots and checkpoints)
244 <td nowrap valign=top><tt>0</tt> </td>
245 <td align=left>on bare land</td>
249 <td nowrap valign=top><tt>1</tt> </td>
250 <td align=left>on grass, no fences</td>
254 <td nowrap valign=top><tt>2</tt> </td>
255 <td align=left>fence on the NW side</td>
259 <td nowrap valign=top><tt>3</tt> </td>
260 <td align=left>fence on the SE side</td>
264 <td nowrap valign=top><tt>4</tt> </td>
265 <td align=left>fences on the NW and SE sides</td>
269 <td nowrap valign=top><tt>5</tt> </td>
270 <td align=left>fence on the NE side</td>
274 <td nowrap valign=top><tt>6</tt> </td>
275 <td align=left>fence on the SW side</td>
279 <td nowrap valign=top><tt>7</tt> </td>
280 <td align=left>fences on the NE and SW sides</td>
284 <td nowrap valign=top><tt>8</tt> </td>
285 <td align=left>fence on the E side (track in the W corner)</td>
289 <td nowrap valign=top><tt>9</tt> </td>
290 <td align=left>fence on the W side (track in the E corner)</td>
294 <td nowrap valign=top><tt>A</tt> </td>
295 <td align=left>fence on the S side (track in the N corner)</td>
299 <td nowrap valign=top><tt>B</tt> </td>
300 <td align=left>fence on the N side (track in the S corner)</td>
304 <td nowrap valign=top><tt>C</tt> </td>
305 <td align=left>on snow or desert</td>
309 <td nowrap valign=top><tt>D</tt> </td>
310 <td align=left>on grass with fence and shore or water on the free halftile</td>
314 <td nowrap valign=top><tt>E</tt> </td>
315 <td align=left>higher part on foundation with snow, lower without snow</td>
319 <li>m5 bit 7 clear: railway track
321 <li>m5 bits 5..0: track layout: bit set = track present:
324 <td nowrap valign=top>bit 0: </td>
325 <td align=left>in the X direction</td>
329 <td nowrap valign=top>bit 1: </td>
330 <td align=left>in the Y direction</td>
334 <td nowrap valign=top>bit 2: </td>
335 <td align=left>in the north corner (direction W-E)</td>
339 <td nowrap valign=top>bit 3: </td>
340 <td align=left>in the south corner (direction W-E)</td>
344 <td nowrap valign=top>bit 4: </td>
345 <td align=left>in the west corner (direction N-S)</td>
349 <td nowrap valign=top>bit 5: </td>
350 <td align=left>in the east corner (direction N-S)</td>
354 <li>m5 bit 6 set = with signals:<BR>
355 There are at most 4 signals on a tile. The signals 0..3 belong to the directions:
359 <td>Track <tt>0</tt> (X) </td>
360 <td>Track <tt>1</tt> (Y) </td>
361 <td>Track <tt>2</tt> (north) </td>
362 <td>Track <tt>3</tt> (south) </td>
363 <td>Track <tt>4</tt> (west) </td>
364 <td>Track <tt>5</tt> (east)</td>
368 <td align=left>Signal <tt>0</tt> </td>
378 <td align=left>Signal <tt>1</tt> </td>
388 <td align=left>Signal <tt>2</tt> </td>
398 <td align=left>Signal <tt>3</tt> </td>
408 <li>m2 bit 7: Signal 0 and 1: set = semaphore signals, clear = light signals</li>
409 <li>m2 bit 3: Signal 2 and 3: set = semaphore signals, clear = light signals</li>
410 <li>m2 bits 6..4: type of signal 0 and 1 (same values as m2 bits 2..0)</li>
411 <li>m2 bits 2..0: type of signal 2 and 3
414 <td nowrap="nowrap
" valign="top
"><tt>000</tt>: </td>
415 <td align="left
">normal signals</td>
419 <td nowrap="nowrap
" valign="top
"><tt>001</tt>: </td>
420 <td align="left
">pre-signals</td>
424 <td nowrap="nowrap
" valign="top
"><tt>010</tt>: </td>
425 <td align="left
">exit-signals</td>
429 <td nowrap="nowrap
" valign="top
"><tt>011</tt>: </td>
430 <td align="left
">combo-signals</td>
434 <td nowrap="nowrap
" valign="top
"><tt>100</tt>: </td>
435 <td align="left
">pbs signals</td>
439 <td nowrap="nowrap
" valign="top
"><tt>101</tt>: </td>
440 <td align="left
">no-entry signals</td>
445 <li>m3 bits 7..4: bit set = signal 3..0 present</li>
446 <li>m4 bits 7..4: bit clear = signal 3..0 shows red</li>
449 <li>m2 bits 8..10: track reserved for pbs
452 <td><tt>0</tt> </td>
453 <td>not reserved</td>
456 <td><tt>1</tt> </td>
460 <td><tt>2</tt> </td>
464 <td><tt>3</tt> </td>
465 <td>north corner (W-E)</td>
468 <td><tt>4</tt> </td>
469 <td>south corner (W-E)</td>
472 <td><tt>5</tt> </td>
473 <td>west corner (N-S)</td>
476 <td><tt>6</tt> </td>
477 <td>east corner (N-S)</td>
481 <li>m2 bit 11: opposite track is reserved, too</li>
484 <li>m5 bit 7 set, bit 6 set: railway depot
486 <li>m2: Depot index</li>
487 <li>m5 bits 1..0: exit towards
490 <td><tt>0</tt> </td>
495 <td><tt>1</tt> </td>
500 <td><tt>2</tt> </td>
505 <td><tt>3</tt> </td>
510 <li>m5 bit 4: pbs reservation state</li>
513 <li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction
">direction specified</a></li>
514 <li>m6 bits 1..0 : <a href="#tropic_zone
">Tropic zone definition</a></li>
519 <tr bgcolor="#CCCCCC
">
520 <td valign=top nowrap><strong><a name="Class2
"><tt> 2</tt></a></strong></td>
521 <td><strong>Roads</strong></td>
524 <td valign=top nowrap> </td>
527 <li>m2: Index into the array of towns (owning town for town roads; closest town otherwise, INVALID_TOWN if there is no town or we are creating a town)</li>
528 <li>m7 bit 5 set = on snow or desert</li>
529 <li>m7 bits 7..6: present road types
532 <td>bit 0 </td>
537 <td>bit 1 </td>
542 <li>m5 bits 7 clear: road or level-crossing
547 <td><tt>0</tt> </td>
548 <td>on bare land</td>
551 <td><tt>1</tt> </td>
555 <td><tt>2</tt> </td>
559 <td><tt>3</tt> </td>
560 <td>with streetlights</td>
563 <td><tt>5</tt> </td>
567 <td><tt>6</tt> </td>
568 <td>on grass with road works</td>
571 <td><tt>7</tt> </td>
572 <td>paved with road works</td>
576 <li>m3 bits 7..4: <a href="#OwnershipInfo
">owner</a> of road type 1 (tram); OWNER_NONE (<tt>10</tt>) is stored as OWNER_TOWN (<tt>0F</tt>)
577 <li>m5 bit 6 clear: road
579 <li>m1 bits 4..0: <a href="#OwnershipInfo
">owner</a> of the road type 0 (normal road)</li>
580 <li>m7 bits 3..0: counter for the roadworks</li>
581 <li>m5 bits 3..0: road layout road type 0 (normal road): bit set = road piece present:
584 <td align=left>bit 0: </td>
588 <td align=left>bit 1: </td>
592 <td align=left>bit 2: </td>
596 <td align=left>bit 3: </td>
601 <li>m3 bits 0..3: road layout road type 1 (tram)</li>
602 <li>m5 bits 5..4: bits to disallow vehicles to go a specific direction
605 <td align=left>bit 0: </td>
606 <td>set = disallow driving in south-west or south-east direction</td>
609 <td align=left>bit 1: </td>
610 <td>set = disallow driving in north-west or north-east direction</td>
616 <li>m5 bit 6 set: level crossing
618 <li>m1 bits 4..0: <a href="#OwnershipInfo
">owner</a> of the railway track</li>
619 <li>m3 bits 3..0: <a href="#TrackType
">railway track type</a></li>
620 <li>m5 bit 0: direction
623 <td align=left><tt>0</tt> </td>
624 <td align=left>road in the X direction, rail in Y</td>
627 <td align=left><tt>1</tt> </td>
628 <td align=left>road in the Y direction, rail in X</td>
632 <li>m5 bit 5: set if crossing lights are on</li>
633 <li>m7 bits 4..0: <a href="#OwnershipInfo
">owner</a> of the road type 0 (normal road)</li>
634 <li>m5 bit 4: pbs reservation state</li>
639 <li>m5 bit 7 set, bit 6 clear: road depot
641 <li>m1 bits 4..0: <a href="#OwnershipInfo
">owner</a> of the depot</li>
642 <li>m2: Depot index</li>
643 <li>m5 bits 1..0: exit towards:
646 <td><tt>0</tt> </td>
651 <td><tt>1</tt> </td>
656 <td><tt>2</tt> </td>
661 <td><tt>3</tt> </td>
668 <li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction
">direction specified</a></li>
669 <li>m6 bits 1..0 : <a href="#tropic_zone
">Tropic zone definition</a></li>
674 <tr bgcolor="#CCCCCC
">
675 <td valign=top nowrap><strong><a name="Class3
"><tt> 3</tt></a></strong></td>
676 <td><strong>Town building </strong></td>
679 <td valign=top nowrap> </td>
682 <li>m1 : Random bits <a href="#newhouses
">(newhouses)</a> </li>
683 <li>m2 : index into the array of towns</li>
686 <li> set : House is complete
688 <li>m5 : Age of house in years, clamped at 255</li>
691 <li> clear : House is in construction
693 <li>m5 bits 7..5 : free</li>
694 <li>m5 bits 4..3 : construction stage</li>
695 <li>m5 bits 2..0 : construction counter</li>
699 <li>m3 bit 6 : bit 8 of house type (m4), allowing 512 different types.</li>
700 <li>m3 bit 5 : free</li>
701 <li>m3 bits 4..0 : triggers activated <a href="#newhouses
">(newhouses)</a></li>
702 <li>m4 : <a href="landscape_externals.html
">town building type</a> (with m3[6] bit)</li>
703 <li>m5 : see m3 bit 7</li>
706 <li>If <a href="#newhouses
">newhouses</a> is activated
708 <li>bits 7..2 : Periodic processing time remaining</li>
711 <li>Standard behaviour
713 <li>bits 7..2 : lift position (for houses type 04 and 05)</li>
716 <li>bits 1..0 : tropic zone specifier</li>
721 <li>If <a href="#newhouses
">newhouses</a> is activated
723 <li>Current animation frame</li>
726 <li>Standard behaviour (only for houses type 04 and 05)
728 <li>bits 7..4 : free</li>
729 <li>bits 3..1 : lift destination. Values can be 0..6, except 1.<br>
730 So the building has 6 effective floors. This is due to the fact that the first floor is 2 'normal' floors high.<br>
731 One 'normal' floor has a height of 6 lift positions.
733 <li>bit 0 : Lift has destination when set</li>
739 <small><a name="newhouses
"></a>Newhouses is the name englobing a newGRF feature developped by TTDPatch devs (mainly Csaboka).<br>
740 It allows the replacement of the properties as well as the graphics of houses in the game.<br>
741 To distinguish between the standard behaviour and the newGRF one, HouseID (m4 + m3[6]) is tested for anything above 110.<br>
742 110 is the count of standard houses. So above 110 means there is a new definition of at least one house</small>
746 <tr bgcolor="#CCCCCC
">
747 <td valign=top nowrap><strong><a name="Class4
"><tt> 4 </tt></a></strong></td>
748 <td><strong>Trees </strong></td>
751 <td valign=top nowrap> </td>
754 <li>m1 bits 4..0: <a href="#OwnershipInfo
">owner</a> (normally <tt>10</tt>)</li>
755 <li>m2 bits 8..6: ground
759 <td align=left><tt>0</tt> </td>
764 <td align=left><tt>1</tt> </td>
765 <td>on rough land (density must be 3)</td>
769 <td align=left><tt>2</tt> </td>
770 <td>on snow or desert</td>
774 <td align=left><tt>3</tt> </td>
775 <td>on shore (density must be 3)</td>
779 <td align=left><tt>4</tt> </td>
780 <td>on snow with rough land underneed</td>
784 <li>m2 bits 5..4: ground density</li>
785 <li>m2 bits 3..0: update counter, incremented on every periodic processing.<br>
786 on wraparound the growth status is updated (or, if it's <tt>3</tt>, a random action is taken)</li>
787 <li>m3 bits 7..0: type of trees:
790 <td nowrap valign=top><tt>00</tt>..<tt>0B</tt> </td>
791 <td align=left>temperate climate trees</td>
795 <td nowrap valign=top><tt>0C</tt>..<tt>13</tt> </td>
796 <td align=left>sub-arctic climate trees</td>
800 <td nowrap valign=top><tt>14</tt>..<tt>1A</tt> </td>
801 <td align=left>rainforest trees</td>
805 <td nowrap valign=top><tt>1B</tt> </td>
806 <td align=left>cactus plants</td>
810 <td nowrap valign=top><tt>1C</tt>..<tt>1F</tt> </td>
811 <td align=left>sub-tropical climate, non-rainforest, non-desert trees</td>
815 <td nowrap valign=top><tt>20</tt>..<tt>28</tt> </td>
816 <td align=left>toyland trees</td>
819 <small>Note: the actually displayed set of trees depends on both type and number of trees</small>
821 <li>m5 bits 7..6: number of trees minus one</li>
822 <li>m5 bits 2..0: growth status:
825 <td><tt>0</tt>..<tt>2</tt> </td>
826 <td>one of trees is growing </td>
829 <td><tt>3</tt> </td>
830 <td>all trees are fully grown </td>
833 <td><tt>4</tt>..<tt>6</tt> </td>
834 <td>one of trees is withering </td>
838 <li>m6 bits 1..0 : <a href="#tropic_zone
">Tropic zone definition</a></li>
843 <tr bgcolor="#CCCCCC
">
844 <td valign=top nowrap><strong><a name="Class5
"><tt> 5</tt></a></strong></td>
845 <td><strong>Station tiles</strong></td>
848 <td valign=top nowrap> </td>
851 <li>m1 bits 6..5: water class for buoys, water part of docks and for airport tiles</li>
852 <li>m1 bits 4..0: <a href="#OwnershipInfo
">owner</a> of the station</li>
853 <li>m2: index into the array of stations</li>
854 <li>m3 bits 7..4: persistent random data for railway stations/waypoints and airports)</li>
855 <li>m3 bits 7..4: <a href="#OwnershipInfo
">owner</a> of tram tracks (road stop)</li>
856 <li>m3 bits 3..0: <a href="#TrackType
">track type</a> for railway stations/waypoints</li>
857 <li>m4: custom station id; 0 means standard graphics</li>
858 <li>m5: graphics index (range from 0..255 for each station type):
861 <td nowrap valign=top><tt>00</tt>..<tt>07</tt> </td>
862 <td align=left>railway station
865 <td><tt>00</tt>..<tt>01</tt> </td>
866 <td align=left>open platform</td>
869 <td><tt>02</tt>..<tt>03</tt> </td>
870 <td align=left>open platform with station building</td>
873 <td><tt>04</tt>....<tt>07</tt> </td>
874 <td align=left>roofed platform</td>
877 <td colspan=2>bit 0: clear = in X direction, set = in Y direction</td>
884 <td nowrap valign=top><tt>00</tt>..<tt>01</tt></td>
885 <td align=left>waypoints
888 <td><tt>00</tt> </td>
889 <td align=left>in X direction</td>
892 <td><tt>01</tt> </td>
893 <td align=left>in Y direction</td>
900 <td nowrap valign=top><tt>00</tt>..<tt>FF</tt></td>
901 <td align=left>all airports</td>
905 <td nowrap valign=top><tt>00</tt>..<tt>05</tt> </td>
906 <td align=left>road stops
909 <td><tt>00</tt> </td>
910 <td align=left>exit towards NE</td>
913 <td><tt>01</tt> </td>
914 <td align=left>exit towards SE</td>
917 <td><tt>02</tt> </td>
918 <td align=left>exit towards SW</td>
921 <td><tt>03</tt> </td>
922 <td align=left>exit towards NW</td>
925 <td><tt>04</tt> </td>
926 <td align=left>drive through X</td>
929 <td><tt>05</tt> </td>
930 <td align=left>drive through Y</td>
937 <td nowrap valign=top><tt>00</tt>..<tt>05</tt> </td>
938 <td align=left>ship dock
941 <td><tt>00</tt> </td>
942 <td align=left>SW coast part</td>
945 <td><tt>01</tt> </td>
946 <td align=left>NW coast part</td>
949 <td><tt>02</tt> </td>
950 <td align=left>NE coast part</td>
953 <td><tt>03</tt> </td>
954 <td align=left>SE coast part</td>
957 <td><tt>04</tt> </td>
958 <td align=left>X direction water part</td>
961 <td><tt>05</tt> </td>
962 <td align=left>Y direction water part</td>
969 <li>m6 bits 5..3: the station type (rail, airport, truck, bus, oilrig, dock, buoy, waypoint)</li>
970 <li>m6 bit 2: pbs reservation state for railway stations/waypoints</li>
972 <li>m6 bits 1..0 : <a href="#tropic_zone
">Tropic zone definition</a></li>
973 <li>m7 bits 4..0: <a href="#OwnershipInfo
">owner</a> of road (road stops)</li>
974 <li>m7 bits 7..6: present road types (road stops)</li>
975 <li>m7: animation frame (railway stations/waypoints, airports)</li>
980 <tr bgcolor="#CCCCCC
">
981 <td valign=top nowrap><strong><a name="Class6
"><tt> 6 </tt></a></strong></td>
982 <td><strong>Water</strong></td>
985 <td valign=top nowrap> </td>
988 <li>m1 bits 6..5 : Water class (sea, canal or river)
989 <li>m1 bits 4..0: <a href="#OwnershipInfo
">owner</a> (for sea, rivers, and coasts normally <tt>11</tt>)</li>
990 <li>m2: Depot index (for depots only)</li>
991 <li>m4: Random data for canal or river tiles</li>
995 <td nowrap valign=top><tt>00</tt> </td>
996 <td align=left>water, canal or river</td>
1000 <td nowrap valign=top><tt>01</tt> </td>
1001 <td align=left>coast or riverbank</td>
1005 <td nowrap valign=top><tt>10</tt>..<tt>1B</tt> </td>
1006 <td align=left>canal locks
1009 <td nowrap valign=top><tt>10</tt> </td>
1010 <td align=left>middle part, (SW-NE direction)</td>
1013 <td nowrap valign=top><tt>11</tt> </td>
1014 <td align=left>middle part, (NW-SE direction)</td>
1017 <td nowrap valign=top><tt>12</tt> </td>
1018 <td align=left>middle part, (NE-SW direction)</td>
1021 <td nowrap valign=top><tt>13</tt> </td>
1022 <td align=left>middle part, (SE-NW direction)</td>
1025 <td nowrap valign=top><tt>14</tt> </td>
1026 <td align=left>lower part, (SW-NE direction)</td>
1029 <td nowrap valign=top><tt>15</tt> </td>
1030 <td align=left>lower part, (NW-SE direction)</td>
1033 <td nowrap valign=top><tt>16</tt> </td>
1034 <td align=left>lower part, (NE-SW direction)</td>
1037 <td nowrap valign=top><tt>17</tt> </td>
1038 <td align=left>lower part, (SE-NW direction)</td>
1041 <td nowrap valign=top><tt>18</tt> </td>
1042 <td align=left>upper part, (SW-NE direction)</td>
1045 <td nowrap valign=top><tt>19</tt> </td>
1046 <td align=left>upper part, (NW-SE direction)</td>
1049 <td nowrap valign=top><tt>1A</tt> </td>
1050 <td align=left>upper part, (NE-SW direction)</td>
1053 <td nowrap valign=top><tt>1B</tt> </td>
1054 <td align=left>upper part, (SE-NW direction)</td>
1061 <td nowrap valign=top><tt>80</tt>..<tt>83</tt> </td>
1062 <td align=left>ship depots
1065 <td nowrap valign=top><tt>80</tt> </td>
1066 <td align=left>ship depot, NE part (X direction)</td>
1069 <td nowrap valign=top><tt>81</tt> </td>
1070 <td align=left>ship depot, SW part (X direction)</td>
1073 <td nowrap valign=top><tt>82</tt> </td>
1074 <td align=left>ship depot, NW part (Y direction)</td>
1077 <td nowrap valign=top><tt>83</tt> </td>
1078 <td align=left>ship depot, SE part (Y direction)</td>
1085 <li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction
">direction specified</a></li>
1086 <li>m6 bits 1..0 : <a href="#tropic_zone
">Tropic zone definition</a></li>
1091 <tr bgcolor="#CCCCCC
">
1092 <td valign=top nowrap><strong><a name="Class7
"><tt> 7 </tt></a></strong></td>
1093 <td><strong>Void </strong></td>
1096 <td valign=top nowrap> </td>
1097 <td>Tiles of this class form an invisible, one tile wide border at the south (bottom) edges of the map,<br>
1098 so as to protect several algorithms from the consequences of a wraparound at the edges.
1102 <tr bgcolor="#CCCCCC
">
1103 <td valign=top nowrap><strong><a name="Class8
"><tt> 8</tt></a></strong></td>
1104 <td><strong>Industry tile </strong></td>
1107 <td valign=top nowrap> </td>
1110 <li>m1 bit 7: clear = under construction
1112 <li>m1 bits 6..5 : Water class (sea, canal, river or land)
1113 <li>m1 bits 3..2: construction counter, for buildings under construction incremented on every periodic tile processing</li>
1114 <li>m1 bits 1..0: stage of construction (<tt>3</tt> = completed), incremented when the construction counter wraps around<br>
1115 the meaning is different for some animated tiles which are never under construction (types <tt>01</tt>, <tt>1E</tt>..<tt>20</tt>, <tt>30</tt>, <tt>58</tt>; see above)</li>
1118 <li>m2: index into the array of industries</li>
1119 <li>m3: random bits (NewGRF)</li>
1120 <li>m4: animation loop</li>
1121 <li>m5: type (plus m6 bit 2):<br>
1122 <small>(note: this is not the same as the industry type, which is stored in the array of industries)</small>
1126 <td nowrap valign=top><tt>00</tt>..<tt>06</tt> </td>
1127 <td align=left>coal mine
1130 <td nowrap valign=top><tt>00</tt> </td>
1131 <td align=left>wheel tower when not animated</td>
1134 <td nowrap valign=top><tt>01</tt> </td>
1135 <td align=left>wheel tower when animated<br>
1136 animation state in m7 bits 5..0; m7 bit 6 set = sound already generated</td>
1143 <td nowrap valign=top><tt>07</tt>..<tt>0A</tt> </td>
1144 <td align=left>power station
1147 <td nowrap valign=top><tt>08</tt> </td>
1148 <td align=left>chimney</td>
1151 <td nowrap valign=top><tt>0A</tt> </td>
1152 <td align=left>transformer; animation progress in m7(valid range <tt>0</tt>..<tt>7</tt>)</td>
1159 <td nowrap valign=top><tt>0B</tt>..<tt>0F</tt> </td>
1160 <td align=left>sawmill</td>
1164 <td nowrap valign=top><tt>10</tt>..<tt>11</tt> </td>
1165 <td align=left>forest
1168 <td nowrap valign=top><tt>11</tt> </td>
1169 <td align=left>trees cut down</td>
1176 <td nowrap valign=top><tt>12</tt>..<tt>17</tt> </td>
1177 <td align=left>oil refinery</td>
1181 <td nowrap valign=top><tt>18</tt>..<tt>1C</tt> </td>
1182 <td align=left>oil rig</td>
1186 <td nowrap valign=top><tt>1D</tt>..<tt>20</tt> </td>
1187 <td align=left>oil wells
1190 <td nowrap valign=top><tt>1D</tt> </td>
1191 <td align=left>not animated</td>
1194 <td nowrap valign=top><tt>1E</tt>..<tt>20</tt> </td>
1195 <td align=left>various stages of animation; progress of animation in m7</td>
1202 <td nowrap valign=top><tt>21</tt>..<tt>26</tt> </td>
1203 <td align=left>farm</td>
1207 <td nowrap valign=top><tt>27</tt>..<tt>2A</tt> </td>
1208 <td align=left>factory (temperate climate)</td>
1212 <td nowrap valign=top><tt>2B</tt>..<tt>2E</tt> </td>
1213 <td align=left>printing works</td>
1217 <td nowrap valign=top><tt>2F</tt>..<tt>33</tt> </td>
1218 <td align=left>copper ore mine
1221 <td nowrap valign=top><tt>2F</tt> </td>
1222 <td align=left>wheel tower when not animated</td>
1225 <td nowrap valign=top><tt>30</tt> </td>
1226 <td align=left>wheel tower when animated; animation state in m7 bits 5..0; m7 bit 6 set = sound already generated</td>
1229 <td nowrap valign=top><tt>31</tt> </td>
1230 <td align=left>chimney</td>
1237 <td nowrap valign=top><tt>34</tt>..<tt>39</tt> </td>
1238 <td align=left>steel mill</td>
1242 <td nowrap valign=top><tt>3A</tt>..<tt>3B</tt> </td>
1243 <td align=left>bank (temperate climate)</td>
1247 <td nowrap valign=top><tt>3C</tt>..<tt>3F</tt> </td>
1248 <td align=left>food processing plant</td>
1252 <td nowrap valign=top><tt>40</tt>..<tt>47</tt> </td>
1253 <td align=left>paper mill</td>
1257 <td nowrap valign=top><tt>48</tt>..<tt>58</tt> </td>
1258 <td align=left>gold mine
1261 <td nowrap valign=top><tt>4F</tt> </td>
1262 <td align=left>wheel tower when not animated</td>
1265 <td nowrap valign=top><tt>58</tt> </td>
1266 <td align=left>wheel tower when animated; animation state in m7 bits 5..0; m7 bit 6 set = sound already generated</td>
1272 <td nowrap valign=top><tt>59</tt>..<tt>5A</tt> </td>
1273 <td align=left>bank (sub-arctic or sub-tropical climate)</td>
1277 <td nowrap valign=top><tt>5B</tt>..<tt>63</tt> </td>
1278 <td align=left>diamond mine</td>
1282 <td nowrap valign=top><tt>64</tt>..<tt>73</tt> </td>
1283 <td align=left>iron ore mine</td>
1287 <td nowrap valign=top><tt>74</tt></td>
1288 <td align=left>fruit plantation</td>
1292 <td nowrap valign=top><tt>75</tt></td>
1293 <td align=left>rubber plantation</td>
1297 <td nowrap valign=top><tt>76</tt>..<tt>77</tt> </td>
1298 <td align=left>water supply</td>
1302 <td nowrap valign=top><tt>78</tt></td>
1303 <td align=left>water tower</td>
1307 <td nowrap valign=top><tt>79</tt>..<tt>7C</tt> </td>
1308 <td align=left>factory (sub-tropical climate)</td>
1312 <td nowrap valign=top><tt>7D</tt>..<tt>80</tt> </td>
1313 <td align=left>lumber mill</td>
1317 <td nowrap valign=top><tt>81</tt>..<tt>82</tt> </td>
1318 <td align=left>candyfloss forest
1321 <td nowrap valign=top><tt>82</tt> </td>
1322 <td align=left>candyfloss 'trees' cut down</td>
1329 <td nowrap valign=top><tt>83</tt>..<tt>86</tt> </td>
1330 <td align=left>sweet factory</td>
1334 <td nowrap valign=top><tt>87</tt>..<tt>88</tt> </td>
1335 <td align=left>battery farm
1338 <td nowrap valign=top><tt>88</tt> </td>
1339 <td align=left>batteries 'reaped'</td>
1346 <td nowrap valign=top><tt>89</tt></td>
1347 <td align=left>cola wells</td>
1351 <td nowrap valign=top><tt>8A</tt>..<tt>8D</tt> </td>
1352 <td align=left>toy shop</td>
1356 <td nowrap valign=top><tt>8E</tt>..<tt>93</tt> </td>
1357 <td align=left>toy factory
1360 <td nowrap valign=top><tt>8F</tt> </td>
1361 <td align=left>Animated part; animation state in m7 (valid range <tt>00</tt>..<tt>31</tt>)<br>
1362 Tile animation is started (m4 zeroed) on the periodic processing.<br>
1363 While the animation is in progress, m4 holds the number
1364 of animation cycles that have already taken place.<br>
1365 when this number reaches 8 the animation is stopped.</td>
1372 <td nowrap valign=top><tt>94</tt>..<tt>9B</tt> </td>
1373 <td align=left>plastic fountains (various stages of cyclic animation)</td>
1377 <td nowrap valign=top><tt>9C</tt>..<tt>9F</tt> </td>
1378 <td align=left>fizzy drink factory</td>
1382 <td nowrap valign=top><tt>A0</tt>..<tt>A3</tt> </td>
1383 <td align=left>bubble generator
1386 <td nowrap valign=top><tt>A1</tt> </td>
1387 <td align=left>generators</td>
1390 <td nowrap valign=top><tt>A2</tt> </td>
1391 <td align=left>bubble capture facility; animation state in m7 (valid range <tt>00</tt>..<tt>27</tt>)</td>
1398 <td nowrap valign=top><tt>A4</tt>..<tt>A6</tt> </td>
1399 <td align=left>toffee quarry
1402 <td nowrap valign=top><tt>A5</tt> </td>
1403 <td align=left>animated part; animation state in m3 (valid range <tt>00</tt>..<tt>45</tt>)</td>
1410 <td nowrap valign=top><tt>A7</tt>..<tt>AE</tt> </td>
1411 <td align=left>sugar mine
1414 <td nowrap valign=top><tt>AE</tt> </td>
1415 <td align=left>animated part; animation state in m3 (valid range <tt>00</tt>..<tt>5F</tt>)</td>
1421 <td nowrap valign=top><tt>AF</tt>..<tt>1FF</tt> </td>
1422 <td align=left>NewGRF industries industry</td>
1426 <li>m6 bits 5..3: random triggers (NewGRF)</li>
1427 <li>m6 bit 2: bit 8 of type (see m5)</li>
1428 <li>m6 bits 1..0 : <a href="#tropic_zone
">Tropic zone definition</a></li>
1429 <li>m7: animation frame</li>
1434 <tr bgcolor="#CCCCCC
">
1435 <td valign=top nowrap><strong><a name="Class9
"><tt> 9</tt></a></strong></td>
1436 <td><strong>Tunnel / bridge</strong></td>
1439 <td valign=top nowrap> </td>
1442 <li>m1 bits 4..0: <a href="#OwnershipInfo
">owner</a></li>
1443 <li>m3 bits 7..4: <a href="#OwnershipInfo
">owner</a> of tram</li>
1444 <li>m3 bits 3..0: <a href="#TrackType
">track type</a> for railway</li>
1445 <li>m5 bit 4: pbs reservation state for railway</li>
1446 <li>m5 bits 7 clear: tunnel entrance/exit</li>
1447 <li>m5 bit 7 set: bridge ramp
1449 <li>m6 bits 5..2: <a name="BridgeType
">bridge type</a>:
1452 <th align=left>Type </th>
1453 <th align=left>Max. speed (mph) </th>
1454 <th align=left>Description</th>
1458 <td nowrap valign=top><tt>0</tt> </td>
1459 <td align=center>20</td>
1460 <td align=left>wooden</td>
1464 <td nowrap valign=top><tt>1</tt> </td>
1465 <td align=center>30</td>
1466 <td align=left>concrete</td>
1470 <td nowrap valign=top><tt>2</tt> </td>
1471 <td align=center>40</td>
1472 <td align=left>girder, steel</td>
1476 <td nowrap valign=top><tt>3</tt> </td>
1477 <td align=center>50</td>
1478 <td align=left>suspension, concrete</td>
1482 <td nowrap valign=top><tt>4</tt> </td>
1483 <td align=center>60</td>
1484 <td align=left>suspension, steel</td>
1488 <td nowrap valign=top><tt>5</tt> </td>
1489 <td align=center>70</td>
1490 <td align=left>suspension, steel</td>
1494 <td nowrap valign=top><tt>6</tt> </td>
1495 <td align=center>100</td>
1496 <td align=left>cantilever, steel</td>
1500 <td nowrap valign=top><tt>7</tt> </td>
1501 <td align=center>130</td>
1502 <td align=left>cantilever, steel</td>
1506 <td nowrap valign=top><tt>8</tt> </td>
1507 <td align=center>150</td>
1508 <td align=left>cantilever, steel</td>
1512 <td nowrap valign=top><tt>9</tt> </td>
1513 <td align=center>160</td>
1514 <td align=left>girder, steel</td>
1518 <td nowrap valign=top><tt>A</tt> </td>
1519 <td align=center>200</td>
1520 <td align=left>tubular, steel</td>
1524 <td nowrap valign=top><tt>B</tt> </td>
1525 <td align=center>320</td>
1526 <td align=left>tubular, steel</td>
1530 <td nowrap valign=top><tt>C</tt> </td>
1531 <td align=center>380</td>
1532 <td align=left>tubular, silicon</td>
1538 <li>m5 bits 3..2: transport type
1541 <td><tt>0</tt> </td>
1546 <td><tt>1</tt> </td>
1551 <td><tt>2</tt> </td>
1556 <li>m5 bits 1..0: direction onto the bridge / out of the tunnel
1559 <td><tt>0</tt> </td>
1564 <td><tt>1</tt> </td>
1569 <td><tt>2</tt> </td>
1574 <td><tt>3</tt> </td>
1579 <li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction
">direction specified</a></li>
1580 <li>m6 bits 1..0 : <a href="#tropic_zone
">Tropic zone definition</a></li>
1581 <li>m7 bits 4..0: <a href="#OwnershipInfo
">owner</a> of road</li>
1582 <li>m7 bit 5 set = on snow or desert</li>
1583 <li>m7 bits 7..6: present road types for road</li>
1588 <tr bgcolor="#CCCCCC
">
1589 <td valign=top nowrap><strong><a name="ClassA
"><tt> A</tt></a></strong></td>
1590 <td><strong><tt>Objects</tt></strong></td>
1593 <td valign=top nowrap> </td>
1596 <li>m1 bits 6..5 : Water class (sea, canal, river or land)
1597 <li>m1 bits 4..0: <a href="#OwnershipInfo
">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li>
1598 <li>m2: index into the array of objects
1603 <td nowrap valign=top><tt>00</tt> </td>
1604 <td align=left>transmitter</td>
1608 <td nowrap valign=top><tt>01</tt> </td>
1609 <td align=left>lighthouse</td>
1613 <td nowrap valign=top><tt>02</tt> </td>
1614 <td align=left>company statue
1618 <td nowrap valign=top><tt>03</tt> </td>
1619 <td align=left>company-owned land</td>
1623 <td nowrap valign=top><tt>04</tt><tt></tt> </td>
1624 <td align=left>company headquarters</td>
1628 <li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction
">direction specified</a></li>
1629 <li>m6 bits 1..0 : <a href="#tropic_zone
">Tropic zone definition</a></li>
1630 <li>m7: animation counter
1635 <td colspan=2>Classes <tt>B</tt> through <tt>F</tt> are reserved. The presence
1636 of a tile in one of the reserved classes will crash OTTD.</td>
1642 Original Copyright © 2003 by Marcin Grzegorczyk for TTDLX.<br>
1643 Transport Tycoon and Transport Tycoon Deluxe are Copyright © by Chris Sawyer.<br>
1644 All the other trademarks are the property of their respective owners.<br>