From 14f28e83392c46497f9a09f7aadb508bc0a61b30 Mon Sep 17 00:00:00 2001 From: AnonymusRaccoon Date: Mon, 9 Mar 2020 14:49:34 +0100 Subject: [PATCH] Adding an error message for callbacks that do not exists --- include/scene.h | 2 -- src/components/clickable_component.c | 12 ++++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/include/scene.h b/include/scene.h index ccacd14..1e25674 100644 --- a/include/scene.h +++ b/include/scene.h @@ -18,7 +18,6 @@ struct gc_scene { gc_list *data; void *(*get_data)(gc_scene *scene, const char *type, const char *name); - void (*add_callback)(gc_scene *scene, const char *name, void *func); void (*destroy)(gc_scene *scene); @@ -37,6 +36,5 @@ callback_t scene_get_callback(gc_scene *scene, char *name); gc_scene *scene_create(gc_engine *engine, const char *mappath); void scene_load_data(gc_engine *engine, gc_scene *scene, node *n); void *scene_get_data(gc_scene *scene, const char *type, const char *name); -void scene_add_callback(gc_scene *scene, const char *name, void *func); void scene_destroy(gc_scene *scene); void scene_load_entity(gc_scene *this, gc_engine *engine, node *n, int prefab); \ No newline at end of file diff --git a/src/components/clickable_component.c b/src/components/clickable_component.c index ca572fe..beddcdb 100644 --- a/src/components/clickable_component.c +++ b/src/components/clickable_component.c @@ -16,20 +16,28 @@ static void ctr(void *component, va_list args) struct clickable_component *cmp = (struct clickable_component *)component; gc_scene *scene = va_arg(args, gc_scene *); char *onclick = va_arg(args, char *); + callback_t callback; if (!scene) return; - cmp->onclick = scene->get_callback(scene, onclick); + callback = scene->get_callback(scene, onclick); + if (!callback) + my_printf("No callback found with the name: %s\n", onclick); + cmp->onclick = callback; } static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n) { struct clickable_component *cmp = (struct clickable_component *)component; char *onclick = xml_gettempprop(n, "click"); + callback_t callback; if (!scene) return; - cmp->onclick = scene->get_callback(scene, onclick); + callback = scene->get_callback(scene, onclick); + if (!callback) + my_printf("No callback found with the name: %s\n", onclick); + cmp->onclick = callback; } static void dtr(void *component)