Changeset - r7070:40901e3f2905
[Not reviewed]
master
0 5 0
maedhros - 17 years ago 2007-06-25 23:14:13
maedhros@openttd.org
(svn r10335) -Fix (r10331): Increment the current order index *after* using it in UpdateVehicleTimetable.
5 files changed with 8 insertions and 8 deletions:
0 comments (0 inline, 0 general)
src/aircraft_cmd.cpp
Show inline comments
 
@@ -1341,14 +1341,14 @@ static void ProcessAircraftOrder(Vehicle
 
{
 
	switch (v->current_order.type) {
 
		case OT_GOTO_DEPOT:
 
			if (!(v->current_order.flags & OF_PART_OF_ORDERS)) return;
 
			if (v->current_order.flags & OF_SERVICE_IF_NEEDED &&
 
					!VehicleNeedsService(v)) {
 
				UpdateVehicleTimetable(v, true);
 
				v->cur_order_index++;
 
				UpdateVehicleTimetable(v, true);
 
			}
 
			break;
 

	
 
		case OT_LOADING: return;
 

	
 
		default: break;
src/roadveh_cmd.cpp
Show inline comments
 
@@ -755,14 +755,14 @@ static void ProcessRoadVehOrder(Vehicle 
 
	switch (v->current_order.type) {
 
		case OT_GOTO_DEPOT:
 
			/* Let a depot order in the orderlist interrupt. */
 
			if (!(v->current_order.flags & OF_PART_OF_ORDERS)) return;
 
			if (v->current_order.flags & OF_SERVICE_IF_NEEDED &&
 
					!VehicleNeedsService(v)) {
 
				UpdateVehicleTimetable(v, true);
 
				v->cur_order_index++;
 
				UpdateVehicleTimetable(v, true);
 
			}
 
			break;
 

	
 
		case OT_LOADING:
 
		case OT_LEAVESTATION:
 
			return;
src/ship_cmd.cpp
Show inline comments
 
@@ -255,14 +255,14 @@ static void ProcessShipOrder(Vehicle *v)
 

	
 
	switch (v->current_order.type) {
 
		case OT_GOTO_DEPOT:
 
			if (!(v->current_order.flags & OF_PART_OF_ORDERS)) return;
 
			if (v->current_order.flags & OF_SERVICE_IF_NEEDED &&
 
					!VehicleNeedsService(v)) {
 
				UpdateVehicleTimetable(v, true);
 
				v->cur_order_index++;
 
				UpdateVehicleTimetable(v, true);
 
			}
 
			break;
 

	
 
		case OT_LOADING:
 
		case OT_LEAVESTATION:
 
			return;
 
@@ -693,15 +693,15 @@ static void ShipController(Vehicle *v)
 
				/* We have a target, let's see if we reached it... */
 
				if (v->current_order.type == OT_GOTO_STATION &&
 
						IsBuoyTile(v->dest_tile) &&
 
						DistanceManhattan(v->dest_tile, gp.new_tile) <= 3) {
 
					/* We got within 3 tiles of our target buoy, so let's skip to our
 
					 * next order */
 
					UpdateVehicleTimetable(v, true);
 
					v->cur_order_index++;
 
					v->current_order.type = OT_DUMMY;
 
					UpdateVehicleTimetable(v, true);
 
					InvalidateVehicleOrder(v);
 
				} else {
 
					/* Non-buoy orders really need to reach the tile */
 
					if (v->dest_tile == gp.new_tile) {
 
						if (v->current_order.type == OT_GOTO_DEPOT) {
 
							if ((gp.x & 0xF) == 8 && (gp.y & 0xF) == 8) {
src/train_cmd.cpp
Show inline comments
 
@@ -2377,14 +2377,14 @@ static bool ProcessTrainOrder(Vehicle *v
 
{
 
	switch (v->current_order.type) {
 
		case OT_GOTO_DEPOT:
 
			if (!(v->current_order.flags & OF_PART_OF_ORDERS)) return false;
 
			if ((v->current_order.flags & OF_SERVICE_IF_NEEDED) &&
 
					!VehicleNeedsService(v)) {
 
				UpdateVehicleTimetable(v, true);
 
				v->cur_order_index++;
 
				UpdateVehicleTimetable(v, true);
 
			}
 
			break;
 

	
 
		case OT_LOADING:
 
		case OT_LEAVESTATION:
 
			return false;
 
@@ -2392,24 +2392,24 @@ static bool ProcessTrainOrder(Vehicle *v
 
		default: break;
 
	}
 

	
 
	/* check if we've reached the waypoint? */
 
	bool at_waypoint = false;
 
	if (v->current_order.type == OT_GOTO_WAYPOINT && v->tile == v->dest_tile) {
 
		UpdateVehicleTimetable(v, true);
 
		v->cur_order_index++;
 
		at_waypoint = true;
 
		UpdateVehicleTimetable(v, true);
 
	}
 

	
 
	/* check if we've reached a non-stop station while TTDPatch nonstop is enabled.. */
 
	if (_patches.new_nonstop &&
 
			v->current_order.flags & OF_NON_STOP &&
 
			IsTileType(v->tile, MP_STATION) &&
 
			v->current_order.dest == GetStationIndex(v->tile)) {
 
		UpdateVehicleTimetable(v, true);
 
		v->cur_order_index++;
 
		UpdateVehicleTimetable(v, true);
 
	}
 

	
 
	/* Get the current order */
 
	if (v->cur_order_index >= v->num_orders) v->cur_order_index = 0;
 

	
 
	const Order *order = GetVehicleOrder(v, v->cur_order_index);
src/vehicle.cpp
Show inline comments
 
@@ -2365,14 +2365,14 @@ void VehicleEnterDepot(Vehicle *v)
 
				ShowCostOrIncomeAnimation(v->x_pos, v->y_pos, v->z_pos, cost.GetCost());
 
			}
 
		}
 

	
 
		if (HASBIT(t.flags, OFB_PART_OF_ORDERS)) {
 
			/* Part of orders */
 
			UpdateVehicleTimetable(v, true);
 
			v->cur_order_index++;
 
			UpdateVehicleTimetable(v, true);
 
		} else if (HASBIT(t.flags, OFB_HALT_IN_DEPOT)) {
 
			/* Force depot visit */
 
			v->vehstatus |= VS_STOPPED;
 
			if (v->owner == _local_player) {
 
				StringID string;
 

	
0 comments (0 inline, 0 general)