(svn r16966) -Codechange: BEGIN_TILE_LOOP and END_TILE_LOOP reworked into TILE_LOOP, which means no more duplication of parameters between BEGIN_TILE_LOOP and END_TILE_LOOP

This commit is contained in:
rubidium 2009-07-26 21:50:30 +00:00
parent 47a37b6093
commit 2ec12a3f58
13 changed files with 71 additions and 87 deletions

View File

@ -142,11 +142,11 @@
if (!HasHeliport(industry_id)) return INVALID_TILE;
const Industry *ind = ::Industry::Get(industry_id);
BEGIN_TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy);
TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy) {
if (IsTileType(tile_cur, MP_STATION) && IsOilRig(tile_cur)) {
return tile_cur;
}
END_TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy);
}
return INVALID_TILE;
}
@ -164,11 +164,11 @@
if (!HasDock(industry_id)) return INVALID_TILE;
const Industry *ind = ::Industry::Get(industry_id);
BEGIN_TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy);
TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy) {
if (IsTileType(tile_cur, MP_STATION) && IsOilRig(tile_cur)) {
return tile_cur;
}
END_TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy);
}
return INVALID_TILE;
}

View File

@ -192,9 +192,9 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
return st->truck_stops->xy;
} else if (st->airport_tile != INVALID_TILE) {
const AirportFTAClass *fta = st->Airport();
BEGIN_TILE_LOOP(tile, fta->size_x, fta->size_y, st->airport_tile) {
TILE_LOOP(tile, fta->size_x, fta->size_y, st->airport_tile) {
if (!::IsHangar(tile)) return tile;
} END_TILE_LOOP(tile, fta->size_x, fta->size_y, st->airport_tile)
}
}
return INVALID_TILE;
}

View File

@ -34,9 +34,7 @@ void AITileList::AddRectangle(TileIndex t1, TileIndex t2)
uint w = TileX(t2) - TileX(t1) + 1;
uint h = TileY(t2) - TileY(t1) + 1;
BEGIN_TILE_LOOP(t, w, h, t1) {
this->AddItem(t);
} END_TILE_LOOP(t, w, h, t1)
TILE_LOOP(t, w, h, t1) this->AddItem(t);
}
void AITileList::AddTile(TileIndex tile)
@ -56,9 +54,7 @@ void AITileList::RemoveRectangle(TileIndex t1, TileIndex t2)
uint w = TileX(t2) - TileX(t1) + 1;
uint h = TileY(t2) - TileY(t1) + 1;
BEGIN_TILE_LOOP(t, w, h, t1) {
this->RemoveItem(t);
} END_TILE_LOOP(t, w, h, t1)
TILE_LOOP(t, w, h, t1) this->RemoveItem(t);
}
void AITileList::RemoveTile(TileIndex tile)
@ -85,7 +81,7 @@ AITileList_IndustryAccepting::AITileList_IndustryAccepting(IndustryID industry_i
if (!_settings_game.station.modified_catchment) radius = CA_UNMODIFIED;
BEGIN_TILE_LOOP(cur_tile, i->width + radius * 2, i->height + radius * 2, i->xy - ::TileDiffXY(radius, radius)) {
TILE_LOOP(cur_tile, i->width + radius * 2, i->height + radius * 2, i->xy - ::TileDiffXY(radius, radius)) {
if (!::IsValidTile(cur_tile)) continue;
/* Exclude all tiles that belong to this industry */
if (::IsTileType(cur_tile, MP_INDUSTRY) && ::GetIndustryIndex(cur_tile) == industry_id) continue;
@ -102,7 +98,7 @@ AITileList_IndustryAccepting::AITileList_IndustryAccepting(IndustryID industry_i
}
this->AddTile(cur_tile);
} END_TILE_LOOP(cur_tile, i->width + radius * 2, i->height + radius * 2, i->xy - ::TileDiffXY(radius, radius))
}
}
AITileList_IndustryProducing::AITileList_IndustryProducing(IndustryID industry_id, int radius)
@ -122,7 +118,7 @@ AITileList_IndustryProducing::AITileList_IndustryProducing(IndustryID industry_i
if (!_settings_game.station.modified_catchment) radius = CA_UNMODIFIED;
BEGIN_TILE_LOOP(cur_tile, i->width + radius * 2, i->height + radius * 2, i->xy - ::TileDiffXY(radius, radius)) {
TILE_LOOP(cur_tile, i->width + radius * 2, i->height + radius * 2, i->xy - ::TileDiffXY(radius, radius)) {
if (!::IsValidTile(cur_tile)) continue;
/* Exclude all tiles that belong to this industry */
if (::IsTileType(cur_tile, MP_INDUSTRY) && ::GetIndustryIndex(cur_tile) == industry_id) continue;
@ -139,7 +135,7 @@ AITileList_IndustryProducing::AITileList_IndustryProducing(IndustryID industry_i
}
this->AddTile(cur_tile);
} END_TILE_LOOP(cur_tile, i->width + radius * 2, i->height + radius * 2, i->xy - ::TileDiffXY(radius, radius))
}
}
AITileList_StationType::AITileList_StationType(StationID station_id, AIStation::StationType station_type)
@ -157,10 +153,10 @@ AITileList_StationType::AITileList_StationType(StationID station_id, AIStation::
if ((station_type & AIStation::STATION_AIRPORT) != 0) station_type_value |= (1 << ::STATION_AIRPORT) | (1 << ::STATION_OILRIG);
if ((station_type & AIStation::STATION_DOCK) != 0) station_type_value |= (1 << ::STATION_DOCK) | (1 << ::STATION_OILRIG);
BEGIN_TILE_LOOP(cur_tile, rect->right - rect->left + 1, rect->bottom - rect->top + 1, ::TileXY(rect->left, rect->top)) {
TILE_LOOP(cur_tile, rect->right - rect->left + 1, rect->bottom - rect->top + 1, ::TileXY(rect->left, rect->top)) {
if (!::IsTileType(cur_tile, MP_STATION)) continue;
if (::GetStationIndex(cur_tile) != station_id) continue;
if (!HasBit(station_type_value, ::GetStationType(cur_tile))) continue;
this->AddTile(cur_tile);
} END_TILE_LOOP(cur_tile, rect->right - rect->left + 1, rect->bottom - rect->top + 1, ::TileXY(rect->left, rect->top))
}
}

