(svn r21504) -Codechange: move the "lost" bit from the train's flags to vehicle flags

This commit is contained in:
rubidium 2010-12-13 21:52:39 +00:00
parent a2b50b05c1
commit 49a77e89c4
4 changed files with 17 additions and 8 deletions

View File

@ -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();

View File

@ -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,

View File

@ -2412,9 +2412,9 @@ static Track ChooseTrainTrack(Train *v, TileIndex tile, DiagDirection enterdir,
/* 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, TileIndex tile, DiagDirection enterdir,
}
} 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? */
}
}

View File

@ -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. */