File diff r3490:2997e05fe018 → r3491:10ed78e15d31
station_cmd.c
Show inline comments
 
@@ -804,7 +804,7 @@ int32 CheckFlatLandBelow(TileIndex tile,
 
				}
 
			}
 
		} else {
 
			ret = DoCommandByTile(tile_cur, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
 
			ret = DoCommand(tile_cur, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
 
			if (CmdFailed(ret)) return ret;
 
			cost += ret;
 
		}
 
@@ -912,7 +912,7 @@ static void GetStationLayout(byte *layou
 
}
 

	
 
/** Build railroad station
 
 * @param x,y starting position of station dragging/placement
 
 * @param tile_org starting position of station dragging/placement
 
 * @param p1 various bitstuffed elements
 
 * - p1 = (bit  0)    - orientation (p1 & 1)
 
 * - p1 = (bit  8-15) - number of tracks
 
@@ -922,10 +922,9 @@ static void GetStationLayout(byte *layou
 
 * - p2 = (bit  4)    - set for custom station (p2 & 0x10)
 
 * - p2 = (bit  8-..) - custom station id (p2 >> 8)
 
 */
 
int32 CmdBuildRailroadStation(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 
int32 CmdBuildRailroadStation(TileIndex tile_org, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	Station *st;
 
	TileIndex tile_org;
 
	int w_org, h_org;
 
	int32 cost, ret;
 
	StationID est;
 
@@ -935,8 +934,6 @@ int32 CmdBuildRailroadStation(int x, int
 

	
 
	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
 

	
 
	tile_org = TileVirtXY(x, y);
 

	
 
	/* Does the authority allow this? */
 
	if (!(flags & DC_NO_TOWN_RATING) && !CheckIfAuthorityAllows(tile_org)) return CMD_ERROR;
 
	if (!ValParamRailtype(p2 & 0xF)) return CMD_ERROR;
 
@@ -1124,13 +1121,12 @@ restart:
 

	
 
/** Remove a single tile from a railroad station.
 
 * This allows for custom-built station with holes and weird layouts
 
 * @param x,y tile coordinates to remove
 
 * @param tile tile of station piece to remove
 
 * @param p1 unused
 
 * @param p2 unused
 
 */
 
int32 CmdRemoveFromRailroadStation(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 
int32 CmdRemoveFromRailroadStation(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	TileIndex tile = TileVirtXY(x, y);
 
	Station *st;
 

	
 
	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
 
@@ -1196,7 +1192,7 @@ static int32 RemoveRailroadStation(Stati
 

	
 
	/* if there is flooding and non-uniform stations are enabled, remove platforms tile by tile */
 
	if (_current_player == OWNER_WATER && _patches.nonuniform_stations)
 
		return DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_REMOVE_FROM_RAILROAD_STATION);
 
		return DoCommand(tile, 0, 0, DC_EXEC, CMD_REMOVE_FROM_RAILROAD_STATION);
 

	
 
	/* Current player owns the station? */
 
	if (_current_player != OWNER_WATER && !CheckOwnership(st->owner))
 
@@ -1284,17 +1280,16 @@ static void FindRoadStationSpot(bool tru
 
}
 

	
 
/** Build a bus station
 
 * @param x,y coordinates to build bus station at
 
 * @param tile tile to build bus station at
 
 * @param p1 entrance direction (DiagDirection)
 
 * @param p2 0 for Bus stops, 1 for truck stops
 
 */
 
int32 CmdBuildRoadStop(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 
int32 CmdBuildRoadStop(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	Station *st;
 
	RoadStop *road_stop;
 
	RoadStop **currstop;
 
	RoadStop *prev = NULL;
 
	TileIndex tile;
 
	int32 cost;
 
	int32 ret;
 
	bool type = !!p2;
 
@@ -1304,8 +1299,6 @@ int32 CmdBuildRoadStop(int x, int y, uin
 

	
 
	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
 

	
 
	tile = TileVirtXY(x, y);
 

	
 
	if (!(flags & DC_NO_TOWN_RATING) && !CheckIfAuthorityAllows(tile))
 
		return CMD_ERROR;
 

	
 
@@ -1500,13 +1493,12 @@ static const byte * const _airport_secti
 
};
 

	
 
/** Place an Airport.
 
 * @param x,y tile coordinates where airport will be built
 
 * @param tile tile where airport will be built
 
 * @param p1 airport type, @see airport.h
 
 * @param p2 unused
 
 */
 
int32 CmdBuildAirport(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 
int32 CmdBuildAirport(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	TileIndex tile;
 
	Town *t;
 
	Station *st;
 
	int32 cost;
 
@@ -1519,8 +1511,6 @@ int32 CmdBuildAirport(int x, int y, uint
 
	/* Check if a valid, buildable airport was chosen for construction */
 
	if (p1 > lengthof(_airport_sections) || !HASBIT(GetValidAirports(), p1)) return CMD_ERROR;
 

	
 
	tile = TileVirtXY(x, y);
 

	
 
	if (!(flags & DC_NO_TOWN_RATING) && !CheckIfAuthorityAllows(tile))
 
		return CMD_ERROR;
 

	
 
@@ -1673,13 +1663,12 @@ static int32 RemoveAirport(Station *st, 
 
}
 

	
 
/** Build a buoy.
 
 * @param x,y tile coordinates of bouy construction
 
 * @param tile tile where to place the bouy
 
 * @param p1 unused
 
 * @param p2 unused
 
 */
 
int32 CmdBuildBuoy(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 
int32 CmdBuildBuoy(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	TileIndex tile = TileVirtXY(x, y);
 
	Station *st;
 

	
 
	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
 
@@ -1774,13 +1763,12 @@ static const byte _dock_w_chk[4] = { 2,1
 
static const byte _dock_h_chk[4] = { 1,2,1,2 };
 

	
 
/** Build a dock/haven.
 
 * @param x,y tile coordinates where dock will be built
 
 * @param tile tile where dock will be built
 
 * @param p1 unused
 
 * @param p2 unused
 
 */
 
int32 CmdBuildDock(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 
int32 CmdBuildDock(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	TileIndex tile = TileVirtXY(x, y);
 
	TileIndex tile_cur;
 
	DiagDirection direction;
 
	int32 cost;
 
@@ -1798,7 +1786,7 @@ int32 CmdBuildDock(int x, int y, uint32 
 

	
 
	if (!EnsureNoVehicle(tile)) return CMD_ERROR;
 

	
 
	cost = DoCommandByTile(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
 
	cost = DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
 
	if (CmdFailed(cost)) return CMD_ERROR;
 

	
 
	tile_cur = tile + TileOffsByDir(direction);
 
@@ -1809,7 +1797,7 @@ int32 CmdBuildDock(int x, int y, uint32 
 
		return_cmd_error(STR_304B_SITE_UNSUITABLE);
 
	}
 

	
 
	cost = DoCommandByTile(tile_cur, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
 
	cost = DoCommand(tile_cur, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
 
	if (CmdFailed(cost)) return CMD_ERROR;
 

	
 
	tile_cur = tile_cur + TileOffsByDir(direction);
 
@@ -2427,11 +2415,11 @@ static void UpdateStationWaiting(Station
 
}
 

	
 
/** Rename a station
 
 * @param x,y unused
 
 * @param tile unused
 
 * @param p1 station ID that is to be renamed
 
 * @param p2 unused
 
 */
 
int32 CmdRenameStation(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 
int32 CmdRenameStation(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	StringID str;
 
	Station *st;
 
@@ -2672,7 +2660,7 @@ static void ChangeTileOwner_Station(Tile
 
		_global_station_sort_dirty = true; // transfer ownership of station to another player
 
		InvalidateWindowClasses(WC_STATION_LIST);
 
	} else {
 
		DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
 
		DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
 
	}
 
}