public:
virtual ~VuDriver();
virtual int Type() = 0;
virtual void NoExec(VU_TIME timestamp)
= 0;
virtual void Exec(VU_TIME timestamp) =
0;
virtual void AutoExec(VU_TIME timestamp)
= 0;
virtual VU_ERRCODE Handle(VuEvent *event)
= 0;
virtual VU_ERRCODE Handle(VuFullUpdateEvent
*event) = 0;
virtual VU_ERRCODE Handle(VuPositionUpdateEvent
*event) = 0;
virtual void AlignTimeAdd(VU_TIME timeDelta)
= 0;
virtual void AlignTimeSubtract(VU_TIME
timeDelta) = 0;
virtual void ResetLastUpdateTime (VU_TIME
time) = 0;
// Accessor
VuEntity *Entity() { return entity_; }
// AI hooks
virtual int AiType();
// returns 0 if no AI is present
virtual VU_BOOL AiExec();
// executes Ai component
virtual void *AiPointer();
// returns pointer to Ai data (game specific)
// debug hooks
virtual int DebugString(char *str);
protected:
VuDriver(VuEntity *entity);
// Data
protected:
VuEntity *entity_;