123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #ifndef ARMES_GEST_H
- #define ARMES_GEST_H
- #include "CaisseArme.h"
- #include "../Structures/SpriteLoader.h"
- #include <list>
- #include <cstdlib> // Random
- // Armes de rang 1
- #include "Modeles/Shotgun.h"
- #include "Modeles/Gun.h"
- #include "Modeles/Fusil.h"
- // Armes de rang 2
- #include "Modeles/Usiane.h"
- #include "Modeles/Scatter.h"
- #include "Modeles/Baroudeur.h"
- // Armes de rang 3
- #include "Modeles/Sulfateuse.h"
- #include "Modeles/Triphaseur.h"
- #include "Modeles/Bomber.h"
- class Craft; // Permet de stocker une combinaison
- class Armes_Gest
- {
- public:
- Armes_Gest( SpriteLoader* sprites );
- virtual ~Armes_Gest();
- SDL_Surface* getImg( WeaponType model ) const; // Permet au perso d'obtenir la surface associée à l'arme
- void allDisplay(const Vec &lookAt, SDL_Surface* screen);
- void drop( Vec pos, Arme* weapon );
- Arme* saisir( Vec pos ); // Si une arme posée est à portée, return ptr. Sin return 0.
- Arme* crafting( Arme* paire[2], Tirs_Gest* tirsGest ); // Si la combinaison existe, delete les deux armes et créé une nouvelle. Sinon return 0x0.
- Arme* takeWeapon( WeaponType model, Tirs_Gest* tirsGest ) const; // Créé une nouvelle arme à partir de son nom de modele
- Arme* startWeapon( Tirs_Gest* tirsGest ) const; // Octroie une arme de rang 1
- protected:
- std::list< CaisseArme* > m_posees; // Stock des armes posées
- std::list< CaisseArme* >::iterator m_itList; // Itérateur list
- std::map< Craft, WeaponType > m_crafts; // Stock des crafts possibles
- std::map< Craft, WeaponType >::iterator m_itMap; // Itérateur map
- SDL_Surface* m_armeImg[ NB_MODELS ]; // Image de chaque arme
- };
- class Craft
- {
- public:
- Craft();
- Craft( WeaponType a, WeaponType b );
- ~Craft();
- void debugCout() const;
- bool operator<( const Craft& a) const;
- private:
- WeaponType m_a;
- WeaponType m_b;
- };
- #endif // ARMES_GEST_H
|