125 lines
5.3 KiB
C#
125 lines
5.3 KiB
C#
using GTA;
|
|
using LemonUI.Menus;
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
|
|
namespace RageCoop.Client.Menus
|
|
{
|
|
internal static class SettingsMenu
|
|
{
|
|
public static NativeMenu Menu = new NativeMenu("RAGECOOP", "Settings", "Go to the settings")
|
|
{
|
|
UseMouse = false,
|
|
Alignment = Main.Settings.FlipMenu ? GTA.UI.Alignment.Right : GTA.UI.Alignment.Left
|
|
};
|
|
|
|
private static readonly NativeCheckboxItem _disableTrafficItem = new NativeCheckboxItem("Disable Traffic (NPCs/Vehicles)", "Local traffic only", Main.Settings.DisableTraffic);
|
|
private static readonly NativeCheckboxItem _flipMenuItem = new NativeCheckboxItem("Flip menu", Main.Settings.FlipMenu);
|
|
private static readonly NativeCheckboxItem _disablePauseAlt = new NativeCheckboxItem("Disable Alternate Pause", "Don't freeze game time when Esc pressed", Main.Settings.DisableTraffic);
|
|
private static readonly NativeCheckboxItem _disableVoice = new NativeCheckboxItem("Enable voice", "Check your GTA:V settings to find the right key on your keyboard for PushToTalk and talk to your friends", Main.Settings.Voice);
|
|
|
|
private static NativeItem _menuKey = new NativeItem("Menu Key", "The key to open menu", Main.Settings.MenuKey.ToString());
|
|
private static NativeItem _passengerKey = new NativeItem("Passenger Key", "The key to enter a vehicle as passenger", Main.Settings.PassengerKey.ToString());
|
|
private static NativeItem _vehicleSoftLimit = new NativeItem("Vehicle limit (soft)", "The game won't spawn more NPC traffic if the limit is exceeded. \n-1 for unlimited (not recommended).", Main.Settings.WorldVehicleSoftLimit.ToString());
|
|
|
|
static SettingsMenu()
|
|
{
|
|
Menu.Banner.Color = Color.FromArgb(225, 0, 0, 0);
|
|
Menu.Title.Color = Color.FromArgb(255, 165, 0);
|
|
|
|
_disableTrafficItem.CheckboxChanged += DisableTrafficCheckboxChanged;
|
|
_disablePauseAlt.CheckboxChanged+= DisablePauseAltCheckboxChanged;
|
|
_disableVoice.CheckboxChanged += DisableVoiceCheckboxChanged;
|
|
_flipMenuItem.CheckboxChanged += FlipMenuCheckboxChanged;
|
|
_menuKey.Activated+= ChaneMenuKey;
|
|
_passengerKey.Activated+= ChangePassengerKey;
|
|
_vehicleSoftLimit.Activated+= VehicleSoftLimitActivated;
|
|
|
|
Menu.Add(_disableTrafficItem);
|
|
Menu.Add(_disablePauseAlt);
|
|
Menu.Add(_flipMenuItem);
|
|
Menu.Add(_disableVoice);
|
|
Menu.Add(_menuKey);
|
|
Menu.Add(_passengerKey);
|
|
Menu.Add(_vehicleSoftLimit);
|
|
}
|
|
|
|
private static void DisableVoiceCheckboxChanged(object sender, EventArgs e)
|
|
{
|
|
if (_disableVoice.Checked)
|
|
{
|
|
if (Networking.IsOnServer && !Sync.Voice.WasInitialized())
|
|
{
|
|
Sync.Voice.Init();
|
|
}
|
|
} else {
|
|
Sync.Voice.ClearAll();
|
|
}
|
|
|
|
Main.Settings.Voice = _disableVoice.Checked;
|
|
Util.SaveSettings();
|
|
}
|
|
|
|
private static void DisablePauseAltCheckboxChanged(object sender, EventArgs e)
|
|
{
|
|
Main.Settings.DisableAlternatePause=_disablePauseAlt.Checked;
|
|
Util.SaveSettings();
|
|
}
|
|
private static void VehicleSoftLimitActivated(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
Main.Settings.WorldVehicleSoftLimit =int.Parse(
|
|
Game.GetUserInput(WindowTitle.EnterMessage20,
|
|
Main.Settings.WorldVehicleSoftLimit.ToString(), 20));
|
|
_menuKey.AltTitle=Main.Settings.WorldVehicleSoftLimit.ToString();
|
|
Util.SaveSettings();
|
|
}
|
|
catch { }
|
|
}
|
|
private static void ChaneMenuKey(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
Main.Settings.MenuKey =(Keys)Enum.Parse(
|
|
typeof(Keys),
|
|
Game.GetUserInput(WindowTitle.EnterMessage20,
|
|
Main.Settings.MenuKey.ToString(), 20));
|
|
_menuKey.AltTitle=Main.Settings.MenuKey.ToString();
|
|
Util.SaveSettings();
|
|
}
|
|
catch { }
|
|
}
|
|
|
|
private static void ChangePassengerKey(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
Main.Settings.PassengerKey =(Keys)Enum.Parse(
|
|
typeof(Keys),
|
|
Game.GetUserInput(WindowTitle.EnterMessage20,
|
|
Main.Settings.PassengerKey.ToString(), 20));
|
|
_passengerKey.AltTitle=Main.Settings.PassengerKey.ToString();
|
|
Util.SaveSettings();
|
|
}
|
|
catch { }
|
|
}
|
|
|
|
public static void DisableTrafficCheckboxChanged(object a, System.EventArgs b)
|
|
{
|
|
Main.Settings.DisableTraffic = _disableTrafficItem.Checked;
|
|
Util.SaveSettings();
|
|
}
|
|
|
|
public static void FlipMenuCheckboxChanged(object a, System.EventArgs b)
|
|
{
|
|
CoopMenu.Menu.Alignment = _flipMenuItem.Checked ? GTA.UI.Alignment.Right : GTA.UI.Alignment.Left;
|
|
|
|
Menu.Alignment = _flipMenuItem.Checked ? GTA.UI.Alignment.Right : GTA.UI.Alignment.Left;
|
|
Main.Settings.FlipMenu = _flipMenuItem.Checked;
|
|
Util.SaveSettings();
|
|
}
|
|
}
|
|
}
|