evil_portal_scene.c 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. #include "evil_portal_scene.h"
  2. // Generate scene on_enter handlers array
  3. #define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_enter,
  4. void (*const evil_portal_scene_on_enter_handlers[])(void *) = {
  5. #include "evil_portal_scene_config.h"
  6. };
  7. #undef ADD_SCENE
  8. // Generate scene on_event handlers array
  9. #define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_event,
  10. bool (*const evil_portal_scene_on_event_handlers[])(void *context,
  11. SceneManagerEvent event) = {
  12. #include "evil_portal_scene_config.h"
  13. };
  14. #undef ADD_SCENE
  15. // Generate scene on_exit handlers array
  16. #define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_exit,
  17. void (*const evil_portal_scene_on_exit_handlers[])(void *context) = {
  18. #include "evil_portal_scene_config.h"
  19. };
  20. #undef ADD_SCENE
  21. // Initialize scene handlers configuration structure
  22. const SceneManagerHandlers evil_portal_scene_handlers = {
  23. .on_enter_handlers = evil_portal_scene_on_enter_handlers,
  24. .on_event_handlers = evil_portal_scene_on_event_handlers,
  25. .on_exit_handlers = evil_portal_scene_on_exit_handlers,
  26. .scene_num = Evil_PortalSceneNum,
  27. };