station.h
changeset 0 29654efe3188
child 55 73fae6c6568e
equal deleted inserted replaced
-1:000000000000 0:29654efe3188
       
     1 #ifndef STATION_H
       
     2 #define STATION_H
       
     3 
       
     4 #include "vehicle.h"
       
     5 
       
     6 typedef struct GoodsEntry {
       
     7 	uint16 waiting_acceptance;
       
     8 	byte days_since_pickup;
       
     9 	byte rating;
       
    10 	byte enroute_from;
       
    11 	byte enroute_time;
       
    12 	byte last_speed;
       
    13 	byte last_age;
       
    14 } GoodsEntry;
       
    15 
       
    16 struct Station {
       
    17 	TileIndex xy;
       
    18 	TileIndex bus_tile;
       
    19 	TileIndex lorry_tile;
       
    20 	TileIndex train_tile;
       
    21 	TileIndex airport_tile;
       
    22 	TileIndex dock_tile;
       
    23 	Town *town;
       
    24 	// alpha_order is obsolete since savegame format 4
       
    25 	byte alpha_order_obsolete;
       
    26 	uint16 string_id;
       
    27 
       
    28 	ViewportSign sign;
       
    29 
       
    30 	uint16 had_vehicle_of_type;
       
    31 	
       
    32 	byte time_since_load;
       
    33 	byte time_since_unload;
       
    34 	byte delete_ctr;
       
    35 	byte owner;
       
    36 	byte facilities;
       
    37 	byte airport_type;
       
    38 	byte truck_stop_status;
       
    39 	byte bus_stop_status;
       
    40 	byte blocked_months;
       
    41 
       
    42 	// trainstation width/height
       
    43 	byte trainst_w, trainst_h;
       
    44 
       
    45 	byte stat_id, class_id;
       
    46 	uint16 build_date;
       
    47 
       
    48 	//uint16 airport_flags;
       
    49   uint32 airport_flags;
       
    50 	uint16 index;
       
    51 
       
    52 	VehicleID last_vehicle;
       
    53 	GoodsEntry goods[NUM_CARGO];
       
    54 };
       
    55 
       
    56 enum {
       
    57 	FACIL_TRAIN = 1,
       
    58 	FACIL_TRUCK_STOP = 2,
       
    59 	FACIL_BUS_STOP = 4,
       
    60 	FACIL_AIRPORT = 8,
       
    61 	FACIL_DOCK = 0x10,
       
    62 };
       
    63 
       
    64 enum {
       
    65 //	HVOT_PENDING_DELETE = 1<<0, // not needed anymore
       
    66 	HVOT_TRAIN = 1<<1,
       
    67 	HVOT_BUS = 1 << 2,
       
    68 	HVOT_TRUCK = 1 << 3,
       
    69 	HVOT_AIRCRAFT = 1<<4,
       
    70 	HVOT_SHIP = 1 << 5,
       
    71 	HVOT_BUOY = 1 << 6
       
    72 };
       
    73 
       
    74 void ModifyStationRatingAround(TileIndex tile, byte owner, int amount, uint radius);
       
    75 
       
    76 void ShowStationViewWindow(int station);
       
    77 void UpdateAllStationVirtCoord();
       
    78 
       
    79 VARDEF Station _stations[250];
       
    80 VARDEF bool _station_sort_dirty;
       
    81 
       
    82 #define DEREF_STATION(i) (&_stations[i])
       
    83 #define FOR_ALL_STATIONS(st) for(st=_stations; st != endof(_stations); st++)
       
    84 
       
    85 
       
    86 void GetProductionAroundTiles(uint *produced, uint tile, int w, int h);
       
    87 void GetAcceptanceAroundTiles(uint *accepts, uint tile, int w, int h);
       
    88 uint GetStationPlatforms(Station *st, uint tile);
       
    89 #endif /* STATION_H */