level.h 668 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <stddef.h>
  3. #include "entity.h"
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. typedef struct GameManager GameManager;
  8. typedef struct {
  9. void (*alloc)(Level* level, GameManager* manager, void* context);
  10. void (*free)(Level* level, GameManager* manager, void* context);
  11. void (*start)(Level* level, GameManager* manager, void* context);
  12. void (*stop)(Level* level, GameManager* manager, void* context);
  13. size_t context_size;
  14. } LevelBehaviour;
  15. void level_clear(Level* level);
  16. Entity* level_add_entity(Level* level, const EntityDescription* behaviour);
  17. void level_remove_entity(Level* level, Entity* entity);
  18. #ifdef __cplusplus
  19. }
  20. #endif