#ifndef __ENEMYSHIP_H__ #define __ENEMYSHIP_H__ #include "spaceship.h" #include #include "explosion.h" #include "m3d.h" #include "mquat.h" enum EnemyState { FORWARD = 0, LEFT, BACKWARD, RIGHT, NUM_STATES }; class EnemyShip : public Spaceship { public: EnemyShip(); ~EnemyShip() {} void Render(); virtual void UpdateState(float timeElapsed); void Hit(float damage); void ClearExplosion() { _explode = NULL; } private: struct AIDecision { bool yawLeft; bool yawRight; bool pitchUp; bool pitchDown; bool rollCW; bool rollCCW; bool accel; bool fire; }; void MakeDecision(); AIDecision _decision; int _state; float _flashcount; bool _flash; float _fireTime; Explosion *_explode; }; #endif