Files @ r21584:561d516cfa45
Branch filter:

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

rubidium
(svn r26708) -Codechange: replace C preprocessor with all kinds of options to prevent adding certain things to the result and the sed script to remove everything that shouldn't be in the resulting nfo file but came out of the C preprocessor by a small-ish awk program. This means no more breaking if a C preprocessor decides to add more data to the processed file (like GCC's inclusion of stdc-predef.h when not passing -nostdinc). It furthermore more than halfs the time needed for the assemble step of the extra GRF compilation
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <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">XXXX <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">O</span>X XXXX</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">XXXX XXXX</td>
      <td class="bits">-inherit-</td>
      <td class="bits">-inherit-</td>
      <td class="bits">XX<span class="free">O</span>X XXXX</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">OO</span>XX</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">XX<span class="free">O</span><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"><span class="free">OOOO OOOO</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 X<span class="free">O</span>XX</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 XXXX</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">XXXX XXXX</td>
    </tr>
  </tbody>
</table>

</body>
</html>