summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--regression/regression/main.nut2
-rw-r--r--src/object_cmd.cpp9
2 files changed, 9 insertions, 2 deletions
diff --git a/regression/regression/main.nut b/regression/regression/main.nut
index 0434524d2..5eb65b08f 100644
--- a/regression/regression/main.nut
+++ b/regression/regression/main.nut
@@ -426,7 +426,7 @@ function Regression::Company()
print(" GetCompanyHQ(): " + AICompany.GetCompanyHQ(AICompany.COMPANY_SELF));
print(" BuildCompanyHQ(): " + AICompany.BuildCompanyHQ(AIMap.GetTileIndex(129, 129)));
print(" GetCompanyHQ(): " + AICompany.GetCompanyHQ(AICompany.COMPANY_SELF));
- print(" BuildCompanyHQ(): " + AICompany.BuildCompanyHQ(AIMap.GetTileIndex(129, 128)));
+ print(" BuildCompanyHQ(): " + AICompany.BuildCompanyHQ(AIMap.GetTileIndex(239, 76)));
print(" GetLastErrorString(): " + AIError.GetLastErrorString());
print(" GetAutoRenewStatus(); " + AICompany.GetAutoRenewStatus(AICompany.COMPANY_SELF));
print(" SetAutoRenewStatus(true); " + AICompany.SetAutoRenewStatus(true));
diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp
index 3fb61d647..479f3b0d1 100644
--- a/src/object_cmd.cpp
+++ b/src/object_cmd.cpp
@@ -248,7 +248,14 @@ CommandCost CmdBuildObject(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
} else {
if (!allow_ground) return_cmd_error(STR_ERROR_MUST_BE_BUILT_ON_WATER);
/* For non-water tiles, we'll have to clear it before building. */
- cost.AddCost(DoCommand(t, 0, 0, flags & ~DC_EXEC, CMD_LANDSCAPE_CLEAR));
+
+ /* When relocating HQ, allow it to be relocated (partial) on itself. */
+ if (!(type == OBJECT_HQ &&
+ IsTileType(t, MP_OBJECT) &&
+ IsTileOwner(t, _current_company) &&
+ IsObjectType(t, OBJECT_HQ))) {
+ cost.AddCost(DoCommand(t, 0, 0, flags & ~DC_EXEC, CMD_LANDSCAPE_CLEAR));
+ }
}
}