CPObject

Subclasses:  CPAdi, CPChevron,CPLiftline,CPButton,CPDed, CPDial, CPDigits, CPGauge, CPIndicator, CPKneeView, CPLiftLine, CPLight, CPMachAsi, CPText




#ifdef USE_SH_POOLS
 public:
  // Overload new/delete to use a SmartHeap pool
  void *operator new(size_t size) { return MemAllocPtr(gCockMemPool,size,FALSE); };
  void operator delete(void *mem) { if (mem) MemFreePtr(mem); };
#endif
public:

 //====================================================//
 // Identification Tag and Callback Ids
 //====================================================//

 int    mIdNum;
 int    mCallbackSlot;
 int    mTransparencyType;

 //====================================================//
 // Dimensions and Locations
 //====================================================//

 int    mScale;
 int    mWidth;
 int    mHeight;
 RECT    mDestRect;

 //====================================================//
 // Frame Execution and Timing
 //====================================================//

 int    mCycleBits;
 BOOL    mDirtyFlag;

 //====================================================//
 // Persistance Optimization
 //====================================================//

 int     mPersistant;
 int     mBSurface;
 RECT     mBSrcRect;
 RECT     mBDestRect;
 ImageBuffer   *mpBackgroundSurface; //VWF May be able to remove later

 //====================================================//
 // Pointers to the Outside World
 //====================================================//

 SimBaseClass *mpOwnship;
 ImageBuffer  *mpOTWImage;
 ImageBuffer  *mpTemplate;
 CockpitManager *mpCPManager;

 //====================================================//
 // Pointers to Runtime Callback functions
 //====================================================//

 CPCallback  mExecCallback;
 CPCallback  mDisplayCallback;
 CPCallback  mEventCallback;

 //====================================================//
 // Runtime Member Functions
 //====================================================//

 void    Exec(void) {};
 virtual void Exec(SimBaseClass*) {};
 virtual void DisplayBlit(void) {};
 virtual void DisplayDraw(void) {};

 virtual void HandleEvent(void) {};
 void    SetDirtyFlag() {mDirtyFlag = TRUE;};
 virtual void  CreateLit(void){};
 virtual void DiscardLit(void){};
 virtual void Translate(WORD*) {};
 

 //====================================================//
 // Constructors and Destructors
 //====================================================//

 CPObject(ObjectInitStr*);
    virtual ~CPObject (void) {};