#pragma once #include "dinkyecs.hpp" #include "gui/boss_fight_ui.hpp" #include "dinkyecs.hpp" #include "lights.hpp" #include "map.hpp" #include #include "spatialmap.hpp" namespace components { struct Position; } namespace GameDB { struct Level { size_t index; DinkyECS::Entity player; std::shared_ptr map = nullptr; std::shared_ptr world = nullptr; std::shared_ptr lights = nullptr; std::shared_ptr collision = nullptr; }; std::shared_ptr create_bossfight(); size_t new_level(std::shared_ptr prev_world); Level& create_level(); void init(); Level &next(); Level &previous(); Level ¤t(); size_t current_index(); std::shared_ptr current_world(); Level &get(size_t index); components::Position& player_position(); DinkyECS::Entity the_player(); }