Files @ r15899:3bbe04d427d2
Branch filter:

Location: cpp/openttd-patchpack/source/docs/landscape_grid.html - annotation

rubidium
(svn r20593) -Fix: (rlongago, r20547): long ago the service interval was int16, after which is got converted to Date except in the order backup. Much later I copied the savegame snippets from a vehicle and applied that on the order backup. Presto, reading/writing 32 bits (of Date) into 16 bits of ancient style service interval. That would then "spoil" the name pointer and that eventually crashes OpenTTD as it's likely to be an invalid pointer.
r1484:58a94337283a
r1484:58a94337283a
r1484:58a94337283a
r1484:58a94337283a
r1487:755a14bc5e12
r1487:755a14bc5e12
r1487:755a14bc5e12
r2851:45eec56fdf44
r8457:b79b365de8f2
r2851:45eec56fdf44
r2851:45eec56fdf44
r2851:45eec56fdf44
r2851:45eec56fdf44
r2851:45eec56fdf44
r2851:45eec56fdf44
r1487:755a14bc5e12
r1484:58a94337283a
r1484:58a94337283a
r1484:58a94337283a
r5596:84985796bbd9
r1487:755a14bc5e12
r1487:755a14bc5e12
r1484:58a94337283a
r2851:45eec56fdf44
r2851:45eec56fdf44
r8457:b79b365de8f2
r8457:b79b365de8f2
r1484:58a94337283a
r1487:755a14bc5e12
r1487:755a14bc5e12
r2149:653fa1740f53
r2487:d3b52b578f6a
r2149:653fa1740f53
r2850:3b72482e7962
r2850:3b72482e7962
r2149:653fa1740f53
r5596:84985796bbd9
r6332:7393965b5322
r1487:755a14bc5e12
r1487:755a14bc5e12
r2853:5e0d9d8a2fa0
r1484:58a94337283a
r1484:58a94337283a
r2853:5e0d9d8a2fa0
r5596:84985796bbd9
r2851:45eec56fdf44
r2851:45eec56fdf44
r2851:45eec56fdf44
r2851:45eec56fdf44
r2851:45eec56fdf44
r5596:84985796bbd9
r6332:7393965b5322
r2018:5a1761d16521
r2018:5a1761d16521
r2853:5e0d9d8a2fa0
r2852:1ce7cf94377c
r5596:84985796bbd9
r2852:1ce7cf94377c
r2852:1ce7cf94377c
r2852:1ce7cf94377c
r2852:1ce7cf94377c
r2852:1ce7cf94377c
r6332:7393965b5322
r1484:58a94337283a
r1484:58a94337283a
r4593:43e7f6639554
r2853:5e0d9d8a2fa0
r2851:45eec56fdf44
r15762:7fbf9fe78040
r2851:45eec56fdf44
r14161:b62f02f583d3
r2852:1ce7cf94377c
r2851:45eec56fdf44
r5596:84985796bbd9
r6332:7393965b5322
r2851:45eec56fdf44
r2851:45eec56fdf44
r4593:43e7f6639554
r4593:43e7f6639554
r15762:7fbf9fe78040
r4593:43e7f6639554
r14161:b62f02f583d3
r4593:43e7f6639554
r8457:b79b365de8f2
r5596:84985796bbd9
r6332:7393965b5322
r4593:43e7f6639554
r4593:43e7f6639554
r12464:427d80f26c18
r2853:5e0d9d8a2fa0
r2853:5e0d9d8a2fa0
r15762:7fbf9fe78040
r9784:d6ecb2e78057
r14403:33ba803eeef2
r8457:b79b365de8f2
r2851:45eec56fdf44
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r9790:d2ab975e0051
r14403:33ba803eeef2
r6770:4f717bfddaa5
r8457:b79b365de8f2
r5596:84985796bbd9
r6332:7393965b5322
r1484:58a94337283a
r1484:58a94337283a
r2853:5e0d9d8a2fa0
r2851:45eec56fdf44
r5596:84985796bbd9
r12989:383937fd7eba
r14403:33ba803eeef2
r2853:5e0d9d8a2fa0
r9784:d6ecb2e78057
r5596:84985796bbd9
r6332:7393965b5322
r1484:58a94337283a
r1484:58a94337283a
r2853:5e0d9d8a2fa0
r2853:5e0d9d8a2fa0
r2851:45eec56fdf44
r15762:7fbf9fe78040
r2853:5e0d9d8a2fa0
r2851:45eec56fdf44
r11247:c15ef8b37f5e
r6764:88e9608d13b3
r11247:c15ef8b37f5e
r11247:c15ef8b37f5e
r1484:58a94337283a
r1484:58a94337283a
r2853:5e0d9d8a2fa0
r2851:45eec56fdf44
r2853:5e0d9d8a2fa0
r5596:84985796bbd9
r14403:33ba803eeef2
r8457:b79b365de8f2
r11247:c15ef8b37f5e
r11247:c15ef8b37f5e
r11247:c15ef8b37f5e
r1484:58a94337283a
r1484:58a94337283a
r2853:5e0d9d8a2fa0
r2851:45eec56fdf44
r5596:84985796bbd9
r14403:33ba803eeef2
r11247:c15ef8b37f5e
r2851:45eec56fdf44
r8457:b79b365de8f2
r5596:84985796bbd9
r6682:de95441ccf30
r1484:58a94337283a
r1484:58a94337283a
r2853:5e0d9d8a2fa0
r6332:7393965b5322
r5596:84985796bbd9
r6332:7393965b5322
r2851:45eec56fdf44
r8681:353d2f20f310
r2851:45eec56fdf44
r8457:b79b365de8f2
r8681:353d2f20f310
r8457:b79b365de8f2
r1484:58a94337283a
r1484:58a94337283a
r2853:5e0d9d8a2fa0
r2853:5e0d9d8a2fa0
r2853:5e0d9d8a2fa0
r15762:7fbf9fe78040
r14161:b62f02f583d3
r8457:b79b365de8f2
r2852:1ce7cf94377c
r2852:1ce7cf94377c
r5596:84985796bbd9
r6332:7393965b5322
r1484:58a94337283a
r1484:58a94337283a
r12464:427d80f26c18
r8405:5aa5fea9652d
r2851:45eec56fdf44
r15762:7fbf9fe78040
r2851:45eec56fdf44
r14403:33ba803eeef2
r2851:45eec56fdf44
r2851:45eec56fdf44
r9784:d6ecb2e78057
r8955:31c083f63196
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r12464:427d80f26c18
r12464:427d80f26c18
r12464:427d80f26c18
r12464:427d80f26c18
r12464:427d80f26c18
r12464:427d80f26c18
r12464:427d80f26c18
r12464:427d80f26c18
r12464:427d80f26c18
r12464:427d80f26c18
r12464:427d80f26c18
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r12149:60cbbdbd3309
r14313:e2eb4e3bce67
r8457:b79b365de8f2
r7272:ff5f21406590
r12149:60cbbdbd3309
r1484:58a94337283a
r1484:58a94337283a
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r15762:7fbf9fe78040
r14313:e2eb4e3bce67
r8457:b79b365de8f2
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r15762:7fbf9fe78040
r14313:e2eb4e3bce67
r8457:b79b365de8f2
r8405:5aa5fea9652d
r14613:d3034189c7ac
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r15762:7fbf9fe78040
r14313:e2eb4e3bce67
r8457:b79b365de8f2
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r14313:e2eb4e3bce67
r8457:b79b365de8f2
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8405:5aa5fea9652d
r8457:b79b365de8f2
r8457:b79b365de8f2
r2851:45eec56fdf44
r15762:7fbf9fe78040
r8457:b79b365de8f2
r15762:7fbf9fe78040
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r2851:45eec56fdf44
r15762:7fbf9fe78040
r8029:8fa304783822
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r12989:383937fd7eba
r15762:7fbf9fe78040
r8495:3d4bceb612db
r8457:b79b365de8f2
r5596:84985796bbd9
r6332:7393965b5322
r1484:58a94337283a
r1484:58a94337283a
r7621:16fbec405049
r2853:5e0d9d8a2fa0
r5596:84985796bbd9
r9718:c3fa0e5e369d
r6332:7393965b5322
r2851:45eec56fdf44
r2851:45eec56fdf44
r2851:45eec56fdf44
r2851:45eec56fdf44
r7621:16fbec405049
r7621:16fbec405049
r1484:58a94337283a
r1484:58a94337283a
r5385:1c8ef6521bf2
r5596:84985796bbd9
r5596:84985796bbd9
r15762:7fbf9fe78040
r2851:45eec56fdf44
r14403:33ba803eeef2
r11247:c15ef8b37f5e
r11247:c15ef8b37f5e
r5596:84985796bbd9
r11247:c15ef8b37f5e
r1484:58a94337283a
r1484:58a94337283a
r3195:0767da31c260
r8457:b79b365de8f2
r8457:b79b365de8f2
r11247:c15ef8b37f5e
r11247:c15ef8b37f5e
r11247:c15ef8b37f5e
r11247:c15ef8b37f5e
r11247:c15ef8b37f5e
r11247:c15ef8b37f5e
r1484:58a94337283a
r1484:58a94337283a
r8457:b79b365de8f2
r15734:ae8e2e185874
r5596:84985796bbd9
r15762:7fbf9fe78040
r15797:444e01a3fa29
r15797:444e01a3fa29
r2851:45eec56fdf44
r10951:c8234203bc5f
r8457:b79b365de8f2
r8457:b79b365de8f2
r8457:b79b365de8f2
r1484:58a94337283a
r1484:58a94337283a
r1487:755a14bc5e12
r1484:58a94337283a
r1484:58a94337283a
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=UTF-8" http-equiv="content-type">
  <meta name="Description" content="Structure of OpenTTD (OTTD) landscape arrays #2">
  <title>OpenTTD Landscape Internals - #2</title>
  <style type="text/css">
    span.abuse { font-family: "Courier New", Courier, mono; background-color: rgb(255, 58, 31); }
    span.option{ font-family: "Courier New", Courier, mono; background-color: rgb(255,255, 30); }
    span.free  { font-family: "Courier New", Courier, mono; background-color: rgb(30, 178, 54); }
    span.used  { font-family: "Courier New", Courier, mono; }
    td.bits    { white-space: nowrap; text-align: center; font-family: "Courier New", Courier, mono; }
    td.caption { white-space: nowrap; text-align: left; }
    td li      { white-space: nowrap; text-align: left; }
    th         { white-space: nowrap; text-align: center; }
  </style>
