Т.к. ачивка имеет флаг ACHIEVEMENT_FLAG_SUMM, обратился к этому куску кода:
Код:
if (entry->flags & ACHIEVEMENT_FLAG_SUMM)
{
for(AchievementCriteriaEntryList::const_iterator itr = cList->begin(); itr != cList->end(); ++itr)
{
AchievementCriteriaEntry const* criteria = *itr;
CriteriaProgressMap::const_iterator itrProgress = m_criteriaProgress.find(criteria->ID);
if(itrProgress == m_criteriaProgress.end())
continue;
CriteriaProgress const* progress = &itrProgress->second;
count += progress->counter;
// for counters, field4 contains the main count requirement
if (count >= criteria->raw.count)
return true;
}
return false;
}
В конце его return false; Не значит ли это, что вне зависимости от того, что в теле цикла ачивка всегда будет незавершённой?
По идее должно идти сравнение с числом, что в
achievementForTestCount (код чуть выше фрагмента), а его тут нет...