protected:
UInt32
lastTargetLockSend;
// When did we last send a lock message?
BOOL
isEmitting;
// Though the radar may be "on" is it radiating?
struct
RadarDataType *radarData;
// Pointer into the class table data for this type of radar
static
const float
CursorRate;
// How fast do the radar cursors move?
virtual void SetSensorTarget( SimObjectType* newTarget );
// Used for things in the target list
virtual
float ReturnStrength( SimObjectType* target ); // > 1.0 means I see
it. < 1.0 means I don't
// Considers look down, jamming, range, RCS,
// Doppler notch by default.
RadarMode
mode;
// Current radar mode
RadarMode
prevMode;
// Indicate where we were before AA override
public :
RadarClass (int type, SimMoverClass*
parentPlatform);
virtual ~RadarClass()
{};
// Methods inherited from SensorClass (commented out here since we aren't
doing anything)
// virtual void ExecModes(int designateCmd,
int dropTrackCmd)
{};
// virtual void UpdateState(int cursorXCmd,
int cursorYCmd)
{};
// virtual void PushButton( int whichButton,
int whichMFD = 0)
{};
// This does the basic radar
modeling
virtual
SimObjectType* Exec( SimObjectType* targetList ) = 0;
// Drawing functions
virtual
void DisplayInit (ImageBuffer* newImage);
// Target notification function
(triggers RWR and Digi responses)
virtual
void SendTrackMsg (VU_ID id, unsigned int trackType, unsigned int hardpoint
= 0);
// Send a track message
// State control functions
(callable from any thread)
virtual
void SetPower( BOOL state );
virtual
void SetEmitting( BOOL state );
virtual
void RangeStep( int )
{};
// Step up/down in range
virtual
void NextTarget( void )
{}; // Step to next
available target
virtual
void PrevTarget( void )
{};
// Step to prev available target
virtual
void SetDesiredTarget( SimObjectType* newTarget );
virtual
void DefaultAAMode( void )
{};
// If not in AA go to default AA mode, otherwise nothing
virtual
void StepAAmode( void )
{};
// Enter or step AA mode
virtual
void SetSRMOverride()
{};
// Temporary pop into short range AA mode
virtual
void SetMRMOverride()
{};
// Temporary pop into medium range AA mode
virtual
void ClearOverride()
{}; // Return to previous
mode
virtual
void SelectACMVertical()
{}; // Go directly
to the named
virtual
void SelectACMBore()
{};
// AA mode.
virtual
void SelectACMSlew()
{};
// (in hard mode, at least, this only works
virtual
void SelectACM30x20()
{};
// when already in an ACM mode.)
virtual
void StepAAscanHeight()
{};
// Adjust the width and height of the
virtual
void StepAAscanWidth()
{};
// radar scan volume.
virtual
void StepAAelvation( int )
{};
// Adjust the lookup/lookdown angle of the radar (cmd=0 means center it)
virtual
void DefaultAGMode( void )
{}; // If not in AG
go to default AG mode, otherwise nothing
virtual
void StepAGmode( void )
{};
// Enter or step AA mode
virtual
void StepAGfov()
{}; // Select the
degree of "zoom" on GM radar
virtual
void StepAGgain( int )
{}; // Select gain
on GM radar
virtual void SetMode(RadarMode )
{}; // Select new mode
virtual
void ToggleAGfreeze()
{};
// Freeze radar image
virtual
void ToggleAGsnowPlow()
{}; // Look a fixed
distance ahead of the AC
virtual
void SetAGSnowPlow(int )
{}; // Look a fixed
distance ahead of the AC
virtual
void ToggleAGcursorZero()
{}; // Remove pilot
cursor offsets
virtual
void SetGroundPoint (float, float, float)
{}; //Set center of ground map
radar
int
IsEmitting (void)
{ return isEmitting; };
virtual
int IsAG (void)
{ return FALSE; };
// Is radar in A/G mode
virtual
void GetAGCenter (float* x, float* y)
{*x = 0; *y = 0;};
// Center of radar ground search
virtual
float GetRange(void)
{ return 10.0F; };
// Display range in NM
virtual
float GetVolume (void)
{ return 1.0472F; }; //
Default to 60 degree cone
virtual
void GetCursorPosition (float*, float*) {};
public:
static
const UInt32
TrackUpdateTime;
// How long between lock message retransmits?