(svn r20639) -Add: random bits to object tiles

This commit is contained in:
rubidium
2010-08-27 22:26:21 +00:00
parent 1f78d3f6ec
commit a126dc7500
4 changed files with 19 additions and 4 deletions

View File

@@ -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);
}
}

View File

@@ -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);