Convert rating to float. Fix reading of timesPlayed.

http://thegamesdb.net API seems to use a float. Fix a but where the
times played was read into the rating member.
This commit is contained in:
Bim Overbohm 2013-06-28 16:13:57 +02:00
parent 556b9fa3fe
commit d99134763f
3 changed files with 9 additions and 9 deletions

View file

@ -14,7 +14,7 @@ const std::string GameData::xmlTagTimesPlayed = "timesplayed";
GameData::GameData(SystemData* system, std::string path, std::string name) GameData::GameData(SystemData* system, std::string path, std::string name)
: mSystem(system), mPath(path), mName(name), mRating(0), mTimesPlayed(0) : mSystem(system), mPath(path), mName(name), mRating(0.0f), mTimesPlayed(0)
{ {
} }
@ -63,12 +63,12 @@ void GameData::setImagePath(const std::string & imagePath)
mImagePath = imagePath; mImagePath = imagePath;
} }
size_t GameData::getRating() const float GameData::getRating() const
{ {
return mRating; return mRating;
} }
void GameData::setRating(size_t rating) void GameData::setRating(float rating)
{ {
mRating = rating; mRating = rating;
} }

View file

@ -34,8 +34,8 @@ public:
const std::string & getImagePath() const; const std::string & getImagePath() const;
void setImagePath(const std::string & imagePath); void setImagePath(const std::string & imagePath);
size_t getRating() const; float getRating() const;
void setRating(size_t rating); void setRating(float rating);
size_t getTimesPlayed() const; size_t getTimesPlayed() const;
void setTimesPlayed(size_t timesPlayed); void setTimesPlayed(size_t timesPlayed);
@ -52,7 +52,7 @@ private:
//extra data //extra data
std::string mDescription; std::string mDescription;
std::string mImagePath; std::string mImagePath;
size_t mRating; float mRating;
size_t mTimesPlayed; size_t mTimesPlayed;
}; };

View file

@ -182,7 +182,7 @@ void parseGamelist(SystemData* system)
//get rating and the times played from the XML doc //get rating and the times played from the XML doc
if(gameNode.child(GameData::xmlTagRating.c_str())) if(gameNode.child(GameData::xmlTagRating.c_str()))
{ {
size_t rating; float rating;
std::istringstream(gameNode.child(GameData::xmlTagRating.c_str()).text().get()) >> rating; std::istringstream(gameNode.child(GameData::xmlTagRating.c_str()).text().get()) >> rating;
game->setRating(rating); game->setRating(rating);
} }
@ -190,7 +190,7 @@ void parseGamelist(SystemData* system)
{ {
size_t timesPlayed; size_t timesPlayed;
std::istringstream(gameNode.child(GameData::xmlTagTimesPlayed.c_str()).text().get()) >> timesPlayed; std::istringstream(gameNode.child(GameData::xmlTagTimesPlayed.c_str()).text().get()) >> timesPlayed;
game->setRating(timesPlayed); game->setTimesPlayed(timesPlayed);
} }
} }
else{ else{
@ -222,7 +222,7 @@ void addGameDataNode(pugi::xml_node & parent, const GameData * game)
} }
//all other values are added regardless of their value //all other values are added regardless of their value
pugi::xml_node ratingNode = newGame.append_child(GameData::xmlTagRating.c_str()); pugi::xml_node ratingNode = newGame.append_child(GameData::xmlTagRating.c_str());
ratingNode.text().set(std::to_string((unsigned long long)game->getRating()).c_str()); ratingNode.text().set(std::to_string((long double)game->getRating()).c_str());
pugi::xml_node timesPlayedNode = newGame.append_child(GameData::xmlTagTimesPlayed.c_str()); pugi::xml_node timesPlayedNode = newGame.append_child(GameData::xmlTagTimesPlayed.c_str());
timesPlayedNode.text().set(std::to_string((unsigned long long)game->getTimesPlayed()).c_str()); timesPlayedNode.text().set(std::to_string((unsigned long long)game->getTimesPlayed()).c_str());
} }