truelight@0: #ifndef STATION_H truelight@0: #define STATION_H truelight@0: truelight@0: #include "vehicle.h" truelight@0: truelight@0: typedef struct GoodsEntry { truelight@0: uint16 waiting_acceptance; truelight@0: byte days_since_pickup; truelight@0: byte rating; truelight@0: byte enroute_from; truelight@0: byte enroute_time; truelight@0: byte last_speed; truelight@0: byte last_age; truelight@0: } GoodsEntry; truelight@0: truelight@0: struct Station { truelight@0: TileIndex xy; truelight@0: TileIndex bus_tile; truelight@0: TileIndex lorry_tile; truelight@0: TileIndex train_tile; truelight@0: TileIndex airport_tile; truelight@0: TileIndex dock_tile; truelight@0: Town *town; truelight@0: // alpha_order is obsolete since savegame format 4 truelight@0: byte alpha_order_obsolete; truelight@0: uint16 string_id; truelight@0: truelight@0: ViewportSign sign; truelight@0: truelight@0: uint16 had_vehicle_of_type; truelight@193: truelight@0: byte time_since_load; truelight@0: byte time_since_unload; truelight@0: byte delete_ctr; truelight@0: byte owner; truelight@0: byte facilities; truelight@0: byte airport_type; truelight@0: byte truck_stop_status; truelight@0: byte bus_stop_status; dominik@123: byte blocked_months_obsolete; truelight@0: truelight@0: // trainstation width/height truelight@0: byte trainst_w, trainst_h; truelight@0: truelight@0: byte stat_id, class_id; truelight@0: uint16 build_date; truelight@0: truelight@0: //uint16 airport_flags; truelight@0: uint32 airport_flags; truelight@0: uint16 index; truelight@0: truelight@0: VehicleID last_vehicle; truelight@0: GoodsEntry goods[NUM_CARGO]; truelight@0: }; truelight@0: truelight@0: enum { truelight@0: FACIL_TRAIN = 1, truelight@0: FACIL_TRUCK_STOP = 2, truelight@0: FACIL_BUS_STOP = 4, truelight@0: FACIL_AIRPORT = 8, truelight@0: FACIL_DOCK = 0x10, truelight@0: }; truelight@0: truelight@0: enum { truelight@0: // HVOT_PENDING_DELETE = 1<<0, // not needed anymore truelight@0: HVOT_TRAIN = 1<<1, truelight@0: HVOT_BUS = 1 << 2, truelight@0: HVOT_TRUCK = 1 << 3, truelight@0: HVOT_AIRCRAFT = 1<<4, truelight@0: HVOT_SHIP = 1 << 5, truelight@0: HVOT_BUOY = 1 << 6 truelight@0: }; truelight@0: truelight@0: void ModifyStationRatingAround(TileIndex tile, byte owner, int amount, uint radius); truelight@0: dominik@55: TileIndex GetStationTileForVehicle(Vehicle *v, Station *st); dominik@55: truelight@0: void ShowStationViewWindow(int station); truelight@0: void UpdateAllStationVirtCoord(); truelight@0: truelight@0: VARDEF Station _stations[250]; darkvater@243: VARDEF bool _station_sort_dirty[MAX_PLAYERS]; darkvater@243: VARDEF bool _global_station_sort_dirty; truelight@0: truelight@0: #define DEREF_STATION(i) (&_stations[i]) truelight@0: #define FOR_ALL_STATIONS(st) for(st=_stations; st != endof(_stations); st++) truelight@0: truelight@0: truelight@0: void GetProductionAroundTiles(uint *produced, uint tile, int w, int h); truelight@0: void GetAcceptanceAroundTiles(uint *accepts, uint tile, int w, int h); truelight@0: uint GetStationPlatforms(Station *st, uint tile); truelight@0: #endif /* STATION_H */