VehRwrClass

 public:
        VehRwrClass (int idx, SimMoverClass* self);
        virtual ~VehRwrClass (void);

        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);