Files
@ r12162:c4894f5339c3
Branch filter:
Location: cpp/openttd-patchpack/source/src/pbs.h - annotation
r12162:c4894f5339c3
1.6 KiB
text/x-c
(svn r16583) -Update: the order of the language files so it's in sync with english.txt. Normally WT2 would do this, but only with activity for those languages. Now we'd like to the order to match so we can more easily spot import bugs while developing WT3.
r9786:b8985de55672 r9786:b8985de55672 r9786:b8985de55672 r9786:b8985de55672 r9786:b8985de55672 r9786:b8985de55672 r9786:b8985de55672 r9786:b8985de55672 r9787:d45ab512184a r9786:b8985de55672 r9798:167b062db76e r9786:b8985de55672 r9786:b8985de55672 r9786:b8985de55672 r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9798:167b062db76e r9798:167b062db76e r9798:167b062db76e r9798:167b062db76e r10027:0a067b82c949 r9798:167b062db76e r9798:167b062db76e r9798:167b062db76e r9798:167b062db76e r9798:167b062db76e r11980:193f7a6b6e37 r11980:193f7a6b6e37 r11980:193f7a6b6e37 r9798:167b062db76e r11980:193f7a6b6e37 r9814:30d45d4957c8 r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9787:d45ab512184a r9786:b8985de55672 | /* $Id$ */
/** @file pbs.h PBS support routines */
#ifndef PBS_H
#define PBS_H
#include "tile_type.h"
#include "direction_type.h"
#include "track_type.h"
#include "vehicle_type.h"
TrackBits GetReservedTrackbits(TileIndex t);
void SetRailwayStationPlatformReservation(TileIndex start, DiagDirection dir, bool b);
bool TryReserveRailTrack(TileIndex tile, Track t);
void UnreserveRailTrack(TileIndex tile, Track t);
/** This struct contains information about the end of a reserved path. */
struct PBSTileInfo {
TileIndex tile; ///< Tile the path ends, INVALID_TILE if no valid path was found.
Trackdir trackdir; ///< The reserved trackdir on the tile.
bool okay; ///< True if tile is a safe waiting position, false otherwise.
PBSTileInfo() : tile(INVALID_TILE), trackdir(INVALID_TRACKDIR), okay(false) {}
PBSTileInfo(TileIndex _t, Trackdir _td, bool _okay) : tile(_t), trackdir(_td), okay(_okay) {}
};
PBSTileInfo FollowTrainReservation(const Train *v, bool *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);
Train *GetTrainForReservation(TileIndex tile, Track track);
/**
* Check whether some of tracks is reserved on a tile.
*
* @param tile the tile
* @param tracks the tracks to test
* @return true if at least on of tracks is reserved
*/
static inline bool HasReservedTracks(TileIndex tile, TrackBits tracks)
{
return (GetReservedTrackbits(tile) & tracks) != TRACK_BIT_NONE;
}
#endif /* PBS_H */
|