diff options
-rw-r--r-- | ai.c | 34 | ||||
-rw-r--r-- | ai.h | 4 | ||||
-rw-r--r-- | ai_build.c | 4 | ||||
-rw-r--r-- | ai_new.c | 28 | ||||
-rw-r--r-- | ai_pathfinder.c | 18 | ||||
-rw-r--r-- | aircraft_cmd.c | 2 | ||||
-rw-r--r-- | aircraft_gui.c | 2 | ||||
-rw-r--r-- | clear_cmd.c | 20 | ||||
-rw-r--r-- | disaster_cmd.c | 14 | ||||
-rw-r--r-- | industry_cmd.c | 16 | ||||
-rw-r--r-- | landscape.c | 22 | ||||
-rw-r--r-- | macros.h | 4 | ||||
-rw-r--r-- | main_gui.c | 2 | ||||
-rw-r--r-- | map.h | 18 | ||||
-rw-r--r-- | oldloader.c | 2 | ||||
-rw-r--r-- | order_gui.c | 6 | ||||
-rw-r--r-- | pathfind.c | 24 | ||||
-rw-r--r-- | rail_cmd.c | 30 | ||||
-rw-r--r-- | rail_gui.c | 6 | ||||
-rw-r--r-- | road_cmd.c | 8 | ||||
-rw-r--r-- | road_gui.c | 2 | ||||
-rw-r--r-- | roadveh_cmd.c | 20 | ||||
-rw-r--r-- | ship_cmd.c | 2 | ||||
-rw-r--r-- | smallmap_gui.c | 12 | ||||
-rw-r--r-- | station_cmd.c | 20 | ||||
-rw-r--r-- | town_cmd.c | 32 | ||||
-rw-r--r-- | train_cmd.c | 28 | ||||
-rw-r--r-- | tree_cmd.c | 12 | ||||
-rw-r--r-- | ttd.c | 6 | ||||
-rw-r--r-- | tunnelbridge_cmd.c | 26 | ||||
-rw-r--r-- | unmovable_cmd.c | 6 | ||||
-rw-r--r-- | vehicle.c | 8 | ||||
-rw-r--r-- | water_cmd.c | 18 |
33 files changed, 239 insertions, 217 deletions
@@ -1599,7 +1599,7 @@ clear_town_stuff:; } } else if (p->mode == 2) { // Rail - if (IS_TILETYPE(c, MP_RAILWAY)) + if (IsTileType(c, MP_RAILWAY)) return CMD_ERROR; j = p->attr; @@ -1618,7 +1618,7 @@ clear_town_stuff:; /* signals too? */ if (j&3) { // Can't build signals on a road. - if (IS_TILETYPE(c, MP_STREET)) + if (IsTileType(c, MP_STREET)) return CMD_ERROR; if (flag & DC_EXEC) { @@ -2179,7 +2179,7 @@ static bool AiRemoveTileAndGoForward(Player *p) int offs; TileIndex tilenew; - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE)) { + if (IsTileType(tile, MP_TUNNELBRIDGE)) { if (!(_map5[tile] & 0x80)) { // Clear the tunnel and continue at the other side of it. if (DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR) == CMD_ERROR) @@ -2219,7 +2219,7 @@ static bool AiRemoveTileAndGoForward(Player *p) bit = FindFirstBit(b); // Then remove and signals if there are any. - if (IS_TILETYPE(tile, MP_RAILWAY) && + if (IsTileType(tile, MP_RAILWAY) && (_map5[tile]&0xC0) == 0x40) { DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_REMOVE_SIGNALS); } @@ -2542,7 +2542,7 @@ static int32 AiDoBuildDefaultRoadBlock(TileIndex tile, const AiDefaultBlockData _cleared_town = NULL; if (p->mode == 2) { - if (IS_TILETYPE(c, MP_STREET) && + if (IsTileType(c, MP_STREET) && (_map5[c]&0xF0)==0 && (_map5[c]&p->attr)!=0) { roadflag |= 2; @@ -2590,7 +2590,7 @@ clear_town_stuff:; if (GetTileSlope(c, NULL) != 0) return CMD_ERROR; - if (!(IS_TILETYPE(c, MP_STREET) && (_map5[c]&0xF0)==0)) { + if (!(IsTileType(c, MP_STREET) && (_map5[c] & 0xF0) == 0)) { r = DoCommandByTile(c, 0, 0, flag | DC_AUTO | DC_NO_WATER | DC_AI_BUILDING, CMD_LANDSCAPE_CLEAR); if (r == CMD_ERROR) return CMD_ERROR; } @@ -2773,7 +2773,7 @@ static bool AiEnumFollowRoad(uint tile, AiRoadEnum *a, int track, uint length, b if (dist <= a->best_dist) { tile2 = TILE_MASK(tile + TileOffsByDir(_dir_by_track[track])); - if (IS_TILETYPE(tile2, MP_STREET) && + if (IsTileType(tile2, MP_STREET) && (_map5[tile2]&0xF0) == 0) { a->best_dist = dist; a->best_tile = tile; @@ -3426,9 +3426,9 @@ static void AiStateBuildDefaultAirportBlocks(Player *p) rule = AiFindBestDefaultAirportBlock(aib->use_tile, aib->cargo, p->ai.build_kind, &cost); #if 0 - if (!IS_TILETYPE(aib->use_tile, MP_STREET) && - !IS_TILETYPE(aib->use_tile, MP_RAILWAY) && - !IS_TILETYPE(aib->use_tile, MP_STATION) + if (!IsTileType(aib->use_tile, MP_STREET) && + !IsTileType(aib->use_tile, MP_RAILWAY) && + !IsTileType(aib->use_tile, MP_STATION) ) { _map_type_and_height[aib->use_tile] = 0xa1; @@ -3643,7 +3643,7 @@ static void AiRemovePlayerRailOrRoad(Player *p, uint tile) { byte m5; - if (IS_TILETYPE(tile, MP_RAILWAY)) { + if (IsTileType(tile, MP_RAILWAY)) { if (_map_owner[tile] != _current_player) return; m5 = _map5[tile]; @@ -3702,7 +3702,7 @@ pos_3: DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR); } - } else if (IS_TILETYPE(tile, MP_STREET)) { + } else if (IsTileType(tile, MP_STREET)) { if (_map_owner[tile] != _current_player) return; @@ -3713,19 +3713,19 @@ pos_3: int dir; // Check if there are any stations around. - if (IS_TILETYPE(tile + TILE_XY(-1,0), MP_STATION) && + if (IsTileType(tile + TILE_XY(-1,0), MP_STATION) && _map_owner[tile + TILE_XY(-1,0)] == _current_player) return; - if (IS_TILETYPE(tile + TILE_XY(1,0), MP_STATION) && + if (IsTileType(tile + TILE_XY(1,0), MP_STATION) && _map_owner[tile + TILE_XY(1,0)] == _current_player) return; - if (IS_TILETYPE(tile + TILE_XY(0,-1), MP_STATION) && + if (IsTileType(tile + TILE_XY(0,-1), MP_STATION) && _map_owner[tile + TILE_XY(0,-1)] == _current_player) return; - if (IS_TILETYPE(tile + TILE_XY(0,1), MP_STATION) && + if (IsTileType(tile + TILE_XY(0,1), MP_STATION) && _map_owner[tile + TILE_XY(0,1)] == _current_player) return; @@ -3739,7 +3739,7 @@ pos_3: DC_EXEC, CMD_REMOVE_ROAD); } - } else if (IS_TILETYPE(tile, MP_TUNNELBRIDGE)) { + } else if (IsTileType(tile, MP_TUNNELBRIDGE)) { byte b; if (_map_owner[tile] != _current_player || (_map5[tile] & 0xC6) != 0x80) @@ -230,8 +230,8 @@ enum { // A macro for mp_street, where 0x20 is depot // mp_tunnelbridge, where 0xf0 is a bridge, and 0x4/0x2 means: roadtunnel/bridge -#define AI_PATHFINDER_IS_ROAD(tile) ((IS_TILETYPE(tile, MP_STREET) && !(_map5[tile] & 0x20)) || \ -(IS_TILETYPE(tile, MP_TUNNELBRIDGE) && \ +#define AI_PATHFINDER_IS_ROAD(tile) ((IsTileType(tile, MP_STREET) && !(_map5[tile] & 0x20)) || \ +(IsTileType(tile, MP_TUNNELBRIDGE) && \ (((_map5[tile] & 0x80) == 0 && (_map5[tile] & 0x4) == 0x4) || \ ((_map5[tile] & 0x80) != 0 && (_map5[tile] & 0x2) == 0x2)))) diff --git a/ai_build.c b/ai_build.c index e8f9edf95..f5745f62c 100644 --- a/ai_build.c +++ b/ai_build.c @@ -174,11 +174,11 @@ int AiNew_Build_RoutePart(Player *p, Ai_PathFinderInfo *PathFinderInfo, byte fla if (old_dir != -1 && old_dir != dir) break; old_dir = dir; // There is already some road, and it is a bridge.. don't build!!! - if (!IS_TILETYPE(route[part], MP_TUNNELBRIDGE)) { + if (!IsTileType(route[part], MP_TUNNELBRIDGE)) { // Build the tile res = DoCommandByTile(route[part], dir, 0, flag | DC_NO_WATER, CMD_BUILD_ROAD); // Currently, we ignore CMD_ERRORs! - if (res == CMD_ERROR && flag == DC_EXEC && !IS_TILETYPE(route[part], MP_STREET) && !EnsureNoVehicle(route[part])) { + if (res == CMD_ERROR && flag == DC_EXEC && !IsTileType(route[part], MP_STREET) && !EnsureNoVehicle(route[part])) { // Problem.. let's just abort it all! DEBUG(ai,0)("Darn, the route could not be builded.. aborting!"); p->ainew.state = AI_STATE_NOTHING; @@ -607,7 +607,7 @@ static void AiNew_State_FindStation(Player *p) { for (x = TileX(tile) - AI_FINDSTATION_TILE_RANGE; x <= TileX(tile) + AI_FINDSTATION_TILE_RANGE; x++) { for (y = TileY(tile) - AI_FINDSTATION_TILE_RANGE; y <= TileY(tile) + AI_FINDSTATION_TILE_RANGE; y++) { new_tile = TILE_XY(x,y); - if (IS_TILETYPE(new_tile, MP_CLEAR) || IS_TILETYPE(new_tile, MP_TREES)) { + if (IsTileType(new_tile, MP_CLEAR) || IsTileType(new_tile, MP_TREES)) { // This tile we can build on! // Check acceptance // XXX - Get the catchment area @@ -744,7 +744,7 @@ static void AiNew_State_FindDepot(Player *p) { for (i=2;i<p->ainew.path_info.route_length-2;i++) { tile = p->ainew.path_info.route[i]; for (j = 0; j < 4; j++) { - if (IS_TILETYPE(tile + TileOffsByDir(j), MP_STREET)) { + if (IsTileType(tile + TileOffsByDir(j), MP_STREET)) { // Its a street, test if it is a depot if (_map5[tile + TileOffsByDir(j)] & 0x20) { // We found a depot, is it ours? (TELL ME!!!) @@ -787,10 +787,10 @@ static void AiNew_State_FindDepot(Player *p) { tile + TileOffsByDir(j) == p->ainew.path_info.route[i+1]) continue; // Not around a bridge? if (p->ainew.path_info.route_extra[i] != 0) continue; - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE)) continue; + if (IsTileType(tile, MP_TUNNELBRIDGE)) continue; // Is the terrain clear? - if (IS_TILETYPE(tile + TileOffsByDir(j), MP_CLEAR) || - IS_TILETYPE(tile + TileOffsByDir(j), MP_TREES)) { + if (IsTileType(tile + TileOffsByDir(j), MP_CLEAR) || + IsTileType(tile + TileOffsByDir(j), MP_TREES)) { TileInfo ti; FindLandscapeHeightByTile(&ti, tile); // If the current tile is on a slope (tileh != 0) then we do not allow this @@ -929,11 +929,11 @@ static void AiNew_State_BuildStation(Player *p) { int res = 0; assert(p->ainew.state == AI_STATE_BUILD_STATION); if (p->ainew.temp == 0) { - if (!IS_TILETYPE(p->ainew.from_tile, MP_STATION)) + if (!IsTileType(p->ainew.from_tile, MP_STATION)) res = AiNew_Build_Station(p, p->ainew.tbt, p->ainew.from_tile, 0, 0, p->ainew.from_direction, DC_EXEC); } else { - if (!IS_TILETYPE(p->ainew.to_tile, MP_STATION)) + if (!IsTileType(p->ainew.to_tile, MP_STATION)) res = AiNew_Build_Station(p, p->ainew.tbt, p->ainew.to_tile, 0, 0, p->ainew.to_direction, DC_EXEC); p->ainew.state = AI_STATE_BUILD_PATH; } @@ -1000,10 +1000,10 @@ static void AiNew_State_BuildPath(Player *p) { r = DoCommandByTile(tile, _roadbits_by_dir[dir1], 0, DC_EXEC | DC_NO_WATER, CMD_BUILD_ROAD); if (r != CMD_ERROR) { dir1 = TileOffsByDir(dir1); - if (IS_TILETYPE(tile+dir1, MP_CLEAR) || IS_TILETYPE(tile+dir1, MP_TREES)) { + if (IsTileType(tile + dir1, MP_CLEAR) || IsTileType(tile + dir1, MP_TREES)) { r = DoCommandByTile(tile+dir1, AiNew_GetRoadDirection(tile, tile+dir1, tile+dir1+dir1), 0, DC_EXEC | DC_NO_WATER, CMD_BUILD_ROAD); if (r != CMD_ERROR) { - if (IS_TILETYPE(tile+dir1+dir1, MP_CLEAR) || IS_TILETYPE(tile+dir1+dir1, MP_TREES)) + if (IsTileType(tile + dir1 + dir1, MP_CLEAR) || IsTileType(tile + dir1 + dir1, MP_TREES)) DoCommandByTile(tile+dir1+dir1, AiNew_GetRoadDirection(tile+dir1, tile+dir1+dir1, tile+dir1+dir1+dir1), 0, DC_EXEC | DC_NO_WATER, CMD_BUILD_ROAD); } } @@ -1012,10 +1012,10 @@ static void AiNew_State_BuildPath(Player *p) { r = DoCommandByTile(tile, _roadbits_by_dir[dir2], 0, DC_EXEC | DC_NO_WATER, CMD_BUILD_ROAD); if (r != CMD_ERROR) { dir2 = TileOffsByDir(dir2); - if (IS_TILETYPE(tile+dir2, MP_CLEAR) || IS_TILETYPE(tile+dir2, MP_TREES)) { + if (IsTileType(tile + dir2, MP_CLEAR) || IsTileType(tile + dir2, MP_TREES)) { r = DoCommandByTile(tile+dir2, AiNew_GetRoadDirection(tile, tile+dir2, tile+dir2+dir2), 0, DC_EXEC | DC_NO_WATER, CMD_BUILD_ROAD); if (r != CMD_ERROR) { - if (IS_TILETYPE(tile+dir2+dir2, MP_CLEAR) || IS_TILETYPE(tile+dir2+dir2, MP_TREES)) + if (IsTileType(tile + dir2 + dir2, MP_CLEAR) || IsTileType(tile + dir2 + dir2, MP_TREES)) DoCommandByTile(tile+dir2+dir2, AiNew_GetRoadDirection(tile+dir2, tile+dir2+dir2, tile+dir2+dir2+dir2), 0, DC_EXEC | DC_NO_WATER, CMD_BUILD_ROAD); } } @@ -1024,10 +1024,10 @@ static void AiNew_State_BuildPath(Player *p) { r = DoCommandByTile(tile, _roadbits_by_dir[dir3^2], 0, DC_EXEC | DC_NO_WATER, CMD_BUILD_ROAD); if (r != CMD_ERROR) { dir3 = TileOffsByDir(dir3); - if (IS_TILETYPE(tile+dir3, MP_CLEAR) || IS_TILETYPE(tile+dir3, MP_TREES)) { + if (IsTileType(tile + dir3, MP_CLEAR) || IsTileType(tile + dir3, MP_TREES)) { r = DoCommandByTile(tile+dir3, AiNew_GetRoadDirection(tile, tile+dir3, tile+dir3+dir3), 0, DC_EXEC | DC_NO_WATER, CMD_BUILD_ROAD); if (r != CMD_ERROR) { - if (IS_TILETYPE(tile+dir3+dir3, MP_CLEAR) || IS_TILETYPE(tile+dir3+dir3, MP_TREES)) + if (IsTileType(tile + dir3 + dir3, MP_CLEAR) || IsTileType(tile + dir3 + dir3, MP_TREES)) DoCommandByTile(tile+dir3+dir3, AiNew_GetRoadDirection(tile+dir3, tile+dir3+dir3, tile+dir3+dir3+dir3), 0, DC_EXEC | DC_NO_WATER, CMD_BUILD_ROAD); } } @@ -1046,7 +1046,7 @@ static void AiNew_State_BuildDepot(Player *p) { int res = 0; assert(p->ainew.state == AI_STATE_BUILD_DEPOT); - if (IS_TILETYPE(p->ainew.depot_tile, MP_STREET) && _map5[p->ainew.depot_tile] & 0x20) { + if (IsTileType(p->ainew.depot_tile, MP_STREET) && _map5[p->ainew.depot_tile] & 0x20) { if (_map_owner[p->ainew.depot_tile] == _current_player) { // The depot is already builded! p->ainew.state = AI_STATE_BUILD_VEHICLE; diff --git a/ai_pathfinder.c b/ai_pathfinder.c index 7e9efc4a7..58e07e375 100644 --- a/ai_pathfinder.c +++ b/ai_pathfinder.c @@ -36,7 +36,7 @@ int32 AyStar_AiPathFinder_EndNodeCheck(AyStar *aystar, OpenListNode *current) { // It is not allowed to have a station on the end of a bridge or tunnel ;) if (current->path.node.user_data[0] != 0) return AYSTAR_DONE; if (TILES_BETWEEN(current->path.node.tile, PathFinderInfo->end_tile_tl, PathFinderInfo->end_tile_br)) - if (IS_TILETYPE(current->path.node.tile, MP_CLEAR) || IS_TILETYPE(current->path.node.tile, MP_TREES)) + if (IsTileType(current->path.node.tile, MP_CLEAR) || IsTileType(current->path.node.tile, MP_TREES)) if (current->path.parent == NULL || TestCanBuildStationHere(current->path.node.tile,AiNew_GetDirection(current->path.parent->node.tile, current->path.node.tile))) return AYSTAR_FOUND_END_NODE; @@ -119,7 +119,7 @@ void clean_AyStar_AiPathFinder(AyStar *aystar, Ai_PathFinderInfo *PathFinderInfo // Now we add all the starting tiles for (x = TileX(PathFinderInfo->start_tile_tl); x <= TileX(PathFinderInfo->start_tile_br); x++) { for (y = TileY(PathFinderInfo->start_tile_tl); y <= TileY(PathFinderInfo->start_tile_br); y++) { - if (!(IS_TILETYPE(TILE_XY(x,y), MP_CLEAR) || IS_TILETYPE(TILE_XY(x,y), MP_TREES))) continue; + if (!(IsTileType(TILE_XY(x,y), MP_CLEAR) || IsTileType(TILE_XY(x,y), MP_TREES))) continue; if (!TestCanBuildStationHere(TILE_XY(x,y),TEST_STATION_NO_DIR)) continue; start_node.node.tile = TILE_XY(x,y); aystar->addstart(aystar, &start_node.node); @@ -187,19 +187,19 @@ static void AyStar_AiPathFinder_GetNeighbours(AyStar *aystar, OpenListNode *curr // If the next step is a bridge, we have to enter it the right way if (!PathFinderInfo->rail_or_road && AI_PATHFINDER_IS_ROAD(current->path.node.tile + TileOffsByDir(i))) { - if (IS_TILETYPE(current->path.node.tile + TileOffsByDir(i), MP_TUNNELBRIDGE)) { + if (IsTileType(current->path.node.tile + TileOffsByDir(i), MP_TUNNELBRIDGE)) { // An existing bridge... let's test the direction ;) if ((_map5[current->path.node.tile + TileOffsByDir(i)] & 1U) != (i & 1)) continue; // This problem only is valid for tunnels: // When the last tile was not yet a tunnel, check if we enter from the right side.. - if (!IS_TILETYPE(current->path.node.tile, MP_TUNNELBRIDGE) && (_map5[current->path.node.tile + TileOffsByDir(i)] & 0x80) == 0) { + if (!IsTileType(current->path.node.tile, MP_TUNNELBRIDGE) && (_map5[current->path.node.tile + TileOffsByDir(i)] & 0x80) == 0) { if (i != (_map5[current->path.node.tile + TileOffsByDir(i)] & 3U)) continue; } } } // But also if we are on a bridge, we can only move a certain direction if (!PathFinderInfo->rail_or_road && AI_PATHFINDER_IS_ROAD(current->path.node.tile)) { - if (IS_TILETYPE(current->path.node.tile, MP_TUNNELBRIDGE)) { + if (IsTileType(current->path.node.tile, MP_TUNNELBRIDGE)) { // An existing bridge/tunnel... let's test the direction ;) if ((_map5[current->path.node.tile] & 1U) != (i & 1)) continue; } @@ -241,7 +241,7 @@ static void AyStar_AiPathFinder_GetNeighbours(AyStar *aystar, OpenListNode *curr // Road check dir = AiNew_GetRoadDirection(current->path.parent->node.tile, current->path.node.tile, current->path.node.tile + TileOffsByDir(i)); if (AI_PATHFINDER_IS_ROAD(current->path.node.tile)) { - if (IS_TILETYPE(current->path.node.tile, MP_TUNNELBRIDGE)) { + if (IsTileType(current->path.node.tile, MP_TUNNELBRIDGE)) { // We have a bridge, how nicely! We should mark it... dir = 0; } else { @@ -285,8 +285,8 @@ static void AyStar_AiPathFinder_GetNeighbours(AyStar *aystar, OpenListNode *curr // Bridges can only be build on land that is not flat // And if there is a road or rail blocking if (ti.tileh != 0 || - (PathFinderInfo->rail_or_road && IS_TILETYPE(tile + TileOffsByDir(dir), MP_STREET)) || - (!PathFinderInfo->rail_or_road && IS_TILETYPE(tile + TileOffsByDir(dir), MP_RAILWAY))) { + (PathFinderInfo->rail_or_road && IsTileType(tile + TileOffsByDir(dir), MP_STREET)) || + (!PathFinderInfo->rail_or_road && IsTileType(tile + TileOffsByDir(dir), MP_RAILWAY))) { for (;;) { new_tile += TileOffsByDir(dir); @@ -378,7 +378,7 @@ static int32 AyStar_AiPathFinder_CalculateG(AyStar *aystar, AyStarNode *current, res += AI_PATHFINDER_TILE_GOES_UP_PENALTY; } } else { - if (!(AI_PATHFINDER_IS_ROAD(parent->path.node.tile) && IS_TILETYPE(parent->path.node.tile, MP_TUNNELBRIDGE))) { + if (!(AI_PATHFINDER_IS_ROAD(parent->path.node.tile) && IsTileType(parent->path.node.tile, MP_TUNNELBRIDGE))) { r = GetRoadFoundation(parent_ti.tileh, AiNew_GetRoadDirection(parent->path.parent->node.tile, parent->path.node.tile, current->tile)); if (r >= 15 || r == 0) res += AI_PATHFINDER_TILE_GOES_UP_PENALTY; diff --git a/aircraft_cmd.c b/aircraft_cmd.c index c241155ac..d13af1a41 100644 --- a/aircraft_cmd.c +++ b/aircraft_cmd.c @@ -277,7 +277,7 @@ bool IsAircraftHangarTile(TileIndex tile) // 0x56 - hangar facing other way international airport (86) // 0x20 - hangar large airport (32) // 0x41 - hangar small airport (65) - return IS_TILETYPE(tile, MP_STATION) && + return IsTileType(tile, MP_STATION) && (_map5[tile] == 32 || _map5[tile] == 65 || _map5[tile] == 86); } diff --git a/aircraft_gui.c b/aircraft_gui.c index 31a081f27..a08957477 100644 --- a/aircraft_gui.c +++ b/aircraft_gui.c @@ -577,7 +577,7 @@ static void AircraftViewWndProc(Window *w, WindowEvent *e) { uint tile = v->tile; - if (IS_TILETYPE(tile, MP_STATION) && + if (IsTileType(tile, MP_STATION) && (_map5[tile] == 32 || _map5[tile] == 65) && v->vehstatus&VS_STOPPED) disabled = 0; diff --git a/clear_cmd.c b/clear_cmd.c index 40de46dad..39ebff4d7 100644 --- a/clear_cmd.c +++ b/clear_cmd.c @@ -395,7 +395,7 @@ int32 CmdPurchaseLandArea(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (!EnsureNoVehicle(tile)) return CMD_ERROR; - if (IS_TILETYPE(tile, MP_UNMOVABLE) && + if (IsTileType(tile, MP_UNMOVABLE) && _map5[tile] == 3 && _map_owner[tile] == _current_player) return_cmd_error(STR_5807_YOU_ALREADY_OWN_IT); @@ -549,16 +549,16 @@ void TileLoopClearHelper(uint tile) uint dirty = -1; img_1 = 0; - if (IS_TILETYPE(tile, MP_CLEAR)) { + if (IsTileType(tile, MP_CLEAR)) { img_1 = img_by_map5[(_map5[tile] & 0x1C) >> 2]; - } else if (IS_TILETYPE(tile, MP_TREES) && (_map2[tile] & 0x30) == 0x20) { + } else if (IsTileType(tile, MP_TREES) && (_map2[tile] & 0x30) == 0x20) { img_1 = 1; } img_2 = 0; - if (IS_TILETYPE(TILE_ADDXY(tile, 1, 0), MP_CLEAR)) { + if (IsTileType(TILE_ADDXY(tile, 1, 0), MP_CLEAR)) { img_2 = img_by_map5[(_map5[TILE_ADDXY(tile, 1, 0)] & 0x1C) >> 2]; - } else if (IS_TILETYPE(TILE_ADDXY(tile, 1, 0), MP_TREES) && (_map2[TILE_ADDXY(tile, 1, 0)] & 0x30) == 0x20) { + } else if (IsTileType(TILE_ADDXY(tile, 1, 0), MP_TREES) && (_map2[TILE_ADDXY(tile, 1, 0)] & 0x30) == 0x20) { img_2 = 1; } @@ -575,9 +575,9 @@ void TileLoopClearHelper(uint tile) } img_2 = 0; - if (IS_TILETYPE(TILE_ADDXY(tile, 0, 1), MP_CLEAR)) { + if (IsTileType(TILE_ADDXY(tile, 0, 1), MP_CLEAR)) { img_2 = img_by_map5[(_map5[TILE_ADDXY(tile, 0, 1)] & 0x1C) >> 2]; - } else if (IS_TILETYPE(TILE_ADDXY(tile, 0, 1), MP_TREES) && (_map2[TILE_ADDXY(tile, 0, 1)] & 0x30) == 0x20) { + } else if (IsTileType(TILE_ADDXY(tile, 0, 1), MP_TREES) && (_map2[TILE_ADDXY(tile, 0, 1)] & 0x30) == 0x20) { img_2 = 1; } @@ -741,7 +741,7 @@ void GenerateClearTile() i = (Random() & 0x3FF) | 0x400; do { tile = TILE_MASK(Random()); - if (IS_TILETYPE(tile, MP_CLEAR)) + if (IsTileType(tile, MP_CLEAR)) _map5[tile] = (byte)((_map5[tile] & ~(3<<2)) | (1<<2)); } while (--i); @@ -750,14 +750,14 @@ void GenerateClearTile() do { r = Random(); tile = TILE_MASK(r); - if (IS_TILETYPE(tile, MP_CLEAR)) { + if (IsTileType(tile, MP_CLEAR)) { j = ((r >> 16) & 0xF) + 5; for(;;) { _map5[tile] = (byte)((_map5[tile] & ~(3<<2)) | (2<<2)); do { if (--j == 0) goto get_out; tile_new = tile + TileOffsByDir(Random() & 3); - } while (!IS_TILETYPE(tile_new, MP_CLEAR)); + } while (!IsTileType(tile_new, MP_CLEAR)); tile = tile_new; } get_out:; diff --git a/disaster_cmd.c b/disaster_cmd.c index cac58ac03..d6d10bf0c 100644 --- a/disaster_cmd.c +++ b/disaster_cmd.c @@ -164,7 +164,7 @@ static void DisasterTick_Zeppeliner(Vehicle *v) } else if (v->current_order.station == 0) { tile = v->tile; /**/ - if (IS_TILETYPE(tile, MP_STATION) && + if (IsTileType(tile, MP_STATION) && IS_BYTE_INSIDE(_map5[tile], 8, 0x43) && IS_HUMAN_PLAYER(_map_owner[tile])) { @@ -189,7 +189,7 @@ static void DisasterTick_Zeppeliner(Vehicle *v) tile = v->tile; /**/ - if (IS_TILETYPE(tile, MP_STATION) && + if (IsTileType(tile, MP_STATION) && IS_BYTE_INSIDE(_map5[tile], 8, 0x43) && IS_HUMAN_PLAYER(_map_owner[tile])) { @@ -231,7 +231,7 @@ static void DisasterTick_Zeppeliner(Vehicle *v) } tile = v->tile;/**/ - if (IS_TILETYPE(tile, MP_STATION) && + if (IsTileType(tile, MP_STATION) && IS_BYTE_INSIDE(_map5[tile], 8, 0x43) && IS_HUMAN_PLAYER(_map_owner[tile])) { @@ -325,7 +325,7 @@ static void DestructIndustry(Industry *i) uint tile; for(tile=0; tile != MapSize(); tile++) { - if (IS_TILETYPE(tile, MP_INDUSTRY) && _map2[tile] == i->index) { + if (IsTileType(tile, MP_INDUSTRY) && _map2[tile] == i->index) { _map_owner[tile] = 0; MarkTileDirtyByTile(tile); } @@ -391,7 +391,7 @@ static void DisasterTick_2(Vehicle *v) return; tile = TILE_FROM_XY(x,y); - if (!IS_TILETYPE(tile, MP_INDUSTRY)) + if (!IsTileType(tile, MP_INDUSTRY)) return; v->dest_tile = ind = _map2[tile]; @@ -462,7 +462,7 @@ static void DisasterTick_3(Vehicle *v) return; tile = TILE_FROM_XY(x,y); - if (!IS_TILETYPE(tile, MP_INDUSTRY)) + if (!IsTileType(tile, MP_INDUSTRY)) return; v->dest_tile = ind = _map2[tile]; @@ -570,7 +570,7 @@ static void DisasterTick_4(Vehicle *v) tile_org = tile = TILE_MASK(Random()); do { - if (IS_TILETYPE(tile, MP_RAILWAY) && + if (IsTileType(tile, MP_RAILWAY) && (_map5[tile]&~3)!=0xC0 && IS_HUMAN_PLAYER(_map_owner[tile])) break; tile = TILE_MASK(tile+1); diff --git a/industry_cmd.c b/industry_cmd.c index d76013d9b..8fb2c03fc 100644 --- a/industry_cmd.c +++ b/industry_cmd.c @@ -836,11 +836,11 @@ static void ChangeTileOwner_Industry(uint tile, byte old_player, byte new_player void DeleteIndustry(Industry *i) { BEGIN_TILE_LOOP(tile_cur, i->width, i->height, i->xy); - if (IS_TILETYPE(tile_cur, MP_INDUSTRY)) { + if (IsTileType(tile_cur, MP_INDUSTRY)) { if (_map2[tile_cur] == i->index) { DoClearSquare(tile_cur); } - } else if (IS_TILETYPE(tile_cur, MP_STATION) && _map5[tile_cur] == 0x4B) { + } else if (IsTileType(tile_cur, MP_STATION) && _map5[tile_cur] == 0x4B) { DeleteOilRig(tile_cur); } END_TILE_LOOP(tile_cur, i->width, i->height, i->xy); @@ -856,12 +856,12 @@ static const byte _plantfarmfield_type[] = {1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 5, 5, static bool IsBadFarmFieldTile(uint tile) { - if (IS_TILETYPE(tile,MP_CLEAR)) { + if (IsTileType(tile, MP_CLEAR)) { byte m5 = _map5[tile] & 0x1C; if (m5 == 0xC || m5 == 0x10) return true; return false; - } else if (IS_TILETYPE(tile,MP_TREES)) { + } else if (IsTileType(tile, MP_TREES)) { return false; } else { return true; @@ -870,12 +870,12 @@ static bool IsBadFarmFieldTile(uint tile) static bool IsBadFarmFieldTile2(uint tile) { - if (IS_TILETYPE(tile,MP_CLEAR)) { + if (IsTileType(tile, MP_CLEAR)) { byte m5 = _map5[tile] & 0x1C; if (m5 == 0x10) return true; return false; - } else if (IS_TILETYPE(tile,MP_TREES)) { + } else if (IsTileType(tile, MP_TREES)) { return false; } else { return true; @@ -889,7 +889,7 @@ static void SetupFarmFieldFence(uint tile, int size, byte type, int direction) do { tile = TILE_MASK(tile); - if (IS_TILETYPE(tile, MP_CLEAR) || IS_TILETYPE(tile, MP_TREES)) { + if (IsTileType(tile, MP_CLEAR) || IsTileType(tile, MP_TREES)) { or = type; if (or == 1 && (uint16)Random() <= 9362) or = 2; @@ -999,7 +999,7 @@ static void ChopLumberMillTrees(Industry *i) j = a; do { tile = TILE_MASK(tile); - if (IS_TILETYPE(tile, MP_TREES)) { + if (IsTileType(tile, MP_TREES)) { uint old_player = _current_player; /* found a tree */ diff --git a/landscape.c b/landscape.c index 5c762effb..c40dd4c1a 100644 --- a/landscape.c +++ b/landscape.c @@ -93,7 +93,7 @@ void FindLandscapeHeightByTile(TileInfo *ti, uint tile) ti->tile = tile; ti->map5 = _map5[tile]; - ti->type = GET_TILETYPE(tile); + ti->type = TileType(tile); ti->tileh = GetTileSlope(tile, &ti->z); // ti->z = min * 8; } @@ -295,28 +295,28 @@ void DoClearSquare(uint tile) uint32 GetTileTrackStatus(uint tile, TransportType mode) { - return _tile_type_procs[GET_TILETYPE(tile)]->get_tile_track_status_proc(tile, mode); + return _tile_type_procs[TileType(tile)]->get_tile_track_status_proc(tile, mode); } void ChangeTileOwner(uint tile, byte old_player, byte new_player) { - _tile_type_procs[GET_TILETYPE(tile)]->change_tile_owner_proc(tile, old_player, new_player); + _tile_type_procs[TileType(tile)]->change_tile_owner_proc(tile, old_player, new_player); } void GetAcceptedCargo(uint tile, AcceptedCargo ac) { memset(ac, 0, sizeof(AcceptedCargo)); - _tile_type_procs[GET_TILETYPE(tile)]->get_accepted_cargo_proc(tile, ac); + _tile_type_procs[TileType(tile)]->get_accepted_cargo_proc(tile, ac); } void AnimateTile(uint tile) { - _tile_type_procs[GET_TILETYPE(tile)]->animate_tile_proc(tile); + _tile_type_procs[TileType(tile)]->animate_tile_proc(tile); } void ClickTile(uint tile) { - _tile_type_procs[GET_TILETYPE(tile)]->click_tile_proc(tile); + _tile_type_procs[TileType(tile)]->click_tile_proc(tile); } void DrawTile(TileInfo *ti) @@ -326,7 +326,7 @@ void DrawTile(TileInfo *ti) void GetTileDesc(uint tile, TileDesc *td) { - _tile_type_procs[GET_TILETYPE(tile)]->get_tile_desc_proc(tile, td); + _tile_type_procs[TileType(tile)]->get_tile_desc_proc(tile, td); } /* Clear a piece of landscape @@ -340,7 +340,7 @@ int32 CmdLandscapeClear(int x, int y, uint32 flags, uint32 p1, uint32 p2) SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION); tile = TILE_FROM_XY(x,y); - return _tile_type_procs[GET_TILETYPE(tile)]->clear_tile_proc(tile, flags); + return _tile_type_procs[TileType(tile)]->clear_tile_proc(tile, flags); } // p1 = end tile @@ -467,7 +467,7 @@ void RunTileLoop() assert( (tile & ~TILELOOP_ASSERTMASK) == 0); count = (MapSizeX() / TILELOOP_SIZE) * (MapSizeY() / TILELOOP_SIZE); do { - _tile_type_procs[GET_TILETYPE(tile)]->tile_loop_proc(tile); + _tile_type_procs[TileType(tile)]->tile_loop_proc(tile); if (TileX(tile) < MapSizeX() - TILELOOP_SIZE) { tile += TILELOOP_SIZE; /* no overflow */ @@ -509,7 +509,7 @@ void ConvertGroundTilesIntoWaterTiles() int h; while(true) { - if (IS_TILETYPE(tile, MP_CLEAR) && GetTileSlope(tile, &h) == 0 && h == 0) { + if (IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == 0 && h == 0) { _map_type_and_height[tile] = MP_WATER << 4; _map5[tile] = 0; _map_owner[tile] = OWNER_WATER; @@ -654,7 +654,7 @@ static void CreateDesertOrRainForest() for (data = _make_desert_or_rainforest_data; data != endof(_make_desert_or_rainforest_data); ++data) { TileIndex t = TILE_MASK(tile + ToTileIndexDiff(*data)); - if (IS_TILETYPE(t, MP_CLEAR) && (_map5[t] & 0x1c) == 0x14) break; + if (IsTileType(t, MP_CLEAR) && (_map5[t] & 0x1c) == 0x14) break; } if (data == endof(_make_desert_or_rainforest_data)) SetMapExtraBits(tile, 2); @@ -70,10 +70,6 @@ static inline int64 BIGMULS(int32 a, int32 b) { #define LANDSCAPE_SIZE_FACTOR 1 -#define IS_TILETYPE(_t_, _s_) (_map_type_and_height[(_t_)] >> 4 == (_s_)) -#define GET_TILETYPE(_t_) (_map_type_and_height[(_t_)] >> 4) -#define GET_TILEHEIGHT(_t_) ((_map_type_and_height[_t_] & 0xF) * 8) - enum { CORRECT_Z_BITS = 1 << 1 | 1 << 2 | 1 << 3 | 1 << 4 | 1 << 5 | 1 << 6 | 1 << 7 }; diff --git a/main_gui.c b/main_gui.c index fd62ab537..5922c4557 100644 --- a/main_gui.c +++ b/main_gui.c @@ -1193,7 +1193,7 @@ static void PlaceProc_LowerBigLand(uint tile) static void PlaceProc_RockyArea(uint tile) { - if (!IS_TILETYPE(tile, MP_CLEAR) && !IS_TILETYPE(tile, MP_TREES)) + if (!IsTileType(tile, MP_CLEAR) && !IsTileType(tile, MP_TREES)) return; ModifyTile(tile, MP_SETTYPE(MP_CLEAR) | MP_MAP5, (_map5[tile] & ~0x1C) | 0xB); @@ -72,4 +72,22 @@ static inline TileIndexDiff TileOffsByDir(uint dir) return ToTileIndexDiff(_tileoffs_by_dir[dir]); } + +static inline uint TileHeight(TileIndex tile) +{ + assert(tile < MapSize()); + return (_map_type_and_height[tile] & 0xf) * 8; +} + +static inline int TileType(TileIndex tile) +{ + assert(tile < MapSize()); + return _map_type_and_height[tile] >> 4; +} + +static inline bool IsTileType(TileIndex tile, int type) +{ + return TileType(tile) == type; +} + #endif diff --git a/oldloader.c b/oldloader.c index 16c08d744..d96ab3420 100644 --- a/oldloader.c +++ b/oldloader.c @@ -1478,7 +1478,7 @@ bool LoadOldSaveGame(const char *file) // go through the tables and see if we can find any ttdpatch presignals. Then convert those to our format. for (i = 0; i != map_size; i++) { - if (IS_TILETYPE(i, MP_RAILWAY) && (_map5[i] & 0xC0) == 0x40) { + if (IsTileType(i, MP_RAILWAY) && (_map5[i] & 0xC0) == 0x40) { // this byte is always zero in real ttd. if (_map3_hi[i]) { // convert ttdpatch presignal format to openttd presignal format. diff --git a/order_gui.c b/order_gui.c index 6699e62d9..ca2c3be0a 100644 --- a/order_gui.c +++ b/order_gui.c @@ -184,7 +184,7 @@ static Order GetOrderCmdFromTile(Vehicle *v, uint tile) // check depot first if (_patches.gotodepot) { - switch(GET_TILETYPE(tile)) { + switch (TileType(tile)) { case MP_RAILWAY: if (v->type == VEH_Train && _map_owner[tile] == _local_player) { if ((_map5[tile]&0xFC)==0xC0) { @@ -231,7 +231,7 @@ static Order GetOrderCmdFromTile(Vehicle *v, uint tile) } // check waypoint - if (IS_TILETYPE(tile, MP_RAILWAY) + if (IsTileType(tile, MP_RAILWAY) && v->type == VEH_Train && _map_owner[tile] == _local_player && (_map5[tile]&0xFE)==0xC4) { @@ -241,7 +241,7 @@ static Order GetOrderCmdFromTile(Vehicle *v, uint tile) return order; } - if (IS_TILETYPE(tile, MP_STATION)) { + if (IsTileType(tile, MP_STATION)) { st = GetStation(st_index = _map2[tile]); if (st->owner == _current_player || st->owner == OWNER_NONE) { diff --git a/pathfind.c b/pathfind.c index 110be8ba2..6fe7d414a 100644 --- a/pathfind.c +++ b/pathfind.c @@ -131,10 +131,10 @@ static void TPFMode2(TrackPathFinder *tpf, uint tile, int direction) int owner = -1; if (tpf->tracktype == TRANSPORT_RAIL) { - if ((IS_TILETYPE(tile, MP_RAILWAY) || IS_TILETYPE(tile, MP_STATION) || IS_TILETYPE(tile, MP_TUNNELBRIDGE))) { + if (IsTileType(tile, MP_RAILWAY) || IsTileType(tile, MP_STATION) || IsTileType(tile, MP_TUNNELBRIDGE)) { owner = _map_owner[tile]; /* Check if we are on the middle of a bridge (has no owner) */ - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xC0) == 0xC0) + if (IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xC0) == 0xC0) owner = -1; } } @@ -146,9 +146,9 @@ static void TPFMode2(TrackPathFinder *tpf, uint tile, int direction) /* Check in case of rail if the owner is the same */ if (tpf->tracktype == TRANSPORT_RAIL) { - if ((IS_TILETYPE(tile, MP_RAILWAY) || IS_TILETYPE(tile, MP_STATION) || IS_TILETYPE(tile, MP_TUNNELBRIDGE))) + if (IsTileType(tile, MP_RAILWAY) || IsTileType(tile, MP_STATION) || IsTileType(tile, MP_TUNNELBRIDGE)) /* Check if we are on the middle of a bridge (has no owner) */ - if (!IS_TILETYPE(tile, MP_TUNNELBRIDGE) || (_map5[tile] & 0xC0) != 0xC0) + if (!IsTileType(tile, MP_TUNNELBRIDGE) || (_map5[tile] & 0xC0) != 0xC0) if (owner != -1 && _map_owner[tile] != owner) return; } @@ -231,7 +231,7 @@ FindLengthOfTunnelResult FindLengthOfTunnel(uint tile, int direction) tile = TILE_FROM_XY(x,y); - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE) && + if (IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xF0) == 0 && // tunnel entrance/exit //((_map5[tile]>>2)&3) == type && // rail/road-tunnel <-- This is not necesary to check, right? ((_map5[tile] & 3)^2) == direction && // entrance towards: 0 = NE, 1 = SE, 2 = SW, 3 = NW @@ -281,7 +281,7 @@ static void TPFMode1(TrackPathFinder *tpf, uint tile, int direction) RememberData rd; uint tile_org = tile; - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xF0)==0) { + if (IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xF0) == 0) { if ((_map5[tile] & 3) != direction || ((_map5[tile]>>2)&3) != tpf->tracktype) return; tile = SkipToEndOfTunnel(tpf, tile, direction); @@ -290,11 +290,11 @@ static void TPFMode1(TrackPathFinder *tpf, uint tile, int direction) /* Check in case of rail if the owner is the same */ if (tpf->tracktype == TRANSPORT_RAIL) { - if ((IS_TILETYPE(tile_org, MP_RAILWAY) || IS_TILETYPE(tile_org, MP_STATION) || IS_TILETYPE(tile_org, MP_TUNNELBRIDGE))) - if ((IS_TILETYPE(tile, MP_RAILWAY) || IS_TILETYPE(tile, MP_STATION) || IS_TILETYPE(tile, MP_TUNNELBRIDGE))) + if (IsTileType(tile_org, MP_RAILWAY) || IsTileType(tile_org, MP_STATION) || IsTileType(tile_org, MP_TUNNELBRIDGE)) + if (IsTileType(tile, MP_RAILWAY) || IsTileType(tile, MP_STATION) || IsTileType(tile, MP_TUNNELBRIDGE)) /* Check if we are on a bridge (middle parts don't have an owner */ - if (!IS_TILETYPE(tile, MP_TUNNELBRIDGE) || (_map5[tile] & 0xC0) != 0xC0) - if (!IS_TILETYPE(tile_org, MP_TUNNELBRIDGE) || (_map5[tile_org] & 0xC0) != 0xC0) + if (!IsTileType(tile, MP_TUNNELBRIDGE) || (_map5[tile] & 0xC0) != 0xC0) + if (!IsTileType(tile_org, MP_TUNNELBRIDGE) || (_map5[tile_org] & 0xC0) != 0xC0) if (_map_owner[tile_org] != _map_owner[tile]) return; } @@ -628,7 +628,7 @@ static void NTPEnum(NewTrackPathFinder *tpf, uint tile, uint direction) si.state = 0; restart: - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xF0)==0) { + if (IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xF0) == 0) { /* This is a tunnel tile */ if ( (uint)(_map5[tile] & 3) != (direction ^ 2)) { /* ^ 2 is reversing the direction */ /* We are not just driving out of the tunnel */ @@ -653,7 +653,7 @@ restart: goto popnext; // not a regular rail tile? - if (!IS_TILETYPE(tile, MP_RAILWAY) || (bits = _map5[tile]) & 0xC0) { + if (!IsTileType(tile, MP_RAILWAY) || (bits = _map5[tile]) & 0xC0) { bits = GetTileTrackStatus(tile, TRANSPORT_RAIL) & _tpfmode1_and[direction]; bits = (bits | (bits >> 8)) & 0x3F; break; diff --git a/rail_cmd.c b/rail_cmd.c index 5e42ced3a..ce1ac9ff5 100644 --- a/rail_cmd.c +++ b/rail_cmd.c @@ -235,7 +235,7 @@ static uint32 CheckRailSlope(int tileh, uint rail_bits, uint existing, uint tile rail_bits |= existing; // don't allow building on the lower side of a coast - if (IS_TILETYPE(tile, MP_WATER) && ~_valid_tileh_slopes[2][tileh] & rail_bits) { + if (IsTileType(tile, MP_WATER) && ~_valid_tileh_slopes[2][tileh] & rail_bits) { return_cmd_error(STR_3807_CAN_T_BUILD_ON_WATER); } @@ -279,7 +279,7 @@ int32 CmdBuildSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (ti.type == MP_TUNNELBRIDGE) { /* BUILD ON BRIDGE CODE */ - if (!EnsureNoVehicleZ(tile, GET_TILEHEIGHT(tile))) + if (!EnsureNoVehicleZ(tile, TileHeight(tile))) return CMD_ERROR; if ((ti.map5 & 0xF8) == 0xC0) { @@ -438,7 +438,7 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2) return CMD_ERROR; if (ti.type == MP_TUNNELBRIDGE) { - if (!EnsureNoVehicleZ(tile, GET_TILEHEIGHT(tile))) + if (!EnsureNoVehicleZ(tile, TileHeight(tile))) return CMD_ERROR; if ((ti.map5 & 0xF8) != 0xE0) @@ -721,7 +721,7 @@ int32 CmdBuildTrainWaypoint(int x, int y, uint32 flags, uint32 p1, uint32 p2) SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION); - if (!IS_TILETYPE(tile, MP_RAILWAY) || ((dir=0, _map5[tile] != 1) && (dir=1, _map5[tile] != 2))) + if (!IsTileType(tile, MP_RAILWAY) || ((dir = 0, _map5[tile] != 1) && (dir = 1, _map5[tile] != 2))) return_cmd_error(STR_1005_NO_SUITABLE_RAILROAD_TRACK); if (!CheckTileOwnership(tile)) @@ -793,7 +793,7 @@ static int32 RemoveTrainWaypoint(uint tile, uint32 flags, bool justremove) Waypoint *cp; // make sure it's a waypoint - if (!IS_TILETYPE(tile, MP_RAILWAY) || !IS_RAIL_WAYPOINT(_map5[tile])) + if (!IsTileType(tile, MP_RAILWAY) || !IS_RAIL_WAYPOINT(_map5[tile])) return CMD_ERROR; if (!CheckTileOwnership(tile) && !(_current_player==17)) @@ -885,7 +885,7 @@ int32 CmdBuildSignals(int x, int y, uint32 flags, uint32 p1, uint32 p2) return CMD_ERROR; // must be railway, and not a depot, and it must have a track in the suggested position. - if (!IS_TILETYPE(tile, MP_RAILWAY) || (m5=_map5[tile], m5&0x80) || !HASBIT(m5, track)) + if (!IsTileType(tile, MP_RAILWAY) || (m5 = _map5[tile], m5 & 0x80) || !HASBIT(m5, track)) return CMD_ERROR; _error_message = STR_1005_NO_SUITABLE_RAILROAD_TRACK; @@ -1159,10 +1159,10 @@ int32 CmdConvertRail(int ex, int ey, uint32 flags, uint32 p1, uint32 p2) uint tile = TILE_FROM_XY(x,y); DoConvertRailProc *p; - if (IS_TILETYPE(tile, MP_RAILWAY)) p = DoConvertRail; - else if (IS_TILETYPE(tile, MP_STATION)) p = DoConvertStationRail; - else if (IS_TILETYPE(tile, MP_STREET)) p = DoConvertStreetRail; - else if (IS_TILETYPE(tile, MP_TUNNELBRIDGE)) p = DoConvertTunnelBridgeRail; + if (IsTileType(tile, MP_RAILWAY)) p = DoConvertRail; + else if (IsTileType(tile, MP_STATION)) p = DoConvertStationRail; + else if (IsTileType(tile, MP_STREET)) p = DoConvertStreetRail; + else if (IsTileType(tile, MP_TUNNELBRIDGE)) p = DoConvertTunnelBridgeRail; else continue; ret = p(tile, p2, false); @@ -1749,7 +1749,7 @@ typedef struct SetSignalsData { static bool SetSignalsEnumProc(uint tile, SetSignalsData *ssd, int track, uint length, byte *state) { // the tile has signals? - if (IS_TILETYPE(tile, MP_RAILWAY)) { + if (IsTileType(tile, MP_RAILWAY)) { if ((_map5[tile]&RAIL_TYPE_MASK) == RAIL_TYPE_SIGNALS) { if ((_map3_lo[tile] & _signals_table_both[track]) != 0) { @@ -2040,28 +2040,28 @@ static void TileLoop_Track(uint tile) owner = _map_owner[tile]; if ( (!(rail&(RAIL_BIT_DIAG2|RAIL_BIT_UPPER|RAIL_BIT_LEFT)) && (rail&RAIL_BIT_DIAG1)) || rail==(RAIL_BIT_LOWER|RAIL_BIT_RIGHT)) { - if (!IS_TILETYPE(tile + TILE_XY(0,-1), MP_RAILWAY) || + if (!IsTileType(tile + TILE_XY(0,-1), MP_RAILWAY) || owner != _map_owner[tile + TILE_XY(0,-1)] || (_map5[tile + TILE_XY(0,-1)]==RAIL_BIT_UPPER || _map5[tile + TILE_XY(0,-1)]==RAIL_BIT_LEFT)) a2 = RAIL_GROUND_FENCE_NW; } if ( (!(rail&(RAIL_BIT_DIAG2|RAIL_BIT_LOWER|RAIL_BIT_RIGHT)) && (rail&RAIL_BIT_DIAG1)) || rail==(RAIL_BIT_UPPER|RAIL_BIT_LEFT)) { - if (!IS_TILETYPE(tile + TILE_XY(0,1), MP_RAILWAY) || + if (!IsTileType(tile + TILE_XY(0,1), MP_RAILWAY) || owner != _map_owner[tile + TILE_XY(0,1)] || (_map5[tile + TILE_XY(0,1)]==RAIL_BIT_LOWER || _map5[tile + TILE_XY(0,1)]==RAIL_BIT_RIGHT)) a2 = (a2 == RAIL_GROUND_FENCE_NW) ? RAIL_GROUND_FENCE_SENW : RAIL_GROUND_FENCE_SE; } if ( (!(rail&(RAIL_BIT_DIAG1|RAIL_BIT_UPPER|RAIL_BIT_RIGHT)) && (rail&RAIL_BIT_DIAG2)) || rail==(RAIL_BIT_LOWER|RAIL_BIT_LEFT)) { - if (!IS_TILETYPE(tile + TILE_XY(-1,0), MP_RAILWAY) || + if (!IsTileType(tile + TILE_XY(-1,0), MP_RAILWAY) || owner != _map_owner[tile + TILE_XY(-1,0)] || (_map5[tile + TILE_XY(-1,0)]==RAIL_BIT_UPPER || _map5[tile + TILE_XY(-1,0)]==RAIL_BIT_RIGHT)) a2 = RAIL_GROUND_FENCE_NE; } if ( (!(rail&(RAIL_BIT_DIAG1|RAIL_BIT_LOWER|RAIL_BIT_LEFT)) && (rail&RAIL_BIT_DIAG2)) || rail==(RAIL_BIT_UPPER|RAIL_BIT_RIGHT)) { - if (!IS_TILETYPE(tile + TILE_XY(1,0), MP_RAILWAY) || + if (!IsTileType(tile + TILE_XY(1,0), MP_RAILWAY) || owner != _map_owner[tile + TILE_XY(1,0)] || (_map5[tile + TILE_XY(1,0)]==RAIL_BIT_LOWER || _map5[tile + TILE_XY(1,0)]==RAIL_BIT_LEFT)) a2 = (a2 == RAIL_GROUND_FENCE_NE) ? RAIL_GROUND_FENCE_NESW : RAIL_GROUND_FENCE_SW; diff --git a/rail_gui.c b/rail_gui.c index 63fccd86d..40034cb1a 100644 --- a/rail_gui.c +++ b/rail_gui.c @@ -100,7 +100,7 @@ void CcRailDepot(bool success, uint tile, uint32 p1, uint32 p2) tile += TileOffsByDir(dir); - if (IS_TILETYPE(tile, MP_RAILWAY)) { + if (IsTileType(tile, MP_RAILWAY)) { PlaceExtraDepotRail(tile, _place_depot_extra[dir]); PlaceExtraDepotRail(tile, _place_depot_extra[dir + 4]); PlaceExtraDepotRail(tile, _place_depot_extra[dir + 8]); @@ -394,11 +394,11 @@ static int GetBestFit1x1(int x, int y) }; tile += ToTileIndexDiff(_tile_inc[i]); m[i] = 0; - if (IS_TILETYPE(tile, MP_RAILWAY) && _map5[tile] < 0x80) + if (IsTileType(tile, MP_RAILWAY) && _map5[tile] < 0x80) m[i] = _map5[tile]&0x3F; // handle tracks under bridge - if(IS_TILETYPE(tile, MP_TUNNELBRIDGE) && (_map5[tile]&0xF8)==0xE0) + if(IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile]&0xF8)==0xE0) m[i] = (byte) !(_map5[tile]&0x01) + 1; if (_remove_button_clicked) m[i] ^= 0x3F; diff --git a/road_cmd.c b/road_cmd.c index f46f3a0f5..b78a832ab 100644 --- a/road_cmd.c +++ b/road_cmd.c @@ -25,7 +25,7 @@ bool HasTileRoadAt(uint tile, int i) int mask; byte b; - switch(GET_TILETYPE(tile)) { + switch (TileType(tile)) { case MP_STREET: b = _map5[tile]; @@ -76,7 +76,7 @@ static bool CheckAllowRemoveRoad(uint tile, uint br, bool *edge_road) return true; // A railway crossing has the road owner in the map3_lo byte. - if (IS_TILETYPE(tile, MP_STREET) && (_map5[tile] & 0xF0) == 0x10) { + if (IsTileType(tile, MP_STREET) && (_map5[tile] & 0xF0) == 0x10) { owner = _map3_lo[tile]; } else { owner = _map_owner[tile]; @@ -117,7 +117,7 @@ static bool CheckAllowRemoveRoad(uint tile, uint br, bool *edge_road) bool IsRoadDepotTile(TileIndex tile) { - return IS_TILETYPE(tile, MP_STREET) && + return IsTileType(tile, MP_STREET) && (_map5[tile] & 0xF0) == 0x20; } @@ -164,7 +164,7 @@ int32 CmdRemoveRoad(int x, int y, uint32 flags, uint32 p1, uint32 p2) } if (ti.type == MP_TUNNELBRIDGE) { - if (!EnsureNoVehicleZ(tile, GET_TILEHEIGHT(tile))) + if (!EnsureNoVehicleZ(tile, TileHeight(tile))) return CMD_ERROR; if ((ti.map5 & 0xE9) == 0xE8) { diff --git a/road_gui.c b/road_gui.c index 9633a1c3e..dcd59d5b6 100644 --- a/road_gui.c +++ b/road_gui.c @@ -67,7 +67,7 @@ static void BuildRoadOutsideStation(uint tile, int direction) static const byte _roadbits_by_dir[4] = {2,1,8,4}; tile += TileOffsByDir(direction); // if there is a roadpiece just outside of the station entrance, build a connecting route - if (IS_TILETYPE(tile, MP_STREET) && !(_map5[tile]&0x20)) { + if (IsTileType(tile, MP_STREET) && !(_map5[tile] & 0x20)) { DoCommandP(tile, _roadbits_by_dir[direction], 0, NULL, CMD_BUILD_ROAD); } } diff --git a/roadveh_cmd.c b/roadveh_cmd.c index 957561bdd..c86c52fc3 100644 --- a/roadveh_cmd.c +++ b/roadveh_cmd.c @@ -253,7 +253,7 @@ static bool EnumRoadSignalFindDepot(uint tile, RoadFindDepotData *rfdd, int trac { tile += TileOffsByDir(_road_pf_directions[track]); - if (IS_TILETYPE(tile, MP_STREET) && + if (IsTileType(tile, MP_STREET) && (_map5[tile] & 0xF0) == 0x20 && _map_owner[tile] == rfdd->owner) { @@ -417,7 +417,7 @@ static void RoadVehDelete(Vehicle *v) RebuildVehicleLists(); InvalidateWindow(WC_COMPANY, v->owner); - if(IS_TILETYPE(v->tile, MP_STATION)) + if (IsTileType(v->tile, MP_STATION)) ClearCrashedStation(v); BeginVehicleMove(v); @@ -511,7 +511,7 @@ static void RoadVehCheckTrainCrash(Vehicle *v) tile = v->tile; // Make sure it's a road/rail crossing - if (!IS_TILETYPE(tile, MP_STREET) || + if (!IsTileType(tile, MP_STREET) || (_map5[tile] & 0xF0) != 0x10) return; @@ -942,11 +942,11 @@ static int RoadFindPathToDest(Vehicle *v, uint tile, int direction) bitmask = (uint16)r; } - if (IS_TILETYPE(tile, MP_STREET)) { + if (IsTileType(tile, MP_STREET)) { if ((_map5[tile]&0xF0) == 0x20 && v->owner == _map_owner[tile]) /* Road crossing */ bitmask |= _road_veh_fp_ax_or[_map5[tile]&3]; - } else if (IS_TILETYPE(tile, MP_STATION)) { + } else if (IsTileType(tile, MP_STATION)) { if (_map_owner[tile] == OWNER_NONE || _map_owner[tile] == v->owner) { /* Our station */ Station *st = GetStation(_map2[tile]); @@ -990,11 +990,11 @@ static int RoadFindPathToDest(Vehicle *v, uint tile, int direction) return_track(FindFirstBit2x64(bitmask)); } - if (IS_TILETYPE(desttile, MP_STREET)) { + if (IsTileType(desttile, MP_STREET)) { m5 = _map5[desttile]; if ((m5&0xF0) == 0x20) goto do_it; - } else if (IS_TILETYPE(desttile, MP_STATION)) { + } else if (IsTileType(desttile, MP_STATION)) { m5 = _map5[desttile]; if (IS_BYTE_INSIDE(m5, 0x43, 0x4B)) { m5 -= 0x43; @@ -1147,7 +1147,7 @@ static void RoadVehEventHandler(Vehicle *v) return; } - if (IS_TILETYPE(gp.new_tile, MP_TUNNELBRIDGE) && + if (IsTileType(gp.new_tile, MP_TUNNELBRIDGE) && (_map5[gp.new_tile]&0xF0) == 0 && (VehicleEnterTile(v, gp.new_tile, gp.x, gp.y)&4)) { @@ -1198,7 +1198,7 @@ again: r = VehicleEnterTile(v, tile, x, y); if (r & 8) { - if (!IS_TILETYPE(tile, MP_TUNNELBRIDGE)) { + if (!IsTileType(tile, MP_TUNNELBRIDGE)) { v->cur_speed = 0; return; } @@ -1206,7 +1206,7 @@ again: goto again; } - if (IS_BYTE_INSIDE(v->u.road.state, 0x20, 0x30) && IS_TILETYPE(v->tile, MP_STATION)) { + if (IS_BYTE_INSIDE(v->u.road.state, 0x20, 0x30) && IsTileType(v->tile, MP_STATION)) { if ((tmp&7) >= 6) { v->cur_speed = 0; return; } if (IS_BYTE_INSIDE(_map5[v->tile], 0x43, 0x4B)) { Station *st = GetStation(_map2[v->tile]); diff --git a/ship_cmd.c b/ship_cmd.c index 161939be2..ba8e288ba 100644 --- a/ship_cmd.c +++ b/ship_cmd.c @@ -84,7 +84,7 @@ static int FindClosestShipDepot(Vehicle *v) for(i=0; i!=lengthof(_depots); i++) { tile = _depots[i].xy; - if (IS_TILETYPE(tile, MP_WATER) && _map_owner[tile] == owner) { + if (IsTileType(tile, MP_WATER) && _map_owner[tile] == owner) { dist = GetTileDist(tile, tile2); if (dist < best_dist) { best_dist = dist; diff --git a/smallmap_gui.c b/smallmap_gui.c index e7073eede..0f8c0ff50 100644 --- a/smallmap_gui.c +++ b/smallmap_gui.c @@ -297,7 +297,7 @@ static inline uint32 GetSmallMapCountoursPixels(uint tile) { uint t; - t = GET_TILETYPE(tile); + t = TileType(tile); if (t == MP_TUNNELBRIDGE) { t = _map5[tile]; if ((t & 0x80) == 0) t>>=1; @@ -327,7 +327,7 @@ static inline uint32 GetSmallMapVehiclesPixels(uint tile) { uint t; - t = GET_TILETYPE(tile); + t = TileType(tile); if (t == MP_TUNNELBRIDGE) { t = _map5[tile]; if ((t & 0x80) == 0) t>>=1; @@ -380,7 +380,7 @@ static inline uint32 GetSmallMapIndustriesPixels(uint tile) { int t; - t = GET_TILETYPE(tile); + t = TileType(tile); if (t == MP_INDUSTRY) { byte color = _industry_smallmap_colors[_map5[tile]]; return color + (color << 8) + (color << 16) + (color << 24); @@ -413,7 +413,7 @@ static inline uint32 GetSmallMapRoutesPixels(uint tile) int t; uint32 bits; - t = GET_TILETYPE(tile); + t = TileType(tile); if (t == MP_STATION) { byte m5 = _map5[tile]; (bits = MKCOLOR(0x56565656), m5 < 8) || // 8 - railroad station (green) @@ -469,7 +469,7 @@ static inline uint32 GetSmallMapVegetationPixels(uint tile) int i,t; uint32 bits; - t = GET_TILETYPE(tile); + t = TileType(tile); if (t == MP_CLEAR) { i = (_map5[tile] & 0x1F) - 4; if (i >= 0) i = (i >> 2); @@ -514,7 +514,7 @@ static inline uint32 GetSmallMapOwnerPixels(uint tile) { int t; - t = GET_TILETYPE(tile); + t = TileType(tile); if (t == MP_HOUSE || _map_owner[tile] == OWNER_TOWN) { t = 0x80; } else if (t == MP_INDUSTRY) { diff --git a/station_cmd.c b/station_cmd.c index e86189a02..aeea6b9e6 100644 --- a/station_cmd.c +++ b/station_cmd.c @@ -73,7 +73,7 @@ static Station *GetStationAround(uint tile, int w, int h, int closest_station) { // check around to see if there's any stations there BEGIN_TILE_LOOP(tile_cur, w + 2, h + 2, tile - TILE_XY(1,1)) - if (IS_TILETYPE(tile_cur, MP_STATION)) { + if (IsTileType(tile_cur, MP_STATION)) { int t; t = _map2[tile_cur]; { @@ -118,7 +118,7 @@ static bool CheckStationSpreadOut(Station *st, uint tile, int w, int h) uint t; for (i = 0; i != MapSize(); i++) { - if (IS_TILETYPE(i, MP_STATION) && _map2[i] == station_index) { + if (IsTileType(i, MP_STATION) && _map2[i] == station_index) { t = TileX(i); if (t < x1) x1 = t; if (t > x2) x2 = t; @@ -180,7 +180,7 @@ static int CountMapSquareAround(uint tile, byte type, byte min, byte max) { for (p = _count_square_table; p != endof(_count_square_table); ++p) { tile = TILE_MASK(tile + ToTileIndexDiff(*p)); - if (IS_TILETYPE(tile, type) && _map5[tile] >= min && _map5[tile] <= max) + if (IsTileType(tile, type) && _map5[tile] >= min && _map5[tile] <= max) num++; } @@ -435,7 +435,7 @@ void GetProductionAroundTiles(uint *produced, uint tile, int w, int h, int rad) if (!(IS_INSIDE_1D(xc, x, w) && IS_INSIDE_1D(yc, y, h))) { GetProducedCargoProc *gpc; uint tile = TILE_XY(xc, yc); - gpc = _tile_type_procs[GET_TILETYPE(tile)]->get_produced_cargo_proc; + gpc = _tile_type_procs[TileType(tile)]->get_produced_cargo_proc; if (gpc != NULL) { cargos[0] = cargos[1] = 0xFF; gpc(tile, cargos); @@ -480,7 +480,7 @@ void GetAcceptanceAroundTiles(uint *accepts, uint tile, int w, int h, int rad) xc = x1; do { uint tile = TILE_XY(xc, yc); - if (!IS_TILETYPE(tile, MP_STATION)) { + if (!IsTileType(tile, MP_STATION)) { AcceptedCargo ac; int i; @@ -647,7 +647,7 @@ int32 CheckFlatLandBelow(uint tile, uint w, uint h, uint flags, uint invalid_dir // if station is set, then we have special handling to allow building on top of already existing stations. // so station points to -1 if we can build on any station. or it points to a station if we're only allowed to build // on exactly that station. - if ( (station != NULL) && IS_TILETYPE(tile_cur, MP_STATION)) { + if (station != NULL && IsTileType(tile_cur, MP_STATION)) { if (_map5[tile_cur] >= 8) { _error_message = ClearTile_Station(tile_cur, DC_AUTO); // get error message return CMD_ERROR; @@ -914,7 +914,7 @@ int32 CmdBuildRailroadStation(int x_org, int y_org, uint32 flags, uint32 p1, uin static bool TileBelongsToRailStation(Station *st, uint tile) { - return IS_TILETYPE(tile, MP_STATION) && _map2[tile] == st->index && _map5[tile] < 8; + return IsTileType(tile, MP_STATION) && _map2[tile] == st->index && _map5[tile] < 8; } static void MakeRailwayStationAreaSmaller(Station *st) @@ -965,7 +965,7 @@ int32 CmdRemoveFromRailroadStation(int x, int y, uint32 flags, uint32 p1, uint32 SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION); // make sure the specified tile belongs to the current player, and that it is a railroad station. - if (!IS_TILETYPE(tile, MP_STATION) || _map5[tile] >= 8 || !_patches.nonuniform_stations) return CMD_ERROR; + if (!IsTileType(tile, MP_STATION) || _map5[tile] >= 8 || !_patches.nonuniform_stations) return CMD_ERROR; st = GetStation(_map2[tile]); if (_current_player != OWNER_WATER && (!CheckOwnership(st->owner) || !EnsureNoVehicle(tile))) return CMD_ERROR; @@ -2174,7 +2174,7 @@ static void ClickTile_Station(uint tile) } static inline bool IsTrainStationTile(uint tile) { - return IS_TILETYPE(tile, MP_STATION) && IS_BYTE_INSIDE(_map5[tile], 0, 8); + return IsTileType(tile, MP_STATION) && IS_BYTE_INSIDE(_map5[tile], 0, 8); } static const byte _enter_station_speedtable[12] = { @@ -2530,7 +2530,7 @@ uint MoveGoodsToStation(uint tile, int w, int h, int type, uint amount) BEGIN_TILE_LOOP(cur_tile, w, h, tile - TILE_XY(max_rad,max_rad)) cur_tile = TILE_MASK(cur_tile); - if (IS_TILETYPE(cur_tile, MP_STATION)) { + if (IsTileType(cur_tile, MP_STATION)) { st_index = _map2[cur_tile]; for(i=0; i!=8; i++) { if (around[i] == 0xFF) { diff --git a/town_cmd.c b/town_cmd.c index d978b299a..5341324ae 100644 --- a/town_cmd.c +++ b/town_cmd.c @@ -207,7 +207,7 @@ static void MakeSingleHouseBigger(uint tile) { byte b; - assert(IS_TILETYPE(tile, MP_HOUSE)); + assert(IsTileType(tile, MP_HOUSE)); b = _map5[tile]; if (b & 0x80) @@ -515,7 +515,7 @@ static void LevelTownLand(uint tile) } } -#define IS_WATER_TILE(t) (IS_TILETYPE((t), MP_WATER) && _map5[(t)] == 0) +#define IS_WATER_TILE(t) (IsTileType((t), MP_WATER) && _map5[(t)] == 0) static void GrowTownInTile(uint *tile_ptr, uint mask, int block, Town *t1) { @@ -563,8 +563,8 @@ static void GrowTownInTile(uint *tile_ptr, uint mask, int block, Town *t1) return; // Return if neither side of the new road is a house - if (!IS_TILETYPE(TILE_ADD(tile, ToTileIndexDiff(_roadblock_tileadd[a + 1])), MP_HOUSE) && - !IS_TILETYPE(TILE_ADD(tile, ToTileIndexDiff(_roadblock_tileadd[a + 3])), MP_HOUSE)) + if (!IsTileType(TILE_ADD(tile, ToTileIndexDiff(_roadblock_tileadd[a + 1])), MP_HOUSE) && + !IsTileType(TILE_ADD(tile, ToTileIndexDiff(_roadblock_tileadd[a + 3])), MP_HOUSE)) return; // That means that the road is only allowed if there is a house @@ -580,14 +580,14 @@ static void GrowTownInTile(uint *tile_ptr, uint mask, int block, Town *t1) } else { // Reached a tunnel? Then continue at the other side of it. - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE) && (_map5[tile]&~3)==4) { + if (IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile]& ~3) == 4) { FindLengthOfTunnelResult flotr = FindLengthOfTunnel(tile, _map5[tile]&3); *tile_ptr = flotr.tile; return; } // For any other kind of tunnel/bridge, bail out. - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE)) + if (IsTileType(tile, MP_TUNNELBRIDGE)) return; // Possibly extend the road in a direction. @@ -614,7 +614,7 @@ static void GrowTownInTile(uint *tile_ptr, uint mask, int block, Town *t1) // always ok if no road allowed. if (!IsRoadAllowedHere(tmptile, i) || CHANCE16(6,10)) { // But not if there already is a house there. - if (!IS_TILETYPE(tmptile, MP_HOUSE)) { + if (!IsTileType(tmptile, MP_HOUSE)) { // Level the land if possible LevelTownLand(tmptile); @@ -1223,7 +1223,7 @@ static void DoBuildTownHouse(Town *t, uint tile) m5 = (r >> 16) & 0x3F; } - assert(IS_TILETYPE(tile, MP_CLEAR)); + assert(IsTileType(tile, MP_CLEAR)); ModifyTile(tile, MP_SETTYPE(MP_HOUSE) | MP_MAP2 | MP_MAP3LO | MP_MAP3HI_CLEAR | MP_MAP5 | MP_MAPOWNER, @@ -1236,7 +1236,7 @@ static void DoBuildTownHouse(Town *t, uint tile) eflags = _housetype_extra_flags[house]; if (eflags&0x18) { - assert(IS_TILETYPE(tile + TILE_XY(0,1), MP_CLEAR)); + assert(IsTileType(tile + TILE_XY(0,1), MP_CLEAR)); ModifyTile(tile + TILE_XY(0,1), MP_SETTYPE(MP_HOUSE) | MP_MAP2 | MP_MAP3LO | MP_MAP3HI_CLEAR | MP_MAP5 | MP_MAPOWNER, ++house, /* map2 */ @@ -1247,7 +1247,7 @@ static void DoBuildTownHouse(Town *t, uint tile) } if (eflags&0x14) { - assert(IS_TILETYPE(tile + TILE_XY(1,0), MP_CLEAR)); + assert(IsTileType(tile + TILE_XY(1,0), MP_CLEAR)); ModifyTile(tile + TILE_XY(1,0), MP_SETTYPE(MP_HOUSE) | MP_MAP2 | MP_MAP3LO | MP_MAP3HI_CLEAR | MP_MAP5 | MP_MAPOWNER, ++house, /* map2 */ @@ -1258,7 +1258,7 @@ static void DoBuildTownHouse(Town *t, uint tile) } if (eflags&0x10) { - assert(IS_TILETYPE(tile + TILE_XY(1,1), MP_CLEAR)); + assert(IsTileType(tile + TILE_XY(1,1), MP_CLEAR)); ModifyTile(tile + TILE_XY(1,1), MP_SETTYPE(MP_HOUSE) | MP_MAP2 | MP_MAP3LO | MP_MAP3HI_CLEAR | MP_MAP5 | MP_MAPOWNER, ++house, /* map2 */ @@ -1290,7 +1290,7 @@ static bool BuildTownHouse(Town *t, uint tile) static void DoClearTownHouseHelper(uint tile) { - assert(IS_TILETYPE(tile, MP_HOUSE)); + assert(IsTileType(tile, MP_HOUSE)); DoClearSquare(tile); DeleteAnimatedTile(tile); } @@ -1299,7 +1299,7 @@ static void ClearTownHouse(Town *t, uint tile) { uint house = _map2[tile]; uint eflags; - assert(IS_TILETYPE(tile, MP_HOUSE)); + assert(IsTileType(tile, MP_HOUSE)); // need to align the tile to point to the upper left corner of the house if (house >= 3) { // house id 0,1,2 MUST be single tile houses, or this code breaks. @@ -1395,11 +1395,11 @@ void DeleteTown(Town *t) // Go through all tiles and delete those belonging to the town tile = 0; do { - if (IS_TILETYPE(tile, MP_HOUSE)) { + if (IsTileType(tile, MP_HOUSE)) { if (ClosestTownFromTile(tile, (uint)-1) == t) { DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR); } - } else if (IS_TILETYPE(tile, MP_TUNNELBRIDGE) || IS_TILETYPE(tile, MP_STREET)) { + } else if (IsTileType(tile, MP_TUNNELBRIDGE) || IsTileType(tile, MP_STREET)) { if (_map_owner[tile] == OWNER_TOWN && ClosestTownFromTile(tile, (uint)-1) == t) { DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR); } @@ -1656,7 +1656,7 @@ static void UpdateTownGrowRate(Town *t) } if (_opt.landscape == LT_HILLY) { - if (GET_TILEHEIGHT(t->xy) >= _opt.snow_line && t->act_food == 0 && t->population > 90) + if (TileHeight(t->xy) >= _opt.snow_line && t->act_food == 0 && t->population > 90) return; } else if (_opt.landscape == LT_DESERT) { if (GetMapExtraBits(t->xy) == 1 && (t->act_food==0 || t->act_water==0) && t->population > 60) diff --git a/train_cmd.c b/train_cmd.c index 228d1c18e..e96bc5866 100644 --- a/train_cmd.c +++ b/train_cmd.c @@ -487,13 +487,13 @@ int32 CmdBuildRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2) bool IsTrainDepotTile(TileIndex tile) { - return IS_TILETYPE(tile, MP_RAILWAY) && + return IsTileType(tile, MP_RAILWAY) && (_map5[tile] & 0xFC) == 0xC0; } static bool IsTunnelTile(TileIndex tile) { - return IS_TILETYPE(tile, MP_TUNNELBRIDGE) && + return IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile]&0x80) == 0; } @@ -983,7 +983,7 @@ static void ReverseTrainDirection(Vehicle *v) /* Calculate next tile */ tile += TileOffsByDir(t); /* Test if we have a rail/road-crossing */ - if (IS_TILETYPE(tile, MP_STREET) && (_map5[tile] & 0xF0)==0x10) { + if (IsTileType(tile, MP_STREET) && (_map5[tile] & 0xF0) == 0x10) { /* Check if there is a train on the tile itself */ if (VehicleFromPos(tile, &tile, TestTrainOnCrossing) == NULL) { /* If light is on, switch light off */ @@ -1119,7 +1119,7 @@ typedef struct TrainFindDepotData { static bool TrainFindDepotEnumProc(uint tile, TrainFindDepotData *tfdd, int track, uint length, byte *state) { - if (IS_TILETYPE(tile, MP_RAILWAY) && _map_owner[tile] == tfdd->owner) { + if (IsTileType(tile, MP_RAILWAY) && _map_owner[tile] == tfdd->owner) { if ((_map5[tile] & ~0x3) == 0xC0) { if (length < tfdd->best_length) { tfdd->best_length = length; @@ -1357,7 +1357,7 @@ typedef struct TrainTrackFollowerData { } TrainTrackFollowerData; static bool TrainTrackFollower(uint tile, TrainTrackFollowerData *ttfd, int track, uint length, byte *state){ - if (IS_TILETYPE(tile, MP_RAILWAY) && (_map5[tile]&0xC0) == 0x40) { + if (IsTileType(tile, MP_RAILWAY) && (_map5[tile]&0xC0) == 0x40) { // the tile has a signal byte m3 = _map3_lo[tile]; if (!(m3 & _signal_onedir[track])) { @@ -1380,7 +1380,7 @@ static bool TrainTrackFollower(uint tile, TrainTrackFollowerData *ttfd, int trac // did we reach the final station? if ((ttfd->station_index == -1 && tile == ttfd->dest_coords) || - (IS_TILETYPE(tile, MP_STATION) && IS_BYTE_INSIDE(_map5[tile], 0, 8) && _map2[tile] == ttfd->station_index)) { + (IsTileType(tile, MP_STATION) && IS_BYTE_INSIDE(_map5[tile], 0, 8) && _map2[tile] == ttfd->station_index)) { /* We do not check for dest_coords if we have a station_index, * because in that case the dest_coords are just an * approximation of where the station is */ @@ -1895,9 +1895,9 @@ static int GetDirectionToVehicle(Vehicle *v, int x, int y) /* Check if the vehicle is compatible with the specified tile */ static bool CheckCompatibleRail(Vehicle *v, uint tile) { - if (IS_TILETYPE(tile, MP_RAILWAY) || IS_TILETYPE(tile, MP_STATION)) { + if (IsTileType(tile, MP_RAILWAY) || IsTileType(tile, MP_STATION)) { // normal tracks, jump to owner check - } else if (IS_TILETYPE(tile, MP_TUNNELBRIDGE)) { + } else if (IsTileType(tile, MP_TUNNELBRIDGE)) { if ((_map5[tile] & 0xC0) == 0xC0) {// is bridge middle part? TileInfo ti; FindLandscapeHeightByTile(&ti, tile); @@ -1909,7 +1909,7 @@ static bool CheckCompatibleRail(Vehicle *v, uint tile) if(v->z_pos != ti.z) // train is going over bridge return true; } - } else if (IS_TILETYPE(tile, MP_STREET)) { // train is going over a road-crossing + } else if (IsTileType(tile, MP_STREET)) { // train is going over a road-crossing // tracks over roads, do owner check of tracks (_map_owner[tile]) if (_map_owner[tile] != v->owner || (v->subtype == 0 && (_map3_hi[tile] & 0xF) != v->u.rail.railtype)) return false; @@ -1977,7 +1977,7 @@ static const byte _otherside_signal_directions[14] = { static void TrainMovedChangeSignals(uint tile, int dir) { int i; - if (IS_TILETYPE(tile, MP_RAILWAY) && (_map5[tile]&0xC0)==0x40) { + if (IsTileType(tile, MP_RAILWAY) && (_map5[tile] & 0xC0) == 0x40) { i = FindFirstBit2x64((_map5[tile]+(_map5[tile]<<8)) & _reachable_tracks[dir]); UpdateSignalsOnSegment(tile, _otherside_signal_directions[i]); } @@ -2215,7 +2215,7 @@ static void TrainController(Vehicle *v) /* in tunnel */ GetNewVehiclePos(v, &gp); - if (IS_TILETYPE(gp.new_tile, MP_TUNNELBRIDGE) && + if (IsTileType(gp.new_tile, MP_TUNNELBRIDGE) && !(_map5[gp.new_tile] & 0xF0)) { r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y); if (r & 0x4) goto common; @@ -2443,14 +2443,14 @@ static bool TrainCheckIfLineEnds(Vehicle *v) tile = v->tile; // tunnel entrance? - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE) && + if (IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xF0) == 0 && (byte)((_map5[tile] & 3)*2+1) == v->direction) return true; // depot? /* XXX -- When enabled, this makes it possible to crash trains of others (by building a depot right against a station) */ -/* if (IS_TILETYPE(tile, MP_RAILWAY) && (_map5[tile] & 0xFC) == 0xC0) +/* if (IsTileType(tile, MP_RAILWAY) && (_map5[tile] & 0xFC) == 0xC0) return true;*/ /* Determine the non-diagonal direction in which we will exit this tile */ @@ -2500,7 +2500,7 @@ static bool TrainCheckIfLineEnds(Vehicle *v) } if ((ts &= (ts >> 16)) == 0) { // make a rail/road crossing red - if (IS_TILETYPE(tile, MP_STREET) && (_map5[tile] & 0xF0)==0x10) { + if (IsTileType(tile, MP_STREET) && (_map5[tile] & 0xF0) == 0x10) { if (!(_map5[tile] & 4)) { _map5[tile] |= 4; SndPlayVehicleFx(SND_0E_LEVEL_CROSSING, v); diff --git a/tree_cmd.c b/tree_cmd.c index 47f9792db..825166db7 100644 --- a/tree_cmd.c +++ b/tree_cmd.c @@ -81,7 +81,7 @@ static void DoPlaceMoreTrees(uint tile) /* Only on tiles within 13 squares from tile, on clear tiles, and NOT on farm-tiles or rocks */ - if (dist <= 13 && IS_TILETYPE(cur_tile, MP_CLEAR) && + if (dist <= 13 && IsTileType(cur_tile, MP_CLEAR) && (_map5[cur_tile] & 0x1F) != 0x0F && (_map5[cur_tile] & 0x1C) != 8) { PlaceTree(cur_tile, r, dist <= 6 ? 0xC0 : 0); } @@ -107,7 +107,7 @@ void PlaceTreesRandomly() r = Random(); tile = TILE_MASK(r); /* Only on clear tiles, and NOT on farm-tiles or rocks */ - if (IS_TILETYPE(tile, MP_CLEAR) && (_map5[tile] & 0x1F) != 0x0F && (_map5[tile] & 0x1C) != 8) { + if (IsTileType(tile, MP_CLEAR) && (_map5[tile] & 0x1F) != 0x0F && (_map5[tile] & 0x1C) != 8) { PlaceTree(tile, r, 0); } } while (--i); @@ -119,7 +119,7 @@ void PlaceTreesRandomly() do { r = Random(); tile = TILE_MASK(r); - if (IS_TILETYPE(tile, MP_CLEAR) && GetMapExtraBits(tile) == 2) { + if (IsTileType(tile, MP_CLEAR) && GetMapExtraBits(tile) == 2) { PlaceTree(tile, r, 0); } } while (--i); @@ -516,7 +516,7 @@ static void TileLoop_Trees(uint tile) tile += ToTileIndexDiff(_tileloop_trees_dir[Random() & 7]); - if (!IS_TILETYPE(tile, MP_CLEAR)) + if (!IsTileType(tile, MP_CLEAR)) return; if ( (_map5[tile] & 0x1C) == 4) { @@ -579,7 +579,7 @@ void OnTick_Trees() /* place a tree at a random rainforest spot */ if (_opt.landscape == LT_DESERT && (r=Random(),tile=TILE_MASK(r),GetMapExtraBits(tile)==2) && - IS_TILETYPE(tile, MP_CLEAR) && + IsTileType(tile, MP_CLEAR) && (m=_map5[tile]&0x1C, m<=4) && (tree=GetRandomTreeType(tile, r>>24)) >= 0) { @@ -600,7 +600,7 @@ void OnTick_Trees() /* place a tree at a random spot */ r = Random(); tile = TILE_MASK(r); - if (IS_TILETYPE(tile, MP_CLEAR) && + if (IsTileType(tile, MP_CLEAR) && (m=_map5[tile]&0x1C, m==0 || m==4 || m==0x10) && (tree=GetRandomTreeType(tile, r>>24)) >= 0) { int m2; @@ -1193,13 +1193,13 @@ void ConvertTownOwner() uint tile; for (tile = 0; tile != MapSize(); tile++) { - if (IS_TILETYPE(tile, MP_STREET)) { + if (IsTileType(tile, MP_STREET)) { if ((_map5[tile] & 0xF0) == 0x10 && _map3_lo[tile] & 0x80) _map3_lo[tile] = OWNER_TOWN; if (_map_owner[tile] & 0x80) _map_owner[tile] = OWNER_TOWN; - } else if (IS_TILETYPE(tile, MP_TUNNELBRIDGE)) { + } else if (IsTileType(tile, MP_TUNNELBRIDGE)) { if (_map_owner[tile] & 0x80) _map_owner[tile] = OWNER_TOWN; } @@ -1292,7 +1292,7 @@ bool AfterLoadGame(uint version) uint h = MapSizeY(); BEGIN_TILE_LOOP(tile_cur, w, h, tile) - if (IS_TILETYPE(tile_cur, MP_WATER) && _map_owner[tile_cur] >= MAX_PLAYERS) + if (IsTileType(tile_cur, MP_WATER) && _map_owner[tile_cur] >= MAX_PLAYERS) _map_owner[tile_cur] = OWNER_WATER; END_TILE_LOOP(tile_cur, w, h, tile) } diff --git a/tunnelbridge_cmd.c b/tunnelbridge_cmd.c index c4fe124ad..23d4e3806 100644 --- a/tunnelbridge_cmd.c +++ b/tunnelbridge_cmd.c @@ -593,7 +593,15 @@ uint CheckTunnelBusy(uint tile, int *length) uint starttile = tile; Vehicle *v; - do { tile += delta; len++; } while (!IS_TILETYPE(tile, MP_TUNNELBRIDGE) || _map5[tile]&0xF0 || (byte)(_map5[tile] ^ 2) != m5 || GetTileZ(tile) != z); + do { + tile += delta; + len++; + } while ( + !IsTileType(tile, MP_TUNNELBRIDGE) || + (_map5[tile] & 0xF0) != 0 || + (byte)(_map5[tile] ^ 2) != m5 || + GetTileZ(tile) != z + ); if ((v=FindVehicleBetween(starttile, tile, z)) != NULL) { _error_message = v->type == VEH_Train ? STR_5000_TRAIN_IN_TUNNEL : STR_5001_ROAD_VEHICLE_IN_TUNNEL; @@ -655,7 +663,7 @@ static uint FindEdgesOfBridge(uint tile, uint *endtile) // find start of bridge for(;;) { - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xE0) == 0x80) + if (IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xE0) == 0x80) break; tile += direction ? TILE_XY(0,-1) : TILE_XY(-1,0); } @@ -664,7 +672,7 @@ static uint FindEdgesOfBridge(uint tile, uint *endtile) // find end of bridge for(;;) { - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xE0) == 0xA0) + if (IsTileType(tile, MP_TUNNELBRIDGE) && (_map5[tile] & 0xE0) == 0xA0) break; tile += direction ? TILE_XY(0,1) : TILE_XY(1,0); } @@ -690,7 +698,7 @@ static int32 DoClearBridge(uint tile, uint32 flags) int32 cost; // check if we own the tile below the bridge.. - if (_current_player != OWNER_WATER && (!CheckTileOwnership(tile) || !EnsureNoVehicleZ(tile, GET_TILEHEIGHT(tile)) )) + if (_current_player != OWNER_WATER && (!CheckTileOwnership(tile) || !EnsureNoVehicleZ(tile, TileHeight(tile)))) return CMD_ERROR; cost = (_map5[tile] & 8) ? _price.remove_road * 2 : _price.remove_rail; @@ -703,11 +711,11 @@ static int32 DoClearBridge(uint tile, uint32 flags) return cost; /* delete canal under bridge */ - } else if(_map5[tile]==0xC8 && GET_TILEHEIGHT(tile)!=0) { + } else if(_map5[tile] == 0xC8 && TileHeight(tile) != 0) { int32 cost; // check for vehicles under bridge - if ( !EnsureNoVehicleZ(tile, GET_TILEHEIGHT(tile)) ) + if (!EnsureNoVehicleZ(tile, TileHeight(tile))) return CMD_ERROR; cost = _price.clear_water; if (flags & DC_EXEC) { @@ -735,7 +743,7 @@ static int32 DoClearBridge(uint tile, uint32 flags) */ tile += direction ? TILE_XY(0, 1) : TILE_XY( 1,0); endtile -= direction ? TILE_XY(0, 1) : TILE_XY( 1,0); - if ((v=FindVehicleBetween(tile, endtile, GET_TILEHEIGHT(tile) + 8)) != NULL) { + if ((v = FindVehicleBetween(tile, endtile, TileHeight(tile) + 8)) != NULL) { VehicleInTheWayErrMsg(v); return CMD_ERROR; } @@ -844,7 +852,7 @@ int32 DoConvertTunnelBridgeRail(uint tile, uint totype, bool exec) } else if ((_map5[tile] & 0xF8) == 0xE0) { // bridge middle part with rail below // only check for train under bridge - if (!CheckTileOwnership(tile) || !EnsureNoVehicleZ(tile, GET_TILEHEIGHT(tile))) + if (!CheckTileOwnership(tile) || !EnsureNoVehicleZ(tile, TileHeight(tile))) return CMD_ERROR; // tile is already of requested type? @@ -912,7 +920,7 @@ uint GetBridgeHeight(const TileInfo *ti) z_correction += 8; // return the height there (the height of the NORTH CORNER) - return GET_TILEHEIGHT(tile) + z_correction; + return TileHeight(tile) + z_correction; } static const byte _bridge_foundations[2][16] = { diff --git a/unmovable_cmd.c b/unmovable_cmd.c index 66c8a38f4..9b6075c93 100644 --- a/unmovable_cmd.c +++ b/unmovable_cmd.c @@ -240,7 +240,7 @@ static bool checkRadioTowerNearby(uint tile) BEGIN_TILE_LOOP(tile, 9, 9, tile_s) // already a radio tower here? - if (IS_TILETYPE(tile, MP_UNMOVABLE) && _map5[tile] == 0) + if (IsTileType(tile, MP_UNMOVABLE) && _map5[tile] == 0) return false; END_TILE_LOOP(tile, 9, 9, tile_s) return true; @@ -265,7 +265,7 @@ void GenerateUnmovables() tile = r % MapSize(); // TILE_MASK seems to be not working correctly. Radio masts accumulate in one area. // tile = TILE_MASK(r); - if (IS_TILETYPE(tile, MP_CLEAR) && GetTileSlope(tile, &h) == 0 && h >= 32) { + if (IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == 0 && h >= 32) { if(!checkRadioTowerNearby(tile)) continue; _map_type_and_height[tile] |= MP_UNMOVABLE << 4; @@ -296,7 +296,7 @@ restart: if (--j == 0) goto restart; tile = TILE_MASK(tile + ToTileIndexDiff(_tile_add[dir])); - } while (!(IS_TILETYPE(tile, MP_CLEAR) && GetTileSlope(tile, &h) == 0 && h <= 16)); + } while (!(IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == 0 && h <= 16)); assert(tile == TILE_MASK(tile)); @@ -604,7 +604,7 @@ static void EffectTick_0(Vehicle *v) BeginVehicleMove(v); tile = TILE_FROM_XY(v->x_pos, v->y_pos); - if (!IS_TILETYPE(tile, MP_INDUSTRY)) { + if (!IsTileType(tile, MP_INDUSTRY)) { EndVehicleMove(v); DeleteVehicle(v); return; @@ -1074,7 +1074,7 @@ again: SndPlayVehicleFx(SND_31_EXTRACT, v); tile = TILE_FROM_XY(v->x_pos, v->y_pos); - if (IS_TILETYPE(tile, MP_INDUSTRY) && + if (IsTileType(tile, MP_INDUSTRY) && _map5[tile]==0xA2) { AddAnimatedTile(tile); } @@ -1642,13 +1642,13 @@ byte GetDirectionTowards(Vehicle *v, int x, int y) uint32 VehicleEnterTile(Vehicle *v, uint tile, int x, int y) { uint old_tile = v->tile; - uint32 result = _tile_type_procs[GET_TILETYPE(tile)]->vehicle_enter_tile_proc(v, tile, x, y); + uint32 result = _tile_type_procs[TileType(tile)]->vehicle_enter_tile_proc(v, tile, x, y); /* When vehicle_enter_tile_proc returns 8, that apparently means that * we cannot enter the tile at all. In that case, don't call * leave_tile. */ if (!(result & 8) && old_tile != tile) { - VehicleLeaveTileProc *proc = _tile_type_procs[GET_TILETYPE(old_tile)]->vehicle_leave_tile_proc; + VehicleLeaveTileProc *proc = _tile_type_procs[TileType(old_tile)]->vehicle_leave_tile_proc; if (proc != NULL) proc(v, old_tile, x, y); } diff --git a/water_cmd.c b/water_cmd.c index dea1a8522..2a7e75e6d 100644 --- a/water_cmd.c +++ b/water_cmd.c @@ -13,7 +13,7 @@ static void FloodVehicle(Vehicle *v); bool IsShipDepotTile(TileIndex tile) { - return IS_TILETYPE(tile, MP_WATER) && (_map5[tile]&~3) == 0x80; + return IsTileType(tile, MP_WATER) && (_map5[tile] & ~3) == 0x80; } static bool IsClearWaterTile(uint tile) @@ -206,12 +206,12 @@ int32 CmdBuildCanal(int x, int y, uint32 flags, uint32 p1, uint32 p2) return_cmd_error(STR_0007_FLAT_LAND_REQUIRED); // can't make water of water! - if (IS_TILETYPE(tile, MP_WATER)) { + if (IsTileType(tile, MP_WATER)) { _error_message = STR_1007_ALREADY_BUILT; } else { /* is middle piece of a bridge? */ - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE) && _map5[tile] & 0x40) { /* build under bridge */ + if (IsTileType(tile, MP_TUNNELBRIDGE) && _map5[tile] & 0x40) { /* build under bridge */ if(_map5[tile] & 0x20) { // transport route under bridge _error_message = STR_5800_OBJECT_IN_THE_WAY; ret = CMD_ERROR; @@ -230,7 +230,7 @@ int32 CmdBuildCanal(int x, int y, uint32 flags, uint32 p1, uint32 p2) /* execute modifications */ if (flags & DC_EXEC) { - if(IS_TILETYPE(tile, MP_TUNNELBRIDGE)) { + if (IsTileType(tile, MP_TUNNELBRIDGE)) { // change owner to OWNER_WATER and set land under bridge bit to water ModifyTile(tile, MP_MAP5 | MP_MAPOWNER, OWNER_WATER, _map5[tile] | 0x08); } else { @@ -318,13 +318,13 @@ static int32 ClearTile_Water(uint tile, byte flags) { static bool IsWateredTile(uint tile) { byte m5 = _map5[tile]; - if (IS_TILETYPE(tile, MP_WATER)) { + if (IsTileType(tile, MP_WATER)) { return m5 != 1; - } else if (IS_TILETYPE(tile, MP_STATION)) { + } else if (IsTileType(tile, MP_STATION)) { // returns true if it is a dock-station (m5 inside values is m5<75 all stations, // 83<=m5<=114 new airports return !(m5 < 75 || (m5 >= 83 && m5 <= 114)); - } else if (IS_TILETYPE(tile, MP_TUNNELBRIDGE)) { + } else if (IsTileType(tile, MP_TUNNELBRIDGE)) { return (m5 & 0xF8) == 0xC8; } else return false; @@ -459,7 +459,7 @@ static void GetAcceptedCargo_Water(uint tile, AcceptedCargo ac) static void GetTileDesc_Water(uint tile, TileDesc *td) { - if (_map5[tile] == 0 && GET_TILEHEIGHT(tile) == 0) + if (_map5[tile] == 0 && TileHeight(tile) == 0) td->str = STR_3804_WATER; else if (_map5[tile] == 0) td->str = STR_LANDINFO_CANAL; @@ -501,7 +501,7 @@ static void TileLoopWaterHelper(uint tile, const TileIndexDiffC *offs) ModifyTile(tile, MP_SETTYPE(MP_WATER) | MP_MAPOWNER | MP_MAP5 | MP_MAP2_CLEAR | MP_MAP3LO_CLEAR | MP_MAP3HI_CLEAR,OWNER_WATER,1); } } else { - if (IS_TILETYPE(tile, MP_TUNNELBRIDGE)) { + if (IsTileType(tile, MP_TUNNELBRIDGE)) { byte m5 = _map5[tile]; if ( (m5&0xF8) == 0xC8 || (m5&0xF8) == 0xF0) return; |