From 0a7546b6abb13c9ea287e7cf76af9f7af1746c2b Mon Sep 17 00:00:00 2001 From: darkvater Date: Sun, 30 Jan 2005 14:32:52 +0000 Subject: (svn r1729) - Fix: [ 1112469 ] Clearing land for free by reallocating HQ --- unmovable_cmd.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/unmovable_cmd.c b/unmovable_cmd.c index 21f1c99bc..ce5b46798 100644 --- a/unmovable_cmd.c +++ b/unmovable_cmd.c @@ -314,21 +314,29 @@ extern int32 CheckFlatLandBelow(uint tile, uint w, uint h, uint flags, uint inva */ int32 CmdBuildCompanyHQ(int x, int y, uint32 flags, uint32 p1, uint32 p2) { - uint tile = TILE_FROM_XY(x,y); + TileIndex tile = TILE_FROM_XY(x,y); Player *p = DEREF_PLAYER(_current_player); int score; int32 cost = 0; SET_EXPENSES_TYPE(EXPENSES_PROPERTY); - if (CheckFlatLandBelow(tile, 2, 2, flags, 0, NULL) == CMD_ERROR) + cost = CheckFlatLandBelow(tile, 2, 2, flags, 0, NULL); + + if (cost == CMD_ERROR) return CMD_ERROR; - if (p1) - cost = DoCommand( + if (p1) { + int32 ret = DoCommand( TileX(p->location_of_house) * 16, TileY(p->location_of_house) * 16, p1 & 0xFF, 0, flags, CMD_DESTROY_COMPANY_HQ); + if (ret == CMD_ERROR) + return CMD_ERROR; + + cost += ret; + } + if (flags & DC_EXEC) { score = UpdateCompanyRatingAndValue(p, false); -- cgit v1.2.3-70-g09d2