From 7d3c273594f1081a93e567d24de7223d6bf22a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Fri, 12 Jan 2024 17:51:41 +0200 Subject: [PATCH] Fix #21171: Crash creating entities with no slots available --- src/openrct2/scripting/bindings/world/ScMap.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/openrct2/scripting/bindings/world/ScMap.cpp b/src/openrct2/scripting/bindings/world/ScMap.cpp index b15d53de51..84ac899274 100644 --- a/src/openrct2/scripting/bindings/world/ScMap.cpp +++ b/src/openrct2/scripting/bindings/world/ScMap.cpp @@ -233,6 +233,11 @@ namespace OpenRCT2::Scripting DukValue createEntityType(duk_context* ctx, const DukValue& initializer) { TEntityType* entity = CreateEntity(); + if (entity == nullptr) + { + // Probably no more space for entities for this specified entity type. + return ToDuk(ctx, undefined); + } auto entityPos = CoordsXYZ{ AsOrDefault(initializer["x"], 0), AsOrDefault(initializer["y"], 0), AsOrDefault(initializer["z"], 0) };