|
|
@@ -67,29 +67,32 @@ void QuestDialog::api(
|
|
|
{ // open quest graph
|
|
|
int selection;
|
|
|
zRequest->lese((char*)&selection, 4);
|
|
|
- auto questGraph = this->uiml->selectChildsByName("questGraph");
|
|
|
- questGraph.selectChildren().remove();
|
|
|
- auto listItems
|
|
|
- = uiml->selectChildsByName("listView").selectChildren();
|
|
|
- listItems.removeAttribute("selected");
|
|
|
- QuestManager* zManager = Game::INSTANCE->zQuestManager();
|
|
|
- auto questCollection = zManager->zCollection(selection);
|
|
|
- QuestParty* zParty = zManager->zParty(getPlayerId());
|
|
|
- for (Quest* quest : questCollection->quests)
|
|
|
+ if (selection >= 0)
|
|
|
{
|
|
|
- if (quest->isVisible(zParty, zManager))
|
|
|
+ auto questGraph = this->uiml->selectChildsByName("questGraph");
|
|
|
+ questGraph.selectChildren().remove();
|
|
|
+ auto listItems
|
|
|
+ = uiml->selectChildsByName("listView").selectChildren();
|
|
|
+ listItems.removeAttribute("selected");
|
|
|
+ QuestManager* zManager = Game::INSTANCE->zQuestManager();
|
|
|
+ auto questCollection = zManager->zCollection(selection);
|
|
|
+ QuestParty* zParty = zManager->zParty(getPlayerId());
|
|
|
+ for (Quest* quest : questCollection->quests)
|
|
|
{
|
|
|
- questGraph.addChild(getQuestGraphItem(quest, zParty));
|
|
|
+ if (quest->isVisible(zParty, zManager))
|
|
|
+ {
|
|
|
+ questGraph.addChild(getQuestGraphItem(quest, zParty));
|
|
|
+ }
|
|
|
}
|
|
|
+ listItems
|
|
|
+ .whereAttributeEquals(
|
|
|
+ "id", Framework::Text("quest_collection_") + selection)
|
|
|
+ .forEach(
|
|
|
+ [this, &questGraph](Framework::XML::Element* zElement) {
|
|
|
+ zElement->setAttribute("selected", "");
|
|
|
+ });
|
|
|
+ update();
|
|
|
}
|
|
|
- listItems
|
|
|
- .whereAttributeEquals(
|
|
|
- "id", Framework::Text("quest_collection_") + selection)
|
|
|
- .forEach(
|
|
|
- [this, &questGraph](Framework::XML::Element* zElement) {
|
|
|
- zElement->setAttribute("selected", "");
|
|
|
- });
|
|
|
- update();
|
|
|
break;
|
|
|
}
|
|
|
case 1: // onClick Message of questGraphItem
|
|
|
@@ -382,7 +385,7 @@ Framework::XML::Element* QuestDialog::getQuestGraphItem(
|
|
|
->setRequirements(requirements)
|
|
|
->setWidth(zQuest->mainQuest ? 50 : 30)
|
|
|
->setHeight(zQuest->mainQuest ? 50 : 30)
|
|
|
- ->setOnClickMessage("quests", {1})
|
|
|
+ ->setOnClickMessage("quests", {"(char)1", zQuest->questId})
|
|
|
->build();
|
|
|
}
|
|
|
}
|
|
|
@@ -469,7 +472,7 @@ void QuestDialog::showQuestDetails(
|
|
|
->setMarginRight(10)
|
|
|
->setAlignTopToElement("quest_requirements")
|
|
|
->setMarginTop(10)
|
|
|
- ->setOnClickMessage("quests", {2})
|
|
|
+ ->setOnClickMessage("quests", {"(char)2"})
|
|
|
->build());
|
|
|
if (zStorage->isQuestFinished() && !zStorage->isQuestRewarded())
|
|
|
{
|
|
|
@@ -481,7 +484,7 @@ void QuestDialog::showQuestDetails(
|
|
|
->setMarginLeft(10)
|
|
|
->setAlignTopToElement("quest_requirements")
|
|
|
->setMarginTop(10)
|
|
|
- ->setOnClickMessage("quests", {3})
|
|
|
+ ->setOnClickMessage("quests", {"(char)3"})
|
|
|
->build());
|
|
|
}
|
|
|
update();
|