Yume Project 3.0
Touhou-inspired Danmaku game made in C only
Chargement...
Recherche...
Aucune correspondance
Référence du fichier flags.h

Les flags sont des critères qu'une entité peut avoir ou ne pas avoir. Chaque flag active un comportement particulier dans le jeu. Plus de détails...

#include "ecs/component.h"

Aller au code source de ce fichier.

Classes

struct  flagList
 composante flagList dans l'ECS Une entité peut disposer de plusieurs flags, qui sont contenus dans une flaglist Plus de détails...

Macros

#define MAX_FLAGS   30

Énumérations

enum  FlagType {
  FLAG_NONE = 0 , FLAG_PLAYER , FLAG_ENEMY , FLAG_BOSS ,
  FLAG_BULLET_PLAYER , FLAG_PROJECTILE_PLAYER , FLAG_PROJECTILE_ENEMY , FLAG_NO_DAMAGE_PLAYER ,
  FLAG_POWERUP , FLAG_WALL , FLAG_PLAYER_HIT , FLAG_INVINCIBLE ,
  FLAG_DECREASE_SCORE
}
 Identificateurs uniques de certaines propriétés. Plus de détails...

Fonctions

bool Flag_in_list (FlagType type, flagList *list)
 Vérifie si un FlagType est présent dans une flagList.
bool flagList_add_element (flagList *list, FlagType type)
 Ajoute un FlagType à la fin d'une flagList.
bool flagList_remove_element (flagList *list, FlagType type)
 Supprime la première occurrence d'un FlagType dans une flagList.
bool Entity_has_flag_in_list (Pool *p, Entity entity, flagList *list)
 Vérifie si une entité possède au moins un flag présent dans une flagList donnée.
void flagList_destroy (Pool *p, Entity e)
 Détruit la flagList attachée à une entité dans la Pool.
bool Entity_has_flag (Pool *p, Entity entity, FlagType flag)
 Vérifie si une entité possède un flag précis.
Entity flagList_attach_first_flag (Pool *p, Entity e, FlagType flag)
 Crée et attache une nouvelle flagList initialisée avec un flag.
void Flag_display (FlagType flag)
 Affiche le type de flag dans la console (debug).

Description détaillée

Les flags sont des critères qu'une entité peut avoir ou ne pas avoir. Chaque flag active un comportement particulier dans le jeu.

Documentation des macros

◆ MAX_FLAGS

#define MAX_FLAGS   30

Documentation du type de l'énumération

◆ FlagType

enum FlagType

Identificateurs uniques de certaines propriétés.

Valeurs énumérées
FLAG_NONE 
FLAG_PLAYER 
FLAG_ENEMY 
FLAG_BOSS 
FLAG_BULLET_PLAYER 
FLAG_PROJECTILE_PLAYER 
FLAG_PROJECTILE_ENEMY 
FLAG_NO_DAMAGE_PLAYER 
FLAG_POWERUP 
FLAG_WALL 
FLAG_PLAYER_HIT 
FLAG_INVINCIBLE 
FLAG_DECREASE_SCORE 

Documentation des fonctions

◆ Entity_has_flag()

bool Entity_has_flag ( Pool * p,
Entity entity,
FlagType flag )

Vérifie si une entité possède un flag précis.

Paramètres
ppool courante (toutes les données de l'ECS)
entityIdentifiant de l'entité à inspecter.
flagLe FlagType recherché.
Renvoie
true si l'entité possède flag, false sinon.

◆ Entity_has_flag_in_list()

bool Entity_has_flag_in_list ( Pool * p,
Entity entity,
flagList * list )

Vérifie si une entité possède au moins un flag présent dans une flagList donnée.

Récupère la flagList de l'entité depuis la Pool et compare chaque flag avec les éléments de la liste fournie.

Paramètres
ppool courante (toutes les données de l'ECS)
entityIdentifiant de l'entité à vérifier.
listPointeur vers la flagList de référence.
Renvoie
true si l'entité possède au moins un flag contenu dans list, false sinon.

◆ Flag_display()

void Flag_display ( FlagType flag)

Affiche le type de flag dans la console (debug).

Paramètres
flagle flagType à afficher

◆ Flag_in_list()

bool Flag_in_list ( FlagType type,
flagList * list )

Vérifie si un FlagType est présent dans une flagList.

Parcourt le tableau de flags de la liste et retourne vrai si le type est trouvé.

Paramètres
typeLe FlagType recherché.
listPointeur vers la flagList à inspecter.
Renvoie
true si le flag est présent, false sinon.

◆ flagList_add_element()

bool flagList_add_element ( flagList * list,
FlagType type )

Ajoute un FlagType à la fin d'une flagList.

Si la liste contient déjà MAX_FLAGS éléments, l'ajout échoue.

Paramètres
listPointeur vers la flagList cible.
typeLe FlagType à ajouter.
Renvoie
true si l'ajout a réussi, false sinon.

◆ flagList_attach_first_flag()

Entity flagList_attach_first_flag ( Pool * p,
Entity e,
FlagType flag )

Crée et attache une nouvelle flagList initialisée avec un flag.

Alloue un tableau de taille MAX_FLAGS, crée une flagList et l'attache à l'entité. ATTENTION : écrase toute flagList existante pour cette entité.

Paramètres
ppool courante (toutes les données de l'ECS)
eIdentifiant de l'entité cible.
flagLe premier FlagType à ajouter à la liste.
Renvoie
L'entité passée en paramètre (utile pour chaînage).

◆ flagList_destroy()

void flagList_destroy ( Pool * p,
Entity e )

Détruit la flagList attachée à une entité dans la Pool.

Libère la mémoire allouée pour le tableau de flags puis retire le composant de la Pool.

Paramètres
ppool courante (toutes les données de l'ECS)
eIdentifiant de l'entité dont la flagList doit être détruite.

◆ flagList_remove_element()

bool flagList_remove_element ( flagList * list,
FlagType type )

Supprime la première occurrence d'un FlagType dans une flagList.

Décale les éléments suivants pour combler le trou et décrémente size.

Paramètres
listPointeur vers la flagList.
typeLe FlagType à supprimer.
Renvoie
true si un élément a été supprimé, false si le type n'a pas été trouvé.