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:
Sevenfm
2020-02-15 16:19:35 +00:00
parent 25701acf7b
commit 8e9f9cb8a1
51 changed files with 9659 additions and 1730 deletions
+49
View File
@@ -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