bool TournamentConfig::Save(const std::string &fileName) { bool ret = true; JsonObject json; json.AddValue("version", TOURNAMENT_CONFIG_VERSION); JsonArray tournament; for (std::vector<Tarot::Distribution>::iterator iter = mOptions.turns.begin(); iter != mOptions.turns.end(); ++iter) { std::string type; std::string file; std::uint32_t number = 0U; JsonObject obj; if (iter->mType == Tarot::Distribution::RANDOM_DEAL) { type = "random"; file = ""; } else if (iter->mType == Tarot::Distribution::CUSTOM_DEAL) { type = "custom"; file = iter->mFile; } else { type = "numbered"; number = iter->mSeed; } obj.AddValue("type", type); obj.AddValue("file", file); obj.AddValue("number", number); tournament.AddValue(obj); } json.AddValue("tournament", tournament); if (!JsonWriter::SaveToFile(json, fileName)) { ret = false; TLogError("Saving tournament's configuration failed."); } return ret; }