(svn r10734) -Fix [FS#1030]: Revert r10513) and add special cases for collision detection on bridges/tunnels.

This commit is contained in:
peter1138
2007-07-30 08:49:41 +00:00
parent 2800a49f03
commit 9b9bca40b9
3 changed files with 15 additions and 9 deletions

View File

@@ -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;