From b714160fccc19490e4a8b8d5d371c8d0c69d8ac7 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 20 Mar 2010 17:14:26 +0000 Subject: [PATCH] (svn r19491) -Codechange: Keep track of last error in CmdRemoveLongRoad(). --- src/road_cmd.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 9942ae787e..07805be7e2 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -848,6 +848,8 @@ CommandCost CmdRemoveLongRoad(TileIndex start_tile, DoCommandFlag flags, uint32 Money money = GetAvailableMoneyForCommand(); TileIndex tile = start_tile; + CommandCost last_error = CMD_ERROR; + bool had_success = false; /* Start tile is the small number. */ for (;;) { RoadBits bits = AxisToRoadBits(axis); @@ -868,6 +870,9 @@ CommandCost CmdRemoveLongRoad(TileIndex start_tile, DoCommandFlag flags, uint32 RemoveRoad(tile, flags, bits, rt, true, false); } cost.AddCost(ret); + had_success = true; + } else { + last_error = ret; } } @@ -876,7 +881,7 @@ CommandCost CmdRemoveLongRoad(TileIndex start_tile, DoCommandFlag flags, uint32 tile += (axis == AXIS_Y) ? TileDiffXY(0, 1) : TileDiffXY(1, 0); } - return (cost.GetCost() == 0) ? CMD_ERROR : cost; + return had_success ? cost : last_error; } /** Build a road depot.