OpenTTD
station_type.h
Go to the documentation of this file.
1 /* $Id: station_type.h 25890 2013-10-20 13:47:11Z fonsinchen $ */
2 
3 /*
4  * This file is part of OpenTTD.
5  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
6  * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
7  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
8  */
9 
12 #ifndef STATION_TYPE_H
13 #define STATION_TYPE_H
14 
15 #include "core/smallvec_type.hpp"
16 #include "core/smallstack_type.hpp"
17 #include "tilearea_type.h"
18 #include <list>
19 
20 typedef uint16 StationID;
21 typedef uint16 RoadStopID;
22 
23 struct BaseStation;
24 struct Station;
25 struct RoadStop;
26 struct StationSpec;
27 struct Waypoint;
28 
29 static const StationID NEW_STATION = 0xFFFE;
30 static const StationID INVALID_STATION = 0xFFFF;
31 
33 
36  STATION_RAIL,
37  STATION_AIRPORT,
38  STATION_TRUCK,
39  STATION_BUS,
40  STATION_OILRIG,
41  STATION_DOCK,
42  STATION_BUOY,
43  STATION_WAYPOINT,
44 };
45 
50 };
51 
54  FACIL_NONE = 0,
55  FACIL_TRAIN = 1 << 0,
56  FACIL_TRUCK_STOP = 1 << 1,
57  FACIL_BUS_STOP = 1 << 2,
58  FACIL_AIRPORT = 1 << 3,
59  FACIL_DOCK = 1 << 4,
60  FACIL_WAYPOINT = 1 << 7,
61 };
64 
67  HVOT_NONE = 0,
68  HVOT_TRAIN = 1 << 1,
69  HVOT_BUS = 1 << 2,
70  HVOT_TRUCK = 1 << 3,
71  HVOT_AIRCRAFT = 1 << 4,
72  HVOT_SHIP = 1 << 5,
73 
74  HVOT_WAYPOINT = 1 << 6,
75 };
78 
81  CA_NONE = 0,
82  CA_BUS = 3,
83  CA_TRUCK = 3,
84  CA_TRAIN = 4,
85  CA_DOCK = 5,
86 
88 
90 };
91 
92 static const uint MAX_LENGTH_STATION_NAME_CHARS = 32;
93 
95 typedef std::list<StationID> StationIDList;
96 
99 
106 public:
111  StationFinder(const TileArea &area) : TileArea(area) {}
112  const StationList *GetStations();
113 };
114 
115 #endif /* STATION_TYPE_H */
DECLARE_ENUM_AS_BIT_SET(GenderEthnicity) enum CompanyManagerFaceVariable
Bitgroups of the CompanyManagerFace variable.
A standard stop for trucks.
Definition: station_type.h:49
std::list< StationID > StationIDList
List of station IDs.
Definition: station_type.h:95
Minimal stack that uses a pool to avoid pointers.
StationList stations
List of stations nearby.
Definition: station_type.h:105
Simple vector class that allows allocating an item without the need to copy this->data needlessly...
StationFinder(const TileArea &area)
Constructs StationFinder.
Definition: station_type.h:111
Station has seen a ship.
Definition: station_type.h:72
Station specification.
Minimal stack that uses a pool to avoid pointers and doesn&#39;t allocate any heap memory if there is onl...
Station has seen an aircraft.
Definition: station_type.h:71
A standard stop for buses.
Definition: station_type.h:48
StationFacility
The facilities a station might be having.
Definition: station_type.h:53
CatchmentArea
The different catchment areas used.
Definition: station_type.h:80
Representation of a waypoint.
Definition: waypoint_base.h:18
Catchment for bus stops with "modified catchment" enabled.
Definition: station_type.h:82
RoadStopType
Types of RoadStops.
Definition: station_type.h:47
Station is a waypoint (NewGRF only!)
Definition: station_type.h:74
Station is a waypoint.
Definition: station_type.h:60
const StationList * GetStations()
Run a tile loop to find stations around a tile, on demand.
Station with truck stops.
Definition: station_type.h:56
Represents the covered area of e.g.
Definition: tilearea_type.h:18
StationHadVehicleOfType
The vehicles that may have visited a station.
Definition: station_type.h:66
Station has seen a bus.
Definition: station_type.h:69
Station has seen a truck.
Definition: station_type.h:70
Catchment for truck stops with "modified catchment" enabled.
Definition: station_type.h:83
Catchment for all stations with "modified catchment" disabled.
Definition: station_type.h:87
Station with a dock.
Definition: station_type.h:59
Station has seen no vehicles.
Definition: station_type.h:67
Catchment for docks with "modified catchment" enabled.
Definition: station_type.h:85
Catchment when the station has no facilities.
Definition: station_type.h:81
StationType
Station types.
Definition: station_type.h:35
Station has seen a train.
Definition: station_type.h:68
Catchment for train stations with "modified catchment" enabled.
Definition: station_type.h:84
Station with train station.
Definition: station_type.h:55
Type for storing the &#39;area&#39; of something uses on the map.
A Stop for a Road Vehicle.
Definition: roadstop_base.h:24
Station with bus stops.
Definition: station_type.h:57
static const uint MAX_LENGTH_STATION_NAME_CHARS
The maximum length of a station name in characters including &#39;\0&#39;.
Definition: station_type.h:92
SmallVector< Station *, 2 > StationList
List of stations.
Definition: station_type.h:98
Maximum catchment for airports with "modified catchment" enabled.
Definition: station_type.h:89
Structure contains cached list of stations nearby.
Definition: station_type.h:104
Base class for all station-ish types.
Station data structure.
Definition: station_base.h:446
Station with an airport.
Definition: station_type.h:58
The station has no facilities at all.
Definition: station_type.h:54