summaryrefslogtreecommitdiffhomepage
path: root/loader
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2023-03-03 15:24:33 +0100
committerStanislaw Halik <sthalik@misaki.pl>2023-03-03 15:24:33 +0100
commit235078bae4ada8b7aed3c1cdf95d8288aaf81df4 (patch)
treeda2979408771be5e496d0ffaf5af3634cd61e4a3 /loader
parent4e5cdeaa32fd73f160ee0d599ce958169082eeac (diff)
flush scenery popup work
Diffstat (limited to 'loader')
-rw-r--r--loader/loader.cpp11
-rw-r--r--loader/loader.hpp1
2 files changed, 12 insertions, 0 deletions
diff --git a/loader/loader.cpp b/loader/loader.cpp
index a07f96be..e9401385 100644
--- a/loader/loader.cpp
+++ b/loader/loader.cpp
@@ -22,6 +22,17 @@ loader_& loader = loader_::default_loader();
loader_::loader_() = default;
loader_::~loader_() = default;
+StringView loader_::strip_prefix(StringView name)
+{
+ if (name.hasPrefix(IMAGE_PATH))
+ return name.exceptPrefix(IMAGE_PATH.size());
+ if (name.hasPrefix(ANIM_PATH))
+ return name.exceptPrefix(ANIM_PATH.size());
+ if (name.hasPrefix(SCENERY_PATH))
+ return name.exceptPrefix(SCENERY_PATH.size());
+ return name;
+}
+
const StringView loader_::IMAGE_PATH = "share/floormat/images/"_s;
const StringView loader_::ANIM_PATH = "share/floormat/anim/"_s;
const StringView loader_::SCENERY_PATH = "share/floormat/scenery/"_s;
diff --git a/loader/loader.hpp b/loader/loader.hpp
index 843d0a72..577f45c5 100644
--- a/loader/loader.hpp
+++ b/loader/loader.hpp
@@ -31,6 +31,7 @@ struct loader_
virtual const std::vector<serialized_scenery>& sceneries() = 0;
virtual const scenery_proto& scenery(StringView name) noexcept(false) = 0;
virtual StringView startup_directory() noexcept = 0;
+ static StringView strip_prefix(StringView name);
loader_(const loader_&) = delete;
loader_& operator=(const loader_&) = delete;