void convert181to183Hashes(const string& mSourceJsonPath, const string& mTargetJsonPath) { string scores{get184FileContents(mSourceJsonPath)}; vector<string> oldValidators, newValidators; for(auto& levelData : getAllLevelData()) for(float difficultyMult : levelData.getDifficultyMultipliers()) { log(""); log(""); log("computing old validator for " + levelData.getId() + ", difficulty multiplier " + toStr(difficultyMult) + "..."); string oldValidator{get181Validator(levelData.getPackPath(), levelData.getId(), levelData.getLevelRootPath(), levelData.getLuaScriptPath(), difficultyMult)}; log("\"" + oldValidator + "\""); oldValidators.push_back("\"" + oldValidator + "\""); log(""); log("computing new validator for " + levelData.getId() + ", difficulty multiplier " + toStr(difficultyMult) + "..."); string newValidator{Online::getValidator(levelData.getPackPath(), levelData.getId(), levelData.getLevelRootPath(), levelData.getStyleRootPath(), levelData.getLuaScriptPath(), difficultyMult)}; log("\"" + newValidator + "\""); newValidators.push_back("\"" + newValidator + "\""); log(""); } log(""); log(""); for(unsigned int i{0}; i < oldValidators.size(); ++i) { scores = getReplacedAll(scores, oldValidators[i], newValidators[i]); log("replacing"); log(oldValidators[i]); log("with"); log(newValidators[i]); log(""); } ofstream o; o.open(mTargetJsonPath); o << scores; o.flush(); o.close(); }
vector<string> getAllLevelDataIds() { vector<LevelData> levelDataVector{getAllLevelData()}; sort(begin(levelDataVector), end(levelDataVector), [](LevelData a, LevelData b) -> bool { return a.getMenuPriority() < b.getMenuPriority(); }); vector<string> result; for(auto levelData : levelDataVector) result.push_back(levelData.getId()); return result; }
vector<string> getAllLevelIds() { vector<LevelData> levelDataVector{getAllLevelData()}; sort(begin(levelDataVector), end(levelDataVector), [](LevelData a, LevelData b) { if(a.getPackPath() == b.getPackPath()) return a.getMenuPriority() < b.getMenuPriority(); return a.getPackPath() < b.getPackPath(); }); vector<string> result; for(auto levelData : levelDataVector) if(levelData.getSelectable()) result.push_back(levelData.getId()); return result; }