diff options
author | rubidium <rubidium@openttd.org> | 2010-08-27 22:26:21 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-08-27 22:26:21 +0000 |
commit | 536bb704b7bd4d15302e6e2f0200184af151cb73 (patch) | |
tree | 4e59ca5a88842082b129dffae41b33cf3670d15e /src | |
parent | 3e9e1b8e659c7fe36ac2188fb86ac601a8210d50 (diff) | |
download | openttd-536bb704b7bd4d15302e6e2f0200184af151cb73.tar.xz |
(svn r20639) -Add: random bits to object tiles
Diffstat (limited to 'src')
-rw-r--r-- | src/object_cmd.cpp | 3 | ||||
-rw-r--r-- | src/object_map.h | 17 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp index c92ff4580..5c39529c8 100644 --- a/src/object_cmd.cpp +++ b/src/object_cmd.cpp @@ -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); } } diff --git a/src/object_map.h b/src/object_map.h index e08e36ee6..580fd6976 100644 --- a/src/object_map.h +++ b/src/object_map.h @@ -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); |