diff options
Diffstat (limited to 'src/station_base.h')
-rw-r--r-- | src/station_base.h | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/src/station_base.h b/src/station_base.h index c2d364711..7ab2c9c0b 100644 --- a/src/station_base.h +++ b/src/station_base.h @@ -17,14 +17,11 @@ #include "company_type.h" #include "industry_type.h" #include "core/geometry_type.hpp" -#include "core/bitmath_func.hpp" #include "viewport_type.h" #include <list> typedef Pool<Station, StationID, 32, 64000> StationPool; -typedef Pool<RoadStop, RoadStopID, 32, 64000> RoadStopPool; extern StationPool _station_pool; -extern RoadStopPool _roadstop_pool; static const byte INITIAL_STATION_RATING = 175; @@ -50,105 +47,6 @@ struct GoodsEntry { CargoList cargo; ///< The cargo packets of cargo waiting in this station }; -/** A Stop for a Road Vehicle */ -struct RoadStop : RoadStopPool::PoolItem<&_roadstop_pool> { - enum RoadStopStatusFlags { - RSSFB_BAY0_FREE = 0, ///< Non-zero when bay 0 is free - RSSFB_BAY1_FREE = 1, ///< Non-zero when bay 1 is free - RSSFB_BAY_COUNT = 2, ///< Max. number of bays - RSSFB_ENTRY_BUSY = 7, ///< Non-zero when roadstop entry is busy - }; - - static const uint LIMIT = 16; ///< The maximum amount of roadstops that are allowed at a single station - static const uint MAX_VEHICLES = 64; ///< The maximum number of vehicles that can allocate a slot to this roadstop - - TileIndex xy; ///< Position on the map - byte status; ///< Current status of the Stop, @see RoadStopSatusFlag. Access using *Bay and *Busy functions. - 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 = INVALID_TILE); - ~RoadStop(); - - /** - * Checks whether there is a free bay in this road stop - * @return is at least one bay free? - */ - FORCEINLINE bool HasFreeBay() const - { - return GB(this->status, 0, RSSFB_BAY_COUNT) != 0; - } - - /** - * Checks whether the given bay is free in this road stop - * @param nr bay to check - * @return is given bay free? - */ - FORCEINLINE bool IsFreeBay(uint nr) const - { - assert(nr < RSSFB_BAY_COUNT); - return HasBit(this->status, nr); - } - - /** - * Allocates a bay - * @return the allocated bay number - * @pre this->HasFreeBay() - */ - FORCEINLINE uint AllocateBay() - { - assert(this->HasFreeBay()); - - /* Find the first free bay. If the bit is set, the bay is free. */ - uint bay_nr = 0; - while (!HasBit(this->status, bay_nr)) bay_nr++; - - ClrBit(this->status, bay_nr); - return bay_nr; - } - - /** - * Allocates a bay in a drive-through road stop - * @param nr the number of the bay to allocate - */ - FORCEINLINE void AllocateDriveThroughBay(uint nr) - { - assert(nr < RSSFB_BAY_COUNT); - ClrBit(this->status, nr); - } - - /** - * Frees the given bay - * @param nr the number of the bay to free - */ - FORCEINLINE void FreeBay(uint nr) - { - assert(nr < RSSFB_BAY_COUNT); - SetBit(this->status, nr); - } - - - /** - * Checks whether the entrance of the road stop is occupied by a vehicle - * @return is entrance busy? - */ - FORCEINLINE bool IsEntranceBusy() const - { - return HasBit(this->status, RSSFB_ENTRY_BUSY); - } - - /** - * Makes an entrance occupied or free - * @param busy if true, marks busy; free otherwise - */ - FORCEINLINE void SetEntranceBusy(bool busy) - { - SB(this->status, RSSFB_ENTRY_BUSY, 1, busy); - } - - RoadStop *GetNextRoadStop(const struct RoadVehicle *v) const; -}; - struct StationSpecList { const StationSpec *spec; uint32 grfid; ///< GRF ID of this custom station @@ -268,12 +166,4 @@ public: #define FOR_ALL_STATIONS_FROM(var, start) FOR_ALL_ITEMS_FROM(Station, station_index, var, start) #define FOR_ALL_STATIONS(var) FOR_ALL_STATIONS_FROM(var, 0) - -/* Stuff for ROADSTOPS */ - -#define FOR_ALL_ROADSTOPS_FROM(var, start) FOR_ALL_ITEMS_FROM(RoadStop, roadstop_index, var, start) -#define FOR_ALL_ROADSTOPS(var) FOR_ALL_ROADSTOPS_FROM(var, 0) - -/* End of stuff for ROADSTOPS */ - #endif /* STATION_BASE_H */ |