unmovable_cmd.c
changeset 1059 fe97d81a1b4f
parent 1035 812f837ee03f
child 1093 4fdc46eaf423
equal deleted inserted replaced
1058:e522c5d6ff69 1059:fe97d81a1b4f
   266 //		TILE_MASK seems to be not working correctly. Radio masts accumulate in one area.
   266 //		TILE_MASK seems to be not working correctly. Radio masts accumulate in one area.
   267 //		tile = TILE_MASK(r);
   267 //		tile = TILE_MASK(r);
   268 		if (IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == 0 && h >= 32) {
   268 		if (IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == 0 && h >= 32) {
   269 			if(!checkRadioTowerNearby(tile))
   269 			if(!checkRadioTowerNearby(tile))
   270 				continue;
   270 				continue;
   271 			_map_type_and_height[tile] |= MP_UNMOVABLE << 4;
   271 			SetTileType(tile, MP_UNMOVABLE);
   272 			_map5[tile] = 0;
   272 			_map5[tile] = 0;
   273 			_map_owner[tile] = OWNER_NONE;
   273 			_map_owner[tile] = OWNER_NONE;
   274 			if (--j == 0)
   274 			if (--j == 0)
   275 				break;
   275 				break;
   276 		}
   276 		}
   298 			tile = TILE_MASK(tile + ToTileIndexDiff(_tile_add[dir]));
   298 			tile = TILE_MASK(tile + ToTileIndexDiff(_tile_add[dir]));
   299 		} while (!(IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == 0 && h <= 16));
   299 		} while (!(IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == 0 && h <= 16));
   300 
   300 
   301 		assert(tile == TILE_MASK(tile));
   301 		assert(tile == TILE_MASK(tile));
   302 
   302 
   303 		_map_type_and_height[tile] |= MP_UNMOVABLE << 4;
   303 		SetTileType(tile, MP_UNMOVABLE);
   304 		_map5[tile] = 1;
   304 		_map5[tile] = 1;
   305 		_map_owner[tile] = OWNER_NONE;
   305 		_map_owner[tile] = OWNER_NONE;
   306 	} while (--i);
   306 	} while (--i);
   307 }
   307 }
   308 
   308