Armes_Gest.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #ifndef ARMES_GEST_H
  2. #define ARMES_GEST_H
  3. #include "CaisseArme.h"
  4. #include "../Structures/SpriteLoader.h"
  5. #include <list>
  6. #include <cstdlib> // Random
  7. // Armes de rang 1
  8. #include "Modeles/Shotgun.h"
  9. #include "Modeles/Gun.h"
  10. #include "Modeles/Fusil.h"
  11. // Armes de rang 2
  12. #include "Modeles/Usiane.h"
  13. #include "Modeles/Scatter.h"
  14. #include "Modeles/Baroudeur.h"
  15. // Armes de rang 3
  16. #include "Modeles/Sulfateuse.h"
  17. #include "Modeles/Triphaseur.h"
  18. #include "Modeles/Bomber.h"
  19. class Craft; // Permet de stocker une combinaison
  20. class Armes_Gest
  21. {
  22. public:
  23. Armes_Gest( SpriteLoader* sprites );
  24. virtual ~Armes_Gest();
  25. SDL_Surface* getImg( WeaponType model ) const; // Permet au perso d'obtenir la surface associée à l'arme
  26. void allDisplay(const Vec &lookAt, SDL_Surface* screen);
  27. void drop( Vec pos, Arme* weapon );
  28. Arme* saisir( Vec pos ); // Si une arme posée est à portée, return ptr. Sin return 0.
  29. Arme* crafting( Arme* paire[2], Tirs_Gest* tirsGest ); // Si la combinaison existe, delete les deux armes et créé une nouvelle. Sinon return 0x0.
  30. Arme* takeWeapon( WeaponType model, Tirs_Gest* tirsGest ) const; // Créé une nouvelle arme à partir de son nom de modele
  31. Arme* startWeapon( Tirs_Gest* tirsGest ) const; // Octroie une arme de rang 1
  32. protected:
  33. std::list< CaisseArme* > m_posees; // Stock des armes posées
  34. std::list< CaisseArme* >::iterator m_itList; // Itérateur list
  35. std::map< Craft, WeaponType > m_crafts; // Stock des crafts possibles
  36. std::map< Craft, WeaponType >::iterator m_itMap; // Itérateur map
  37. SDL_Surface* m_armeImg[ NB_MODELS ]; // Image de chaque arme
  38. };
  39. class Craft
  40. {
  41. public:
  42. Craft();
  43. Craft( WeaponType a, WeaponType b );
  44. ~Craft();
  45. void debugCout() const;
  46. bool operator<( const Craft& a) const;
  47. private:
  48. WeaponType m_a;
  49. WeaponType m_b;
  50. };
  51. #endif // ARMES_GEST_H