From 55fea26a96c2cf1def7649e125303e7ca2f24f2f Mon Sep 17 00:00:00 2001 From: Michael Steenbeek Date: Sun, 7 Mar 2021 14:53:44 +0100 Subject: [PATCH] Fix #14172: Assertion hit in window_tile_inspector_swap_elements() --- src/openrct2-ui/windows/TileInspector.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/openrct2-ui/windows/TileInspector.cpp b/src/openrct2-ui/windows/TileInspector.cpp index 6cfb539ec0..701be0b74c 100644 --- a/src/openrct2-ui/windows/TileInspector.cpp +++ b/src/openrct2-ui/windows/TileInspector.cpp @@ -599,8 +599,12 @@ static void window_tile_inspector_rotate_element(int32_t elementIndex) // Swap element with its parent static void window_tile_inspector_swap_elements(int16_t first, int16_t second) { - openrct2_assert(first >= 0 && first < windowTileInspectorElementCount, "first out of range"); - openrct2_assert(second >= 0 && second < windowTileInspectorElementCount, "second out of range"); + bool firstInRange = first >= 0 && first < windowTileInspectorElementCount; + bool secondInRange = second >= 0 && second < windowTileInspectorElementCount; + // This might happen if two people are modifying the same tile. + if (!firstInRange || !secondInRange) + return; + auto modifyTile = TileModifyAction(windowTileInspectorToolMap, TileModifyType::AnySwap, first, second); GameActions::Execute(&modifyTile); }