diff options
-rw-r--r-- | source/game/StarCodex.cpp | 10 | ||||
-rw-r--r-- | source/game/StarCodex.hpp | 4 | ||||
-rw-r--r-- | source/game/StarCodexDatabase.cpp | 2 | ||||
-rw-r--r-- | source/game/StarItemDatabase.cpp | 4 |
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(); |