#pragma once #include #include #include #include #include #include #include "matrix.hpp" namespace textures { struct SpriteTexture { std::shared_ptr sprite = nullptr; std::shared_ptr texture = nullptr; }; struct TextureManager { std::vector surfaces; std::vector ceilings; std::vector map_tile_set; std::vector ambient_light; std::unordered_map sprite_textures; }; void init(); SpriteTexture get(const std::string& name); sf::Image load_image(const std::string& filename); std::vector& get_ambient_light(); std::vector& get_map_tile_set(); const uint32_t* get_surface(size_t num); const uint32_t* get_ceiling(size_t num); }