summaryrefslogtreecommitdiff
path: root/tunnelbridge_cmd.c
diff options
context:
space:
mode:
authortron <tron@openttd.org>2005-10-05 07:20:26 +0000
committertron <tron@openttd.org>2005-10-05 07:20:26 +0000
commit39f5dbfd3b22f24120c63c09433415cdde023bc6 (patch)
tree8281c38dbbb38386dacf57d352e00b62be0edc77 /tunnelbridge_cmd.c
parent6687d63add08a36f7366764fa2482270e8d7a80e (diff)
downloadopenttd-39f5dbfd3b22f24120c63c09433415cdde023bc6.tar.xz
(svn r3019) -Codechange: Replace explicit shifting/anding/oring with GB and SB
Diffstat (limited to 'tunnelbridge_cmd.c')
-rw-r--r--tunnelbridge_cmd.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/tunnelbridge_cmd.c b/tunnelbridge_cmd.c
index 1976c9f27..ef59e06db 100644
--- a/tunnelbridge_cmd.c
+++ b/tunnelbridge_cmd.c
@@ -627,7 +627,7 @@ TileIndex CheckTunnelBusy(TileIndex tile, uint *length)
len++;
} while (
!IsTileType(tile, MP_TUNNELBRIDGE) ||
- (_m[tile].m5 & 0xF0) != 0 ||
+ GB(_m[tile].m5, 4, 4) != 0 ||
(_m[tile].m5 ^ 2) != m5 ||
GetTileZ(tile) != z
);
@@ -676,8 +676,8 @@ static int32 DoClearTunnel(TileIndex tile, uint32 flags)
if (flags & DC_EXEC) {
// We first need to request the direction before calling DoClearSquare
// else the direction is always 0.. dah!! ;)
- byte tile_dir = _m[tile].m5&3;
- byte endtile_dir = _m[endtile].m5&3;
+ byte tile_dir = GB(_m[tile].m5, 0, 2);
+ byte endtile_dir = GB(_m[endtile].m5, 0, 2);
DoClearSquare(tile);
DoClearSquare(endtile);
UpdateSignalsOnSegment(tile, _updsignals_tunnel_dir[tile_dir]);
@@ -690,7 +690,7 @@ static int32 DoClearTunnel(TileIndex tile, uint32 flags)
static TileIndex FindEdgesOfBridge(TileIndex tile, TileIndex *endtile)
{
- int direction = _m[tile].m5 & 1;
+ int direction = GB(_m[tile].m5, 0, 1);
TileIndex start;
// find start of bridge
@@ -723,7 +723,7 @@ static int32 DoClearBridge(TileIndex tile, uint32 flags)
SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
- direction = _m[tile].m5&1;
+ direction = GB(_m[tile].m5, 0, 1);
/* delete stuff under the middle part if there's a transport route there..? */
if ((_m[tile].m5 & 0xE0) == 0xE0) {
@@ -871,14 +871,14 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, uint totype, bool exec)
// railway tunnel
if (!CheckTileOwnership(tile)) return CMD_ERROR;
- if ((_m[tile].m3 & 0xFU) == totype) return CMD_ERROR;
+ if (GB(_m[tile].m3, 0, 4) == totype) return CMD_ERROR;
endtile = CheckTunnelBusy(tile, &length);
if (endtile == INVALID_TILE) return CMD_ERROR;
if (exec) {
- _m[tile].m3 = (_m[tile].m3 & 0xF0) + totype;
- _m[endtile].m3 = (_m[endtile].m3 & 0xF0) + totype;
+ SB(_m[tile].m3, 0, 4, totype);
+ SB(_m[endtile].m3, 0, 4, totype);
MarkTileDirtyByTile(tile);
MarkTileDirtyByTile(endtile);
}
@@ -890,10 +890,10 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, uint totype, bool exec)
return CMD_ERROR;
// tile is already of requested type?
- if ((_m[tile].m3 & 0xFU) == totype) return CMD_ERROR;
+ if (GB(_m[tile].m3, 0, 4) == totype) return CMD_ERROR;
// change type.
if (exec) {
- _m[tile].m3 = (_m[tile].m3 & 0xF0) + totype;
+ SB(_m[tile].m3, 0, 4, totype);
MarkTileDirtyByTile(tile);
}
return _price.build_rail >> 1;
@@ -919,19 +919,19 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, uint totype, bool exec)
return CMD_ERROR;
}
- if ((_m[tile].m3 & 0xFU) == totype) return CMD_ERROR;
+ if (GB(_m[tile].m3, 0, 4) == totype) return CMD_ERROR;
cost = 0;
do {
if (exec) {
if (tile == starttile || tile == endtile) {
- _m[tile].m3 = (_m[tile].m3 & 0xF0) + totype;
+ SB(_m[tile].m3, 0, 4, totype);
} else {
- _m[tile].m3 = (_m[tile].m3 & 0x0F) + (totype << 4);
+ SB(_m[tile].m3, 4, 4, totype);
}
MarkTileDirtyByTile(tile);
}
cost += (_price.build_rail>>1);
- tile += _m[tile].m5 & 1 ? TileDiffXY(0, 1) : TileDiffXY(1, 0);
+ tile += GB(_m[tile].m5, 0, 1) ? TileDiffXY(0, 1) : TileDiffXY(1, 0);
} while (tile <= endtile);
return cost;
@@ -947,7 +947,7 @@ static uint GetBridgeHeight(const TileInfo *ti)
TileIndex tile = ti->tile;
// find the end tile of the bridge.
- delta = (_m[tile].m5 & 1) ? TileDiffXY(0, 1) : TileDiffXY(1, 0);
+ delta = GB(_m[tile].m5, 0, 1) ? TileDiffXY(0, 1) : TileDiffXY(1, 0);
do {
assert((_m[tile].m5 & 0xC0) == 0xC0); // bridge and middle part
tile += delta;
@@ -1124,7 +1124,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti)
}
if (!(image&1)) {
- const RailtypeInfo *rti = GetRailTypeInfo(_m[ti->tile].m3 & 0xF);
+ const RailtypeInfo *rti = GetRailTypeInfo(GB(_m[ti->tile].m3, 0, 4));
// railway
image = 0x3F3 + (ti->map5 & 1);
if (ti->tileh != 0) image = _track_sloped_sprites[ti->tileh - 1] + 0x3F3;
@@ -1316,7 +1316,7 @@ static void GetTileDesc_TunnelBridge(TileIndex tile, TileDesc *td)
/* scan to the end of the bridge, that's where the owner is stored */
if (_m[tile].m5 & 0x40) {
- TileIndexDiff delta = _m[tile].m5 & 1 ? TileDiffXY(0, -1) : TileDiffXY(-1, 0);
+ TileIndexDiff delta = GB(_m[tile].m5, 0, 1) ? TileDiffXY(0, -1) : TileDiffXY(-1, 0);
do tile += delta; while (_m[tile].m5 & 0x40);
}
@@ -1450,7 +1450,7 @@ static uint32 VehicleEnter_TunnelBridge(Vehicle *v, TileIndex tile, int x, int y
int dir, vdir;
byte fc;
- if ((_m[tile].m5 & 0xF0) == 0) {
+ if (GB(_m[tile].m5, 4, 4) == 0) {
z = GetSlopeZ(x, y) - v->z_pos;
if (myabs(z) > 2)
return 8;
@@ -1458,7 +1458,7 @@ static uint32 VehicleEnter_TunnelBridge(Vehicle *v, TileIndex tile, int x, int y
if (v->type == VEH_Train) {
fc = (x&0xF)+(y<<4);
- dir = _m[tile].m5 & 3;
+ dir = GB(_m[tile].m5, 0, 2);
vdir = v->direction >> 1;
if (v->u.rail.track != 0x40 && dir == vdir) {
@@ -1487,7 +1487,7 @@ static uint32 VehicleEnter_TunnelBridge(Vehicle *v, TileIndex tile, int x, int y
}
} else if (v->type == VEH_Road) {
fc = (x&0xF)+(y<<4);
- dir = _m[tile].m5 & 3;
+ dir = GB(_m[tile].m5, 0, 2);
vdir = v->direction >> 1;
// Enter tunnel?
@@ -1542,7 +1542,7 @@ TileIndex GetVehicleOutOfTunnelTile(const Vehicle *v)
byte z = v->z_pos;
for (tile = v->tile;; tile += delta) {
- if (IsTileType(tile, MP_TUNNELBRIDGE) && (_m[tile].m5 & 0xF0) == 0 &&
+ if (IsTileType(tile, MP_TUNNELBRIDGE) && GB(_m[tile].m5, 4, 4) == 0 &&
GetTileZ(tile) == z)
break;
}