Use the new stkaddons feeature to allow more than one achievements to
be sent at a time. This means only one server request when local achievements are synched to the online account.
This commit is contained in:
parent
fa2913c937
commit
6dd4c6f803
@ -133,19 +133,28 @@ void AchievementsStatus::sync(const std::vector<uint32_t> & achieved_ids)
|
||||
|
||||
std::map<uint32_t, Achievement*>::iterator i;
|
||||
|
||||
// String to collect all local ids that are not synched
|
||||
// to the online account
|
||||
std::string ids;
|
||||
for(i=m_achievements.begin(); i!=m_achievements.end(); i++)
|
||||
{
|
||||
int id = i->second->getID();
|
||||
unsigned int id = i->second->getID();
|
||||
if(i->second->isAchieved() && (id>=done.size() || !done[id]) )
|
||||
{
|
||||
Log::info("Achievements", "Synching achievement %d to server.",
|
||||
i->first);
|
||||
Online::HTTPRequest * request = new Online::HTTPRequest(true,2);
|
||||
PlayerManager::setUserDetails(request, "achieving");
|
||||
request->addParameter("achievementid", i->second->getID());
|
||||
request->queue();
|
||||
ids=ids+StringUtils::toString(id)+",";
|
||||
}
|
||||
}
|
||||
|
||||
if(ids.size()>0)
|
||||
{
|
||||
ids.pop_back(); // delete the last "," in the string
|
||||
Log::info("Achievements", "Synching achievement %d to server.",
|
||||
ids.c_str());
|
||||
Online::HTTPRequest * request = new Online::HTTPRequest(true, 2);
|
||||
PlayerManager::setUserDetails(request, "achieving");
|
||||
request->addParameter("achievementid", ids);
|
||||
request->queue();
|
||||
}
|
||||
} // sync
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user