(svn r8765) -Codechange: remove logic redundancy by moving it from the gui into the cmd code.

This commit is contained in:
rubidium 2007-02-16 22:44:56 +00:00
parent 76eb16252a
commit c04c8382ca
2 changed files with 2 additions and 10 deletions

View File

@ -100,16 +100,6 @@ static void PlaceRoadStop(TileIndex tile, uint32 p2, uint32 cmd)
if (p1 >= DIAGDIR_END) {
SETBIT(p2, 1); // It's a drive-through stop
p1 -= DIAGDIR_END; // Adjust picker result to actual direction
/* Only allow building over a road if its a straight road,
* facing the right direction and it belongs to the player */
if ((IsTileType(tile, MP_STREET) &&
GetRoadTileType(tile) == ROAD_TILE_NORMAL &&
(IsTileOwner(tile, _current_player) || (_patches.road_stop_on_town_road && IsTileOwner(tile, OWNER_TOWN))) &&
!(GetRoadBits(tile) & ((DiagDirection)p1 == DIAGDIR_NE ? ROAD_Y : ROAD_X)))) {
cmd ^= CMD_AUTO;
}
}
DoCommandP(tile, p1, p2, CcRoadDepot, cmd);
}

View File

@ -1276,6 +1276,8 @@ int32 CmdBuildRoadStop(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
if (!(flags & DC_NO_TOWN_RATING) && !CheckIfAuthorityAllows(tile))
return CMD_ERROR;
if (build_over_road) flags ^= DC_AUTO;
if (build_over_road && IsTileOwner(tile, OWNER_TOWN)) _current_player = OWNER_TOWN;
ret = CheckFlatLandBelow(tile, 1, 1, flags, is_drive_through ? 5 << p1 : 1 << p1, NULL);
_current_player = cur_owner;