diff --git a/SMBX Magic Patcher/App.config b/SMBX Magic Patcher/App.config index 2ae8254..1729194 100644 --- a/SMBX Magic Patcher/App.config +++ b/SMBX Magic Patcher/App.config @@ -1,6 +1,6 @@ - + - + - \ No newline at end of file + diff --git a/SMBX Magic Patcher/Form1.Designer.vb b/SMBX Magic Patcher/Form1.Designer.vb index 7602a3c..d8382d8 100644 --- a/SMBX Magic Patcher/Form1.Designer.vb +++ b/SMBX Magic Patcher/Form1.Designer.vb @@ -311,8 +311,6 @@ Partial Class Form1 Me.SwitchButton_Liquids.Size = New System.Drawing.Size(57, 23) Me.SwitchButton_Liquids.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled Me.SwitchButton_Liquids.TabIndex = 49 - Me.SwitchButton_Liquids.Value = True - Me.SwitchButton_Liquids.ValueObject = "Y" ' 'LabelX8 ' @@ -468,8 +466,6 @@ Partial Class Form1 Me.SwitchButton_BlocksEtc.Size = New System.Drawing.Size(57, 23) Me.SwitchButton_BlocksEtc.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled Me.SwitchButton_BlocksEtc.TabIndex = 34 - Me.SwitchButton_BlocksEtc.Value = True - Me.SwitchButton_BlocksEtc.ValueObject = "Y" ' 'LabelX9 ' diff --git a/SMBX Magic Patcher/Form1.vb b/SMBX Magic Patcher/Form1.vb index d36352e..33786f2 100644 --- a/SMBX Magic Patcher/Form1.vb +++ b/SMBX Magic Patcher/Form1.vb @@ -74,7 +74,8 @@ Public Class Form1 SwitchButton_Liquids.Value) Case 1 : MessageBoxEx.Show("Done", "Patch succesfully created!", MessageBoxButtons.OK, MessageBoxIcon.Information) - Case Else : MessageBoxEx.Show("Done", "Patch succesfully created!", MessageBoxButtons.OK, MessageBoxIcon.Information) + Case 2 : MessageBoxEx.Show("Done", "There is an error at packing!", MessageBoxButtons.OK, MessageBoxIcon.Error) + Case Else : MessageBoxEx.Show("Done", "There is an unknown error!", MessageBoxButtons.OK, MessageBoxIcon.Error) End Select Button_CreatePatch.Enabled = True @@ -83,7 +84,20 @@ Public Class Form1 End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button_ApplyPatch.Click - SMBXPFX.ApplyPatch(TextBoxX_OriginalLevelApply.Text, TextBoxX_PatchFileApply.Text) + CircularProgress_Apply.IsRunning = True + LabelX14.Enabled = True + Button_ApplyPatch.Enabled = True + + Select Case SMBXPFX.ApplyPatch(TextBoxX_OriginalLevelApply.Text, TextBoxX_PatchFileApply.Text) + Case 1 : MessageBoxEx.Show("Done", "Patch applied succesfully!", MessageBoxButtons.OK, MessageBoxIcon.Information) + Case 2 : MessageBoxEx.Show("Done", "There is an error at extracting files! Or maybe this isn't a valid patch file.", MessageBoxButtons.OK, MessageBoxIcon.Error) + Case 3 : MessageBoxEx.Show("Done", "This isn't a valid patch file.", MessageBoxButtons.OK, MessageBoxIcon.Error) + Case Else : MessageBoxEx.Show("Done", "There is an unknown error!", MessageBoxButtons.OK, MessageBoxIcon.Error) + End Select + + LabelX14.Enabled = False + CircularProgress_Apply.IsRunning = False + Button_ApplyPatch.Enabled = False End Sub Private Sub CheckBoxX2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBoxX2.CheckedChanged @@ -190,16 +204,17 @@ SkipCheck: End If Return 2 'Error at packing End If + Directory.Delete(TempLeveldir, True) Return 1 End Function Shared Function ApplyPatch(OriginalLevel As String, PatchFile As String) As Integer Dim PatchTyp As Integer = 0 '0 = plx | 1 = slp Dim PLevel As List(Of String) = File.ReadAllLines(OriginalLevel).ToList - Dim TempLeveldir As String = Form1.TempDir & "\TempLevel" - Dim TempLevelfiledir As String = TempLeveldir & "\data" - If Directory.Exists(TempLeveldir) Then Directory.Delete(TempLeveldir, True) - Directory.CreateDirectory(TempLeveldir) + Dim TempLeveldir As String = Form1.TempDir & "\TempLevel" : Dim TempLevelfiledir As String = TempLeveldir & "\data" + Dim oLeveldir As String = Path.GetDirectoryName(OriginalLevel) : Dim oLevelfiledir As String = oLeveldir & "\" & Path.GetFileNameWithoutExtension(OriginalLevel) + If Directory.Exists(TempLeveldir) Then Directory.Delete(TempLeveldir, True) : Application.DoEvents() + Directory.CreateDirectory(TempLeveldir) : Application.DoEvents() 'Check Patchtyp: Select Case Path.GetExtension(PatchFile) @@ -220,7 +235,6 @@ SkipCheck: End If sevenzip.StartInfo.UseShellExecute = False sevenzip.StartInfo.CreateNoWindow = True sevenzip.Start() - Do Until sevenzip.HasExited = True : Application.DoEvents() : Loop If sevenzip.ExitCode <> 0 Then Return 2 'Error at packing @@ -228,7 +242,7 @@ SkipCheck: End If End If 'Load patchlevel: - Dim PFile() As String = {""} + Dim PFile() As String = {} Select Case PatchTyp Case 0 : PFile = File.ReadAllLines(TempLeveldir & "\data.dat") Case 1 : PFile = File.ReadAllLines(PatchFile) @@ -236,15 +250,21 @@ SkipCheck: End If 'Apply lines in patch to the level: For Each l As String In PFile - If Not PLevel.Contains(l) Then - PLevel.Add(l) - End If + If Not PLevel.Contains(l) Then PLevel.Add(l) Next 'Copy and replace files If PatchTyp = 0 Then - Dim ListFilesInLeveldir() As String = Directory.GetFileSystemEntries(TempLeveldir) - + Dim pListFilesInLeveldir() As String = Directory.GetFiles(TempLeveldir) : Dim pListFilesInLevelfiledir() As String = {} : If Directory.Exists(TempLevelfiledir) Then pListFilesInLevelfiledir = Directory.GetFiles(TempLevelfiledir) + Dim oListFilesInLeveldir() As String = Directory.GetFiles(oLeveldir) : Dim oListFilesInLevelfiledir() As String = {} : If Directory.Exists(oLevelfiledir) Then oListFilesInLevelfiledir = Directory.GetFiles(oLevelfiledir) + If Not Directory.Exists(oLevelfiledir) And oListFilesInLevelfiledir.Count > 0 Then Directory.CreateDirectory(oLevelfiledir) + For i As Integer = 0 To pListFilesInLeveldir.Count - 1 + If Not pListFilesInLeveldir(i) = TempLeveldir & "\data.dat" Then + File.Copy(pListFilesInLeveldir(i), oLeveldir & "\" & Path.GetFileName(pListFilesInLeveldir(i)), True) : MsgBox("") : End If + Application.DoEvents() : Next + For i As Integer = 0 To pListFilesInLevelfiledir.Count - 1 + File.Copy(pListFilesInLevelfiledir(i), oLevelfiledir & "\" & Path.GetFileName(pListFilesInLevelfiledir(i)), True) + Application.DoEvents() : Next End If 'Wirte new level file diff --git a/SMBX Magic Patcher/My Project/Application.Designer.vb b/SMBX Magic Patcher/My Project/Application.Designer.vb index f0cef7c..32e63b5 100644 --- a/SMBX Magic Patcher/My Project/Application.Designer.vb +++ b/SMBX Magic Patcher/My Project/Application.Designer.vb @@ -1,10 +1,10 @@ '------------------------------------------------------------------------------ ' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 ' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. ' '------------------------------------------------------------------------------ @@ -13,15 +13,15 @@ Option Explicit On Namespace My - - 'NOTE: This file is auto-generated; do not modify it directly. To make changes, - ' or if you encounter build errors in this file, go to the Project Designer - ' (go to Project Properties or double-click the My Project node in - ' Solution Explorer), and make changes on the Application tab. + + 'HINWEIS: Diese Datei wird automatisch generiert und darf nicht direkt bearbeitet werden. Wenn Sie Änderungen vornehmen möchten, + ' oder bei in dieser Datei auftretenden Buildfehlern wechseln Sie zum Projekt-Designer. + ' (Wechseln Sie dazu zu den Projekteigenschaften, oder doppelklicken Sie auf den Knoten "Mein Projekt" im + ' Projektmappen-Explorer). Nehmen Sie auf der Registerkarte "Anwendung" entsprechende Änderungen vor. ' Partial Friend Class MyApplication - - _ + + _ Public Sub New() MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) Me.IsSingleInstance = false @@ -29,8 +29,8 @@ Namespace My Me.SaveMySettingsOnExit = true Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses End Sub - - _ + + _ Protected Overrides Sub OnCreateMainForm() Me.MainForm = Global.SMBX_Magic_Patcher.Form1 End Sub diff --git a/SMBX Magic Patcher/My Project/Resources.Designer.vb b/SMBX Magic Patcher/My Project/Resources.Designer.vb index 82fba5f..8f1889f 100644 --- a/SMBX Magic Patcher/My Project/Resources.Designer.vb +++ b/SMBX Magic Patcher/My Project/Resources.Designer.vb @@ -1,40 +1,41 @@ '------------------------------------------------------------------------------ ' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 ' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. ' '------------------------------------------------------------------------------ Option Strict On Option Explicit On +Imports System Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. + + 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. ''' - _ + _ Friend Module Resources - + Private resourceMan As Global.System.Resources.ResourceManager - + Private resourceCulture As Global.System.Globalization.CultureInfo - + ''' - ''' Returns the cached ResourceManager instance used by this class. + ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. ''' - _ + _ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager Get If Object.ReferenceEquals(resourceMan, Nothing) Then @@ -44,17 +45,17 @@ Namespace My.Resources Return resourceMan End Get End Property - + ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. + ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. ''' - _ + _ Friend Property Culture() As Global.System.Globalization.CultureInfo Get Return resourceCulture End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) + Set resourceCulture = value End Set End Property diff --git a/SMBX Magic Patcher/My Project/Settings.Designer.vb b/SMBX Magic Patcher/My Project/Settings.Designer.vb index 5eb0927..9b3bd52 100644 --- a/SMBX Magic Patcher/My Project/Settings.Designer.vb +++ b/SMBX Magic Patcher/My Project/Settings.Designer.vb @@ -1,10 +1,10 @@ '------------------------------------------------------------------------------ ' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.42000 ' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. ' '------------------------------------------------------------------------------ @@ -13,42 +13,42 @@ Option Explicit On Namespace My - - _ + + _ Partial Friend NotInheritable Class MySettings Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) - -#Region "My.Settings Auto-Save Functionality" + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "Funktion zum automatischen Speichern von My.Settings" #If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean + Private Shared addedHandler As Boolean - Private Shared addedHandlerLockObject As New Object + Private Shared addedHandlerLockObject As New Object - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub #End If #End Region - + Public Shared ReadOnly Property [Default]() As MySettings Get - + #If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If #End If Return defaultInstance End Get @@ -57,13 +57,13 @@ Namespace My End Namespace Namespace My - - _ + + _ Friend Module MySettingsProperty - - _ + + _ Friend ReadOnly Property Settings() As Global.SMBX_Magic_Patcher.My.MySettings Get Return Global.SMBX_Magic_Patcher.My.MySettings.Default diff --git a/SMBX Magic Patcher/SMBX Magic Patcher.vbproj b/SMBX Magic Patcher/SMBX Magic Patcher.vbproj index 8706de7..1b76d4f 100644 --- a/SMBX Magic Patcher/SMBX Magic Patcher.vbproj +++ b/SMBX Magic Patcher/SMBX Magic Patcher.vbproj @@ -11,8 +11,9 @@ SMBX Magic Patcher 512 WindowsForms - v4.5.2 + v4.5 true + AnyCPU