mirror of https://github.com/OpenTTD/OpenTTD
(svn r19791) -Change: use the typed FOR_EACH_SET_BIT for RoadTypes (adf88)
parent
d2364c32ed
commit
fe71d4fc99
|
@ -944,14 +944,12 @@ static CommandCost ClearTile_Road(TileIndex tile, DoCommandFlag flags)
|
||||||
|
|
||||||
/* Clear the road if only one piece is on the tile OR we are not using the DC_AUTO flag */
|
/* Clear the road if only one piece is on the tile OR we are not using the DC_AUTO flag */
|
||||||
if ((HasExactlyOneBit(b) && GetRoadBits(tile, ROADTYPE_TRAM) == ROAD_NONE) || !(flags & DC_AUTO)) {
|
if ((HasExactlyOneBit(b) && GetRoadBits(tile, ROADTYPE_TRAM) == ROAD_NONE) || !(flags & DC_AUTO)) {
|
||||||
RoadTypes rts = GetRoadTypes(tile);
|
|
||||||
CommandCost ret(EXPENSES_CONSTRUCTION);
|
CommandCost ret(EXPENSES_CONSTRUCTION);
|
||||||
for (RoadType rt = ROADTYPE_ROAD; rt < ROADTYPE_END; rt++) {
|
RoadType rt;
|
||||||
if (HasBit(rts, rt)) {
|
FOR_EACH_SET_ROADTYPE(rt, GetRoadTypes(tile)) {
|
||||||
CommandCost tmp_ret = RemoveRoad(tile, flags, GetRoadBits(tile, rt), rt, true);
|
CommandCost tmp_ret = RemoveRoad(tile, flags, GetRoadBits(tile, rt), rt, true);
|
||||||
if (tmp_ret.Failed()) return tmp_ret;
|
if (tmp_ret.Failed()) return tmp_ret;
|
||||||
ret.AddCost(tmp_ret);
|
ret.AddCost(tmp_ret);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,17 @@
|
||||||
#include "company_type.h"
|
#include "company_type.h"
|
||||||
#include "tile_type.h"
|
#include "tile_type.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iterate through each set RoadType in a RoadTypes value.
|
||||||
|
* For more informations see FOR_EACH_SET_BIT_EX.
|
||||||
|
*
|
||||||
|
* @param var Loop index variable that stores fallowing set road type. Must be of type RoadType.
|
||||||
|
* @param road_types The value to iterate through (any expression).
|
||||||
|
*
|
||||||
|
* @see FOR_EACH_SET_BIT_EX
|
||||||
|
*/
|
||||||
|
#define FOR_EACH_SET_ROADTYPE(var, road_types) FOR_EACH_SET_BIT_EX(RoadType, var, RoadTypes, road_types)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the given roadtype is valid.
|
* Whether the given roadtype is valid.
|
||||||
* @param rt the roadtype to check for validness
|
* @param rt the roadtype to check for validness
|
||||||
|
|
Loading…
Reference in New Issue