34 lines
749 B
C
34 lines
749 B
C
/**
|
|
* 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); |