From 383642a812cc27ef1a4adc21d46d4b57e7d3fcd7 Mon Sep 17 00:00:00 2001 From: Duncan Date: Sat, 15 Apr 2023 22:11:01 +0100 Subject: [PATCH] Fix #19916. Crash when changing language (#19945) Issue caused by the unload image function not resetting the image id back to invalid. Also noticed that water wasn't correctly cleaning up. Fix #19918, #19926, #19927, #19928, #19929, #19931 --- src/openrct2/object/Object.cpp | 1 + src/openrct2/object/WaterObject.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/openrct2/object/Object.cpp b/src/openrct2/object/Object.cpp index 8a6c4cb619..94a3aff0e9 100644 --- a/src/openrct2/object/Object.cpp +++ b/src/openrct2/object/Object.cpp @@ -197,6 +197,7 @@ void Object::UnloadImages() if (_baseImageId != ImageIndexUndefined) { GfxObjectFreeImages(_baseImageId, GetImageTable().GetCount()); + _baseImageId = ImageIndexUndefined; } } diff --git a/src/openrct2/object/WaterObject.cpp b/src/openrct2/object/WaterObject.cpp index 98f3b81788..2f3b976d07 100644 --- a/src/openrct2/object/WaterObject.cpp +++ b/src/openrct2/object/WaterObject.cpp @@ -51,6 +51,8 @@ void WaterObject::Unload() _legacyType.string_idx = 0; _legacyType.image_id = 0; + _legacyType.palette_index_1 = 0; + _legacyType.palette_index_2 = 0; } void WaterObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t height) const