UpdateAdventureStatsEntry converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-07-06 15:27:44 -07:00 committed by Arthur Ice
parent 22d06bc3d1
commit 28212ab8f8

View File

@ -2622,107 +2622,58 @@ bool Database::GlobalInstance(uint16 instance_id)
void Database::UpdateAdventureStatsEntry(uint32 char_id, uint8 theme, bool win) void Database::UpdateAdventureStatsEntry(uint32 char_id, uint8 theme, bool win)
{ {
char errbuf[MYSQL_ERRMSG_SIZE]; char *query = nullptr;
char *query = 0;
uint32 affected = 0;
std::string field; std::string field;
if(win) switch(theme)
{ {
switch(theme) case 1:
{ {
case 1: field = "guk_";
{ break;
field = "guk_wins";
break;
}
case 2:
{
field = "mir_wins";
break;
}
case 3:
{
field = "mmc_wins";
break;
}
case 4:
{
field = "ruj_wins";
break;
}
case 5:
{
field = "tak_wins";
break;
}
default:
{
return;
}
} }
} case 2:
else
{
switch(theme)
{ {
case 1: field = "mir_";
{ break;
field = "guk_losses"; }
break; case 3:
} {
case 2: field = "mmc_";
{ break;
field = "mir_losses"; }
break; case 4:
} {
case 3: field = "ruj_";
{ break;
field = "mmc_losses"; }
break; case 5:
} {
case 4: field = "tak_";
{ break;
field = "ruj_losses"; }
break; default:
} {
case 5: return;
{
field = "tak_losses";
break;
}
default:
{
return;
}
} }
} }
if(RunQuery(query, MakeAnyLenString(&query, "UPDATE `adventure_stats` SET %s=%s+1 WHERE player_id=%u", if (win)
field.c_str(), field.c_str(), char_id), errbuf, nullptr, &affected)) field += "wins";
{
safe_delete_array(query);
}
else else
{ field += "losses";
//error
safe_delete_array(query);
}
if(affected == 0) auto results = QueryDatabase(query, MakeAnyLenString(&query, "UPDATE `adventure_stats` SET %s=%s+1 WHERE player_id=%u",
{ field.c_str(), field.c_str(), char_id));
if(RunQuery(query, MakeAnyLenString(&query, "INSERT INTO `adventure_stats` SET %s=1, player_id=%u", safe_delete_array(query);
field.c_str(), char_id), errbuf))
{ if (results.RowsAffected() != 0)
safe_delete_array(query); return;
}
else QueryDatabase(query, MakeAnyLenString(&query, "INSERT INTO `adventure_stats` SET %s=1, player_id=%u",
{ field.c_str(), char_id));
//error safe_delete_array(query);
safe_delete_array(query);
}
}
} }
bool Database::GetAdventureStats(uint32 char_id, uint32 &guk_w, uint32 &mir_w, uint32 &mmc_w, uint32 &ruj_w, bool Database::GetAdventureStats(uint32 char_id, uint32 &guk_w, uint32 &mir_w, uint32 &mmc_w, uint32 &ruj_w,