Changeset - r7109:4decd3d1ecbe
[Not reviewed]
master
0 1 0
rubidium - 17 years ago 2007-06-28 22:03:34
rubidium@openttd.org
(svn r10381) -Fix [FS#951]: skipping an order made train reverse immediatelly. Patch by boekabart.
1 file changed with 10 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/train_cmd.cpp
Show inline comments
 
@@ -2392,12 +2392,19 @@ static bool ProcessTrainOrder(Vehicle *v
 
		default: break;
 
	}
 

	
 
	/**
 
	 * Reversing because of order change is allowed only just after leaving a
 
	 * station (and the difficulty setting to allowed, of course)
 
	 * this can be detected because only after OT_LEAVESTATION, current_order
 
	 * will be reset to nothing. (That also happens if no order, but in that case
 
	 * it won't hit the point in code where may_reverse is checked)
 
	 */
 
	bool may_reverse = v->current_order.type == OT_NOTHING;
 

	
 
	/* 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;
 
	}
 

	
 
	/* check if we've reached a non-stop station while TTDPatch nonstop is enabled.. */
 
@@ -2453,7 +2460,7 @@ static bool ProcessTrainOrder(Vehicle *v
 
			return false;
 
	}
 

	
 
	return !at_waypoint && CheckReverseTrain(v);
 
	return may_reverse && CheckReverseTrain(v);
 
}
 

	
 
void Train::MarkDirty()
0 comments (0 inline, 0 general)