Changeset - r8955:31c083f63196
[Not reviewed]
master
0 3 0
peter1138 - 16 years ago 2008-04-17 06:52:56
peter1138@openttd.org
(svn r12746) -Codechange: Add map storage for station animation frame
3 files changed with 14 insertions and 1 deletions:
0 comments (0 inline, 0 general)
docs/landscape.html
Show inline comments
 
@@ -854,96 +854,97 @@
 
          <tr>
 
           <td><tt>04</tt>&nbsp; </td>
 
           <td align=left>drive through X</td>
 
          </tr>
 
          <tr>
 
           <td><tt>05</tt>&nbsp; </td>
 
           <td align=left>drive through Y</td>
 
          </tr>
 
         </table>
 
        </td>
 
       </tr>
 

	
 
       <tr>
 
        <td nowrap valign=top><tt>00</tt>..<tt>05</tt>&nbsp; </td>
 
        <td align=left>ship dock
 
         <table>
 
          <tr>
 
           <td><tt>00</tt>&nbsp; </td>
 
           <td align=left>SW coast part</td>
 
          </tr>
 
          <tr>
 
           <td><tt>01</tt>&nbsp; </td>
 
           <td align=left>NW coast part</td>
 
          </tr>
 
          <tr>
 
           <td><tt>02</tt>&nbsp; </td>
 
           <td align=left>NE coast part</td>
 
          </tr>
 
          <tr>
 
           <td><tt>03</tt>&nbsp; </td>
 
           <td align=left>SE coast part</td>
 
          </tr>
 
          <tr>
 
           <td><tt>04</tt>&nbsp; </td>
 
           <td align=left>X direction water part</td>
 
          </tr>
 
          <tr>
 
           <td><tt>05</tt>&nbsp; </td>
 
           <td align=left>Y direction water part</td>
 
          </tr>
 
         </table>
 
        </td>
 
       </tr>
 
      </table>
 
     </li>
 
     <li>m6 bits 5..3: the station type (rail, airport, truck, bus, oilrig, dock, buoy)</li>
 
     <li>m6 bit 2: 1 when a drive through road stop is built over a town owned road, otherwise 0</li>
 
     <li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
 
     <li>m7: animation frame</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>&nbsp;</td>
 
   <td>
 
    <ul>
 
     <li>m1: <a href="#OwnershipInfo">owner</a> (for sea, rivers, and coasts normally <tt>11</tt>)</li>
 
     <li>m3 bits 1..0 : Water class (sea, canal or river)
 
     <li>m4: Random data for canal or river tiles</li>
 
     <li>m5: tile type:
 
      <table>
 
       <tr>
 
        <td nowrap valign=top><tt>00</tt>&nbsp; </td>
 
        <td align=left>water, canal or river</td>
 
       </tr>
 

	
 
       <tr>
 
        <td nowrap valign=top><tt>01</tt>&nbsp; </td>
 
        <td align=left>coast or riverbank</td>
 
       </tr>
 

	
 
       <tr>
 
        <td nowrap valign=top><tt>10</tt>..<tt>1B</tt>&nbsp; </td>
 
        <td align=left>canal locks
 
         <table>
 
          <tr>
 
           <td nowrap valign=top><tt>10</tt>&nbsp; </td>
 
           <td align=left>middle part, (SW-NE direction)</td>
 
          </tr>
 
          <tr>
 
           <td nowrap valign=top><tt>11</tt>&nbsp; </td>
 
           <td align=left>middle part, (NW-SE direction)</td>
 
          </tr>
 
          <tr>
 
           <td nowrap valign=top><tt>12</tt>&nbsp; </td>
 
           <td align=left>middle part, (NE-SW direction)</td>
 
          </tr>
 
          <tr>
 
           <td nowrap valign=top><tt>13</tt>&nbsp; </td>
 
           <td align=left>middle part, (SE-NW direction)</td>
 
          </tr>
 
          <tr>
docs/landscape_grid.html
Show inline comments
 
@@ -153,97 +153,97 @@ the array so you can quickly see what is
 
      <td class="bits">XX<span class="free">OO OO</span>XX</td>
 
      <td class="bits">-inherit-</td>
 
    </tr>
 
    <tr>
 
      <td class="caption">road depot</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">X<span class="free">OOO 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="option">~~~~ ~~~~</span></td>
 
      <td class="bits"><span class="free">OOOO OOOO</span> 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=6>5</td>
 
      <td class="caption">rail station</td>
 
      <td class="bits">XXXX XXXX</td>
 
      <td class="bits"><span class="option">~~~</span>X XXXX</td>
 
      <td class="bits">XXXX XXXX XXXX XXXX</td>
 
      <td class="bits">XXXX <span class="option">~~</span>XX</td>
 
      <td class="bits">XXXX XXXX</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"><span class="free">OOOO OOOO</span></td>
 
      <td class="bits">XXXX XXXX</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"><span class="free">OOOO O</span>XXX</td>
 
      <td class="bits"><span class="option">~~~~ ~~~~</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"><span class="free">OOOO OOOO</span></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 OO</span>XX</td>
 
      <td class="bits"><span class="option">~~~~ ~~~~</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"><span class="free">OOOO OOOO</span></td>
 
      <td class="bits"><span class="option">~~~~ ~~~~</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"><span class="free">OOOO OOOO</span></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 OO</span>XX</td>
 
      <td class="bits"><span class="option">~~~~ ~~~~</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>
