public override void LoadAndInitialize() { UIParent.UI.Clear(); switch (subscreen) { case -1: //main { UIButton button; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_options"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); button = new UIButton(game); button.Name = "btnPlayerOptions"; button.Text = "Players"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 5), 200, 75); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, 0); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnVideoOptions"; button.Text = "Video"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 4), 200, 75); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, 1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnAudioOptions"; button.Text = "Audio"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 3), 200, 75); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, 2); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnCommon"; button.Text = "Other settings"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 2), 200, 75); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, 3); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIButton btnBack = new UIButton(game); btnBack.Name = "btnBack"; btnBack.Text = "<-- Back"; btnBack.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); btnBack.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Main(game); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(btnBack); UIParent.ESCHook += UIParent_ESCHook1; } break; case 0: //player { UIButton button; UIComboBox combo; UITextBox textbox; UIKeyPicker kpicker; UILabel label; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_playersoptions"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); label = new UILabel(game); label.AutoSize = true; label.Text = "Player name: "; label.PositionAndSize = new Rectangle(10, 95 + 5, 0, 0); UIParent.UI.Add(label); textbox = new UITextBox(game); textbox.Name = "tboxName"; textbox.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top - 5, 200, 0); textbox.TextLenghtLimit = 15; textbox.Text = ""; UIParent.UI.Add(textbox); label = new UILabel(game); label.AutoSize = true; label.Text = "Color: "; label.PositionAndSize = new Rectangle(textbox.PositionAndSize.Right + 20, textbox.PositionAndSize.Top + 5, 0, 0); UIParent.UI.Add(label); combo = new UIComboBox(game); combo.Name = "cboxColor"; combo.Edible = false; combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, textbox.PositionAndSize.Top, 100, 0); combo.Values.Add(new UITaggedValue("white", Color.White)); combo.Values.Add(new UITaggedValue("black", Color.Black)); combo.Values.Add(new UITaggedValue("red", Color.Red)); combo.Values.Add(new UITaggedValue("green", Color.Green)); combo.Values.Add(new UITaggedValue("blue", Color.Blue)); combo.Values.Add(new UITaggedValue("yellow", Color.Yellow)); combo.Values.Add(new UITaggedValue("magenta", Color.Magenta)); combo.Values.Add(new UITaggedValue("cyan", Color.Cyan)); combo.MaxDisplayedItems = 6; combo.SelectedIndex = 0; UIParent.UI.Add(combo); label = new UILabel(game); label.AutoSize = true; label.Text = "Keys:"; label.PositionAndSize = new Rectangle(10, textbox.PositionAndSize.Bottom + 10, 0, 0); UIParent.UI.Add(label); Rectangle last_pos = new Rectangle(label.PositionAndSize.Left + 10, label.PositionAndSize.Bottom + 5, 100, textbox.PositionAndSize.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Turn left/Go left: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpGoLeft"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Turn right/Go right: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpGoRight"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "---/Go up: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpGoUp"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Brake/Go down: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpGoDown"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Chat: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpOpenChat"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Bot menu: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpBotMenu"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Speed up bonus: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpSpeedUp"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Trace widen bonus: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpTraceWiden"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Fear bomb bonus: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpRandomizationBomb"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Steering: "; label.PositionAndSize = new Rectangle(10, last_pos.Top + 10, 0, 0); UIParent.UI.Add(label); combo = new UIComboBox(game); combo.Name = "cboxSteering"; combo.Edible = false; combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, last_pos.Top + 5, 100, 0); combo.Values.Add(new UITaggedValue("relative", PlayerMotor.Steering.Relative)); combo.Values.Add(new UITaggedValue("absolute", PlayerMotor.Steering.Absolute)); combo.SelectedIndex = 0; UIParent.UI.Add(combo); //load player data UIParent.UI["tboxName"].Text = GameSettings.playerName; for (int i = 0; i < Enum.GetNames(typeof(GameKeyNames)).Length; i++) ((UIKeyPicker)UIParent.UI["kp" + Enum.GetNames(typeof(GameKeyNames))[i]]).SelectedKey = GameSettings.playerKeys[i]; for (int i = 0; i < ((UIComboBox)UIParent.UI["cboxColor"]).Values.Count; i++) if ((Color)((UIComboBox)UIParent.UI["cboxColor"]).Values[i].Tag == GameSettings.playerColor) { ((UIComboBox)UIParent.UI["cboxColor"]).SelectedIndex = i; break; } for (int i = 0; i < ((UIComboBox)UIParent.UI["cboxSteering"]).Values.Count; i++) if ((PlayerMotor.Steering)((UIComboBox)UIParent.UI["cboxSteering"]).Values[i].Tag == GameSettings.playerSteering) { ((UIComboBox)UIParent.UI["cboxSteering"]).SelectedIndex = i; break; } button = new UIButton(game); button.Name = "btnAcceptPlayerChanges"; button.Text = "Save"; button.PositionAndSize = new Rectangle(800 - 105, 600 - 41, 100, 37); button.Action += (UIButton_Action)((btn) => { //save changes GameSettings.playerName = UIParent.UI["tboxName"].Text; for (int i = 0; i < Enum.GetNames(typeof(GameKeyNames)).Length; i++) GameSettings.playerKeys[i] = ((UIKeyPicker)UIParent.UI["kp" + Enum.GetNames(typeof(GameKeyNames))[i]]).SelectedKey; GameSettings.playerColor = (Color)((UIComboBox)UIParent.UI["cboxColor"]).SelectedItem.Tag; GameSettings.playerSteering = (PlayerMotor.Steering)((UIComboBox)UIParent.UI["cboxSteering"]).SelectedItem.Tag; //don't exit - user might want to change something more }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnBack"; button.Text = "<-- Back"; button.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIParent.ESCHook += UIParent_ESCHook2; } break; case 1: //video { UIButton button; UICheckBox checkbox; UIComboBox combo; UILabel label; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_videooptions"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); label = new UILabel(game); label.Name = "label1"; label.Text = "Display mode:"; label.AutoSize = true; label.PositionAndSize = new Rectangle(10, logo.PositionAndSize.Bottom + 10, 0, 0); UIParent.UI.Add(label); combo = new UIComboBox(game); combo.Name = "comboDisplayMode"; combo.Edible = false; combo.MaxDisplayedItems = 5; combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top, 200, 0); combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top + (label.PositionAndSize.Height / 2 - combo.PositionAndSize.Height / 2), 200, 0); foreach (DisplayMode dm in game.GraphicsDevice.Adapter.SupportedDisplayModes) combo.Values.Add(new UITaggedValue(dm.Width + "x" + dm.Height + " " + dm.Format, dm)); combo.SelectedIndex = GameSettings.videoGraphMode; combo.SelectionChanged += (UIComboBox_SelectionChanged)((c, old) => { game.SetGraphMode(c.SelectedIndex, ((UICheckBox)UIParent.UI["cboxFullscreen"]).Checked); }); UIParent.UI.Add(combo); checkbox = new UICheckBox(game); checkbox.Name = "cboxFullscreen"; checkbox.Text = "Fullscreen mode"; checkbox.AutoSize = true; checkbox.PositionAndSize = new Rectangle(label.PositionAndSize.Left, combo.PositionAndSize.Bottom + 5, 0, 0); checkbox.Checked = GameSettings.videoFullscreen; checkbox.CheckChanged += (UICheckBox_CheckChanged)((cbox) => { game.SetGraphMode(game.graphics.PreferredBackBufferWidth, game.graphics.PreferredBackBufferHeight, ((UICheckBox)UIParent.UI["cboxFullscreen"]).Checked); }); UIParent.UI.Add(checkbox); button = new UIButton(game); button.Name = "btnAcceptVideoChanges"; button.Text = "Save"; button.PositionAndSize = new Rectangle(800 - 105, 600 - 41, 100, 37); button.Action += (UIButton_Action)((btn) => { //save changes GameSettings.videoGraphMode = ((UIComboBox)UIParent.UI["comboDisplayMode"]).SelectedIndex; GameSettings.videoFullscreen = ((UICheckBox)UIParent.UI["cboxFullscreen"]).Checked; UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnBack"; button.Text = "<-- Back"; button.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); button.Action += (UIButton_Action)((btn) => { game.SetGraphMode(GameSettings.videoGraphMode, GameSettings.videoFullscreen); UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIParent.ESCHook += UIParent_ESCHook2; } break; case 2: //audio { UIButton button; UICheckBox checkbox; UILabel label; UIScrollBar scroll; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_audiooptions"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); checkbox = new UICheckBox(game); checkbox.Name = "cbEnable"; checkbox.AutoSize = true; checkbox.Checked = GameSettings.audioEnabled; checkbox.Enabled = false; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! checkbox.PositionAndSize = new Rectangle(10, logo.PositionAndSize.Bottom + 10, 0, 0); checkbox.Text = "Enable sound"; checkbox.CheckChanged += (UICheckBox_CheckChanged)((cb) => { UIParent.UI["scrollVolume"].Enabled = cb.Checked; UIParent.UI["scrollMusic"].Enabled = cb.Checked; UIParent.UI["scrollSFX"].Enabled = cb.Checked; UIParent.UI["scrollUI"].Enabled = cb.Checked; }); UIParent.UI.Add(checkbox); Rectangle last_pos = new Rectangle(checkbox.PositionAndSize.Left + 10, checkbox.PositionAndSize.Bottom + 5, 300, 0); scroll = new UIScrollBar(game); scroll.Name = "scrollVolume"; scroll.Enabled = GameSettings.audioEnabled; scroll.IsHorizontal = true; scroll.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, last_pos.Width, 0); scroll.MinimalValue = 0; scroll.MaximalValue = 100; scroll.ValuesOnScreen = 1; scroll.Value = GameSettings.audioVolumePercent; scroll.ValueChanged += (UIScrollBar_ValueChanged)((scrl, old) => { //game.SetupAudio(((UICheckBox)UIParent.UI["cbEnable"]).Checked, ((UIScrollBar)UIParent.UI["scrollVolume"]).Value, ((UIScrollBar)UIParent.UI["scrollMusic"]).Value, ((UIScrollBar)UIParent.UI["scrollSFX"]).Value, ((UIScrollBar)UIParent.UI["scrollUI"]).Value); }); UIParent.UI.Add(scroll); label = new UILabel(game); label.Name = "labelVolume"; label.AutoSize = true; label.Text = scroll.Value + "%"; label.PositionAndSize = new Rectangle(scroll.PositionAndSize.Right + 5, scroll.PositionAndSize.Top + 5, 0, 0); UIParent.UI.Add(label); last_pos = new Rectangle(scroll.PositionAndSize.Left, scroll.PositionAndSize.Bottom + 5, last_pos.Width, 0); scroll = new UIScrollBar(game); scroll.Name = "scrollMusic"; scroll.Enabled = GameSettings.audioEnabled; scroll.IsHorizontal = true; scroll.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, last_pos.Width, 0); scroll.MinimalValue = 0; scroll.MaximalValue = 100; scroll.ValuesOnScreen = 1; scroll.Value = GameSettings.audioMusicVolumePercent; scroll.ValueChanged += (UIScrollBar_ValueChanged)((scrl, old) => { //game.SetupAudio(((UICheckBox)UIParent.UI["cbEnable"]).Checked, ((UIScrollBar)UIParent.UI["scrollVolume"]).Value, ((UIScrollBar)UIParent.UI["scrollMusic"]).Value, ((UIScrollBar)UIParent.UI["scrollSFX"]).Value, ((UIScrollBar)UIParent.UI["scrollUI"]).Value); }); UIParent.UI.Add(scroll); label = new UILabel(game); label.Name = "labelMusic"; label.AutoSize = true; label.Text = scroll.Value + "%"; label.PositionAndSize = new Rectangle(scroll.PositionAndSize.Right + 5, scroll.PositionAndSize.Top + 5, 0, 0); UIParent.UI.Add(label); last_pos = new Rectangle(scroll.PositionAndSize.Left, scroll.PositionAndSize.Bottom + 5, last_pos.Width, 0); scroll = new UIScrollBar(game); scroll.Name = "scrollSFX"; scroll.Enabled = GameSettings.audioEnabled; scroll.IsHorizontal = true; scroll.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, last_pos.Width, 0); scroll.MinimalValue = 0; scroll.MaximalValue = 100; scroll.ValuesOnScreen = 1; scroll.Value = GameSettings.audioSFXVolumePercent; scroll.ValueChanged += (UIScrollBar_ValueChanged)((scrl, old) => { //game.SetupAudio(((UICheckBox)UIParent.UI["cbEnable"]).Checked, ((UIScrollBar)UIParent.UI["scrollVolume"]).Value, ((UIScrollBar)UIParent.UI["scrollMusic"]).Value, ((UIScrollBar)UIParent.UI["scrollSFX"]).Value, ((UIScrollBar)UIParent.UI["scrollUI"]).Value); }); UIParent.UI.Add(scroll); label = new UILabel(game); label.Name = "labelSFX"; label.AutoSize = true; label.Text = scroll.Value + "%"; label.PositionAndSize = new Rectangle(scroll.PositionAndSize.Right + 5, scroll.PositionAndSize.Top + 5, 0, 0); UIParent.UI.Add(label); last_pos = new Rectangle(scroll.PositionAndSize.Left, scroll.PositionAndSize.Bottom + 5, last_pos.Width, 0); scroll = new UIScrollBar(game); scroll.Name = "scrollUI"; scroll.Enabled = GameSettings.audioEnabled; scroll.IsHorizontal = true; scroll.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, last_pos.Width, 0); scroll.MinimalValue = 0; scroll.MaximalValue = 100; scroll.ValuesOnScreen = 1; scroll.Value = GameSettings.audioUIVolumePercent; scroll.ValueChanged += (UIScrollBar_ValueChanged)((scrl, old) => { //game.SetupAudio(((UICheckBox)UIParent.UI["cbEnable"]).Checked, ((UIScrollBar)UIParent.UI["scrollVolume"]).Value, ((UIScrollBar)UIParent.UI["scrollMusic"]).Value, ((UIScrollBar)UIParent.UI["scrollSFX"]).Value, ((UIScrollBar)UIParent.UI["scrollUI"]).Value); }); UIParent.UI.Add(scroll); label = new UILabel(game); label.Name = "labelUI"; label.AutoSize = true; label.Text = scroll.Value + "%"; label.PositionAndSize = new Rectangle(scroll.PositionAndSize.Right + 5, scroll.PositionAndSize.Top + 5, 0, 0); UIParent.UI.Add(label); last_pos = new Rectangle(scroll.PositionAndSize.Left, scroll.PositionAndSize.Bottom + 5, last_pos.Width, 0); button = new UIButton(game); button.Name = "btnAcceptAudioChanges"; button.Text = "Save"; button.PositionAndSize = new Rectangle(800 - 105, 600 - 41, 100, 37); button.Action += (UIButton_Action)((btn) => { //save changes GameSettings.audioEnabled = ((UICheckBox)UIParent.UI["cbEnable"]).Checked; GameSettings.audioVolumePercent = ((UIScrollBar)UIParent.UI["scrollVolume"]).Value; GameSettings.audioMusicVolumePercent = ((UIScrollBar)UIParent.UI["scrollMusic"]).Value; GameSettings.audioSFXVolumePercent = ((UIScrollBar)UIParent.UI["scrollSFX"]).Value; GameSettings.audioUIVolumePercent = ((UIScrollBar)UIParent.UI["scrollUI"]).Value; UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnBack"; button.Text = "<-- Back"; button.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); button.Action += (UIButton_Action)((btn) => { //game.SetupAudio(GameSettings.audioEnabled, GameSettings.audioVolumePercent, GameSettings.audioMusicVolumePercent, GameSettings.audioSFXVolumePercent, GameSettings.audioUIVolumePercent); UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIParent.ESCHook += UIParent_ESCHook2; } break; case 3: //common { UIButton button; UICheckBox checkbox; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_otheroptions"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); Rectangle last_pos = new Rectangle(10, logo.PositionAndSize.Bottom + 5, 0, 0); checkbox = new UICheckBox(game); checkbox.Name = "cbMinimap"; checkbox.AutoSize = true; checkbox.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, 0, 0); checkbox.Checked = GameSettings.gameoptMinimap; checkbox.Text = "Show minimap"; UIParent.UI.Add(checkbox); last_pos = new Rectangle(last_pos.Left, checkbox.PositionAndSize.Bottom + 5, 0, 0); checkbox = new UICheckBox(game); checkbox.Name = "cbNames"; checkbox.AutoSize = true; checkbox.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, 0, 0); checkbox.Checked = GameSettings.gameoptNames; checkbox.Text = "Show names"; UIParent.UI.Add(checkbox); last_pos = new Rectangle(last_pos.Left, checkbox.PositionAndSize.Bottom + 5, 0, 0); checkbox = new UICheckBox(game); checkbox.Name = "cbPointers"; checkbox.AutoSize = true; checkbox.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, 0, 0); checkbox.Checked = GameSettings.gameoptPointers; checkbox.Text = "Show motor pointers"; UIParent.UI.Add(checkbox); button = new UIButton(game); button.Name = "btnAcceptCommonChanges"; button.Text = "Save"; button.PositionAndSize = new Rectangle(800 - 105, 600 - 41, 100, 37); button.Action += (UIButton_Action)((btn) => { //save changes GameSettings.gameoptMinimap = ((UICheckBox)UIParent.UI["cbMinimap"]).Checked; GameSettings.gameoptNames = ((UICheckBox)UIParent.UI["cbNames"]).Checked; GameSettings.gameoptPointers = ((UICheckBox)UIParent.UI["cbPointers"]).Checked; UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnBack"; button.Text = "<-- Back"; button.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIParent.ESCHook += UIParent_ESCHook2; } break; } UIParent.UI.LoadAndInitialize(); }
public override void LoadAndInitialize() { UIParent.UI.Clear(); switch (subscreen) { case 0: //loading { UIProgress progress; UIImage logo; logo = new UIImage(game); logo.Name = "imgLoading"; logo.Textures = game.Content.Load<Texture2D>("logo_loading"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 125, 500, 75); UIParent.UI.Add(logo); progress = new UIProgress(game); progress.Name = "pbarLoading"; progress.Angular = false; progress.color = null; progress.Percent = 0; progress.PositionAndSize = new Rectangle(400 - 300, 400, 600, 50); UIParent.UI.Add(progress); } break; case 1: //connecting { UIProgress progress; UIImage logo; logo = new UIImage(game); logo.Name = "imgConnecting"; logo.Textures = game.Content.Load<Texture2D>("logo_connecting"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 125, 500, 75); UIParent.UI.Add(logo); progress = new UIProgress(game); progress.Name = "pbarConnecting"; progress.Angular = false; progress.color = null; progress.Percent = null; progress.PositionAndSize = new Rectangle(400 - 300, 400, 600, 50); UIParent.UI.Add(progress); UIButton btnBack = new UIButton(game); btnBack.Name = "btnBack"; btnBack.Text = "<-- Back"; btnBack.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); btnBack.Action += (UIButton_Action)((btn) => { //cancel connecting UIParent.ESCHook -= UIParent_ESCHook; oResult = new GameScreen_Main(game); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(btnBack); UIParent.ESCHook += UIParent_ESCHook; } break; } UIParent.UI.LoadAndInitialize(); }
public override void LoadAndInitialize() { UIParent.UI.Clear(); switch (subscreen) { case 0: //common game settings { UIButton button; UILabel label; UITextBox textbox; UIComboBox combo; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_newgame"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); label = new UILabel(game); label.AutoSize = true; label.PositionAndSize = new Rectangle(10, logo.PositionAndSize.Bottom + 10, 0, 0); label.Text = "Game name: "; UIParent.UI.Add(label); textbox = new UITextBox(game); textbox.Name = "tboxGameName"; textbox.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top - 5, 200, 0); textbox.TextLenghtLimit = 15; textbox.Text = GameSettings.gameName; UIParent.UI.Add(textbox); label = new UILabel(game); label.AutoSize = true; label.PositionAndSize = new Rectangle(10, textbox.PositionAndSize.Bottom + 15, 0, 0); label.Text = "Game type: "; UIParent.UI.Add(label); combo = new UIComboBox(game); combo.Name = "cboxGameType"; combo.Edible = false; combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top - 5, 200, 0); combo.Values.Add(new UITaggedValue("deathmatch", GameType.DeathMatch)); combo.Values.Add(new UITaggedValue("demolition", GameType.Demolition)); combo.Values.Add(new UITaggedValue("point match", GameType.PointMatch)); combo.Values.Add(new UITaggedValue("time match", GameType.TimeMatch)); combo.Values.Add(new UITaggedValue("team deathmatch", GameType.TeamDeathMatch)); combo.Values.Add(new UITaggedValue("team demolition", GameType.TeamDemolition)); combo.Values.Add(new UITaggedValue("team point match", GameType.TeamPointMatch)); combo.Values.Add(new UITaggedValue("team time match", GameType.TeamTimeMatch)); combo.SelectedIndex = -1; combo.SelectionChanged += (UIComboBox_SelectionChanged)((cbox, old) => { switch ((GameType)cbox.SelectedItem.Tag) { case GameType.DeathMatch: UIParent.UI["labelGameDescription"].Text = "Destroy specified number of enemy bikes"; UIParent.UI["tboxFragLimit"].Enabled = true; UIParent.UI["tboxPointLimit"].Enabled = false; UIParent.UI["tboxTimeLimit"].Enabled = false; ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Clear(); foreach (UITaggedValue map in Map.EnumerateMaps((GameType)cbox.SelectedItem.Tag)) ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Add(map); ((UIComboBox)UIParent.UI["cboxMapName"]).SelectedIndex = 0; break; case GameType.Demolition: UIParent.UI["labelGameDescription"].Text = "Destroy all enemy bikes"; UIParent.UI["tboxFragLimit"].Enabled = false; UIParent.UI["tboxPointLimit"].Enabled = false; UIParent.UI["tboxTimeLimit"].Enabled = false; ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Clear(); foreach (UITaggedValue map in Map.EnumerateMaps((GameType)cbox.SelectedItem.Tag)) ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Add(map); ((UIComboBox)UIParent.UI["cboxMapName"]).SelectedIndex = 0; break; case GameType.PointMatch: UIParent.UI["labelGameDescription"].Text = "Gather specified amount of points by destroying enemy bikes"; UIParent.UI["tboxFragLimit"].Enabled = false; UIParent.UI["tboxPointLimit"].Enabled = true; UIParent.UI["tboxTimeLimit"].Enabled = false; ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Clear(); foreach (UITaggedValue map in Map.EnumerateMaps((GameType)cbox.SelectedItem.Tag)) ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Add(map); ((UIComboBox)UIParent.UI["cboxMapName"]).SelectedIndex = 0; break; case GameType.TimeMatch: UIParent.UI["labelGameDescription"].Text = "Gather as much points as possible in specified amount of time"; UIParent.UI["tboxFragLimit"].Enabled = false; UIParent.UI["tboxPointLimit"].Enabled = false; UIParent.UI["tboxTimeLimit"].Enabled = true; ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Clear(); foreach (UITaggedValue map in Map.EnumerateMaps((GameType)cbox.SelectedItem.Tag)) ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Add(map); ((UIComboBox)UIParent.UI["cboxMapName"]).SelectedIndex = 0; break; case GameType.TeamDeathMatch: UIParent.UI["labelGameDescription"].Text = "Destroy specified number of bikes from opposite team"; UIParent.UI["tboxFragLimit"].Enabled = true; UIParent.UI["tboxPointLimit"].Enabled = false; UIParent.UI["tboxTimeLimit"].Enabled = false; ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Clear(); foreach (UITaggedValue map in Map.EnumerateMaps((GameType)cbox.SelectedItem.Tag)) ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Add(map); ((UIComboBox)UIParent.UI["cboxMapName"]).SelectedIndex = 0; break; case GameType.TeamDemolition: UIParent.UI["labelGameDescription"].Text = "Destroy all bikes from opposite team"; UIParent.UI["tboxFragLimit"].Enabled = false; UIParent.UI["tboxPointLimit"].Enabled = false; UIParent.UI["tboxTimeLimit"].Enabled = false; ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Clear(); foreach (UITaggedValue map in Map.EnumerateMaps((GameType)cbox.SelectedItem.Tag)) ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Add(map); ((UIComboBox)UIParent.UI["cboxMapName"]).SelectedIndex = 0; break; case GameType.TeamPointMatch: UIParent.UI["labelGameDescription"].Text = "Help your team gather specified amount of points by destroying bikes from opposite team"; UIParent.UI["tboxFragLimit"].Enabled = false; UIParent.UI["tboxPointLimit"].Enabled = true; UIParent.UI["tboxTimeLimit"].Enabled = false; ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Clear(); foreach (UITaggedValue map in Map.EnumerateMaps((GameType)cbox.SelectedItem.Tag)) ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Add(map); ((UIComboBox)UIParent.UI["cboxMapName"]).SelectedIndex = 0; break; case GameType.TeamTimeMatch: UIParent.UI["labelGameDescription"].Text = "Help your team gather as much points as possible in specified amount of time"; UIParent.UI["tboxFragLimit"].Enabled = false; UIParent.UI["tboxPointLimit"].Enabled = false; UIParent.UI["tboxTimeLimit"].Enabled = true; ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Clear(); foreach (UITaggedValue map in Map.EnumerateMaps((GameType)cbox.SelectedItem.Tag)) ((UIComboBox)UIParent.UI["cboxMapName"]).Values.Add(map); ((UIComboBox)UIParent.UI["cboxMapName"]).SelectedIndex = 0; break; } }); UIParent.UI.Add(combo); label = new UILabel(game); label.Name = "labelGameDescription"; label.AutoSize = true; label.PositionAndSize = new Rectangle(30, combo.PositionAndSize.Bottom + 5, 0, 0); label.Text = "<game description>"; UIParent.UI.Add(label); Rectangle last_pos = new Rectangle(10, label.PositionAndSize.Bottom + 10, 0, 0); label = new UILabel(game); label.AutoSize = true; label.PositionAndSize = new Rectangle(10, last_pos.Top + 5, 0, 0); label.Text = "Map: "; UIParent.UI.Add(label); combo = new UIComboBox(game); combo.Name = "cboxMapName"; combo.Edible = false; combo.MaxDisplayedItems = 10; combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, last_pos.Top, 200, 0); combo.SelectedIndex = -1; UIParent.UI.Add(combo); label = new UILabel(game); label.AutoSize = true; label.PositionAndSize = new Rectangle(10, combo.PositionAndSize.Bottom + 10, 0, 0); label.Text = "Destroy limit: "; UIParent.UI.Add(label); textbox = new UITextBox(game); textbox.Name = "tboxFragLimit"; textbox.Enabled = false; textbox.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top - 5, 100, 0); textbox.TextLenghtLimit = 3; textbox.CharacterFilter = (UITextBox.CharacterFilterFunction)((ch) => { return (ch >= '0') && (ch <= '9'); }); textbox.Text = "" + (GameSettings.gameFragLimit == 0 ? 10 : GameSettings.gameFragLimit); UIParent.UI.Add(textbox); label = new UILabel(game); label.AutoSize = true; label.PositionAndSize = new Rectangle(10, textbox.PositionAndSize.Bottom + 10, 0, 0); label.Text = "Point limit: "; UIParent.UI.Add(label); textbox = new UITextBox(game); textbox.Name = "tboxPointLimit"; textbox.Enabled = false; textbox.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top - 5, 100, 0); textbox.TextLenghtLimit = 6; textbox.CharacterFilter = (UITextBox.CharacterFilterFunction)((ch) => { return (ch >= '0') && (ch <= '9'); }); textbox.Text = "" + (GameSettings.gamePointLimit == 0 ? 10000 : GameSettings.gamePointLimit); UIParent.UI.Add(textbox); label = new UILabel(game); label.AutoSize = true; label.PositionAndSize = new Rectangle(10, textbox.PositionAndSize.Bottom + 10, 0, 0); label.Text = "Time limit (minutes): "; UIParent.UI.Add(label); textbox = new UITextBox(game); textbox.Name = "tboxTimeLimit"; textbox.Enabled = false; textbox.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top - 5, 100, 0); textbox.TextLenghtLimit = 3; textbox.CharacterFilter = (UITextBox.CharacterFilterFunction)((ch) => { return (ch >= '0') && (ch <= '9'); }); textbox.Text = "" + (GameSettings.gameTimeLimit == 0 ? 3 : GameSettings.gameTimeLimit); UIParent.UI.Add(textbox); button = new UIButton(game); button.Name = "btnProceedGame"; button.Text = "Next -->"; button.PositionAndSize = new Rectangle(800 - 105, 600 - 41, 100, 37); button.Action += (UIButton_Action)((btn) => { //save changes GameSettings.gameServerIP = "127.0.0.1"; GameSettings.gameName = UIParent.UI["tboxGameName"].Text; GameSettings.gameType = (GameType)((UIComboBox)UIParent.UI["cboxGameType"]).SelectedItem.Tag; GameSettings.SelectMap((string)((UIComboBox)UIParent.UI["cboxMapName"]).SelectedItem.Tag); try { GameSettings.gameFragLimit = int.Parse(UIParent.UI["tboxFragLimit"].Text); } catch (Exception) { GameSettings.gameFragLimit = 20; } try { GameSettings.gamePointLimit = int.Parse(UIParent.UI["tboxPointLimit"].Text); } catch (Exception) { GameSettings.gamePointLimit = 1000; } try { GameSettings.gameTimeLimit = int.Parse(UIParent.UI["tboxTimeLimit"].Text); } catch (Exception) { GameSettings.gameTimeLimit = 120; } UIParent.ClearESCHook(); oResult = new GameScreen_NewGame(game, 1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIButton btnBack = new UIButton(game); btnBack.Name = "btnBack"; btnBack.Text = "<-- Back"; btnBack.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); btnBack.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Main(game); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(btnBack); UIParent.ESCHook += UIParent_ESCHook1; //select game type for (int i = 0; i < ((UIComboBox)UIParent.UI["cboxGameType"]).Values.Count; i++) if ((GameType)((UIComboBox)UIParent.UI["cboxGameType"]).Values[i].Tag == GameSettings.gameType) { ((UIComboBox)UIParent.UI["cboxGameType"]).SelectedIndex = i; break; } } break; case 1: //game slots settings { UIButton button; UILabel label; UIComboBox combo; UIImage logo; bool team_game = (GameSettings.gameType == GameType.TeamDeathMatch) || (GameSettings.gameType == GameType.TeamDemolition) || (GameSettings.gameType == GameType.TeamPointMatch) || (GameSettings.gameType == GameType.TeamTimeMatch); int enabledSlotsCount = 0; int enabledSlotsLimit = GameSettings.gameMap.Parameters.MaxPlayers; int enabledTeamSlotsLimit = GameSettings.gameMap.Parameters.MaxPlayers / 2; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_newgame"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); Rectangle last_pos = new Rectangle(10, logo.PositionAndSize.Bottom + 5, 0, 0); for (int _t = 0; _t < 2; _t++) { if (team_game) enabledSlotsCount = 0; last_pos = new Rectangle(10 + 400 * _t, logo.PositionAndSize.Bottom + 5, 40 + 400 * _t, 195 + 400 * _t); if (team_game) { label = new UILabel(game); label.AutoSize = true; label.PositionAndSize = new Rectangle(last_pos.Left, logo.PositionAndSize.Bottom + 5, 0, 0); label.Text = (_t == 0 ? "Red team" : "Blue team"); UIParent.UI.Add(label); last_pos = new Rectangle(last_pos.Left + 10, label.PositionAndSize.Bottom + 5, last_pos.Width, last_pos.Height); } for (int _m = 0; _m < 5; _m++) { label = new UILabel(game); label.AutoSize = true; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); if (team_game) label.Text = (_m + 1) + ": "; else label.Text = (_t * 5 + _m + 1) + ": "; UIParent.UI.Add(label); combo = new UIComboBox(game); combo.Name = "t" + (_t + 1) + "m" + (_m + 1) + "Name"; combo.Edible = false; combo.Enabled = false; combo.MaxDisplayedItems = 5; combo.PositionAndSize = new Rectangle(last_pos.Width, last_pos.Top, last_pos.Height - last_pos.Width - 5, 0); UIParent.UI.Add(combo); button = new UIButton(game); button.Name = "t" + (_t + 1) + "m" + (_m + 1) + "Type"; button.Enabled = (enabledSlotsCount < (team_game ? enabledTeamSlotsLimit : enabledSlotsLimit)); enabledSlotsCount += (button.Enabled ? 1 : 0); button.PositionAndSize = new Rectangle(last_pos.Height, last_pos.Top, 80, combo.PositionAndSize.Height); button.Text = "None"; button.Action += (UIButton_Action)((btn) => { switch (btn.Text) { case "None": btn.Text = "Player"; UIParent.UI["btnProceedGame"].Enabled = true; UIParent.UI[btn.Name.Substring(0, 4) + "Name"].Enabled = true; ((UIComboBox)UIParent.UI[btn.Name.Substring(0, 4) + "Name"]).Values.Clear(); ((UIComboBox)UIParent.UI[btn.Name.Substring(0, 4) + "Name"]).Values.Add(new UITaggedValue(GameSettings.playerName, 0)); ((UIComboBox)UIParent.UI[btn.Name.Substring(0, 4) + "Name"]).Values.Add(new UITaggedValue("<network player>", -1)); ((UIComboBox)UIParent.UI[btn.Name.Substring(0, 4) + "Name"]).SelectedIndex = 0; break; case "Player": btn.Text = "Bot"; UIParent.UI["btnProceedGame"].Enabled = true; UIParent.UI[btn.Name.Substring(0, 4) + "Name"].Enabled = true; ((UIComboBox)UIParent.UI[btn.Name.Substring(0, 4) + "Name"]).Values.Clear(); for (int i = 0; i < Enum.GetNames(typeof(Default_BotNames)).Length; i++) ((UIComboBox)UIParent.UI[btn.Name.Substring(0, 4) + "Name"]).Values.Add(new UITaggedValue(Enum.GetNames(typeof(Default_BotNames))[i])); ((UIComboBox)UIParent.UI[btn.Name.Substring(0, 4) + "Name"]).SelectedIndex = 0; break; case "Bot": btn.Text = "None"; int count = 0; for (int t = 1; t <= 2; t++) for (int m = 1; m <= 5; m++) if (UIParent.UI["t" + t + "m" + m + "Type"].Text == "None") count++; if (count == 10) UIParent.UI["btnProceedGame"].Enabled = false; UIParent.UI[btn.Name.Substring(0, 4) + "Name"].Enabled = false; ((UIComboBox)UIParent.UI[btn.Name.Substring(0, 4) + "Name"]).Values.Clear(); break; } }); UIParent.UI.Add(button); last_pos = new Rectangle(last_pos.Left, button.PositionAndSize.Bottom + 5, last_pos.Width, last_pos.Height); } } label = new UILabel(game); label.AutoSize = true; label.PositionAndSize = new Rectangle(10, last_pos.Top + 20, 0, 0); label.Text = "Bot sophistication: "; UIParent.UI.Add(label); combo = new UIComboBox(game); combo.Name = "comboBotLevel"; combo.Edible = false; combo.MaxDisplayedItems = 3; combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top, 150, 0); combo.Values.Add(new UITaggedValue("easy", BotMotor.BotSophistication.Easy)); combo.Values.Add(new UITaggedValue("normal", BotMotor.BotSophistication.Normal)); combo.Values.Add(new UITaggedValue("hard", BotMotor.BotSophistication.Hard)); combo.SelectedIndex = 0; UIParent.UI.Add(combo); button = new UIButton(game); button.Name = "btnProceedGame"; button.Enabled = false; button.Text = "Start"; button.PositionAndSize = new Rectangle(800 - 105, 600 - 41, 100, 37); button.Action += (UIButton_Action)((btn) => { //save changes for(int i=0; i<5; i++) { switch (UIParent.UI["t1m" + (i + 1) + "Type"].Text) { case "None": GameSettings.gameSlots[i] = null; break; case "Player": GameSettings.gameSlots[i] = new MotorShortDescription(typeof(PlayerMotor), ((UIComboBox)UIParent.UI["t1m" + (i + 1) + "Name"]).SelectedItem.Text, (int)((UIComboBox)UIParent.UI["t1m" + (i + 1) + "Name"]).SelectedItem.Tag); break; case "Bot": GameSettings.gameSlots[i] = new MotorShortDescription(typeof(BotMotor), ((UIComboBox)UIParent.UI["t1m" + (i + 1) + "Name"]).SelectedItem.Text, (int)((UIComboBox)UIParent.UI["comboBotLevel"]).SelectedItem.Tag); break; } switch (UIParent.UI["t2m" + (i + 1) + "Type"].Text) { case "None": GameSettings.gameSlots[5 + i] = null; break; case "Player": GameSettings.gameSlots[5 + i] = new MotorShortDescription(typeof(PlayerMotor), ((UIComboBox)UIParent.UI["t2m" + (i + 1) + "Name"]).SelectedItem.Text, (int)((UIComboBox)UIParent.UI["t2m" + (i + 1) + "Name"]).SelectedItem.Tag); break; case "Bot": GameSettings.gameSlots[5 + i] = new MotorShortDescription(typeof(BotMotor), ((UIComboBox)UIParent.UI["t2m" + (i + 1) + "Name"]).SelectedItem.Text, (int)((UIComboBox)UIParent.UI["comboBotLevel"]).SelectedItem.Tag); break; } } UIParent.ClearESCHook(); oResult = null;/*new GameScreen_Misc(game, 0);*/ iResult = MenuReturnCodes.GameStartRequested; Call_OnExit(); }); UIParent.UI.Add(button); UIButton btnBack = new UIButton(game); btnBack.Name = "btnBack"; btnBack.Text = "<-- Back"; btnBack.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); btnBack.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_NewGame(game, 0); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(btnBack); UIParent.ESCHook += UIParent_ESCHook2; } break; } UIParent.UI.LoadAndInitialize(); }
public override void LoadAndInitialize() { UIButton button; UIImage logo; UIParent.UI.Clear(); logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_mainmenu"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); button = new UIButton(game); button.Name = "btnNewGame"; button.Text = "New Game"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 5), 200, 75); button.Action += (UIButton_Action)((btn) => { oResult = new GameScreen_NewGame(game); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnJoinGame"; button.Enabled = false; button.Text = "Join Game"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 4), 200, 75); button.Action += (UIButton_Action)((btn) => { oResult = new GameScreen_JoinGame(game); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnOptions"; button.Text = "Options"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 3), 200, 75); button.Action += (UIButton_Action)((btn) => { oResult = new GameScreen_Options(game); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnExit"; button.Text = "Exit"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 2), 200, 75); button.Action += (UIButton_Action)((btn) => { oResult = null; iResult = MenuReturnCodes.Exit; Call_OnExit(); }); UIParent.UI.Add(button); UIParent.UI.LoadAndInitialize(); }