mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
LOBOT code (by Asdow, original code by Bio).
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8755 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
#pragma once
|
||||
#ifndef _LBT_SURFACECACHE__H_
|
||||
#define _LBT_SURFACECACHE__H_
|
||||
|
||||
#include "Animation Data.h"
|
||||
#include "Utilities.h"
|
||||
#include "Sys Globals.h"
|
||||
#include "Debug Control.h"
|
||||
|
||||
namespace LogicalBodyTypes {
|
||||
|
||||
class SurfaceCache {
|
||||
|
||||
private:
|
||||
struct CacheEntry {
|
||||
CacheEntry(AnimationSurfaceType* animSurface, STRUCTURE_FILE_REF* pStructFile) {
|
||||
surface = animSurface;
|
||||
structFile = pStructFile;
|
||||
loaded = false;
|
||||
prev = next = NULL;
|
||||
}
|
||||
bool loaded;
|
||||
AnimationSurfaceType* surface;
|
||||
STRUCTURE_FILE_REF* structFile;
|
||||
CacheEntry* prev;
|
||||
CacheEntry* next;
|
||||
} typedef CacheEntry;
|
||||
typedef std::vector<CacheEntry*> SurfaceVector;
|
||||
|
||||
public:
|
||||
SurfaceCache(UINT32 size);
|
||||
~SurfaceCache();
|
||||
AnimationSurfaceType* GetLoadedSurface(UINT32 idx);
|
||||
UINT32 AddSurface(AnimationSurfaceType* surface, STRUCTURE_FILE_REF* pStructFile);
|
||||
|
||||
private:
|
||||
UINT32 loadedElementsMax;
|
||||
UINT32 loadedElements;
|
||||
CacheEntry* newest;
|
||||
CacheEntry* oldest;
|
||||
SurfaceVector surfaceVector;
|
||||
static bool LoadSurface(AnimationSurfaceType* animSurfaceType, STRUCTURE_FILE_REF* pStructureFileRef);
|
||||
static bool SurfaceCache::UnloadSurface(AnimationSurfaceType* animSurfaceType);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user