summaryrefslogtreecommitdiff
path: root/src/tunnelbridge_cmd.cpp
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2009-06-06 16:54:22 +0000
committersmatz <smatz@openttd.org>2009-06-06 16:54:22 +0000
commit0c10006907b7d149f91d277a0c28a79b40eaa4c0 (patch)
treedc8cb6a7a9315a10688af00187db94be8911acef /src/tunnelbridge_cmd.cpp
parentc90819ff6d8d49ac25aa9194bdf04e8dfd7149ea (diff)
downloadopenttd-0c10006907b7d149f91d277a0c28a79b40eaa4c0.tar.xz
(svn r16527) -Codechange: use static member functions instead of simple casts when converting Vehicle to specialised vehicle types. Includes safety check
Diffstat (limited to 'src/tunnelbridge_cmd.cpp')
-rw-r--r--src/tunnelbridge_cmd.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp
index d883c650b..5d769053f 100644
--- a/src/tunnelbridge_cmd.cpp
+++ b/src/tunnelbridge_cmd.cpp
@@ -1385,7 +1385,7 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti
DiagDirection vdir;
if (v->type == VEH_TRAIN) {
- Train *t = (Train *)v;
+ Train *t = Train::From(v);
fc = (x & 0xF) + (y << 4);
vdir = DirToDiagDir(t->direction);
@@ -1414,7 +1414,7 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti
return VETSB_ENTERED_WORMHOLE;
}
} else if (v->type == VEH_ROAD) {
- RoadVehicle *rv = (RoadVehicle *)v;
+ RoadVehicle *rv = RoadVehicle::From(v);
fc = (x & 0xF) + (y << 4);
vdir = DirToDiagDir(v->direction);
@@ -1464,18 +1464,18 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti
}
switch (v->type) {
case VEH_TRAIN: {
- Train *t = (Train *)v;
+ Train *t = Train::From(v);
t->track = TRACK_BIT_WORMHOLE;
ClrBit(t->flags, VRF_GOINGUP);
ClrBit(t->flags, VRF_GOINGDOWN);
} break;
case VEH_ROAD:
- ((RoadVehicle *)v)->state = RVSB_WORMHOLE;
+ RoadVehicle::From(v)->state = RVSB_WORMHOLE;
break;
case VEH_SHIP:
- ((Ship *)v)->state = TRACK_BIT_WORMHOLE;
+ Ship::From(v)->state = TRACK_BIT_WORMHOLE;
break;
default: NOT_REACHED();
@@ -1485,7 +1485,7 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti
v->tile = tile;
switch (v->type) {
case VEH_TRAIN: {
- Train *t = (Train *)v;
+ Train *t = Train::From(v);
if (t->track == TRACK_BIT_WORMHOLE) {
t->track = (DiagDirToAxis(dir) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y);
return VETSB_ENTERED_WORMHOLE;
@@ -1493,7 +1493,7 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti
} break;
case VEH_ROAD: {
- RoadVehicle *rv = (RoadVehicle *)v;
+ RoadVehicle *rv = RoadVehicle::From(v);
if (rv->state == RVSB_WORMHOLE) {
rv->state = _road_exit_tunnel_state[dir];
rv->frame = 0;
@@ -1502,7 +1502,7 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti
} break;
case VEH_SHIP: {
- Ship *ship = (Ship *)v;
+ Ship *ship = Ship::From(v);
if (ship->state == TRACK_BIT_WORMHOLE) {
ship->state = (DiagDirToAxis(dir) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y);
return VETSB_ENTERED_WORMHOLE;