Merge branch 'master' into jgrpp-beta
# Conflicts: # .github/workflows/commit-checker.yml # src/company_cmd.cpp # src/console_cmds.cpp # src/crashlog.cpp # src/lang/english.txt # src/lang/german.txt # src/lang/indonesian.txt # src/lang/japanese.txt # src/lang/korean.txt # src/lang/swedish.txt # src/linkgraph/linkgraphjob.cpp # src/linkgraph/mcf.cpp # src/network/core/tcp.cpp # src/network/core/tcp.h # src/network/core/tcp_game.h # src/network/core/udp.h # src/network/network.cpp # src/network/network_admin.cpp # src/network/network_admin.h # src/network/network_chat_gui.cpp # src/network/network_client.cpp # src/network/network_client.h # src/network/network_func.h # src/network/network_internal.h # src/network/network_server.cpp # src/network/network_server.h # src/newgrf.cpp # src/newgrf_station.cpp # src/order_gui.cpp # src/rail_cmd.cpp # src/saveload/saveload.cpp # src/settings.cpp # src/settings_gui.cpp # src/settings_internal.h # src/settings_type.h # src/station_cmd.cpp # src/stdafx.h # src/table/currency_settings.ini # src/table/misc_settings.ini # src/table/settings.h.preamble # src/table/settings.ini # src/terraform_cmd.cpp # src/timetable_gui.cpp # src/train_cmd.cpp # src/tree_cmd.cpp # src/water_cmd.cpp
This commit is contained in:
@@ -481,19 +481,19 @@ CommandCost CmdBuildCanal(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
|
||||
|
||||
std::unique_ptr<TileIterator> iter(HasBit(p2, 2) ? (TileIterator *)new DiagonalTileIterator(tile, p1) : new OrthogonalTileIterator(tile, p1));
|
||||
for (; *iter != INVALID_TILE; ++(*iter)) {
|
||||
TileIndex tile = *iter;
|
||||
TileIndex current_tile = *iter;
|
||||
CommandCost ret;
|
||||
|
||||
Slope slope = GetTileSlope(tile);
|
||||
Slope slope = GetTileSlope(current_tile);
|
||||
if (slope != SLOPE_FLAT && (wc != WATER_CLASS_RIVER || !IsInclinedSlope(slope))) {
|
||||
return_cmd_error(STR_ERROR_FLAT_LAND_REQUIRED);
|
||||
}
|
||||
|
||||
/* can't make water of water! */
|
||||
if (IsTileType(tile, MP_WATER) && (!IsTileOwner(tile, OWNER_WATER) || wc == WATER_CLASS_SEA)) continue;
|
||||
if (IsTileType(current_tile, MP_WATER) && (!IsTileOwner(current_tile, OWNER_WATER) || wc == WATER_CLASS_SEA)) continue;
|
||||
|
||||
bool water = IsWaterTile(tile);
|
||||
ret = DoCommand(tile, 0, 0, flags | DC_FORCE_CLEAR_TILE, CMD_LANDSCAPE_CLEAR);
|
||||
bool water = IsWaterTile(current_tile);
|
||||
ret = DoCommand(current_tile, 0, 0, flags | DC_FORCE_CLEAR_TILE, CMD_LANDSCAPE_CLEAR);
|
||||
if (ret.Failed()) return ret;
|
||||
|
||||
if (!water) cost.AddCost(ret);
|
||||
@@ -501,31 +501,31 @@ CommandCost CmdBuildCanal(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
|
||||
if (flags & DC_EXEC) {
|
||||
switch (wc) {
|
||||
case WATER_CLASS_RIVER:
|
||||
MakeRiver(tile, Random());
|
||||
MakeRiver(current_tile, Random());
|
||||
if (_game_mode == GM_EDITOR) {
|
||||
TileIndex tile2 = tile;
|
||||
TileIndex tile2 = current_tile;
|
||||
CircularTileSearch(&tile2, _settings_game.game_creation.river_tropics_width, RiverModifyDesertZone, nullptr);
|
||||
}
|
||||
break;
|
||||
|
||||
case WATER_CLASS_SEA:
|
||||
if (TileHeight(tile) == 0) {
|
||||
MakeSea(tile);
|
||||
if (TileHeight(current_tile) == 0) {
|
||||
MakeSea(current_tile);
|
||||
break;
|
||||
}
|
||||
FALLTHROUGH;
|
||||
|
||||
default:
|
||||
MakeCanal(tile, _current_company, Random());
|
||||
MakeCanal(current_tile, _current_company, Random());
|
||||
if (Company::IsValidID(_current_company)) {
|
||||
Company::Get(_current_company)->infrastructure.water++;
|
||||
DirtyCompanyInfrastructureWindows(_current_company);
|
||||
}
|
||||
break;
|
||||
}
|
||||
MarkTileDirtyByTile(tile);
|
||||
MarkCanalsAndRiversAroundDirty(tile);
|
||||
CheckForDockingTile(tile);
|
||||
MarkTileDirtyByTile(current_tile);
|
||||
MarkCanalsAndRiversAroundDirty(current_tile);
|
||||
CheckForDockingTile(current_tile);
|
||||
}
|
||||
|
||||
cost.AddCost(_price[PR_BUILD_CANAL]);
|
||||
@@ -1079,8 +1079,8 @@ static void FloodVehicles(TileIndex tile)
|
||||
|
||||
if (IsAirportTile(tile)) {
|
||||
const Station *st = Station::GetByTile(tile);
|
||||
for (TileIndex tile : st->airport) {
|
||||
if (st->TileBelongsToAirport(tile)) FindFloodVehicle(tile, z);
|
||||
for (TileIndex airport_tile : st->airport) {
|
||||
if (st->TileBelongsToAirport(airport_tile)) FindFloodVehicle(airport_tile, z);
|
||||
}
|
||||
|
||||
/* No vehicle could be flooded on this airport anymore */
|
||||
|
Reference in New Issue
Block a user