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.
48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
#ifndef __AIKNOWHPP__
|
|
#define __AIKNOWHPP__
|
|
|
|
enum KNOWLEDGE_LEVEL {KNOW_BEARING,KNOW_BEARINGSPEED,KNOW_LOCATION,KNOW_TRUE};
|
|
enum THREAT_LEVEL {IMMEDIATE_THREAT,POTENTIAL_THREAT,WARNING_THREAT,OPPORTUNITY_THREAT};
|
|
|
|
typedef union {
|
|
struct {
|
|
double bearingOffset;
|
|
};
|
|
struct {
|
|
double temp;
|
|
};
|
|
} AICalcData;
|
|
|
|
class AIKnowledge
|
|
{
|
|
private:
|
|
static FixedHeap<AIKnowledge> m_EmptyKnowledge;
|
|
|
|
protected:
|
|
int id;
|
|
double distance;
|
|
double bearing;
|
|
double curX,curY;
|
|
double speed;
|
|
KNOWLEDGE_LEVEL knowledge;
|
|
THREAT_LEVEL threat;
|
|
UINT subthreat;
|
|
|
|
int validCount;
|
|
AIKnowledge *next,*prev;
|
|
|
|
AIKnowledge *tnext,*tprev;
|
|
AICalcData calcData;
|
|
|
|
public:
|
|
AIKnowledge (void);
|
|
~AIKnowledge (void);
|
|
|
|
static AIKnowledge *GetBlankKnowledge (void) { return (AIKnowledge *) m_EmptyKnowledge.Alloc (); }
|
|
static void DoneKnowledge (AIKnowledge *oldknow) { m_EmptyKnowledge.Free (oldknow); }
|
|
|
|
void *operator new (size_t size) {return GetBlankKnowledge (); }
|
|
void operator delete (void *value,size_t size) { DoneKnowledge ((AIKnowledge *) value); }
|
|
};
|
|
|
|
#endif |