summaryrefslogtreecommitdiff
path: root/src/tunnelbridge_cmd.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-05-22 20:22:20 +0000
committerrubidium <rubidium@openttd.org>2009-05-22 20:22:20 +0000
commit7a37220881c995f317bf5bd0f3077fa6c9e9d098 (patch)
tree347d24d175af30acacfedfb4ddf5c9e98d876036 /src/tunnelbridge_cmd.cpp
parentd37b840cf30ea987ab676f1a3631e112cac06244 (diff)
downloadopenttd-7a37220881c995f317bf5bd0f3077fa6c9e9d098.tar.xz
(svn r16390) -Codechange: move u.road to RoadVehicle.
Diffstat (limited to 'src/tunnelbridge_cmd.cpp')
-rw-r--r--src/tunnelbridge_cmd.cpp42
1 files changed, 23 insertions, 19 deletions
diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp
index 26f5b6635..9a20e31cb 100644
--- a/src/tunnelbridge_cmd.cpp
+++ b/src/tunnelbridge_cmd.cpp
@@ -16,6 +16,7 @@
#include "variables.h"
#include "train.h"
#include "ship.h"
+#include "roadveh.h"
#include "water_map.h"
#include "yapf/yapf.h"
#include "newgrf_sound.h"
@@ -1412,16 +1413,17 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti
return VETSB_ENTERED_WORMHOLE;
}
} else if (v->type == VEH_ROAD) {
+ RoadVehicle *rv = (RoadVehicle *)v;
fc = (x & 0xF) + (y << 4);
vdir = DirToDiagDir(v->direction);
/* Enter tunnel? */
- if (v->u.road.state != RVSB_WORMHOLE && dir == vdir) {
+ if (rv->state != RVSB_WORMHOLE && dir == vdir) {
if (fc == _tunnel_fractcoord_4[dir] ||
fc == _tunnel_fractcoord_5[dir]) {
- v->tile = tile;
- v->u.road.state = RVSB_WORMHOLE;
- v->vehstatus |= VS_HIDDEN;
+ rv->tile = tile;
+ rv->state = RVSB_WORMHOLE;
+ rv->vehstatus |= VS_HIDDEN;
return VETSB_ENTERED_WORMHOLE;
} else {
return VETSB_CONTINUE;
@@ -1434,10 +1436,10 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti
fc == _tunnel_fractcoord_7[dir]
) &&
z == 0) {
- v->tile = tile;
- v->u.road.state = _road_exit_tunnel_state[dir];
- v->u.road.frame = _road_exit_tunnel_frame[dir];
- v->vehstatus &= ~VS_HIDDEN;
+ rv->tile = tile;
+ rv->state = _road_exit_tunnel_state[dir];
+ rv->frame = _road_exit_tunnel_frame[dir];
+ rv->vehstatus &= ~VS_HIDDEN;
return VETSB_ENTERED_WORMHOLE;
}
}
@@ -1467,11 +1469,11 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti
break;
case VEH_ROAD:
- v->u.road.state = RVSB_WORMHOLE;
+ ((RoadVehicle *)v)->state = RVSB_WORMHOLE;
break;
case VEH_SHIP:
- static_cast<Ship*>(v)->state = TRACK_BIT_WORMHOLE;
+ ((Ship *)v)->state = TRACK_BIT_WORMHOLE;
break;
default: NOT_REACHED();
@@ -1487,20 +1489,22 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti
}
break;
- case VEH_ROAD:
- if (v->u.road.state == RVSB_WORMHOLE) {
- v->u.road.state = _road_exit_tunnel_state[dir];
- v->u.road.frame = 0;
+ case VEH_ROAD: {
+ RoadVehicle *rv = (RoadVehicle *)v;
+ if (rv->state == RVSB_WORMHOLE) {
+ rv->state = _road_exit_tunnel_state[dir];
+ rv->frame = 0;
return VETSB_ENTERED_WORMHOLE;
}
- break;
+ } break;
- case VEH_SHIP:
- if (static_cast<Ship*>(v)->state == TRACK_BIT_WORMHOLE) {
- static_cast<Ship*>(v)->state = (DiagDirToAxis(dir) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y);
+ case VEH_SHIP: {
+ Ship *ship = (Ship *)v;
+ if (ship->state == TRACK_BIT_WORMHOLE) {
+ ship->state = (DiagDirToAxis(dir) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y);
return VETSB_ENTERED_WORMHOLE;
}
- break;
+ } break;
default: NOT_REACHED();
}