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