Loading

Revision differences

Old revision #pg4tog6jeNew revision #pqeuk1r9b
1Index: src/water_cmd.cpp  1Index: src/water_cmd.cpp  
2===================================================================  2===================================================================  
3--- src/water_cmd.cpp    (revision 27194)  3--- src/water_cmd.cpp    (revision 27196)
4+++ src/water_cmd.cpp    (working copy)  4+++ src/water_cmd.cpp    (working copy)  
5@@ -419,6 +419,7 @@  5@@ -419,6 +419,7 @@  
6         if (IsTileType(tile, MP_WATER) && (!IsTileOwner(tile, OWNER_WATER) || wc == WATER_CLASS_SEA)) continue;  6         if (IsTileType(tile, MP_WATER) && (!IsTileOwner(tile, OWNER_WATER) || wc == WATER_CLASS_SEA)) continue;  
7   7   
8         bool water = IsWaterTile(tile);  8         bool water = IsWaterTile(tile);  
9+        bool river = GetWaterClass(tile) == WATER_CLASS_RIVER;  9+        bool river = HasTileWaterClass(tile) && GetWaterClass(tile) == WATER_CLASS_RIVER;
10         ret = DoCommand(tile, 0, 0, flags | DC_FORCE_CLEAR_TILE, CMD_LANDSCAPE_CLEAR);  10         ret = DoCommand(tile, 0, 0, flags | DC_FORCE_CLEAR_TILE, CMD_LANDSCAPE_CLEAR);  
11         if (ret.Failed()) return ret;  11         if (ret.Failed()) return ret;  
12   12   
  
17+                    if (river) SB(_me[tile].m6, 0, 0, 1);  17+                    if (river) SB(_me[tile].m6, 0, 0, 1);  
18                     MakeCanal(tile, _current_company, Random());  18                     MakeCanal(tile, _current_company, Random());  
19                     if (Company::IsValidID(_current_company)) {  19                     if (Company::IsValidID(_current_company)) {  
20                         Company::Get(_current_company)->infrastructure.water++; 20                         Company::Get(_current_company)->infrastructure.water++;
   21@@ -485,7 +487,7 @@
   22                 CommandCost ret = CheckTileOwnership(tile);
   23                 if (ret.Failed()) return ret;
   24             }
   25-
   26+            bool river = HasBit(_me[tile].m6, 0);
   27             if (flags & DC_EXEC) {
   28                 if (IsCanal(tile) && Company::IsValidID(owner)) {
   29                     Company::Get(owner)->infrastructure.water--;
   30@@ -492,9 +494,9 @@
   31                     DirtyCompanyInfrastructureWindows(owner);
   32                 }
   33                 DoClearSquare(tile);
   34+                if (river) MakeRiver(tile, Random());
   35                 MarkCanalsAndRiversAroundDirty(tile);
   36             }
   37-
   38             return CommandCost(EXPENSES_CONSTRUCTION, base_cost);
   39         }