#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; } struct GameLevel { 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; }; namespace Game { std::shared_ptr create_bossfight(); GameLevel& create_level(); void init(); GameLevel &next(); GameLevel &previous(); GameLevel ¤t(); size_t current_index(); std::shared_ptr current_world(); GameLevel &get(size_t index); DinkyECS::Entity spawn_enemy(const std::string& named); components::Position& player_position(); DinkyECS::Entity the_player(); }