equal
deleted
inserted
replaced
893 rvf.y = y; |
893 rvf.y = y; |
894 rvf.dir = dir; |
894 rvf.dir = dir; |
895 rvf.veh = v; |
895 rvf.veh = v; |
896 if (front->u.road.state == RVSB_WORMHOLE) { |
896 if (front->u.road.state == RVSB_WORMHOLE) { |
897 u = (Vehicle*)VehicleFromPos(v->tile, &rvf, EnumCheckRoadVehClose); |
897 u = (Vehicle*)VehicleFromPos(v->tile, &rvf, EnumCheckRoadVehClose); |
|
898 if (u == NULL) u = (Vehicle*)VehicleFromPos(GetOtherTunnelBridgeEnd(v->tile), &rvf, EnumCheckRoadVehClose); |
898 } else { |
899 } else { |
899 u = (Vehicle*)VehicleFromPosXY(x, y, &rvf, EnumCheckRoadVehClose); |
900 u = (Vehicle*)VehicleFromPosXY(x, y, &rvf, EnumCheckRoadVehClose); |
900 } |
901 } |
901 |
902 |
902 /* This code protects a roadvehicle from being blocked for ever |
903 /* This code protects a roadvehicle from being blocked for ever |
1509 |
1510 |
1510 if (v->u.road.state == RVSB_WORMHOLE) { |
1511 if (v->u.road.state == RVSB_WORMHOLE) { |
1511 /* Vehicle is entering a depot or is on a bridge or in a tunnel */ |
1512 /* Vehicle is entering a depot or is on a bridge or in a tunnel */ |
1512 GetNewVehiclePosResult gp = GetNewVehiclePos(v); |
1513 GetNewVehiclePosResult gp = GetNewVehiclePos(v); |
1513 |
1514 |
1514 const Vehicle *u = RoadVehFindCloseTo(v, gp.x, gp.y, v->direction); |
1515 if (IsRoadVehFront(v)) { |
1515 if (u != NULL && u->First()->cur_speed < v->cur_speed) { |
1516 const Vehicle *u = RoadVehFindCloseTo(v, gp.x, gp.y, v->direction); |
1516 v->cur_speed = u->First()->cur_speed; |
1517 if (u != NULL) { |
1517 return false; |
1518 v->cur_speed = u->First()->cur_speed; |
|
1519 return false; |
|
1520 } |
1518 } |
1521 } |
1519 |
1522 |
1520 if ((IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) && HasBit(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) { |
1523 if ((IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) && HasBit(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) { |
1521 /* Vehicle has just entered a bridge or tunnel */ |
1524 /* Vehicle has just entered a bridge or tunnel */ |
1522 v->cur_image = v->GetImage(v->direction); |
1525 v->cur_image = v->GetImage(v->direction); |