From 9b9bca40b94fe7e44887004d28efc6b175005e1d Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 30 Jul 2007 08:49:41 +0000 Subject: (svn r10734) -Fix [FS#1030]: Revert r10513) and add special cases for collision detection on bridges/tunnels. --- src/train_cmd.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/train_cmd.cpp') diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 69ed022e8..047725269 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -2760,7 +2760,16 @@ static void CheckTrainCollision(Vehicle *v) tcc.num = 0; /* find colliding vehicles */ - VehicleFromPosXY(v->x_pos, v->y_pos, &tcc, FindTrainCollideEnum); + if (v->u.rail.track == TRACK_BIT_WORMHOLE) { + VehicleFromPos(v->tile, &tcc, FindTrainCollideEnum); + if (IsBridgeTile(v->tile)) { + VehicleFromPos(GetOtherBridgeEnd(v->tile), &tcc, FindTrainCollideEnum); + } else { + VehicleFromPos(GetOtherTunnelEnd(v->tile), &tcc, FindTrainCollideEnum); + } + } else { + VehicleFromPosXY(v->x_pos, v->y_pos, &tcc, FindTrainCollideEnum); + } /* any dead -> no crash */ if (tcc.num == 0) return; -- cgit v1.2.3-70-g09d2