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,39 +2622,35 @@ 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_wins"; field = "guk_";
break; break;
} }
case 2: case 2:
{ {
field = "mir_wins"; field = "mir_";
break; break;
} }
case 3: case 3:
{ {
field = "mmc_wins"; field = "mmc_";
break; break;
} }
case 4: case 4:
{ {
field = "ruj_wins"; field = "ruj_";
break; break;
} }
case 5: case 5:
{ {
field = "tak_wins"; field = "tak_";
break; break;
} }
default: default:
@ -2662,67 +2658,22 @@ void Database::UpdateAdventureStatsEntry(uint32 char_id, uint8 theme, bool win)
return; return;
} }
} }
}
if (win)
field += "wins";
else else
{ field += "losses";
switch(theme)
{ auto results = QueryDatabase(query, MakeAnyLenString(&query, "UPDATE `adventure_stats` SET %s=%s+1 WHERE player_id=%u",
case 1: field.c_str(), field.c_str(), char_id));
{ safe_delete_array(query);
field = "guk_losses";
break; if (results.RowsAffected() != 0)
}
case 2:
{
field = "mir_losses";
break;
}
case 3:
{
field = "mmc_losses";
break;
}
case 4:
{
field = "ruj_losses";
break;
}
case 5:
{
field = "tak_losses";
break;
}
default:
{
return; return;
}
}
}
if(RunQuery(query, MakeAnyLenString(&query, "UPDATE `adventure_stats` SET %s=%s+1 WHERE player_id=%u", QueryDatabase(query, MakeAnyLenString(&query, "INSERT INTO `adventure_stats` SET %s=1, player_id=%u",
field.c_str(), field.c_str(), char_id), errbuf, nullptr, &affected)) field.c_str(), char_id));
{
safe_delete_array(query); safe_delete_array(query);
}
else
{
//error
safe_delete_array(query);
}
if(affected == 0)
{
if(RunQuery(query, MakeAnyLenString(&query, "INSERT INTO `adventure_stats` SET %s=1, player_id=%u",
field.c_str(), char_id), errbuf))
{
safe_delete_array(query);
}
else
{
//error
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,