summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/newgrf_house.cpp4
-rw-r--r--src/town.h2
-rw-r--r--src/town_cmd.cpp24
3 files changed, 18 insertions, 12 deletions
diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp
index e59097f70..3eab86df4 100644
--- a/src/newgrf_house.cpp
+++ b/src/newgrf_house.cpp
@@ -216,7 +216,7 @@ static uint32 HouseGetVariable(const ResolverObject *object, byte variable, byte
switch (variable) {
/* Construction stage. */
- case 0x40: return (IsTileType(tile, MP_HOUSE) ? GetHouseBuildingStage(tile) : 0) | OriginalTileRandomiser(TileX(tile), TileY(tile)) << 2;
+ case 0x40: return (IsTileType(tile, MP_HOUSE) ? GetHouseBuildingStage(tile) : 0) | TileHash2Bit(TileX(tile), TileY(tile)) << 2;
/* Building age. */
case 0x41: return Clamp(_cur_year - GetHouseConstructionYear(tile), 0, 0xFF);
@@ -340,7 +340,7 @@ void DrawTileLayout(const TileInfo *ti, const SpriteGroup *group, byte stage, Ho
pal = HasBit(callback, 14) ? GB(callback, 0, 8) + SPR_2CCMAP_BASE : callback;
}
} else {
- pal = hs->random_colour[OriginalTileRandomiser(ti->x, ti->y)] + PALETTE_RECOLOR_START;
+ pal = hs->random_colour[TileHash2Bit(ti->x, ti->y)] + PALETTE_RECOLOR_START;
}
}
} else {
diff --git a/src/town.h b/src/town.h
index 4c42c8bc5..cbbc76371 100644
--- a/src/town.h
+++ b/src/town.h
@@ -314,7 +314,7 @@ extern const Town **_town_sort;
extern Town *_cleared_town;
extern int _cleared_town_rating;
-uint OriginalTileRandomiser(uint x, uint y);
+uint TileHash2Bit(uint x, uint y);
void ResetHouses();
void ClearTownHouse(Town *t, TileIndex tile);
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
index fdf03b970..6d4c1bec3 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -129,15 +129,21 @@ static TownDrawTileProc * const _town_draw_tile_procs[1] = {
TownDrawHouseLift
};
-uint OriginalTileRandomiser(uint x, uint y)
+/**
+ * Calculate a hash value from a tile position
+ *
+ * @param x The X coordinate
+ * @param y The Y coordinate
+ * @return The hash of the tile
+ */
+uint TileHash2Bit(uint x, uint y)
{
- uint variant;
- variant = x >> 4;
- variant ^= x >> 6;
- variant ^= y >> 4;
- variant -= y >> 6;
- variant &= 3;
- return variant;
+ uint hash = x >> 4;
+ hash ^= x >> 6;
+ hash ^= y >> 4;
+ hash -= y >> 6;
+ hash &= 3;
+ return hash;
}
/**
@@ -175,7 +181,7 @@ static void DrawTile_Town(TileInfo *ti)
}
/* Retrieve pointer to the draw town tile struct */
- dcts = &_town_draw_tile_data[house_id << 4 | OriginalTileRandomiser(ti->x, ti->y) << 2 | GetHouseBuildingStage(ti->tile)];
+ dcts = &_town_draw_tile_data[house_id << 4 | TileHash2Bit(ti->x, ti->y) << 2 | GetHouseBuildingStage(ti->tile)];
if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED);