diff --git a/src/landscape.cpp b/src/landscape.cpp index d9bc4bc659..121c603569 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -30,6 +30,7 @@ #include "core/random_func.hpp" #include "object_base.h" #include "company_func.h" +#include "company_gui.h" #include "pathfinder/aystar.h" #include "saveload/saveload.h" #include "framerate_type.h" @@ -680,7 +681,16 @@ CommandCost CmdLandscapeClear(DoCommandFlag flags, TileIndex tile) if (flags & DC_EXEC) { if (c != nullptr) c->clear_limit -= 1 << 16; - if (do_clear) DoClearSquare(tile); + if (do_clear) { + if (IsWaterTile(tile) && IsCanal(tile)) { + Owner owner = GetTileOwner(tile); + if (Company::IsValidID(owner)) { + Company::Get(owner)->infrastructure.water--; + DirtyCompanyInfrastructureWindows(owner); + } + } + DoClearSquare(tile); + } } return cost; }