View File

@ -136,7 +136,7 @@ Industry::~Industry()
* This means that we do not have to clear tiles either. */
if (this->width == 0) return;
BEGIN_TILE_LOOP(tile_cur, this->width, this->height, this->xy);
TILE_LOOP(tile_cur, this->width, this->height, this->xy) {
if (IsTileType(tile_cur, MP_INDUSTRY)) {
if (GetIndustryIndex(tile_cur) == this->index) {
/* MakeWaterKeepingClass() can also handle 'land' */
@ -149,17 +149,17 @@ Industry::~Industry()
} else if (IsTileType(tile_cur, MP_STATION) && IsOilRig(tile_cur)) {
DeleteOilRig(tile_cur);
}
END_TILE_LOOP(tile_cur, this->width, this->height, this->xy);
}
if (GetIndustrySpec(this->type)->behaviour & INDUSTRYBEH_PLANT_FIELDS) {
/* Remove the farmland and convert it to regular tiles over time. */
BEGIN_TILE_LOOP(tile_cur, 42, 42, this->xy - TileDiffXY(21, 21)) {
TILE_LOOP(tile_cur, 42, 42, this->xy - TileDiffXY(21, 21)) {
tile_cur = TILE_MASK(tile_cur);
if (IsTileType(tile_cur, MP_CLEAR) && IsClearGround(tile_cur, CLEAR_FIELDS) &&
GetIndustryIndexOfField(tile_cur) == this->index) {
SetIndustryIndexOfField(tile_cur, INVALID_INDUSTRY);
}
} END_TILE_LOOP(tile_cur, 42, 42, this->xy - TileDiff(21, 21))
}
}
/* don't let any disaster vehicle target invalid industry */
@ -957,10 +957,10 @@ static void PlantFarmField(TileIndex tile, IndustryID industry)
/* check the amount of bad tiles */
count = 0;
BEGIN_TILE_LOOP(cur_tile, size_x, size_y, tile)
TILE_LOOP(cur_tile, size_x, size_y, tile) {
assert(cur_tile < MapSize());
count += IsBadFarmFieldTile(cur_tile);
END_TILE_LOOP(cur_tile, size_x, size_y, tile)
}
if (count * 2 >= size_x * size_y) return;
/* determine type of field */
@ -969,14 +969,14 @@ static void PlantFarmField(TileIndex tile, IndustryID industry)
field_type = GB(r, 8, 8) * 9 >> 8;
/* make field */
BEGIN_TILE_LOOP(cur_tile, size_x, size_y, tile)
TILE_LOOP(cur_tile, size_x, size_y, tile) {
assert(cur_tile < MapSize());
if (!IsBadFarmFieldTile2(cur_tile)) {
MakeField(cur_tile, field_type, industry);
SetClearCounter(cur_tile, counter);
MarkTileDirtyByTile(cur_tile);
}
END_TILE_LOOP(cur_tile, size_x, size_y, tile)
}
type = 3;
if (_settings_game.game_creation.landscape != LT_ARCTIC && _settings_game.game_creation.landscape != LT_TROPIC) {
@ -1340,7 +1340,7 @@ static bool CheckCanTerraformSurroundingTiles(TileIndex tile, uint height, int i
if (TileX(tile) == 0 || TileY(tile) == 0 || GetTileType(tile) == MP_VOID) return false;
tile += TileDiffXY(-1, -1);
BEGIN_TILE_LOOP(tile_walk, size_x, size_y, tile) {
TILE_LOOP(tile_walk, size_x, size_y, tile) {
curh = TileHeight(tile_walk);
/* Is the tile clear? */
if ((GetTileType(tile_walk) != MP_CLEAR) && (GetTileType(tile_walk) != MP_TREES))
@ -1356,7 +1356,7 @@ static bool CheckCanTerraformSurroundingTiles(TileIndex tile, uint height, int i
if (TileX(tile_walk) == 0 || TileY(tile_walk) == 0 || !CheckCanTerraformSurroundingTiles(tile_walk + TileDiffXY(-1, -1), height, internal + 1))
return false;
}
} END_TILE_LOOP(tile_walk, size_x, size_y, tile);
}
return true;
}
@ -1399,7 +1399,7 @@ static bool CheckIfCanLevelIndustryPlatform(TileIndex tile, DoCommandFlag flags,
CompanyID old_company = _current_company;
_current_company = OWNER_TOWN;
BEGIN_TILE_LOOP(tile_walk, size_x, size_y, cur_tile) {
TILE_LOOP(tile_walk, size_x, size_y, cur_tile) {
curh = TileHeight(tile_walk);
if (curh != h) {
/* This tile needs terraforming. Check if we can do that without
@ -1415,11 +1415,11 @@ static bool CheckIfCanLevelIndustryPlatform(TileIndex tile, DoCommandFlag flags,
return false;
}
}
} END_TILE_LOOP(tile_walk, size_x, size_y, cur_tile)
}
if (flags & DC_EXEC) {
/* Terraform the land under the industry */
BEGIN_TILE_LOOP(tile_walk, size_x, size_y, cur_tile) {
TILE_LOOP(tile_walk, size_x, size_y, cur_tile) {
curh = TileHeight(tile_walk);
while (curh != h) {
/* We give the terraforming for free here, because we can't calculate
@ -1428,7 +1428,7 @@ static bool CheckIfCanLevelIndustryPlatform(TileIndex tile, DoCommandFlag flags,
DoCommand(tile_walk, SLOPE_N, (curh > h) ? 0 : 1, flags, CMD_TERRAFORM_LAND);
curh += (curh > h) ? -1 : 1;
}
} END_TILE_LOOP(tile_walk, size_x, size_y, cur_tile)
}
}
_current_company = old_company;

View File

@ -327,7 +327,7 @@ uint DistanceMaxPlusManhattan(TileIndex, TileIndex); ///< Max + Manhattan
uint DistanceFromEdge(TileIndex); ///< shortest distance from any edge of the map
/**
* Starts a loop which iterates to a square of tiles
* A loop which iterates to a square of tiles
*
* This macro starts 2 nested loops which iterates over a square of tiles.
*
@ -336,22 +336,10 @@ uint DistanceFromEdge(TileIndex); ///< shortest distance from any edge of the ma
* @param h The heigth (y-width) of the square
* @param tile The start tile of the square
*/
#define BEGIN_TILE_LOOP(var, w, h, tile) \
{ \
int h_cur = h; \
uint var = tile; \
do { \
int w_cur = w; \
do {
/**
* Ends the square-loop used before
*
* @see BEGIN_TILE_LOOP
*/
#define END_TILE_LOOP(var, w, h, tile) \
} while (++var, --w_cur != 0); \
} while (var += TileDiffXY(0, 1) - (w), --h_cur != 0); \
}
#define TILE_LOOP(var, w, h, tile) \
for (uint var = tile, cur_h = (h); cur_h > 0; --cur_h, var += TileDiffXY(0, 1) - (w)) \
for (uint cur_w = (w); cur_w > 0; --cur_w, var++)
/**
* Convert a DiagDirection to a TileIndexDiff
*

View File

@ -389,7 +389,7 @@ bool StartStopIndustryTileAnimation(const Industry *ind, IndustryAnimationTrigge
{
bool ret = true;
uint32 random = Random();
BEGIN_TILE_LOOP(tile, ind->width, ind->height, ind->xy)
TILE_LOOP(tile, ind->width, ind->height, ind->xy) {
if (IsTileType(tile, MP_INDUSTRY) && GetIndustryIndex(tile) == ind->index) {
if (StartStopIndustryTileAnimation(tile, iat, random)) {
SB(random, 0, 16, Random());
@ -397,7 +397,7 @@ bool StartStopIndustryTileAnimation(const Industry *ind, IndustryAnimationTrigge
ret = false;
}
}
END_TILE_LOOP(tile, ind->width, ind->height, ind->xy)
}
return ret;
}
@ -433,9 +433,9 @@ void TriggerIndustryTile(TileIndex tile, IndustryTileTrigger trigger)
void TriggerIndustry(Industry *ind, IndustryTileTrigger trigger)
{
BEGIN_TILE_LOOP(tile, ind->width, ind->height, ind->xy)
TILE_LOOP(tile, ind->width, ind->height, ind->xy) {
if (IsTileType(tile, MP_INDUSTRY) && GetIndustryIndex(tile) == ind->index) {
DoTriggerIndustryTile(tile, trigger, ind);
}
END_TILE_LOOP(tile, ind->width, ind->height, ind->xy)
}
}

View File

@ -415,9 +415,9 @@ bool StationRect::BeforeAddRect(TileIndex tile, int w, int h, StationRectMode mo
int width = right_a - left_a + 1;
int height = bottom_a - top_a + 1;
BEGIN_TILE_LOOP(tile, width, height, top_left)
TILE_LOOP(tile, width, height, top_left) {
if (IsTileType(tile, MP_STATION) && GetStationIndex(tile) == st_id) return true;
END_TILE_LOOP(tile, width, height, top_left);
}
return false;
}

View File

@ -76,7 +76,7 @@ static uint GetNumRoadStopsInStation(const Station *st, RoadStopType type)
static Station *GetStationAround(TileIndex tile, int w, int h, StationID closest_station)
{
/* check around to see if there's any stations there */
BEGIN_TILE_LOOP(tile_cur, w + 2, h + 2, tile - TileDiffXY(1, 1))
TILE_LOOP(tile_cur, w + 2, h + 2, tile - TileDiffXY(1, 1)) {
if (IsTileType(tile_cur, MP_STATION)) {
StationID t = GetStationIndex(tile_cur);
@ -87,7 +87,7 @@ static Station *GetStationAround(TileIndex tile, int w, int h, StationID closest
return CHECK_STATIONS_ERR;
}
}
END_TILE_LOOP(tile_cur, w + 2, h + 2, tile - TileDiffXY(1, 1))
}
return (closest_station == INVALID_STATION) ? NULL : Station::Get(closest_station);
}
@ -649,7 +649,7 @@ CommandCost CheckFlatLandBelow(TileIndex tile, uint w, uint h, DoCommandFlag fla
CommandCost cost(EXPENSES_CONSTRUCTION);
int allowed_z = -1;
BEGIN_TILE_LOOP(tile_cur, w, h, tile) {
TILE_LOOP(tile_cur, w, h, tile) {
if (MayHaveBridgeAbove(tile_cur) && IsBridgeAbove(tile_cur)) {
return_cmd_error(STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST);
}
@ -709,7 +709,7 @@ CommandCost CheckFlatLandBelow(TileIndex tile, uint w, uint h, DoCommandFlag fla
if (CmdFailed(ret)) return ret;
cost.AddCost(ret);
}
} END_TILE_LOOP(tile_cur, w, h, tile)
}
return cost;
}
@ -735,12 +735,12 @@ static bool CanExpandRailStation(const Station *st, TileArea &cur_ta, Axis axis)
} else {
/* do not allow modifying non-uniform stations,
* the uniform-stations code wouldn't handle it well */
BEGIN_TILE_LOOP(t, st->train_station.w, st->train_station.h, st->train_station.tile)
TILE_LOOP(t, st->train_station.w, st->train_station.h, st->train_station.tile) {
if (!st->TileBelongsToRailStation(t)) { // there may be adjoined station
_error_message = STR_NONUNIFORM_STATIONS_DISALLOWED;
return false;
}
END_TILE_LOOP(t, st->train_station.w, st->train_station.h, st->train_station.tile)
}
/* check so the orientation is the same */
if (GetRailStationAxis(st->train_station.tile) != axis) {
@ -1147,7 +1147,7 @@ CommandCost CmdRemoveFromRailroadStation(TileIndex tile, DoCommandFlag flags, ui
SmallVector<Station *, 4> affected_stations;
/* Do the action for every tile into the area */
BEGIN_TILE_LOOP(tile2, size_x, size_y, tile) {
TILE_LOOP(tile2, size_x, size_y, tile) {
/* Make sure the specified tile is a railroad station */
if (!IsRailStationTile(tile2)) {
continue;
@ -1208,7 +1208,7 @@ CommandCost CmdRemoveFromRailroadStation(TileIndex tile, DoCommandFlag flags, ui
if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), true);
}
}
} END_TILE_LOOP(tile2, size_x, size_y, tile)
}
for (Station **stp = affected_stations.Begin(); stp != affected_stations.End(); stp++) {
Station *st = *stp;
@ -1837,10 +1837,10 @@ CommandCost CmdBuildAirport(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
{
const byte *b = _airport_sections[p1];
BEGIN_TILE_LOOP(tile_cur, w, h, tile) {
TILE_LOOP(tile_cur, w, h, tile) {
MakeAirport(tile_cur, st->owner, st->index, *b);
b++;
} END_TILE_LOOP(tile_cur, w, h, tile)
}
}
st->UpdateVirtCoord();
@ -1886,14 +1886,14 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags)
if (a->targetairport == st->index && a->state != FLYING) return CMD_ERROR;
}
BEGIN_TILE_LOOP(tile_cur, w, h, tile) {
TILE_LOOP(tile_cur, w, h, tile) {
if (!EnsureNoVehicleOnGround(tile_cur)) return CMD_ERROR;
if (flags & DC_EXEC) {
DeleteAnimatedTile(tile_cur);
DoClearSquare(tile_cur);
}
} END_TILE_LOOP(tile_cur, w, h, tile)
}
if (flags & DC_EXEC) {
for (uint i = 0; i < afc->nof_depots; ++i) {

View File

@ -1132,9 +1132,9 @@ static const Station *FindStationsNearby(TileArea ta, bool distant_join)
_deleted_stations_nearby.Clear();
/* Check the inside, to return, if we sit on another station */
BEGIN_TILE_LOOP(t, ta.w, ta.h, ta.tile)
TILE_LOOP(t, ta.w, ta.h, ta.tile) {
if (t < MapSize() && IsTileType(t, MP_STATION) && Station::IsValidID(GetStationIndex(t))) return Station::GetByTile(t);
END_TILE_LOOP(t, ta.w, ta.h, ta.tile)
}
/* Look for deleted stations */
const BaseStation *st;

View File

@ -385,7 +385,7 @@ CommandCost CmdLevelLand(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
Money money = GetAvailableMoneyForCommand();
CommandCost cost(EXPENSES_CONSTRUCTION);
BEGIN_TILE_LOOP(tile2, size_x, size_y, tile) {
TILE_LOOP(tile2, size_x, size_y, tile) {
uint curh = TileHeight(tile2);
while (curh != h) {
CommandCost ret = DoCommand(tile2, SLOPE_N, (curh > h) ? 0 : 1, flags & ~DC_EXEC, CMD_TERRAFORM_LAND);
@ -403,7 +403,7 @@ CommandCost CmdLevelLand(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
cost.AddCost(ret);
curh += (curh > h) ? -1 : 1;
}
} END_TILE_LOOP(tile2, size_x, size_y, tile)
}
return (cost.GetCost() == 0) ? CMD_ERROR : cost;
}

View File

@ -58,11 +58,11 @@ static void GenerateDesertArea(TileIndex end, TileIndex start)
size_y = (ey - sy) + 1;
_generating_world = true;
BEGIN_TILE_LOOP(tile, size_x, size_y, TileXY(sx, sy)) {
TILE_LOOP(tile, size_x, size_y, TileXY(sx, sy)) {
SetTropicZone(tile, (_ctrl_pressed) ? TROPICZONE_NORMAL : TROPICZONE_DESERT);
DoCommandP(tile, 0, 0, CMD_LANDSCAPE_CLEAR);
MarkTileDirtyByTile(tile);
} END_TILE_LOOP(tile, size_x, size_y, 0);
}
_generating_world = false;
}
@ -83,7 +83,7 @@ static void GenerateRockyArea(TileIndex end, TileIndex start)
size_x = (ex - sx) + 1;
size_y = (ey - sy) + 1;
BEGIN_TILE_LOOP(tile, size_x, size_y, TileXY(sx, sy)) {
TILE_LOOP(tile, size_x, size_y, TileXY(sx, sy)) {
switch (GetTileType(tile)) {
case MP_TREES:
if (GetTreeGround(tile) == TREE_GROUND_SHORE) continue;
@ -96,7 +96,7 @@ static void GenerateRockyArea(TileIndex end, TileIndex start)
}
MarkTileDirtyByTile(tile);
success = true;
} END_TILE_LOOP(tile, size_x, size_y, 0);
}
if (success) SndPlayTileFx(SND_1F_SPLAT, end);
}
@ -410,22 +410,22 @@ static void CommonRaiseLowerBigLand(TileIndex tile, int mode)
if (mode != 0) {
/* Raise land */
h = 15; // XXX - max height
BEGIN_TILE_LOOP(tile2, sizex, sizey, tile) {
TILE_LOOP(tile2, sizex, sizey, tile) {
h = min(h, TileHeight(tile2));
} END_TILE_LOOP(tile2, sizex, sizey, tile)
}
} else {
/* Lower land */
h = 0;
BEGIN_TILE_LOOP(tile2, sizex, sizey, tile) {
TILE_LOOP(tile2, sizex, sizey, tile) {
h = max(h, TileHeight(tile2));
} END_TILE_LOOP(tile2, sizex, sizey, tile)
}
}
BEGIN_TILE_LOOP(tile2, sizex, sizey, tile) {
TILE_LOOP(tile2, sizex, sizey, tile) {
if (TileHeight(tile2) == h) {
DoCommandP(tile2, SLOPE_N, (uint32)mode, CMD_TERRAFORM_LAND);
}
} END_TILE_LOOP(tile2, sizex, sizey, tile)
}
}
}

View File

@ -370,9 +370,9 @@ static bool IsRadioTowerNearby(TileIndex tile)
uint w = min(TileX(tile), 4U) + 1 + min(MapMaxX() - TileX(tile), 4U);
uint h = min(TileY(tile), 4U) + 1 + min(MapMaxY() - TileY(tile), 4U);
BEGIN_TILE_LOOP(tile, w, h, tile_s)
TILE_LOOP(tile, w, h, tile_s) {
if (IsTransmitterTile(tile)) return true;
END_TILE_LOOP(tile, w, h, tile_s)
}
return false;
}

View File

@ -307,7 +307,7 @@ CommandCost CmdBuildCanal(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
/* Outside the editor you can only drag canals, and not areas */
if (_game_mode != GM_EDITOR && (sx != x && sy != y)) return CMD_ERROR;
BEGIN_TILE_LOOP(tile, size_x, size_y, TileXY(sx, sy)) {
TILE_LOOP(tile, size_x, size_y, TileXY(sx, sy)) {
CommandCost ret;
Slope slope = GetTileSlope(tile, NULL);
@ -335,7 +335,7 @@ CommandCost CmdBuildCanal(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
}
cost.AddCost(_price.clear_water);
} END_TILE_LOOP(tile, size_x, size_y, 0);
}
if (cost.GetCost() == 0) {
return_cmd_error(STR_ERROR_ALREADY_BUILT);
@ -749,11 +749,11 @@ static void FloodVehicles(TileIndex tile)
if (!_settings_game.station.nonuniform_stations && IsTileType(tile, MP_STATION) && GetStationType(tile) == STATION_RAIL) {
const Station *st = Station::GetByTile(tile);
BEGIN_TILE_LOOP(t, st->train_station.w, st->train_station.h, st->train_station.tile)
TILE_LOOP(t, st->train_station.w, st->train_station.h, st->train_station.tile) {
if (st->TileBelongsToRailStation(t)) {
FindVehicleOnPos(tile, &z, &FloodVehicleProc);
}
END_TILE_LOOP(t, st->train_station.w, st->train_station.h, st->train_station.tile)
}
return;
}