mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r14743) -Codechange: use INVALID_TILE to indicate station doesn't have queried facility (or station/roadstop is invalid) instead of 0 (Yexo)
This commit is contained in:
parent
2e2086f3f8
commit
419f6e099f
@ -3689,11 +3689,11 @@ static void AiStateRemoveStation(Company *c)
|
||||
// Go through all stations and delete those that aren't in use
|
||||
FOR_ALL_STATIONS(st) {
|
||||
if (st->owner == _current_company && !in_use[st->index] &&
|
||||
( (st->bus_stops != NULL && (tile = st->bus_stops->xy) != 0) ||
|
||||
(st->truck_stops != NULL && (tile = st->truck_stops->xy) != 0) ||
|
||||
(tile = st->train_tile) != 0 ||
|
||||
(tile = st->dock_tile) != 0 ||
|
||||
(tile = st->airport_tile) != 0)) {
|
||||
( (st->bus_stops != NULL && (tile = st->bus_stops->xy) != INVALID_TILE) ||
|
||||
(st->truck_stops != NULL && (tile = st->truck_stops->xy) != INVALID_TILE) ||
|
||||
(tile = st->train_tile) != INVALID_TILE ||
|
||||
(tile = st->dock_tile) != INVALID_TILE ||
|
||||
(tile = st->airport_tile) != INVALID_TILE)) {
|
||||
DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
|
||||
}
|
||||
}
|
||||
|
@ -632,7 +632,7 @@ static void CheckIfAircraftNeedsService(Vehicle *v)
|
||||
|
||||
const Station *st = GetStation(v->current_order.GetDestination());
|
||||
/* only goto depot if the target airport has terminals (eg. it is airport) */
|
||||
if (st->IsValid() && st->airport_tile != 0 && st->Airport()->terminals != NULL) {
|
||||
if (st->IsValid() && st->airport_tile != INVALID_TILE && st->Airport()->terminals != NULL) {
|
||||
// printf("targetairport = %d, st->index = %d\n", v->u.air.targetairport, st->index);
|
||||
// v->u.air.targetairport = st->index;
|
||||
v->current_order.MakeGoToDepot(st->index, ODTFB_SERVICE);
|
||||
@ -946,8 +946,8 @@ static byte AircraftGetEntryPoint(const Vehicle *v, const AirportFTAClass *apc)
|
||||
|
||||
if (IsValidStationID(v->u.air.targetairport)) {
|
||||
const Station *st = GetStation(v->u.air.targetairport);
|
||||
/* Make sure we don't go to 0,0 if the airport has been removed. */
|
||||
tile = (st->airport_tile != 0) ? st->airport_tile : st->xy;
|
||||
/* Make sure we don't go to INVALID_TILE if the airport has been removed. */
|
||||
tile = (st->airport_tile != INVALID_TILE) ? st->airport_tile : st->xy;
|
||||
}
|
||||
|
||||
int delta_x = v->x_pos - TileX(tile) * TILE_SIZE;
|
||||
@ -977,17 +977,16 @@ static bool AircraftController(Vehicle *v)
|
||||
|
||||
/* NULL if station is invalid */
|
||||
const Station *st = IsValidStationID(v->u.air.targetairport) ? GetStation(v->u.air.targetairport) : NULL;
|
||||
/* 0 if there is no station */
|
||||
TileIndex tile = 0;
|
||||
/* INVALID_TILE if there is no station */
|
||||
TileIndex tile = INVALID_TILE;
|
||||
if (st != NULL) {
|
||||
tile = st->airport_tile;
|
||||
if (tile == 0) tile = st->xy;
|
||||
tile = (st->airport_tile != INVALID_TILE) ? st->airport_tile : st->xy;
|
||||
}
|
||||
/* DUMMY if there is no station or no airport */
|
||||
const AirportFTAClass *afc = tile == 0 ? GetAirport(AT_DUMMY) : st->Airport();
|
||||
const AirportFTAClass *afc = tile == INVALID_TILE ? GetAirport(AT_DUMMY) : st->Airport();
|
||||
|
||||
/* prevent going to 0,0 if airport is deleted. */
|
||||
if (st == NULL || st->airport_tile == 0) {
|
||||
/* prevent going to INVALID_TILE if airport is deleted. */
|
||||
if (st == NULL || st->airport_tile == INVALID_TILE) {
|
||||
/* Jump into our "holding pattern" state machine if possible */
|
||||
if (v->u.air.pos >= afc->nofelements) {
|
||||
v->u.air.pos = v->u.air.previous_pos = AircraftGetEntryPoint(v, afc);
|
||||
@ -1156,7 +1155,7 @@ static bool AircraftController(Vehicle *v)
|
||||
if ((amd->flag & AMED_HOLD) && (z > 150)) z--;
|
||||
|
||||
if (amd->flag & AMED_LAND) {
|
||||
if (st->airport_tile == 0) {
|
||||
if (st->airport_tile == INVALID_TILE) {
|
||||
/* Airport has been removed, abort the landing procedure */
|
||||
v->u.air.state = FLYING;
|
||||
UpdateAircraftCache(v);
|
||||
@ -1666,7 +1665,7 @@ static void AircraftEventHandler_Flying(Vehicle *v, const AirportFTAClass *apc)
|
||||
|
||||
/* runway busy or not allowed to use this airstation, circle */
|
||||
if (apc->flags & (v->subtype == AIR_HELICOPTER ? AirportFTAClass::HELICOPTERS : AirportFTAClass::AIRPLANES) &&
|
||||
st->airport_tile != 0 &&
|
||||
st->airport_tile != INVALID_TILE &&
|
||||
(st->owner == OWNER_NONE || st->owner == v->owner)) {
|
||||
// {32,FLYING,NOTHING_block,37}, {32,LANDING,N,33}, {32,HELILANDING,N,41},
|
||||
// if it is an airplane, look for LANDING, for helicopter HELILANDING
|
||||
@ -2107,7 +2106,7 @@ Station *GetTargetAirportIfValid(const Vehicle *v)
|
||||
|
||||
Station *st = GetStation(sid);
|
||||
|
||||
return st->airport_tile == 0 ? NULL : st;
|
||||
return st->airport_tile == INVALID_TILE ? NULL : st;
|
||||
}
|
||||
|
||||
/** need to be called to load aircraft from old version */
|
||||
|
@ -771,7 +771,7 @@ static void Disaster_Zeppeliner_Init()
|
||||
x = TileX(Random()) * TILE_SIZE + TILE_SIZE / 2;
|
||||
|
||||
FOR_ALL_STATIONS(st) {
|
||||
if (st->airport_tile != 0 &&
|
||||
if (st->airport_tile != INVALID_TILE &&
|
||||
st->airport_type <= 1 &&
|
||||
IsHumanCompany(st->owner)) {
|
||||
x = (TileX(st->airport_tile) + 2) * TILE_SIZE;
|
||||
|
@ -685,9 +685,11 @@ static bool LoadOldStation(LoadgameState *ls, int num)
|
||||
if (!LoadChunk(ls, st, station_chunk))
|
||||
return false;
|
||||
|
||||
if (st->IsValid()) {
|
||||
if (st->xy != 0) {
|
||||
st->town = GetTown(REMAP_TOWN_IDX(_old_town_index));
|
||||
st->string_id = RemapOldStringID(_old_string_id);
|
||||
} else {
|
||||
st->xy = INVALID_TILE;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -1409,6 +1409,16 @@ bool AfterLoadGame()
|
||||
/* From this point the old names array is cleared. */
|
||||
ResetOldNames();
|
||||
|
||||
/* no station is determined by 'tile == INVALID_TILE' now (instead of '0') */
|
||||
if (CheckSavegameVersion(105)) {
|
||||
Station *st;
|
||||
FOR_ALL_STATIONS(st) {
|
||||
if (st->airport_tile == 0) st->airport_tile = INVALID_TILE;
|
||||
if (st->dock_tile == 0) st->dock_tile = INVALID_TILE;
|
||||
if (st->train_tile == 0) st->train_tile = INVALID_TILE;
|
||||
}
|
||||
}
|
||||
|
||||
/* convert road side to my format. */
|
||||
if (_settings_game.vehicle.road_side) _settings_game.vehicle.road_side = 1;
|
||||
|
||||
|
@ -1377,13 +1377,13 @@ static TileIndex GetStationTileForVehicle(const Vehicle* v, const Station* st)
|
||||
switch (v->type) {
|
||||
default: NOT_REACHED();
|
||||
case VEH_TRAIN: return st->train_tile;
|
||||
case VEH_AIRCRAFT: return CanAircraftUseStation(v->engine_type, st) ? st->airport_tile : 0;
|
||||
case VEH_AIRCRAFT: return CanAircraftUseStation(v->engine_type, st) ? st->airport_tile : INVALID_TILE;
|
||||
case VEH_SHIP: return st->dock_tile;
|
||||
case VEH_ROAD:
|
||||
if (IsCargoInClass(v->cargo_type, CC_PASSENGERS)) {
|
||||
return (st->bus_stops != NULL) ? st->bus_stops->xy : 0;
|
||||
return (st->bus_stops != NULL) ? st->bus_stops->xy : INVALID_TILE;
|
||||
} else {
|
||||
return (st->truck_stops != NULL) ? st->truck_stops->xy : 0;
|
||||
return (st->truck_stops != NULL) ? st->truck_stops->xy : INVALID_TILE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1430,7 +1430,7 @@ void CheckOrders(const Vehicle* v)
|
||||
TileIndex required_tile = GetStationTileForVehicle(v, st);
|
||||
|
||||
n_st++;
|
||||
if (required_tile == 0) problem_type = 3;
|
||||
if (required_tile == INVALID_TILE) problem_type = 3;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1763,7 +1763,7 @@ bool ProcessOrders(Vehicle *v)
|
||||
|
||||
/* If it is unchanged, keep it. */
|
||||
if (order->Equals(v->current_order) && (v->type == VEH_AIRCRAFT || v->dest_tile != 0) &&
|
||||
(v->type != VEH_SHIP || !order->IsType(OT_GOTO_STATION) || GetStation(order->GetDestination())->dock_tile != 0)) {
|
||||
(v->type != VEH_SHIP || !order->IsType(OT_GOTO_STATION) || GetStation(order->GetDestination())->dock_tile != INVALID_TILE)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -237,7 +237,7 @@ TileIndex Ship::GetOrderStationLocation(StationID station)
|
||||
if (station == this->last_station_visited) this->last_station_visited = INVALID_STATION;
|
||||
|
||||
const Station *st = GetStation(station);
|
||||
if (st->dock_tile != 0) {
|
||||
if (st->dock_tile != INVALID_TILE) {
|
||||
return TILE_ADD(st->dock_tile, ToTileIndexDiff(GetDockOffset(st->dock_tile)));
|
||||
} else {
|
||||
this->cur_order_index++;
|
||||
|
@ -42,7 +42,7 @@ Station::Station(TileIndex tile)
|
||||
DEBUG(station, cDebugCtorLevel, "I+%3d", index);
|
||||
|
||||
xy = tile;
|
||||
airport_tile = dock_tile = train_tile = 0;
|
||||
airport_tile = dock_tile = train_tile = INVALID_TILE;
|
||||
bus_stops = truck_stops = NULL;
|
||||
had_vehicle_of_type = 0;
|
||||
time_since_load = 255;
|
||||
@ -97,7 +97,7 @@ Station::~Station()
|
||||
/* Remove all news items */
|
||||
DeleteStationNews(this->index);
|
||||
|
||||
xy = 0;
|
||||
xy = INVALID_TILE;
|
||||
|
||||
for (CargoID c = 0; c < NUM_CARGO; c++) {
|
||||
goods[c].cargo.Truncate(0);
|
||||
@ -161,8 +161,7 @@ void Station::MarkTilesDirty(bool cargo_change) const
|
||||
TileIndex tile = train_tile;
|
||||
int w, h;
|
||||
|
||||
/* XXX No station is recorded as 0, not INVALID_TILE... */
|
||||
if (tile == 0) return;
|
||||
if (tile == INVALID_TILE) return;
|
||||
|
||||
/* cargo_change is set if we're refreshing the tiles due to cargo moving
|
||||
* around. */
|
||||
@ -255,13 +254,13 @@ uint Station::GetCatchmentRadius() const
|
||||
uint ret = CA_NONE;
|
||||
|
||||
if (_settings_game.station.modified_catchment) {
|
||||
if (this->bus_stops != NULL) ret = max<uint>(ret, CA_BUS);
|
||||
if (this->truck_stops != NULL) ret = max<uint>(ret, CA_TRUCK);
|
||||
if (this->train_tile != 0) ret = max<uint>(ret, CA_TRAIN);
|
||||
if (this->dock_tile != 0) ret = max<uint>(ret, CA_DOCK);
|
||||
if (this->airport_tile != 0) ret = max<uint>(ret, this->Airport()->catchment);
|
||||
if (this->bus_stops != NULL) ret = max<uint>(ret, CA_BUS);
|
||||
if (this->truck_stops != NULL) ret = max<uint>(ret, CA_TRUCK);
|
||||
if (this->train_tile != INVALID_TILE) ret = max<uint>(ret, CA_TRAIN);
|
||||
if (this->dock_tile != INVALID_TILE) ret = max<uint>(ret, CA_DOCK);
|
||||
if (this->airport_tile != INVALID_TILE) ret = max<uint>(ret, this->Airport()->catchment);
|
||||
} else {
|
||||
if (this->bus_stops != NULL || this->truck_stops != NULL || this->train_tile != 0 || this->dock_tile != 0 || this->airport_tile != 0) {
|
||||
if (this->bus_stops != NULL || this->truck_stops != NULL || this->train_tile != INVALID_TILE || this->dock_tile != INVALID_TILE || this->airport_tile != INVALID_TILE) {
|
||||
ret = CA_UNMODIFIED;
|
||||
}
|
||||
}
|
||||
@ -469,7 +468,7 @@ RoadStop::~RoadStop()
|
||||
|
||||
DEBUG(ms, cDebugCtorLevel , "I- at %d[0x%x]", xy, xy);
|
||||
|
||||
xy = 0;
|
||||
xy = INVALID_TILE;
|
||||
}
|
||||
|
||||
/** Checks whether there is a free bay in this road stop */
|
||||
|
@ -58,14 +58,14 @@ struct RoadStop : PoolItem<RoadStop, RoadStopID, &_RoadStop_pool> {
|
||||
byte num_vehicles; ///< Number of vehicles currently slotted to this stop
|
||||
struct RoadStop *next; ///< Next stop of the given type at this station
|
||||
|
||||
RoadStop(TileIndex tile = 0);
|
||||
RoadStop(TileIndex tile = INVALID_TILE);
|
||||
virtual ~RoadStop();
|
||||
|
||||
/**
|
||||
* Determines whether a road stop exists
|
||||
* @return true if and only is the road stop exists
|
||||
*/
|
||||
inline bool IsValid() const { return this->xy != 0; }
|
||||
inline bool IsValid() const { return this->xy != INVALID_TILE; }
|
||||
|
||||
/* For accessing status */
|
||||
bool HasFreeBay() const;
|
||||
@ -120,7 +120,7 @@ public:
|
||||
|
||||
const AirportFTAClass *Airport() const
|
||||
{
|
||||
if (airport_tile == 0) return GetAirport(AT_DUMMY);
|
||||
if (airport_tile == INVALID_TILE) return GetAirport(AT_DUMMY);
|
||||
return GetAirport(airport_type);
|
||||
}
|
||||
|
||||
@ -171,7 +171,7 @@ public:
|
||||
|
||||
static const int cDebugCtorLevel = 5;
|
||||
|
||||
Station(TileIndex tile = 0);
|
||||
Station(TileIndex tile = INVALID_TILE);
|
||||
virtual ~Station();
|
||||
|
||||
void AddFacility(byte new_facility_bit, TileIndex facil_xy);
|
||||
@ -198,7 +198,7 @@ public:
|
||||
* Determines whether a station exists
|
||||
* @return true if and only is the station exists
|
||||
*/
|
||||
inline bool IsValid() const { return this->xy != 0; }
|
||||
inline bool IsValid() const { return this->xy != INVALID_TILE; }
|
||||
|
||||
uint GetCatchmentRadius() const;
|
||||
};
|
||||
|
@ -573,19 +573,19 @@ static void UpdateStationAcceptance(Station *st, bool show_msg)
|
||||
uint old_acc = GetAcceptanceMask(st);
|
||||
|
||||
/* Put all the tiles that span an area in the table. */
|
||||
if (st->train_tile != 0) {
|
||||
if (st->train_tile != INVALID_TILE) {
|
||||
MergePoint(&rect, st->train_tile);
|
||||
MergePoint(&rect, st->train_tile + TileDiffXY(st->trainst_w - 1, st->trainst_h - 1));
|
||||
}
|
||||
|
||||
if (st->airport_tile != 0) {
|
||||
if (st->airport_tile != INVALID_TILE) {
|
||||
const AirportFTAClass *afc = st->Airport();
|
||||
|
||||
MergePoint(&rect, st->airport_tile);
|
||||
MergePoint(&rect, st->airport_tile + TileDiffXY(afc->size_x - 1, afc->size_y - 1));
|
||||
}
|
||||
|
||||
if (st->dock_tile != 0) {
|
||||
if (st->dock_tile != INVALID_TILE) {
|
||||
MergePoint(&rect, st->dock_tile);
|
||||
if (IsDockTile(st->dock_tile)) {
|
||||
MergePoint(&rect, st->dock_tile + TileOffsByDiagDir(GetDockDirection(st->dock_tile)));
|
||||
@ -986,7 +986,7 @@ CommandCost CmdBuildRailroadStation(TileIndex tile_org, uint32 flags, uint32 p1,
|
||||
if (st->owner != _current_company)
|
||||
return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
|
||||
|
||||
if (st->train_tile != 0) {
|
||||
if (st->train_tile != INVALID_TILE) {
|
||||
/* check if we want to expanding an already existing station? */
|
||||
if (_is_old_ai_company || !_settings_game.station.join_stations)
|
||||
return_cmd_error(STR_3005_TOO_CLOSE_TO_ANOTHER_RAILROAD);
|
||||
@ -1177,7 +1177,7 @@ restart:
|
||||
}
|
||||
}
|
||||
} else {
|
||||
tile = 0;
|
||||
tile = INVALID_TILE;
|
||||
}
|
||||
|
||||
st->trainst_w = w;
|
||||
@ -1281,7 +1281,7 @@ CommandCost CmdRemoveFromRailroadStation(TileIndex tile, uint32 flags, uint32 p1
|
||||
}
|
||||
|
||||
/* if we deleted the whole station, delete the train facility. */
|
||||
if (st->train_tile == 0) {
|
||||
if (st->train_tile == INVALID_TILE) {
|
||||
st->facilities &= ~FACIL_TRAIN;
|
||||
InvalidateWindowWidget(WC_STATION_VIEW, st->index, SVW_TRAINS);
|
||||
UpdateStationVirtCoordDirty(st);
|
||||
@ -1348,7 +1348,7 @@ static CommandCost RemoveRailroadStation(Station *st, TileIndex tile, uint32 fla
|
||||
if (flags & DC_EXEC) {
|
||||
st->rect.AfterRemoveRect(st, st->train_tile, st->trainst_w, st->trainst_h);
|
||||
|
||||
st->train_tile = 0;
|
||||
st->train_tile = INVALID_TILE;
|
||||
st->trainst_w = st->trainst_h = 0;
|
||||
st->facilities &= ~FACIL_TRAIN;
|
||||
|
||||
@ -1803,7 +1803,7 @@ void UpdateAirportsNoise()
|
||||
FOR_ALL_TOWNS(t) t->noise_reached = 0;
|
||||
|
||||
FOR_ALL_STATIONS(st) {
|
||||
if (st->airport_tile != 0) {
|
||||
if (st->airport_tile != INVALID_TILE) {
|
||||
st->town->noise_reached += GetAirportNoiseLevelForTown(GetAirport(st->airport_type), st->town->xy, st->airport_tile);
|
||||
}
|
||||
}
|
||||
@ -1881,7 +1881,7 @@ CommandCost CmdBuildAirport(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
|
||||
if (!st->rect.BeforeAddRect(tile, w, h, StationRect::ADD_TEST)) return CMD_ERROR;
|
||||
|
||||
if (st->airport_tile != 0) {
|
||||
if (st->airport_tile != INVALID_TILE) {
|
||||
return_cmd_error(STR_300D_TOO_CLOSE_TO_ANOTHER_AIRPORT);
|
||||
}
|
||||
} else {
|
||||
@ -1991,7 +1991,7 @@ static CommandCost RemoveAirport(Station *st, uint32 flags)
|
||||
|
||||
st->rect.AfterRemoveRect(st, tile, w, h);
|
||||
|
||||
st->airport_tile = 0;
|
||||
st->airport_tile = INVALID_TILE;
|
||||
st->facilities &= ~FACIL_AIRPORT;
|
||||
|
||||
InvalidateWindowWidget(WC_STATION_VIEW, st->index, SVW_PLANES);
|
||||
@ -2087,7 +2087,7 @@ static CommandCost RemoveBuoy(Station *st, uint32 flags)
|
||||
if (!(flags & DC_BANKRUPT) && !EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
st->dock_tile = 0;
|
||||
st->dock_tile = INVALID_TILE;
|
||||
/* Buoys are marked in the Station struct by this flag. Yes, it is this
|
||||
* braindead.. */
|
||||
st->facilities &= ~FACIL_DOCK;
|
||||
@ -2178,7 +2178,7 @@ CommandCost CmdBuildDock(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
tile + ToTileIndexDiff(_dock_tileoffs_chkaround[direction]),
|
||||
_dock_w_chk[direction], _dock_h_chk[direction], StationRect::ADD_TEST)) return CMD_ERROR;
|
||||
|
||||
if (st->dock_tile != 0) return_cmd_error(STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK);
|
||||
if (st->dock_tile != INVALID_TILE) return_cmd_error(STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK);
|
||||
} else {
|
||||
/* allocate and initialize new station */
|
||||
/* allocate and initialize new station */
|
||||
@ -2234,7 +2234,7 @@ static CommandCost RemoveDock(Station *st, uint32 flags)
|
||||
|
||||
MarkTileDirtyByTile(tile2);
|
||||
|
||||
st->dock_tile = 0;
|
||||
st->dock_tile = INVALID_TILE;
|
||||
st->facilities &= ~FACIL_DOCK;
|
||||
|
||||
InvalidateWindowWidget(WC_STATION_VIEW, st->index, SVW_SHIPS);
|
||||
@ -3050,7 +3050,7 @@ void BuildOilRig(TileIndex tile)
|
||||
st->truck_stops = NULL;
|
||||
st->airport_tile = tile;
|
||||
st->dock_tile = tile;
|
||||
st->train_tile = 0;
|
||||
st->train_tile = INVALID_TILE;
|
||||
st->had_vehicle_of_type = 0;
|
||||
st->time_since_load = 255;
|
||||
st->time_since_unload = 255;
|
||||
@ -3080,8 +3080,8 @@ void DeleteOilRig(TileIndex tile)
|
||||
MakeWaterKeepingClass(tile, OWNER_NONE);
|
||||
MarkTileDirtyByTile(tile);
|
||||
|
||||
st->dock_tile = 0;
|
||||
st->airport_tile = 0;
|
||||
st->dock_tile = INVALID_TILE;
|
||||
st->airport_tile = INVALID_TILE;
|
||||
st->facilities &= ~(FACIL_AIRPORT | FACIL_DOCK);
|
||||
st->airport_flags = 0;
|
||||
|
||||
|
@ -338,7 +338,7 @@ public:
|
||||
const Station *st = this->stations[i];
|
||||
int x;
|
||||
|
||||
assert(st->xy != 0);
|
||||
assert(st->xy != INVALID_TILE);
|
||||
|
||||
/* Do not do the complex check HasStationInUse here, it may be even false
|
||||
* when the order had been removed and the station list hasn't been removed yet */
|
||||
|
@ -4447,7 +4447,7 @@ void Train::OnNewDay()
|
||||
/* update destination */
|
||||
if (this->current_order.IsType(OT_GOTO_STATION)) {
|
||||
TileIndex tile = GetStation(this->current_order.GetDestination())->train_tile;
|
||||
if (tile != 0) this->dest_tile = tile;
|
||||
if (tile != INVALID_TILE) this->dest_tile = tile;
|
||||
}
|
||||
|
||||
if (this->running_ticks != 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user