src/station_map.h
Show inline comments
 
@@ -23,96 +23,108 @@ static inline StationID GetStationIndex(
 
static inline Station *GetStationByTile(TileIndex t)
 
{
 
	return GetStation(GetStationIndex(t));
 
}
 

	
 

	
 
enum {
 
	GFX_RADAR_LARGE_FIRST             =  31,
 
	GFX_RADAR_LARGE_LAST              =  42,
 
	GFX_WINDSACK_FIRST                =  50,
 
	GFX_WINDSACK_LAST                 =  53,
 

	
 
	GFX_DOCK_BASE_WATER_PART          =  4,
 
	GFX_TRUCK_BUS_DRIVETHROUGH_OFFSET =  4,
 

	
 
	GFX_RADAR_INTERNATIONAL_FIRST     =  66,
 
	GFX_RADAR_INTERNATIONAL_LAST      =  77,
 
	GFX_RADAR_METROPOLITAN_FIRST      =  78,
 
	GFX_RADAR_METROPOLITAN_LAST       =  89,
 
	GFX_RADAR_DISTRICTWE_FIRST        = 121,
 
	GFX_RADAR_DISTRICTWE_LAST         = 132,
 
	GFX_WINDSACK_INTERCON_FIRST       = 140,
 
	GFX_WINDSACK_INTERCON_LAST        = 143,
 
};
 

	
 
static inline StationType GetStationType(TileIndex t)
 
{
 
	return (StationType)GB(_m[t].m6, 3, 3);
 
}
 

	
 
static inline RoadStopType GetRoadStopType(TileIndex t)
 
{
 
	assert(GetStationType(t) == STATION_TRUCK || GetStationType(t) == STATION_BUS);
 
	return GetStationType(t) == STATION_TRUCK ? ROADSTOP_TRUCK : ROADSTOP_BUS;
 
}
 

	
 
static inline StationGfx GetStationGfx(TileIndex t)
 
{
 
	assert(IsTileType(t, MP_STATION));
 
	return _m[t].m5;
 
}
 

	
 
static inline void SetStationGfx(TileIndex t, StationGfx gfx)
 
{
 
	assert(IsTileType(t, MP_STATION));
 
	_m[t].m5 = gfx;
 
}
 

	
 
static inline uint8 GetStationAnimationFrame(TileIndex t)
 
{
 
	assert(IsTileType(t, MP_STATION));
 
	return _me[t].m7;
 
}
 

	
 
static inline void SetStationAnimationFrame(TileIndex t, uint8 frame)
 
{
 
	assert(IsTileType(t, MP_STATION));
 
	_me[t].m7 = frame;
 
}
 

	
 
static inline bool IsRailwayStation(TileIndex t)
 
{
 
	return GetStationType(t) == STATION_RAIL;
 
}
 

	
 
static inline bool IsRailwayStationTile(TileIndex t)
 
{
 
	return IsTileType(t, MP_STATION) && IsRailwayStation(t);
 
}
 

	
 
static inline bool IsAirport(TileIndex t)
 
{
 
	return GetStationType(t) == STATION_AIRPORT;
 
}
 

	
 
bool IsHangar(TileIndex t);
 

	
 
static inline bool IsTruckStop(TileIndex t)
 
{
 
	return GetStationType(t) == STATION_TRUCK;
 
}
 

	
 
static inline bool IsBusStop(TileIndex t)
 
{
 
	return GetStationType(t) == STATION_BUS;
 
}
 

	
 
static inline bool IsRoadStop(TileIndex t)
 
{
 
	assert(IsTileType(t, MP_STATION));
 
	return IsTruckStop(t) || IsBusStop(t);
 
}
 

	
 
static inline bool IsRoadStopTile(TileIndex t)
 
{
 
	return IsTileType(t, MP_STATION) && IsRoadStop(t);
 
}
 

	
 
static inline bool IsStandardRoadStopTile(TileIndex t)
 
{
 
	return IsRoadStopTile(t) && GetStationGfx(t) < GFX_TRUCK_BUS_DRIVETHROUGH_OFFSET;
 
}
 

	
 
static inline bool IsDriveThroughStopTile(TileIndex t)
 
{
 
	return IsRoadStopTile(t) && GetStationGfx(t) >= GFX_TRUCK_BUS_DRIVETHROUGH_OFFSET;
 
}
 

	
0 comments (0 inline, 0 general)