scene.h 589 B

12345678910111213141516171819202122232425262728
  1. #ifndef SCENE_H_
  2. #define SCENE_H_
  3. #include "vector.h"
  4. #include "sprite.h"
  5. #include "object.h"
  6. typedef struct Scene Scene;
  7. typedef void (*Scene_func)(Scene*);
  8. typedef bool (*Scene_func_add_object)(Scene*, Object*);
  9. typedef bool (*Scene_func_add_sprite)(Scene*, Sprite*);
  10. struct Scene {
  11. char* name;
  12. Vector* objects;
  13. Vector* sprites;
  14. Scene_func_add_object add_object;
  15. Scene_func_add_sprite add_sprite;
  16. Scene_func update;
  17. Scene_func draw;
  18. Scene_func load;
  19. };
  20. void free_Scene(Scene* self);
  21. Scene* new_Scene(const char* name);
  22. Scene* current_Scene();
  23. #endif