From 50c8fefb356fbac13a83fa3d1a5f0c5c1b65284b Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 29 Jun 2017 19:25:59 +0100 Subject: [PATCH] Fix bug in sprite_move, add sprite null check --- src/openrct2/world/sprite.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/openrct2/world/sprite.c b/src/openrct2/world/sprite.c index 164173898b..cdc00cb15c 100644 --- a/src/openrct2/world/sprite.c +++ b/src/openrct2/world/sprite.c @@ -557,10 +557,12 @@ void sprite_move(sint16 x, sint16 y, sint16 z, rct_sprite *sprite) size_t currentIndex = GetSpatialIndexOffset(sprite->unknown.x, sprite->unknown.y); if (newIndex != currentIndex) { uint16 *spriteIndex = &gSpriteSpatialIndex[currentIndex]; - rct_sprite *sprite2 = get_sprite(*spriteIndex); - while (sprite != sprite2) { - spriteIndex = &sprite2->unknown.next_in_quadrant; - sprite2 = get_sprite(*spriteIndex); + if (*spriteIndex != SPRITE_INDEX_NULL) { + rct_sprite *sprite2 = get_sprite(*spriteIndex); + while (sprite != sprite2) { + spriteIndex = &sprite2->unknown.next_in_quadrant; + sprite2 = get_sprite(*spriteIndex); + } } *spriteIndex = sprite->unknown.next_in_quadrant;