private string WriteCFG() { CFGDocument document = new CFGDocument(); CFGBlock docblock = new CFGBlock(); //Number of stages needed int numStages = (int)Math.Ceiling((float)mLevels.Count / 5.0f); for (int i = 0; i < numStages; i++) { CFGBlock block = new CFGBlock(); block.Name = "Stage"; block.Properties.Add(new CFGProperty("Name", mName)); block.Properties.Add(new CFGProperty("Desc", mDescription)); for (int j = i * 5; j < Math.Min(mLevels.Count, (i + 1) * 5); j++) { Level lvl = mLevels[j]; block.Properties.Add(new CFGProperty("Level", lvl.Info.Filename, lvl.Info.Name, lvl.Info.AceScore.ToString(), lvl.Info.MinStage.ToString())); } docblock.Blocks.Add(block); } //Challenges foreach (ChallengePage page in mChallengePages) { docblock.Blocks.Add(page.GetCFGBlock()); } document.Blocks.Add(docblock); CFGWriter writer = new CFGWriter(document); return(writer.GetText()); }
private void ParseCFG(string cfg) { CFGDocument document = CFGDocument.Read(cfg); CFGBlock[] stages = document.Blocks[0].GetBlocks("stage"); foreach (CFGBlock block in stages) { foreach (CFGProperty property in block) { switch (property.Name.ToLower()) { case "name": mName = property[0]; break; case "desc": mDescription = property[0]; break; case "level": LevelInfo levelInfo = new LevelInfo(); levelInfo.Filename = property[0]; levelInfo.Name = property[1]; levelInfo.AceScore = Convert.ToInt32(property[2]); levelInfo.MinStage = Convert.ToInt32(property[3]); mLevelInfos.Add(levelInfo); break; } } } CFGBlock[] challenge_pages = document.Blocks[0].GetBlocks("page"); foreach (CFGBlock block in challenge_pages) { mChallengePages.Add(new ChallengePage(block)); } }
public CFGReader() { mDocument = new CFGDocument(); }
private string WriteCFG() { CFGDocument document = new CFGDocument(); CFGBlock docblock = new CFGBlock(); //Number of stages needed int numStages = (int)Math.Ceiling((float)mLevels.Count / 5.0f); for (int i = 0; i < numStages; i++) { CFGBlock block = new CFGBlock(); block.Name = "Stage"; block.Properties.Add(new CFGProperty("Name", mName)); block.Properties.Add(new CFGProperty("Desc", mDescription)); for (int j = i * 5; j < Math.Min(mLevels.Count, (i + 1) * 5); j++) { Level lvl = mLevels[j]; block.Properties.Add(new CFGProperty("Level", lvl.Info.Filename, lvl.Info.Name, lvl.Info.AceScore.ToString(), lvl.Info.MinStage.ToString())); } docblock.Blocks.Add(block); } //Challenges foreach (ChallengePage page in mChallengePages) { docblock.Blocks.Add(page.GetCFGBlock()); } document.Blocks.Add(docblock); CFGWriter writer = new CFGWriter(document); return writer.GetText(); }
public CFGWriter(CFGDocument document) { mDocument = document; }