// Setup and Cleanup need
to have additions here, but still call the parent versions
virtual
void Setup( ImageBuffer *output, void(*tgtDrawCallback)(void*,RenderGMRadar*),
void *tgtDrawParam );
virtual
void Cleanup( void );
void
SetGimbalLimit( float angleLimit )
{ gimbalLimit = angleLimit; };
void SetBeam(
Tpoint *from, Tpoint *at, Tpoint *center, float platformHdg, float beamAngle,
int beamPercent, BOOL movingRight );
void DrawComposite(
Tpoint *centerPoint, float platformHdg );
// These are passed through
to the RenderGMRadar object we're using
void SetRange(
float newRange, int newLOD );
void
SetGain( float newGain )
{ radar.SetGain( newGain ); };
float
GetRange( void )
{ return radar.GetRange() / GM_OVERSCAN_RNG; };
int
GetLOD( void )
{ return radar.GetLOD(); };
float
GetGimbalLimit( void )
{ return gimbalLimit; };
float
GetGain( void )
{ return radar.GetGain(); };
void DebugDrawLeftTexture(
Render2D *renderer );
void DebugDrawRadarImage(
ImageBuffer *target );
protected:
ImageBuffer
renderTarget;
RenderGMRadar
radar;
DWORD
paletteHandle;
BYTE
imageData[GM_TEXTURE_SIZE*GM_TEXTURE_SIZE];
void(*tgtDrawCB)(void*,
RenderGMRadar*);
void
*tgtDrawCBparam;
float
range;
float
worldToUnitScale;
DWORD
lTexHandle;
float
lOriginX;
float
lOriginY;
float
lAngle;
DWORD
rTexHandle;
float
rOriginX;
float
rOriginY;
float
rAngle;
int
prevBeamPercent;
BOOL
prevBeamRight;
float
gimbalLimit;
const struct OpRecord *nextOperation;
protected:
void BackgroundGeneration(
Tpoint *from, Tpoint *at, float platformHdg, int beamPercent, BOOL movingRight
);
void NewImage(
Tpoint *at, float platformHdg, BOOL replaceRight );
};