Trace restrict slots: Add support for slot operations at PBS end signal

This commit is contained in:
Jonathan G Rennison
2018-06-17 21:13:53 +01:00
parent 1b4db7d86c
commit e9f5d80440
8 changed files with 110 additions and 6 deletions

View File

@@ -46,9 +46,14 @@ struct PBSTileInfo {
PBSTileInfo(TileIndex _t, Trackdir _td, bool _okay) : tile(_t), trackdir(_td), okay(_okay) {}
};
struct PBSWaitingPositionRestrictedSignalInfo {
TileIndex tile = INVALID_TILE;
Trackdir trackdir = INVALID_TRACKDIR;
};
PBSTileInfo FollowTrainReservation(const Train *v, Vehicle **train_on_res = NULL);
bool IsSafeWaitingPosition(const Train *v, TileIndex tile, Trackdir trackdir, bool include_line_end, bool forbid_90deg = false);
bool IsWaitingPositionFree(const Train *v, TileIndex tile, Trackdir trackdir, bool forbid_90deg = false);
bool IsWaitingPositionFree(const Train *v, TileIndex tile, Trackdir trackdir, bool forbid_90deg = false, PBSWaitingPositionRestrictedSignalInfo *restricted_signal_info = nullptr);
Train *GetTrainForReservation(TileIndex tile, Track track);