(svn r11830) -Fix [FS#1625]: road vehicles would not wait in line, but at a single point on bridges. Based on a patch by SmatZ.
This commit is contained in:
		| @@ -895,6 +895,7 @@ static Vehicle* RoadVehFindCloseTo(Vehicle* v, int x, int y, Direction dir) | |||||||
| 	rvf.veh = v; | 	rvf.veh = v; | ||||||
| 	if (front->u.road.state == RVSB_WORMHOLE) { | 	if (front->u.road.state == RVSB_WORMHOLE) { | ||||||
| 		u = (Vehicle*)VehicleFromPos(v->tile, &rvf, EnumCheckRoadVehClose); | 		u = (Vehicle*)VehicleFromPos(v->tile, &rvf, EnumCheckRoadVehClose); | ||||||
|  | 		if (u == NULL) u = (Vehicle*)VehicleFromPos(GetOtherTunnelBridgeEnd(v->tile), &rvf, EnumCheckRoadVehClose); | ||||||
| 	} else { | 	} else { | ||||||
| 		u = (Vehicle*)VehicleFromPosXY(x, y, &rvf, EnumCheckRoadVehClose); | 		u = (Vehicle*)VehicleFromPosXY(x, y, &rvf, EnumCheckRoadVehClose); | ||||||
| 	} | 	} | ||||||
| @@ -1511,11 +1512,13 @@ static bool IndividualRoadVehicleController(Vehicle *v, const Vehicle *prev) | |||||||
| 		/* Vehicle is entering a depot or is on a bridge or in a tunnel */ | 		/* Vehicle is entering a depot or is on a bridge or in a tunnel */ | ||||||
| 		GetNewVehiclePosResult gp = GetNewVehiclePos(v); | 		GetNewVehiclePosResult gp = GetNewVehiclePos(v); | ||||||
|  |  | ||||||
|  | 		if (IsRoadVehFront(v)) { | ||||||
| 			const Vehicle *u = RoadVehFindCloseTo(v, gp.x, gp.y, v->direction); | 			const Vehicle *u = RoadVehFindCloseTo(v, gp.x, gp.y, v->direction); | ||||||
| 		if (u != NULL && u->First()->cur_speed < v->cur_speed) { | 			if (u != NULL) { | ||||||
| 				v->cur_speed = u->First()->cur_speed; | 				v->cur_speed = u->First()->cur_speed; | ||||||
| 				return false; | 				return false; | ||||||
| 			} | 			} | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 		if ((IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) && HasBit(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) { | 		if ((IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) && HasBit(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) { | ||||||
| 			/* Vehicle has just entered a bridge or tunnel */ | 			/* Vehicle has just entered a bridge or tunnel */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 rubidium
					rubidium