mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r19506) -Fix: Tunnels, bridges and roadstops are build with only one roadtype.
This commit is contained in:
parent
fe35a0cacf
commit
f45e579923
|
@ -28,16 +28,6 @@ static inline bool IsValidRoadType(RoadType rt)
|
|||
return rt == ROADTYPE_ROAD || rt == ROADTYPE_TRAM;
|
||||
}
|
||||
|
||||
/**
|
||||
* Are the given bits pointing to valid roadtypes?
|
||||
* @param rts the roadtypes to check for validness
|
||||
* @return true if and only if valid
|
||||
*/
|
||||
static inline bool AreValidRoadTypes(RoadTypes rts)
|
||||
{
|
||||
return HasBit(rts, ROADTYPE_ROAD) || HasBit(rts, ROADTYPE_TRAM);
|
||||
}
|
||||
|
||||
/**
|
||||
* Maps a RoadType to the corresponding RoadTypes value
|
||||
*
|
||||
|
|
|
@ -1697,7 +1697,7 @@ CommandCost CmdBuildRoadStop(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
|
|||
|
||||
if (distant_join && (!_settings_game.station.distant_join_stations || !Station::IsValidID(station_to_join))) return CMD_ERROR;
|
||||
|
||||
if (!AreValidRoadTypes(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
|
||||
if (!HasExactlyOneBit(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
|
||||
|
||||
/* Trams only have drive through stops */
|
||||
if (!is_drive_through && HasBit(rts, ROADTYPE_TRAM)) return CMD_ERROR;
|
||||
|
|
|
@ -207,7 +207,7 @@ CommandCost CmdBuildBridge(TileIndex end_tile, DoCommandFlag flags, uint32 p1, u
|
|||
switch (transport_type) {
|
||||
case TRANSPORT_ROAD:
|
||||
roadtypes = (RoadTypes)GB(p2, 8, 2);
|
||||
if (!AreValidRoadTypes(roadtypes) || !HasRoadTypesAvail(_current_company, roadtypes)) return CMD_ERROR;
|
||||
if (!HasExactlyOneBit(roadtypes) || !HasRoadTypesAvail(_current_company, roadtypes)) return CMD_ERROR;
|
||||
break;
|
||||
|
||||
case TRANSPORT_RAIL:
|
||||
|
@ -487,7 +487,7 @@ CommandCost CmdBuildTunnel(TileIndex start_tile, DoCommandFlag flags, uint32 p1,
|
|||
if (!ValParamRailtype((RailType)p1)) return CMD_ERROR;
|
||||
} else {
|
||||
const RoadTypes rts = (RoadTypes)GB(p1, 0, 2);
|
||||
if (!AreValidRoadTypes(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
|
||||
if (!HasExactlyOneBit(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
|
||||
}
|
||||
|
||||
uint start_z;
|
||||
|
|
Loading…
Reference in New Issue