From 49220cc6f1e3570dc1b9001c40af2a8a4e35b649 Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 18 Jun 2007 19:53:50 +0000 Subject: (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified. --- src/landscape.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/landscape.cpp') diff --git a/src/landscape.cpp b/src/landscape.cpp index 07b7ca4b6..e2bccc137 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -401,20 +401,19 @@ CommandCost CmdClearArea(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) if (ex < sx) Swap(ex, sx); if (ey < sy) Swap(ey, sy); - money = GetAvailableMoneyForCommand(); - cost = 0; + money.AddCost(GetAvailableMoneyForCommand()); for (x = sx; x <= ex; ++x) { for (y = sy; y <= ey; ++y) { ret = DoCommand(TileXY(x, y), 0, 0, flags & ~DC_EXEC, CMD_LANDSCAPE_CLEAR); if (CmdFailed(ret)) continue; - cost += ret; success = true; if (flags & DC_EXEC) { - if (ret > 0 && (money -= ret) < 0) { - _additional_cash_required = ret; - return cost - ret; + money.AddCost(-ret.GetCost()); + if (ret.GetCost() > 0 && money.GetCost() < 0) { + _additional_cash_required = ret.GetCost(); + return cost; } DoCommand(TileXY(x, y), 0, 0, flags, CMD_LANDSCAPE_CLEAR); @@ -426,6 +425,7 @@ CommandCost CmdClearArea(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) ); } } + cost.AddCost(ret); } } -- cgit v1.2.3-54-g00ecf