#include "graphics.hpp" #include "scene/scene.hpp" #include "scene/tracker/scene.hpp" #include "scene/logo/scene.hpp" #include "scene/emulator/scene.hpp" namespace scene { const scene scenes[] = { [id::tracker] = tracker::scene, [id::logo] = logo::scene, [id::emulator] = emulator::scene, }; const scene * current_scene = nullptr; void scene_init(int scene_id) { current_scene = &scenes[scene_id]; graphics_scene_init(¤t_scene->opb_size); printf("scene init\n"); if (current_scene->init != nullptr) { printf("current_scene init\n"); current_scene->init(); } } void transition() { assert(current_scene->done != nullptr); int scene_id = current_scene->done(); if (scene_id >= 0) { scene_init(scene_id); } } }