Fix #12030: Water infrastructure totals when using DC_FORCE_CLEAR_TILE

To remove objects on water
This commit is contained in:
Jonathan G Rennison 2024-06-05 17:31:55 +01:00 committed by rubidium42
parent b4b2fad8e0
commit fa82dd6096

View File

@ -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;
}