diff --git a/similar/main/texmerge.cpp b/similar/main/texmerge.cpp index 71284ef94..4105b658b 100644 --- a/similar/main/texmerge.cpp +++ b/similar/main/texmerge.cpp @@ -32,6 +32,9 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "timer.h" #include "texmerge.h" +#include "compiler-range_for.h" +#include "partial_range.h" + #ifdef OGL #include "ogl_init.h" #define MAX_NUM_CACHE_BITMAPS 200 @@ -51,7 +54,7 @@ struct TEXTURE_CACHE { static array Cache; -static int num_cache_entries = 0; +static unsigned num_cache_entries; static int cache_hits = 0; static int cache_misses = 0; @@ -70,12 +73,13 @@ int texmerge_init(int num_cached_textures) else num_cache_entries = MAX_NUM_CACHE_BITMAPS; - for (int i=0; i -1) && (Cache[i].top_bmp==bitmap_top) && (Cache[i].bottom_bmp==bitmap_bottom) && (Cache[i].orient==orient )) { + range_for (auto &i, partial_range(Cache, num_cache_entries)) + { + if ( (i.last_time_used > -1) && (i.top_bmp==bitmap_top) && (i.bottom_bmp==bitmap_bottom) && (i.orient==orient )) { cache_hits++; - Cache[i].last_time_used = timer_query(); - return Cache[i].bitmap.get(); + i.last_time_used = timer_query(); + return i.bitmap.get(); } - if ( Cache[i].last_time_used < lowest_time_used ) { - lowest_time_used = Cache[i].last_time_used; - least_recently_used = &Cache[i]; + if ( i.last_time_used < lowest_time_used ) { + lowest_time_used = i.last_time_used; + least_recently_used = &i; } }