</head>
<body style="direction: ltr;">
<h3 style="font-weight: bold;">Landscape</h3>
<span style="font-weight: bold;"></span>Six attributes hold the information about a tile.
This can be seen in the <a href="landscape.html">Landscape</a> document. This page tries to give an overview of used and free bits of
the array so you can quickly see what is used and what is not.
<ul>
  <li><span style="font-weight: bold;"><span class="free">O</span></span> - bit is free</li>
  <li><span style="font-weight: bold;"><span class="used">X</span></span> - bit is used</li>
  <li><span style="font-weight: bold;"><span class="abuse">&nbsp;</span></span> - bit of attribute is abused for different purposes, i.e. other bits define the actual meaning.</li>
  <li><span style="font-weight: bold;"><span class="option">~</span></span> - bit is accessed, but does not really have a meaning (e.g. owner of clear land is always OWNER_NONE)</li>
</ul>
<p>
<ul>
  <li><span style="font-weight: bold;">type_height</span> - 8 bits in size, stores tile height (lower 4 bits) and tile class (upper 4 bits)</li>
  <li><span style="font-weight: bold;">m1</span> - 8 bits in size, used to identify the owner of that tile (eg piece of rail, bridge, etc.)</li>
  <li><span style="font-weight: bold;">m2</span> - 16 bits in size, used to identify the index of the given tile (object) in the (object-)array</li>
  <li><span style="font-weight: bold;">m3</span> - 8 bits in size, is used for general storage</li>
  <li><span style="font-weight: bold;">m4</span> - 8 bits in size, is used for general storage</li>
  <li><span style="font-weight: bold;">m5</span> - 8 bits in size, is used for general storage</li>
  <li><span style="font-weight: bold;">m6</span> - 8 bits in size, special meaning : lower 2 bits only valid in tropic climate, upper 2 bits for bridges</li>
  <li><span style="font-weight: bold;">m7</span> - 8 bits in size, is used for general storage</li>
