summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/station.cpp11
-rw-r--r--src/station_base.h11
2 files changed, 14 insertions, 8 deletions
diff --git a/src/station.cpp b/src/station.cpp
index 6b583a07c..641e77c91 100644
--- a/src/station.cpp
+++ b/src/station.cpp
@@ -31,8 +31,14 @@
StationPool _station_pool("Station");
INSTANTIATE_POOL_METHODS(Station)
+BaseStation::~BaseStation()
+{
+ free(this->name);
+ free(this->speclist);
+}
+
Station::Station(TileIndex tile) :
- xy(tile),
+ BaseStation(tile),
train_tile(INVALID_TILE),
airport_tile(INVALID_TILE),
dock_tile(INVALID_TILE),
@@ -57,9 +63,6 @@ Station::Station(TileIndex tile) :
*/
Station::~Station()
{
- free(this->name);
- free(this->speclist);
-
if (CleaningPool()) return;
while (!this->loading_vehicles.empty()) {
diff --git a/src/station_base.h b/src/station_base.h
index 821ed1dd6..b9efcc1ae 100644
--- a/src/station_base.h
+++ b/src/station_base.h
@@ -79,6 +79,10 @@ struct StationRect : public Rect {
/** Base class for all station-ish types */
struct BaseStation {
+ TileIndex xy; ///< Base tile of the station
+ ViewportSign sign; ///< NOSAVE: Dimensions of sign
+ byte delete_ctr; ///< Delete counter. If greater than 0 then it is decremented until it reaches 0; the waypoint is then is deleted.
+
char *name; ///< Custom name
StringID string_id; ///< Default name (town area) of station
@@ -95,6 +99,9 @@ struct BaseStation {
byte waiting_triggers; ///< Waiting triggers (NewGRF) for this station
uint8 cached_anim_triggers; ///< NOSAVE: Combined animation trigger bitmask, used to determine if trigger processing should happen.
+ BaseStation(TileIndex tile = INVALID_TILE) : xy(tile) { }
+ virtual ~BaseStation();
+
/**
* Check whether a specific tile belongs to this station.
* @param tile the tile to check
@@ -138,7 +145,6 @@ public:
return GetAirport(airport_type);
}
- TileIndex xy;
RoadStop *bus_stops;
RoadStop *truck_stops;
TileIndex train_tile;
@@ -147,13 +153,10 @@ public:
IndustryType indtype; ///< Industry type to get the name from
- ViewportSign sign;
-
StationHadVehicleOfTypeByte had_vehicle_of_type;
byte time_since_load;
byte time_since_unload;
- byte delete_ctr;
byte airport_type;
/* trainstation width/height */