src/station_func.h
author rubidium
Wed, 23 Apr 2008 20:56:08 +0000
changeset 10314 9cfcdd5b5ddb
parent 9283 624272490f5a
child 10682 3b753d908205
permissions -rw-r--r--
(svn r12855) -Codechange: do not use autoptr's for testing whether certain objects can be build, but check it directly in the pool so we do not have to call destructors in the testing phase. Stations still use the autoptr though.
/* $Id$ */

/** @file station_func.h Functions related to stations. */

#ifndef STATION_FUNC_H
#define STATION_FUNC_H

#include "station_type.h"
#include "sprite.h"
#include "rail_type.h"
#include "road_type.h"
#include "tile_type.h"
#include "cargo_type.h"
#include "vehicle_type.h"
#include <set>

void ModifyStationRatingAround(TileIndex tile, PlayerID owner, int amount, uint radius);

/** A set of stations (\c const \c Station* ) */
typedef std::set<Station*> StationSet;

StationSet FindStationsAroundIndustryTile(TileIndex tile, int w, int h);

void ShowStationViewWindow(StationID station);
void UpdateAllStationVirtCoord();

void AfterLoadStations();
void GetProductionAroundTiles(AcceptedCargo produced, TileIndex tile, int w, int h, int rad);
void GetAcceptanceAroundTiles(AcceptedCargo accepts, TileIndex tile, int w, int h, int rad);

const DrawTileSprites *GetStationTileLayout(StationType st, byte gfx);
void StationPickerDrawSprite(int x, int y, StationType st, RailType railtype, RoadType roadtype, int image);

bool HasStationInUse(StationID station, PlayerID player);

RoadStop * GetRoadStopByTile(TileIndex tile, RoadStopType type);
uint GetNumRoadStops(const Station* st, RoadStopType type);
RoadStop * AllocateRoadStop();

void ClearSlot(Vehicle *v);

void DeleteOilRig(TileIndex t);

/* Check if a rail station tile is traversable. */
bool IsStationTileBlocked(TileIndex tile);

/* Check if a rail station tile is electrifiable. */
bool IsStationTileElectrifiable(TileIndex tile);


#endif /* STATION_FUNC_H */