virtual
SimObjectType* Exec (SimObjectType* targetList);
virtual
void Display (VirtualDisplay*) {};
virtual
void SetPower (BOOL flag);
virtual
int ObjectDetected (FalconEntity*, int trackType);
int
LowAltPriority (void) {return lowAltPriority;};
int
AutoDrop (void)
{return dropPattern;};
// State Access Functions
FalconEntity* CurSpike (void);
protected:
enum {None,
Diamond, MissileLaunch, MissileActivity};
enum {MaxRWRTracks
= 16, PriorityContacts = 5};
typedef
struct DetectListElement
{
FalconEntity*
entity;
RadarDataType* radarData;
float
bearing;
VU_TIME lastHit;
VU_TIME lastPlayed;
// When was audio last played? (for player search tones)
unsigned long
isLocked
: 1, // Is locked on us
missileActivity : 1, // Is launching on us (active OR
beam rider)
missileLaunch : 1, // Is launching on us
(active missile)
newDetection : 1, // Have we played
audio for this new hit yet? (only player cares)
selected
: 1, // Used to mark the "selected" emitter for playing audio
previouslyLocked : 1; // Used to decide about making budy spike
calls
float
lethality;
} DetectListElement;
//
Data Elements
DetectListElement
detectionList[MaxRWRTracks];
int
numContacts;
int
lowAltPriority; // TRUE means low altitude threats are
considered more lethal
char
dropPattern;
// 0 = manual chaff/flare drop pattern, 1 = auto chaff/flare drop pattern
// Helper functions
DetectListElement* IsTracked
(FalconEntity* object);
DetectListElement* AddTrack
(FalconEntity* object, float lethality);
void DropTrack
(int trackNum);
void ResortList
(DetectListElement*);
void ReportBuddySpike
(FalconEntity* theObject);
virtual
float GetLethality (FalconEntity* theObject);