| 72 | } |
| 73 | |
| 74 | void QuestTrackerPane::update(float dt) { |
| 75 | if (m_currentQuest) { |
| 76 | if (auto objectiveList = m_currentQuest->objectiveList()) { |
| 77 | if (objectiveList->size() == 0) { |
| 78 | m_questObjectiveList->hide(); |
| 79 | } else { |
| 80 | m_questObjectiveList->show(); |
| 81 | if (m_expanded) { |
| 82 | String listText = ""; |
| 83 | for (auto objective : objectiveList.value()) { |
| 84 | if (objective.get(1).toBool()) |
| 85 | listText += m_completeObjectiveTemplate.replaceTags(StringMap<String>{{"objective", objective.get(0).toString()}}); |
| 86 | else |
| 87 | listText += m_incompleteObjectiveTemplate.replaceTags(StringMap<String>{{"objective", objective.get(0).toString()}}); |
| 88 | } |
| 89 | m_questObjectiveList->setText(listText); |
| 90 | } else { |
| 91 | String displayObjective = ""; |
| 92 | for (auto objective : objectiveList.value()) { |
| 93 | if (displayObjective.empty() || !objective.get(1).toBool()) { |
| 94 | if (objective.get(1).toBool()) { |
| 95 | displayObjective = m_completeObjectiveTemplate.replaceTags(StringMap<String>{{"objective", objective.get(0).toString()}}); |
| 96 | } else { |
| 97 | displayObjective = m_incompleteObjectiveTemplate.replaceTags(StringMap<String>{{"objective", objective.get(0).toString()}}); |
| 98 | break; |
| 99 | } |
| 100 | } |
| 101 | } |
| 102 | m_questObjectiveList->setText(displayObjective); |
| 103 | } |
| 104 | } |
| 105 | } else { |
| 106 | m_questObjectiveList->hide(); |
| 107 | m_questObjectiveList->setText(""); |
| 108 | } |
| 109 | |
| 110 | if (m_expanded) { |
| 111 | m_expandedFrame->show(); |
| 112 | m_frame->hide(); |
| 113 | |
| 114 | int frameHeight = max(m_expandedFrameMinHeight, m_questObjectiveList->size()[1] + m_expandedFramePadding * 2); |
| 115 | m_expandedFrame->setSize(Vec2I(m_expandedFrame->size()[0], frameHeight)); |
| 116 | m_expandedFrame->setPosition(Vec2I(m_expandedFrame->relativePosition()[0], -frameHeight)); |
| 117 | } else { |
| 118 | m_frame->show(); |
| 119 | m_expandedFrame->hide(); |
| 120 | } |
| 121 | |
| 122 | if (auto progress = m_currentQuest->progress()) { |
| 123 | m_progress->show(); |
| 124 | m_progressFrame->show(); |
| 125 | |
| 126 | if (m_expanded) { |
| 127 | m_progressFrame->setImage(m_expandedProgressFrameImage); |
| 128 | |
| 129 | m_progress->setDrawingOffset(Vec2I(0, -m_expandedFrame->size()[1])); |
| 130 | m_progressFrame->setDrawingOffset(Vec2I(0, -m_expandedFrame->size()[1])); |
| 131 | } else { |
nothing calls this directly
no test coverage detected