Implemented the ObjectStore functionality.

This commit is contained in:
abdelrahman committed 2022-09-19 23:44:31 +01:00
1 parent 20f476c4ab
commit a0e76bc1fc
4 files changed
+259 -21

No files matched your search

+11 -4
View File
@@ -3,6 +3,7 @@
#include "Renderer.h"
#include "SDL_events.h"
#include "engine_build_config.h"
typedef void (*EventHandlerPtr)(const SDL_Event *event, void *object);
typedef void (*UpdateFuncPtr)(float delta, void *object);
@@ -10,12 +11,18 @@ typedef void (*RenderFuncPtr)(Renderer *renderer, void *object);
typedef struct object_store ObjectStore;
void add_object_to_store(ObjectStore *os, const char *object_tag,
ObjectStore *create_object_store();
void add_object_to_store(ObjectStore *os, void *object, const char *object_tag,
EventHandlerPtr eh, UpdateFuncPtr uf,
RenderFuncPtr rf);
void handle_all_object_events(ObjectStore *os);
void update_all_objects(ObjectStore *os);
void render_all_objects(ObjectStore *os);
void remove_object_from_store(ObjectStore *os, const char *object_tag);
void handle_all_objects_events(ObjectStore *os, const SDL_Event *event);
void update_all_objects(ObjectStore *os, float delta);
void render_all_objects(ObjectStore *os, Renderer *renderer);
void destroy_object_store(ObjectStore *os);
#ifdef DEBUG_ENGINE
void print_objects();
#endif /* DEBUG_ENGINE */
#endif // !OBJECT_STORE_H