コード例 #1
0
ファイル: LevelPack.cs プロジェクト: dannyray2/PeggleEdit
        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());
        }
コード例 #2
0
ファイル: LevelPack.cs プロジェクト: dannyray2/PeggleEdit
        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));
            }
        }
コード例 #3
0
ファイル: CFGReader.cs プロジェクト: Megamatt01/peggle-edit
		public CFGReader()
		{
			mDocument = new CFGDocument();
		}
コード例 #4
0
ファイル: LevelPack.cs プロジェクト: Megamatt01/peggle-edit
		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();
		}
コード例 #5
0
ファイル: CFGWriter.cs プロジェクト: Megamatt01/peggle-edit
		public CFGWriter(CFGDocument document)
		{
			mDocument = document;
		}