diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/entity.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/include/entity.h b/include/entity.h new file mode 100644 index 0000000..60467ab --- /dev/null +++ b/include/entity.h @@ -0,0 +1,61 @@ +#ifndef ENTITY_H +#define ENTITY_H + +#include "raylib.h" +#include "raytmx.h" + +#include "player.h" +#include "map_manager.h" + +typedef struct Enemy { + Vector2 position; + Rectangle bounds; + uint32_t gid; + int health; + bool active; +} Enemy; + +typedef struct Static { + Vector2 position; + Rectangle bounds; + uint32_t gid; + bool active; +} Static; + +typedef struct Collectible { + Vector2 position; + Rectangle bounds; + uint32_t gid; + bool active; + int tileX; + int tileY; +} Collectible; + +typedef struct Movable { + Vector2 position; + Rectangle bounds; + uint32_t gid; + bool active; +} Movable; + +typedef struct EntityManager { + Enemy *enemies; + int enemiesCount; + + Collectible *collectibles; + int collectiblesCount; + + Static *statics; + int staticsCount; + + Movable *movables; + int movablesCount; +} EntityManager; + +EntityManager InitEntityManager(uint32_t capacity); +void SpawnEntitiesFromMap(EntityManager *mgr, TmxMap *map); +void UpdateEntities(EntityManager *mgr, Player *player, MapManager *mapMgr); +void DrawEntities(EntityManager *mgr, TmxMap *map); +void UnloadEntityManager(EntityManager *mgr); + +#endif // ENTITY_H |
