Changeset - r16761:3ce15f9cf63f
[Not reviewed]
master
0 4 0
rubidium - 13 years ago 2010-12-13 21:52:39
rubidium@openttd.org
(svn r21504) -Codechange: move the "lost" bit from the train's flags to vehicle flags
4 files changed with 17 insertions and 8 deletions:
0 comments (0 inline, 0 general)
src/saveload/afterload.cpp
Show inline comments
 
@@ -2392,6 +2392,17 @@ bool AfterLoadGame()
 
		}
 
	}
 

	
 
	if (IsSavegameVersionBefore(156)) {
 
		/* The train's pathfinder lost flag got moved. */
 
		Train *t;
 
		FOR_ALL_TRAINS(t) {
 
			if (!HasBit(t->flags, 5)) continue;
 

	
 
			ClrBit(t->flags, 5);
 
			SetBit(t->vehicle_flags, VF_PATHFINDER_LOST);
 
		}
 
	}
 

	
 
	/* Road stops is 'only' updating some caches */
 
	AfterLoadRoadStops();
 
	AfterLoadLabelMaps();
src/train.h
Show inline comments
 
@@ -30,9 +30,6 @@ enum VehicleRailFlags {
 
	/* used to reverse the visible direction of the vehicle */
 
	VRF_REVERSE_DIRECTION = 4,
 

	
 
	/* used to mark train as lost because PF can't find the route */
 
	VRF_NO_PATH_TO_DESTINATION = 5,
 

	
 
	/* used to mark that electric train engine is allowed to run on normal rail */
 
	VRF_EL_ENGINE_ALLOWED_NORMAL_RAIL = 6,
 

	
src/train_cmd.cpp
Show inline comments
 
@@ -2412,9 +2412,9 @@ static Track ChooseTrainTrack(Train *v, 
 
		/* handle "path not found" state */
 
		if (path_not_found) {
 
			/* PF didn't find the route */
 
			if (!HasBit(v->flags, VRF_NO_PATH_TO_DESTINATION)) {
 
				/* it is first time the problem occurred, set the "path not found" flag */
 
				SetBit(v->flags, VRF_NO_PATH_TO_DESTINATION);
 
			if (!HasBit(v->vehicle_flags, VF_PATHFINDER_LOST)) {
 
				/* It is first time the problem occurred, set the "lost" flag. */
 
				SetBit(v->vehicle_flags, VF_PATHFINDER_LOST);
 
				/* and notify user about the event */
 
				AI::NewEvent(v->owner, new AIEventVehicleLost(v->index));
 
				if (_settings_client.gui.lost_train_warn && v->owner == _local_company) {
 
@@ -2428,9 +2428,9 @@ static Track ChooseTrainTrack(Train *v, 
 
			}
 
		} else {
 
			/* route found, is the train marked with "path not found" flag? */
 
			if (HasBit(v->flags, VRF_NO_PATH_TO_DESTINATION)) {
 
			if (HasBit(v->vehicle_flags, VF_PATHFINDER_LOST)) {
 
				/* clear the flag as the PF's problem was solved */
 
				ClrBit(v->flags, VRF_NO_PATH_TO_DESTINATION);
 
				ClrBit(v->vehicle_flags, VF_PATHFINDER_LOST);
 
				/* can we also delete the "News" item somehow? */
 
			}
 
		}
src/vehicle_base.h
Show inline comments
 
@@ -44,6 +44,7 @@ enum VehicleFlags {
 
	VF_AUTOFILL_TIMETABLE,      ///< Whether the vehicle should fill in the timetable automatically.
 
	VF_AUTOFILL_PRES_WAIT_TIME, ///< Whether non-destructive auto-fill should preserve waiting times
 
	VF_STOP_LOADING,            ///< Don't load anymore during the next load cycle.
 
	VF_PATHFINDER_LOST,         ///< Vehicle's pathfinder is lost.
 
};
 

	
 
/** Bit numbers used to indicate which of the #NewGRFCache values are valid. */
0 comments (0 inline, 0 general)