|
@@ -515,31 +515,25 @@ void GetAcceptanceAroundTiles(AcceptedCa
|
|
|
int y2 = min(y + h + rad, MapSizeY());
|
|
|
int x1 = max(x - rad, 0);
|
|
|
int y1 = max(y - rad, 0);
|
|
|
|
|
|
assert(x1 < x2);
|
|
|
assert(y1 < y2);
|
|
|
assert(w > 0);
|
|
|
assert(h > 0);
|
|
|
|
|
|
for (int yc = y1; yc != y2; yc++) {
|
|
|
for (int xc = x1; xc != x2; xc++) {
|
|
|
TileIndex tile = TileXY(xc, yc);
|
|
|
|
|
|
if (!IsTileType(tile, MP_STATION)) {
|
|
|
AcceptedCargo ac;
|
|
|
|
|
|
GetAcceptedCargo(tile, ac);
|
|
|
for (uint i = 0; i < lengthof(ac); ++i) accepts[i] += ac[i];
|
|
|
}
|
|
|
AddAcceptedCargo(tile, accepts);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/** Update the acceptance for a station.
|
|
|
* @param st Station to update
|
|
|
* @param show_msg controls whether to display a message that acceptance was changed.
|
|
|
*/
|
|
|
static void UpdateStationAcceptance(Station *st, bool show_msg)
|
|
|
{
|
|
|
/* Don't update acceptance for a buoy */
|
|
|
if (st->IsBuoy()) return;
|
|
@@ -2339,29 +2333,24 @@ void StationPickerDrawSprite(int x, int
|
|
|
}
|
|
|
|
|
|
static uint GetSlopeZ_Station(TileIndex tile, uint x, uint y)
|
|
|
{
|
|
|
return GetTileMaxZ(tile);
|
|
|
}
|
|
|
|
|
|
static Foundation GetFoundation_Station(TileIndex tile, Slope tileh)
|
|
|
{
|
|
|
return FlatteningFoundation(tileh);
|
|
|
}
|
|
|
|
|
|
static void GetAcceptedCargo_Station(TileIndex tile, AcceptedCargo ac)
|
|
|
{
|
|
|
/* not used */
|
|
|
}
|
|
|
|
|
|
static void GetTileDesc_Station(TileIndex tile, TileDesc *td)
|
|
|
{
|
|
|
td->owner[0] = GetTileOwner(tile);
|
|
|
if (IsDriveThroughStopTile(tile)) {
|
|
|
Owner road_owner = INVALID_OWNER;
|
|
|
Owner tram_owner = INVALID_OWNER;
|
|
|
RoadTypes rts = GetRoadTypes(tile);
|
|
|
if (HasBit(rts, ROADTYPE_ROAD)) road_owner = GetRoadOwner(tile, ROADTYPE_ROAD);
|
|
|
if (HasBit(rts, ROADTYPE_TRAM)) tram_owner = GetRoadOwner(tile, ROADTYPE_TRAM);
|
|
|
|
|
|
/* Is there a mix of owners? */
|
|
|
if ((tram_owner != INVALID_OWNER && tram_owner != td->owner[0]) ||
|
|
@@ -3154,24 +3143,24 @@ static CommandCost TerraformTile_Station
|
|
|
default: break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
|
|
|
}
|
|
|
|
|
|
|
|
|
extern const TileTypeProcs _tile_type_station_procs = {
|
|
|
DrawTile_Station, // draw_tile_proc
|
|
|
GetSlopeZ_Station, // get_slope_z_proc
|
|
|
ClearTile_Station, // clear_tile_proc
|
|
|
GetAcceptedCargo_Station, // get_accepted_cargo_proc
|
|
|
NULL, // get_accepted_cargo_proc
|
|
|
GetTileDesc_Station, // get_tile_desc_proc
|
|
|
GetTileTrackStatus_Station, // get_tile_track_status_proc
|
|
|
ClickTile_Station, // click_tile_proc
|
|
|
AnimateTile_Station, // animate_tile_proc
|
|
|
TileLoop_Station, // tile_loop_clear
|
|
|
ChangeTileOwner_Station, // change_tile_owner_clear
|
|
|
NULL, // get_produced_cargo_proc
|
|
|
VehicleEnter_Station, // vehicle_enter_tile_proc
|
|
|
GetFoundation_Station, // get_foundation_proc
|
|
|
TerraformTile_Station, // terraform_tile_proc
|
|
|
};
|