Loading

Paste #pysbq6vqp

  1. Index: src/water_cmd.cpp
  2. ===================================================================
  3. --- src/water_cmd.cpp   (revision 27200)
  4. +++ src/water_cmd.cpp   (working copy)
  5. @@ -39,7 +39,7 @@
  6.  #include "company_base.h"
  7.  #include "company_gui.h"
  8.  #include "newgrf_generic.h"
  9. -
  10. +#include "cheat_type.h"
  11.  #include "table/strings.h"
  12.  
  13.  #include "safeguards.h"
  14. @@ -470,6 +470,8 @@
  15.             if (flags & DC_NO_WATER) return_cmd_error(STR_ERROR_CAN_T_BUILD_ON_WATER);
  16.  
  17.             Money base_cost = IsCanal(tile) ? _price[PR_CLEAR_CANAL] : _price[PR_CLEAR_WATER];
  18. +           if (IsRiver(tile) && _game_mode == GM_NORMAL && !_cheats.magic_bulldozer.value) base_cost = 0;
  19. +
  20.             /* Make sure freeform edges are allowed or it's not an edge tile. */
  21.             if (!_settings_game.construction.freeform_edges && (!IsInsideMM(TileX(tile), 1, MapMaxX() - 1) ||
  22.                     !IsInsideMM(TileY(tile), 1, MapMaxY() - 1))) {
  23. @@ -491,7 +493,9 @@
  24.                     Company::Get(owner)->infrastructure.water--;
  25.                     DirtyCompanyInfrastructureWindows(owner);
  26.                 }
  27. +               bool river = HasTileWaterClass(tile) && GetWaterClass(tile) == WATER_CLASS_RIVER;
  28.                 DoClearSquare(tile);
  29. +               if (river && _game_mode == GM_NORMAL && !_cheats.magic_bulldozer.value) MakeRiver(tile, Random());
  30.                 MarkCanalsAndRiversAroundDirty(tile);
  31.             }
  32.  
  33. @@ -1314,6 +1318,7 @@
  34.     /* Canals can't be terraformed */
  35.     if (IsWaterTile(tile) && IsCanal(tile)) return_cmd_error(STR_ERROR_MUST_DEMOLISH_CANAL_FIRST);
  36.  
  37. +   if (IsWaterTile(tile) && IsRiver(tile)) return_cmd_error(STR_ERROR_SITE_UNSUITABLE);
  38.     return DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
  39.  }

Comments