WaveManager.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef WAVEMANAGER_H
  2. #define WAVEMANAGER_H
  3. #include "HitManager.h"
  4. #include "Foe.h"
  5. #include <vector>
  6. /**
  7. Jovian Hersemeule
  8. Description du WaveManager :
  9. Le WaveManager contient toutes les données à propos des ennemis, le numéro de la vague,
  10. leur quantité, taille, puissance. Il les affiche aussi, évidemment.
  11. **/
  12. class WaveManager
  13. {
  14. /// Méthodes
  15. public:
  16. WaveManager();
  17. virtual ~WaveManager();
  18. void giveHitManager( HitManager* theHitManager );
  19. virtual void draw( SDL_Surface* screen );
  20. virtual void update(); // Actionne ennemis, collisions et vague suivante
  21. virtual void clean();
  22. void reset(); // Réinitialise le niveau
  23. virtual bool allDead(); // Vrai si tout le monde est mort
  24. virtual bool hasWon(); // Vrai si la vague est terminée
  25. virtual bool hasLost(); // Vrai si un vaisseau ennemi arrive à sortir de l'écran
  26. void setPlanet( std::string planet ); // Charge un niveau
  27. std::vector< Foe* >* getFoes(); // Retourne un pointeur sur le tableau d'ennemis
  28. SDL_Rect nearestFromPoint( SDL_Rect pos_ref );
  29. SDL_Rect nearestFromAxe( SDL_Rect pos_ref );
  30. protected:
  31. virtual void nextWave();
  32. /// Attributs
  33. private:
  34. Uint16 m_lvl;
  35. Uint32 m_chrono;
  36. bool m_allDead;
  37. bool m_complete;
  38. bool m_gameLost;
  39. std::string m_planet;
  40. HitManager* m_hiter;
  41. std::vector<Foe*> m_escadron;
  42. };
  43. #endif // WAVEMANAGER_H