#ifndef IMDLCACHE_H #define IMDLCACHE_H #define ERROR_MODEL "mdl/error.rmdl" #define EMPTY_MODEL "mdl/dev/empty_model.rmdl" #define IDSTUDIOHEADER (('T'<<24)+('S'<<16)+('D'<<8)+'I') //----------------------------------------------------------------------------- // Reference to a loaded studiomdl //----------------------------------------------------------------------------- typedef unsigned short MDLHandle_t; inline MDLHandle_t VoidPtrToMDLHandle(void* ptr) { return (MDLHandle_t)(int)(intptr_t)ptr; } inline void* MDLHandleToVirtual(MDLHandle_t hndl) { return (void*)(uintptr_t)hndl; } enum { MDLHANDLE_INVALID = (MDLHandle_t)~0 }; //----------------------------------------------------------------------------- // Cache data types //----------------------------------------------------------------------------- enum MDLCacheDataType_t { MDLCACHE_NONE = -1, // Callbacks to get called when data is loaded or unloaded for these: MDLCACHE_STUDIOHDR = 0, MDLCACHE_STUDIOHWDATA, MDLCACHE_VCOLLIDE, // Callbacks NOT called when data is loaded or unloaded for these: MDLCACHE_ANIMBLOCK, MDLCACHE_VIRTUALMODEL, MDLCACHE_VERTEXES, MDLCACHE_DECODEDANIMBLOCK }; #endif // !IMDLCACHE_H