#pragma once #include <cstdint> #include <vector> #include <string> #include <SFML/Graphics.hpp> #include <unordered_map> #include <memory> #include "matrix.hpp" struct SpriteTexture { std::shared_ptr<sf::Sprite> sprite = nullptr; std::shared_ptr<sf::Texture> texture = nullptr; }; struct TexturePack { std::vector<sf::Image> surfaces; std::unordered_map<std::string, SpriteTexture> sprite_textures; std::unordered_map<wchar_t, int> char_to_texture; sf::Image floor; sf::Image ceiling; SpriteTexture sword; void load_tiles(); void load_sprites(); sf::Image load_image(std::string filename); const uint32_t* get_surface(size_t num); // ZED: this is ugly so maybe you should like rewrite it or something matrix::Matrix convert_char_to_texture(matrix::Matrix &from); };