From ab6ce6fd13abaae31b5bf8ab8d4be231b0c9b681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Sat, 10 Feb 2018 12:38:57 +0100 Subject: [PATCH] Don't try removing sprites past the end of list --- src/openrct2/world/Sprite.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/openrct2/world/Sprite.cpp b/src/openrct2/world/Sprite.cpp index 1a4f51d17f..7d7a89f0d3 100644 --- a/src/openrct2/world/Sprite.cpp +++ b/src/openrct2/world/Sprite.cpp @@ -629,7 +629,8 @@ void sprite_remove(rct_sprite *sprite) size_t quadrantIndex = GetSpatialIndexOffset(sprite->unknown.x, sprite->unknown.y); uint16 *spriteIndex = &gSpriteSpatialIndex[quadrantIndex]; rct_sprite *quadrantSprite; - while ((quadrantSprite = get_sprite(*spriteIndex)) != sprite) { + while (*spriteIndex != SPRITE_INDEX_NULL && (quadrantSprite = get_sprite(*spriteIndex)) != sprite) + { spriteIndex = &quadrantSprite->unknown.next_in_quadrant; } *spriteIndex = sprite->unknown.next_in_quadrant;