/** * Copyright (c) 2026 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "entity.h" typedef struct { entity_t entities[ENTITY_COUNT_MAX]; component_t components[ENTITY_COUNT_MAX * ENTITY_COMPONENT_COUNT_MAX]; componentid_t entitiesWithComponent[COMPONENT_TYPE_COUNT * ENTITY_COUNT_MAX]; } entitymanager_t; extern entitymanager_t ENTITY_MANAGER; /** * Initializes the entity manager. */ void entityManagerInit(void); /** * Adds / Reserves a new entity ID. * * @return The new entity ID. */ entityid_t entityManagerAdd(); /** * Disposes of the entity manager, in turn freeing all entities and components. */ void entityManagerDispose(void);