#pragma once #include #include #include #include #include #include #include "matrix.hpp" namespace textures { struct SpriteTexture { std::string name; std::shared_ptr sprite = nullptr; std::shared_ptr texture = nullptr; }; struct TextureManager { std::vector surfaces; std::unordered_map sprite_textures; std::unordered_map char_to_texture; sf::Image floor; sf::Image ceiling; }; void init(); SpriteTexture get(std::string name); sf::Image load_image(std::string filename); const uint32_t* get_surface(size_t num); matrix::Matrix convert_char_to_texture(matrix::Matrix &from); const uint32_t* get_floor(); const uint32_t* get_ceiling(); }