public void btnCompileCampaign_Click(Object sender, EventArgs e) { var ReturnResult = new clsResult("Compile campaign", false); logger.Info("Compile campaign"); var A = 0; SaveToMap(); A = ValidateMap_WaterTris(); if ( A > 0 ) { ReturnResult.WarningAdd(A + " water tiles have an incorrect triangle direction. There might be in-game graphical glitches on those tiles."); } ReturnResult.Add(ValidateMap()); ReturnResult.Add(ValidateMap_UnitPositions()); var MapName = ""; var TypeNum = 0; MapName = txtName.Text; if ( MapName.Length < 1 ) { ReturnResult.ProblemAdd("Enter a name for the campaign files."); } TypeNum = cboCampType.SelectedIndex; if ( TypeNum < 0 | TypeNum > 2 ) { ReturnResult.ProblemAdd("Select a campaign type."); } if ( ReturnResult.HasProblems ) { App.ShowWarnings(ReturnResult); return; } var CompileCampDialog = new FolderBrowserDialog(); if ( CompileCampDialog.ShowDialog(this) != DialogResult.OK ) { return; } var WriteWZArgs = new sWrite_WZ_Args(); WriteWZArgs.MapName = MapName; WriteWZArgs.Path = CompileCampDialog.SelectedPath; WriteWZArgs.Overwrite = false; SetScrollLimits(ref WriteWZArgs.ScrollMin, ref WriteWZArgs.ScrollMax); WriteWZArgs.Campaign = new sWrite_WZ_Args.clsCampaign(); WriteWZArgs.Campaign.GAMType = (uint)TypeNum; WriteWZArgs.CompileType = sWrite_WZ_Args.enumCompileType.Campaign; var wzFormat = new Wz(Map); ReturnResult.Add(wzFormat.Save(WriteWZArgs)); App.ShowWarnings(ReturnResult); if ( !ReturnResult.HasWarnings ) { Close(); } }
public void btnCompile_Click(Object sender, EventArgs e) { var ReturnResult = new clsResult("Compile multiplayer", false); logger.Info("Compile multiplayer"); var A = 0; SaveToMap(); var MapName = ""; var License = cboLicense.Text; var PlayerCount = 0; if ( !IOUtil.InvariantParse(txtMultiPlayers.Text, ref PlayerCount) ) { PlayerCount = 0; } if ( PlayerCount < 2 | PlayerCount > Constants.PlayerCountMax ) { ReturnResult.ProblemAdd(string.Format("The number of players must be from 2 to {0}", Constants.PlayerCountMax)); } A = ValidateMap_WaterTris(); if ( A > 0 ) { ReturnResult.WarningAdd(string.Format("{0} water tiles have an incorrect triangle direction. There might be in-game graphical glitches on those tiles.", A)); } ReturnResult.Add(ValidateMap()); ReturnResult.Add(ValidateMap_UnitPositions()); ReturnResult.Add(ValidateMap_Multiplayer(PlayerCount)); MapName = txtName.Text; var CurrentChar = (char)0; for ( A = 0; A <= MapName.Length - 1; A++ ) { CurrentChar = MapName[A]; if ( !((CurrentChar >= 'a' && CurrentChar <= 'z') || (CurrentChar >= 'A' && CurrentChar <= 'Z') || (A >= 1 && ((CurrentChar >= '0' && CurrentChar <= '9') || CurrentChar == '-' || CurrentChar == '_'))) ) { break; } } if ( A < MapName.Length ) { ReturnResult.ProblemAdd("The map\'s name must contain only letters, numbers, underscores and hyphens, and must begin with a letter."); } if ( MapName.Length < 1 | MapName.Length > 16 ) { ReturnResult.ProblemAdd("Map name must be from 1 to 16 characters."); } if ( string.IsNullOrEmpty(License) ) { ReturnResult.ProblemAdd("Enter a valid license."); } if ( ReturnResult.HasProblems ) { App.ShowWarnings(ReturnResult); return; } var CompileMultiDialog = new SaveFileDialog(); if ( Map.PathInfo != null ) { CompileMultiDialog.InitialDirectory = Map.PathInfo.Path; } CompileMultiDialog.FileName = PlayerCount + "c-" + MapName; CompileMultiDialog.Filter = "WZ Files (*.wz)|*.wz"; if ( CompileMultiDialog.ShowDialog(this) != DialogResult.OK ) { return; } var WriteWZArgs = new sWrite_WZ_Args(); WriteWZArgs.MapName = MapName; WriteWZArgs.Path = CompileMultiDialog.FileName; WriteWZArgs.Overwrite = true; SetScrollLimits(ref WriteWZArgs.ScrollMin, ref WriteWZArgs.ScrollMax); WriteWZArgs.Multiplayer = new sWrite_WZ_Args.clsMultiplayer(); WriteWZArgs.Multiplayer.AuthorName = txtAuthor.Text; WriteWZArgs.Multiplayer.PlayerCount = PlayerCount; WriteWZArgs.Multiplayer.License = License; WriteWZArgs.CompileType = sWrite_WZ_Args.enumCompileType.Multiplayer; var wzFormat = new Wz(Map); ReturnResult.Add(wzFormat.Save(WriteWZArgs)); App.ShowWarnings(ReturnResult); if ( !ReturnResult.HasWarnings ) { Close(); } }