summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--loader/atlas.cpp6
-rw-r--r--src/tile-atlas.cpp6
-rw-r--r--src/tile-atlas.hpp4
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;