summaryrefslogtreecommitdiff
path: root/town_cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'town_cmd.c')
-rw-r--r--town_cmd.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/town_cmd.c b/town_cmd.c
index 77a0a2403..4e92e886d 100644
--- a/town_cmd.c
+++ b/town_cmd.c
@@ -92,7 +92,7 @@ static void DrawTile_Town(TileInfo *ti)
/* Retrieve pointer to the draw town tile struct */
{
/* this "randomizes" on the (up to) 4 variants of a building */
- byte gfx = (byte)_m[ti->tile].m4;
+ byte gfx = _m[ti->tile].m4;
byte stage = _m[ti->tile].m3 >> 6;
uint variant;
variant = ti->x >> 4;
@@ -304,16 +304,20 @@ static void TileLoop_Town(TileIndex tile)
r = Random();
- if ( (byte)r < _housetype_population[house] ) {
- uint amt = ((byte)r >> 3) + 1, moved;
+ if (GB(r, 0, 8) < _housetype_population[house]) {
+ uint amt = GB(r, 0, 8) / 8 + 1;
+ uint moved;
+
if (_economy.fluct <= 0) amt = (amt + 1) >> 1;
t->new_max_pass += amt;
moved = MoveGoodsToStation(tile, 1, 1, CT_PASSENGERS, amt);
t->new_act_pass += moved;
}
- if ( (byte)(r>>8) < _housetype_mailamount[house] ) {
- uint amt = ((byte)(r>>8) >> 3) + 1, moved;
+ if (GB(r, 8, 8) < _housetype_mailamount[house] ) {
+ uint amt = GB(r, 8, 8) / 8 + 1;
+ uint moved;
+
if (_economy.fluct <= 0) amt = (amt + 1) >> 1;
t->new_max_mail += amt;
moved = MoveGoodsToStation(tile, 1, 1, CT_MAIL, amt);
@@ -321,17 +325,14 @@ static void TileLoop_Town(TileIndex tile)
}
if (_house_more_flags[house]&8 && (t->flags12&1) && --t->time_until_rebuild == 0) {
- r>>=16;
- t->time_until_rebuild = (r & 63) + 130;
+ t->time_until_rebuild = GB(r, 16, 6) + 130;
_current_player = OWNER_TOWN;
ClearTownHouse(t, tile);
// rebuild with another house?
- if ( (byte) (r >> 8) >= 12) {
- DoBuildTownHouse(t, tile);
- }
+ if (GB(r, 24, 8) >= 12) DoBuildTownHouse(t, tile);
_current_player = OWNER_NONE;
}
@@ -1303,7 +1304,7 @@ static void DoBuildTownHouse(Town *t, TileIndex tile)
// Value for map3lo
m3lo = 0xC0;
- if ((byte)r >= 220) m3lo &= (r>>8);
+ if (GB(r, 0, 8) >= 220) m3lo &= (r>>8);
if (m3lo == 0xC0)
ChangePopulation(t, _housetype_population[house]);