diff options
author | Andrei Karas <akaras@inbox.ru> | 2017-02-08 23:14:24 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2017-02-08 23:14:24 +0300 |
commit | 86cb4a51351b8217ede6672703a1b39b91ddb572 (patch) | |
tree | 44b153d699f406f58ebd1f9b100e3bfb23e16b02 | |
parent | 70fc4db1b5570beceda662e9f34ec1729610512e (diff) | |
download | manaplus-86cb4a51351b8217ede6672703a1b39b91ddb572.tar.gz manaplus-86cb4a51351b8217ede6672703a1b39b91ddb572.tar.bz2 manaplus-86cb4a51351b8217ede6672703a1b39b91ddb572.tar.xz manaplus-86cb4a51351b8217ede6672703a1b39b91ddb572.zip |
Add support for quest links in browserbox.
-rw-r--r-- | src/resources/db/questdb.cpp | 18 | ||||
-rw-r--r-- | src/resources/db/questdb.h | 2 | ||||
-rw-r--r-- | src/utils/browserboxtools.cpp | 8 |
3 files changed, 27 insertions, 1 deletions
diff --git a/src/resources/db/questdb.cpp b/src/resources/db/questdb.cpp index 9df240f92..93bcada6e 100644 --- a/src/resources/db/questdb.cpp +++ b/src/resources/db/questdb.cpp @@ -241,3 +241,21 @@ std::vector<QuestEffect*> *QuestDb::getAllEffects() { return &mAllEffects; } + +std::string QuestDb::getName(const int id) +{ + std::map<int, std::vector<QuestItem*> >::const_iterator it = + mQuests.find(id); + if (it == mQuests.end()) + { + // TRANSLATORS: quests window quest name + return _("unknown"); + } + const std::vector<QuestItem*> &items = (*it).second; + if (items.empty()) + { + // TRANSLATORS: quests window quest name + return _("unknown"); + } + return items[0]->name; +} diff --git a/src/resources/db/questdb.h b/src/resources/db/questdb.h index 3b9fa2ef1..5a172573c 100644 --- a/src/resources/db/questdb.h +++ b/src/resources/db/questdb.h @@ -48,6 +48,8 @@ namespace QuestDb std::map<int, std::vector<QuestItem*> > *getQuests(); std::vector<QuestEffect*> *getAllEffects(); + + std::string getName(const int id); } // namespace QuestDb #endif // RESOURCES_DB_QUESTDB_H diff --git a/src/utils/browserboxtools.cpp b/src/utils/browserboxtools.cpp index e049e220d..8a1fb42bb 100644 --- a/src/utils/browserboxtools.cpp +++ b/src/utils/browserboxtools.cpp @@ -38,6 +38,7 @@ #include "resources/db/itemdb.h" #include "resources/db/mercenarydb.h" #include "resources/db/monsterdb.h" +#include "resources/db/questdb.h" #include "resources/db/petdb.h" #endif // DYECMD @@ -99,13 +100,18 @@ std::string BrowserBoxTools::replaceLinkCommands(const std::string &link) data = info->getName(); } else if (!link.empty() && link[0] == 'M') - { // homunculus link + { // mercenary link const BeingTypeId id = static_cast<BeingTypeId>( atoi(link.substr(1).c_str())); BeingInfo *info = MercenaryDB::get(id); if (info) data = info->getName(); } + else if (!link.empty() && link[0] == 'q') + { // quest link + data = QuestDb::getName( + atoi(link.substr(1).c_str())); + } else { // item link size_t idx = link.find(','); |