Type typeImageCache Field image Field fileName$ Field animation Field offset Field frames Field inited End Type Type typeSoundCache Field sound Field fileName$ Field inited End Type Const emptyImage = -1 Function getAnimImageFromCache(fileName$, width, height, offset, frames) image = emptyImage For imageCache.typeImageCache = Each typeImageCache sameFileName = imageCache\fileName$ = fileName$ sameOffset = imageCache\offset = offset sameFrames = imageCache\frames = frames If sameFileName And sameOffset And sameFrames image = imageCache\image End If Next If image = emptyImage imageCache.typeImageCache = New typeImageCache For imageCache.typeImageCache = Each typeImageCache If Not imageCache\inited imageCache\image = LoadAnimImage(fileName$, width, height, offset, frames) image = imageCache\image imageCache\fileName$ = fileName$ imageCache\animation = True imageCache\offset = offset imageCache\frames = frames imageCache\inited = True EndIf Next EndIf Return image End Function Function getImageFromCache(fileName$) image = emptyImage For imageCache.typeImageCache = Each typeImageCache If imageCache\fileName$ = fileName$ Then image = imageCache\image End If Next If image = emptyImage imageCache.typeImageCache = New typeImageCache For imageCache.typeImageCache = Each typeImageCache If Not imageCache\inited imageCache\image = LoadImage(fileName$) image = imageCache\image imageCache\fileName$ = fileName$ imageCache\inited = True EndIf Next EndIf Return image End Function Function getSoundFromCache(fileName$, volume#) sound = nothing For soundCache.typeSoundCache = Each typeSoundCache If soundCache\fileName$ = fileName$ Then sound = soundCache\sound End If Next If sound = nothing soundCache.typeSoundCache = New typeSoundCache For soundCache.typeSoundCache = Each typeSoundCache If Not soundCache\inited soundCache\sound = LoadSound(fileName$) sound = soundCache\sound soundCache\fileName$ = fileName$ SoundVolume sound, volume# soundCache\inited = True EndIf Next EndIf Return sound End Function