Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

131 lines
3.4 KiB
C++

//-------------------------------------------------------------
// Access to Point Cache
//
#ifndef __IPOINTCACHE__H
#define __IPOINTCACHE__H
#include "iFnPub.h"
#define POINTCACHE_CLASS_ID Class_ID(0x21d07ae1, 0x48d30bec)
#define POINTCACHEWSM_CLASS_ID Class_ID(0x21d07ae1, 0x48d30bed)
#define PARTICLECACHE_CLASS_ID Class_ID(0x21d07ae1, 0x48d30bee)
enum { pointcache_params };
//enums for various parameters
//note pb_record_file is no longer used and legacy
//pb_disable_mods is no longer used and legacy
//pb_fastcache is fast caching scheme but right now can potential cause crashes
// or extremely slow conditions are systems that spawn particles
enum {
pb_time,pb_start_time,pb_end_time,pb_samples, pb_disable_mods, pb_cache_file, pb_record_file,pb_relative,pb_strength,pb_fastcache
};
class IPointCache;
class IPointCacheWSM;
class IParticleCache;
//***************************************************************
//Function Publishing System stuff
//****************************************************************
#define POINTCACHE_INTERFACE Interface_ID(0x53b4409b, 0x18ee7cc8)
#define GetIPointCacheInterface(cd) \
(IPointCache *)(cd)->GetInterface(POINTCACHE_INTERFACE)
#define POINTCACHEWSM_INTERFACE Interface_ID(0x53b4409b, 0x18ee7cc9)
#define GetIPointCacheWSMInterface(cd) \
(IPointCacheWSM *)(cd)->GetInterface(POINTCACHEWSM_INTERFACE)
#define PARTICLECACHE_INTERFACE Interface_ID(0x53b4409b, 0x18ee7cd0)
#define GetIParticleCacheInterface(cd) \
(IParticleCache *)(cd)->GetInterface(PARTICLECACHE_INTERFACE)
enum { pointcache_record, pointcache_setcache, pointcache_enablemods,pointcache_disablemods
};
//****************************************************************
class IPointCache : public FPMixinInterface
{
public:
//Function Publishing System
//Function Map For Mixin Interface
//*************************************************
BEGIN_FUNCTION_MAP
VFN_0(pointcache_record, fnRecord);
VFN_0(pointcache_setcache, fnSetCache);
VFN_0(pointcache_enablemods, fnEnableMods);
VFN_0(pointcache_disablemods, fnDisableMods);
END_FUNCTION_MAP
FPInterfaceDesc* GetDesc(); // <-- must implement
virtual void fnRecord()=0;
virtual void fnSetCache()=0;
virtual void fnEnableMods()=0;
virtual void fnDisableMods()=0;
};
class IPointCacheWSM : public FPMixinInterface
{
public:
//Function Publishing System
//Function Map For Mixin Interface
//*************************************************
BEGIN_FUNCTION_MAP
VFN_0(pointcache_record, fnRecord);
VFN_0(pointcache_setcache, fnSetCache);
VFN_0(pointcache_enablemods, fnEnableMods);
VFN_0(pointcache_disablemods, fnDisableMods);
END_FUNCTION_MAP
FPInterfaceDesc* GetDesc(); // <-- must implement
virtual void fnRecord()=0;
virtual void fnSetCache()=0;
virtual void fnEnableMods()=0;
virtual void fnDisableMods()=0;
};
class IParticleCache : public FPMixinInterface
{
public:
//Function Publishing System
//Function Map For Mixin Interface
//*************************************************
BEGIN_FUNCTION_MAP
VFN_0(pointcache_record, fnRecord);
VFN_0(pointcache_setcache, fnSetCache);
END_FUNCTION_MAP
FPInterfaceDesc* GetDesc(); // <-- must implement
virtual void fnRecord()=0;
virtual void fnSetCache()=0;
};
#endif // __IPOINTCACHE__H