docs/landscape.html
changeset 2487 be510f15d36f
parent 2229 c82f7c143f91
child 2670 34970983ef08
equal deleted inserted replaced
2486:f02260ccd668 2487:be510f15d36f
    12 <h3><a name="Landscape">Landscape</a></h3>
    12 <h3><a name="Landscape">Landscape</a></h3>
    13 <p>
    13 <p>
    14 Five attributes hold the information about a tile.
    14 Five attributes hold the information about a tile.
    15 These attributes are referred to as
    15 These attributes are referred to as
    16   "<span style="font-weight: bold;">type_height</span>",
    16   "<span style="font-weight: bold;">type_height</span>",
    17   "<span style="font-weight: bold;">owner</span>",
    17   "<span style="font-weight: bold;">m1</span>",
    18   "<span style="font-weight: bold;">m2</span>",
    18   "<span style="font-weight: bold;">m2</span>",
    19   "<span style="font-weight: bold;">m3</span>",
    19   "<span style="font-weight: bold;">m3</span>",
    20   "<span style="font-weight: bold;">m4</span>" and
    20   "<span style="font-weight: bold;">m4</span>" and
    21   "<span style="font-weight: bold;">m5</span>".
    21   "<span style="font-weight: bold;">m5</span>".
    22 The most important value is the class of a tile, stored in the upper 4 bits of the type_height array.
    22 The most important value is the class of a tile, stored in the upper 4 bits of the type_height array.
    50 </table>
    50 </table>
    51 </li>
    51 </li>
    52 <li>m5 bits 7..5: update counter, incremented on every periodic processing for tile types other than <tt>03</tt>, <tt>07</tt>, <tt>0B</tt> and <tt>10</tt> and above, 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)
    52 <li>m5 bits 7..5: update counter, incremented on every periodic processing for tile types other than <tt>03</tt>, <tt>07</tt>, <tt>0B</tt> and <tt>10</tt> and above, 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)
    53 <br>(for snow and desert, these bits are not used, tile is updated on every periodic processing)
    53 <br>(for snow and desert, these bits are not used, tile is updated on every periodic processing)
    54 </li>
    54 </li>
    55 <li>owner: <a href="#OwnershipInfo">owner</a> of the tile (normally <tt>10</tt>)
    55 <li>m1: <a href="#OwnershipInfo">owner</a> of the tile (normally <tt>10</tt>)
    56 </li>
    56 </li>
    57 <li>m4 bits 7..5: type of hedge on the SW border of the tile (1 through 6, or 0=none); bits 4..2: same for the SE border
    57 <li>m4 bits 7..5: type of hedge on the SW border of the tile (1 through 6, or 0=none); bits 4..2: same for the SE border
    58 </li>
    58 </li>
    59 </ul>
    59 </ul>
    60 </td></tr>
    60 </td></tr>
   110 <tr><td nowrap valign=top><tt>011</tt>: </td><td align=left>combo-signals</td></tr>
   110 <tr><td nowrap valign=top><tt>011</tt>: </td><td align=left>combo-signals</td></tr>
   111 <tr><td nowrap valign=top><tt>100</tt>: </td><td align=left>PBS signals</td></tr>
   111 <tr><td nowrap valign=top><tt>100</tt>: </td><td align=left>PBS signals</td></tr>
   112 <tr><td nowrap valign=top>bit 3: </td><td align=left>set = semaphore signals, clear = light signals</td></tr>
   112 <tr><td nowrap valign=top>bit 3: </td><td align=left>set = semaphore signals, clear = light signals</td></tr>
   113 </table></li>
   113 </table></li>
   114 </ul></li>
   114 </ul></li>
   115 <li>owner: <a href="#OwnershipInfo">owner</a> of the track
   115 <li>m1: <a href="#OwnershipInfo">owner</a> of the track
   116 </li>
   116 </li>
   117 <li>m2 bits 0..3:
   117 <li>m2 bits 0..3:
   118 <table>
   118 <table>
   119 <tr><td nowrap valign=top><tt>0</tt>&nbsp; </td><td align=left>on bare land</td></tr>
   119 <tr><td nowrap valign=top><tt>0</tt>&nbsp; </td><td align=left>on bare land</td></tr>
   120 <tr><td nowrap valign=top><tt>1</tt>&nbsp; </td><td align=left>on grass, no fences</td></tr>
   120 <tr><td nowrap valign=top><tt>1</tt>&nbsp; </td><td align=left>on grass, no fences</td></tr>
   143 <br>m5 bits 1..0 - direction: exit towards: <tt>00</tt> = NE, <tt>01</tt> = SE, <tt>02</tt> = SW, <tt>03</tt> = NW</li>
   143 <br>m5 bits 1..0 - direction: exit towards: <tt>00</tt> = NE, <tt>01</tt> = SE, <tt>02</tt> = SW, <tt>03</tt> = NW</li>
   144 <li>m5 value C4..C5: checkpoint
   144 <li>m5 value C4..C5: checkpoint
   145 <br>bit 0: clear = in X direction, set = in Y direction
   145 <br>bit 0: clear = in X direction, set = in Y direction
   146 <br>
   146 <br>
   147 <br>
   147 <br>
   148 <li>owner: <a href="#OwnershipInfo">owner</a> of the depot / checkpoint</li>
   148 <li>m1: <a href="#OwnershipInfo">owner</a> of the depot / checkpoint</li>
   149 <li>m3 bits 0..3 = <a href="#TrackType">track type</a></li>
   149 <li>m3 bits 0..3 = <a href="#TrackType">track type</a></li>
   150 <li>m3 bit 4 = use custom sprite (valid only for the checkpoint)</li>
   150 <li>m3 bit 4 = use custom sprite (valid only for the checkpoint)</li>
   151 <li>m3 bit 6 = track on this tile is reserved by pbs</li>
   151 <li>m3 bit 6 = track on this tile is reserved by pbs</li>
   152 <li>m4 = custom station id</li>
   152 <li>m4 = custom station id</li>
   153 </ul>
   153 </ul>
   161 <tr><td nowrap valign=top>bit 0: </td><td align=left>NW piece</td></tr>
   161 <tr><td nowrap valign=top>bit 0: </td><td align=left>NW piece</td></tr>
   162 <tr><td nowrap valign=top>bit 1: </td><td align=left>SW piece</td></tr>
   162 <tr><td nowrap valign=top>bit 1: </td><td align=left>SW piece</td></tr>
   163 <tr><td nowrap valign=top>bit 2: </td><td align=left>SE piece</td></tr>
   163 <tr><td nowrap valign=top>bit 2: </td><td align=left>SE piece</td></tr>
   164 <tr><td nowrap valign=top>bit 3: </td><td align=left>NE piece</td></tr>
   164 <tr><td nowrap valign=top>bit 3: </td><td align=left>NE piece</td></tr>
   165 </table></li>
   165 </table></li>
   166 <li>owner: <a href="#OwnershipInfo">owner</a> of the road</li>
   166 <li>m1: <a href="#OwnershipInfo">owner</a> of the road</li>
   167 <li>m2: Index into the array of towns, 0 for non-town roads</li>
   167 <li>m2: Index into the array of towns, 0 for non-town roads</li>
   168 <li>m4 bits 0..3: counter for the roadworks</li>
   168 <li>m4 bits 0..3: counter for the roadworks</li>
   169 <li>m4 bits 4..6: <tt>0</tt> - on bare land, <tt>1</tt> - on grass, <tt>2</tt> - paved, <tt>3</tt> - with streetlights, <tt>5</tt> - tree-lined, <tt>6</tt> - on grass with road works, <tt>7</tt> - paved with road works</li>
   169 <li>m4 bits 4..6: <tt>0</tt> - on bare land, <tt>1</tt> - on grass, <tt>2</tt> - paved, <tt>3</tt> - with streetlights, <tt>5</tt> - tree-lined, <tt>6</tt> - on grass with road works, <tt>7</tt> - paved with road works</li>
   170 <li>m4 bit 7 set = on snow or desert</li>
   170 <li>m4 bit 7 set = on snow or desert</li>
   171 </ul>
   171 </ul>
   172 m5 bit 4 set, bits 7..5 clear: level crossing
   172 m5 bit 4 set, bits 7..5 clear: level crossing
   173 <ul>
   173 <ul>
   174 <li>m5 bit 3: clear - road in the X direction, set - road in the Y direction (railway track always perpendicular)</li>
   174 <li>m5 bit 3: clear - road in the X direction, set - road in the Y direction (railway track always perpendicular)</li>
   175 <li>m5 bit 2: set if crossing lights are on</li>
   175 <li>m5 bit 2: set if crossing lights are on</li>
   176 <li>m5 bit 0: set if rail track is reserved by pbs</li>
   176 <li>m5 bit 0: set if rail track is reserved by pbs</li>
   177 <li>owner: <a href="#OwnershipInfo">owner</a> of the railway track</li>
   177 <li>m1: <a href="#OwnershipInfo">owner</a> of the railway track</li>
   178 <li>m2: Index into the array of towns, 0 for non-town roads</li>
   178 <li>m2: Index into the array of towns, 0 for non-town roads</li>
   179 <li>m3 bits 0..7: <a href="#OwnershipInfo">owner</a> of the road</li>
   179 <li>m3 bits 0..7: <a href="#OwnershipInfo">owner</a> of the road</li>
   180 <li>m4 bits 3..0: <a href="#TrackType">track type</a></li>
   180 <li>m4 bits 3..0: <a href="#TrackType">track type</a></li>
   181 <li>m4 bits 4..6: <tt>0</tt> - on bare land, <tt>1</tt> - on grass, <tt>2</tt> or higher - paved</li>
   181 <li>m4 bits 4..6: <tt>0</tt> - on bare land, <tt>1</tt> - on grass, <tt>2</tt> or higher - paved</li>
   182 <li>m4 bit 7 set = on snow or desert</li>
   182 <li>m4 bit 7 set = on snow or desert</li>
   183 </ul>
   183 </ul>
   184 m5 bit 5 set: road depot
   184 m5 bit 5 set: road depot
   185 <ul>
   185 <ul>
   186 <li>m5 bits 3..0 - direction: exit towards: <tt>0</tt> = NE, <tt>1</tt> = SE, <tt>2</tt> = SW, <tt>3</tt> = NW</li>
   186 <li>m5 bits 3..0 - direction: exit towards: <tt>0</tt> = NE, <tt>1</tt> = SE, <tt>2</tt> = SW, <tt>3</tt> = NW</li>
   187 <li>owner: <a href="#OwnershipInfo">owner</a> of the depot</li>
   187 <li>m1: <a href="#OwnershipInfo">owner</a> of the depot</li>
   188 <li>m4 bit 7 set = on snow or desert (not displayed, but set internally)</li>
   188 <li>m4 bit 7 set = on snow or desert (not displayed, but set internally)</li>
   189 </ul>
   189 </ul>
   190 </td></tr>
   190 </td></tr>
   191 
   191 
   192 <tr><td valign=top nowrap><a name="Class3"><tt> 3 </tt></a></td><td>
   192 <tr><td valign=top nowrap><a name="Class3"><tt> 3 </tt></a></td><td>
   285 </table></li>
   285 </table></li>
   286 <li>m3 bits 7..6: stage of construction (<tt>3</tt> = completed)</li>
   286 <li>m3 bits 7..6: stage of construction (<tt>3</tt> = completed)</li>
   287 <li>m5 bits 2..0: construction counter, for buildings under construction incremented on every periodic tile processing, on wraparound the stage of construction in m3 is increased</li>
   287 <li>m5 bits 2..0: construction counter, for buildings under construction incremented on every periodic tile processing, on wraparound the stage of construction in m3 is increased</li>
   288 <li>for large office blocks (types <tt>04</tt> and <tt>05</tt>):
   288 <li>for large office blocks (types <tt>04</tt> and <tt>05</tt>):
   289 <ul>
   289 <ul>
   290 <li>owner bits 6..0: position of the lift</li>
   290 <li>m1 bits 6..0: position of the lift</li>
   291 <li>owner bit 7: if set the lift is moving</li>
   291 <li>m1 bit 7: if set the lift is moving</li>
   292 <li>m5 bit 7: if set then m5 bits 5..0 hold the final position of the lift divided by 6 (valid values 0..6 except 1)</li>
   292 <li>m5 bit 7: if set then m5 bits 5..0 hold the final position of the lift divided by 6 (valid values 0..6 except 1)</li>
   293 </ul></li>
   293 </ul></li>
   294 </ul>
   294 </ul>
   295 </td></tr>
   295 </td></tr>
   296 
   296 
   318 <tr><td nowrap valign=top><tt>1</tt>&nbsp; </td><td align=left>on rough land</td></tr>
   318 <tr><td nowrap valign=top><tt>1</tt>&nbsp; </td><td align=left>on rough land</td></tr>
   319 <tr><td nowrap valign=top><tt>2</tt>&nbsp; </td><td align=left>on snow or desert; m2 bits 7..6 - amount of snow or desert (for desert always set to 3 in TTD)
   319 <tr><td nowrap valign=top><tt>2</tt>&nbsp; </td><td align=left>on snow or desert; m2 bits 7..6 - amount of snow or desert (for desert always set to 3 in TTD)
   320 </td></tr>
   320 </td></tr>
   321 </table></li>
   321 </table></li>
   322 <li>m2 bits 3..0: update counter, incremented on every periodic processing, on wraparound the growth status is updated (or, if it's <tt>3</tt>, a random action is taken)</li>
   322 <li>m2 bits 3..0: update counter, incremented on every periodic processing, on wraparound the growth status is updated (or, if it's <tt>3</tt>, a random action is taken)</li>
   323 <li>owner: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li>
   323 <li>m1: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li>
   324 </ul>
   324 </ul>
   325 </td></tr>
   325 </td></tr>
   326 
   326 
   327 <tr><td valign=top nowrap><a name="Class5"><tt> 5 </tt></a></td><td>
   327 <tr><td valign=top nowrap><a name="Class5"><tt> 5 </tt></a></td><td>
   328 Station tile
   328 Station tile
   383 <tr><td nowrap valign=top><tt>52</tt> </td><td align=left>buoy</td></tr>
   383 <tr><td nowrap valign=top><tt>52</tt> </td><td align=left>buoy</td></tr>
   384 </td></tr>
   384 </td></tr>
   385 <tr><td colspan=2></td></tr> <!-- spacer -->
   385 <tr><td colspan=2></td></tr> <!-- spacer -->
   386 </table>
   386 </table>
   387 </li>
   387 </li>
   388 <li>owner: <a href="#OwnershipInfo">owner</a> of the station</li>
   388 <li>m1: <a href="#OwnershipInfo">owner</a> of the station</li>
   389 <li>m2: index into the <a href="#_StationArray">array of stations</a></li>
   389 <li>m2: index into the <a href="#_StationArray">array of stations</a></li>
   390 <li>m3 bits 0..3: <a href="#TrackType">track type</a> for railway stations, must be 0 for all the other stations</li>
   390 <li>m3 bits 0..3: <a href="#TrackType">track type</a> for railway stations, must be 0 for all the other stations</li>
   391 <li>m3 bit 4 = use custom sprite (valid only railway stations FOR NOW)</li>
   391 <li>m3 bit 4 = use custom sprite (valid only railway stations FOR NOW)</li>
   392 <li>m3 bit 6 set = track is reserved by pbs (railway stations only)</li>
   392 <li>m3 bit 6 set = track is reserved by pbs (railway stations only)</li>
   393 <li>m4 = custom station id</li>
   393 <li>m4 = custom station id</li>
   425 </td></tr>
   425 </td></tr>
   426 
   426 
   427 </table>
   427 </table>
   428 </td></tr>
   428 </td></tr>
   429 </table></li>
   429 </table></li>
   430 <li>owner: <a href="#OwnershipInfo">owner</a> (for water and coasts normally <tt>11</tt>)</li>
   430 <li>m1: <a href="#OwnershipInfo">owner</a> (for water and coasts normally <tt>11</tt>)</li>
   431 </ul>
   431 </ul>
   432 </td></tr>
   432 </td></tr>
   433 
   433 
   434 <tr><td valign=top nowrap><a name="Class7"><tt> 7 </tt></a></td><td>
   434 <tr><td valign=top nowrap><a name="Class7"><tt> 7 </tt></a></td><td>
   435 Void
   435 Void
   445 <br><small>(note: this is not the same as the <a href="#industry.type">industry type</a> stored in the <a href="#_IndustryArray">array of industries</a>)</small>
   445 <br><small>(note: this is not the same as the <a href="#industry.type">industry type</a> stored in the <a href="#_IndustryArray">array of industries</a>)</small>
   446 <table>
   446 <table>
   447 <tr><td nowrap valign=top><tt>00</tt>..<tt>06</tt>&nbsp; </td><td align=left>coal mine
   447 <tr><td nowrap valign=top><tt>00</tt>..<tt>06</tt>&nbsp; </td><td align=left>coal mine
   448 <table>
   448 <table>
   449 <tr><td nowrap valign=top><tt>00</tt>&nbsp; </td><td align=left>wheel tower when not animated</td></tr>
   449 <tr><td nowrap valign=top><tt>00</tt>&nbsp; </td><td align=left>wheel tower when not animated</td></tr>
   450 <tr><td nowrap valign=top><tt>01</tt>&nbsp; </td><td align=left>wheel tower when animated; animation state in owner bits 5..0; owner bit 6 set = sound already generated</td></tr>
   450 <tr><td nowrap valign=top><tt>01</tt>&nbsp; </td><td align=left>wheel tower when animated; animation state in m1 bits 5..0; m1 bit 6 set = sound already generated</td></tr>
   451 </table>
   451 </table>
   452 </td></tr>
   452 </td></tr>
   453 <tr><td nowrap valign=top><tt>07</tt>..<tt>0A</tt>&nbsp; </td><td align=left>power station
   453 <tr><td nowrap valign=top><tt>07</tt>..<tt>0A</tt>&nbsp; </td><td align=left>power station
   454 <table>
   454 <table>
   455 <tr><td nowrap valign=top><tt>08</tt>&nbsp; </td><td align=left>chimney</td></tr>
   455 <tr><td nowrap valign=top><tt>08</tt>&nbsp; </td><td align=left>chimney</td></tr>
   456 <tr><td nowrap valign=top><tt>0A</tt>&nbsp; </td><td align=left>transformer; animation progress in owner bits 5..2 (valid range <tt>0</tt>..<tt>7</tt>)</td></tr>
   456 <tr><td nowrap valign=top><tt>0A</tt>&nbsp; </td><td align=left>transformer; animation progress in m1 bits 5..2 (valid range <tt>0</tt>..<tt>7</tt>)</td></tr>
   457 </table>
   457 </table>
   458 </td></tr>
   458 </td></tr>
   459 <tr><td nowrap valign=top><tt>0B</tt>..<tt>0F</tt>&nbsp; </td><td align=left>sawmill</td></tr>
   459 <tr><td nowrap valign=top><tt>0B</tt>..<tt>0F</tt>&nbsp; </td><td align=left>sawmill</td></tr>
   460 <tr><td nowrap valign=top><tt>10</tt>..<tt>11</tt>&nbsp; </td><td align=left>forest
   460 <tr><td nowrap valign=top><tt>10</tt>..<tt>11</tt>&nbsp; </td><td align=left>forest
   461 <table>
   461 <table>
   465 <tr><td nowrap valign=top><tt>12</tt>..<tt>17</tt>&nbsp; </td><td align=left>oil refinery</td></tr>
   465 <tr><td nowrap valign=top><tt>12</tt>..<tt>17</tt>&nbsp; </td><td align=left>oil refinery</td></tr>
   466 <tr><td nowrap valign=top><tt>18</tt>..<tt>1C</tt>&nbsp; </td><td align=left>oil rig</td></tr>
   466 <tr><td nowrap valign=top><tt>18</tt>..<tt>1C</tt>&nbsp; </td><td align=left>oil rig</td></tr>
   467 <tr><td nowrap valign=top><tt>1D</tt>..<tt>20</tt>&nbsp; </td><td align=left>oil wells
   467 <tr><td nowrap valign=top><tt>1D</tt>..<tt>20</tt>&nbsp; </td><td align=left>oil wells
   468 <table>
   468 <table>
   469 <tr><td nowrap valign=top><tt>1D</tt>&nbsp; </td><td align=left>not animated</td></tr>
   469 <tr><td nowrap valign=top><tt>1D</tt>&nbsp; </td><td align=left>not animated</td></tr>
   470 <tr><td nowrap valign=top><tt>1E</tt>..<tt>20</tt>&nbsp; </td><td align=left>various stages of animation; progress of animation in owner bits 1..0</td></tr>
   470 <tr><td nowrap valign=top><tt>1E</tt>..<tt>20</tt>&nbsp; </td><td align=left>various stages of animation; progress of animation in m1 bits 1..0</td></tr>
   471 </table>
   471 </table>
   472 </td></tr>
   472 </td></tr>
   473 <tr><td nowrap valign=top><tt>21</tt>..<tt>26</tt>&nbsp; </td><td align=left>farm</td></tr>
   473 <tr><td nowrap valign=top><tt>21</tt>..<tt>26</tt>&nbsp; </td><td align=left>farm</td></tr>
   474 <tr><td nowrap valign=top><tt>27</tt>..<tt>2A</tt>&nbsp; </td><td align=left>factory (temperate climate)</td></tr>
   474 <tr><td nowrap valign=top><tt>27</tt>..<tt>2A</tt>&nbsp; </td><td align=left>factory (temperate climate)</td></tr>
   475 <tr><td nowrap valign=top><tt>2B</tt>..<tt>2E</tt>&nbsp; </td><td align=left>printing works</td></tr>
   475 <tr><td nowrap valign=top><tt>2B</tt>..<tt>2E</tt>&nbsp; </td><td align=left>printing works</td></tr>
   476 <tr><td nowrap valign=top><tt>2F</tt>..<tt>33</tt>&nbsp; </td><td align=left>copper ore mine
   476 <tr><td nowrap valign=top><tt>2F</tt>..<tt>33</tt>&nbsp; </td><td align=left>copper ore mine
   477 <table>
   477 <table>
   478 <tr><td nowrap valign=top><tt>2F</tt>&nbsp; </td><td align=left>wheel tower when not animated</td></tr>
   478 <tr><td nowrap valign=top><tt>2F</tt>&nbsp; </td><td align=left>wheel tower when not animated</td></tr>
   479 <tr><td nowrap valign=top><tt>30</tt>&nbsp; </td><td align=left>wheel tower when animated; animation state in owner bits 5..0; owner bit 6 set = sound already generated</td></tr>
   479 <tr><td nowrap valign=top><tt>30</tt>&nbsp; </td><td align=left>wheel tower when animated; animation state in m1 bits 5..0; m1 bit 6 set = sound already generated</td></tr>
   480 <tr><td nowrap valign=top><tt>31</tt>&nbsp; </td><td align=left>chimney</td></tr>
   480 <tr><td nowrap valign=top><tt>31</tt>&nbsp; </td><td align=left>chimney</td></tr>
   481 </table>
   481 </table>
   482 </td></tr>
   482 </td></tr>
   483 <tr><td nowrap valign=top><tt>34</tt>..<tt>39</tt>&nbsp; </td><td align=left>steel mill</td></tr>
   483 <tr><td nowrap valign=top><tt>34</tt>..<tt>39</tt>&nbsp; </td><td align=left>steel mill</td></tr>
   484 <tr><td nowrap valign=top><tt>3A</tt>..<tt>3B</tt>&nbsp; </td><td align=left>bank (temperate climate)</td></tr>
   484 <tr><td nowrap valign=top><tt>3A</tt>..<tt>3B</tt>&nbsp; </td><td align=left>bank (temperate climate)</td></tr>
   485 <tr><td nowrap valign=top><tt>3C</tt>..<tt>3F</tt>&nbsp; </td><td align=left>food processing plant</td></tr>
   485 <tr><td nowrap valign=top><tt>3C</tt>..<tt>3F</tt>&nbsp; </td><td align=left>food processing plant</td></tr>
   486 <tr><td nowrap valign=top><tt>40</tt>..<tt>47</tt>&nbsp; </td><td align=left>paper mill</td></tr>
   486 <tr><td nowrap valign=top><tt>40</tt>..<tt>47</tt>&nbsp; </td><td align=left>paper mill</td></tr>
   487 <tr><td nowrap valign=top><tt>48</tt>..<tt>58</tt>&nbsp; </td><td align=left>gold mine
   487 <tr><td nowrap valign=top><tt>48</tt>..<tt>58</tt>&nbsp; </td><td align=left>gold mine
   488 <table>
   488 <table>
   489 <tr><td nowrap valign=top><tt>4F</tt>&nbsp; </td><td align=left>wheel tower when not animated</td></tr>
   489 <tr><td nowrap valign=top><tt>4F</tt>&nbsp; </td><td align=left>wheel tower when not animated</td></tr>
   490 <tr><td nowrap valign=top><tt>58</tt>&nbsp; </td><td align=left>wheel tower when animated; animation state in owner bits 5..0; owner bit 6 set = sound already generated</td></tr>
   490 <tr><td nowrap valign=top><tt>58</tt>&nbsp; </td><td align=left>wheel tower when animated; animation state in m1 bits 5..0; m1 bit 6 set = sound already generated</td></tr>
   491 </table>
   491 </table>
   492 </td></tr>
   492 </td></tr>
   493 <tr><td nowrap valign=top><tt>59</tt>..<tt>5A</tt>&nbsp; </td><td align=left>bank (sub-arctic or sub-tropical climate)</td></tr>
   493 <tr><td nowrap valign=top><tt>59</tt>..<tt>5A</tt>&nbsp; </td><td align=left>bank (sub-arctic or sub-tropical climate)</td></tr>
   494 <tr><td nowrap valign=top><tt>5B</tt>..<tt>63</tt>&nbsp; </td><td align=left>diamond mine</td></tr>
   494 <tr><td nowrap valign=top><tt>5B</tt>..<tt>63</tt>&nbsp; </td><td align=left>diamond mine</td></tr>
   495 <tr><td nowrap valign=top><tt>64</tt>..<tt>73</tt>&nbsp; </td><td align=left>iron ore mine</td></tr>
   495 <tr><td nowrap valign=top><tt>64</tt>..<tt>73</tt>&nbsp; </td><td align=left>iron ore mine</td></tr>
   539 </td></tr>
   539 </td></tr>
   540 <tr><td colspan=2></td></tr> <!-- spacer -->
   540 <tr><td colspan=2></td></tr> <!-- spacer -->
   541 </table></li>
   541 </table></li>
   542 <li>m2: index into the <a href="#_IndustryArray">array of industries</a>
   542 <li>m2: index into the <a href="#_IndustryArray">array of industries</a>
   543 </li>
   543 </li>
   544 <li>owner bit 7: clear = under construction
   544 <li>m1 bit 7: clear = under construction
   545 <ul>
   545 <ul>
   546 <li>owner bits 4..2: construction counter, for buildings under construction incremented on every periodic tile processing
   546 <li>m1 bits 4..2: construction counter, for buildings under construction incremented on every periodic tile processing
   547 </li>
   547 </li>
   548 </ul></li>
   548 </ul></li>
   549 <li>owner bits 1..0: stage of construction (<tt>3</tt> = completed), incremented when the construction counter wraps around
   549 <li>m1 bits 1..0: stage of construction (<tt>3</tt> = completed), incremented when the construction counter wraps around
   550 <br>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)
   550 <br>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)
   551 </li>
   551 </li>
   552 </ul>
   552 </ul>
   553 </td></tr>
   553 </td></tr>
   554 
   554 
   555 <tr><td valign=top nowrap><a name="Class9"><tt> 9 </tt></a></td><td>
   555 <tr><td valign=top nowrap><a name="Class9"><tt> 9 </tt></a></td><td>
   556 m5 bits 7..4 clear: tunnel entrance/exit
   556 m5 bits 7..4 clear: tunnel entrance/exit
   557 <ul>
   557 <ul>
   558 <li>m5 bits 3..2: <tt>0</tt> - railway tunnel, <tt>1</tt> - road tunnel</li>
   558 <li>m5 bits 3..2: <tt>0</tt> - railway tunnel, <tt>1</tt> - road tunnel</li>
   559 <li>m5 bits 1..0 - direction: entrance towards: <tt>0</tt> = NE, <tt>1</tt> = SE, <tt>2</tt> = SW, <tt>3</tt> = NW</li>
   559 <li>m5 bits 1..0 - direction: entrance towards: <tt>0</tt> = NE, <tt>1</tt> = SE, <tt>2</tt> = SW, <tt>3</tt> = NW</li>
   560 <li>owner: <a href="#OwnershipInfo">owner</a> of the tunnel</li>
   560 <li>m1: <a href="#OwnershipInfo">owner</a> of the tunnel</li>
   561 <li>m3 bits 3..0 = <a href="#TrackType">track type</a> for railway tunnel, must be 0 for road tunnel</li>
   561 <li>m3 bits 3..0 = <a href="#TrackType">track type</a> for railway tunnel, must be 0 for road tunnel</li>
   562 <li>m4 bit 7 set = on snow or desert</li>
   562 <li>m4 bit 7 set = on snow or desert</li>
   563 <li>m4 bit 0 set = track with 'Track'number 0 is reserved by pbs</li>
   563 <li>m4 bit 0 set = track with 'Track'number 0 is reserved by pbs</li>
   564 <li>m4 bit 1 set = track with 'Track'number 1 is reserved by pbs</li>
   564 <li>m4 bit 1 set = track with 'Track'number 1 is reserved by pbs</li>
   565 </ul>
   565 </ul>
   567 <ul><li>
   567 <ul><li>
   568 m5 bit 6 clear: bridge ending
   568 m5 bit 6 clear: bridge ending
   569 <ul>
   569 <ul>
   570 <li>m5 bit 5: clear - northern, set - southern ending</li>
   570 <li>m5 bit 5: clear - northern, set - southern ending</li>
   571 <li>m3 bits 3..0 = <a href="#TrackType">type of track</a> on the bridge, must be 0 for road bridge</li>
   571 <li>m3 bits 3..0 = <a href="#TrackType">type of track</a> on the bridge, must be 0 for road bridge</li>
   572 <li>owner: <a href="#OwnershipInfo">owner</a> of the bridge</li>
   572 <li>m1: <a href="#OwnershipInfo">owner</a> of the bridge</li>
   573 </ul>
   573 </ul>
   574 m5 bit 6 set: bridge middle part
   574 m5 bit 6 set: bridge middle part
   575 <ul>
   575 <ul>
   576 <li>m5 bit 5 clear:
   576 <li>m5 bit 5 clear:
   577 <ul>
   577 <ul>
   582 <li>m5 bits 4..3: transport route under bridge: <tt>0</tt> - railway, <tt>1</tt> - road</li>
   582 <li>m5 bits 4..3: transport route under bridge: <tt>0</tt> - railway, <tt>1</tt> - road</li>
   583 </ul>
   583 </ul>
   584 <li>m3 bits 7..4 = <a href="#TrackType">type of track</a> on the bridge, must be 0 for road bridge</li>
   584 <li>m3 bits 7..4 = <a href="#TrackType">type of track</a> on the bridge, must be 0 for road bridge</li>
   585 <li>m3 bits 3..0 = <a href="#TrackType">type of track</a> under the bridge, if any</li>
   585 <li>m3 bits 3..0 = <a href="#TrackType">type of track</a> under the bridge, if any</li>
   586 <li>m2 bits 3..0: bridge piece (<tt>0</tt>..<tt>5</tt>)
   586 <li>m2 bits 3..0: bridge piece (<tt>0</tt>..<tt>5</tt>)
   587 <li>owner: <a href="#OwnershipInfo">owner</a> of the land under bridge</li>
   587 <li>m1: <a href="#OwnershipInfo">owner</a> of the land under bridge</li>
   588 </ul></li>
   588 </ul></li>
   589 <li>m5 bits 2..1: <tt>0</tt> - railway bridge, <tt>1</tt> - road bridge</li>
   589 <li>m5 bits 2..1: <tt>0</tt> - railway bridge, <tt>1</tt> - road bridge</li>
   590 <li>m5 bit 0: clear - bridge in the X direction, set - bridge in the Y direction</li>
   590 <li>m5 bit 0: clear - bridge in the X direction, set - bridge in the Y direction</li>
   591 <li>m2 bits 7..4: <a name="BridgeType">bridge type</a>:
   591 <li>m2 bits 7..4: <a name="BridgeType">bridge type</a>:
   592 <table>
   592 <table>
   616 <tr><td nowrap valign=top><tt>02</tt>&nbsp; </td><td align=left>company statue</td></tr>
   616 <tr><td nowrap valign=top><tt>02</tt>&nbsp; </td><td align=left>company statue</td></tr>
   617 <tr><td nowrap valign=top><tt>03</tt>&nbsp; </td><td align=left>company-owned land</td></tr>
   617 <tr><td nowrap valign=top><tt>03</tt>&nbsp; </td><td align=left>company-owned land</td></tr>
   618 <tr><td nowrap valign=top><tt>80</tt>..<tt>93</tt>&nbsp; </td><td align=left>company headquarters (5 sets of 4 tiles each, updated quarterly depending on the company performance)</td></tr>
   618 <tr><td nowrap valign=top><tt>80</tt>..<tt>93</tt>&nbsp; </td><td align=left>company headquarters (5 sets of 4 tiles each, updated quarterly depending on the company performance)</td></tr>
   619 </table>
   619 </table>
   620 </li>
   620 </li>
   621 <li>owner: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li>
   621 <li>m1: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li>
   622 </ul>
   622 </ul>
   623 </td></tr>
   623 </td></tr>
   624 
   624 
   625 <tr><td colspan=2>
   625 <tr><td colspan=2>
   626 Classes <tt>B</tt> through <tt>F</tt> are reserved. The presence of a tile in one of the reserved classes will crash OTTD.
   626 Classes <tt>B</tt> through <tt>F</tt> are reserved. The presence of a tile in one of the reserved classes will crash OTTD.