</ul>

<table align=center border="1" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <th colspan=2>class</th>
      <th>type_height (8)</th>
      <th>m1 (8)</th>
      <th>m2 (16)</th>
      <th>m3 (8)</th>
      <th>m4 (8)</th>
      <th>m5 (8)</th>
      <th>m6 (8)</th>
      <th>m7 (8)</th>
    </tr>
    <tr>
      <td colspan=2 class="caption">bits</td>
      <td class="bits">7654 3210</td>
      <td class="bits">7654 3210</td>
      <td class="bits">FEDC BA98 7654 3210</td>
      <td class="bits">7654 3210</td>
      <td class="bits">7654 3210</td>
      <td class="bits">7654 3210</td>
      <td class="bits">7654 3210</td>
      <td class="bits">7654 3210</td>
    </tr>
    <tr>
      <td rowspan="2">0</td>
      <td class="caption">ground</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OOO</span><span class="option">~ ~~~~</span></td>
      <td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
      <td class="bits"><span class="free">OOO</span>X <span class="free">OOOO</span></td>
      <td class="bits">XXXX XX<span class="free">OO</span></td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td class="caption">farmland</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XXXX XXXX XXXX XXXX</td>
      <td class="bits"><span class="free">OOO</span>X XXXX</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td rowspan=3>1</td>
      <td class="caption">rail</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OOO</span>X XXXX</td>
      <td class="bits"><span class="free">OOOO</span> XXXX <span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="free">OOOO</span> XXXX</td>
      <td class="bits"><span class="free">OOOO</span> XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td class="caption">rail with signals</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits"><span class="free">OOOO</span> XXXX XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td class="caption">depot</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XXXX XXXX XXXX XXXX</td>
      <td class="bits"><span class="free">OOOO</span> XXXX</td>
      <td class="bits"><span class="free">OOOO</span> XXXX</td>
      <td class="bits">XX<span class="free">O</span>X <span class="free">O</span>XXX</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td rowspan=3>2</td>
      <td class="caption">road</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OOO</span>X XXXX</td>
      <td class="bits">XXXX XXXX XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XXXX X<span class="free">O</span>XX</td>
      <td class="bits">XXX<span class="free">O</span> XXXX</td>
    </tr>
    <tr>
      <td class="caption">level crossing</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XXXX<span class="free"> OOO</span>X</td>
      <td class="bits">XXXX X<span class="free">O</span>XX</td>
      <td class="bits">XXXX XXXX</td>
    </tr>
    <tr>
      <td class="caption">road depot</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits">XXX<span class="free">O OOOO</span></td>
    </tr>
    <tr>
      <td>3</td>
      <td class="caption">house</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XXXX XXXX XXXX XXXX</td>
      <td class="bits">XXX<span class="option">~ ~~</span>XX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XXX<span class="abuse">X XXXX</span></td>
      <td class="bits"><span class="abuse">XXXX XX</span>XX</td>
      <td class="bits">XXXX <span class="abuse">XXXX</span></td>
    </tr>
    <tr>
      <td>4</td>
      <td class="caption">trees</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OOO</span><span class="option">~ ~~~~</span></td>
      <td class="bits"><span class="free">OOOO OOO</span>X XXXX XXXX</td>
      <td class="bits"><span class="option">~~</span>XX XXXX</td>
      <td class="bits">XXXX XX<span class="free">OO</span></td>
      <td class="bits">XX<span class="free">OO O</span>XXX</td>
      <td class="bits"><span class="free">OOOO OO</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td rowspan=7>5</td>
      <td class="caption">rail station</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">O</span>XXX XXXX</td>
      <td class="bits">XXXX XXXX XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OO</span>XX XXXX</td>
      <td class="bits">XXXX XXXX</td>
    </tr>
    <tr>
      <td class="caption">rail waypoint</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
    </tr>
    <tr>
      <td class="caption">road stop</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XXXX <span class="free">OOOO</span></td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="option">~~~~ ~</span>XXX</td>
      <td class="bits"><span class="free">OO</span>XX XXXX</td>
      <td class="bits">XX<span class="free">O</span>X XXXX</td>
    </tr>
    <tr>
      <td class="caption">dock</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="option">~~~~ ~</span>XXX</td>
      <td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td class="caption">airport</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XXXX <span class="free">OOOO</span></td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
      <td class="bits">XXXX XXXX</td>
    </tr>
    <tr>
      <td class="caption">buoy</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="option">~~~~ ~~~~</span></td>
      <td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td class="caption">oilrig</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="option">~~~~ ~~~~</span></td>
      <td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td rowspan=3>6</td>
      <td class="caption">sea, shore</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">O</span>XXX XXXX</td>
      <td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits">X<span class="option">~~</span>X XXXX</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td class="caption">canal, river</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td class="caption">shipdepot</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XXXX XXXX XXXX XXXX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits">-inherit-</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
    <tr>
      <td>8</td>
      <td class="caption">industry</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XXX<span class="free">O</span> <span class="abuse">
        XXXX</span></td>
      <td class="bits">XXXX XXXX XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OO</span>XX XXXX</td>
      <td class="bits">XXXX XXXX</td>
    </tr>
    <tr>
      <td rowspan=2>9</td>
      <td class="caption">tunnel entrance</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OOO</span>X XXXX</td>
      <td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits">X<span class="free">OO</span>X XXXX</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits">XXXX X<span class="free">O</span>XX</td>
    </tr>
    <tr>
      <td>bridge ramp</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">-inherit-</td>
    </tr>
    <tr>
      <td rowspan=2>A</td>
      <td class="caption">objects</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">O</span>XXX XXXX</td>
      <td class="bits">XXXX XXXX XXXX XXXX</td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
      <td class="bits">XXXX XXXX</td>
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
      <td class="bits"><span class="free">OOOO OOOO</span></td>
    </tr>
  </tbody>
</table>

</body>
</html>