|
@@ -184,13 +184,13 @@ CommandCost CmdBuildTrainWaypoint(TileIn
|
|
|
InvalidateWindowData(WC_WAYPOINT_VIEW, wp->index);
|
|
|
}
|
|
|
wp->owner = owner;
|
|
|
|
|
|
bool reserved = HasBit(GetRailReservationTrackBits(tile), AxisToTrack(axis));
|
|
|
MakeRailWaypoint(tile, owner, axis, GetRailType(tile), wp->index);
|
|
|
SetDepotWaypointReservation(tile, reserved);
|
|
|
SetDepotReservation(tile, reserved);
|
|
|
MarkTileDirtyByTile(tile);
|
|
|
|
|
|
AllocateSpecToStation(GetCustomStationSpec(STAT_CLASS_WAYP, p1), wp, true);
|
|
|
|
|
|
wp->delete_ctr = 0;
|
|
|
wp->facilities |= FACIL_TRAIN;
|
|
@@ -231,18 +231,18 @@ CommandCost RemoveTrainWaypoint(TileInde
|
|
|
wp->sign.MarkDirty();
|
|
|
wp->facilities &= ~FACIL_TRAIN;
|
|
|
|
|
|
Train *v = NULL;
|
|
|
if (justremove) {
|
|
|
TrackBits tracks = GetRailWaypointBits(tile);
|
|
|
bool reserved = HasDepotWaypointReservation(tile);
|
|
|
bool reserved = HasDepotReservation(tile);
|
|
|
MakeRailNormal(tile, wp->owner, tracks, GetRailType(tile));
|
|
|
if (reserved) SetTrackReservation(tile, tracks);
|
|
|
MarkTileDirtyByTile(tile);
|
|
|
} else {
|
|
|
if (HasDepotWaypointReservation(tile)) {
|
|
|
if (HasDepotReservation(tile)) {
|
|
|
v = GetTrainForReservation(tile, track);
|
|
|
if (v != NULL) FreeTrainTrackReservation(v);
|
|
|
}
|
|
|
DoClearSquare(tile);
|
|
|
AddTrackToSignalBuffer(tile, track, wp->owner);
|
|
|
}
|