From 4758f3fe84beb4de586fb4e4aebc9c9a56140bd2 Mon Sep 17 00:00:00 2001 From: Porog SSJ Date: Sun, 16 Oct 2022 20:50:50 -0400 Subject: [PATCH] v3.1.1 release --- .../PortableTerrariaCommon/SplitOutStream.cs | 14 ++++++++++++-- .../PortableTerrariaLauncherCreator.cs | 9 ++++++++- .../Properties/AssemblyInfo.cs | 4 ++-- .../Properties/AssemblyInfo.cs | 4 ++-- .../Sahlaysta.PortableTerrariaLauncher.exe | Bin 666624 -> 666624 bytes 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/PortableTerrariaCommon/PortableTerrariaCommon/SplitOutStream.cs b/PortableTerrariaCommon/PortableTerrariaCommon/SplitOutStream.cs index 7acfc44..cc6c4f5 100644 --- a/PortableTerrariaCommon/PortableTerrariaCommon/SplitOutStream.cs +++ b/PortableTerrariaCommon/PortableTerrariaCommon/SplitOutStream.cs @@ -88,6 +88,7 @@ public override void Write(byte[] buffer, int offset, int count) readonly InputStream inputStream; readonly OutputStream outputStream; readonly Action writeDataToStream; + readonly Action onError; readonly int splitSize; volatile byte[] buffer; volatile int offset; @@ -100,10 +101,12 @@ public override void Write(byte[] buffer, int offset, int count) //constructor public SplitOutStream( - Action writeDataToStream, int splitSize) + Action writeDataToStream, int splitSize, + Action onError) { this.writeDataToStream = writeDataToStream; this.splitSize = splitSize; + this.onError = onError; inputStream = new InputStream(this); outputStream = new OutputStream(this); init(); @@ -120,7 +123,14 @@ void init() Task.Run(() => { //multithreaded write stream data - writeDataToStream(outputStream); + try + { + writeDataToStream(outputStream); + } + catch (Exception e) + { + onError(e); + } ended = true; lock (objLock) { diff --git a/PortableTerrariaCreator/PortableTerrariaCreator/PortableTerrariaLauncherCreator.cs b/PortableTerrariaCreator/PortableTerrariaCreator/PortableTerrariaLauncherCreator.cs index fdc61d8..82765e5 100644 --- a/PortableTerrariaCreator/PortableTerrariaCreator/PortableTerrariaLauncherCreator.cs +++ b/PortableTerrariaCreator/PortableTerrariaCreator/PortableTerrariaLauncherCreator.cs @@ -97,6 +97,7 @@ protected override void run() void createPTL(Stream stream) { //edit exe embedded resources + Exception err = null; using (var exe = GuiHelper.GetResourceStream( "Sahlaysta.PortableTerrariaLauncher.exe")) using (var ad = MonoCecilAssembly @@ -160,7 +161,11 @@ void writeDataToStream(Stream s) { zipTerraria(s); } - var sos = new SplitOutStream(writeDataToStream, splitSize); + void onError(Exception e) + { + err = e; + } + var sos = new SplitOutStream(writeDataToStream, splitSize, onError); for (long i = 0; i < splitCount; i++) { string name = namep + "terraria.zip." + (i + 1).ToString(format); @@ -194,6 +199,8 @@ void writeDataToStream(Stream s) //write .exe ad.Write(stream); } + if (err != null) + throw err; } void zipTerraria(Stream stream) { diff --git a/PortableTerrariaCreator/PortableTerrariaCreator/Properties/AssemblyInfo.cs b/PortableTerrariaCreator/PortableTerrariaCreator/Properties/AssemblyInfo.cs index 90c4d19..4f53546 100644 --- a/PortableTerrariaCreator/PortableTerrariaCreator/Properties/AssemblyInfo.cs +++ b/PortableTerrariaCreator/PortableTerrariaCreator/Properties/AssemblyInfo.cs @@ -33,6 +33,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.1.0.0")] -[assembly: AssemblyFileVersion("3.1.0.0")] +[assembly: AssemblyVersion("3.1.1.0")] +[assembly: AssemblyFileVersion("3.1.1.0")] [assembly: NeutralResourcesLanguage("")] diff --git a/PortableTerrariaLauncher/PortableTerrariaLauncher/Properties/AssemblyInfo.cs b/PortableTerrariaLauncher/PortableTerrariaLauncher/Properties/AssemblyInfo.cs index aa6bc89..6df3d54 100644 --- a/PortableTerrariaLauncher/PortableTerrariaLauncher/Properties/AssemblyInfo.cs +++ b/PortableTerrariaLauncher/PortableTerrariaLauncher/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.1.0.0")] -[assembly: AssemblyFileVersion("3.1.0.0")] +[assembly: AssemblyVersion("3.1.1.0")] +[assembly: AssemblyFileVersion("3.1.1.0")] diff --git a/PortableTerrariaLauncher/PortableTerrariaLauncher/bin/Release/Sahlaysta.PortableTerrariaLauncher.exe b/PortableTerrariaLauncher/PortableTerrariaLauncher/bin/Release/Sahlaysta.PortableTerrariaLauncher.exe index b1180aa8ed6bd20e83dc39126b95d4b8e24b30c5..70674797c45c10249bae0fecef8a137f697edb6b 100644 GIT binary patch delta 17643 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 delta 17365 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