From 29df09e917b976773679f4ff1ef44e1de5c981a9 Mon Sep 17 00:00:00 2001 From: Charles Pigott Date: Tue, 31 Aug 2021 21:40:59 +0100 Subject: [PATCH] Fix #9527: Crash when trying to place multitile objects at map edge (cherry picked from commit a2d93441fab53077c832247f09263762c38c8e90) --- src/object_cmd.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp index 30ee2825a5..299c92407b 100644 --- a/src/object_cmd.cpp +++ b/src/object_cmd.cpp @@ -223,6 +223,9 @@ CommandCost CmdBuildObject(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 int size_x = GB(spec->size, HasBit(view, 0) ? 4 : 0, 4); int size_y = GB(spec->size, HasBit(view, 0) ? 0 : 4, 4); TileArea ta(tile, size_x, size_y); + TILE_AREA_LOOP(t, ta) { + if (!IsValidTile(t)) return_cmd_error(STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB); // Might be off the map + } if (type == OBJECT_OWNED_LAND) { if (_settings_game.construction.purchase_land_permitted == 0) return_cmd_error(STR_PURCHASE_LAND_NOT_PERMITTED);