(svn r12127) -Codechange: Use a variable instead of calling the same function a few times. Again. Just a different value.

pull/155/head
belugas 17 years ago
parent d4fd1120d1
commit f24e231e9a

@ -455,13 +455,14 @@ CommandCost CmdBuildTunnel(TileIndex start_tile, uint32 flags, uint32 p1, uint32
DiagDirection direction;
Slope start_tileh;
Slope end_tileh;
TransportType transport_type = (TransportType)GB(p1, 9, 1);
uint start_z;
uint end_z;
CommandCost cost(EXPENSES_CONSTRUCTION);
CommandCost ret;
_build_tunnel_endtile = 0;
if (!HasBit(p1, 9)) {
if (transport_type == TRANSPORT_RAIL) {
if (!ValParamRailtype((RailType)p1)) return CMD_ERROR;
} else {
const RoadTypes rts = (RoadTypes)GB(p1, 0, 3);
@ -544,7 +545,7 @@ CommandCost CmdBuildTunnel(TileIndex start_tile, uint32 flags, uint32 p1, uint32
cost.AddCost(ret);
if (flags & DC_EXEC) {
if (GB(p1, 9, 1) == TRANSPORT_RAIL) {
if (transport_type == TRANSPORT_RAIL) {
MakeRailTunnel(start_tile, _current_player, direction, (RailType)GB(p1, 0, 4));
MakeRailTunnel(end_tile, _current_player, ReverseDiagDir(direction), (RailType)GB(p1, 0, 4));
AddSideToSignalBuffer(start_tile, INVALID_DIAGDIR, _current_player);
@ -804,6 +805,7 @@ static void DrawBridgeTramBits(int x, int y, byte z, int offset, bool overlay)
static void DrawTile_TunnelBridge(TileInfo *ti)
{
SpriteID image;
TransportType transport_type = GetTunnelBridgeTransportType(ti->tile);
DiagDirection tunnelbridge_direction = GetTunnelBridgeDirection(ti->tile);
if (IsTunnel(ti->tile)) {
@ -828,7 +830,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti)
bool catenary = false;
if (GetTunnelBridgeTransportType(ti->tile) == TRANSPORT_RAIL) {
if (transport_type == TRANSPORT_RAIL) {
image = GetRailTypeInfo(GetRailType(ti->tile))->base_sprites.tunnel;
} else {
image = SPR_TUNNEL_ENTRY_REAR_ROAD;
@ -838,7 +840,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti)
image += tunnelbridge_direction * 2;
DrawGroundSprite(image, PAL_NONE);
if (GetTunnelBridgeTransportType(ti->tile) == TRANSPORT_ROAD) {
if (transport_type == TRANSPORT_ROAD) {
RoadTypes rts = GetRoadTypes(ti->tile);
if (HasBit(rts, ROADTYPE_TRAM)) {
@ -872,7 +874,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti)
int base_offset;
bool ice = HasTunnelBridgeSnowOrDesert(ti->tile);
if (GetTunnelBridgeTransportType(ti->tile) == TRANSPORT_RAIL) {
if (transport_type == TRANSPORT_RAIL) {
base_offset = GetRailTypeInfo(GetRailType(ti->tile))->bridge_offset;
assert(base_offset != 8); // This one is used for roads
} else {
@ -901,7 +903,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti)
/* draw ramp */
/* Draw Trambits as SpriteCombine */
if (GetTunnelBridgeTransportType(ti->tile) == TRANSPORT_ROAD) StartSpriteCombine();
if (transport_type == TRANSPORT_ROAD) StartSpriteCombine();
/* HACK set the height of the BB of a sloped ramp to 1 so a vehicle on
* it doesn't disappear behind it
@ -910,7 +912,7 @@ static void DrawTile_TunnelBridge(TileInfo *ti)
psid->sprite, psid->pal, ti->x, ti->y, 16, 16, ti->tileh == SLOPE_FLAT ? 0 : 8, ti->z, IsTransparencySet(TO_BRIDGES)
);
if (GetTunnelBridgeTransportType(ti->tile) == TRANSPORT_ROAD) {
if (transport_type == TRANSPORT_ROAD) {
RoadTypes rts = GetRoadTypes(ti->tile);
if (HasBit(rts, ROADTYPE_TRAM)) {
@ -992,6 +994,7 @@ void DrawBridgeMiddle(const TileInfo* ti)
uint base_offset;
TileIndex rampnorth;
TileIndex rampsouth;
TransportType transport_type;
Axis axis;
uint piece;
BridgeType type;
@ -1003,6 +1006,7 @@ void DrawBridgeMiddle(const TileInfo* ti)
rampnorth = GetNorthernBridgeEnd(ti->tile);
rampsouth = GetSouthernBridgeEnd(ti->tile);
transport_type = GetTunnelBridgeTransportType(rampsouth);
axis = GetBridgeAxis(ti->tile);
piece = CalcBridgePiece(
@ -1011,7 +1015,7 @@ void DrawBridgeMiddle(const TileInfo* ti)
);
type = GetBridgeType(rampsouth);
if (GetTunnelBridgeTransportType(rampsouth) == TRANSPORT_RAIL) {
if (transport_type == TRANSPORT_RAIL) {
base_offset = GetRailTypeInfo(GetRailType(rampsouth))->bridge_offset;
} else {
base_offset = 8;
@ -1029,7 +1033,7 @@ void DrawBridgeMiddle(const TileInfo* ti)
AddSortableSpriteToDraw(SPR_EMPTY_BOUNDING_BOX, PAL_NONE, x, y, 16, 16, 1, bridge_z - TILE_HEIGHT + BB_Z_SEPARATOR);
/* Draw Trambits as SpriteCombine */
if (GetTunnelBridgeTransportType(rampsouth) == TRANSPORT_ROAD) StartSpriteCombine();
if (transport_type == TRANSPORT_ROAD) StartSpriteCombine();
/* Draw floor and far part of bridge*/
if (axis == AXIS_X) {
@ -1040,7 +1044,7 @@ void DrawBridgeMiddle(const TileInfo* ti)
psid++;
if (GetTunnelBridgeTransportType(rampsouth) == TRANSPORT_ROAD) {
if (transport_type == TRANSPORT_ROAD) {
RoadTypes rts = GetRoadTypes(rampsouth);
if (HasBit(rts, ROADTYPE_TRAM)) {
@ -1064,7 +1068,7 @@ void DrawBridgeMiddle(const TileInfo* ti)
}
/* Draw TramFront as SpriteCombine */
if (GetTunnelBridgeTransportType(rampsouth) == TRANSPORT_ROAD) EndSpriteCombine();
if (transport_type == TRANSPORT_ROAD) EndSpriteCombine();
psid++;
if (ti->z + 5 == z) {
@ -1184,8 +1188,8 @@ static void ClickTile_TunnelBridge(TileIndex tile)
static uint32 GetTileTrackStatus_TunnelBridge(TileIndex tile, TransportType mode, uint sub_mode)
{
if (GetTunnelBridgeTransportType(tile) != mode) return 0;
if (GetTunnelBridgeTransportType(tile) == TRANSPORT_ROAD && (GetRoadTypes(tile) & sub_mode) == 0) return 0;
TransportType transport_type = GetTunnelBridgeTransportType(tile);
if (transport_type != mode || (transport_type == TRANSPORT_ROAD && (GetRoadTypes(tile) & sub_mode) == 0)) return 0;
return AxisToTrackBits(DiagDirToAxis(GetTunnelBridgeDirection(tile))) * 0x101;
}

Loading…
Cancel
Save