1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-27 22:49:25 +02:00
This commit is contained in:
Laserlicht
2024-08-01 21:30:53 +02:00
parent fb171ab3a2
commit 490f1bfee6
7 changed files with 63 additions and 28 deletions

View File

@@ -9,6 +9,9 @@
*/
#include "StdInc.h"
#include "GameStatistics.h"
#include "../CPlayerState.h"
#include "../constants/StringConstants.h"
#include "CGameState.h"
VCMI_LIB_NAMESPACE_BEGIN
@@ -17,15 +20,37 @@ void StatisticDataSet::add(StatisticDataSetEntry entry)
data.push_back(entry);
}
StatisticDataSetEntry StatisticDataSet::createEntry(const PlayerState * ps, const CGameState * gs)
{
StatisticDataSetEntry data;
data.day = gs->getDate(Date::DAY);
data.player = ps->color;
data.team = ps->team;
data.resources = ps->resources;
data.heroesCount = ps->heroes.size();
data.townCount = ps->towns.size();
return data;
}
std::string StatisticDataSet::toCsv()
{
std::stringstream ss;
ss << "Day" << ";" << "Player" << "\r\n";
auto resources = std::vector<EGameResID>{EGameResID::GOLD, EGameResID::WOOD, EGameResID::MERCURY, EGameResID::ORE, EGameResID::SULFUR, EGameResID::CRYSTAL, EGameResID::GEMS};
ss << "Day" << ";" << "Player" << ";" << "Team" << ";" << "HeroesCount" << ";" << "TownCount";
for(auto & resource : resources)
ss << ";" << GameConstants::RESOURCE_NAMES[resource];
ss << "\r\n";
for(auto & entry : data)
{
ss << entry.day << ";" << entry.player.getNum() << "\r\n";
ss << entry.day << ";" << GameConstants::PLAYER_COLOR_NAMES[entry.player] << ";" << entry.team.getNum() << ";" << entry.heroesCount << ";" << entry.townCount;
for(auto & resource : resources)
ss << ";" << entry.resources[resource];
ss << "\r\n";
}
return ss.str();