| 733 | } |
| 734 | |
| 735 | void ItemDatabase::addCodexes() { |
| 736 | auto assets = Root::singleton().assets(); |
| 737 | auto codexConfig = assets->json("/codex.config"); |
| 738 | |
| 739 | auto codexDatabase = Root::singleton().codexDatabase(); |
| 740 | for (auto const& codexPair : codexDatabase->codexes()) { |
| 741 | String codexItemName = strf("{}-codex", codexPair.second->id()); |
| 742 | if (m_items.contains(codexItemName)) { |
| 743 | Logger::warn("Couldn't create codex item {} because an item with that name is already defined", codexItemName); |
| 744 | continue; |
| 745 | } |
| 746 | |
| 747 | try { |
| 748 | ItemData codexItemData; |
| 749 | |
| 750 | codexItemData.type = ItemType::Codex; |
| 751 | codexItemData.name = codexItemName; |
| 752 | codexItemData.friendlyName = codexPair.second->title(); |
| 753 | codexItemData.directory = codexPair.second->directory(); |
| 754 | codexItemData.filename = codexPair.second->filename(); |
| 755 | auto customConfig = jsonMerge(codexConfig.get("defaultItemConfig"), codexPair.second->itemConfig()).toObject(); |
| 756 | customConfig["itemName"] = codexItemName; |
| 757 | customConfig["codexId"] = codexPair.second->id(); |
| 758 | customConfig["shortdescription"] = codexPair.second->title(); |
| 759 | customConfig["description"] = codexPair.second->description(); |
| 760 | customConfig["codexIcon"] = codexPair.second->icon(); |
| 761 | codexItemData.customConfig = customConfig; |
| 762 | |
| 763 | m_items[codexItemName] = codexItemData; |
| 764 | } catch (std::exception const& e) { |
| 765 | Logger::error("Could not create item for codex {}: {}", codexPair.second->id(), outputException(e, false)); |
| 766 | } |
| 767 | } |
| 768 | } |
| 769 | |
| 770 | } |
nothing calls this directly
no test coverage detected