├── 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 |
--------------------------------------------------------------------------------