MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / tick

Method tick

source/frontend/StarQuestInterface.cpp:100–173  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

98}
99
100void QuestLogInterface::tick(float dt) {
101 Pane::tick(dt);
102 auto selected = getSelected();
103 if (selected && m_manager->hasQuest(selected->data().toString())) {
104 auto quest = m_manager->getQuest(selected->data().toString());
105
106 m_manager->markAsRead(quest->questId());
107
108 if (m_manager->isActive(quest->questId())) {
109 fetchChild<ButtonWidget>("btnToggleTracking")->enable();
110 fetchChild<ButtonWidget>("btnToggleTracking")->setText(m_manager->isCurrent(quest->questId()) ? m_untrackLabel : m_trackLabel);
111 if (quest->canBeAbandoned())
112 fetchChild<ButtonWidget>("btnAbandon")->enable();
113 else
114 fetchChild<ButtonWidget>("btnAbandon")->disable();
115 } else {
116 fetchChild<ButtonWidget>("btnToggleTracking")->disable();
117 fetchChild<ButtonWidget>("btnToggleTracking")->setText(m_trackLabel);
118 fetchChild<ButtonWidget>("btnAbandon")->disable();
119 }
120 fetchChild<LabelWidget>("lblQuestTitle")->setText(quest->title());
121 fetchChild<LabelWidget>("lblQuestBody")->setText(quest->text());
122
123 auto portraitName = "Objective";
124 auto imagePortrait = quest->portrait(portraitName);
125 if (imagePortrait) {
126 auto portraitTitleLabel = fetchChild<LabelWidget>("lblPortraitTitle");
127 String portraitTitle = quest->portraitTitle(portraitName).value("");
128 Maybe<unsigned> charLimit = portraitTitleLabel->getTextCharLimit();
129 portraitTitleLabel->setText(portraitTitle);
130
131 Drawable::scaleAll(*imagePortrait, Vec2F(-1, 1));
132 fetchChild<ImageWidget>("imgPortrait")->setDrawables(*imagePortrait);
133 fetchChild<ImageWidget>("imgPolaroid")->setVisibility(true);
134 fetchChild<ImageWidget>("imgPolaroidBack")->setVisibility(true);
135
136 } else {
137 fetchChild<LabelWidget>("lblPortraitTitle")->setText("");
138 fetchChild<ImageWidget>("imgPortrait")->setDrawables({});
139 fetchChild<ImageWidget>("imgPolaroid")->setVisibility(false);
140 fetchChild<ImageWidget>("imgPolaroidBack")->setVisibility(false);
141 }
142
143 m_rewardItems->clearItems();
144 if (quest->rewards().size() > 0) {
145 fetchChild<LabelWidget>("lblRewards")->setVisibility(true);
146 fetchChild<ItemGridWidget>("rewardItems")->setVisibility(true);
147 for (auto const& reward : quest->rewards())
148 m_rewardItems->addItems(reward->clone());
149 } else {
150 fetchChild<LabelWidget>("lblRewards")->setVisibility(false);
151 fetchChild<ItemGridWidget>("rewardItems")->setVisibility(false);
152 }
153 } else {
154 fetchChild<ButtonWidget>("btnToggleTracking")->disable();
155 fetchChild<ButtonWidget>("btnToggleTracking")->setText(m_trackLabel);
156 fetchChild<ButtonWidget>("btnAbandon")->disable();
157 fetchChild<LabelWidget>("lblQuestTitle")->setText("");

Callers

nothing calls this directly

Calls 15

hasQuestMethod · 0.80
getQuestMethod · 0.80
questIdMethod · 0.80
isCurrentMethod · 0.80
canBeAbandonedMethod · 0.80
textMethod · 0.80
portraitTitleMethod · 0.80
getTextCharLimitMethod · 0.80
setDrawablesMethod · 0.80
setVisibilityMethod · 0.80
clearItemsMethod · 0.80
rewardsMethod · 0.80

Tested by

no test coverage detected