summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/newgrf_station.cpp5
-rw-r--r--src/object_cmd.cpp7
2 files changed, 7 insertions, 5 deletions
diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp
index e86d40214..8ef375c4c 100644
--- a/src/newgrf_station.cpp
+++ b/src/newgrf_station.cpp
@@ -694,8 +694,9 @@ CommandCost PerformStationTileSlopeCheck(TileIndex north_tile, TileIndex cur_til
/* Failed callback means success. */
if (cb_res == CALLBACK_FAILED) return CommandCost();
- /* The meaning of bit 10 is inverted in the result of this callback. */
- return GetErrorMessageFromLocationCallbackResult(ToggleBit(cb_res, 10), statspec->grf_prop.grffile->grfid, STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION);
+ /* The meaning of bit 10 is inverted for a grf version < 8. */
+ if (statspec->grf_prop.grffile->grf_version < 8) ToggleBit(cb_res, 10);
+ return GetErrorMessageFromLocationCallbackResult(cb_res, statspec->grf_prop.grffile->grfid, STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION);
}
diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp
index d07385214..e613c7705 100644
--- a/src/object_cmd.cpp
+++ b/src/object_cmd.cpp
@@ -241,9 +241,10 @@ CommandCost CmdBuildObject(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
if (callback == CALLBACK_FAILED) {
cost.AddCost(CheckBuildableTile(t, 0, allowed_z, false, false));
- } else if (callback != 0) {
- /* The meaning of bit 10 is inverted in the result of this callback. */
- return GetErrorMessageFromLocationCallbackResult(ToggleBit(callback, 10), spec->grf_prop.grffile->grfid, STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION);
+ } else {
+ /* The meaning of bit 10 is inverted for a grf version < 8. */
+ if (spec->grf_prop.grffile->grf_version < 8) ToggleBit(callback, 10);
+ return GetErrorMessageFromLocationCallbackResult(callback, spec->grf_prop.grffile->grfid, STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION);
}
}