From 18b98ad6aa4b22ce8b9dc73799401d388474a7af Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 4 Jun 2007 20:42:49 +0000 Subject: [PATCH] (svn r10038) -Fix (r8634): Sprite resulting from '?' substitution was reloaded into the cache entry for SPR_IMG_QUERY instead of the original sprite cache entry. This resulted in unaccounted missing sprite cache memory, and was exacerbated because the original missing sprite was not cached, so it did it again and again and again. Slowdowns and boom. Etc. --- src/spritecache.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/spritecache.cpp b/src/spritecache.cpp index 431df4f9ad..50d880dd34 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -121,6 +121,7 @@ static void* ReadSprite(SpriteCache *sc, SpriteID id) { uint num; byte type; + uint32 file_pos = sc->file_pos; DEBUG(sprite, 9, "Load sprite %d", id); @@ -129,10 +130,10 @@ static void* ReadSprite(SpriteCache *sc, SpriteID id) /* SPR_IMG_QUERY is a BIG FAT RED ? */ id = SPR_IMG_QUERY; - sc = GetSpriteCache(SPR_IMG_QUERY); + file_pos = GetSpriteCache(SPR_IMG_QUERY)->file_pos; } - FioSeekToFile(sc->file_pos); + FioSeekToFile(file_pos); num = FioReadWord(); type = FioReadByte();