mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r20639) -Add: random bits to object tiles
This commit is contained in:
parent
3e9e1b8e65
commit
536bb704b7
|
@ -1596,6 +1596,7 @@
|
|||
<li>m1 bits 6..5 : Water class (sea, canal, river or land)
|
||||
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li>
|
||||
<li>m2: index into the array of objects
|
||||
<li>m3: random bits
|
||||
<li>m5: tile type:
|
||||
<table>
|
||||
<tr>
|
||||
|
|
|
@ -330,7 +330,7 @@ the array so you can quickly see what is used and what is not.
|
|||
<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"><span class="free">OOOO OOOO</span></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>
|
||||
|
|
|
@ -63,7 +63,8 @@ void BuildObject(ObjectType type, TileIndex tile, CompanyID owner, Town *town)
|
|||
assert(o->town != NULL);
|
||||
|
||||
TILE_AREA_LOOP(t, ta) {
|
||||
MakeObject(t, type, owner, o->index, WATER_CLASS_INVALID);
|
||||
WaterClass wc = (IsWaterTile(t) ? GetWaterClass(t) : WATER_CLASS_INVALID);
|
||||
MakeObject(t, type, owner, o->index, wc, Random());
|
||||
MarkTileDirtyByTile(t);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -105,6 +105,18 @@ static inline bool IsStatueTile(TileIndex t)
|
|||
return IsTileType(t, MP_OBJECT) && IsStatue(t);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the random bits of this tile.
|
||||
* @param t The tile to get the bits for.
|
||||
* @pre IsTileType(t, MP_OBJECT)
|
||||
* @return The random bits.
|
||||
*/
|
||||
static inline byte GetObjectRandomBits(TileIndex t)
|
||||
{
|
||||
assert(IsTileType(t, MP_OBJECT));
|
||||
return _m[t].m3;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Make an Object tile.
|
||||
|
@ -114,14 +126,15 @@ static inline bool IsStatueTile(TileIndex t)
|
|||
* @param o The new owner of the tile.
|
||||
* @param index Index to the object.
|
||||
* @param wc Water class for this obect.
|
||||
* @param random Random data to store on the tile
|
||||
*/
|
||||
static inline void MakeObject(TileIndex t, ObjectType u, Owner o, ObjectID index, WaterClass wc)
|
||||
static inline void MakeObject(TileIndex t, ObjectType u, Owner o, ObjectID index, WaterClass wc, byte random)
|
||||
{
|
||||
SetTileType(t, MP_OBJECT);
|
||||
SetTileOwner(t, o);
|
||||
SetWaterClass(t, wc);
|
||||
_m[t].m2 = index;
|
||||
_m[t].m3 = 0;
|
||||
_m[t].m3 = random;
|
||||
_m[t].m4 = 0;
|
||||
_m[t].m5 = u;
|
||||
SB(_m[t].m6, 2, 4, 0);
|
||||
|
|
Loading…
Reference in New Issue