soldier.h 2.47 KiB
#ifndef __SOLDIER_H__
#define __SOLDIER_H__
#include "constant.h"
#include "sprite.h"
#include <SDL2/SDL.h>
struct bullet_s{
sprite_t sprite; /*!<Sprite de la balle */
int shoot; /*!<Indique si la balle est tirée */
char sens; /*!<Indique le sens de la balle */
SDL_Rect DestBullet;
};
/**
* \brief Type qui correspond au paramètre de la balle
*/
typedef struct bullet_s bullet_t;
/**
* \brief Paramètre du soldat
*/
struct soldier_s{
sprite_t sprite; /*!<Sprite du soldat */
int hp; /*!<Point de vie */
int state_jump; /*!<Indique si le soldat saute */
int is_walking; /*!<Indique si le soldat marche */
int is_crouching; /*!<Indique si le soldat est accroupie */
int is_looking_up; /*!<Indique si le soldat regarde vers le haut */
int direction; /*!<Indique la direction du soldat */
int walk_counter; /*!<Compteur pour la marche du soldat */
int jump_counter; /*!<Compteur pour le saut du soldat */
int wait_time_walk;
SDL_Rect DestSoldier;
bullet_t charger[NB_BULLET]; /*!<Chargeur de l arme du soldat */
int time_bullet; /*!<Temps entre chaque balle */
int time_reload; /*!<Temps de rechargement*/
int present_bullet; /*!<Indique la balle presente dans l arme*/
};
/**
* \brief Type qui correspond au paramètre du soldat
*/
typedef struct soldier_s soldier_t;
/**
* \brief Initialise le soldat
* \param soldat
* \param hp point de vie du soldat
*/
void init_soldier(soldier_t *soldier, int hp);
/**
* \brief Permet au soldat de sauter
* \param soldat
*/
void jump(soldier_t *soldier);
/**
* \brief Initialise le chargeur du soldat
* \param soldat
*/
void init_bullet(soldier_t *soldier);
/**
* \brief Permet au soldat de tirer
* \param soldat
*/
void shoot(soldier_t *soldier);
/**
* \brief Permet au balle de continuer d avancer apres avoir etait tirer
* \param soldat
*/
void shootAfterE(soldier_t *soldier);
/**
* \brief Permet au soldat de marcher vers la droite
* \param soldat
*/
void walk_right(soldier_t *soldier);
/**
* \brief Permet au soldat de marcher vers la gauche
* \param soldat
*/
void walk_left(soldier_t *soldier);
/**
* \brief Set le direction de la balle vers la droite
* \param soldat
*/
void setBulletD(soldier_t *soldier);
/**
* \brief Set le direction de la balle vers la gauche
* \param soldat
*/
void setBulletG(soldier_t *soldier);
/**
* \brief Set le direction de la balle vers le haut
* \param soldat
*/
void setBulletH(soldier_t *soldier);
#endif