private void btnOK_Click(object sender, EventArgs e)
		{
			if (txtFilename.TextLength == 0) {
				MessageBox.Show("No filename specified.", "Properties", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
				return;
			}

			if (txtName.TextLength == 0) {
				MessageBox.Show("No display name specified.", "Properties", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
				return;
			}

			int aceScore;
			if (!Int32.TryParse(txtAceScore.Text, out aceScore)) {
				MessageBox.Show("Invalid ace score.", "Properties", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
				return;
			}

			int minStage;
			if (!Int32.TryParse(txtMinStage.Text, out minStage)) {
				MessageBox.Show("Invalid minimum stage.", "Properties", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
				return;
			}

			LevelInfo info = new LevelInfo();
			info.Filename = txtFilename.Text;
			info.Name = txtName.Text;
			info.AceScore = Convert.ToInt32(txtAceScore.Text);
			info.MinStage = Convert.ToInt32(txtMinStage.Text);
			mLevel.Info = info;

			DialogResult = DialogResult.OK;
			Close();
		}
		private void AddLevel(string name, string displayname, int acescore)
		{
			PakRecord record = mPakCollection.GetRecord("levels\\" + name + ".dat");

			LevelReader reader = new LevelReader(record.Buffer);
			Level level = reader.Read();
			reader.Dispose();

			if (level == null)
				throw new Exception("Unable to read " + name);

			LevelInfo info = new LevelInfo(name, displayname, acescore, -3);
			level.Info = info;

			Image bgImage = GetBackground(name);
			level.Background = bgImage;

			mPack.Levels.Add(level);
		}
Beispiel #3
0
		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));
			}
		}