├── images_readme ├── umodel_work.PNG ├── game_notWork.PNG ├── umodel_NOTwork.PNG └── github_help_panels.png ├── UmodelHelper ├── UmodelHelper │ ├── icontest1.ico │ ├── Resources │ │ ├── test1.png │ │ ├── umodel.png │ │ └── icontest1.png │ ├── App.config │ ├── Properties │ │ ├── Settings.settings │ │ ├── Settings.Designer.cs │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── UmodelHelper.csproj.user │ ├── Program.cs │ ├── UModel.cs │ ├── AddUmodelForm.cs │ ├── EditUmodelForm.cs │ ├── Juego.cs │ ├── EditGameForm.cs │ ├── AddGameForm.cs │ ├── AddUmodelForm.resx │ ├── EditUmodelForm.resx │ ├── AddGameForm.resx │ ├── EditGameForm.resx │ ├── EditUmodelForm.Designer.cs │ ├── AddUmodelForm.Designer.cs │ ├── UmodelHelper.csproj │ ├── EditGameForm.Designer.cs │ ├── AddGameForm.Designer.cs │ ├── Main.cs │ └── Main.Designer.cs └── UmodelHelper.sln ├── README.md └── LICENSE /images_readme/umodel_work.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NokisDemox/UmodelHelper/HEAD/images_readme/umodel_work.PNG -------------------------------------------------------------------------------- /images_readme/game_notWork.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NokisDemox/UmodelHelper/HEAD/images_readme/game_notWork.PNG -------------------------------------------------------------------------------- /images_readme/umodel_NOTwork.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NokisDemox/UmodelHelper/HEAD/images_readme/umodel_NOTwork.PNG -------------------------------------------------------------------------------- /images_readme/github_help_panels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NokisDemox/UmodelHelper/HEAD/images_readme/github_help_panels.png -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/icontest1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NokisDemox/UmodelHelper/HEAD/UmodelHelper/UmodelHelper/icontest1.ico -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Resources/test1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NokisDemox/UmodelHelper/HEAD/UmodelHelper/UmodelHelper/Resources/test1.png -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Resources/umodel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NokisDemox/UmodelHelper/HEAD/UmodelHelper/UmodelHelper/Resources/umodel.png -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Resources/icontest1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NokisDemox/UmodelHelper/HEAD/UmodelHelper/UmodelHelper/Resources/icontest1.png -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/UmodelHelper.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | es-ES 11 | false 12 | 13 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace UmodelHelper 8 | { 9 | internal static class Program 10 | { 11 | /// 12 | /// Punto de entrada principal para la aplicación. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new Main()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/UModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace UmodelHelper 8 | { 9 | public class UModel 10 | { 11 | //Info of umodel 12 | private string name; 13 | private string path; 14 | 15 | //Public variables 16 | public string Name { get { return name; } set { name = value; } } 17 | public string Path { get { return path; } set { path = value; } } 18 | 19 | 20 | 21 | public string SaveString() 22 | { 23 | return Name + ";" + Path; 24 | } 25 | 26 | 27 | 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace UmodelHelper.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // La información general de un ensamblado se controla mediante el siguiente 6 | // conjunto de atributos. Cambie estos valores de atributo para modificar la información 7 | // asociada con un ensamblado. 8 | [assembly: AssemblyTitle("UmodelHelper")] 9 | [assembly: AssemblyDescription("GUI manager for UE Viewer (also known as umodel) versions and unreal engine games, made by NokisDemox.")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("UmodelHelper")] 13 | [assembly: AssemblyCopyright("Copyright © 2022")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Si establece ComVisible en false, los tipos de este ensamblado no estarán visibles 18 | // para los componentes COM. Si es necesario obtener acceso a un tipo en este ensamblado desde 19 | // COM, establezca el atributo ComVisible en true en este tipo. 20 | [assembly: ComVisible(false)] 21 | 22 | // El siguiente GUID sirve como id. de typelib si este proyecto se expone a COM. 23 | [assembly: Guid("c88c2d56-16e4-41f5-a4ba-dfd03272bb2c")] 24 | 25 | // La información de versión de un ensamblado consta de los cuatro valores siguientes: 26 | // 27 | // Versión principal 28 | // Versión secundaria 29 | // Número de compilación 30 | // Revisión 31 | // 32 | // Puede especificar todos los valores o usar los valores predeterminados de número de compilación y de revisión 33 | // utilizando el carácter "*", como se muestra a continuación: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/AddUmodelForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace UmodelHelper 5 | { 6 | public partial class AddUmodelForm : Form 7 | { 8 | UModel newUmodel; 9 | public AddUmodelForm(UModel edit) 10 | { 11 | InitializeComponent(); 12 | this.newUmodel = edit; 13 | } 14 | 15 | private void label1_Click(object sender, EventArgs e) 16 | { 17 | 18 | } 19 | 20 | private void label1_Click_1(object sender, EventArgs e) 21 | { 22 | 23 | } 24 | 25 | private void button1_Click(object sender, EventArgs e) 26 | { 27 | this.Close(); 28 | } 29 | 30 | private void btn_Save_Click(object sender, EventArgs e) 31 | { 32 | //set variables of games 33 | if (txt_UmodelName.Text == "") txt_UmodelName.Text = "UM" + System.DateTime.Now.ToString("_mm_ss"); 34 | this.newUmodel.Name = txt_UmodelName.Text; 35 | this.newUmodel.Path = txt_UmodelPath.Text; 36 | //close it 37 | this.Close(); 38 | } 39 | //Explore exe file 40 | private void button1_Click_1(object sender, EventArgs e) 41 | { 42 | if(openFileDialogEXE.ShowDialog() == DialogResult.OK) 43 | { 44 | //Open file 45 | txt_UmodelPath.Text = openFileDialogEXE.FileName; 46 | } 47 | } 48 | 49 | private void openFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e) 50 | { 51 | 52 | } 53 | 54 | private void link_UmodelGithub_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 55 | { 56 | System.Diagnostics.Process.Start("https://github.com/gildor2/UEViewer"); 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/EditUmodelForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace UmodelHelper 5 | { 6 | public partial class EditUmodelForm : Form 7 | { 8 | UModel editUmodel; 9 | public EditUmodelForm(UModel nuevo) 10 | { 11 | InitializeComponent(); 12 | this.editUmodel = nuevo; 13 | } 14 | 15 | private void label1_Click(object sender, EventArgs e) 16 | { 17 | 18 | } 19 | 20 | private void label1_Click_1(object sender, EventArgs e) 21 | { 22 | 23 | } 24 | 25 | private void button1_Click(object sender, EventArgs e) 26 | { 27 | this.Close(); 28 | } 29 | 30 | private void btn_Save_Click(object sender, EventArgs e) 31 | { 32 | //set variables of games 33 | if (txt_UmodelName.Text == "") txt_UmodelName.Text = "UM" + System.DateTime.Now.ToString("_mm_ss"); 34 | this.editUmodel.Name = txt_UmodelName.Text; 35 | this.editUmodel.Path = txt_UmodelPath.Text; 36 | //close it 37 | this.Close(); 38 | } 39 | //Explore exe file 40 | private void button1_Click_1(object sender, EventArgs e) 41 | { 42 | if(openFileDialogEXE.ShowDialog() == DialogResult.OK) 43 | { 44 | //Open file 45 | txt_UmodelPath.Text = openFileDialogEXE.FileName; 46 | } 47 | } 48 | 49 | private void openFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e) 50 | { 51 | 52 | } 53 | 54 | private void EditUmodelForm_Load(object sender, EventArgs e) 55 | { 56 | txt_UmodelName.Text = this.editUmodel.Name; 57 | txt_UmodelPath.Text = this.editUmodel.Path; 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.0.32014.148 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UmodelHelper", "UmodelHelper\UmodelHelper.csproj", "{C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|Any CPU = Release|Any CPU 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Debug|x64.ActiveCfg = Debug|x64 21 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Debug|x64.Build.0 = Debug|x64 22 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Debug|x86.ActiveCfg = Debug|x86 23 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Debug|x86.Build.0 = Debug|x86 24 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Release|x64.ActiveCfg = Release|x64 27 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Release|x64.Build.0 = Release|x64 28 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Release|x86.ActiveCfg = Release|x86 29 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C}.Release|x86.Build.0 = Release|x86 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | GlobalSection(ExtensibilityGlobals) = postSolution 35 | SolutionGuid = {4B3EFE76-7D23-4C70-A89D-DB4F48A091BE} 36 | EndGlobalSection 37 | EndGlobal 38 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Juego.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | 4 | namespace UmodelHelper 5 | { 6 | public class Juego : IEquatable 7 | { 8 | //Info of game 9 | private string name; 10 | private string exePath; 11 | private string pakFolderPath; 12 | private string ueVersion; 13 | private string aesKey; 14 | private string version; 15 | private string customArgs; 16 | 17 | 18 | //Public variables 19 | public string Name { get { return name; } set { name = value; } } 20 | public string ExePath { get { return exePath; } set { exePath = value; } } 21 | public string PakFolderPath { get { return pakFolderPath; } set { pakFolderPath = value; } } 22 | public string UEVersion { get { return ueVersion; } set { ueVersion = value; } } 23 | public string AESKey { get { return aesKey; } set { aesKey = value; } } 24 | public string Version { get { return version; } set { version = value; } } 25 | public string CustomArgs { get { return customArgs; } set { customArgs = value; } } 26 | //Constructor 27 | public Juego(string naame = null, string exe = null, string pakfolder = null, string ueversion = null, string keys = null,string customA = null) 28 | { 29 | name = naame; 30 | exePath = exe; 31 | pakFolderPath = pakfolder; 32 | ueVersion = ueversion; 33 | aesKey = keys; 34 | version = "-1"; 35 | customArgs = customA; 36 | } 37 | //Copia 38 | public Juego(Juego other) 39 | { 40 | name = other.Name; 41 | exePath = other.ExePath; 42 | pakFolderPath = other.PakFolderPath; 43 | ueVersion = other.UEVersion; 44 | aesKey = other.AESKey; 45 | customArgs=other.CustomArgs; 46 | } 47 | 48 | public override string ToString() 49 | { 50 | return Name; 51 | } 52 | 53 | public string SaveString() 54 | { 55 | return Name + ";" + ExePath + ";" + PakFolderPath + ";" + UEVersion + ";" + AESKey + ";" + CustomArgs; 56 | } 57 | 58 | public bool Equals(Juego other) 59 | { 60 | return other.Name.Equals(Name); 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/EditGameForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace UmodelHelper 5 | { 6 | public partial class EditGameForm : Form 7 | { 8 | Juego editJuego; 9 | public EditGameForm(Juego nuevo) 10 | { 11 | InitializeComponent(); 12 | this.editJuego = nuevo; 13 | 14 | } 15 | 16 | private void label1_Click(object sender, EventArgs e) 17 | { 18 | 19 | } 20 | 21 | private void label1_Click_1(object sender, EventArgs e) 22 | { 23 | 24 | } 25 | 26 | private void button1_Click(object sender, EventArgs e) 27 | { 28 | this.Close(); 29 | } 30 | 31 | private void btn_Save_Click(object sender, EventArgs e) 32 | { 33 | //set variables of games 34 | if (txt_GameName.Text == "") txt_GameName.Text = System.DateTime.Now.ToString("MM/dd_HH:mm:ss"); 35 | this.editJuego.Name = txt_GameName.Text; 36 | this.editJuego.ExePath = txt_GamePath.Text; 37 | this.editJuego.PakFolderPath = txt_pakFolder.Text; 38 | this.editJuego.UEVersion = txt_UEVersion.Text; 39 | this.editJuego.AESKey = txt_AESKeys.Text; 40 | this.editJuego.CustomArgs = txt_CustomArgs.Text; 41 | //close it 42 | this.Close(); 43 | } 44 | //Explore exe file 45 | private void button1_Click_1(object sender, EventArgs e) 46 | { 47 | if(openFileDialogEXE.ShowDialog() == DialogResult.OK) 48 | { 49 | //Open file 50 | txt_GamePath.Text = openFileDialogEXE.FileName; 51 | } 52 | } 53 | 54 | private void openFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e) 55 | { 56 | 57 | } 58 | //Explore exe file 59 | private void btn_PakExplore_Click(object sender, EventArgs e) 60 | { 61 | if(folderBrowserDialogPAK.ShowDialog() == DialogResult.OK) 62 | { 63 | //Open folder 64 | txt_pakFolder.Text = folderBrowserDialogPAK.SelectedPath; 65 | } 66 | } 67 | 68 | private void EditGameForm_Load(object sender, EventArgs e) 69 | { 70 | txt_GameName.Text = this.editJuego.Name; 71 | txt_GamePath.Text = this.editJuego.ExePath; 72 | txt_pakFolder.Text = this.editJuego.PakFolderPath; 73 | txt_UEVersion.Text = this.editJuego.UEVersion; 74 | txt_AESKeys.Text = this.editJuego.AESKey; 75 | txt_CustomArgs.Text = this.editJuego.CustomArgs; 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/AddGameForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace UmodelHelper 5 | { 6 | public partial class AddGameForm : Form 7 | { 8 | Juego nuevoJuego; 9 | private bool hexKey = true; 10 | public AddGameForm(Juego nuevo) 11 | { 12 | InitializeComponent(); 13 | this.nuevoJuego = nuevo; 14 | } 15 | 16 | private void label1_Click(object sender, EventArgs e) 17 | { 18 | 19 | } 20 | 21 | private void label1_Click_1(object sender, EventArgs e) 22 | { 23 | 24 | } 25 | 26 | private void button1_Click(object sender, EventArgs e) 27 | { 28 | this.Close(); 29 | } 30 | 31 | private void btn_Save_Click(object sender, EventArgs e) 32 | { 33 | //set variables of games 34 | if (txt_GameName.Text == "") txt_GameName.Text = "Game_" + System.DateTime.Now.ToString("yyyy/MM/dd_HH:mm:ss"); 35 | this.nuevoJuego.Name = txt_GameName.Text; 36 | this.nuevoJuego.ExePath = txt_GamePath.Text; 37 | this.nuevoJuego.PakFolderPath = txt_pakFolder.Text; 38 | this.nuevoJuego.UEVersion = txt_UEVersion.Text; 39 | this.nuevoJuego.CustomArgs = txt_CustomArgs.Text; 40 | //Set KEY 41 | if (hexKey) this.nuevoJuego.AESKey = txt_AESKeys.Text; 42 | else 43 | { 44 | string key = ""; 45 | try 46 | { 47 | byte[] bytes = Convert.FromBase64String(txt_AESKeys.Text); 48 | key = BitConverter.ToString(bytes); 49 | key = key.Replace("-", string.Empty); 50 | } 51 | catch (Exception ex) 52 | { 53 | key = "Error converting the key from Base 64 to HEX"; 54 | } 55 | this.nuevoJuego.AESKey = "0x" + key; 56 | } 57 | //close it 58 | this.Close(); 59 | } 60 | //Explore exe file 61 | private void button1_Click_1(object sender, EventArgs e) 62 | { 63 | if(openFileDialogEXE.ShowDialog() == DialogResult.OK) 64 | { 65 | //Open file 66 | txt_GamePath.Text = openFileDialogEXE.FileName; 67 | } 68 | 69 | 70 | } 71 | 72 | private void openFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e) 73 | { 74 | 75 | } 76 | //Explore exe file 77 | private void btn_PakExplore_Click(object sender, EventArgs e) 78 | { 79 | if(folderBrowserDialogPAK.ShowDialog() == DialogResult.OK) 80 | { 81 | //Open folder 82 | txt_pakFolder.Text = folderBrowserDialogPAK.SelectedPath; 83 | } 84 | } 85 | 86 | private void rbtn_HEX_CheckedChanged(object sender, EventArgs e) 87 | { 88 | hexKey = true; 89 | } 90 | 91 | private void rbtn_B64_CheckedChanged(object sender, EventArgs e) 92 | { 93 | hexKey = false; 94 | } 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Este código fue generado por una herramienta. 4 | // Versión de runtime:4.0.30319.42000 5 | // 6 | // Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si 7 | // se vuelve a generar el código. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace UmodelHelper.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc. 17 | /// 18 | // StronglyTypedResourceBuilder generó automáticamente esta clase 19 | // a través de una herramienta como ResGen o Visual Studio. 20 | // Para agregar o quitar un miembro, edite el archivo .ResX y, a continuación, vuelva a ejecutar ResGen 21 | // con la opción /str o recompile su proyecto de VS. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UmodelHelper.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las 51 | /// búsquedas de recursos mediante esta clase de recurso fuertemente tipado. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Busca un recurso adaptado de tipo System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap icontest1 { 67 | get { 68 | object obj = ResourceManager.GetObject("icontest1", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// Busca un recurso adaptado de tipo System.Drawing.Bitmap. 75 | /// 76 | internal static System.Drawing.Bitmap umodel { 77 | get { 78 | object obj = ResourceManager.GetObject("umodel", resourceCulture); 79 | return ((System.Drawing.Bitmap)(obj)); 80 | } 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # UmodelHelper 2 | UmodelHelper is a GUI manager for UE Viewer (also known as *umodel*) versions and Unreal Engine games. Its made to manage game data like paths and AES keys (used in some UE games to encript the assets files) as well as umodel versions to easily extract or view game data. 3 | ## Why use UmodelHelper 4 | Feels a bit tedious to use umodel as it requires you to input the game path, version and aes keys every time you open it, can be solved using .bat or .sh files to automate it. Depending on the game you are trying to use umodel, some versions of umodel may crash and you need to change to a newer or older, or even custom compiled version of the program. 5 | UmodelHelper is made to manage your Unreal Engine games as well as your umodel installed versions. 6 | Once you add a game to UmodelHelper its saved locally and can be open with any version of umodel you need, making it easier to manage your game and umodel versions. 7 | ## OS Support 8 | Right now windows is the only OS supported, possibly will be adapted to also work on linux. 9 | 10 | ## How to use UmodelHelper (Basic options) 11 | ### Program distribution 12 | This tool is divided in a list of your games, the umodel panels and the main view of the selected game. In this image is displayed the distribution of the program: 13 |
14 | 15 |
16 | In terms of games is possible to add, duplicate, modify and delete them, so its easy to manage them, same goes with umodel versions. 17 | ### Adding games and umodel 18 | To add them just click on the button and complete the text boxes, in case anything need is empty or bad written, it will be automaticly replace to avoid errors. In case anything was written incorrectly can be change by editing the game, or replacing the umodel version. 19 | 20 | After adding a game and umodel version you can open the umodel or run it to directly open it with the selected game. To make everything more intuitive, in the umodel top section after selecting a saved one an icon will appear, if its a warning it means that the file is not correct (not a valid path for an .exe), while if the path is correct the icon will be an information icon and in case of being clicked it will displayed the umodel version information (it will run *umodel.exe -version*). 21 |
22 | 23 | 24 |
25 | 26 | With games we have the same icon information, a warning means there is no .exe on the selected path, and having the game icon will mean the game is detected correctly. 27 |
28 | 29 |
30 | ### Run umodel 31 | If the paths for the umodel and game are correct, the only thing left is to make sure the game has the correct information on the data marked with a * as is the info that will go to umodel. 32 | 33 | ## Other useful features in UmodelHelper 34 | 35 | ### Custom arguments for umodel 36 | On UmodelHelper you can add any arguments you usually use in umodel, as well as showing all the available arguments for the selected version (*umodel.exe -help*). 37 | **For example:** if you like to always export the images as png, the argumnent *-png* is the one you should use so adding it to your custom arguments field will run UE viewer with said setting. 38 | 39 | ### Automatic AES KEY conversion 40 | When adding the game you can choose if the aes key is Base 64 or Hexadecimal (starts with *0x* and has only hexadecimal characters) in case you only have one of the formats. 41 | Once the game is added the AES key will show as HEX (for UE viewer) and in Base 64, used in other tools like *UnrealPak*. 42 | 43 | ## Save data 44 | All data is saved on the %APPDATA%\UmodelHelper\UmodelHelper as text files, in case you need to change the data directly from the files. This also provides the ability to only have the .exe and use it where you want it with no extra files (as well as giving easy backwards compatibility between versions). 45 | 46 | ## [Tutorial Video](https://youtu.be/zObnvatL-rQ "Tutorial Video") 47 | 48 | 49 | ## License 50 | UmodelHelper is licensed under Apache 2.0 License. 51 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/AddUmodelForm.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/EditUmodelForm.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/AddGameForm.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | 124 | 170, 17 125 | 126 | 127 | True 128 | 129 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/EditGameForm.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | 124 | 170, 17 125 | 126 | 127 | True 128 | 129 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\Resources\umodel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | 125 | ..\Resources\icontest1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 126 | 127 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/EditUmodelForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace UmodelHelper 2 | { 3 | partial class EditUmodelForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.txt_UmodelPath = new System.Windows.Forms.TextBox(); 32 | this.lbl_Umodelexe = new System.Windows.Forms.Label(); 33 | this.btn_Save = new System.Windows.Forms.Button(); 34 | this.btn_Cancel = new System.Windows.Forms.Button(); 35 | this.openFileDialogEXE = new System.Windows.Forms.OpenFileDialog(); 36 | this.btn_ExeExplore = new System.Windows.Forms.Button(); 37 | this.lbl_UmodelVersion = new System.Windows.Forms.Label(); 38 | this.txt_UmodelName = new System.Windows.Forms.TextBox(); 39 | this.lbl_UmodelVersion2 = new System.Windows.Forms.Label(); 40 | this.SuspendLayout(); 41 | // 42 | // txt_UmodelPath 43 | // 44 | this.txt_UmodelPath.Location = new System.Drawing.Point(140, 47); 45 | this.txt_UmodelPath.Name = "txt_UmodelPath"; 46 | this.txt_UmodelPath.Size = new System.Drawing.Size(246, 20); 47 | this.txt_UmodelPath.TabIndex = 1; 48 | // 49 | // lbl_Umodelexe 50 | // 51 | this.lbl_Umodelexe.AutoSize = true; 52 | this.lbl_Umodelexe.Location = new System.Drawing.Point(21, 50); 53 | this.lbl_Umodelexe.Name = "lbl_Umodelexe"; 54 | this.lbl_Umodelexe.Size = new System.Drawing.Size(87, 13); 55 | this.lbl_Umodelexe.TabIndex = 1; 56 | this.lbl_Umodelexe.Text = "Umodel.exe path"; 57 | this.lbl_Umodelexe.Click += new System.EventHandler(this.label1_Click); 58 | // 59 | // btn_Save 60 | // 61 | this.btn_Save.Location = new System.Drawing.Point(298, 98); 62 | this.btn_Save.Name = "btn_Save"; 63 | this.btn_Save.Size = new System.Drawing.Size(75, 23); 64 | this.btn_Save.TabIndex = 4; 65 | this.btn_Save.Text = "Save"; 66 | this.btn_Save.UseVisualStyleBackColor = true; 67 | this.btn_Save.Click += new System.EventHandler(this.btn_Save_Click); 68 | // 69 | // btn_Cancel 70 | // 71 | this.btn_Cancel.Location = new System.Drawing.Point(140, 98); 72 | this.btn_Cancel.Name = "btn_Cancel"; 73 | this.btn_Cancel.Size = new System.Drawing.Size(75, 23); 74 | this.btn_Cancel.TabIndex = 5; 75 | this.btn_Cancel.Text = "Cancel"; 76 | this.btn_Cancel.UseVisualStyleBackColor = true; 77 | this.btn_Cancel.Click += new System.EventHandler(this.button1_Click); 78 | // 79 | // openFileDialogEXE 80 | // 81 | this.openFileDialogEXE.FileName = "openFileDialog1"; 82 | this.openFileDialogEXE.Filter = "Executable files (*.exe) | *.exe"; 83 | this.openFileDialogEXE.FileOk += new System.ComponentModel.CancelEventHandler(this.openFileDialog1_FileOk); 84 | // 85 | // btn_ExeExplore 86 | // 87 | this.btn_ExeExplore.Location = new System.Drawing.Point(392, 47); 88 | this.btn_ExeExplore.Name = "btn_ExeExplore"; 89 | this.btn_ExeExplore.Size = new System.Drawing.Size(88, 23); 90 | this.btn_ExeExplore.TabIndex = 6; 91 | this.btn_ExeExplore.Text = "Explore file"; 92 | this.btn_ExeExplore.UseVisualStyleBackColor = true; 93 | this.btn_ExeExplore.Click += new System.EventHandler(this.button1_Click_1); 94 | // 95 | // lbl_UmodelVersion 96 | // 97 | this.lbl_UmodelVersion.AutoSize = true; 98 | this.lbl_UmodelVersion.Location = new System.Drawing.Point(21, 15); 99 | this.lbl_UmodelVersion.Name = "lbl_UmodelVersion"; 100 | this.lbl_UmodelVersion.Size = new System.Drawing.Size(90, 13); 101 | this.lbl_UmodelVersion.TabIndex = 8; 102 | this.lbl_UmodelVersion.Text = "Umodel Version : "; 103 | // 104 | // txt_UmodelName 105 | // 106 | this.txt_UmodelName.Location = new System.Drawing.Point(140, 12); 107 | this.txt_UmodelName.Name = "txt_UmodelName"; 108 | this.txt_UmodelName.Size = new System.Drawing.Size(176, 20); 109 | this.txt_UmodelName.TabIndex = 0; 110 | // 111 | // lbl_UmodelVersion2 112 | // 113 | this.lbl_UmodelVersion2.AutoSize = true; 114 | this.lbl_UmodelVersion2.Location = new System.Drawing.Point(322, 15); 115 | this.lbl_UmodelVersion2.Name = "lbl_UmodelVersion2"; 116 | this.lbl_UmodelVersion2.Size = new System.Drawing.Size(158, 13); 117 | this.lbl_UmodelVersion2.TabIndex = 9; 118 | this.lbl_UmodelVersion2.Text = "Version number or custom name"; 119 | // 120 | // EditUmodelForm 121 | // 122 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 123 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 124 | this.ClientSize = new System.Drawing.Size(511, 139); 125 | this.Controls.Add(this.lbl_UmodelVersion2); 126 | this.Controls.Add(this.txt_UmodelName); 127 | this.Controls.Add(this.lbl_UmodelVersion); 128 | this.Controls.Add(this.btn_ExeExplore); 129 | this.Controls.Add(this.btn_Cancel); 130 | this.Controls.Add(this.btn_Save); 131 | this.Controls.Add(this.lbl_Umodelexe); 132 | this.Controls.Add(this.txt_UmodelPath); 133 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; 134 | this.Name = "EditUmodelForm"; 135 | this.Text = "Edit Umodel Version"; 136 | this.Load += new System.EventHandler(this.EditUmodelForm_Load); 137 | this.ResumeLayout(false); 138 | this.PerformLayout(); 139 | 140 | } 141 | 142 | #endregion 143 | 144 | private System.Windows.Forms.TextBox txt_UmodelPath; 145 | private System.Windows.Forms.Label lbl_Umodelexe; 146 | private System.Windows.Forms.Button btn_Save; 147 | private System.Windows.Forms.Button btn_Cancel; 148 | private System.Windows.Forms.OpenFileDialog openFileDialogEXE; 149 | private System.Windows.Forms.Button btn_ExeExplore; 150 | private System.Windows.Forms.Label lbl_UmodelVersion; 151 | private System.Windows.Forms.TextBox txt_UmodelName; 152 | private System.Windows.Forms.Label lbl_UmodelVersion2; 153 | } 154 | } -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/AddUmodelForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace UmodelHelper 2 | { 3 | partial class AddUmodelForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.txt_UmodelPath = new System.Windows.Forms.TextBox(); 32 | this.lbl_Umodelexe = new System.Windows.Forms.Label(); 33 | this.btn_Save = new System.Windows.Forms.Button(); 34 | this.btn_Cancel = new System.Windows.Forms.Button(); 35 | this.openFileDialogEXE = new System.Windows.Forms.OpenFileDialog(); 36 | this.btn_ExeExplore = new System.Windows.Forms.Button(); 37 | this.lbl_UmodelVersion = new System.Windows.Forms.Label(); 38 | this.txt_UmodelName = new System.Windows.Forms.TextBox(); 39 | this.lbl_UmodelVersion2 = new System.Windows.Forms.Label(); 40 | this.link_UmodelGithub = new System.Windows.Forms.LinkLabel(); 41 | this.SuspendLayout(); 42 | // 43 | // txt_UmodelPath 44 | // 45 | this.txt_UmodelPath.Location = new System.Drawing.Point(140, 47); 46 | this.txt_UmodelPath.Name = "txt_UmodelPath"; 47 | this.txt_UmodelPath.Size = new System.Drawing.Size(246, 20); 48 | this.txt_UmodelPath.TabIndex = 1; 49 | // 50 | // lbl_Umodelexe 51 | // 52 | this.lbl_Umodelexe.AutoSize = true; 53 | this.lbl_Umodelexe.Location = new System.Drawing.Point(21, 50); 54 | this.lbl_Umodelexe.Name = "lbl_Umodelexe"; 55 | this.lbl_Umodelexe.Size = new System.Drawing.Size(87, 13); 56 | this.lbl_Umodelexe.TabIndex = 1; 57 | this.lbl_Umodelexe.Text = "Umodel.exe path"; 58 | this.lbl_Umodelexe.Click += new System.EventHandler(this.label1_Click); 59 | // 60 | // btn_Save 61 | // 62 | this.btn_Save.Location = new System.Drawing.Point(297, 116); 63 | this.btn_Save.Name = "btn_Save"; 64 | this.btn_Save.Size = new System.Drawing.Size(75, 23); 65 | this.btn_Save.TabIndex = 4; 66 | this.btn_Save.Text = "Save"; 67 | this.btn_Save.UseVisualStyleBackColor = true; 68 | this.btn_Save.Click += new System.EventHandler(this.btn_Save_Click); 69 | // 70 | // btn_Cancel 71 | // 72 | this.btn_Cancel.Location = new System.Drawing.Point(139, 116); 73 | this.btn_Cancel.Name = "btn_Cancel"; 74 | this.btn_Cancel.Size = new System.Drawing.Size(75, 23); 75 | this.btn_Cancel.TabIndex = 5; 76 | this.btn_Cancel.Text = "Cancel"; 77 | this.btn_Cancel.UseVisualStyleBackColor = true; 78 | this.btn_Cancel.Click += new System.EventHandler(this.button1_Click); 79 | // 80 | // openFileDialogEXE 81 | // 82 | this.openFileDialogEXE.FileName = "openFileDialog1"; 83 | this.openFileDialogEXE.Filter = "Executable files (*.exe) | *.exe"; 84 | this.openFileDialogEXE.FileOk += new System.ComponentModel.CancelEventHandler(this.openFileDialog1_FileOk); 85 | // 86 | // btn_ExeExplore 87 | // 88 | this.btn_ExeExplore.Location = new System.Drawing.Point(392, 47); 89 | this.btn_ExeExplore.Name = "btn_ExeExplore"; 90 | this.btn_ExeExplore.Size = new System.Drawing.Size(88, 23); 91 | this.btn_ExeExplore.TabIndex = 6; 92 | this.btn_ExeExplore.Text = "Explore file"; 93 | this.btn_ExeExplore.UseVisualStyleBackColor = true; 94 | this.btn_ExeExplore.Click += new System.EventHandler(this.button1_Click_1); 95 | // 96 | // lbl_UmodelVersion 97 | // 98 | this.lbl_UmodelVersion.AutoSize = true; 99 | this.lbl_UmodelVersion.Location = new System.Drawing.Point(21, 15); 100 | this.lbl_UmodelVersion.Name = "lbl_UmodelVersion"; 101 | this.lbl_UmodelVersion.Size = new System.Drawing.Size(90, 13); 102 | this.lbl_UmodelVersion.TabIndex = 8; 103 | this.lbl_UmodelVersion.Text = "Umodel Version : "; 104 | // 105 | // txt_UmodelName 106 | // 107 | this.txt_UmodelName.Location = new System.Drawing.Point(140, 12); 108 | this.txt_UmodelName.Name = "txt_UmodelName"; 109 | this.txt_UmodelName.Size = new System.Drawing.Size(176, 20); 110 | this.txt_UmodelName.TabIndex = 0; 111 | // 112 | // lbl_UmodelVersion2 113 | // 114 | this.lbl_UmodelVersion2.AutoSize = true; 115 | this.lbl_UmodelVersion2.Location = new System.Drawing.Point(322, 15); 116 | this.lbl_UmodelVersion2.Name = "lbl_UmodelVersion2"; 117 | this.lbl_UmodelVersion2.Size = new System.Drawing.Size(158, 13); 118 | this.lbl_UmodelVersion2.TabIndex = 9; 119 | this.lbl_UmodelVersion2.Text = "Version number or custom name"; 120 | // 121 | // link_UmodelGithub 122 | // 123 | this.link_UmodelGithub.AutoSize = true; 124 | this.link_UmodelGithub.Location = new System.Drawing.Point(171, 87); 125 | this.link_UmodelGithub.Name = "link_UmodelGithub"; 126 | this.link_UmodelGithub.Size = new System.Drawing.Size(135, 13); 127 | this.link_UmodelGithub.TabIndex = 11; 128 | this.link_UmodelGithub.TabStop = true; 129 | this.link_UmodelGithub.Text = "UE viewer / Umodel github"; 130 | this.link_UmodelGithub.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.link_UmodelGithub_LinkClicked); 131 | // 132 | // AddUmodelForm 133 | // 134 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 135 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 136 | this.ClientSize = new System.Drawing.Size(511, 168); 137 | this.Controls.Add(this.link_UmodelGithub); 138 | this.Controls.Add(this.lbl_UmodelVersion2); 139 | this.Controls.Add(this.txt_UmodelName); 140 | this.Controls.Add(this.lbl_UmodelVersion); 141 | this.Controls.Add(this.btn_ExeExplore); 142 | this.Controls.Add(this.btn_Cancel); 143 | this.Controls.Add(this.btn_Save); 144 | this.Controls.Add(this.lbl_Umodelexe); 145 | this.Controls.Add(this.txt_UmodelPath); 146 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; 147 | this.Name = "AddUmodelForm"; 148 | this.Text = "Add Umodel Version"; 149 | this.ResumeLayout(false); 150 | this.PerformLayout(); 151 | 152 | } 153 | 154 | #endregion 155 | 156 | private System.Windows.Forms.TextBox txt_UmodelPath; 157 | private System.Windows.Forms.Label lbl_Umodelexe; 158 | private System.Windows.Forms.Button btn_Save; 159 | private System.Windows.Forms.Button btn_Cancel; 160 | private System.Windows.Forms.OpenFileDialog openFileDialogEXE; 161 | private System.Windows.Forms.Button btn_ExeExplore; 162 | private System.Windows.Forms.Label lbl_UmodelVersion; 163 | private System.Windows.Forms.TextBox txt_UmodelName; 164 | private System.Windows.Forms.Label lbl_UmodelVersion2; 165 | private System.Windows.Forms.LinkLabel link_UmodelGithub; 166 | } 167 | } -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/UmodelHelper.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {C88C2D56-16E4-41F5-A4BA-DFD03272BB2C} 8 | WinExe 9 | UmodelHelper 10 | UmodelHelper 11 | v4.7.2 12 | 512 13 | true 14 | true 15 | publish\ 16 | true 17 | Disk 18 | false 19 | Foreground 20 | 7 21 | Days 22 | false 23 | false 24 | true 25 | 0 26 | 1.0.0.%2a 27 | false 28 | false 29 | true 30 | 31 | 32 | AnyCPU 33 | true 34 | full 35 | false 36 | bin\Debug\ 37 | DEBUG;TRACE 38 | prompt 39 | 4 40 | 41 | 42 | AnyCPU 43 | pdbonly 44 | true 45 | bin\Release\ 46 | TRACE 47 | prompt 48 | 4 49 | 50 | 51 | icontest1.ico 52 | 53 | 54 | true 55 | bin\x64\Debug\ 56 | DEBUG;TRACE 57 | full 58 | x64 59 | 7.3 60 | prompt 61 | true 62 | 63 | 64 | bin\x64\Release\ 65 | TRACE 66 | true 67 | pdbonly 68 | x64 69 | 7.3 70 | prompt 71 | true 72 | 73 | 74 | true 75 | bin\x86\Debug\ 76 | DEBUG;TRACE 77 | full 78 | x86 79 | 7.3 80 | prompt 81 | true 82 | 83 | 84 | bin\x86\Release\ 85 | TRACE 86 | true 87 | pdbonly 88 | x86 89 | 7.3 90 | prompt 91 | true 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | Form 109 | 110 | 111 | AddGameForm.cs 112 | 113 | 114 | Form 115 | 116 | 117 | AddUmodelForm.cs 118 | 119 | 120 | Form 121 | 122 | 123 | EditGameForm.cs 124 | 125 | 126 | Form 127 | 128 | 129 | EditUmodelForm.cs 130 | 131 | 132 | 133 | Form 134 | 135 | 136 | Main.cs 137 | 138 | 139 | 140 | 141 | 142 | AddGameForm.cs 143 | 144 | 145 | AddUmodelForm.cs 146 | 147 | 148 | EditGameForm.cs 149 | 150 | 151 | EditUmodelForm.cs 152 | 153 | 154 | Main.cs 155 | 156 | 157 | ResXFileCodeGenerator 158 | Resources.Designer.cs 159 | Designer 160 | 161 | 162 | True 163 | Resources.resx 164 | True 165 | 166 | 167 | SettingsSingleFileGenerator 168 | Settings.Designer.cs 169 | 170 | 171 | True 172 | Settings.settings 173 | True 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | False 182 | Microsoft .NET Framework 4.7.2 %28x86 y x64%29 183 | true 184 | 185 | 186 | False 187 | .NET Framework 3.5 SP1 188 | false 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2022 NokisDemox 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/EditGameForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace UmodelHelper 2 | { 3 | partial class EditGameForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.txt_GamePath = new System.Windows.Forms.TextBox(); 32 | this.lbl_exePath = new System.Windows.Forms.Label(); 33 | this.lbl_pakFolder = new System.Windows.Forms.Label(); 34 | this.txt_pakFolder = new System.Windows.Forms.TextBox(); 35 | this.btn_Save = new System.Windows.Forms.Button(); 36 | this.btn_Cancel = new System.Windows.Forms.Button(); 37 | this.openFileDialogEXE = new System.Windows.Forms.OpenFileDialog(); 38 | this.btn_ExeExplore = new System.Windows.Forms.Button(); 39 | this.btn_PakExplore = new System.Windows.Forms.Button(); 40 | this.folderBrowserDialogPAK = new System.Windows.Forms.FolderBrowserDialog(); 41 | this.lbl_GameName = new System.Windows.Forms.Label(); 42 | this.txt_GameName = new System.Windows.Forms.TextBox(); 43 | this.lbl_UEV = new System.Windows.Forms.Label(); 44 | this.txt_UEVersion = new System.Windows.Forms.TextBox(); 45 | this.lbl_UEVHelp = new System.Windows.Forms.Label(); 46 | this.lbl_AESK = new System.Windows.Forms.Label(); 47 | this.txt_AESKeys = new System.Windows.Forms.TextBox(); 48 | this.lbl_CustomArgs = new System.Windows.Forms.Label(); 49 | this.txt_CustomArgs = new System.Windows.Forms.TextBox(); 50 | this.SuspendLayout(); 51 | // 52 | // txt_GamePath 53 | // 54 | this.txt_GamePath.Location = new System.Drawing.Point(140, 47); 55 | this.txt_GamePath.Name = "txt_GamePath"; 56 | this.txt_GamePath.Size = new System.Drawing.Size(246, 20); 57 | this.txt_GamePath.TabIndex = 1; 58 | // 59 | // lbl_exePath 60 | // 61 | this.lbl_exePath.AutoSize = true; 62 | this.lbl_exePath.Location = new System.Drawing.Point(21, 50); 63 | this.lbl_exePath.Name = "lbl_exePath"; 64 | this.lbl_exePath.Size = new System.Drawing.Size(82, 13); 65 | this.lbl_exePath.TabIndex = 1; 66 | this.lbl_exePath.Text = "Game .exe path"; 67 | this.lbl_exePath.Click += new System.EventHandler(this.label1_Click); 68 | // 69 | // lbl_pakFolder 70 | // 71 | this.lbl_pakFolder.AutoSize = true; 72 | this.lbl_pakFolder.Location = new System.Drawing.Point(21, 85); 73 | this.lbl_pakFolder.Name = "lbl_pakFolder"; 74 | this.lbl_pakFolder.Size = new System.Drawing.Size(103, 13); 75 | this.lbl_pakFolder.TabIndex = 2; 76 | this.lbl_pakFolder.Text = "Folder with .pak files"; 77 | this.lbl_pakFolder.Click += new System.EventHandler(this.label1_Click_1); 78 | // 79 | // txt_pakFolder 80 | // 81 | this.txt_pakFolder.Location = new System.Drawing.Point(140, 82); 82 | this.txt_pakFolder.Name = "txt_pakFolder"; 83 | this.txt_pakFolder.Size = new System.Drawing.Size(246, 20); 84 | this.txt_pakFolder.TabIndex = 3; 85 | // 86 | // btn_Save 87 | // 88 | this.btn_Save.Location = new System.Drawing.Point(301, 226); 89 | this.btn_Save.Name = "btn_Save"; 90 | this.btn_Save.Size = new System.Drawing.Size(75, 23); 91 | this.btn_Save.TabIndex = 7; 92 | this.btn_Save.Text = "Save"; 93 | this.btn_Save.UseVisualStyleBackColor = true; 94 | this.btn_Save.Click += new System.EventHandler(this.btn_Save_Click); 95 | // 96 | // btn_Cancel 97 | // 98 | this.btn_Cancel.Location = new System.Drawing.Point(143, 226); 99 | this.btn_Cancel.Name = "btn_Cancel"; 100 | this.btn_Cancel.Size = new System.Drawing.Size(75, 23); 101 | this.btn_Cancel.TabIndex = 8; 102 | this.btn_Cancel.Text = "Cancel"; 103 | this.btn_Cancel.UseVisualStyleBackColor = true; 104 | this.btn_Cancel.Click += new System.EventHandler(this.button1_Click); 105 | // 106 | // openFileDialogEXE 107 | // 108 | this.openFileDialogEXE.FileName = "openFileDialog1"; 109 | this.openFileDialogEXE.Filter = "Executable files (*.exe) | *.exe"; 110 | this.openFileDialogEXE.FileOk += new System.ComponentModel.CancelEventHandler(this.openFileDialog1_FileOk); 111 | // 112 | // btn_ExeExplore 113 | // 114 | this.btn_ExeExplore.Location = new System.Drawing.Point(392, 47); 115 | this.btn_ExeExplore.Name = "btn_ExeExplore"; 116 | this.btn_ExeExplore.Size = new System.Drawing.Size(88, 23); 117 | this.btn_ExeExplore.TabIndex = 2; 118 | this.btn_ExeExplore.Text = "Explore file"; 119 | this.btn_ExeExplore.UseVisualStyleBackColor = true; 120 | this.btn_ExeExplore.Click += new System.EventHandler(this.button1_Click_1); 121 | // 122 | // btn_PakExplore 123 | // 124 | this.btn_PakExplore.Location = new System.Drawing.Point(392, 80); 125 | this.btn_PakExplore.Name = "btn_PakExplore"; 126 | this.btn_PakExplore.Size = new System.Drawing.Size(88, 23); 127 | this.btn_PakExplore.TabIndex = 4; 128 | this.btn_PakExplore.Text = "Explore folder"; 129 | this.btn_PakExplore.UseVisualStyleBackColor = true; 130 | this.btn_PakExplore.Click += new System.EventHandler(this.btn_PakExplore_Click); 131 | // 132 | // lbl_GameName 133 | // 134 | this.lbl_GameName.AutoSize = true; 135 | this.lbl_GameName.Location = new System.Drawing.Point(21, 19); 136 | this.lbl_GameName.Name = "lbl_GameName"; 137 | this.lbl_GameName.Size = new System.Drawing.Size(70, 13); 138 | this.lbl_GameName.TabIndex = 8; 139 | this.lbl_GameName.Text = "Game name: "; 140 | // 141 | // txt_GameName 142 | // 143 | this.txt_GameName.Location = new System.Drawing.Point(140, 12); 144 | this.txt_GameName.Name = "txt_GameName"; 145 | this.txt_GameName.Size = new System.Drawing.Size(246, 20); 146 | this.txt_GameName.TabIndex = 0; 147 | // 148 | // lbl_UEV 149 | // 150 | this.lbl_UEV.AutoSize = true; 151 | this.lbl_UEV.Location = new System.Drawing.Point(21, 121); 152 | this.lbl_UEV.Name = "lbl_UEV"; 153 | this.lbl_UEV.Size = new System.Drawing.Size(112, 13); 154 | this.lbl_UEV.TabIndex = 10; 155 | this.lbl_UEV.Text = "Unreal Engine Version"; 156 | // 157 | // txt_UEVersion 158 | // 159 | this.txt_UEVersion.Location = new System.Drawing.Point(140, 118); 160 | this.txt_UEVersion.Name = "txt_UEVersion"; 161 | this.txt_UEVersion.Size = new System.Drawing.Size(75, 20); 162 | this.txt_UEVersion.TabIndex = 5; 163 | // 164 | // lbl_UEVHelp 165 | // 166 | this.lbl_UEVHelp.AutoSize = true; 167 | this.lbl_UEVHelp.Location = new System.Drawing.Point(242, 121); 168 | this.lbl_UEVHelp.Name = "lbl_UEVHelp"; 169 | this.lbl_UEVHelp.Size = new System.Drawing.Size(88, 13); 170 | this.lbl_UEVHelp.TabIndex = 12; 171 | this.lbl_UEVHelp.Text = "For example 4.22"; 172 | // 173 | // lbl_AESK 174 | // 175 | this.lbl_AESK.AutoSize = true; 176 | this.lbl_AESK.Location = new System.Drawing.Point(21, 159); 177 | this.lbl_AESK.Name = "lbl_AESK"; 178 | this.lbl_AESK.Size = new System.Drawing.Size(63, 13); 179 | this.lbl_AESK.TabIndex = 13; 180 | this.lbl_AESK.Text = "AES Key (s)"; 181 | // 182 | // txt_AESKeys 183 | // 184 | this.txt_AESKeys.Location = new System.Drawing.Point(140, 156); 185 | this.txt_AESKeys.Name = "txt_AESKeys"; 186 | this.txt_AESKeys.Size = new System.Drawing.Size(246, 20); 187 | this.txt_AESKeys.TabIndex = 6; 188 | // 189 | // lbl_CustomArgs 190 | // 191 | this.lbl_CustomArgs.AutoSize = true; 192 | this.lbl_CustomArgs.Location = new System.Drawing.Point(21, 191); 193 | this.lbl_CustomArgs.Name = "lbl_CustomArgs"; 194 | this.lbl_CustomArgs.Size = new System.Drawing.Size(94, 26); 195 | this.lbl_CustomArgs.TabIndex = 14; 196 | this.lbl_CustomArgs.Text = "Custom arguments\r\nfor umodel"; 197 | // 198 | // txt_CustomArgs 199 | // 200 | this.txt_CustomArgs.Location = new System.Drawing.Point(140, 191); 201 | this.txt_CustomArgs.Name = "txt_CustomArgs"; 202 | this.txt_CustomArgs.Size = new System.Drawing.Size(246, 20); 203 | this.txt_CustomArgs.TabIndex = 15; 204 | // 205 | // EditGameForm 206 | // 207 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 208 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 209 | this.ClientSize = new System.Drawing.Size(534, 261); 210 | this.Controls.Add(this.txt_CustomArgs); 211 | this.Controls.Add(this.lbl_CustomArgs); 212 | this.Controls.Add(this.txt_AESKeys); 213 | this.Controls.Add(this.lbl_AESK); 214 | this.Controls.Add(this.lbl_UEVHelp); 215 | this.Controls.Add(this.txt_UEVersion); 216 | this.Controls.Add(this.lbl_UEV); 217 | this.Controls.Add(this.txt_GameName); 218 | this.Controls.Add(this.lbl_GameName); 219 | this.Controls.Add(this.btn_PakExplore); 220 | this.Controls.Add(this.btn_ExeExplore); 221 | this.Controls.Add(this.btn_Cancel); 222 | this.Controls.Add(this.btn_Save); 223 | this.Controls.Add(this.txt_pakFolder); 224 | this.Controls.Add(this.lbl_pakFolder); 225 | this.Controls.Add(this.lbl_exePath); 226 | this.Controls.Add(this.txt_GamePath); 227 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; 228 | this.Name = "EditGameForm"; 229 | this.Text = "Edit game data"; 230 | this.Load += new System.EventHandler(this.EditGameForm_Load); 231 | this.ResumeLayout(false); 232 | this.PerformLayout(); 233 | 234 | } 235 | 236 | #endregion 237 | 238 | private System.Windows.Forms.TextBox txt_GamePath; 239 | private System.Windows.Forms.Label lbl_exePath; 240 | private System.Windows.Forms.Label lbl_pakFolder; 241 | private System.Windows.Forms.TextBox txt_pakFolder; 242 | private System.Windows.Forms.Button btn_Save; 243 | private System.Windows.Forms.Button btn_Cancel; 244 | private System.Windows.Forms.OpenFileDialog openFileDialogEXE; 245 | private System.Windows.Forms.Button btn_ExeExplore; 246 | private System.Windows.Forms.Button btn_PakExplore; 247 | private System.Windows.Forms.FolderBrowserDialog folderBrowserDialogPAK; 248 | private System.Windows.Forms.Label lbl_GameName; 249 | private System.Windows.Forms.TextBox txt_GameName; 250 | private System.Windows.Forms.Label lbl_UEV; 251 | private System.Windows.Forms.TextBox txt_UEVersion; 252 | private System.Windows.Forms.Label lbl_UEVHelp; 253 | private System.Windows.Forms.Label lbl_AESK; 254 | private System.Windows.Forms.TextBox txt_AESKeys; 255 | private System.Windows.Forms.Label lbl_CustomArgs; 256 | private System.Windows.Forms.TextBox txt_CustomArgs; 257 | } 258 | } -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/AddGameForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace UmodelHelper 2 | { 3 | partial class AddGameForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.txt_GamePath = new System.Windows.Forms.TextBox(); 32 | this.lbl_exePath = new System.Windows.Forms.Label(); 33 | this.lbl_pakFolder = new System.Windows.Forms.Label(); 34 | this.txt_pakFolder = new System.Windows.Forms.TextBox(); 35 | this.btn_Save = new System.Windows.Forms.Button(); 36 | this.btn_Cancel = new System.Windows.Forms.Button(); 37 | this.openFileDialogEXE = new System.Windows.Forms.OpenFileDialog(); 38 | this.btn_ExeExplore = new System.Windows.Forms.Button(); 39 | this.btn_PakExplore = new System.Windows.Forms.Button(); 40 | this.folderBrowserDialogPAK = new System.Windows.Forms.FolderBrowserDialog(); 41 | this.lbl_GameName = new System.Windows.Forms.Label(); 42 | this.txt_GameName = new System.Windows.Forms.TextBox(); 43 | this.lbl_UEV = new System.Windows.Forms.Label(); 44 | this.txt_UEVersion = new System.Windows.Forms.TextBox(); 45 | this.lbl_UEVHelp = new System.Windows.Forms.Label(); 46 | this.lbl_AESK = new System.Windows.Forms.Label(); 47 | this.txt_AESKeys = new System.Windows.Forms.TextBox(); 48 | this.label1 = new System.Windows.Forms.Label(); 49 | this.txt_CustomArgs = new System.Windows.Forms.TextBox(); 50 | this.rbtn_HEX = new System.Windows.Forms.RadioButton(); 51 | this.rbtn_B64 = new System.Windows.Forms.RadioButton(); 52 | this.SuspendLayout(); 53 | // 54 | // txt_GamePath 55 | // 56 | this.txt_GamePath.Location = new System.Drawing.Point(140, 47); 57 | this.txt_GamePath.Name = "txt_GamePath"; 58 | this.txt_GamePath.Size = new System.Drawing.Size(246, 20); 59 | this.txt_GamePath.TabIndex = 1; 60 | // 61 | // lbl_exePath 62 | // 63 | this.lbl_exePath.AutoSize = true; 64 | this.lbl_exePath.Location = new System.Drawing.Point(21, 50); 65 | this.lbl_exePath.Name = "lbl_exePath"; 66 | this.lbl_exePath.Size = new System.Drawing.Size(82, 13); 67 | this.lbl_exePath.TabIndex = 1; 68 | this.lbl_exePath.Text = "Game .exe path"; 69 | this.lbl_exePath.Click += new System.EventHandler(this.label1_Click); 70 | // 71 | // lbl_pakFolder 72 | // 73 | this.lbl_pakFolder.AutoSize = true; 74 | this.lbl_pakFolder.Location = new System.Drawing.Point(21, 85); 75 | this.lbl_pakFolder.Name = "lbl_pakFolder"; 76 | this.lbl_pakFolder.Size = new System.Drawing.Size(103, 13); 77 | this.lbl_pakFolder.TabIndex = 2; 78 | this.lbl_pakFolder.Text = "Folder with .pak files"; 79 | this.lbl_pakFolder.Click += new System.EventHandler(this.label1_Click_1); 80 | // 81 | // txt_pakFolder 82 | // 83 | this.txt_pakFolder.Location = new System.Drawing.Point(140, 82); 84 | this.txt_pakFolder.Name = "txt_pakFolder"; 85 | this.txt_pakFolder.Size = new System.Drawing.Size(246, 20); 86 | this.txt_pakFolder.TabIndex = 3; 87 | // 88 | // btn_Save 89 | // 90 | this.btn_Save.Location = new System.Drawing.Point(307, 226); 91 | this.btn_Save.Name = "btn_Save"; 92 | this.btn_Save.Size = new System.Drawing.Size(75, 23); 93 | this.btn_Save.TabIndex = 7; 94 | this.btn_Save.Text = "Save"; 95 | this.btn_Save.UseVisualStyleBackColor = true; 96 | this.btn_Save.Click += new System.EventHandler(this.btn_Save_Click); 97 | // 98 | // btn_Cancel 99 | // 100 | this.btn_Cancel.Location = new System.Drawing.Point(149, 226); 101 | this.btn_Cancel.Name = "btn_Cancel"; 102 | this.btn_Cancel.Size = new System.Drawing.Size(75, 23); 103 | this.btn_Cancel.TabIndex = 8; 104 | this.btn_Cancel.Text = "Cancel"; 105 | this.btn_Cancel.UseVisualStyleBackColor = true; 106 | this.btn_Cancel.Click += new System.EventHandler(this.button1_Click); 107 | // 108 | // openFileDialogEXE 109 | // 110 | this.openFileDialogEXE.FileName = "openFileDialog1"; 111 | this.openFileDialogEXE.Filter = "Executable files (*.exe) | *.exe"; 112 | this.openFileDialogEXE.FileOk += new System.ComponentModel.CancelEventHandler(this.openFileDialog1_FileOk); 113 | // 114 | // btn_ExeExplore 115 | // 116 | this.btn_ExeExplore.Location = new System.Drawing.Point(392, 47); 117 | this.btn_ExeExplore.Name = "btn_ExeExplore"; 118 | this.btn_ExeExplore.Size = new System.Drawing.Size(88, 23); 119 | this.btn_ExeExplore.TabIndex = 2; 120 | this.btn_ExeExplore.Text = "Explore file"; 121 | this.btn_ExeExplore.UseVisualStyleBackColor = true; 122 | this.btn_ExeExplore.Click += new System.EventHandler(this.button1_Click_1); 123 | // 124 | // btn_PakExplore 125 | // 126 | this.btn_PakExplore.Location = new System.Drawing.Point(392, 80); 127 | this.btn_PakExplore.Name = "btn_PakExplore"; 128 | this.btn_PakExplore.Size = new System.Drawing.Size(88, 23); 129 | this.btn_PakExplore.TabIndex = 4; 130 | this.btn_PakExplore.Text = "Explore folder"; 131 | this.btn_PakExplore.UseVisualStyleBackColor = true; 132 | this.btn_PakExplore.Click += new System.EventHandler(this.btn_PakExplore_Click); 133 | // 134 | // lbl_GameName 135 | // 136 | this.lbl_GameName.AutoSize = true; 137 | this.lbl_GameName.Location = new System.Drawing.Point(21, 19); 138 | this.lbl_GameName.Name = "lbl_GameName"; 139 | this.lbl_GameName.Size = new System.Drawing.Size(70, 13); 140 | this.lbl_GameName.TabIndex = 8; 141 | this.lbl_GameName.Text = "Game name: "; 142 | // 143 | // txt_GameName 144 | // 145 | this.txt_GameName.Location = new System.Drawing.Point(140, 12); 146 | this.txt_GameName.Name = "txt_GameName"; 147 | this.txt_GameName.Size = new System.Drawing.Size(246, 20); 148 | this.txt_GameName.TabIndex = 0; 149 | // 150 | // lbl_UEV 151 | // 152 | this.lbl_UEV.AutoSize = true; 153 | this.lbl_UEV.Location = new System.Drawing.Point(21, 121); 154 | this.lbl_UEV.Name = "lbl_UEV"; 155 | this.lbl_UEV.Size = new System.Drawing.Size(112, 13); 156 | this.lbl_UEV.TabIndex = 10; 157 | this.lbl_UEV.Text = "Unreal Engine Version"; 158 | // 159 | // txt_UEVersion 160 | // 161 | this.txt_UEVersion.Location = new System.Drawing.Point(140, 118); 162 | this.txt_UEVersion.Name = "txt_UEVersion"; 163 | this.txt_UEVersion.Size = new System.Drawing.Size(75, 20); 164 | this.txt_UEVersion.TabIndex = 5; 165 | // 166 | // lbl_UEVHelp 167 | // 168 | this.lbl_UEVHelp.AutoSize = true; 169 | this.lbl_UEVHelp.Location = new System.Drawing.Point(242, 121); 170 | this.lbl_UEVHelp.Name = "lbl_UEVHelp"; 171 | this.lbl_UEVHelp.Size = new System.Drawing.Size(88, 13); 172 | this.lbl_UEVHelp.TabIndex = 12; 173 | this.lbl_UEVHelp.Text = "For example 4.22"; 174 | // 175 | // lbl_AESK 176 | // 177 | this.lbl_AESK.AutoSize = true; 178 | this.lbl_AESK.Location = new System.Drawing.Point(21, 159); 179 | this.lbl_AESK.Name = "lbl_AESK"; 180 | this.lbl_AESK.Size = new System.Drawing.Size(52, 13); 181 | this.lbl_AESK.TabIndex = 13; 182 | this.lbl_AESK.Text = "AES Key "; 183 | // 184 | // txt_AESKeys 185 | // 186 | this.txt_AESKeys.Location = new System.Drawing.Point(140, 156); 187 | this.txt_AESKeys.Name = "txt_AESKeys"; 188 | this.txt_AESKeys.Size = new System.Drawing.Size(246, 20); 189 | this.txt_AESKeys.TabIndex = 6; 190 | // 191 | // label1 192 | // 193 | this.label1.AutoSize = true; 194 | this.label1.Location = new System.Drawing.Point(21, 195); 195 | this.label1.Name = "label1"; 196 | this.label1.Size = new System.Drawing.Size(94, 26); 197 | this.label1.TabIndex = 14; 198 | this.label1.Text = "Custom arguments\r\nfor umodel"; 199 | // 200 | // txt_CustomArgs 201 | // 202 | this.txt_CustomArgs.Location = new System.Drawing.Point(140, 195); 203 | this.txt_CustomArgs.Name = "txt_CustomArgs"; 204 | this.txt_CustomArgs.Size = new System.Drawing.Size(246, 20); 205 | this.txt_CustomArgs.TabIndex = 15; 206 | // 207 | // rbtn_HEX 208 | // 209 | this.rbtn_HEX.AutoSize = true; 210 | this.rbtn_HEX.Checked = true; 211 | this.rbtn_HEX.Location = new System.Drawing.Point(395, 143); 212 | this.rbtn_HEX.Name = "rbtn_HEX"; 213 | this.rbtn_HEX.Size = new System.Drawing.Size(107, 17); 214 | this.rbtn_HEX.TabIndex = 16; 215 | this.rbtn_HEX.TabStop = true; 216 | this.rbtn_HEX.Text = "Hexadecimal Key"; 217 | this.rbtn_HEX.UseVisualStyleBackColor = true; 218 | this.rbtn_HEX.CheckedChanged += new System.EventHandler(this.rbtn_HEX_CheckedChanged); 219 | // 220 | // rbtn_B64 221 | // 222 | this.rbtn_B64.AutoSize = true; 223 | this.rbtn_B64.Location = new System.Drawing.Point(395, 166); 224 | this.rbtn_B64.Name = "rbtn_B64"; 225 | this.rbtn_B64.Size = new System.Drawing.Size(85, 17); 226 | this.rbtn_B64.TabIndex = 17; 227 | this.rbtn_B64.TabStop = true; 228 | this.rbtn_B64.Text = "Base 64 Key"; 229 | this.rbtn_B64.UseVisualStyleBackColor = true; 230 | this.rbtn_B64.CheckedChanged += new System.EventHandler(this.rbtn_B64_CheckedChanged); 231 | // 232 | // AddGameForm 233 | // 234 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 235 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 236 | this.ClientSize = new System.Drawing.Size(534, 261); 237 | this.Controls.Add(this.rbtn_B64); 238 | this.Controls.Add(this.rbtn_HEX); 239 | this.Controls.Add(this.txt_CustomArgs); 240 | this.Controls.Add(this.label1); 241 | this.Controls.Add(this.txt_AESKeys); 242 | this.Controls.Add(this.lbl_AESK); 243 | this.Controls.Add(this.lbl_UEVHelp); 244 | this.Controls.Add(this.txt_UEVersion); 245 | this.Controls.Add(this.lbl_UEV); 246 | this.Controls.Add(this.txt_GameName); 247 | this.Controls.Add(this.lbl_GameName); 248 | this.Controls.Add(this.btn_PakExplore); 249 | this.Controls.Add(this.btn_ExeExplore); 250 | this.Controls.Add(this.btn_Cancel); 251 | this.Controls.Add(this.btn_Save); 252 | this.Controls.Add(this.txt_pakFolder); 253 | this.Controls.Add(this.lbl_pakFolder); 254 | this.Controls.Add(this.lbl_exePath); 255 | this.Controls.Add(this.txt_GamePath); 256 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; 257 | this.Name = "AddGameForm"; 258 | this.Text = "Add a game"; 259 | this.ResumeLayout(false); 260 | this.PerformLayout(); 261 | 262 | } 263 | 264 | #endregion 265 | 266 | private System.Windows.Forms.TextBox txt_GamePath; 267 | private System.Windows.Forms.Label lbl_exePath; 268 | private System.Windows.Forms.Label lbl_pakFolder; 269 | private System.Windows.Forms.TextBox txt_pakFolder; 270 | private System.Windows.Forms.Button btn_Save; 271 | private System.Windows.Forms.Button btn_Cancel; 272 | private System.Windows.Forms.OpenFileDialog openFileDialogEXE; 273 | private System.Windows.Forms.Button btn_ExeExplore; 274 | private System.Windows.Forms.Button btn_PakExplore; 275 | private System.Windows.Forms.FolderBrowserDialog folderBrowserDialogPAK; 276 | private System.Windows.Forms.Label lbl_GameName; 277 | private System.Windows.Forms.TextBox txt_GameName; 278 | private System.Windows.Forms.Label lbl_UEV; 279 | private System.Windows.Forms.TextBox txt_UEVersion; 280 | private System.Windows.Forms.Label lbl_UEVHelp; 281 | private System.Windows.Forms.Label lbl_AESK; 282 | private System.Windows.Forms.TextBox txt_AESKeys; 283 | private System.Windows.Forms.Label label1; 284 | private System.Windows.Forms.TextBox txt_CustomArgs; 285 | private System.Windows.Forms.RadioButton rbtn_HEX; 286 | private System.Windows.Forms.RadioButton rbtn_B64; 287 | } 288 | } -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Drawing; 5 | using System.IO; 6 | using System.Linq; 7 | using System.Windows.Forms; 8 | 9 | namespace UmodelHelper 10 | { 11 | public partial class Main : Form 12 | { 13 | //Program version 14 | public static string UMHVERSION = "1.0"; 15 | 16 | //Game and umodel list that is saved in %appdata% games.conf and umodel.conf 17 | private List listajuegos = new List(); 18 | private List listaumodel = new List(); 19 | private static DirectoryInfo saveDir = Directory.GetParent(Application.UserAppDataPath); 20 | private string savePathGame = Path.Combine(saveDir.FullName, "games.conf"); 21 | private string savePathUmodel = Path.Combine(saveDir.FullName, "umodel.conf"); 22 | 23 | //Selected Game and umodel 24 | private Juego selectedGame; 25 | private UModel selectedUmodel; 26 | 27 | public Main() 28 | { 29 | InitializeComponent(); 30 | } 31 | 32 | //Save in .conf (txt) the new game or umodel 33 | private void Write(Juego game) 34 | { 35 | StreamWriter sw = new StreamWriter(savePathGame, true); 36 | sw.WriteLine(game.SaveString()); 37 | sw.Close(); 38 | } 39 | private void Write(UModel umodel) 40 | { 41 | StreamWriter sw = new StreamWriter(savePathUmodel, true); 42 | sw.WriteLine(umodel.SaveString()); 43 | sw.Close(); 44 | } 45 | 46 | 47 | //Save in .conf (txt) the new game 48 | private void Overwrite(Juego game) 49 | { 50 | //Index of game (will be the line to replace) 51 | int index = listajuegos.FindIndex(x => x.Name.Contains(game.Name)); 52 | //Read all lines, change the one with the index and write everything 53 | string[] lines = System.IO.File.ReadAllLines(savePathGame); 54 | lines[index] = game.SaveString(); 55 | System.IO.File.WriteAllLines(savePathGame, lines); 56 | } 57 | private void Overwrite(UModel umodel) 58 | { 59 | //Index of game (will be the line to replace) 60 | int index = listaumodel.FindIndex(x => x.Name.Contains(umodel.Name)); 61 | //Read all lines, change the one with the index and write everything 62 | string[] lines = System.IO.File.ReadAllLines(savePathUmodel); 63 | lines[index] = umodel.SaveString(); 64 | System.IO.File.WriteAllLines(savePathUmodel, lines); 65 | } 66 | 67 | 68 | //Delete game from file 69 | private void Unwrite(Juego game) 70 | { 71 | //Index of game (will be the line to replace) 72 | int index = listajuegos.FindIndex(x => x.Name.Equals(game.Name)); 73 | //Read all lines, create a new array without the deleted game 74 | string[] lines = System.IO.File.ReadAllLines(savePathGame); 75 | string[] final = lines.Where(w => w != lines[index]).ToArray(); 76 | System.IO.File.WriteAllLines(savePathGame, final); 77 | } 78 | private void Unwrite(UModel umodel) 79 | { 80 | //Index of game (will be the line to replace) 81 | int index = listaumodel.FindIndex(x => x.Name.Equals(umodel.Name)); 82 | //Read all lines, create a new array without the deleted game 83 | string[] lines = System.IO.File.ReadAllLines(savePathUmodel); 84 | string[] final = lines.Where(w => w != lines[index]).ToArray(); 85 | System.IO.File.WriteAllLines(savePathUmodel, final); 86 | } 87 | 88 | //Read saved games or umodel 89 | private void Read() 90 | { 91 | listajuegos.Clear(); 92 | StreamReader sr = new StreamReader(savePathGame); 93 | string line = sr.ReadLine(); 94 | while (line != null) 95 | { 96 | //if line is empty, skip it or if line start with comment character # 97 | if (line == "" || line.StartsWith("#")) 98 | { 99 | line = sr.ReadLine(); 100 | continue; 101 | } 102 | //Create an empty game and split the line in the attributes 103 | Juego game = new Juego(); 104 | String[] lines = line.Split(';'); 105 | //Set the game attributes 106 | game.Name = lines[0]; 107 | game.ExePath = lines[1]; 108 | game.PakFolderPath = lines[2]; 109 | game.UEVersion = lines[3]; 110 | game.AESKey = lines[4]; 111 | game.CustomArgs = lines[5]; 112 | //Add game to list and read next line 113 | listajuegos.Add(game); 114 | line = sr.ReadLine(); 115 | } 116 | sr.Close(); 117 | } 118 | private void ReadUmodel() 119 | { 120 | listaumodel.Clear(); 121 | StreamReader sr = new StreamReader(savePathUmodel); 122 | string line = sr.ReadLine(); 123 | while (line != null) 124 | { 125 | //if line is empty, skip it or if line start with comment simbol 126 | if (line == "" || line.StartsWith("#")) 127 | { 128 | line = sr.ReadLine(); 129 | continue; 130 | } 131 | //Create an empty game and split the line in the attributes 132 | UModel umodel = new UModel(); 133 | String[] lines = line.Split(';'); 134 | //Set the game attributes 135 | umodel.Name = lines[0]; 136 | umodel.Path = lines[1]; 137 | //Add game to list and read next line 138 | listaumodel.Add(umodel); 139 | line = sr.ReadLine(); 140 | } 141 | sr.Close(); 142 | } 143 | 144 | 145 | //Display saved games on the list on the right 146 | private void Display() 147 | { 148 | lst_Games.Items.Clear(); 149 | foreach (Juego g in listajuegos) 150 | { 151 | lst_Games.Items.Add(g.ToString()); 152 | } 153 | } 154 | private void DisplayUmodel() 155 | { 156 | desplegable_Umodel.Items.Clear(); 157 | foreach (UModel u in listaumodel) 158 | { 159 | desplegable_Umodel.Items.Add(u.Name); 160 | } 161 | } 162 | 163 | 164 | //When the main form starts ************** 165 | private void Form1_Load(object sender, EventArgs e) 166 | { 167 | ResetView(); 168 | lbl_UMHelperVersion.Text = "Version: " + UMHVERSION + " by NokisDemox"; 169 | } 170 | 171 | //Reset the main view 172 | private void ResetView() 173 | { 174 | //Disable elements for the games 175 | setMainContentVisibility(false); 176 | //Disable buttons 177 | btn_DeleteGame.Enabled = false; 178 | btn_DuplicateGame.Enabled = false; 179 | btn_RunUmodel.Enabled = false; 180 | btn_OpenUmodel.Enabled = false; 181 | 182 | btn_OpenEXEFolder.Visible = false; 183 | btn_OpenPAKFolder.Visible = false; 184 | btn_OpenUHelp.Visible = false; 185 | //Hide exe icon 186 | pic_GameIcon.Visible = false; 187 | 188 | //Add icons to the buttons 189 | 190 | 191 | //Create save file if it doesnt exist 192 | StreamWriter sw = File.AppendText(savePathGame); 193 | sw.Close(); 194 | sw = File.AppendText(savePathUmodel); 195 | sw.Close(); 196 | //Read the saved games and display them 197 | Read(); 198 | Display(); 199 | //Read the saved umodels and display them 200 | ReadUmodel(); 201 | DisplayUmodel(); 202 | } 203 | 204 | 205 | //Add a game 206 | private void button1_Click(object sender, EventArgs e) 207 | { 208 | //Get game info in other form 209 | Juego newGame = new Juego(); 210 | var addGameForm = new AddGameForm(newGame); 211 | addGameForm.ShowDialog(); 212 | addGameForm = null; 213 | //Add it to the list if was created 214 | if(newGame.ToString()!=null && newGame.ToString() != "") 215 | { 216 | //get game version 217 | getGameVersion(newGame); 218 | //add it to list 219 | lst_Games.Items.Add(newGame.ToString()); 220 | //Save the game on txt file 221 | Write(newGame); 222 | //After save, add to the private array the game too 223 | listajuegos.Add(newGame); 224 | } 225 | 226 | } 227 | 228 | 229 | //List of games 230 | private void lst_Games_SelectedIndexChanged_1(object sender, EventArgs e) 231 | { 232 | ListBox lstGames = sender as ListBox; 233 | //if its null we cant work with it 234 | if (lstGames == null || lstGames.SelectedItem == null) return; 235 | 236 | string selectedName = lstGames.SelectedItem.ToString(); 237 | //Check which game is 238 | Juego selectedGame = listajuegos.Find(x => x.Name.Contains(selectedName)); 239 | 240 | //Check if game has version, if not, add it 241 | if (selectedGame.Version == "-1") getGameVersion(selectedGame); 242 | 243 | // ****** Display game info 244 | changeMainContent(selectedGame); 245 | // ****** Enable buttons on the bottom 246 | btn_EditGame.Enabled = true; 247 | btn_DeleteGame.Enabled = true; 248 | btn_DuplicateGame.Enabled = true; 249 | if (selectedUmodel != null) btn_RunUmodel.Enabled = true; 250 | 251 | // ****** Enable buttons on the main view 252 | btn_OpenEXEFolder.Visible = true; 253 | btn_OpenPAKFolder.Visible = true; 254 | btn_OpenUHelp.Visible = true; 255 | // ****** Set the selected game for the other functions of the app 256 | this.selectedGame = selectedGame; 257 | //Set the icon as image in the main window 258 | Icon icon = SystemIcons.Warning; 259 | try 260 | { 261 | pic_GameIcon.Image = System.Drawing.Icon.ExtractAssociatedIcon(selectedGame.ExePath).ToBitmap(); 262 | } 263 | catch (Exception ex) 264 | { 265 | pic_GameIcon.Image = icon.ToBitmap(); 266 | } 267 | //Show exe icon 268 | pic_GameIcon.Visible = true; 269 | } 270 | 271 | 272 | // Main content visibility method 273 | private void setMainContentVisibility (bool b) 274 | { 275 | lbl_MainGameName.Visible = b; 276 | lbl_MainAESK1.Visible = b; 277 | lbl_MainEXE1.Visible = b; 278 | lbl_MainPAK1.Visible = b; 279 | lbl_MainUEV1.Visible = b; 280 | lbl_MainAESK2.Visible = b; 281 | lbl_MainEXE2.Visible = b; 282 | lbl_MainPAK2.Visible = b; 283 | lbl_MainUEV2.Visible = b; 284 | lbl_mainInfo.Visible = b; 285 | lbl_GameVersion.Visible = b; 286 | lbl_GameVersion2.Visible = b; 287 | lbl_KeyBase64.Visible = b; 288 | lbl_KeyBase64_2.Visible = b; 289 | lbl_CustomArgs.Visible = b; 290 | lbl_CustomArgs2.Visible = b; 291 | } 292 | 293 | 294 | //Change main window values 295 | private void changeMainContent(Juego game) 296 | { 297 | //enable them 298 | setMainContentVisibility(true); 299 | //set values 300 | lbl_MainGameName.Text = game.Name; 301 | lbl_MainAESK2.Text = game.AESKey; 302 | lbl_MainEXE2.Text = game.ExePath; 303 | lbl_MainPAK2.Text = game.PakFolderPath; 304 | lbl_MainUEV2.Text = game.UEVersion; 305 | lbl_GameVersion2.Text = game.Version=="-1" ? "File not found" : game.Version; 306 | lbl_CustomArgs2.Text = game.CustomArgs; 307 | //Set base64 KEY 308 | string b64 = game.AESKey.StartsWith("0x") || game.AESKey.StartsWith("0X") ? game.AESKey.Remove(0,2) : game.AESKey; 309 | lbl_KeyBase64_2.Text = HexStringToB64String(b64); 310 | } 311 | 312 | private void btn_EditGame_Click(object sender, EventArgs e) 313 | { 314 | //Get game info in other form 315 | var editGameForm = new EditGameForm(selectedGame); 316 | editGameForm.ShowDialog(); 317 | editGameForm = null; 318 | //Check if it contains error 319 | if (selectedGame.ToString() != null && selectedGame.ToString() != "") 320 | { 321 | //Overwrite 322 | Overwrite(selectedGame); 323 | changeMainContent(selectedGame); 324 | Display(); 325 | } 326 | else MessageBox.Show("Invalid data for the game.", "Edit game error",MessageBoxButtons.OK, MessageBoxIcon.Error); 327 | } 328 | 329 | private void label1_Click(object sender, EventArgs e) 330 | { 331 | 332 | } 333 | 334 | private void panelMain_Paint(object sender, PaintEventArgs e) 335 | { 336 | 337 | } 338 | 339 | //Add new umodel verison (similar to game) 340 | private void btn_AddUmodel_Click(object sender, EventArgs e) 341 | { 342 | //Get umodel info in other form 343 | UModel newUmodel = new UModel(); 344 | var addUmodelForm = new AddUmodelForm(newUmodel); 345 | addUmodelForm.ShowDialog(); 346 | addUmodelForm = null; 347 | //Add it to the list if was created 348 | if (newUmodel.Name != null && newUmodel.Name != "") 349 | { 350 | desplegable_Umodel.Items.Add(newUmodel.Name); 351 | //Save the game on txt file 352 | Write(newUmodel); 353 | //After save, add to the private array the game too 354 | listaumodel.Add(newUmodel); 355 | } 356 | } 357 | 358 | private void desplegable_Umodel_SelectedIndexChanged(object sender, EventArgs e) 359 | { 360 | ComboBox lstUmodel = sender as ComboBox; 361 | //if its null we cant work with it 362 | if (lstUmodel == null) return; 363 | 364 | string selectedName = lstUmodel.SelectedItem.ToString(); 365 | //Check which game is 366 | UModel selectedumodel = listaumodel.Find(x => x.Name.Contains(selectedName)); 367 | 368 | // ****** Enable buttons on the top and bottom 369 | btn_UmodelEdit.Enabled = true; 370 | btn_DeleteUmodel.Enabled = true; 371 | if (selectedGame != null) btn_RunUmodel.Enabled = true; 372 | 373 | // ****** Set the selected game for the other functions of the app 374 | this.selectedUmodel = selectedumodel; 375 | //Set the icon as image in the umodel panel (info button) 376 | Icon icon = SystemIcons.Warning; 377 | try 378 | { 379 | Icon icon2 = System.Drawing.Icon.ExtractAssociatedIcon(selectedUmodel.Path); 380 | //If its possible then file exists 381 | pic_UModelInfo.Image = SystemIcons.Information.ToBitmap(); 382 | pic_UModelInfo.Tag = ""; 383 | btn_OpenUmodel.Enabled = true; 384 | } 385 | catch (Exception ex) 386 | { 387 | pic_UModelInfo.Image = icon.ToBitmap(); 388 | pic_UModelInfo.Tag = "warning"; 389 | btn_OpenUmodel.Enabled = false; 390 | } 391 | //Show exe icon 392 | pic_UModelInfo.Visible = true; 393 | } 394 | 395 | private void btn_UmodelEdit_Click(object sender, EventArgs e) 396 | { 397 | //Get game info in other form 398 | var editUModelForm = new EditUmodelForm(selectedUmodel); 399 | editUModelForm.ShowDialog(); 400 | editUModelForm = null; 401 | //Check if it contains error 402 | if (selectedUmodel.Name != null && selectedUmodel.Name != "") 403 | { 404 | //Overwrite 405 | Overwrite(selectedUmodel); 406 | DisplayUmodel(); 407 | } 408 | else MessageBox.Show("Invalid data for the game.", "Edit game error", MessageBoxButtons.OK, MessageBoxIcon.Error); 409 | } 410 | 411 | private void btn_DeleteGame_Click(object sender, EventArgs e) 412 | { 413 | if (selectedGame.ToString() == null || selectedGame.ToString() == "") return; 414 | 415 | DialogResult result = MessageBox.Show("Are you sure you want to delete: " + selectedGame.Name + " ?", "Warning", MessageBoxButtons.YesNo); 416 | if (result == DialogResult.Yes) 417 | { 418 | //Delete it from the file 419 | Unwrite(selectedGame); 420 | //Remove it from the list of games 421 | listajuegos.Remove(selectedGame); 422 | //Set the selected game to null and reset the form 423 | selectedGame = null; 424 | ResetView(); 425 | } 426 | else return; 427 | } 428 | 429 | private void btn_DuplicateGame_Click(object sender, EventArgs e) 430 | { 431 | //Get game info in other form 432 | Juego newGame = new Juego(selectedGame); 433 | newGame.Name = selectedGame.Name + System.DateTime.Now.ToString("_mm_ss"); 434 | //Add it to the list if was created 435 | if (newGame.ToString() != null && newGame.ToString() != "") 436 | { 437 | lst_Games.Items.Add(newGame.ToString()); 438 | //Save the game on txt file 439 | Write(newGame); 440 | //After save, add to the private array the game too 441 | listajuegos.Add(newGame); 442 | Display(); 443 | } 444 | } 445 | 446 | 447 | //Open a folder 448 | private void OpenFolder(string folderPath) 449 | { 450 | if (Directory.Exists(folderPath)) 451 | { 452 | ProcessStartInfo startInfo = new ProcessStartInfo(); 453 | startInfo.Arguments = folderPath; 454 | startInfo.FileName = "explorer.exe "; 455 | Process.Start(startInfo); 456 | } 457 | else MessageBox.Show(string.Format("{0} Directory does not exist!", folderPath)); 458 | } 459 | 460 | private void btn_OpenEXEFolder_Click(object sender, EventArgs e) 461 | { 462 | string folderPath = lbl_MainEXE2.Text.TrimEnd('\\').Remove(lbl_MainEXE2.Text.LastIndexOf('\\') + 1); 463 | OpenFolder(folderPath); 464 | } 465 | 466 | private void btn_OpenPAKFolder_Click(object sender, EventArgs e) 467 | { 468 | OpenFolder(lbl_MainPAK2.Text); 469 | } 470 | 471 | 472 | // OPEN UMODEL ******** 473 | private void btn_OpenUmodel_Click(object sender, EventArgs e) 474 | { 475 | if (!Directory.Exists(lbl_MainPAK2.Text)) 476 | MessageBox.Show(string.Format(" Game directory does not exist! \n {0}", lbl_MainPAK2.Text)); 477 | 478 | //Umodel errors 479 | if (selectedUmodel == null) MessageBox.Show(string.Format("Umodel is not selected!")); 480 | if (selectedUmodel.Path == null) MessageBox.Show(string.Format("Umodel directory does not exist! \n {0}", lbl_MainPAK2.Text)); ; 481 | 482 | string umodelFolder = selectedUmodel.Path.TrimEnd('\\').Remove(selectedUmodel.Path.LastIndexOf('\\') + 1); 483 | 484 | if (!Directory.Exists(umodelFolder)) 485 | MessageBox.Show(string.Format("Umodel directory does not exist! \n {0}", lbl_MainPAK2.Text)); 486 | 487 | //umodel command 488 | ProcessStartInfo command = new ProcessStartInfo(); 489 | //where umodel is (current version path) 490 | command.FileName = this.selectedUmodel.Path; 491 | //Add the aes, game version and path of game 492 | string args = " -aes=" + selectedGame.AESKey; 493 | args += " -game=ue" + selectedGame.UEVersion; 494 | args += " \"" + selectedGame.PakFolderPath + "\" "; 495 | args += selectedGame.CustomArgs; 496 | 497 | command.Arguments = args; 498 | 499 | //run it 500 | Process.Start(command); 501 | 502 | } 503 | 504 | //Add version of file 505 | private void getGameVersion(Juego game) 506 | { 507 | FileVersionInfo myFileVersionInfo = null; 508 | try 509 | { 510 | myFileVersionInfo = FileVersionInfo.GetVersionInfo(game.ExePath); 511 | } 512 | catch (Exception ex) 513 | { 514 | 515 | } 516 | if (myFileVersionInfo != null) game.Version = myFileVersionInfo.FileVersion == "" ? "Version not found" : myFileVersionInfo.FileVersion; 517 | //MessageBox.Show(myFileVersionInfo.ToString(), "Edit game error", MessageBoxButtons.OK, MessageBoxIcon.Information); 518 | } 519 | 520 | private void btn_DeleteUmodel_Click(object sender, EventArgs e) 521 | { 522 | if (selectedUmodel.ToString() == null || selectedUmodel.ToString() == "") return; 523 | 524 | DialogResult result = MessageBox.Show("Are you sure you want to delete: " + selectedUmodel.Name + " ?", "Warning", MessageBoxButtons.YesNo); 525 | if (result == DialogResult.Yes) 526 | { 527 | //Delete it from the file 528 | Unwrite(selectedUmodel); 529 | //Remove it from the list of games 530 | listaumodel.Remove(selectedUmodel); 531 | //Set the selected game to null and reset the form 532 | selectedUmodel = null; 533 | ResetView(); 534 | } 535 | else return; 536 | } 537 | 538 | private void pic_UModelInfo_Click(object sender, EventArgs e) 539 | { 540 | if (pic_UModelInfo.Image == null) return; 541 | if ((string)pic_UModelInfo.Tag != "") 542 | { 543 | MessageBox.Show("The path of this umodel version is not an umodel.exe.", "Umodel path error", MessageBoxButtons.OK, MessageBoxIcon.Warning); 544 | return; 545 | } 546 | //umodel command 547 | Process command = new Process(); 548 | //Redirect std out 549 | command.StartInfo.UseShellExecute = false; 550 | command.StartInfo.RedirectStandardOutput = true; 551 | //where umodel is (current version path) + version parameter 552 | command.StartInfo.FileName = this.selectedUmodel.Path; 553 | command.StartInfo.Arguments = " -version"; 554 | //run it 555 | command.Start(); 556 | //Get output 557 | string output = command.StandardOutput.ReadToEnd(); 558 | command.WaitForExit(); 559 | //Show version info 560 | MessageBox.Show(output, "Umodel version", MessageBoxButtons.OK, MessageBoxIcon.Information); 561 | } 562 | 563 | private void btn_OpenUmodel_Click_1(object sender, EventArgs e) 564 | { 565 | //Umodel errors 566 | if (selectedUmodel == null) MessageBox.Show(string.Format("Umodel is not selected!")); 567 | if (selectedUmodel.Path == null) MessageBox.Show(string.Format("Umodel directory does not exist! \n {0}", lbl_MainPAK2.Text)); ; 568 | 569 | string umodelFolder = selectedUmodel.Path.TrimEnd('\\').Remove(selectedUmodel.Path.LastIndexOf('\\') + 1); 570 | 571 | if (!Directory.Exists(umodelFolder)) 572 | MessageBox.Show(string.Format("Umodel directory does not exist! \n {0}", lbl_MainPAK2.Text)); 573 | 574 | //umodel command 575 | ProcessStartInfo command = new ProcessStartInfo(); 576 | //where umodel is (current version path) 577 | command.FileName = this.selectedUmodel.Path; 578 | //Add the aes, game version and path of game 579 | command.Arguments = " -gui"; 580 | //run it 581 | Process.Start(command); 582 | } 583 | 584 | private void link_UMHHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 585 | { 586 | System.Diagnostics.Process.Start("https://github.com/NokisDemox/UmodelHelper"); 587 | 588 | } 589 | 590 | 591 | 592 | //method to convert string -> HEX -> base64 593 | public static string HexStringToB64String(string inputHex) 594 | { 595 | if (inputHex.Length != 64) return "AES key has to have 66 characters starting with \"0x\" or 64 characters "; 596 | var resultantArray = new byte[inputHex.Length / 2]; 597 | for (var i = 0; i < resultantArray.Length; i++) 598 | { 599 | resultantArray[i] = System.Convert.ToByte(inputHex.Substring(i * 2, 2), 16); 600 | } 601 | return System.Convert.ToBase64String(resultantArray); 602 | } 603 | 604 | private void btn_OpenUHelp_Click(object sender, EventArgs e) 605 | { 606 | if (pic_UModelInfo.Image == null || (string)pic_UModelInfo.Tag != "") return; 607 | 608 | string command = "/K " + this.selectedUmodel.Path + " -help"; 609 | Process.Start("CMD.exe", command); 610 | } 611 | } 612 | 613 | } 614 | -------------------------------------------------------------------------------- /UmodelHelper/UmodelHelper/Main.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace UmodelHelper 2 | { 3 | partial class Main 4 | { 5 | /// 6 | /// Variable del diseñador necesaria. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Limpiar los recursos que se estén usando. 12 | /// 13 | /// true si los recursos administrados se deben desechar; false en caso contrario. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Código generado por el Diseñador de Windows Forms 24 | 25 | /// 26 | /// Método necesario para admitir el Diseñador. No se puede modificar 27 | /// el contenido de este método con el editor de código. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main)); 32 | this.panelLeft = new System.Windows.Forms.Panel(); 33 | this.lst_Games = new System.Windows.Forms.ListBox(); 34 | this.panelLeftTop = new System.Windows.Forms.Panel(); 35 | this.link_UMHHelp = new System.Windows.Forms.LinkLabel(); 36 | this.lbl_UMHelperVersion = new System.Windows.Forms.Label(); 37 | this.pictureBox2 = new System.Windows.Forms.PictureBox(); 38 | this.btn_AddGame = new System.Windows.Forms.Button(); 39 | this.panelMainTop = new System.Windows.Forms.Panel(); 40 | this.pic_UModelInfo = new System.Windows.Forms.PictureBox(); 41 | this.btn_DeleteUmodel = new System.Windows.Forms.Button(); 42 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 43 | this.btn_UmodelEdit = new System.Windows.Forms.Button(); 44 | this.desplegable_Umodel = new System.Windows.Forms.ComboBox(); 45 | this.btn_AddUmodel = new System.Windows.Forms.Button(); 46 | this.lbl_UmodelChoose = new System.Windows.Forms.Label(); 47 | this.panelMain = new System.Windows.Forms.Panel(); 48 | this.btn_OpenUHelp = new System.Windows.Forms.Button(); 49 | this.lbl_CustomArgs2 = new System.Windows.Forms.TextBox(); 50 | this.lbl_CustomArgs = new System.Windows.Forms.Label(); 51 | this.lbl_KeyBase64_2 = new System.Windows.Forms.TextBox(); 52 | this.lbl_KeyBase64 = new System.Windows.Forms.Label(); 53 | this.lbl_MainAESK2 = new System.Windows.Forms.TextBox(); 54 | this.lbl_MainUEV2 = new System.Windows.Forms.TextBox(); 55 | this.lbl_MainPAK2 = new System.Windows.Forms.TextBox(); 56 | this.lbl_GameVersion2 = new System.Windows.Forms.TextBox(); 57 | this.lbl_MainEXE2 = new System.Windows.Forms.TextBox(); 58 | this.lbl_GameVersion = new System.Windows.Forms.Label(); 59 | this.btn_OpenEXEFolder = new System.Windows.Forms.Button(); 60 | this.btn_OpenPAKFolder = new System.Windows.Forms.Button(); 61 | this.panelBottom = new System.Windows.Forms.Panel(); 62 | this.btn_OpenUmodel = new System.Windows.Forms.Button(); 63 | this.btn_DuplicateGame = new System.Windows.Forms.Button(); 64 | this.btn_DeleteGame = new System.Windows.Forms.Button(); 65 | this.btn_EditGame = new System.Windows.Forms.Button(); 66 | this.btn_RunUmodel = new System.Windows.Forms.Button(); 67 | this.pic_GameIcon = new System.Windows.Forms.PictureBox(); 68 | this.lbl_mainInfo = new System.Windows.Forms.Label(); 69 | this.lbl_MainAESK1 = new System.Windows.Forms.Label(); 70 | this.lbl_MainUEV1 = new System.Windows.Forms.Label(); 71 | this.lbl_MainPAK1 = new System.Windows.Forms.Label(); 72 | this.lbl_MainEXE1 = new System.Windows.Forms.Label(); 73 | this.lbl_MainGameName = new System.Windows.Forms.Label(); 74 | this.panelLeft.SuspendLayout(); 75 | this.panelLeftTop.SuspendLayout(); 76 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); 77 | this.panelMainTop.SuspendLayout(); 78 | ((System.ComponentModel.ISupportInitialize)(this.pic_UModelInfo)).BeginInit(); 79 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 80 | this.panelMain.SuspendLayout(); 81 | this.panelBottom.SuspendLayout(); 82 | ((System.ComponentModel.ISupportInitialize)(this.pic_GameIcon)).BeginInit(); 83 | this.SuspendLayout(); 84 | // 85 | // panelLeft 86 | // 87 | this.panelLeft.BackColor = System.Drawing.Color.Transparent; 88 | this.panelLeft.Controls.Add(this.lst_Games); 89 | this.panelLeft.Controls.Add(this.panelLeftTop); 90 | this.panelLeft.Dock = System.Windows.Forms.DockStyle.Left; 91 | this.panelLeft.Location = new System.Drawing.Point(0, 0); 92 | this.panelLeft.Name = "panelLeft"; 93 | this.panelLeft.Size = new System.Drawing.Size(200, 493); 94 | this.panelLeft.TabIndex = 2; 95 | // 96 | // lst_Games 97 | // 98 | this.lst_Games.BackColor = System.Drawing.Color.Silver; 99 | this.lst_Games.Dock = System.Windows.Forms.DockStyle.Fill; 100 | this.lst_Games.FormattingEnabled = true; 101 | this.lst_Games.Location = new System.Drawing.Point(0, 135); 102 | this.lst_Games.Name = "lst_Games"; 103 | this.lst_Games.Size = new System.Drawing.Size(200, 358); 104 | this.lst_Games.TabIndex = 4; 105 | this.lst_Games.SelectedIndexChanged += new System.EventHandler(this.lst_Games_SelectedIndexChanged_1); 106 | // 107 | // panelLeftTop 108 | // 109 | this.panelLeftTop.BackColor = System.Drawing.Color.Silver; 110 | this.panelLeftTop.Controls.Add(this.link_UMHHelp); 111 | this.panelLeftTop.Controls.Add(this.lbl_UMHelperVersion); 112 | this.panelLeftTop.Controls.Add(this.pictureBox2); 113 | this.panelLeftTop.Controls.Add(this.btn_AddGame); 114 | this.panelLeftTop.Dock = System.Windows.Forms.DockStyle.Top; 115 | this.panelLeftTop.Location = new System.Drawing.Point(0, 0); 116 | this.panelLeftTop.Name = "panelLeftTop"; 117 | this.panelLeftTop.Size = new System.Drawing.Size(200, 135); 118 | this.panelLeftTop.TabIndex = 3; 119 | // 120 | // link_UMHHelp 121 | // 122 | this.link_UMHHelp.Anchor = System.Windows.Forms.AnchorStyles.Top; 123 | this.link_UMHHelp.AutoSize = true; 124 | this.link_UMHHelp.Location = new System.Drawing.Point(39, 78); 125 | this.link_UMHHelp.Name = "link_UMHHelp"; 126 | this.link_UMHHelp.Size = new System.Drawing.Size(110, 13); 127 | this.link_UMHHelp.TabIndex = 25; 128 | this.link_UMHHelp.TabStop = true; 129 | this.link_UMHHelp.Text = "Help with the program"; 130 | this.link_UMHHelp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.link_UMHHelp_LinkClicked); 131 | // 132 | // lbl_UMHelperVersion 133 | // 134 | this.lbl_UMHelperVersion.Anchor = System.Windows.Forms.AnchorStyles.Top; 135 | this.lbl_UMHelperVersion.AutoSize = true; 136 | this.lbl_UMHelperVersion.Location = new System.Drawing.Point(28, 65); 137 | this.lbl_UMHelperVersion.Name = "lbl_UMHelperVersion"; 138 | this.lbl_UMHelperVersion.Size = new System.Drawing.Size(182, 13); 139 | this.lbl_UMHelperVersion.TabIndex = 24; 140 | this.lbl_UMHelperVersion.Text = "This program version by NokisDemox"; 141 | this.lbl_UMHelperVersion.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 142 | // 143 | // pictureBox2 144 | // 145 | this.pictureBox2.BackColor = System.Drawing.Color.Transparent; 146 | this.pictureBox2.Image = global::UmodelHelper.Properties.Resources.icontest1; 147 | this.pictureBox2.Location = new System.Drawing.Point(65, 12); 148 | this.pictureBox2.Name = "pictureBox2"; 149 | this.pictureBox2.Size = new System.Drawing.Size(50, 50); 150 | this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; 151 | this.pictureBox2.TabIndex = 23; 152 | this.pictureBox2.TabStop = false; 153 | // 154 | // btn_AddGame 155 | // 156 | this.btn_AddGame.Dock = System.Windows.Forms.DockStyle.Bottom; 157 | this.btn_AddGame.Location = new System.Drawing.Point(0, 105); 158 | this.btn_AddGame.Name = "btn_AddGame"; 159 | this.btn_AddGame.Size = new System.Drawing.Size(200, 30); 160 | this.btn_AddGame.TabIndex = 2; 161 | this.btn_AddGame.Text = "Add a new game"; 162 | this.btn_AddGame.UseVisualStyleBackColor = true; 163 | this.btn_AddGame.Click += new System.EventHandler(this.button1_Click); 164 | // 165 | // panelMainTop 166 | // 167 | this.panelMainTop.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); 168 | this.panelMainTop.Controls.Add(this.pic_UModelInfo); 169 | this.panelMainTop.Controls.Add(this.btn_DeleteUmodel); 170 | this.panelMainTop.Controls.Add(this.pictureBox1); 171 | this.panelMainTop.Controls.Add(this.btn_UmodelEdit); 172 | this.panelMainTop.Controls.Add(this.desplegable_Umodel); 173 | this.panelMainTop.Controls.Add(this.btn_AddUmodel); 174 | this.panelMainTop.Controls.Add(this.lbl_UmodelChoose); 175 | this.panelMainTop.Dock = System.Windows.Forms.DockStyle.Top; 176 | this.panelMainTop.Location = new System.Drawing.Point(200, 0); 177 | this.panelMainTop.Name = "panelMainTop"; 178 | this.panelMainTop.Size = new System.Drawing.Size(744, 65); 179 | this.panelMainTop.TabIndex = 3; 180 | // 181 | // pic_UModelInfo 182 | // 183 | this.pic_UModelInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 184 | this.pic_UModelInfo.Location = new System.Drawing.Point(701, 20); 185 | this.pic_UModelInfo.Name = "pic_UModelInfo"; 186 | this.pic_UModelInfo.Size = new System.Drawing.Size(25, 25); 187 | this.pic_UModelInfo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; 188 | this.pic_UModelInfo.TabIndex = 22; 189 | this.pic_UModelInfo.TabStop = false; 190 | this.pic_UModelInfo.Click += new System.EventHandler(this.pic_UModelInfo_Click); 191 | // 192 | // btn_DeleteUmodel 193 | // 194 | this.btn_DeleteUmodel.Enabled = false; 195 | this.btn_DeleteUmodel.Location = new System.Drawing.Point(336, 18); 196 | this.btn_DeleteUmodel.Name = "btn_DeleteUmodel"; 197 | this.btn_DeleteUmodel.Size = new System.Drawing.Size(87, 30); 198 | this.btn_DeleteUmodel.TabIndex = 5; 199 | this.btn_DeleteUmodel.Text = "Delete Umodel"; 200 | this.btn_DeleteUmodel.UseVisualStyleBackColor = true; 201 | this.btn_DeleteUmodel.Click += new System.EventHandler(this.btn_DeleteUmodel_Click); 202 | // 203 | // pictureBox1 204 | // 205 | this.pictureBox1.BackColor = System.Drawing.Color.Transparent; 206 | this.pictureBox1.Image = global::UmodelHelper.Properties.Resources.umodel; 207 | this.pictureBox1.Location = new System.Drawing.Point(8, 12); 208 | this.pictureBox1.Name = "pictureBox1"; 209 | this.pictureBox1.Size = new System.Drawing.Size(40, 40); 210 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; 211 | this.pictureBox1.TabIndex = 4; 212 | this.pictureBox1.TabStop = false; 213 | // 214 | // btn_UmodelEdit 215 | // 216 | this.btn_UmodelEdit.Enabled = false; 217 | this.btn_UmodelEdit.Location = new System.Drawing.Point(210, 18); 218 | this.btn_UmodelEdit.Name = "btn_UmodelEdit"; 219 | this.btn_UmodelEdit.Size = new System.Drawing.Size(120, 30); 220 | this.btn_UmodelEdit.TabIndex = 3; 221 | this.btn_UmodelEdit.Text = "Edit Umodel version"; 222 | this.btn_UmodelEdit.UseVisualStyleBackColor = true; 223 | this.btn_UmodelEdit.Click += new System.EventHandler(this.btn_UmodelEdit_Click); 224 | // 225 | // desplegable_Umodel 226 | // 227 | this.desplegable_Umodel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 228 | this.desplegable_Umodel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 229 | this.desplegable_Umodel.FormattingEnabled = true; 230 | this.desplegable_Umodel.Location = new System.Drawing.Point(574, 24); 231 | this.desplegable_Umodel.Name = "desplegable_Umodel"; 232 | this.desplegable_Umodel.Size = new System.Drawing.Size(121, 21); 233 | this.desplegable_Umodel.TabIndex = 2; 234 | this.desplegable_Umodel.SelectedIndexChanged += new System.EventHandler(this.desplegable_Umodel_SelectedIndexChanged); 235 | // 236 | // btn_AddUmodel 237 | // 238 | this.btn_AddUmodel.Location = new System.Drawing.Point(54, 18); 239 | this.btn_AddUmodel.Name = "btn_AddUmodel"; 240 | this.btn_AddUmodel.Size = new System.Drawing.Size(150, 30); 241 | this.btn_AddUmodel.TabIndex = 1; 242 | this.btn_AddUmodel.Text = "Add new Umodel version"; 243 | this.btn_AddUmodel.UseVisualStyleBackColor = true; 244 | this.btn_AddUmodel.Click += new System.EventHandler(this.btn_AddUmodel_Click); 245 | // 246 | // lbl_UmodelChoose 247 | // 248 | this.lbl_UmodelChoose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 249 | this.lbl_UmodelChoose.AutoSize = true; 250 | this.lbl_UmodelChoose.Location = new System.Drawing.Point(485, 27); 251 | this.lbl_UmodelChoose.Name = "lbl_UmodelChoose"; 252 | this.lbl_UmodelChoose.Size = new System.Drawing.Size(83, 13); 253 | this.lbl_UmodelChoose.TabIndex = 0; 254 | this.lbl_UmodelChoose.Text = "Umodel version:"; 255 | // 256 | // panelMain 257 | // 258 | this.panelMain.BackColor = System.Drawing.Color.White; 259 | this.panelMain.Controls.Add(this.btn_OpenUHelp); 260 | this.panelMain.Controls.Add(this.lbl_CustomArgs2); 261 | this.panelMain.Controls.Add(this.lbl_CustomArgs); 262 | this.panelMain.Controls.Add(this.lbl_KeyBase64_2); 263 | this.panelMain.Controls.Add(this.lbl_KeyBase64); 264 | this.panelMain.Controls.Add(this.lbl_MainAESK2); 265 | this.panelMain.Controls.Add(this.lbl_MainUEV2); 266 | this.panelMain.Controls.Add(this.lbl_MainPAK2); 267 | this.panelMain.Controls.Add(this.lbl_GameVersion2); 268 | this.panelMain.Controls.Add(this.lbl_MainEXE2); 269 | this.panelMain.Controls.Add(this.lbl_GameVersion); 270 | this.panelMain.Controls.Add(this.btn_OpenEXEFolder); 271 | this.panelMain.Controls.Add(this.btn_OpenPAKFolder); 272 | this.panelMain.Controls.Add(this.panelBottom); 273 | this.panelMain.Controls.Add(this.pic_GameIcon); 274 | this.panelMain.Controls.Add(this.lbl_mainInfo); 275 | this.panelMain.Controls.Add(this.lbl_MainAESK1); 276 | this.panelMain.Controls.Add(this.lbl_MainUEV1); 277 | this.panelMain.Controls.Add(this.lbl_MainPAK1); 278 | this.panelMain.Controls.Add(this.lbl_MainEXE1); 279 | this.panelMain.Controls.Add(this.lbl_MainGameName); 280 | this.panelMain.Dock = System.Windows.Forms.DockStyle.Fill; 281 | this.panelMain.Location = new System.Drawing.Point(200, 65); 282 | this.panelMain.Name = "panelMain"; 283 | this.panelMain.Size = new System.Drawing.Size(744, 428); 284 | this.panelMain.TabIndex = 4; 285 | this.panelMain.Paint += new System.Windows.Forms.PaintEventHandler(this.panelMain_Paint); 286 | // 287 | // btn_OpenUHelp 288 | // 289 | this.btn_OpenUHelp.Location = new System.Drawing.Point(15, 269); 290 | this.btn_OpenUHelp.Name = "btn_OpenUHelp"; 291 | this.btn_OpenUHelp.Size = new System.Drawing.Size(75, 23); 292 | this.btn_OpenUHelp.TabIndex = 26; 293 | this.btn_OpenUHelp.Text = "Show help"; 294 | this.btn_OpenUHelp.UseVisualStyleBackColor = true; 295 | this.btn_OpenUHelp.Visible = false; 296 | this.btn_OpenUHelp.Click += new System.EventHandler(this.btn_OpenUHelp_Click); 297 | // 298 | // lbl_CustomArgs2 299 | // 300 | this.lbl_CustomArgs2.BackColor = System.Drawing.Color.White; 301 | this.lbl_CustomArgs2.BorderStyle = System.Windows.Forms.BorderStyle.None; 302 | this.lbl_CustomArgs2.Location = new System.Drawing.Point(99, 299); 303 | this.lbl_CustomArgs2.Name = "lbl_CustomArgs2"; 304 | this.lbl_CustomArgs2.ReadOnly = true; 305 | this.lbl_CustomArgs2.Size = new System.Drawing.Size(392, 13); 306 | this.lbl_CustomArgs2.TabIndex = 25; 307 | this.lbl_CustomArgs2.Text = "-png -aes=\"mypath\\file.txt\""; 308 | // 309 | // lbl_CustomArgs 310 | // 311 | this.lbl_CustomArgs.AutoSize = true; 312 | this.lbl_CustomArgs.BackColor = System.Drawing.Color.Transparent; 313 | this.lbl_CustomArgs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 314 | this.lbl_CustomArgs.Location = new System.Drawing.Point(96, 274); 315 | this.lbl_CustomArgs.Name = "lbl_CustomArgs"; 316 | this.lbl_CustomArgs.Size = new System.Drawing.Size(167, 13); 317 | this.lbl_CustomArgs.TabIndex = 24; 318 | this.lbl_CustomArgs.Text = "Custom arguments umodel * "; 319 | // 320 | // lbl_KeyBase64_2 321 | // 322 | this.lbl_KeyBase64_2.BackColor = System.Drawing.Color.White; 323 | this.lbl_KeyBase64_2.BorderStyle = System.Windows.Forms.BorderStyle.None; 324 | this.lbl_KeyBase64_2.Location = new System.Drawing.Point(259, 216); 325 | this.lbl_KeyBase64_2.Name = "lbl_KeyBase64_2"; 326 | this.lbl_KeyBase64_2.ReadOnly = true; 327 | this.lbl_KeyBase64_2.Size = new System.Drawing.Size(600, 13); 328 | this.lbl_KeyBase64_2.TabIndex = 23; 329 | this.lbl_KeyBase64_2.Text = "XXXXXXXXXXXXXXXXXX"; 330 | // 331 | // lbl_KeyBase64 332 | // 333 | this.lbl_KeyBase64.AutoSize = true; 334 | this.lbl_KeyBase64.BackColor = System.Drawing.Color.Transparent; 335 | this.lbl_KeyBase64.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 336 | this.lbl_KeyBase64.Location = new System.Drawing.Point(95, 216); 337 | this.lbl_KeyBase64.Name = "lbl_KeyBase64"; 338 | this.lbl_KeyBase64.Size = new System.Drawing.Size(114, 13); 339 | this.lbl_KeyBase64.TabIndex = 22; 340 | this.lbl_KeyBase64.Text = "AES Key (Base 64)"; 341 | // 342 | // lbl_MainAESK2 343 | // 344 | this.lbl_MainAESK2.BackColor = System.Drawing.Color.White; 345 | this.lbl_MainAESK2.BorderStyle = System.Windows.Forms.BorderStyle.None; 346 | this.lbl_MainAESK2.Location = new System.Drawing.Point(259, 181); 347 | this.lbl_MainAESK2.Name = "lbl_MainAESK2"; 348 | this.lbl_MainAESK2.ReadOnly = true; 349 | this.lbl_MainAESK2.Size = new System.Drawing.Size(600, 13); 350 | this.lbl_MainAESK2.TabIndex = 21; 351 | this.lbl_MainAESK2.Text = "0xXXXXXXXXXXXXXXXXXX"; 352 | // 353 | // lbl_MainUEV2 354 | // 355 | this.lbl_MainUEV2.BackColor = System.Drawing.Color.White; 356 | this.lbl_MainUEV2.BorderStyle = System.Windows.Forms.BorderStyle.None; 357 | this.lbl_MainUEV2.Location = new System.Drawing.Point(261, 144); 358 | this.lbl_MainUEV2.Name = "lbl_MainUEV2"; 359 | this.lbl_MainUEV2.ReadOnly = true; 360 | this.lbl_MainUEV2.Size = new System.Drawing.Size(400, 13); 361 | this.lbl_MainUEV2.TabIndex = 20; 362 | this.lbl_MainUEV2.Text = "4.XX"; 363 | // 364 | // lbl_MainPAK2 365 | // 366 | this.lbl_MainPAK2.BackColor = System.Drawing.Color.White; 367 | this.lbl_MainPAK2.BorderStyle = System.Windows.Forms.BorderStyle.None; 368 | this.lbl_MainPAK2.Location = new System.Drawing.Point(261, 109); 369 | this.lbl_MainPAK2.Name = "lbl_MainPAK2"; 370 | this.lbl_MainPAK2.ReadOnly = true; 371 | this.lbl_MainPAK2.Size = new System.Drawing.Size(600, 13); 372 | this.lbl_MainPAK2.TabIndex = 19; 373 | this.lbl_MainPAK2.Text = "path\\paks"; 374 | // 375 | // lbl_GameVersion2 376 | // 377 | this.lbl_GameVersion2.BackColor = System.Drawing.Color.White; 378 | this.lbl_GameVersion2.BorderStyle = System.Windows.Forms.BorderStyle.None; 379 | this.lbl_GameVersion2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 380 | this.lbl_GameVersion2.Location = new System.Drawing.Point(261, 83); 381 | this.lbl_GameVersion2.Name = "lbl_GameVersion2"; 382 | this.lbl_GameVersion2.ReadOnly = true; 383 | this.lbl_GameVersion2.Size = new System.Drawing.Size(400, 13); 384 | this.lbl_GameVersion2.TabIndex = 18; 385 | this.lbl_GameVersion2.Text = "2.2"; 386 | // 387 | // lbl_MainEXE2 388 | // 389 | this.lbl_MainEXE2.BackColor = System.Drawing.Color.White; 390 | this.lbl_MainEXE2.BorderStyle = System.Windows.Forms.BorderStyle.None; 391 | this.lbl_MainEXE2.Location = new System.Drawing.Point(259, 57); 392 | this.lbl_MainEXE2.Name = "lbl_MainEXE2"; 393 | this.lbl_MainEXE2.ReadOnly = true; 394 | this.lbl_MainEXE2.Size = new System.Drawing.Size(600, 13); 395 | this.lbl_MainEXE2.TabIndex = 17; 396 | this.lbl_MainEXE2.Text = "path\\game.exe"; 397 | // 398 | // lbl_GameVersion 399 | // 400 | this.lbl_GameVersion.AutoSize = true; 401 | this.lbl_GameVersion.BackColor = System.Drawing.Color.Transparent; 402 | this.lbl_GameVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 403 | this.lbl_GameVersion.Location = new System.Drawing.Point(96, 83); 404 | this.lbl_GameVersion.Name = "lbl_GameVersion"; 405 | this.lbl_GameVersion.Size = new System.Drawing.Size(97, 13); 406 | this.lbl_GameVersion.TabIndex = 15; 407 | this.lbl_GameVersion.Text = "Executable version"; 408 | // 409 | // btn_OpenEXEFolder 410 | // 411 | this.btn_OpenEXEFolder.Location = new System.Drawing.Point(15, 53); 412 | this.btn_OpenEXEFolder.Name = "btn_OpenEXEFolder"; 413 | this.btn_OpenEXEFolder.Size = new System.Drawing.Size(75, 23); 414 | this.btn_OpenEXEFolder.TabIndex = 14; 415 | this.btn_OpenEXEFolder.Text = "Open folder"; 416 | this.btn_OpenEXEFolder.UseVisualStyleBackColor = true; 417 | this.btn_OpenEXEFolder.Visible = false; 418 | this.btn_OpenEXEFolder.Click += new System.EventHandler(this.btn_OpenEXEFolder_Click); 419 | // 420 | // btn_OpenPAKFolder 421 | // 422 | this.btn_OpenPAKFolder.Location = new System.Drawing.Point(14, 104); 423 | this.btn_OpenPAKFolder.Name = "btn_OpenPAKFolder"; 424 | this.btn_OpenPAKFolder.Size = new System.Drawing.Size(75, 23); 425 | this.btn_OpenPAKFolder.TabIndex = 13; 426 | this.btn_OpenPAKFolder.Text = "Open folder"; 427 | this.btn_OpenPAKFolder.UseVisualStyleBackColor = true; 428 | this.btn_OpenPAKFolder.Visible = false; 429 | this.btn_OpenPAKFolder.Click += new System.EventHandler(this.btn_OpenPAKFolder_Click); 430 | // 431 | // panelBottom 432 | // 433 | this.panelBottom.BackColor = System.Drawing.Color.White; 434 | this.panelBottom.Controls.Add(this.btn_OpenUmodel); 435 | this.panelBottom.Controls.Add(this.btn_DuplicateGame); 436 | this.panelBottom.Controls.Add(this.btn_DeleteGame); 437 | this.panelBottom.Controls.Add(this.btn_EditGame); 438 | this.panelBottom.Controls.Add(this.btn_RunUmodel); 439 | this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom; 440 | this.panelBottom.Location = new System.Drawing.Point(0, 373); 441 | this.panelBottom.Name = "panelBottom"; 442 | this.panelBottom.Size = new System.Drawing.Size(744, 55); 443 | this.panelBottom.TabIndex = 0; 444 | // 445 | // btn_OpenUmodel 446 | // 447 | this.btn_OpenUmodel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); 448 | this.btn_OpenUmodel.BackColor = System.Drawing.Color.Transparent; 449 | this.btn_OpenUmodel.Enabled = false; 450 | this.btn_OpenUmodel.Location = new System.Drawing.Point(502, 13); 451 | this.btn_OpenUmodel.Name = "btn_OpenUmodel"; 452 | this.btn_OpenUmodel.Size = new System.Drawing.Size(86, 30); 453 | this.btn_OpenUmodel.TabIndex = 4; 454 | this.btn_OpenUmodel.Text = "Open Umodel"; 455 | this.btn_OpenUmodel.UseVisualStyleBackColor = false; 456 | this.btn_OpenUmodel.Click += new System.EventHandler(this.btn_OpenUmodel_Click_1); 457 | // 458 | // btn_DuplicateGame 459 | // 460 | this.btn_DuplicateGame.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); 461 | this.btn_DuplicateGame.BackColor = System.Drawing.Color.Transparent; 462 | this.btn_DuplicateGame.Enabled = false; 463 | this.btn_DuplicateGame.Location = new System.Drawing.Point(130, 13); 464 | this.btn_DuplicateGame.Name = "btn_DuplicateGame"; 465 | this.btn_DuplicateGame.Size = new System.Drawing.Size(110, 30); 466 | this.btn_DuplicateGame.TabIndex = 3; 467 | this.btn_DuplicateGame.Text = "Duplicate game"; 468 | this.btn_DuplicateGame.UseVisualStyleBackColor = false; 469 | this.btn_DuplicateGame.Click += new System.EventHandler(this.btn_DuplicateGame_Click); 470 | // 471 | // btn_DeleteGame 472 | // 473 | this.btn_DeleteGame.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); 474 | this.btn_DeleteGame.BackColor = System.Drawing.Color.Transparent; 475 | this.btn_DeleteGame.Enabled = false; 476 | this.btn_DeleteGame.Location = new System.Drawing.Point(14, 13); 477 | this.btn_DeleteGame.Name = "btn_DeleteGame"; 478 | this.btn_DeleteGame.Size = new System.Drawing.Size(110, 30); 479 | this.btn_DeleteGame.TabIndex = 2; 480 | this.btn_DeleteGame.Text = "Delete game data"; 481 | this.btn_DeleteGame.UseVisualStyleBackColor = false; 482 | this.btn_DeleteGame.Click += new System.EventHandler(this.btn_DeleteGame_Click); 483 | // 484 | // btn_EditGame 485 | // 486 | this.btn_EditGame.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); 487 | this.btn_EditGame.BackColor = System.Drawing.Color.Transparent; 488 | this.btn_EditGame.Enabled = false; 489 | this.btn_EditGame.Location = new System.Drawing.Point(246, 13); 490 | this.btn_EditGame.Name = "btn_EditGame"; 491 | this.btn_EditGame.Size = new System.Drawing.Size(110, 30); 492 | this.btn_EditGame.TabIndex = 1; 493 | this.btn_EditGame.Text = "Edit game data"; 494 | this.btn_EditGame.UseVisualStyleBackColor = false; 495 | this.btn_EditGame.Click += new System.EventHandler(this.btn_EditGame_Click); 496 | // 497 | // btn_RunUmodel 498 | // 499 | this.btn_RunUmodel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); 500 | this.btn_RunUmodel.BackColor = System.Drawing.Color.Transparent; 501 | this.btn_RunUmodel.Enabled = false; 502 | this.btn_RunUmodel.Location = new System.Drawing.Point(594, 13); 503 | this.btn_RunUmodel.Name = "btn_RunUmodel"; 504 | this.btn_RunUmodel.Size = new System.Drawing.Size(133, 30); 505 | this.btn_RunUmodel.TabIndex = 0; 506 | this.btn_RunUmodel.Text = "Run Umodel with game"; 507 | this.btn_RunUmodel.UseVisualStyleBackColor = false; 508 | this.btn_RunUmodel.Click += new System.EventHandler(this.btn_OpenUmodel_Click); 509 | // 510 | // pic_GameIcon 511 | // 512 | this.pic_GameIcon.Location = new System.Drawing.Point(54, 12); 513 | this.pic_GameIcon.Name = "pic_GameIcon"; 514 | this.pic_GameIcon.Size = new System.Drawing.Size(35, 35); 515 | this.pic_GameIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; 516 | this.pic_GameIcon.TabIndex = 12; 517 | this.pic_GameIcon.TabStop = false; 518 | // 519 | // lbl_mainInfo 520 | // 521 | this.lbl_mainInfo.AutoSize = true; 522 | this.lbl_mainInfo.BackColor = System.Drawing.Color.Transparent; 523 | this.lbl_mainInfo.Location = new System.Drawing.Point(96, 243); 524 | this.lbl_mainInfo.Name = "lbl_mainInfo"; 525 | this.lbl_mainInfo.Size = new System.Drawing.Size(308, 13); 526 | this.lbl_mainInfo.TabIndex = 11; 527 | this.lbl_mainInfo.Text = "(*) Marked variables will be used for umodel, write them correctly"; 528 | // 529 | // lbl_MainAESK1 530 | // 531 | this.lbl_MainAESK1.AutoSize = true; 532 | this.lbl_MainAESK1.BackColor = System.Drawing.Color.Transparent; 533 | this.lbl_MainAESK1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 534 | this.lbl_MainAESK1.Location = new System.Drawing.Point(95, 181); 535 | this.lbl_MainAESK1.Name = "lbl_MainAESK1"; 536 | this.lbl_MainAESK1.Size = new System.Drawing.Size(99, 13); 537 | this.lbl_MainAESK1.TabIndex = 9; 538 | this.lbl_MainAESK1.Text = "AES Key (Hex) *"; 539 | // 540 | // lbl_MainUEV1 541 | // 542 | this.lbl_MainUEV1.AutoSize = true; 543 | this.lbl_MainUEV1.BackColor = System.Drawing.Color.Transparent; 544 | this.lbl_MainUEV1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 545 | this.lbl_MainUEV1.Location = new System.Drawing.Point(95, 144); 546 | this.lbl_MainUEV1.Name = "lbl_MainUEV1"; 547 | this.lbl_MainUEV1.Size = new System.Drawing.Size(142, 13); 548 | this.lbl_MainUEV1.TabIndex = 7; 549 | this.lbl_MainUEV1.Text = "Unreal Engine Version *"; 550 | // 551 | // lbl_MainPAK1 552 | // 553 | this.lbl_MainPAK1.AutoSize = true; 554 | this.lbl_MainPAK1.BackColor = System.Drawing.Color.Transparent; 555 | this.lbl_MainPAK1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 556 | this.lbl_MainPAK1.Location = new System.Drawing.Point(95, 109); 557 | this.lbl_MainPAK1.Name = "lbl_MainPAK1"; 558 | this.lbl_MainPAK1.Size = new System.Drawing.Size(134, 13); 559 | this.lbl_MainPAK1.TabIndex = 5; 560 | this.lbl_MainPAK1.Text = "Folder with .pak files *"; 561 | // 562 | // lbl_MainEXE1 563 | // 564 | this.lbl_MainEXE1.AutoSize = true; 565 | this.lbl_MainEXE1.BackColor = System.Drawing.Color.Transparent; 566 | this.lbl_MainEXE1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 567 | this.lbl_MainEXE1.Location = new System.Drawing.Point(96, 57); 568 | this.lbl_MainEXE1.Name = "lbl_MainEXE1"; 569 | this.lbl_MainEXE1.Size = new System.Drawing.Size(96, 13); 570 | this.lbl_MainEXE1.TabIndex = 3; 571 | this.lbl_MainEXE1.Text = "Game .exe path"; 572 | this.lbl_MainEXE1.Click += new System.EventHandler(this.label1_Click); 573 | // 574 | // lbl_MainGameName 575 | // 576 | this.lbl_MainGameName.AutoSize = true; 577 | this.lbl_MainGameName.BackColor = System.Drawing.Color.Transparent; 578 | this.lbl_MainGameName.Font = new System.Drawing.Font("Microsoft Sans Serif", 20F); 579 | this.lbl_MainGameName.Location = new System.Drawing.Point(114, 12); 580 | this.lbl_MainGameName.Name = "lbl_MainGameName"; 581 | this.lbl_MainGameName.Size = new System.Drawing.Size(146, 31); 582 | this.lbl_MainGameName.TabIndex = 2; 583 | this.lbl_MainGameName.Text = "Game Title"; 584 | this.lbl_MainGameName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; 585 | // 586 | // Main 587 | // 588 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 589 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 590 | this.ClientSize = new System.Drawing.Size(944, 493); 591 | this.Controls.Add(this.panelMain); 592 | this.Controls.Add(this.panelMainTop); 593 | this.Controls.Add(this.panelLeft); 594 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 595 | this.Name = "Main"; 596 | this.Text = "UmodelHelper"; 597 | this.Load += new System.EventHandler(this.Form1_Load); 598 | this.panelLeft.ResumeLayout(false); 599 | this.panelLeftTop.ResumeLayout(false); 600 | this.panelLeftTop.PerformLayout(); 601 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); 602 | this.panelMainTop.ResumeLayout(false); 603 | this.panelMainTop.PerformLayout(); 604 | ((System.ComponentModel.ISupportInitialize)(this.pic_UModelInfo)).EndInit(); 605 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 606 | this.panelMain.ResumeLayout(false); 607 | this.panelMain.PerformLayout(); 608 | this.panelBottom.ResumeLayout(false); 609 | ((System.ComponentModel.ISupportInitialize)(this.pic_GameIcon)).EndInit(); 610 | this.ResumeLayout(false); 611 | 612 | } 613 | 614 | #endregion 615 | private System.Windows.Forms.Panel panelLeft; 616 | private System.Windows.Forms.Button btn_AddGame; 617 | private System.Windows.Forms.Panel panelLeftTop; 618 | private System.Windows.Forms.Panel panelMainTop; 619 | private System.Windows.Forms.Panel panelMain; 620 | private System.Windows.Forms.ListBox lst_Games; 621 | private System.Windows.Forms.Panel panelBottom; 622 | private System.Windows.Forms.Button btn_RunUmodel; 623 | private System.Windows.Forms.Button btn_EditGame; 624 | private System.Windows.Forms.Label lbl_MainGameName; 625 | private System.Windows.Forms.Label lbl_MainEXE1; 626 | private System.Windows.Forms.Label lbl_MainPAK1; 627 | private System.Windows.Forms.Label lbl_MainAESK1; 628 | private System.Windows.Forms.Label lbl_MainUEV1; 629 | private System.Windows.Forms.ComboBox desplegable_Umodel; 630 | private System.Windows.Forms.Button btn_AddUmodel; 631 | private System.Windows.Forms.Label lbl_UmodelChoose; 632 | private System.Windows.Forms.Button btn_UmodelEdit; 633 | private System.Windows.Forms.Button btn_DuplicateGame; 634 | private System.Windows.Forms.Button btn_DeleteGame; 635 | private System.Windows.Forms.Label lbl_mainInfo; 636 | private System.Windows.Forms.PictureBox pictureBox1; 637 | private System.Windows.Forms.PictureBox pic_GameIcon; 638 | private System.Windows.Forms.Button btn_OpenEXEFolder; 639 | private System.Windows.Forms.Button btn_OpenPAKFolder; 640 | private System.Windows.Forms.Label lbl_GameVersion; 641 | private System.Windows.Forms.Button btn_DeleteUmodel; 642 | private System.Windows.Forms.TextBox lbl_MainEXE2; 643 | private System.Windows.Forms.TextBox lbl_GameVersion2; 644 | private System.Windows.Forms.TextBox lbl_MainAESK2; 645 | private System.Windows.Forms.TextBox lbl_MainUEV2; 646 | private System.Windows.Forms.TextBox lbl_MainPAK2; 647 | private System.Windows.Forms.PictureBox pic_UModelInfo; 648 | private System.Windows.Forms.Button btn_OpenUmodel; 649 | private System.Windows.Forms.PictureBox pictureBox2; 650 | private System.Windows.Forms.LinkLabel link_UMHHelp; 651 | private System.Windows.Forms.Label lbl_UMHelperVersion; 652 | private System.Windows.Forms.Label lbl_KeyBase64; 653 | private System.Windows.Forms.TextBox lbl_KeyBase64_2; 654 | private System.Windows.Forms.TextBox lbl_CustomArgs2; 655 | private System.Windows.Forms.Label lbl_CustomArgs; 656 | private System.Windows.Forms.Button btn_OpenUHelp; 657 | } 658 | } 659 | 660 | --------------------------------------------------------------------------------