JD2022-TU1/main/tools/modules/JD.GameLauncher/Settings/EngineSettings.cs

140 lines
3.3 KiB
C#

using System;
using System.ComponentModel;
using ActiproSoftware.Windows.Controls.Grids.PropertyEditors;
using Plume.Editors.WPF.Editors;
using Plume.Interfaces.Settings;
using Plume.WPF.Mvvm;
namespace JD.GameLauncher
{
public class EngineSettings : BindableBase, ISettings
{
[Description("Path of Engine (Default is data/engine)")]
[Editor(typeof(FilePathEditor), typeof(PropertyEditor))]
[FilePathEditor.Parameters(Filter = "UA engine (ua_engine.exe)|ua_engine.exe")]
public string EnginePath { get; set; }
[Description("Language of the game")]
public Language? Language { get; set; } = null;
[Description("To launch engine in offline mode")]
public bool NoOnline { get; set; } = false;
[Description("To launch engine without sound")]
public bool NoSound { get; set; } = false;
[Description("Ignore Assert messages")]
public bool NoAsserts { get; set; } = true;
public bool NoTrc { get; set; } = false;
[Description("Launch game in editor mode")]
public bool Editor { get; set; } = true;
[Description(".isc file to launch")]
[Editor(typeof(FilePathEditor), typeof(PropertyEditor))]
[FilePathEditor.Parameters(Filter = "isc files (*.isc)|*.isc")]
public string Map { get; set; }
#region Advanced
[Description("Additional arguments")]
[Category("Advanced")]
public string AdditionalArguments { get; set; }
#endregion
#region Log
[Category("Log")]
public bool? NoWarnings { get; set; }
[Category("Log")]
public string LogFilePath { get; set; }
#endregion
#region Online
[Category("Online"), DefaultValue("default")]
public string OnlineServer { get; set; } = "default";
[Category("Online")]
public WdfRoom? WdfRoom { get; set; } = null;
#endregion
#region Video Settings
[Category("Video Settings"), DefaultValue(GameLauncher.Resolution.HD1080p)]
public Resolution? Resolution { get; set; } = GameLauncher.Resolution.HD1080p;
[Category("Video Settings")]
public bool NoLogos { get; set; }
[Category("Video Settings")]
public bool NoSafeFrame { get; set; }
#endregion
}
public enum WdfRoom
{
None,
OnlyBoss,
OnlySpotlight,
OnlyTournament
}
public enum Language
{
English,
French,
Japanese,
German,
Spanish,
Italian,
Korean,
TraditionalChinese,
Portuguese,
SimpilifiedChinese,
Polish,
Russian,
Dutch,
Danish,
Norwegian,
Swedish,
Finnish,
Arabic,
Turkish,
PortigueseBr,
SpanishMa,
FrenchCa,
Unknown,
DevReference
}
public enum Resolution
{
Default,
Wide480p,
HD720p,
HD1080p
}
[Flags]
public enum Platform
{
win32 = 1 << 1,
Cafe = 1 << 2,
wii = 1 << 3,
x360 = 1 << 4,
PS3 = 1 << 5,
Durango = 1 << 6,
Orbis = 1 << 7,
PC = 1 << 8,
NX = 1 << 9,
win64 = 1 << 10,
}
}