Mercurial > hg > openttd
changeset 6180:610e86772ae8 draft
(svn r8951) -Cleanup: Another bunch of re-formating and re-ordering.
Among which, tiles area now read m1..m6, while the bits are always enumerated from 7 to 0
Hoping it will stay that way...
author | belugas <belugas@openttd.org> |
---|---|
date | Thu, 01 Mar 2007 04:24:19 +0000 |
parents | e3e61b92574b |
children | b7468d932e39 |
files | docs/landscape.html |
diffstat | 1 files changed, 1883 insertions(+), 543 deletions(-) [+] |
line wrap: on
line diff
--- a/docs/landscape.html +++ b/docs/landscape.html @@ -24,7 +24,7 @@ <a href="landscape_grid.html">Landscape grid</a> page. </p> - <p>The <a name="OwnershipInfo">owner of a tile</a>, as frequently associated with attribute m1, + The <a name="OwnershipInfo">owner of a tile</a>, as frequently associated with attribute m1, can be either players (human or AI) or "Game entities". They are identified using: <table> @@ -34,316 +34,1108 @@ <tr><td><tt>10</tt> </td><td align=left>nobody owns the tile</td></tr> <tr><td><tt>11</tt> </td><td align=left>"water" owns the tile</td></tr> <tr><td><tt>FF</tt> </td><td align=left>spectator in MP or in scenario editor</td></tr> - </table></p> + </table> <p>OTTD's class-specific periodic tile processing routine is called once every +256 ticks for each tile.</p> <table border=1 cellpadding=3> - <tr><th align=left>Class</th><th align=left>Meaning & details of encoding</th></tr> - + <tr bgcolor="#0099FF"> + <th align=left><font color="#FFFFFF">Class</font></th> + <th align=left><font color="#FFFFFF">Meaning & details of encoding</font></th> + </tr> + <tr bgcolor="#CCCCCC"> + <td align=left><strong><a name="Class0"><tt> 0 </tt></a></strong></td> + <td align=left> <strong>Ground </strong><td> + </tr> <tr> - <td valign=top nowrap><a name="Class0"><tt> 0 </tt></a></td> + <td valign=top nowrap> </td> <td> <ul> - <li>m5 bits 4..0: tile type: - <table> - <tr><td nowrap valign=top><tt>00</tt> </td><td align=left>bare land</td></tr> - <tr><td nowrap valign=top><tt>01</tt> </td><td align=left>1/3 grass</td></tr> - <tr><td nowrap valign=top><tt>02</tt> </td><td align=left>2/3 grass</td></tr> - <tr><td nowrap valign=top><tt>03</tt> </td><td align=left>full grass</td></tr> - <tr><td nowrap valign=top><tt>07</tt> </td><td align=left>rough land</td></tr> - <tr><td nowrap valign=top><tt>0B</tt> </td><td align=left>rocks</td></tr> - <tr><td nowrap valign=top><tt>0F</tt> </td><td align=left>fields; type of fields in m3 bits 3..0 (legal values: 0 through 9)<br> - m2: Index into the array of industries (farms), INVALID_INDUSTRY (0xFFFF) if farm has been removed</td></tr> - <tr><td nowrap valign=top><tt>10</tt> </td><td align=left>1/4 snow</td></tr> - <tr><td nowrap valign=top><tt>11</tt> </td><td align=left>2/4 snow</td></tr> - <tr><td nowrap valign=top><tt>12</tt> </td><td align=left>3/4 snow</td></tr> - <tr><td nowrap valign=top><tt>13</tt> </td><td align=left>full snow</td></tr> - <tr><td nowrap valign=top><tt>15</tt> </td><td align=left>partial desert</td></tr> - <tr><td nowrap valign=top><tt>17</tt> </td><td align=left>full desert</td></tr> - </table> - </li> + <li>m1: <a href="#OwnershipInfo">owner</a> of the tile (normally <tt>10</tt>)</li> + <li>m4 bits 7..5: type of hedge on the SW border of the tile (1 through 6, or 0=none)</li> + <li>m4 bits 4..2: same as 7..5, but for the SE border</li> <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>, <tt>10</tt> and above.<BR> 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> - For snow and desert, these bits are not used, tile is updated on every periodic processing. + For snow and desert, these bits are not used, tile is updated on every periodic processing.</li> + <li>m5 bits 4..0: tile type: + <table> + <tr> + <td nowrap valign=top><tt>00</tt> </td> + <td align=left>bare land</td> + </tr> + + <tr> + <td nowrap valign=top><tt>01</tt> </td> + <td align=left>1/3 grass</td> + </tr> + + <tr> + <td nowrap valign=top><tt>02</tt> </td> + <td align=left>2/3 grass</td> + </tr> + + <tr> + <td nowrap valign=top><tt>03</tt> </td> + <td align=left>full grass</td> + </tr> + + <tr> + <td nowrap valign=top><tt>07</tt> </td> + <td align=left>rough land</td> + </tr> + + <tr> + <td nowrap valign=top><tt>0B</tt> </td> + <td align=left>rocks</td> + </tr> + + <tr> + <td nowrap valign=top><tt>0F</tt> </td> + <td align=left>fields; type of fields in m3 bits 3..0 (legal values: 0 through 9)<br> + m2: Index into the array of industries (farms), INVALID_INDUSTRY (0xFFFF) if farm has been removed</td> + </tr> + + <tr> + <td nowrap valign=top><tt>10</tt> </td> + <td align=left>1/4 snow</td> + </tr> + + <tr> + <td nowrap valign=top><tt>11</tt> </td> + <td align=left>2/4 snow</td> + </tr> + + <tr> + <td nowrap valign=top><tt>12</tt> </td> + <td align=left>3/4 snow</td> + </tr> + + <tr> + <td nowrap valign=top><tt>13</tt> </td> + <td align=left>full snow</td> + </tr> + + <tr> + <td nowrap valign=top><tt>15</tt> </td> + <td align=left>partial desert</td> + </tr> + + <tr> + <td nowrap valign=top><tt>17</tt> </td> + <td align=left>full desert</td> + </tr> + </table> </li> - <li>m1: <a href="#OwnershipInfo">owner</a> of the tile (normally <tt>10</tt>)</li> - <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</li> </ul> </td> </tr> + <tr bgcolor="#CCCCCC"> + <td valign=top nowrap><strong><a name="Class1"><tt> 1</tt></a></strong></td> + <td><strong>Railway tracks</strong></td> + </tr> <tr> - <td valign=top nowrap><a name="Class1"><tt> 1 </tt></a></td> + <td valign=top nowrap> </td> <td> <ul> <li>m5 bit 7 clear: railway track <ul> - <li>m5 bits 0..5: track layout: bit set = track present: + <li>m1: <a href="#OwnershipInfo">owner</a> of the track</li> + <li>m3 bits 3..0 = <a name="TrackType">track type</a>: <table> - <tr><td nowrap valign=top>bit 0: </td><td align=left>in the X direction</td></tr> - <tr><td nowrap valign=top>bit 1: </td><td align=left>in the Y direction</td></tr> - <tr><td nowrap valign=top>bit 2: </td><td align=left>in the north corner (direction W-E)</td></tr> - <tr><td nowrap valign=top>bit 3: </td><td align=left>in the south corner (direction W-E)</td></tr> - <tr><td nowrap valign=top>bit 4: </td><td align=left>in the west corner (direction N-S)</td></tr> - <tr><td nowrap valign=top>bit 5: </td><td align=left>in the east corner (direction N-S)</td></tr> + <tr> + <td><tt>0</tt> </td> + <td>conventional railway</td> + </tr> + + <tr> + <td><tt>1</tt> </td> + <td>electrified railway</td> + </tr> + + <tr> + <td><tt>2</tt> </td> + <td>monorail</td> + </tr> + + <tr> + <td><tt>3</tt> </td> + <td>maglev</td> + </tr> </table> </li> - <li>m5 bit 6 set = with signals: - <ul> - <li>m3 bits 7..4: bit set = signal present: - <ul> - <li>For track in the X direction: - <table> - <tr><td nowrap valign=top>bit 6: </td><td align=left>signal in the SW direction</td></tr> - <tr><td nowrap valign=top>bit 7: </td><td align=left>signal in the NE direction</td></tr> - </table> - </li> - <li>For track in the Y direction: - <table> - <tr><td nowrap valign=top>bit 6: </td><td align=left>signal in the NW direction</td></tr> - <tr><td nowrap valign=top>bit 7: </td><td align=left>signal in the SE direction</td></tr> - </table> - </li> - <li>For tracks in the W-E direction: - <table> - <tr><td nowrap valign=top>bit 4: </td><td align=left>signal in the W direction on the track in the S corner</td></tr> - <tr><td nowrap valign=top>bit 5: </td><td align=left>signal in the E direction on the track in the S corner</td></tr> - <tr><td nowrap valign=top>bit 6: </td><td align=left>signal in the W direction on the track in the N corner</td></tr> - <tr><td nowrap valign=top>bit 7: </td><td align=left>signal in the E direction on the track in the N corner</td></tr> - </table> - </li> - <li>For tracks in the N-S direction: - <table> - <tr><td nowrap valign=top>bit 4: </td><td align=left>signal in the S direction on the track in the E corner</td></tr> - <tr><td nowrap valign=top>bit 5: </td><td align=left>signal in the N direction on the track in the E corner</td></tr> - <tr><td nowrap valign=top>bit 6: </td><td align=left>signal in the S direction on the track in the W corner</td></tr> - <tr><td nowrap valign=top>bit 7: </td><td align=left>signal in the N direction on the track in the W corner</td></tr> - </table> - </li> - </ul> - </li> - <li>m2 bits 7..4: bit clear = signal shows red; same bits as in m3</li> - <li>OpenTTD bits in m2: - <table> - <tr><td nowrap valign=top>bits 1..0: </td><td align=left>type of signal:</td></tr> - <tr><td nowrap valign=top><tt>00</tt>: </td><td align=left>normal signals</td></tr> - <tr><td nowrap valign=top><tt>01</tt>: </td><td align=left>pre-signals</td></tr> - <tr><td nowrap valign=top><tt>10</tt>: </td><td align=left>exit-signals</td></tr> - <tr><td nowrap valign=top><tt>11</tt>: </td><td align=left>combo-signals</td></tr> - <tr><td nowrap valign=top>bit 2: </td><td align=left>set = semaphore signals, clear = light signals</td></tr> - </table> - </li> - </ul> - </li> - <li>m1: <a href="#OwnershipInfo">owner</a> of the track</li> - <li>m4 bits 0..3: + <li>m4 bits 3..0: <table> - <tr><td nowrap valign=top><tt>0</tt> </td><td align=left>on bare land</td></tr> - <tr><td nowrap valign=top><tt>1</tt> </td><td align=left>on grass, no fences</td></tr> - <tr><td nowrap valign=top><tt>2</tt> </td><td align=left>fence on the NW side</td></tr> - <tr><td nowrap valign=top><tt>3</tt> </td><td align=left>fence on the SE side</td></tr> - <tr><td nowrap valign=top><tt>4</tt> </td><td align=left>fences on the NW and SE sides</td></tr> - <tr><td nowrap valign=top><tt>5</tt> </td><td align=left>fence on the NE side</td></tr> - <tr><td nowrap valign=top><tt>6</tt> </td><td align=left>fence on the SW side</td></tr> - <tr><td nowrap valign=top><tt>7</tt> </td><td align=left>fences on the NE and SW sides</td></tr> - <tr><td nowrap valign=top><tt>8</tt> </td><td align=left>fence on the E side (track in the W corner)</td></tr> - <tr><td nowrap valign=top><tt>9</tt> </td><td align=left>fence on the W side (track in the E corner)</td></tr> - <tr><td nowrap valign=top><tt>A</tt> </td><td align=left>fence on the S side (track in the N corner)</td></tr> - <tr><td nowrap valign=top><tt>B</tt> </td><td align=left>fence on the N side (track in the S corner)</td></tr> - <tr><td nowrap valign=top><tt>C</tt> </td><td align=left>on snow or desert</td></tr> + <tr> + <td nowrap valign=top><tt>0</tt> </td> + <td align=left>on bare land</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1</tt> </td> + <td align=left>on grass, no fences</td> + </tr> + + <tr> + <td nowrap valign=top><tt>2</tt> </td> + <td align=left>fence on the NW side</td> + </tr> + + <tr> + <td nowrap valign=top><tt>3</tt> </td> + <td align=left>fence on the SE side</td> + </tr> + + <tr> + <td nowrap valign=top><tt>4</tt> </td> + <td align=left>fences on the NW and SE sides</td> + </tr> + + <tr> + <td nowrap valign=top><tt>5</tt> </td> + <td align=left>fence on the NE side</td> + </tr> + + <tr> + <td nowrap valign=top><tt>6</tt> </td> + <td align=left>fence on the SW side</td> + </tr> + + <tr> + <td nowrap valign=top><tt>7</tt> </td> + <td align=left>fences on the NE and SW sides</td> + </tr> + + <tr> + <td nowrap valign=top><tt>8</tt> </td> + <td align=left>fence on the E side (track in the W corner)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>9</tt> </td> + <td align=left>fence on the W side (track in the E corner)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>A</tt> </td> + <td align=left>fence on the S side (track in the N corner)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>B</tt> </td> + <td align=left>fence on the N side (track in the S corner)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>C</tt> </td> + <td align=left>on snow or desert</td> + </tr> </table> </li> - <li>m3 bits 0..3 = <a name="TrackType">track type</a>: + <li>m5 bits 5..0: track layout: bit set = track present: <table> - <tr><td><tt>0</tt> </td><td>conventional railway</td></tr> - <tr><td><tt>1</tt> </td><td>electrified railway</td></tr> - <tr><td><tt>2</tt> </td><td>monorail</td></tr> - <tr><td><tt>3</tt> </td><td>maglev</td></tr> + <tr> + <td nowrap valign=top>bit 0: </td> + <td align=left>in the X direction</td> + </tr> + + <tr> + <td nowrap valign=top>bit 1: </td> + <td align=left>in the Y direction</td> + </tr> + + <tr> + <td nowrap valign=top>bit 2: </td> + <td align=left>in the north corner (direction W-E)</td> + </tr> + + <tr> + <td nowrap valign=top>bit 3: </td> + <td align=left>in the south corner (direction W-E)</td> + </tr> + + <tr> + <td nowrap valign=top>bit 4: </td> + <td align=left>in the west corner (direction N-S)</td> + </tr> + + <tr> + <td nowrap valign=top>bit 5: </td> + <td align=left>in the east corner (direction N-S)</td> + </tr> </table> </li> </ul> </li> <li>m5 bit 7 set: railway depot / checkpoints <ul> + <li>m1: <a href="#OwnershipInfo">owner</a> of the depot / checkpoint</li> + <li>m2: For waypoints, index into the array of waypoints.</li> + <li>m3 bits 3..0 = <a href="#TrackType">track type</a></li> + <li>m4 bits 3..0 = ground type, as per m4 bits 3..0 for railway tiles.</li> <li>m5 value C0..C3: railway depot <table> - <tr><td colspan=2>m5 bits 1..0</td></tr> - <tr><td colspan=2>direction: exit towards:</td></tr> - <tr><td><tt>00</tt> </td><td>NE</td></tr> - <tr><td><tt>01</tt> </td><td>SE</td></tr> - <tr><td><tt>02</tt> </td><td>SW</td></tr> - <tr><td><tt>03</tt> </td><td>NW</td></tr> + <tr> + <td colspan=2>m5 bits 1..0</td> + </tr> + + <tr> + <td colspan=2>direction: exit towards:</td> + </tr> + + <tr> + <td><tt>00</tt> </td> + <td>NE</td> + </tr> + + <tr> + <td><tt>01</tt> </td> + <td>SE</td> + </tr> + + <tr> + <td><tt>02</tt> </td> + <td>SW</td> + </tr> + + <tr> + <td><tt>03</tt> </td> + <td>NW</td> + </tr> </table> </li> <li>m5 value 80..81: checkpoint <table> - <tr><td colspan=2>bit 0</td></tr> - <tr><td>clear</td><td>in X direction</td></tr> - <tr><td>set</td><td>in Y direction</td></tr> + <tr> + <td colspan=2>bit 0</td> + </tr> + + <tr> + <td>clear</td> + <td>in X direction</td> + </tr> + + <tr> + <td>set</td> + <td>in Y direction</td> + </tr> + </table> + </li> + </ul> + </li> + <li>m5 bit 6 set = with signals: + <ul> + <li>m2 bits 7..4: bit clear = signal shows red; same bits as in m3</li> + <li>m2 bit 2: set = semaphore signals, clear = light signals </li> + <li>m2 bits 1..0 : type of signal + <table> + <tr> + <td nowrap="nowrap" valign="top"><tt>00</tt>: </td> + <td align="left">normal signals</td> + </tr> + + <tr> + <td nowrap="nowrap" valign="top"><tt>01</tt>: </td> + <td align="left">pre-signals</td> + </tr> + + <tr> + <td nowrap="nowrap" valign="top"><tt>10</tt>: </td> + <td align="left">exit-signals</td> + </tr> + + <tr> + <td nowrap="nowrap" valign="top"><tt>11</tt>: </td> + <td align="left">combo-signals</td> + </tr> </table> </li> - <li>m1: <a href="#OwnershipInfo">owner</a> of the depot / checkpoint</li> - <li>m2: For waypoints, index into the array of waypoints.</li> - <li>m3 bits 0..3 = <a href="#TrackType">track type</a></li> - <li>m4 bits 0..3 = ground type, as per m4 bits 0..3 for railway tiles.</li> + + <li>m3 bits 7..4: bit set = signal present: + <ul> + <li>For track in the X direction: + <table> + <tr> + <td nowrap="nowrap" valign="top">bit 6: </td> + <td align="left">signal in the SW direction</td> + </tr> + + <tr> + <td nowrap="nowrap" valign="top">bit 7: </td> + <td align="left">signal in the NE direction</td> + </tr> + </table> + </li> + + <li>For track in the Y direction: + <table> + <tr> + <td nowrap="nowrap" valign="top">bit 6: </td> + <td align="left">signal in the NW direction</td> + </tr> + + <tr> + <td nowrap="nowrap" valign="top">bit 7: </td> + <td align="left">signal in the SE direction</td> + </tr> + </table> + </li> + + <li>For tracks in the W-E direction: + <table> + <tr> + <td nowrap="nowrap" valign="top">bit 4: </td> + <td align="left">signal in the W direction on the track in the S corner</td> + </tr> + + <tr> + <td nowrap="nowrap" valign="top">bit 5: </td> + <td align="left">signal in the E direction on the track in the S corner</td> + </tr> + + <tr> + <td nowrap="nowrap" valign="top">bit 6: </td> + <td align="left">signal in the W direction on the track in the N corner</td> + </tr> + <tr> + <td nowrap="nowrap" valign="top">bit 7: </td> + <td align="left">signal in the E direction on the track in the N corner</td> + </tr> + </table> + </li> + + <li>For tracks in the N-S direction: + <table> + <tr> + <td nowrap="nowrap" valign="top">bit 4: </td> + <td align="left">signal in the S direction on the track in the E corner</td> + </tr> + + <tr> + <td nowrap="nowrap" valign="top">bit 5: </td> + <td align="left">signal in the N direction on the track in the E corner</td> + </tr> + + <tr> + <td nowrap="nowrap" valign="top">bit 6: </td> + <td align="left">signal in the S direction on the track in the W corner</td> + </tr> + + <tr> + <td nowrap="nowrap" valign="top">bit 7: </td> + <td align="left">signal in the N direction on the track in the W corner</td> + </tr> + </table> + </li> + </ul> + </li> </ul> </li> </ul> </td> </tr> + <tr bgcolor="#CCCCCC"> + <td valign=top nowrap><strong><a name="Class2"><tt> 2</tt></a></strong></td> + <td><strong>Roads</strong></td> + </tr> <tr> - <td valign=top nowrap><a name="Class2"><tt> 2 </tt></a></td> + <td valign=top nowrap> </td> <td> - <ul> - <li>m5 bits 7..4 clear: road - <ul> - <li>m5 bits 3..0: road layout: bit set = road piece present: - <table> - <tr><td nowrap valign=top>bit 0: </td><td align=left>NW piece</td></tr> - <tr><td nowrap valign=top>bit 1: </td><td align=left>SW piece</td></tr> - <tr><td nowrap valign=top>bit 2: </td><td align=left>SE piece</td></tr> - <tr><td nowrap valign=top>bit 3: </td><td align=left>NE piece</td></tr> - </table> - </li> - <li>m1: <a href="#OwnershipInfo">owner</a> of the road</li> - <li>m2: Index into the array of towns, 0 for non-town roads</li> - <li>m3 bits 0..3: counter for the roadworks</li> - <li>m3 bits 4..6: - <table> - <tr><td><tt>0</tt> </td><td>on bare land</td></tr> - <tr><td><tt>1</tt> </td><td>on grass</td></tr> - <tr><td><tt>2</tt> </td><td>paved</td></tr> - <tr><td><tt>3</tt> </td><td>with streetlights</td></tr> - <tr><td><tt>5</tt> </td><td>tree-lined</td></tr> - <tr><td><tt>6</tt> </td><td>on grass with road works</td></tr> - <tr><td><tt>7</tt> </td><td>paved with road works</td></tr> - </table> - </li> - <li>m3 bit 7 set = on snow or desert</li> - </ul> - </li> - <li>m5 bit 4 set, bits 7..5 clear: level crossing - <ul> - <li>m5 bit 3: clear - road in the X direction, set - road in the Y direction (railway track always perpendicular)</li> - <li>m5 bit 2: set if crossing lights are on</li> - <li>m1: <a href="#OwnershipInfo">owner</a> of the railway track</li> - <li>m2: Index into the array of towns, 0 for non-town roads</li> - <li>m4 bits 0..7: <a href="#OwnershipInfo">owner</a> of the road</li> - <li>m3 bits 3..0: <a href="#TrackType">track type</a></li> - <li>m3 bits 4..6: <tt>0</tt> - on bare land, <tt>1</tt> - on grass, <tt>2</tt> or higher - paved</li> - <li>m3 bit 7 set = on snow or desert</li> - </ul> - </li> - <li>m5 bit 5 set: road depot + <ul> + <li>m5 bits 7..4 clear: road <ul> - <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> + <li>m1: <a href="#OwnershipInfo">owner</a> of the road</li> + <li>m2: Index into the array of towns, 0 for non-town roads</li> + <li>m3 bit 7 set = on snow or desert</li> + <li>m3 bits 6..4: + <table> + <tr> + <td><tt>0</tt> </td> + <td>on bare land</td> + </tr> + <tr> + <td><tt>1</tt> </td> + <td>on grass</td> + </tr> + <tr> + <td><tt>2</tt> </td> + <td>paved</td> + </tr> + <tr> + <td><tt>3</tt> </td> + <td>with streetlights</td> + </tr> + <tr> + <td><tt>5</tt> </td> + <td>tree-lined</td> + </tr> + <tr> + <td><tt>6</tt> </td> + <td>on grass with road works</td> + </tr> + <tr> + <td><tt>7</tt> </td> + <td>paved with road works</td> + </tr> + </table> + </li> + <li>m3 bits 3..0: counter for the roadworks</li> + <li>m5 bits 3..0: road layout: bit set = road piece present: + <table> + <tr> + <td nowrap valign=top>bit 0: </td> + <td align=left>NW piece</td> + </tr> + <tr> + <td nowrap valign=top>bit 1: </td> + <td align=left>SW piece</td> + </tr> + <tr> + <td nowrap valign=top>bit 2: </td> + <td align=left>SE piece</td> + </tr> + <tr> + <td nowrap valign=top>bit 3: </td> + <td align=left>NE piece</td> + </tr> + </table> + </li> + </ul> + </li> + <li>m5 bit 5 set: road depot + <ul> <li>m1: <a href="#OwnershipInfo">owner</a> of the depot</li> <li>m3 bit 7 set = on snow or desert (not displayed, but set internally)</li> + <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> + </ul> + </li> + <li>m5 bit 4 set, bits 7..5 clear: level crossing + <ul> + <li>m1: <a href="#OwnershipInfo">owner</a> of the railway track</li> + <li>m2: Index into the array of towns, 0 for non-town roads</li> + <li>m3 bit 7 set = on snow or desert</li> + <li>m3 bits 6..4: <tt>0</tt> - on bare land, <tt>1</tt> - on grass, <tt>2</tt> or higher - paved</li> + <li>m3 bits 3..0: <a href="#TrackType">track type</a></li> + <li>m4: <a href="#OwnershipInfo">owner</a> of the road</li> + <li>m5 bit 3: clear - road in the X direction, set - road in the Y direction (railway track always perpendicular)</li> + <li>m5 bit 2: set if crossing lights are on</li> </ul> </li> </ul> </td> </tr> + <tr bgcolor="#CCCCCC"> + <td valign=top nowrap><strong><a name="Class3"><tt> 3</tt></a></strong></td> + <td><strong>Town building </strong></td> + </tr> <tr> - <td valign=top nowrap><a name="Class3"><tt> 3 </tt></a></td> - <td>Town building + <td valign=top nowrap> </td> + <td> <ul> <li>m2: Index into the array of towns</li> + <li>m3 bits 7..6: stage of construction (<tt>3</tt> = completed)</li> <li>m4: <a name="HouseTypes">town building type</a>:<br> <small>Note: In the climate list, 'sub-arctic' means below the snow line, and 'snow' means above the snow line in the sub-arctic climate.</small> <table> - <tr><th align=left>Type </th><th align=left>Size </th><th align=left>Climates </th><th align=left>Description</th></tr> - <tr><td nowrap valign=top><tt>00</tt> </td><td>1×1</td><td>temperate</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>01</tt> </td><td>1×1</td><td>temperate</td><td align=left>office block</td></tr> - <tr><td nowrap valign=top><tt>02</tt> </td><td>1×1</td><td>temperate</td><td align=left>small block of flats</td></tr> - <tr><td nowrap valign=top><tt>03</tt> </td><td>1×1</td><td>temperate</td><td align=left>church</td></tr> - <tr><td nowrap valign=top><tt>04</tt> </td><td>1×1</td><td>temperate, sub-arctic, sub-tropical</td><td align=left>large office block</td></tr> - <tr><td nowrap valign=top><tt>05</tt> </td><td>1×1</td><td>snow</td><td align=left>large office block</td></tr> - <tr><td nowrap valign=top><tt>06</tt> </td><td>1×1</td><td>temperate</td><td align=left>town houses</td></tr> - <tr><td nowrap valign=top><tt>07</tt>..<tt>08</tt> </td><td>1×2</td><td>temperate</td><td align=left>hotel</td></tr> - <tr><td nowrap valign=top><tt>09</tt> </td><td>1×1</td><td>temperate, sub-arctic, sub-tropical </td><td align=left>statue</td></tr> - <tr><td nowrap valign=top><tt>0A</tt> </td><td>1×1</td><td>temperate, sub-arctic, sub-tropical</td><td align=left>fountain</td></tr> - <tr><td nowrap valign=top><tt>0B</tt> </td><td>1×1</td><td>temperate</td><td align=left>park (with a pond)</td></tr> - <tr><td nowrap valign=top><tt>0C</tt> </td><td>1×1</td><td>temperate</td><td align=left>park (with an alley)</td></tr> - <tr><td nowrap valign=top><tt>0D</tt> </td><td>1×1</td><td>temperate</td><td align=left>office block</td></tr> - <tr><td nowrap valign=top><tt>0E</tt>..<tt>10</tt> </td><td>1×1</td><td>temperate</td><td align=left>various types of shops and offices</td></tr> - <tr><td nowrap valign=top><tt>11</tt> </td><td>1×1</td><td>temperate, sub-arctic, sub-tropical</td><td align=left>modern office building</td></tr> - <tr><td nowrap valign=top><tt>12</tt> </td><td>1×1</td><td>temperate</td><td align=left>warehouse</td></tr> - <tr><td nowrap valign=top><tt>13</tt> </td><td>1×1</td><td>temperate</td><td align=left>office block (with spiral stairway on the side)</td></tr> - <tr><td nowrap valign=top><tt>14</tt>..<tt>17</tt> </td><td>2×2</td><td>temperate</td><td align=left>stadium</td></tr> - <tr><td nowrap valign=top><tt>18</tt> </td><td>1×1</td><td>temperate</td><td align=left>old houses</td></tr> - <tr><td nowrap valign=top><tt>19</tt> </td><td>1×1</td><td>temperate</td><td align=left>cottages</td></tr> - <tr><td nowrap valign=top><tt>1A</tt> </td><td>1×1</td><td>temperate</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>1B</tt> </td><td>1×1</td><td>temperate</td><td align=left>flats</td></tr> - <tr><td nowrap valign=top><tt>1C</tt> </td><td>1×1</td><td>temperate</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>1D</tt> </td><td>1×1</td><td>temperate</td><td align=left>shops and offices</td></tr> - <tr><td nowrap valign=top><tt>1E</tt> </td><td>1×1</td><td>temperate, sub-tropical</td><td align=left>shops and offices</td></tr> - <tr><td nowrap valign=top><tt>1F</tt> </td><td>1×1</td><td>temperate</td><td align=left>theatre</td></tr> - <tr><td nowrap valign=top><tt>20</tt>..<tt>23</tt> </td><td>2×2</td><td>temperate, sub-arctic, sub-tropical</td><td align=left>stadium (modern style)</td></tr> - <tr><td nowrap valign=top><tt>24</tt> </td><td>1×1</td><td>temperate, sub-arctic, sub-tropical</td><td align=left>offices (the modern 'vertical tube' style)</td></tr> - <tr><td nowrap valign=top><tt>25</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>26</tt> </td><td>1×1</td><td>snow</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>27</tt> </td><td>1×1</td><td>temperate</td><td align=left>cinema</td></tr> - <tr><td nowrap valign=top><tt>28</tt>..<tt>2B</tt> </td><td>2×2</td><td>temperate</td><td align=left>shopping mall</td></tr> - <tr><td nowrap valign=top><tt>2C</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>flats</td></tr> - <tr><td nowrap valign=top><tt>2D</tt> </td><td>1×1</td><td>snow</td><td align=left>flats</td></tr> - <tr><td nowrap valign=top><tt>2E</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>2F</tt> </td><td>1×1</td><td>snow</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>30</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>31</tt> </td><td>1×1</td><td>snow</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>32</tt> </td><td>1×1</td><td>sub-arctic, sub-tropical</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>33</tt> </td><td>1×1</td><td>snow</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>34</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>35</tt> </td><td>1×1</td><td>snow</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>36</tt> </td><td>1×1</td><td>sub-arctic, sub-tropical</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>37</tt> </td><td>1×1</td><td>snow</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>38</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>39</tt> </td><td>1×1</td><td>snow</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>3A</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>shops and offices</td></tr> - <tr><td nowrap valign=top><tt>3B</tt> </td><td>1×1</td><td>snow</td><td align=left>shops and offices</td></tr> - <tr><td nowrap valign=top><tt>3C</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>church</td></tr> - <tr><td nowrap valign=top><tt>3D</tt> </td><td>1×1</td><td>snow</td><td align=left>church</td></tr> - <tr><td nowrap valign=top><tt>3E</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>3F</tt> </td><td>1×1</td><td>snow</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>40</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>shops and offices</td></tr> - <tr><td nowrap valign=top><tt>41</tt> </td><td>1×1</td><td>snow</td><td align=left>shops and offices</td></tr> - <tr><td nowrap valign=top><tt>42</tt>..<tt>43</tt> </td><td>1×2</td><td>sub-arctic</td><td align=left>hotel</td></tr> - <tr><td nowrap valign=top><tt>44</tt>..<tt>45</tt> </td><td>1×2</td><td>snow</td><td align=left>hotel</td></tr> - <tr><td nowrap valign=top><tt>46</tt> </td><td>1×1</td><td>sub-arctic, sub-tropical</td><td align=left>shops and offices</td></tr> - <tr><td nowrap valign=top><tt>47</tt> </td><td>1×1</td><td>snow</td><td align=left>shops and offices</td></tr> - <tr><td nowrap valign=top><tt>48</tt> </td><td>1×1</td><td>sub-arctic</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>49</tt> </td><td>1×1</td><td>snow</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>4A</tt>..<tt>4B</tt> </td><td>2×1</td><td>sub-arctic</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>4C</tt>..<tt>4D</tt> </td><td>2×1</td><td>snow</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>4E</tt> </td><td>1×1</td><td>sub-tropical</td><td align=left>houses (with a tree in a corner)</td></tr> - <tr><td nowrap valign=top><tt>4F</tt>, <tt>50</tt> </td><td>1×1</td><td>sub-tropical</td><td align=left>houses</td></tr> - <tr><td nowrap valign=top><tt>51</tt> </td><td>1×1</td><td>sub-tropical</td><td align=left>houses (suburb-type)</td></tr> - <tr><td nowrap valign=top><tt>52</tt> </td><td>1×1</td><td>sub-tropical</td><td align=left>flats</td></tr> - <tr><td nowrap valign=top><tt>53</tt> </td><td>1×1</td><td>sub-tropical</td><td align=left>church</td></tr> - <tr><td nowrap valign=top><tt>54</tt> </td><td>1×1</td><td>sub-tropical</td><td align=left>houses (with two trees in front)</td></tr> - <tr><td nowrap valign=top><tt>55</tt>, <tt>56</tt> </td><td>1×1</td><td>sub-tropical</td><td align=left>flats</td></tr> - <tr><td nowrap valign=top><tt>57</tt>..<tt>58</tt> </td><td>2×1</td><td>sub-tropical</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>59</tt> </td><td>1×1</td><td>sub-tropical</td><td align=left>flats</td></tr> - <tr><td nowrap valign=top><tt>5A</tt> </td><td>1×1</td><td>sub-tropical</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>5B</tt> </td><td>1×1</td><td>toyland</td><td align=left>church</td></tr> - <tr><td nowrap valign=top><tt>5C</tt>..<tt>61</tt> </td><td>1×1</td><td>toyland</td><td align=left>various types of toyland houses</td></tr> - <tr><td nowrap valign=top><tt>62</tt> </td><td>1×1</td><td>toyland</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>63</tt>..<tt>64</tt> </td><td>1×2</td><td>toyland</td><td align=left>houses ('shoe' style)</td></tr> - <tr><td nowrap valign=top><tt>65</tt> </td><td>1×1</td><td>toyland</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>66</tt> </td><td>1×1</td><td>toyland</td><td align=left>igloo</td></tr> - <tr><td nowrap valign=top><tt>67</tt> </td><td>1×1</td><td>toyland</td><td align=left>tepees</td></tr> - <tr><td nowrap valign=top><tt>68</tt>, <tt>69</tt> </td><td>1×1</td><td>toyland</td><td align=left>shops and offices</td></tr> - <tr><td nowrap valign=top><tt>6A</tt> </td><td>1×1</td><td>toyland</td><td align=left>tall office block</td></tr> - <tr><td nowrap valign=top><tt>6B</tt> </td><td>1×1</td><td>toyland</td><td align=left>statue</td></tr> - <tr><td nowrap valign=top><tt>6C</tt> </td><td>1×1</td><td>toyland</td><td align=left>teapot-house</td></tr> - <tr><td nowrap valign=top><tt>6D</tt> </td><td>1×1</td><td>toyland</td><td align=left>piggy-bank</td></tr> + <tr> + <th align=left>Type </th> + <th align=left>Size </th> + <th align=left>Climates </th> + <th align=left>Description</th> + </tr> + + <tr> + <td nowrap valign=top><tt>00</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>01</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>02</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>small block of flats</td> + </tr> + + <tr> + <td nowrap valign=top><tt>03</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>church</td> + </tr> + + <tr> + <td nowrap valign=top><tt>04</tt> </td> + <td>1×1</td> + <td>temperate, sub-arctic, sub-tropical</td> + <td align=left>large office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>05</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>large office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>06</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>town houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>07</tt>..<tt>08</tt> </td> + <td>1×2</td> + <td>temperate</td> + <td align=left>hotel</td> + </tr> + + <tr> + <td nowrap valign=top><tt>09</tt> </td> + <td>1×1</td> + <td>temperate, sub-arctic, sub-tropical </td> + <td align=left>statue</td> + </tr> + + <tr> + <td nowrap valign=top><tt>0A</tt> </td> + <td>1×1</td> + <td>temperate, sub-arctic, sub-tropical</td> + <td align=left>fountain</td> + </tr> + + <tr> + <td nowrap valign=top><tt>0B</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>park (with a pond)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>0C</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>park (with an alley)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>0D</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>0E</tt>..<tt>10</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>various types of shops and offices</td> + </tr> + + <tr> + <td nowrap valign=top><tt>11</tt> </td> + <td>1×1</td> + <td>temperate, sub-arctic, sub-tropical</td> + <td align=left>modern office building</td> + </tr> + + <tr> + <td nowrap valign=top><tt>12</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>warehouse</td> + </tr> + + <tr> + <td nowrap valign=top><tt>13</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>office block (with spiral stairway on the side)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>14</tt>..<tt>17</tt> </td> + <td>2×2</td> + <td>temperate</td> + <td align=left>stadium</td> + </tr> + + <tr> + <td nowrap valign=top><tt>18</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>old houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>19</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>cottages</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1A</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1B</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>flats</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1C</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1D</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>shops and offices</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1E</tt> </td> + <td>1×1</td> + <td>temperate, sub-tropical</td> + <td align=left>shops and offices</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1F</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>theatre</td> + </tr> + + <tr> + <td nowrap valign=top><tt>20</tt>..<tt>23</tt> </td> + <td>2×2</td> + <td>temperate, sub-arctic, sub-tropical</td> + <td align=left>stadium (modern style)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>24</tt> </td> + <td>1×1</td> + <td>temperate, sub-arctic, sub-tropical</td> + <td align=left>offices (the modern 'vertical tube' style)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>25</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>26</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>27</tt> </td> + <td>1×1</td> + <td>temperate</td> + <td align=left>cinema</td> + </tr> + + <tr> + <td nowrap valign=top><tt>28</tt>..<tt>2B</tt> </td> + <td>2×2</td> + <td>temperate</td> + <td align=left>shopping mall</td> + </tr> + + <tr> + <td nowrap valign=top><tt>2C</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>flats</td> + </tr> + + <tr> + <td nowrap valign=top><tt>2D</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>flats</td> + </tr> + + <tr> + <td nowrap valign=top><tt>2E</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>2F</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>30</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>31</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>32</tt> </td> + <td>1×1</td> + <td>sub-arctic, sub-tropical</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>33</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>34</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>35</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>36</tt> </td> + <td>1×1</td> + <td>sub-arctic, sub-tropical</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>37</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>38</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>39</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>3A</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>shops and offices</td> + </tr> + + <tr> + <td nowrap valign=top><tt>3B</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>shops and offices</td> + </tr> + + <tr> + <td nowrap valign=top><tt>3C</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>church</td> + </tr> + + <tr> + <td nowrap valign=top><tt>3D</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>church</td> + </tr> + + <tr> + <td nowrap valign=top><tt>3E</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>3F</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>40</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>shops and offices</td> + </tr> + + <tr> + <td nowrap valign=top><tt>41</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>shops and offices</td> + </tr> + + <tr> + <td nowrap valign=top><tt>42</tt>..<tt>43</tt> </td> + <td>1×2</td> + <td>sub-arctic</td> + <td align=left>hotel</td> + </tr> + + <tr> + <td nowrap valign=top><tt>44</tt>..<tt>45</tt> </td> + <td>1×2</td> + <td>snow</td> + <td align=left>hotel</td> + </tr> + + <tr> + <td nowrap valign=top><tt>46</tt> </td> + <td>1×1</td> + <td>sub-arctic, sub-tropical</td> + <td align=left>shops and offices</td> + </tr> + + <tr> + <td nowrap valign=top><tt>47</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>shops and offices</td> + </tr> + + <tr> + <td nowrap valign=top><tt>48</tt> </td> + <td>1×1</td> + <td>sub-arctic</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>49</tt> </td> + <td>1×1</td> + <td>snow</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>4A</tt>..<tt>4B</tt> </td> + <td>2×1</td> + <td>sub-arctic</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>4C</tt>..<tt>4D</tt> </td> + <td>2×1</td> + <td>snow</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>4E</tt> </td> + <td>1×1</td> + <td>sub-tropical</td> + <td align=left>houses (with a tree in a corner)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>4F</tt>, <tt>50</tt> </td> + <td>1×1</td> + <td>sub-tropical</td> + <td align=left>houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>51</tt> </td> + <td>1×1</td> + <td>sub-tropical</td> + <td align=left>houses (suburb-type)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>52</tt> </td> + <td>1×1</td> + <td>sub-tropical</td> + <td align=left>flats</td> + </tr> + + <tr> + <td nowrap valign=top><tt>53</tt> </td> + <td>1×1</td> + <td>sub-tropical</td> + <td align=left>church</td> + </tr> + + <tr> + <td nowrap valign=top><tt>54</tt> </td> + <td>1×1</td> + <td>sub-tropical</td> + <td align=left>houses (with two trees in front)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>55</tt>, <tt>56</tt> </td> + <td>1×1</td> + <td>sub-tropical</td> + <td align=left>flats</td> + </tr> + + <tr> + <td nowrap valign=top><tt>57</tt>..<tt>58</tt> </td> + <td>2×1</td> + <td>sub-tropical</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>59</tt> </td> + <td>1×1</td> + <td>sub-tropical</td> + <td align=left>flats</td> + </tr> + + <tr> + <td nowrap valign=top><tt>5A</tt> </td> + <td>1×1</td> + <td>sub-tropical</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>5B</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>church</td> + </tr> + + <tr> + <td nowrap valign=top><tt>5C</tt>..<tt>61</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>various types of toyland houses</td> + </tr> + + <tr> + <td nowrap valign=top><tt>62</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>63</tt>..<tt>64</tt> </td> + <td>1×2</td> + <td>toyland</td> + <td align=left>houses ('shoe' style)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>65</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>66</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>igloo</td> + </tr> + + <tr> + <td nowrap valign=top><tt>67</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>tepees</td> + </tr> + + <tr> + <td nowrap valign=top><tt>68</tt>, <tt>69</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>shops and offices</td> + </tr> + + <tr> + <td nowrap valign=top><tt>6A</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>tall office block</td> + </tr> + + <tr> + <td nowrap valign=top><tt>6B</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>statue</td> + </tr> + + <tr> + <td nowrap valign=top><tt>6C</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>teapot-house</td> + </tr> + + <tr> + <td nowrap valign=top><tt>6D</tt> </td> + <td>1×1</td> + <td>toyland</td> + <td align=left>piggy-bank</td> + </tr> </table> </li> - <li>m3 bits 7..6: stage of construction (<tt>3</tt> = completed)</li> <li>m5 bits 2..0: construction counter, for buildings under construction incremented on every periodic tile processing<br> On wraparound the stage of construction in m3 is increased </li> @@ -360,67 +1152,172 @@ </td> </tr> + <tr bgcolor="#CCCCCC"> + <td valign=top nowrap><strong><a name="Class4"><tt> 4 </tt></a></strong></td> + <td><strong>Trees </strong></td> + </tr> <tr> - <td valign=top nowrap><a name="Class4"><tt> 4 </tt></a></td> - <td>Trees + <td valign=top nowrap> </td> + <td> <ul> - <li>m5 bits 7..6: number of trees minus one</li> - <li>m5 bits 2..0: growth status: <tt>0</tt>..<tt>2</tt> - one of trees is growing, <tt>3</tt> - all trees are fully grown, <tt>4</tt>..<tt>6</tt> - one of trees is withering</li> - <li>m3 bits 7..0: type of trees: - <table> - <tr><td nowrap valign=top><tt>00</tt>..<tt>0B</tt> </td><td align=left>temperate climate trees</td></tr> - <tr><td nowrap valign=top><tt>0C</tt>..<tt>13</tt> </td><td align=left>sub-arctic climate trees</td></tr> - <tr><td nowrap valign=top><tt>14</tt>..<tt>1A</tt> </td><td align=left>rainforest trees</td></tr> - <tr><td nowrap valign=top><tt>1B</tt> </td><td align=left>cactus plants</td></tr> - <tr><td nowrap valign=top><tt>1C</tt>..<tt>1F</tt> </td><td align=left>sub-tropical climate, non-rainforest, non-desert trees</td></tr> - <tr><td nowrap valign=top><tt>20</tt>..<tt>28</tt> </td><td align=left>toyland trees</td></tr> - </table> - <small>Note: the actually displayed set of trees depends on both type and number of trees</small> - </li> - <li>m4 bits 7..5: type of hedge on the SW border of the tile (1 through 6, or 0=none)</li> - <li>m4 bits 4..2: type of hedge on the SE border of the tile (1 through 6, or 0=none)</li> - <li>m2 bits 5..4: - <table> - <tr><td nowrap valign=top><tt>0</tt> </td><td align=left>on grass</td></tr> - <tr><td nowrap valign=top><tt>1</tt> </td><td align=left>on rough land</td></tr> - <tr><td nowrap valign=top><tt>2</tt> </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)</td></tr> - </table> - </li> - <li>m2 bits 3..0: update counter, incremented on every periodic processing.<br> + <li>m1: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li> + <li>m2 bits 5..4: + <table> + + <tr> + <td nowrap valign=top><tt>0</tt> </td> + <td align=left>on grass</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1</tt> </td> + <td align=left>on rough land</td> + </tr> + + <tr> + <td nowrap valign=top><tt>2</tt> </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)</td> + </tr> + </table> + </li> + <li>m2 bits 3..0: update counter, incremented on every periodic processing.<br> on wraparound the growth status is updated (or, if it's <tt>3</tt>, a random action is taken)</li> - <li>m1: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li> + <li>m3 bits 7..0: type of trees: + <table> + <tr> + <td nowrap valign=top><tt>00</tt>..<tt>0B</tt> </td> + <td align=left>temperate climate trees</td> + </tr> + + <tr> + <td nowrap valign=top><tt>0C</tt>..<tt>13</tt> </td> + <td align=left>sub-arctic climate trees</td> + </tr> + + <tr> + <td nowrap valign=top><tt>14</tt>..<tt>1A</tt> </td> + <td align=left>rainforest trees</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1B</tt> </td> + <td align=left>cactus plants</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1C</tt>..<tt>1F</tt> </td> + <td align=left>sub-tropical climate, non-rainforest, non-desert trees</td> + </tr> + + <tr> + <td nowrap valign=top><tt>20</tt>..<tt>28</tt> </td> + <td align=left>toyland trees</td> + </tr> + </table> + <small>Note: the actually displayed set of trees depends on both type and number of trees</small> + </li> + <li>m4 bits 7..5: type of hedge on the SW border of the tile (1 through 6, or 0=none)</li> + <li>m4 bits 4..2: type of hedge on the SE border of the tile (1 through 6, or 0=none)</li> + <li>m5 bits 7..6: number of trees minus one</li> + <li>m5 bits 2..0: growth status: + <table border="0"> + <tr> + <td><tt>0</tt>..<tt>2</tt> </td> + <td>one of trees is growing </td> + </tr> + <tr> + <td><tt>3</tt> </td> + <td>all trees are fully grown </td> + </tr> + <tr> + <td><tt>4</tt>..<tt>6</tt> </td> + <td>one of trees is withering </td> + </tr> + </table> </ul> </td> </tr> - <tr> - <td valign=top nowrap><a name="Class5"><tt> 5 </tt></a></td> - <td>Station tile - <ul> - <li>m5: tile type: - <table> - <tr> - <td nowrap valign=top><tt>00</tt>..<tt>07</tt> </td><td align=left>railway station - <table> - <tr><td><tt>00</tt>..<tt>01</tt> </td><td align=left>open platform</td></tr> - <tr><td><tt>02</tt>..<tt>03</tt> </td><td align=left>open platform with station building</td></tr> - <tr><td><tt>04</tt>....<tt>07</tt> </td><td align=left>roofed platform</td></tr> - <tr><td colspan=2>bit 0: clear = in X direction, set = in Y direction</td></tr> - </table> - </td> - </tr> - <tr><td nowrap valign=top><tt>08</tt>..<tt>33</tt> </td><td align=left>large airport - <table> - <tr><td nowrap valign=top><tt>0B</tt> </td><td align=left>pad 1</td></tr> - <tr><td nowrap valign=top><tt>16</tt>..<tt>19</tt> </td><td align=left>runway middle</td></tr> - <tr><td nowrap valign=top><tt>1A</tt> </td><td align=left>runway ending</td></tr> - <tr><td nowrap valign=top><tt>1C</tt> </td><td align=left>control tower</td></tr> - <tr><td nowrap valign=top><tt>20</tt> </td><td align=left>hangar</td></tr> - <tr><td nowrap valign=top><tt>21</tt> </td><td align=left>pad 3</td></tr> - <tr><td nowrap valign=top><tt>22</tt> </td><td align=left>pad 2</td></tr> - <tr><td nowrap valign=top><tt>27</tt>..<tt>32</tt> </td><td align=left>radar (animated)</td></tr> - <tr><td nowrap valign=top><tt>33</tt> </td><td align=left>transmitter</td></tr> - <tr><td colspan=2>The initial layout of a large airport is (rows in Y direction, columns in X direction): + <tr bgcolor="#CCCCCC"> + <td valign=top nowrap><strong><a name="Class5"><tt> 5</tt></a></strong></td> + <td><strong>Station tiles</strong></td> + </tr> + <tr> + <td valign=top nowrap> </td> + <td> + <ul> + <li>m1: <a href="#OwnershipInfo">owner</a> of the station</li> + <li>m2: index into the array of stations</li> + <li>m3 bits 7..4: persistent random data for newstations</li> + <li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway stations, must be 0 for all the other stations</li> + <li>m4: custom station id; 0 means standard graphics</li> + <li>m5: tile type: + <table> + <tr> + <td nowrap valign=top><tt>00</tt>..<tt>07</tt> </td> + <td align=left>railway station + <table> + <tr> + <td><tt>00</tt>..<tt>01</tt> </td> + <td align=left>open platform</td> + </tr> + <tr> + <td><tt>02</tt>..<tt>03</tt> </td> + <td align=left>open platform with station building</td> + </tr> + <tr> + <td><tt>04</tt>....<tt>07</tt> </td> + <td align=left>roofed platform</td> + </tr> + <tr> + <td colspan=2>bit 0: clear = in X direction, set = in Y direction</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>08</tt>..<tt>33</tt> </td> + <td align=left>large airport + <table> + <tr> + <td nowrap valign=top><tt>0B</tt> </td> + <td align=left>pad 1</td> + </tr> + <tr> + <td nowrap valign=top><tt>16</tt>..<tt>19</tt> </td> + <td align=left>runway middle</td> + </tr> + <tr> + <td nowrap valign=top><tt>1A</tt> </td> + <td align=left>runway ending</td> + </tr> + <tr> + <td nowrap valign=top><tt>1C</tt> </td> + <td align=left>control tower</td> + </tr> + <tr> + <td nowrap valign=top><tt>20</tt> </td> + <td align=left>hangar</td> + </tr> + <tr> + <td nowrap valign=top><tt>21</tt> </td> + <td align=left>pad 3</td> + </tr> + <tr> + <td nowrap valign=top><tt>22</tt> </td> + <td align=left>pad 2</td> + </tr> + <tr> + <td nowrap valign=top><tt>27</tt>..<tt>32</tt> </td> + <td align=left>radar (animated)</td> + </tr> + <tr> + <td nowrap valign=top><tt>33</tt> </td> + <td align=left>transmitter</td> + </tr> + <tr> + <td colspan=2>The initial layout of a large airport is (rows in Y direction, columns in X direction): <pre> 1F 1B 1E 33 26 1A 09 24 0B 0C 0D 16 @@ -429,225 +1326,278 @@ 09 08 14 13 12 19 20 0A 15 1C 27 1A </pre> - </table> - </td></tr> + </td> + </tr> + </table> + </td> + </tr> - <tr><td nowrap valign=top><tt>34</tt>..<tt>41</tt> </td><td align=left>small airport - <table> - <tr><td nowrap valign=top><tt>3A</tt>..<tt>3D</tt> </td><td align=left>field with the wind meter (animated)</td></tr> - <tr><td nowrap valign=top><tt>3E</tt> </td><td align=left>runway south ending</td></tr> - <tr><td nowrap valign=top><tt>3F</tt> </td><td align=left>runway middle</td></tr> - <tr><td nowrap valign=top><tt>40</tt> </td><td align=left>runway north ending</td></tr> - <tr><td nowrap valign=top><tt>41</tt> </td><td align=left>hangar</td></tr> - <tr><td colspan=2>The initial layout of a small airport is (rows in Y direction, columns in X direction): + <tr> + <td nowrap valign=top><tt>34</tt>..<tt>41</tt> </td> + <td align=left>small airport + <table> + <tr> + <td nowrap valign=top><tt>3A</tt>..<tt>3D</tt> </td> + <td align=left>field with the wind meter (animated)</td> + </tr> + <tr> + <td nowrap valign=top><tt>3E</tt> </td> + <td align=left>runway south ending</td> + </tr> + <tr> + <td nowrap valign=top><tt>3F</tt> </td> + <td align=left>runway middle</td> + </tr> + <tr> + <td nowrap valign=top><tt>40</tt> </td> + <td align=left>runway north ending</td> + </tr> + <tr> + <td nowrap valign=top><tt>41</tt> </td> + <td align=left>hangar</td> + </tr> + <tr> + <td colspan=2>The initial layout of a small airport is (rows in Y direction, columns in X direction): <pre> 36 3A 40 35 39 3F 34 38 3F 41 37 3E </pre> - </table> - </td></tr> + </td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>42</tt> </td> + <td align=left>heliport</td> + </tr> + <tr> + <td nowrap valign=top><tt>43</tt>..<tt>46</tt> </td> + <td align=left>lorry loading area : exit towards: + <table> + <tr> + <td><tt>43</tt> </td> + <td align=left>NE</td> + </tr> + <tr> + <td><tt>44</tt> </td> + <td align=left>SE</td> + </tr> + <tr> + <td><tt>45</tt> </td> + <td align=left>SW</td> + </tr> + <tr> + <td><tt>46</tt> </td> + <td align=left>NW</td> + </tr> + </table> + </td> + </tr> - <tr><td nowrap valign=top><tt>42</tt> </td><td align=left>heliport</td></tr> - <tr><td nowrap valign=top><tt>43</tt>..<tt>46</tt> </td><td align=left> - lorry loading area : exit towards: - <table> - <tr><td><tt>43</tt> </td><td align=left>NE</td></tr> - <tr><td><tt>44</tt> </td><td align=left>SE</td></tr> - <tr><td><tt>45</tt> </td><td align=left>SW</td></tr> - <tr><td><tt>46</tt> </td><td align=left>NW</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>47</tt>..<tt>4A</tt> </td><td align=left> - bus station : exit towards: - <table> - <tr><td><tt>47</tt> </td><td align=left>NE</td></tr> - <tr><td><tt>48</tt> </td><td align=left>SE</td></tr> - <tr><td><tt>49</tt> </td><td align=left>SW</td></tr> - <tr><td><tt>4A</tt> </td><td align=left>NW</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>4B</tt> </td><td align=left>oilfield</td></tr> - <tr><td nowrap valign=top><tt>4C</tt>..<tt>51</tt> </td><td align=left>ship dock - <table> - <tr><td><tt>4C</tt> </td><td align=left>SW coast part</td></tr> - <tr><td><tt>4D</tt> </td><td align=left>NW coast part</td></tr> - <tr><td><tt>4E</tt> </td><td align=left>NE coast part</td></tr> - <tr><td><tt>4F</tt> </td><td align=left>SE coast part</td></tr> - <tr><td><tt>50</tt> </td><td align=left>X direction water part</td></tr> - <tr><td><tt>51</tt> </td><td align=left>Y direction water part</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>52</tt> </td><td align=left>buoy</td></tr> - <tr><td nowrap valign=top><tt>53</tt>..<tt>A7</tt> </td><td align=left>used by RichK's larger airports</td></tr> - </table> - </li> - <li>m1: <a href="#OwnershipInfo">owner</a> of the station</li> - <li>m2: index into the array of stations</li> - <li>m3 bits 0..3: <a href="#TrackType">track type</a> for railway stations, must be 0 for all the other stations</li> - <li>m3 bits 4..7: persistent random data for newstations</li> - <li>m4: custom station id; 0 means standard graphics</li> - <li>m6 bit 3: 1 when a drive through road stop is built over a town owned road, otherwise 0</li> - </ul> - </td> - </tr> + <tr> + <td nowrap valign=top><tt>47</tt>..<tt>4A</tt> </td> + <td align=left>bus station : exit towards: + <table> + <tr> + <td><tt>47</tt> </td> + <td align=left>NE</td> + </tr> + <tr> + <td><tt>48</tt> </td> + <td align=left>SE</td> + </tr> + <tr> + <td><tt>49</tt> </td> + <td align=left>SW</td> + </tr> + <tr> + <td><tt>4A</tt> </td> + <td align=left>NW</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>4B</tt> </td> + <td align=left>oilfield</td> + </tr> - <tr> - <td valign=top nowrap><a name="Class6"><tt> 6 </tt></a></td> - <td> - <ul> - <li>m5: tile type: - <table> - <tr><td nowrap valign=top><tt>00</tt> </td><td align=left>water</td></tr> - <tr><td nowrap valign=top><tt>01</tt> </td><td align=left>coast or riverbank</td></tr> - <tr><td nowrap valign=top><tt>10</tt>..<tt>1B</tt> </td><td align=left>canal locks - <table> - <tr><td nowrap valign=top><tt>10</tt> </td><td align=left>middle part, (SW-NE direction)</td></tr> - <tr><td nowrap valign=top><tt>11</tt> </td><td align=left>middle part, (NW-SE direction)</td></tr> - <tr><td nowrap valign=top><tt>12</tt> </td><td align=left>middle part, (NE-SW direction)</td></tr> - <tr><td nowrap valign=top><tt>13</tt> </td><td align=left>middle part, (SE-NW direction)</td></tr> - <tr><td nowrap valign=top><tt>14</tt> </td><td align=left>lower part, (SW-NE direction)</td></tr> - <tr><td nowrap valign=top><tt>15</tt> </td><td align=left>lower part, (NW-SE direction)</td></tr> - <tr><td nowrap valign=top><tt>16</tt> </td><td align=left>lower part, (NE-SW direction)</td></tr> - <tr><td nowrap valign=top><tt>17</tt> </td><td align=left>lower part, (SE-NW direction)</td></tr> - <tr><td nowrap valign=top><tt>18</tt> </td><td align=left>upper part, (SW-NE direction)</td></tr> - <tr><td nowrap valign=top><tt>19</tt> </td><td align=left>upper part, (NW-SE direction)</td></tr> - <tr><td nowrap valign=top><tt>1A</tt> </td><td align=left>upper part, (NE-SW direction)</td></tr> - <tr><td nowrap valign=top><tt>1B</tt> </td><td align=left>upper part, (SE-NW direction)</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>80</tt>..<tt>83</tt> </td><td align=left>ship depots - <table> - <tr><td nowrap valign=top><tt>80</tt> </td><td align=left>ship depot, NE part (X direction)</td></tr> - <tr><td nowrap valign=top><tt>81</tt> </td><td align=left>ship depot, SW part (X direction)</td></tr> - <tr><td nowrap valign=top><tt>82</tt> </td><td align=left>ship depot, NW part (Y direction)</td></tr> - <tr><td nowrap valign=top><tt>83</tt> </td><td align=left>ship depot, SE part (Y direction)</td></tr> - </table> - </td></tr> + <tr> + <td nowrap valign=top><tt>4C</tt>..<tt>51</tt> </td> + <td align=left>ship dock + <table> + <tr> + <td><tt>4C</tt> </td> + <td align=left>SW coast part</td> + </tr> + <tr> + <td><tt>4D</tt> </td> + <td align=left>NW coast part</td> + </tr> + <tr> + <td><tt>4E</tt> </td> + <td align=left>NE coast part</td> + </tr> + <tr> + <td><tt>4F</tt> </td> + <td align=left>SE coast part</td> + </tr> + <tr> + <td><tt>50</tt> </td> + <td align=left>X direction water part</td> + </tr> + <tr> + <td><tt>51</tt> </td> + <td align=left>Y direction water part</td> + </tr> + </table> + </td> + </tr> + <tr> + <td nowrap valign=top><tt>52</tt> </td> + <td align=left>buoy</td> + </tr> + <tr> + <td nowrap valign=top><tt>53</tt>..<tt>A7</tt> </td> + <td align=left>used by RichK's larger airports</td> + </tr> </table> </li> - <li>m1: <a href="#OwnershipInfo">owner</a> (for water and coasts normally <tt>11</tt>)</li> + <li>m6 bit 3: 1 when a drive through road stop is built over a town owned road, otherwise 0</li> </ul> </td> </tr> + <tr bgcolor="#CCCCCC"> + <td valign=top nowrap><strong><a name="Class6"><tt> 6 </tt></a></strong></td> + <td><strong>Water</strong></td> + </tr> <tr> - <td valign=top nowrap><a name="Class7"><tt> 7 </tt></a></td> - <td>Void - <p>Tiles of this class form an invisible, one tile wide border at the south (bottom) edges of the map,<br> - so as to protect several algorithms from the consequences of a wraparound at the edges. - </p> + <td valign=top nowrap> </td> + <td> + <ul> + <li>m1: <a href="#OwnershipInfo">owner</a> (for water and coasts normally <tt>11</tt>)</li> + <li>m5: tile type: + <table> + <tr> + <td nowrap valign=top><tt>00</tt> </td> + <td align=left>water</td> + </tr> + + <tr> + <td nowrap valign=top><tt>01</tt> </td> + <td align=left>coast or riverbank</td> + </tr> + + <tr> + <td nowrap valign=top><tt>10</tt>..<tt>1B</tt> </td> + <td align=left>canal locks + <table> + <tr> + <td nowrap valign=top><tt>10</tt> </td> + <td align=left>middle part, (SW-NE direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>11</tt> </td> + <td align=left>middle part, (NW-SE direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>12</tt> </td> + <td align=left>middle part, (NE-SW direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>13</tt> </td> + <td align=left>middle part, (SE-NW direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>14</tt> </td> + <td align=left>lower part, (SW-NE direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>15</tt> </td> + <td align=left>lower part, (NW-SE direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>16</tt> </td> + <td align=left>lower part, (NE-SW direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>17</tt> </td> + <td align=left>lower part, (SE-NW direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>18</tt> </td> + <td align=left>upper part, (SW-NE direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>19</tt> </td> + <td align=left>upper part, (NW-SE direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>1A</tt> </td> + <td align=left>upper part, (NE-SW direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>1B</tt> </td> + <td align=left>upper part, (SE-NW direction)</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>80</tt>..<tt>83</tt> </td> + <td align=left>ship depots + <table> + <tr> + <td nowrap valign=top><tt>80</tt> </td> + <td align=left>ship depot, NE part (X direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>81</tt> </td> + <td align=left>ship depot, SW part (X direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>82</tt> </td> + <td align=left>ship depot, NW part (Y direction)</td> + </tr> + <tr> + <td nowrap valign=top><tt>83</tt> </td> + <td align=left>ship depot, SE part (Y direction)</td> + </tr> + </table> + </td> + </tr> + </table> + </li> + </ul> </td> </tr> + <tr bgcolor="#CCCCCC"> + <td valign=top nowrap><strong><a name="Class7"><tt> 7 </tt></a></strong></td> + <td><strong>Void </strong></td> + </tr> <tr> - <td valign=top nowrap><a name="Class8"><tt> 8 </tt></a></td> - <td>Industry tile + <td valign=top nowrap> </td> + <td>Tiles of this class form an invisible, one tile wide border at the south (bottom) edges of the map,<br> + so as to protect several algorithms from the consequences of a wraparound at the edges. + </td> + </tr> + + <tr bgcolor="#CCCCCC"> + <td valign=top nowrap><strong><a name="Class8"><tt> 8</tt></a></strong></td> + <td><strong>Industry tile </strong></td> + </tr> + <tr> + <td valign=top nowrap> </td> + <td> <ul> - <li>m5: type:<br> - <small>(note: this is not the same as the industry type, which is stored in the array of industries)</small> - <table> - <tr><td nowrap valign=top><tt>00</tt>..<tt>06</tt> </td><td align=left>coal mine - <table> - <tr><td nowrap valign=top><tt>00</tt> </td><td align=left>wheel tower when not animated</td></tr> - <tr><td nowrap valign=top><tt>01</tt> </td><td align=left>wheel tower when animated<br>animation state in m3 bits 5..0; m3 bit 6 set = sound already generated</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>07</tt>..<tt>0A</tt> </td><td align=left>power station - <table> - <tr><td nowrap valign=top><tt>08</tt> </td><td align=left>chimney</td></tr> - <tr><td nowrap valign=top><tt>0A</tt> </td><td align=left>transformer; animation progress in m3(valid range <tt>0</tt>..<tt>7</tt>)</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>0B</tt>..<tt>0F</tt> </td><td align=left>sawmill</td></tr> - <tr><td nowrap valign=top><tt>10</tt>..<tt>11</tt> </td><td align=left>forest - <table> - <tr><td nowrap valign=top><tt>11</tt> </td><td align=left>trees cut down</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>12</tt>..<tt>17</tt> </td><td align=left>oil refinery</td></tr> - <tr><td nowrap valign=top><tt>18</tt>..<tt>1C</tt> </td><td align=left>oil rig</td></tr> - <tr><td nowrap valign=top><tt>1D</tt>..<tt>20</tt> </td><td align=left>oil wells - <table> - <tr><td nowrap valign=top><tt>1D</tt> </td><td align=left>not animated</td></tr> - <tr><td nowrap valign=top><tt>1E</tt>..<tt>20</tt> </td><td align=left>various stages of animation; progress of animation in m3</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>21</tt>..<tt>26</tt> </td><td align=left>farm</td></tr> - <tr><td nowrap valign=top><tt>27</tt>..<tt>2A</tt> </td><td align=left>factory (temperate climate)</td></tr> - <tr><td nowrap valign=top><tt>2B</tt>..<tt>2E</tt> </td><td align=left>printing works</td></tr> - <tr><td nowrap valign=top><tt>2F</tt>..<tt>33</tt> </td><td align=left>copper ore mine - <table> - <tr><td nowrap valign=top><tt>2F</tt> </td><td align=left>wheel tower when not animated</td></tr> - <tr><td nowrap valign=top><tt>30</tt> </td><td align=left>wheel tower when animated; animation state in m3 bits 5..0; m3 bit 6 set = sound already generated</td></tr> - <tr><td nowrap valign=top><tt>31</tt> </td><td align=left>chimney</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>34</tt>..<tt>39</tt> </td><td align=left>steel mill</td></tr> - <tr><td nowrap valign=top><tt>3A</tt>..<tt>3B</tt> </td><td align=left>bank (temperate climate)</td></tr> - <tr><td nowrap valign=top><tt>3C</tt>..<tt>3F</tt> </td><td align=left>food processing plant</td></tr> - <tr><td nowrap valign=top><tt>40</tt>..<tt>47</tt> </td><td align=left>paper mill</td></tr> - <tr><td nowrap valign=top><tt>48</tt>..<tt>58</tt> </td><td align=left>gold mine - <table> - <tr><td nowrap valign=top><tt>4F</tt> </td><td align=left>wheel tower when not animated</td></tr> - <tr><td nowrap valign=top><tt>58</tt> </td><td align=left>wheel tower when animated; animation state in m3 bits 5..0; m3 bit 6 set = sound already generated</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>59</tt>..<tt>5A</tt> </td><td align=left>bank (sub-arctic or sub-tropical climate)</td></tr> - <tr><td nowrap valign=top><tt>5B</tt>..<tt>63</tt> </td><td align=left>diamond mine</td></tr> - <tr><td nowrap valign=top><tt>64</tt>..<tt>73</tt> </td><td align=left>iron ore mine</td></tr> - <tr><td nowrap valign=top><tt>74</tt></td><td align=left>fruit plantation</td></tr> - <tr><td nowrap valign=top><tt>75</tt></td><td align=left>rubber plantation</td></tr> - <tr><td nowrap valign=top><tt>76</tt>..<tt>77</tt> </td><td align=left>water supply</td></tr> - <tr><td nowrap valign=top><tt>78</tt></td><td align=left>water tower</td></tr> - <tr><td nowrap valign=top><tt>79</tt>..<tt>7C</tt> </td><td align=left>factory (sub-tropical climate)</td></tr> - <tr><td nowrap valign=top><tt>7D</tt>..<tt>80</tt> </td><td align=left>lumber mill</td></tr> - <tr><td nowrap valign=top><tt>81</tt>..<tt>82</tt> </td><td align=left>candyfloss forest - <table> - <tr><td nowrap valign=top><tt>82</tt> </td><td align=left>candyfloss 'trees' cut down</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>83</tt>..<tt>86</tt> </td><td align=left>sweet factory</td></tr> - <tr><td nowrap valign=top><tt>87</tt>..<tt>88</tt> </td><td align=left>battery farm - <table> - <tr><td nowrap valign=top><tt>88</tt> </td><td align=left>batteries 'reaped'</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>89</tt></td><td align=left>cola wells</td></tr> - <tr><td nowrap valign=top><tt>8A</tt>..<tt>8D</tt> </td><td align=left>toy shop</td></tr> - <tr><td nowrap valign=top><tt>8E</tt>..<tt>93</tt> </td><td align=left>toy factory - <table> - <tr><td nowrap valign=top><tt>8F</tt> </td> - <td align=left>Animated part; animation state in m3 (valid range <tt>00</tt>..<tt>31</tt>)<br> - Tile animation is started (m4 zeroed) on the periodic processing.<br> - While the animation is in progress, m4 holds the number - of animation cycles that have already taken place.<br> - when this number reaches 8 the animation is stopped. - </td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>94</tt>..<tt>9B</tt> </td><td align=left>plastic fountains (various stages of cyclic animation)</td></tr> - <tr><td nowrap valign=top><tt>9C</tt>..<tt>9F</tt> </td><td align=left>fizzy drink factory</td></tr> - <tr><td nowrap valign=top><tt>A0</tt>..<tt>A3</tt> </td><td align=left>bubble generator - <table> - <tr><td nowrap valign=top><tt>A1</tt> </td><td align=left>generators</td></tr> - <tr><td nowrap valign=top><tt>A2</tt> </td><td align=left>bubble capture facility; animation state in m3 (valid range <tt>00</tt>..<tt>27</tt>)</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>A4</tt>..<tt>A6</tt> </td><td align=left>toffee quarry - <table> - <tr><td nowrap valign=top><tt>A5</tt> </td><td align=left>animated part; animation state in m3 (valid range <tt>00</tt>..<tt>45</tt>)</td></tr> - </table> - </td></tr> - <tr><td nowrap valign=top><tt>A7</tt>..<tt>AE</tt> </td><td align=left>sugar mine - <table> - <tr><td nowrap valign=top><tt>AE</tt> </td><td align=left>animated part; animation state in m3 (valid range <tt>00</tt>..<tt>5F</tt>)</td></tr> - </table> - </td></tr> - <tr><td colspan=2> </td></tr> <!-- spacer --> - </table></li> - <li>m2: index into the array of industries</li> <li>m1 bit 7: clear = under construction <ul> <li>m1 bits 4..2: construction counter, for buildings under construction incremented on every periodic tile processing</li> @@ -655,71 +1605,461 @@ 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> </ul> </li> + <li>m2: index into the array of industries</li> + <li>m5: type:<br> + <small>(note: this is not the same as the industry type, which is stored in the array of industries)</small> + + <table> + <tr> + <td nowrap valign=top><tt>00</tt>..<tt>06</tt> </td> + <td align=left>coal mine + <table> + <tr> + <td nowrap valign=top><tt>00</tt> </td> + <td align=left>wheel tower when not animated</td> + </tr> + <tr> + <td nowrap valign=top><tt>01</tt> </td> + <td align=left>wheel tower when animated<br> + animation state in m3 bits 5..0; m3 bit 6 set = sound already generated</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>07</tt>..<tt>0A</tt> </td> + <td align=left>power station + <table> + <tr> + <td nowrap valign=top><tt>08</tt> </td> + <td align=left>chimney</td> + </tr> + <tr> + <td nowrap valign=top><tt>0A</tt> </td> + <td align=left>transformer; animation progress in m3(valid range <tt>0</tt>..<tt>7</tt>)</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>0B</tt>..<tt>0F</tt> </td> + <td align=left>sawmill</td> + </tr> + + <tr> + <td nowrap valign=top><tt>10</tt>..<tt>11</tt> </td> + <td align=left>forest + <table> + <tr> + <td nowrap valign=top><tt>11</tt> </td> + <td align=left>trees cut down</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>12</tt>..<tt>17</tt> </td> + <td align=left>oil refinery</td> + </tr> + + <tr> + <td nowrap valign=top><tt>18</tt>..<tt>1C</tt> </td> + <td align=left>oil rig</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1D</tt>..<tt>20</tt> </td> + <td align=left>oil wells + <table> + <tr> + <td nowrap valign=top><tt>1D</tt> </td> + <td align=left>not animated</td> + </tr> + <tr> + <td nowrap valign=top><tt>1E</tt>..<tt>20</tt> </td> + <td align=left>various stages of animation; progress of animation in m3</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>21</tt>..<tt>26</tt> </td> + <td align=left>farm</td> + </tr> + + <tr> + <td nowrap valign=top><tt>27</tt>..<tt>2A</tt> </td> + <td align=left>factory (temperate climate)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>2B</tt>..<tt>2E</tt> </td> + <td align=left>printing works</td> + </tr> + + <tr> + <td nowrap valign=top><tt>2F</tt>..<tt>33</tt> </td> + <td align=left>copper ore mine + <table> + <tr> + <td nowrap valign=top><tt>2F</tt> </td> + <td align=left>wheel tower when not animated</td> + </tr> + <tr> + <td nowrap valign=top><tt>30</tt> </td> + <td align=left>wheel tower when animated; animation state in m3 bits 5..0; m3 bit 6 set = sound already generated</td> + </tr> + <tr> + <td nowrap valign=top><tt>31</tt> </td> + <td align=left>chimney</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>34</tt>..<tt>39</tt> </td> + <td align=left>steel mill</td> + </tr> + + <tr> + <td nowrap valign=top><tt>3A</tt>..<tt>3B</tt> </td> + <td align=left>bank (temperate climate)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>3C</tt>..<tt>3F</tt> </td> + <td align=left>food processing plant</td> + </tr> + + <tr> + <td nowrap valign=top><tt>40</tt>..<tt>47</tt> </td> + <td align=left>paper mill</td> + </tr> + + <tr> + <td nowrap valign=top><tt>48</tt>..<tt>58</tt> </td> + <td align=left>gold mine + <table> + <tr> + <td nowrap valign=top><tt>4F</tt> </td> + <td align=left>wheel tower when not animated</td> + </tr> + <tr> + <td nowrap valign=top><tt>58</tt> </td> + <td align=left>wheel tower when animated; animation state in m3 bits 5..0; m3 bit 6 set = sound already generated</td> + </tr> + </table></td> + </tr> + + <tr> + <td nowrap valign=top><tt>59</tt>..<tt>5A</tt> </td> + <td align=left>bank (sub-arctic or sub-tropical climate)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>5B</tt>..<tt>63</tt> </td> + <td align=left>diamond mine</td> + </tr> + + <tr> + <td nowrap valign=top><tt>64</tt>..<tt>73</tt> </td> + <td align=left>iron ore mine</td> + </tr> + + <tr> + <td nowrap valign=top><tt>74</tt></td> + <td align=left>fruit plantation</td> + </tr> + + <tr> + <td nowrap valign=top><tt>75</tt></td> + <td align=left>rubber plantation</td> + </tr> + + <tr> + <td nowrap valign=top><tt>76</tt>..<tt>77</tt> </td> + <td align=left>water supply</td> + </tr> + + <tr> + <td nowrap valign=top><tt>78</tt></td> + <td align=left>water tower</td> + </tr> + + <tr> + <td nowrap valign=top><tt>79</tt>..<tt>7C</tt> </td> + <td align=left>factory (sub-tropical climate)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>7D</tt>..<tt>80</tt> </td> + <td align=left>lumber mill</td> + </tr> + + <tr> + <td nowrap valign=top><tt>81</tt>..<tt>82</tt> </td> + <td align=left>candyfloss forest + <table> + <tr> + <td nowrap valign=top><tt>82</tt> </td> + <td align=left>candyfloss 'trees' cut down</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>83</tt>..<tt>86</tt> </td> + <td align=left>sweet factory</td> + </tr> + + <tr> + <td nowrap valign=top><tt>87</tt>..<tt>88</tt> </td> + <td align=left>battery farm + <table> + <tr> + <td nowrap valign=top><tt>88</tt> </td> + <td align=left>batteries 'reaped'</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>89</tt></td> + <td align=left>cola wells</td> + </tr> + + <tr> + <td nowrap valign=top><tt>8A</tt>..<tt>8D</tt> </td> + <td align=left>toy shop</td> + </tr> + + <tr> + <td nowrap valign=top><tt>8E</tt>..<tt>93</tt> </td> + <td align=left>toy factory + <table> + <tr> + <td nowrap valign=top><tt>8F</tt> </td> + <td align=left>Animated part; animation state in m3 (valid range <tt>00</tt>..<tt>31</tt>)<br> + Tile animation is started (m4 zeroed) on the periodic processing.<br> + While the animation is in progress, m4 holds the number + of animation cycles that have already taken place.<br> + when this number reaches 8 the animation is stopped.</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>94</tt>..<tt>9B</tt> </td> + <td align=left>plastic fountains (various stages of cyclic animation)</td> + </tr> + + <tr> + <td nowrap valign=top><tt>9C</tt>..<tt>9F</tt> </td> + <td align=left>fizzy drink factory</td> + </tr> + + <tr> + <td nowrap valign=top><tt>A0</tt>..<tt>A3</tt> </td> + <td align=left>bubble generator + <table> + <tr> + <td nowrap valign=top><tt>A1</tt> </td> + <td align=left>generators</td> + </tr> + <tr> + <td nowrap valign=top><tt>A2</tt> </td> + <td align=left>bubble capture facility; animation state in m3 (valid range <tt>00</tt>..<tt>27</tt>)</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>A4</tt>..<tt>A6</tt> </td> + <td align=left>toffee quarry + <table> + <tr> + <td nowrap valign=top><tt>A5</tt> </td> + <td align=left>animated part; animation state in m3 (valid range <tt>00</tt>..<tt>45</tt>)</td> + </tr> + </table> + </td> + </tr> + + <tr> + <td nowrap valign=top><tt>A7</tt>..<tt>AE</tt> </td> + <td align=left>sugar mine + <table> + <tr> + <td nowrap valign=top><tt>AE</tt> </td> + <td align=left>animated part; animation state in m3 (valid range <tt>00</tt>..<tt>5F</tt>)</td> + </tr> + </table> + </td> + </tr> + </table> + </li> </ul> </td> </tr> + <tr bgcolor="#CCCCCC"> + <td valign=top nowrap><strong><a name="Class9"><tt> 9</tt></a></strong></td> + <td><strong>Tunnel / bridge</strong></td> + </tr> <tr> - <td valign=top nowrap><a name="Class9"><tt> 9 </tt></a></td> - <td> - <ul> - <li>m5 bits 7..4 clear: tunnel entrance/exit - <ul> - <li>m5 bits 3..2: <tt>0</tt> - railway tunnel, <tt>1</tt> - road tunnel</li> - <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> - <li>m1: <a href="#OwnershipInfo">owner</a> of the tunnel</li> - <li>m3 bits 3..0 = <a href="#TrackType">track type</a> for railway tunnel, must be 0 for road tunnel</li> - <li>m4 bit 7 set = on snow or desert</li> - </ul> - </li> - <li>m5 bit 7 set: bridge ramp - <ul> - <li>m1: <a href="#OwnershipInfo">owner</a> of the bridge</li> - <li>m3 bits 3..0 = <a href="#TrackType">type of track</a> on the bridge, must be 0 for road bridge</li> - <li>m5 bits 3..2: <tt>0</tt> - railway bridge, <tt>1</tt> - road bridge</li> - <li>m5 bit 0..1: DiagDirection onto the bridge</li> - <li>m2 bits 7..4: <a name="BridgeType">bridge type</a>: - <table> - <tr><th align=left>Type </th><th align=left>Max. speed (mph) </th><th align=left>Description</th></tr> - <tr><td nowrap valign=top><tt>0</tt> </td><td align=center>20</td><td align=left>wooden</td></tr> - <tr><td nowrap valign=top><tt>1</tt> </td><td align=center>30</td><td align=left>concrete</td></tr> - <tr><td nowrap valign=top><tt>2</tt> </td><td align=center>40</td><td align=left>girder, steel</td></tr> - <tr><td nowrap valign=top><tt>3</tt> </td><td align=center>50</td><td align=left>suspension, concrete</td></tr> - <tr><td nowrap valign=top><tt>4</tt> </td><td align=center>60</td><td align=left>suspension, steel</td></tr> - <tr><td nowrap valign=top><tt>5</tt> </td><td align=center>70</td><td align=left>suspension, steel</td></tr> - <tr><td nowrap valign=top><tt>6</tt> </td><td align=center>100</td><td align=left>cantilever, steel</td></tr> - <tr><td nowrap valign=top><tt>7</tt> </td><td align=center>130</td><td align=left>cantilever, steel</td></tr> - <tr><td nowrap valign=top><tt>8</tt> </td><td align=center>150</td><td align=left>cantilever, steel</td></tr> - <tr><td nowrap valign=top><tt>9</tt> </td><td align=center>160</td><td align=left>girder, steel</td></tr> - <tr><td nowrap valign=top><tt>A</tt> </td><td align=center>200</td><td align=left>tubular, steel</td></tr> - </table> - </li> - <li>m4 bit 7 set = on snow or desert</li> - </ul> - <li> + <td valign=top nowrap> </td> + <td> + <ul> + <li>m5 bits 7..4 clear: tunnel entrance/exit + <ul> + <li>m1: <a href="#OwnershipInfo">owner</a> of the tunnel</li> + <li>m3 bits 3..0 = <a href="#TrackType">track type</a> for railway tunnel, must be 0 for road tunnel</li> + <li>m4 bit 7 set = on snow or desert</li> + <li>m5 bits 3..2: <tt>0</tt> - railway tunnel, <tt>1</tt> - road tunnel</li> + <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> + </ul> + </li> + <li>m5 bit 7 set: bridge ramp + <ul> + <li>m1: <a href="#OwnershipInfo">owner</a> of the bridge</li> + <li>m2 bits 7..4: <a name="BridgeType">bridge type</a>: + <table> + <tr> + <th align=left>Type </th> + <th align=left>Max. speed (mph) </th> + <th align=left>Description</th> + </tr> + + <tr> + <td nowrap valign=top><tt>0</tt> </td> + <td align=center>20</td> + <td align=left>wooden</td> + </tr> + + <tr> + <td nowrap valign=top><tt>1</tt> </td> + <td align=center>30</td> + <td align=left>concrete</td> + </tr> + + <tr> + <td nowrap valign=top><tt>2</tt> </td> + <td align=center>40</td> + <td align=left>girder, steel</td> + </tr> + + <tr> + <td nowrap valign=top><tt>3</tt> </td> + <td align=center>50</td> + <td align=left>suspension, concrete</td> + </tr> + + <tr> + <td nowrap valign=top><tt>4</tt> </td> + <td align=center>60</td> + <td align=left>suspension, steel</td> + </tr> + + <tr> + <td nowrap valign=top><tt>5</tt> </td> + <td align=center>70</td> + <td align=left>suspension, steel</td> + </tr> + + <tr> + <td nowrap valign=top><tt>6</tt> </td> + <td align=center>100</td> + <td align=left>cantilever, steel</td> + </tr> + + <tr> + <td nowrap valign=top><tt>7</tt> </td> + <td align=center>130</td> + <td align=left>cantilever, steel</td> + </tr> + + <tr> + <td nowrap valign=top><tt>8</tt> </td> + <td align=center>150</td> + <td align=left>cantilever, steel</td> + </tr> + + <tr> + <td nowrap valign=top><tt>9</tt> </td> + <td align=center>160</td> + <td align=left>girder, steel</td> + </tr> + + <tr> + <td nowrap valign=top><tt>A</tt> </td> + <td align=center>200</td> + <td align=left>tubular, steel</td> + </tr> + </table> + </li> + <li>m3 bits 3..0 = <a href="#TrackType">type of track</a> on the bridge, must be 0 for road bridge</li> + <li>m4 bit 7 set = on snow or desert</li> + <li>m5 bits 3..2: <tt>0</tt> - railway bridge, <tt>1</tt> - road bridge</li> + <li>m5 bits 1..0: DiagDirection onto the bridge</li> + </ul> + </li> </ul> </td> </tr> + <tr bgcolor="#CCCCCC"> + <td valign=top nowrap><strong><a name="ClassA"><tt> A</tt></a></strong></td> + <td><strong><tt>Unmovables</tt></strong></td> + </tr> <tr> - <td valign=top nowrap><a name="ClassA"><tt> A </tt></a></td> + <td valign=top nowrap> </td> <td> <ul> + <li>m1: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li> <li>m5: tile type: <table> - <tr><td nowrap valign=top><tt>00</tt> </td><td align=left>transmitter</td></tr> - <tr><td nowrap valign=top><tt>01</tt> </td><td align=left>lighthouse</td></tr> - <tr><td nowrap valign=top><tt>02</tt> </td><td align=left>company statue</td></tr> - <tr><td nowrap valign=top><tt>03</tt> </td><td align=left>company-owned land</td></tr> - <tr><td nowrap valign=top><tt>80</tt>..<tt>93</tt> </td><td align=left>company headquarters (5 sets of 4 tiles each, updated quarterly depending on the company performance)</td></tr> + <tr> + <td nowrap valign=top><tt>00</tt> </td> + <td align=left>transmitter</td> + </tr> + + <tr> + <td nowrap valign=top><tt>01</tt> </td> + <td align=left>lighthouse</td> + </tr> + + <tr> + <td nowrap valign=top><tt>02</tt> </td> + <td align=left>company statue</td> + </tr> + + <tr> + <td nowrap valign=top><tt>03</tt> </td> + <td align=left>company-owned land</td> + </tr> + + <tr> + <td nowrap valign=top><tt>80</tt>..<tt>93</tt> </td> + <td align=left>company headquarters (5 sets of 4 tiles each, updated quarterly depending on the company performance)</td> + </tr> </table> </li> - <li>m1: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li> </ul> </td> </tr> - - <tr><td colspan=2>Classes <tt>B</tt> through <tt>F</tt> are reserved. The presence of a tile in one of the reserved classes will crash OTTD.</td></tr> + <tr> + <td colspan=2>Classes <tt>B</tt> through <tt>F</tt> are reserved. The presence + of a tile in one of the reserved classes will crash OTTD.</td> + </tr> </table>