Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/game/StarCodex.cpp10
-rw-r--r--source/game/StarCodex.hpp4
-rw-r--r--source/game/StarCodexDatabase.cpp2
-rw-r--r--source/game/StarItemDatabase.cpp4
4 files changed, 14 insertions, 6 deletions
diff --git a/source/game/StarCodex.cpp b/source/game/StarCodex.cpp
index c184724..3f0e481 100644
--- a/source/game/StarCodex.cpp
+++ b/source/game/StarCodex.cpp
@@ -1,10 +1,12 @@
#include "StarCodex.hpp"
#include "StarJsonExtra.hpp"
+#include "StarAssetPath.hpp"
namespace Star {
-Codex::Codex(Json const& config, String const& directory) {
- m_directory = directory;
+Codex::Codex(Json const& config, String const& path) {
+ m_directory = AssetPath::directory(path);
+ m_filename = AssetPath::filename(path);
m_id = config.getString("id");
m_species = config.getString("species", "other");
m_title = config.getString("title");
@@ -68,4 +70,8 @@ String Codex::directory() const {
return m_directory;
}
+String Codex::filename() const {
+ return m_filename;
+}
+
}
diff --git a/source/game/StarCodex.hpp b/source/game/StarCodex.hpp
index aaea53b..57d4404 100644
--- a/source/game/StarCodex.hpp
+++ b/source/game/StarCodex.hpp
@@ -8,7 +8,7 @@ STAR_CLASS(Codex);
class Codex {
public:
- Codex(Json const& config, String const& directory);
+ Codex(Json const& config, String const& path);
Json toJson() const;
String id() const;
@@ -21,6 +21,7 @@ public:
size_t pageCount() const;
Json itemConfig() const;
String directory() const;
+ String filename() const;
private:
String m_id;
@@ -31,6 +32,7 @@ private:
List<String> m_pages;
Json m_itemConfig;
String m_directory;
+ String m_filename;
};
}
diff --git a/source/game/StarCodexDatabase.cpp b/source/game/StarCodexDatabase.cpp
index 5b91dcf..3995daf 100644
--- a/source/game/StarCodexDatabase.cpp
+++ b/source/game/StarCodexDatabase.cpp
@@ -16,7 +16,7 @@ CodexDatabase::CodexDatabase() {
codexJson = codexJson.set("icon",
AssetPath::relativeTo(AssetPath::directory(file), codexJson.getString("icon", codexConfig.getString("defaultIcon"))));
- auto codex = make_shared<Codex>(codexJson, AssetPath::directory(file));
+ auto codex = make_shared<Codex>(codexJson, file);
if (m_codexes.contains(codex->id()))
throw CodexDatabaseException::format("Duplicate codex named '{}', config file '{}'", codex->id(), file);
diff --git a/source/game/StarItemDatabase.cpp b/source/game/StarItemDatabase.cpp
index b228eed..827fa51 100644
--- a/source/game/StarItemDatabase.cpp
+++ b/source/game/StarItemDatabase.cpp
@@ -218,7 +218,7 @@ Maybe<String> ItemDatabase::itemFile(String const& itemName) const {
return {};
}
auto const& data = itemData(itemName);
- return data.directory + "/" + data.filename;
+ return data.directory + data.filename;
}
ItemPtr ItemDatabase::itemShared(ItemDescriptor descriptor, Maybe<float> level, Maybe<uint64_t> seed) const {
@@ -751,7 +751,7 @@ void ItemDatabase::addCodexes() {
codexItemData.name = codexItemName;
codexItemData.friendlyName = codexPair.second->title();
codexItemData.directory = codexPair.second->directory();
-
+ codexItemData.filename = codexPair.second->filename();
auto customConfig = jsonMerge(codexConfig.get("defaultItemConfig"), codexPair.second->itemConfig()).toObject();
customConfig["itemName"] = codexItemName;
customConfig["codexId"] = codexPair.second->id();