Update StarQuestManager.cpp
This commit is contained in:
parent
7151c0cd9e
commit
9502b05ea4
@ -398,19 +398,21 @@ void QuestManager::update(float dt) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StringMap<QuestPtr> allQuests = quests();
|
List<String> expiredQuests;
|
||||||
for (auto& entry : allQuests) {
|
for (auto& entry : m_quests) {
|
||||||
auto quest = entry.second;
|
auto quest = entry.second;
|
||||||
QuestState state = quest->state();
|
QuestState state = quest->state();
|
||||||
bool finished = state == QuestState::Complete || state == QuestState::Failed;
|
bool finished = state == QuestState::Complete || state == QuestState::Failed;
|
||||||
if (state == QuestState::New || (finished && quest->ephemeral() && !quest->showDialog())) {
|
if (state == QuestState::New || (finished && quest->ephemeral() && !quest->showDialog())) {
|
||||||
quest->uninit();
|
quest->uninit();
|
||||||
allQuests.remove(entry.first);
|
expiredQuests.append(entry.first);
|
||||||
m_quests.remove(entry.first);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto& q : allQuests) {
|
for (auto& questId : expiredQuests)
|
||||||
|
m_quests.remove(questId);
|
||||||
|
|
||||||
|
for (auto& q : m_quests) {
|
||||||
if (questValidOnServer(q.second))
|
if (questValidOnServer(q.second))
|
||||||
q.second->update(dt);
|
q.second->update(dt);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user