diff options
-rw-r--r-- | loader/atlas.cpp | 6 | ||||
-rw-r--r-- | src/tile-atlas.cpp | 6 | ||||
-rw-r--r-- | src/tile-atlas.hpp | 4 |
3 files changed, 10 insertions, 6 deletions
diff --git a/loader/atlas.cpp b/loader/atlas.cpp index 50645579..0a06f065 100644 --- a/loader/atlas.cpp +++ b/loader/atlas.cpp @@ -37,7 +37,11 @@ std::shared_ptr<tile_atlas> loader_impl::tile_atlas(StringView name, Vector2ub s return it->second; fm_soft_assert(check_atlas_name(name)); - auto atlas = std::make_shared<struct tile_atlas>(name, texture(IMAGE_PATH, name), size, pass); + + char buf[FILENAME_MAX]; + auto path = make_atlas_path(buf, IMAGE_PATH, name); + + auto atlas = std::make_shared<struct tile_atlas>(path, name, texture(""_s, path), size, pass); tile_atlas_map[atlas->name()] = atlas; return atlas; } diff --git a/src/tile-atlas.cpp b/src/tile-atlas.cpp index c6de3e89..298e7f9e 100644 --- a/src/tile-atlas.cpp +++ b/src/tile-atlas.cpp @@ -10,15 +10,15 @@ namespace floormat { -tile_atlas::tile_atlas(StringView name, const ImageView2D& image, Vector2ub tile_count, Optional<enum pass_mode> p) : +tile_atlas::tile_atlas(StringView path, StringView name, const ImageView2D& image, Vector2ub tile_count, Optional<enum pass_mode> p) : texcoords_{make_texcoords_array(Vector2ui(image.size()), tile_count)}, - name_{name}, size_{image.size()}, dims_{tile_count}, passability{std::move(p)} + path_{path}, name_{name}, size_{image.size()}, dims_{tile_count}, passability{std::move(p)} { constexpr auto variant_max = std::numeric_limits<variant_t>::max(); fm_soft_assert(num_tiles() <= variant_max); fm_soft_assert(dims_[0] > 0 && dims_[1] > 0); fm_soft_assert(size_ % Vector2ui{tile_count} == Vector2ui()); - tex_.setLabel(name_) + tex_.setLabel(path_) .setWrapping(GL::SamplerWrapping::ClampToEdge) .setMagnificationFilter(GL::SamplerFilter::Linear) .setMinificationFilter(GL::SamplerFilter::Linear) diff --git a/src/tile-atlas.hpp b/src/tile-atlas.hpp index 4ea2c67d..de48f1bb 100644 --- a/src/tile-atlas.hpp +++ b/src/tile-atlas.hpp @@ -15,7 +15,7 @@ struct tile_atlas final using quad = std::array<Vector3, 4>; using texcoords = std::array<Vector2, 4>; - tile_atlas(StringView name, const ImageView2D& img, Vector2ub tile_count, Optional<enum pass_mode> pass_mode); + tile_atlas(StringView path, StringView name, const ImageView2D& img, Vector2ub tile_count, Optional<enum pass_mode> pass_mode); texcoords texcoords_for_id(size_t id) const; static constexpr quad floor_quad(Vector3 center, Vector2 size); @@ -37,7 +37,7 @@ private: std::unique_ptr<const texcoords[]> texcoords_; GL::Texture2D tex_; - String name_; + String path_, name_; Vector2ui size_; Vector2ub dims_; Optional<enum pass_mode> passability; |