Changeset - r17085:00941d1d17ff
[Not reviewed]
master
0 1 0
rubidium - 13 years ago 2011-01-18 14:27:43
rubidium@openttd.org
(svn r21832) -Feature: limit vehicle lateness to the length of a full timetable cycle, e.g. when a cycle takes 50 days and the vehicle is 65 days later reduce the lateness to 15 days
1 file changed with 12 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/timetable_cmd.cpp
Show inline comments
 
@@ -310,6 +310,18 @@ void UpdateVehicleTimetable(Vehicle *v, 
 

	
 
	v->lateness_counter -= (timetabled - time_taken);
 

	
 
	/* When we are more late than this timetabled bit takes we (somewhat expensively)
 
	 * check how many ticks the (fully filled) timetable has. If a timetable cycle is
 
	 * shorter than the amount of ticks we are late we reduce the lateness by the
 
	 * length of a full cycle till lateness is less than the length of a timetable
 
	 * cycle. When the timetable isn't fully filled the cycle will be INVALID_TICKS. */
 
	if (v->lateness_counter > (int)timetabled) {
 
		Ticks cycle = v->orders.list->GetTimetableTotalDuration();
 
		if (cycle != INVALID_TICKS && v->lateness_counter > cycle) {
 
			v->lateness_counter %= cycle;
 
		}
 
	}
 

	
 
	for (v = v->FirstShared(); v != NULL; v = v->NextShared()) {
 
		SetWindowDirty(WC_VEHICLE_TIMETABLE, v->index);
 
	}
0 comments (0 inline, 0 general)