town_cmd.c
changeset 2238 33361a216301
parent 2187 a0e206ce9fbf
child 2360 4e4ebe18e448
equal deleted inserted replaced
2237:7afa286cd570 2238:33361a216301
   178 
   178 
   179 		do {
   179 		do {
   180 			i = (Random()&7) - 1;
   180 			i = (Random()&7) - 1;
   181 		} while (i < 0 || i == 1 || i*6==old);
   181 		} while (i < 0 || i == 1 || i*6==old);
   182 
   182 
   183 		_m[tile].m5 = (_m[tile].m5 & ~0x3F) | i;
   183 		SB(_m[tile].m5, 0, 6, i);
   184 	}
   184 	}
   185 
   185 
   186 	a = _m[tile].owner&0x7F;
   186 	a = _m[tile].owner&0x7F;
   187 	b = (_m[tile].m5&0x3F) * 6;
   187 	b = (_m[tile].m5&0x3F) * 6;
   188 	a += (a < b) ? 1 : -1;
   188 	a += (a < b) ? 1 : -1;
   253 	return pop;
   253 	return pop;
   254 }
   254 }
   255 
   255 
   256 static void MakeSingleHouseBigger(TileIndex tile)
   256 static void MakeSingleHouseBigger(TileIndex tile)
   257 {
   257 {
   258 	byte b;
       
   259 
       
   260 	assert(IsTileType(tile, MP_HOUSE));
   258 	assert(IsTileType(tile, MP_HOUSE));
   261 
   259 
   262 	b = _m[tile].m5;
   260 	if (_m[tile].m5 & 0x80) return;
   263 	if (b & 0x80)
   261 
   264 		return;
   262 	AB(_m[tile].m5, 0, 3, 1);
   265 
   263 	if (GB(_m[tile].m5, 0, 3) != 0) return;
   266 	_m[tile].m5 = (b & 0xC0) | ((b+1)&7);
       
   267 
       
   268 	if ((_m[tile].m5&7) != 0)
       
   269 		return;
       
   270 
   264 
   271 	_m[tile].m3 = _m[tile].m3 + 0x40;
   265 	_m[tile].m3 = _m[tile].m3 + 0x40;
   272 
   266 
   273 	if ( (_m[tile].m3 & 0xC0) == 0xC0) {
   267 	if ( (_m[tile].m3 & 0xC0) == 0xC0) {
   274 		ChangePopulation(GetTown(_m[tile].m2), _housetype_population[_m[tile].m4]);
   268 		ChangePopulation(GetTown(_m[tile].m2), _housetype_population[_m[tile].m4]);