mirror of https://github.com/OpenTTD/OpenTTD
This allows allows NewGRF object/industry placement rules to treat trees on coast tiles the same as regular bare coast.pull/7147/head
parent
780593ae60
commit
b242a04c7d
|
@ -759,6 +759,7 @@
|
||||||
<td valign=top nowrap> </td>
|
<td valign=top nowrap> </td>
|
||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>m1 bits 6..5: water class (sea or land)</li>
|
||||||
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li>
|
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li>
|
||||||
<li>m2 bits 8..6: ground
|
<li>m2 bits 8..6: ground
|
||||||
<table>
|
<table>
|
||||||
|
|
|
@ -194,7 +194,7 @@ the array so you can quickly see what is used and what is not.
|
||||||
<td class="caption">trees</td>
|
<td class="caption">trees</td>
|
||||||
<td class="bits">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">OOO</span><span class="option">~ ~~~~</span></td>
|
<td class="bits"><span class="free">O</span>XX<span class="option">~ ~~~~</span></td>
|
||||||
<td class="bits"><span class="free">OOOO OOO</span>X XXXX XXXX</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="option">~~</span>XX XXXX</td>
|
||||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#define TREE_MAP_H
|
#define TREE_MAP_H
|
||||||
|
|
||||||
#include "tile_map.h"
|
#include "tile_map.h"
|
||||||
|
#include "water_map.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of tree types along all landscape types.
|
* List of tree types along all landscape types.
|
||||||
|
@ -133,6 +134,7 @@ static inline void SetTreeGroundDensity(TileIndex t, TreeGround g, uint d)
|
||||||
assert(IsTileType(t, MP_TREES)); // XXX incomplete
|
assert(IsTileType(t, MP_TREES)); // XXX incomplete
|
||||||
SB(_m[t].m2, 4, 2, d);
|
SB(_m[t].m2, 4, 2, d);
|
||||||
SB(_m[t].m2, 6, 3, g);
|
SB(_m[t].m2, 6, 3, g);
|
||||||
|
SetWaterClass(t, g == TREE_GROUND_SHORE ? WATER_CLASS_SEA : WATER_CLASS_INVALID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -94,7 +94,7 @@ static inline WaterTileType GetWaterTileType(TileIndex t)
|
||||||
*/
|
*/
|
||||||
static inline bool HasTileWaterClass(TileIndex t)
|
static inline bool HasTileWaterClass(TileIndex t)
|
||||||
{
|
{
|
||||||
return IsTileType(t, MP_WATER) || IsTileType(t, MP_STATION) || IsTileType(t, MP_INDUSTRY) || IsTileType(t, MP_OBJECT);
|
return IsTileType(t, MP_WATER) || IsTileType(t, MP_STATION) || IsTileType(t, MP_INDUSTRY) || IsTileType(t, MP_OBJECT) || IsTileType(t, MP_TREES);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -204,7 +204,7 @@ static inline bool IsCoast(TileIndex t)
|
||||||
*/
|
*/
|
||||||
static inline bool IsCoastTile(TileIndex t)
|
static inline bool IsCoastTile(TileIndex t)
|
||||||
{
|
{
|
||||||
return IsTileType(t, MP_WATER) && IsCoast(t);
|
return (IsTileType(t, MP_WATER) && IsCoast(t)) || (IsTileType(t, MP_TREES) && GetWaterClass(t) != WATER_CLASS_INVALID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue