diff options
author | tron <tron@openttd.org> | 2006-02-23 11:53:48 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-02-23 11:53:48 +0000 |
commit | a975616303292c5762a256a66aa24ff707614cc1 (patch) | |
tree | b81c87fca02e4211d3a3646e84bd1f38ce6b3585 | |
parent | 2f8e3dcc05eea3bedbfcbf3e8bedaf7f64dc9cc3 (diff) | |
download | openttd-a975616303292c5762a256a66aa24ff707614cc1.tar.xz |
(svn r3659) Add function to get the road bits of a level crossing
-rw-r--r-- | road.h | 5 | ||||
-rw-r--r-- | road_cmd.c | 6 |
2 files changed, 8 insertions, 3 deletions
@@ -20,6 +20,11 @@ static inline RoadBits GetRoadBits(TileIndex tile) return GB(_m[tile].m5, 0, 4); } +static inline RoadBits GetCrossingRoadBits(TileIndex tile) +{ + return _m[tile].m5 & 8 ? ROAD_Y : ROAD_X; +} + typedef enum RoadType { ROAD_NORMAL, ROAD_CROSSING, diff --git a/road_cmd.c b/road_cmd.c index f93f24f16..82c5116be 100644 --- a/road_cmd.c +++ b/road_cmd.c @@ -34,7 +34,7 @@ static bool HasTileRoadAt(TileIndex tile, int i) case MP_STREET: switch (GetRoadType(tile)) { case ROAD_NORMAL: b = GetRoadBits(tile); break; - case ROAD_CROSSING: b = (_m[tile].m5 & 8 ? ROAD_Y : ROAD_X); break; + case ROAD_CROSSING: b = GetCrossingRoadBits(tile); break; case ROAD_DEPOT: return (~_m[tile].m5 & 3) == i; default: return false; } @@ -709,7 +709,7 @@ static int32 ClearTile_Road(TileIndex tile, byte flags) if (flags & DC_AUTO) return_cmd_error(STR_1801_MUST_REMOVE_ROAD_FIRST); - ret = DoCommandByTile(tile, (_m[tile].m5 & 8 ? ROAD_Y : ROAD_X), 0, flags, CMD_REMOVE_ROAD); + ret = DoCommandByTile(tile, GetCrossingRoadBits(tile), 0, flags, CMD_REMOVE_ROAD); if (CmdFailed(ret)) return CMD_ERROR; if (flags & DC_EXEC) { @@ -1212,10 +1212,10 @@ static void ChangeTileOwner_Road(TileIndex tile, PlayerID old_player, PlayerID n break; case ROAD_CROSSING: - _m[tile].m5 = (_m[tile].m5&8) ? 0x5 : 0xA; SetTileOwner(tile, _m[tile].m3); _m[tile].m3 = 0; _m[tile].m4 &= 0x80; + _m[tile].m5 = GetCrossingRoadBits(tile); break; default: |