diff --git a/CI.cmd b/CI.cmd
index 29d87db..aef668e 100644
--- a/CI.cmd
+++ b/CI.cmd
@@ -10,6 +10,8 @@
"%MSBUILD%" -t:Build -p:Configuration=Release,Platform=x64 Igniter\Igniter.csproj
Robocopy Igniter\bin\x64\Release Qwilight\Assets\x64 Igniter.exe
+"%MSBUILD%" -t:Build -p:Configuration=Release,Platform=ARM64 Igniter\Igniter.csproj
+Robocopy Igniter\bin\ARM64\Release Qwilight\Assets\ARM64 Igniter.exe
"%MSBUILD%" -t:Build -p:Configuration=Release,Platform=x64 NVIDIA\NVIDIA.vcxproj
Robocopy NVIDIA\x64\Release Qwilight\Assets\x64 NVIDIA.dll
diff --git a/FMODCoreAPI/Assets/ARM64/fmod.dll b/FMODCoreAPI/Assets/ARM64/fmod.dll
new file mode 100644
index 0000000..bf5ab72
--- /dev/null
+++ b/FMODCoreAPI/Assets/ARM64/fmod.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b8eb9efe9a638343814ff0f545fb9baa50ef055582cfb2a6d2e2d6ab36016c7f
+size 1419264
diff --git a/FMODCoreAPI/Assets/x64/fmod.dll b/FMODCoreAPI/Assets/x64/fmod.dll
index cd047aa..290f57a 100644
--- a/FMODCoreAPI/Assets/x64/fmod.dll
+++ b/FMODCoreAPI/Assets/x64/fmod.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:74c82920da14ea8a84491d49d6aa80831e1910fefbb5308dc823af21b9587db2
+oid sha256:205cf4342eb47eb9b5905242b1a5d17fd51a1621bb011782e67b39804db24247
size 1851904
diff --git a/FMODCoreAPI/FMODCoreAPI.csproj b/FMODCoreAPI/FMODCoreAPI.csproj
index d4141c4..7bb7c7c 100644
--- a/FMODCoreAPI/FMODCoreAPI.csproj
+++ b/FMODCoreAPI/FMODCoreAPI.csproj
@@ -10,4 +10,10 @@
Always
+
+
+
+ Always
+
+
diff --git a/FMODCoreAPI/fmod.cs b/FMODCoreAPI/fmod.cs
index 78302c6..5b88ec1 100644
--- a/FMODCoreAPI/fmod.cs
+++ b/FMODCoreAPI/fmod.cs
@@ -1,6 +1,6 @@
/* ======================================================================================== */
/* FMOD Core API - C# wrapper. */
-/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2023. */
+/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2024. */
/* */
/* For more detail visit: */
/* https://fmod.com/docs/2.02/api/core-api.html */
@@ -19,7 +19,7 @@
*/
public partial class VERSION
{
- public const int number = 0x00020220;
+ public const int number = 0x00020221;
#if !UNITY_2019_4_OR_NEWER
public const string dll = "fmod";
#endif
diff --git a/FMODCoreAPI/fmod_dsp.cs b/FMODCoreAPI/fmod_dsp.cs
index 537fe5c..804f97f 100644
--- a/FMODCoreAPI/fmod_dsp.cs
+++ b/FMODCoreAPI/fmod_dsp.cs
@@ -1,6 +1,6 @@
/* ======================================================================================== */
/* FMOD Core API - DSP header file. */
-/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2023. */
+/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2024. */
/* */
/* Use this header if you are wanting to develop your own DSP plugin to use with FMODs */
/* dsp system. With this header you can make your own DSP plugin that FMOD can */
diff --git a/FMODCoreAPI/fmod_errors.cs b/FMODCoreAPI/fmod_errors.cs
index f86fb95..5276112 100644
--- a/FMODCoreAPI/fmod_errors.cs
+++ b/FMODCoreAPI/fmod_errors.cs
@@ -1,6 +1,6 @@
/* ============================================================================================== */
/* FMOD Core / Studio API - Error string header file. */
-/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2023. */
+/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2024. */
/* */
/* Use this header if you want to store or display a string version / english explanation */
/* of the FMOD error codes. */
diff --git a/Igniter/Igniter.csproj b/Igniter/Igniter.csproj
index 3615967..33b013d 100644
--- a/Igniter/Igniter.csproj
+++ b/Igniter/Igniter.csproj
@@ -138,6 +138,7 @@
ResXFileCodeGenerator
Resources.Designer.cs
+ Designer
diff --git a/Protobuf/Protobuf.csproj b/Protobuf/Protobuf.csproj
index cc1fa2f..9a3419d 100644
--- a/Protobuf/Protobuf.csproj
+++ b/Protobuf/Protobuf.csproj
@@ -6,6 +6,6 @@
-
+
diff --git a/Protobuf/protoc.exe b/Protobuf/protoc.exe
index 36ff0b8..23a26a7 100644
--- a/Protobuf/protoc.exe
+++ b/Protobuf/protoc.exe
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c3739364aba9b9a89bbbc6133d4d6f27b9e1f9ce0082c76d76433c0d339cc1ee
-size 11554025
+oid sha256:7a356b5c7a45b76252d2fc83015a1fca0a29537eccc358a13a17302c8d275034
+size 11783121
diff --git a/Qwilight.cmd b/Qwilight.cmd
index 0e19a26..ffd0f62 100644
--- a/Qwilight.cmd
+++ b/Qwilight.cmd
@@ -6,7 +6,9 @@
SET MSBUILD=%VS2022%\Msbuild\Current\Bin\MSBuild.exe
SET BANDIZIP=%PROGRAMFILES%\Bandizip\bz.exe
SET WINX64=bin\x64\Release\net8.0-windows10.0.22621.0\win-x64
-SET PUBLISH=Qwilight\%WINX64%\publish
+SET WINARM64=bin\ARM64\Release\net8.0-windows10.0.22621.0\win-arm64
+SET WINX64PUBLISH=Qwilight\%WINX64%\publish
+SET WINARM64PUBLISH=Qwilight\%WINARM64%\publish
DEL Qwilight.zip
@@ -29,11 +31,11 @@
)
)
-RMDIR /S /Q %PUBLISH%
+RMDIR /S /Q %WINX64PUBLISH%
dotnet publish Qwilight\Qwilight.csproj -c Release -p:Platform=x64
-"%BANDIZIP%" c -storeroot:no Qwilight.zip %PUBLISH%
+"%BANDIZIP%" c -storeroot:no Qwilight.zip %WINX64PUBLISH%
-powershell $(CertUtil -hashfile %PUBLISH%\Qwilight.dll SHA512)[1] > Qwilight.dll.sha512sum
+powershell $(CertUtil -hashfile %WINX64PUBLISH%\Qwilight.dll SHA512)[1] > Qwilight.dll.sha512sum
SET /P BUILD= < Qwilight.dll.sha512sum
DEL Qwilight.dll.sha512sum
diff --git a/Qwilight.sln b/Qwilight.sln
index eb41704..531f7df 100644
--- a/Qwilight.sln
+++ b/Qwilight.sln
@@ -81,11 +81,9 @@
{F2BA185C-449D-4CC6-81AB-6F6D54F90FD7}.Release|x64.ActiveCfg = Release|x64
{F2BA185C-449D-4CC6-81AB-6F6D54F90FD7}.Release|x64.Build.0 = Release|x64
{F4391BFA-AC83-4BDC-A552-F6CE1AAF5014}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {F4391BFA-AC83-4BDC-A552-F6CE1AAF5014}.Debug|ARM64.Build.0 = Debug|ARM64
{F4391BFA-AC83-4BDC-A552-F6CE1AAF5014}.Debug|x64.ActiveCfg = Debug|x64
{F4391BFA-AC83-4BDC-A552-F6CE1AAF5014}.Debug|x64.Build.0 = Debug|x64
{F4391BFA-AC83-4BDC-A552-F6CE1AAF5014}.Release|ARM64.ActiveCfg = Release|ARM64
- {F4391BFA-AC83-4BDC-A552-F6CE1AAF5014}.Release|ARM64.Build.0 = Release|ARM64
{F4391BFA-AC83-4BDC-A552-F6CE1AAF5014}.Release|x64.ActiveCfg = Release|x64
{F4391BFA-AC83-4BDC-A552-F6CE1AAF5014}.Release|x64.Build.0 = Release|x64
{448E8FC9-B6AC-4309-A315-D6CB9B464843}.Debug|ARM64.ActiveCfg = Debug|ARM64
@@ -105,19 +103,15 @@
{9E9B7E8A-2617-4CCE-8431-34B97550E75B}.Release|x64.ActiveCfg = Release|x64
{9E9B7E8A-2617-4CCE-8431-34B97550E75B}.Release|x64.Build.0 = Release|x64
{DB5E7D3B-3BAC-4AD8-B434-B20BDEDDEF6E}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {DB5E7D3B-3BAC-4AD8-B434-B20BDEDDEF6E}.Debug|ARM64.Build.0 = Debug|ARM64
{DB5E7D3B-3BAC-4AD8-B434-B20BDEDDEF6E}.Debug|x64.ActiveCfg = Debug|x64
{DB5E7D3B-3BAC-4AD8-B434-B20BDEDDEF6E}.Debug|x64.Build.0 = Debug|x64
{DB5E7D3B-3BAC-4AD8-B434-B20BDEDDEF6E}.Release|ARM64.ActiveCfg = Release|ARM64
- {DB5E7D3B-3BAC-4AD8-B434-B20BDEDDEF6E}.Release|ARM64.Build.0 = Release|ARM64
{DB5E7D3B-3BAC-4AD8-B434-B20BDEDDEF6E}.Release|x64.ActiveCfg = Release|x64
{DB5E7D3B-3BAC-4AD8-B434-B20BDEDDEF6E}.Release|x64.Build.0 = Release|x64
{BBC3B632-3A18-4A09-B203-C1026F347DAB}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {BBC3B632-3A18-4A09-B203-C1026F347DAB}.Debug|ARM64.Build.0 = Debug|ARM64
{BBC3B632-3A18-4A09-B203-C1026F347DAB}.Debug|x64.ActiveCfg = Debug|x64
{BBC3B632-3A18-4A09-B203-C1026F347DAB}.Debug|x64.Build.0 = Debug|x64
{BBC3B632-3A18-4A09-B203-C1026F347DAB}.Release|ARM64.ActiveCfg = Release|ARM64
- {BBC3B632-3A18-4A09-B203-C1026F347DAB}.Release|ARM64.Build.0 = Release|ARM64
{BBC3B632-3A18-4A09-B203-C1026F347DAB}.Release|x64.ActiveCfg = Release|x64
{BBC3B632-3A18-4A09-B203-C1026F347DAB}.Release|x64.Build.0 = Release|x64
{99FA193F-D634-4706-AC10-D22722B45166}.Debug|ARM64.ActiveCfg = Debug|ARM64
diff --git a/Qwilight/Assets/UI/@Default/@Default.yaml b/Qwilight/Assets/UI/@Default/@Default.yaml
index b0eed19..b62eabe 100644
--- a/Qwilight/Assets/UI/@Default/@Default.yaml
+++ b/Qwilight/Assets/UI/@Default/@Default.yaml
@@ -126,8 +126,9 @@
stopAuto: CommentViewLength(-12), InputNoteCountViewPosition1(5), 24, 24, 1, 1, 0
saltAuto: CommentViewLength(-12), InputNoteCountViewPosition1(39), 24, 24, 1, 1, 0
-
+
handledWallLength: 8
+ handledWallCommentLength: 8
entryItemHeight: 48
commentItemHeight: 48
diff --git a/Qwilight/JSON.cs b/Qwilight/JSON.cs
index 8a8ff59..f086be2 100644
--- a/Qwilight/JSON.cs
+++ b/Qwilight/JSON.cs
@@ -154,7 +154,6 @@
{
public bool? favor;
public int totalFavor;
- public BaseNoteFile.Handled? handled;
public Comment[] comments;
public int commentPlace;
public int totalComments;
@@ -176,6 +175,7 @@
public ModeComponent.InputFavorMode inputFavorMode;
public ModeComponent.NoteModifyMode noteModifyMode;
public ModeComponent.LowestJudgmentConditionMode lowestJudgmentConditionMode;
+ public BaseNoteFile.Handled handled;
public int stand;
public int band;
public bool isP;
diff --git a/Qwilight/Qwilight.csproj b/Qwilight/Qwilight.csproj
index b8e0e58..9352e5b 100644
--- a/Qwilight/Qwilight.csproj
+++ b/Qwilight/Qwilight.csproj
@@ -53,15 +53,18 @@
-
-
-
+
+
+
+
+
+
diff --git a/Qwilight/System/BaseUI/BaseUI.cs b/Qwilight/System/BaseUI/BaseUI.cs
index 859e476..b1fd0bb 100644
--- a/Qwilight/System/BaseUI/BaseUI.cs
+++ b/Qwilight/System/BaseUI/BaseUI.cs
@@ -125,6 +125,8 @@
public ImageSource[] HandledWallDrawings { get; } = new ImageSource[8];
+ public ImageSource[] HandledWallCommentDrawings { get; } = new ImageSource[8];
+
public ImageSource[] DefaultEntryDrawings { get; } = new ImageSource[5];
public ImageSource[] SaltAutoDrawings { get; } = new ImageSource[2];
@@ -339,6 +341,8 @@
public double HandledWallLength { get; set; }
+ public double HandledWallCommentLength { get; set; }
+
public double EntryItemHeight { get; set; }
public double CommentItemHeight { get; set; }
@@ -941,6 +945,7 @@
StopAutoPoint = GetDrawingPoint(pointNode, "stopAuto");
HandledWallLength = GetCalledValue(pointNode, "handledWallLength", "10");
+ HandledWallCommentLength = GetCalledValue(pointNode, "handledWallCommentLength", "8");
EntryItemHeight = GetCalledValue(pointNode, "entryItemHeight", "60");
CommentItemHeight = GetCalledValue(pointNode, "commentItemHeight", "48");
CommentItemAvatarHeight = CommentItemHeight + 2 * CommentItemHeight * Levels.EdgeXY + 2 * 1.0;
@@ -1725,6 +1730,9 @@
case "W":
HandledWallDrawings[Utility.ToInt32(fileNameContents[1])] = defaultDrawing;
break;
+ case "WC":
+ HandledWallCommentDrawings[Utility.ToInt32(fileNameContents[1])] = defaultDrawing;
+ break;
}
break;
case "Avatar Configure":
@@ -2041,6 +2049,11 @@
QuitDrawings[i][1] ??= QuitDrawings[i][0];
}
+ for (var i = (int)BaseNoteFile.Handled.AssistClear; i >= (int)BaseNoteFile.Handled.Not; --i)
+ {
+ HandledWallCommentDrawings[i] ??= HandledWallDrawings[i];
+ }
+
for (var i = PaintProperties.Length - 1; i >= 0; --i)
{
var paintProperty = PaintProperties[i];
diff --git a/Qwilight/System/TwilightSystem.cs b/Qwilight/System/TwilightSystem.cs
index 2ba96c1..6e085d4 100644
--- a/Qwilight/System/TwilightSystem.cs
+++ b/Qwilight/System/TwilightSystem.cs
@@ -211,7 +211,6 @@
public void HandleSystem()
{
var mainViewModel = ViewModels.Instance.MainValue;
- var signInViewModel = ViewModels.Instance.SignInValue;
var bundleViewModel = ViewModels.Instance.BundleValue;
var ubuntuViewModel = ViewModels.Instance.UbuntuValue;
var toNotifyViewModel = ViewModels.Instance.NotifyValue;
@@ -294,7 +293,7 @@
}
break;
case Event.Types.EventID.SignIn:
- signInViewModel.Close();
+ ViewModels.Instance.SignInValue.Close();
var twilightSignIn = Utility.GetJSON(eventItemText);
Totem = twilightSignIn.totem;
AvatarID = twilightSignIn.avatarID;
diff --git a/Qwilight/UIComponent/CommentItem.cs b/Qwilight/UIComponent/CommentItem.cs
index 8a8948e..ccd93b9 100644
--- a/Qwilight/UIComponent/CommentItem.cs
+++ b/Qwilight/UIComponent/CommentItem.cs
@@ -1,4 +1,5 @@
using Qwilight.Compute;
+using Qwilight.NoteFile;
using Qwilight.Utilities;
using System.Windows.Media;
@@ -23,6 +24,8 @@
public string CommentPlace1Text { get; set; }
+ public BaseNoteFile.Handled? HandledValue { get; set; }
+
public Brush StandPaint => ModeComponentValue.HitPointsModeValue switch
{
ModeComponent.HitPointsMode.Lowest => BaseUI.Instance.LevelPaints[1],
@@ -71,13 +74,15 @@
public bool IsPaused { get; init; }
- public bool DefaultControllerComputed => (_inputFlags & DefaultCompute.InputFlag.DefaultController) == DefaultCompute.InputFlag.DefaultController;
+ public bool HasDefaultControllerFlag => (_inputFlags & DefaultCompute.InputFlag.DefaultController) == DefaultCompute.InputFlag.DefaultController;
- public bool ControllerComputed => (_inputFlags & DefaultCompute.InputFlag.Controller) == DefaultCompute.InputFlag.Controller;
+ public bool HasControllerFlag => (_inputFlags & DefaultCompute.InputFlag.Controller) == DefaultCompute.InputFlag.Controller;
- public bool MIDIComputed => (_inputFlags & DefaultCompute.InputFlag.MIDI) == DefaultCompute.InputFlag.MIDI;
+ public bool HasMIDIFlag => (_inputFlags & DefaultCompute.InputFlag.MIDI) == DefaultCompute.InputFlag.MIDI;
- public bool PointerComputed => (_inputFlags & DefaultCompute.InputFlag.Pointer) == DefaultCompute.InputFlag.Pointer;
+ public bool HasPointerFlag => (_inputFlags & DefaultCompute.InputFlag.Pointer) == DefaultCompute.InputFlag.Pointer;
+
+ public ImageSource HandledWallCommentDrawing => HandledValue.HasValue ? BaseUI.Instance.HandledWallCommentDrawings[(int)HandledValue.Value] : null;
public AvatarWww AvatarWwwValue { get; }
diff --git a/Qwilight/Utilities/Utility.cs b/Qwilight/Utilities/Utility.cs
index 085cb5c..9ba824f 100644
--- a/Qwilight/Utilities/Utility.cs
+++ b/Qwilight/Utilities/Utility.cs
@@ -385,6 +385,7 @@
},
Stand = data.stand,
Band = data.band,
+ HandledValue = data.handled,
IsP = data.isP,
Point = data.point,
TwilightCommentary = string.IsNullOrEmpty(data.commentary) ? string.Empty : $"💬 {data.commentary}",
diff --git a/Qwilight/View/MainWindow/DefaultMode/CommentView.xaml b/Qwilight/View/MainWindow/DefaultMode/CommentView.xaml
index 1a53a89..ad73dae 100644
--- a/Qwilight/View/MainWindow/DefaultMode/CommentView.xaml
+++ b/Qwilight/View/MainWindow/DefaultMode/CommentView.xaml
@@ -69,7 +69,7 @@
-
+
@@ -83,42 +83,50 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/Qwilight/View/MainWindow/DefaultMode/EntryView.xaml b/Qwilight/View/MainWindow/DefaultMode/EntryView.xaml
index 4c457c8..c9796c3 100644
--- a/Qwilight/View/MainWindow/DefaultMode/EntryView.xaml
+++ b/Qwilight/View/MainWindow/DefaultMode/EntryView.xaml
@@ -55,7 +55,7 @@
-
+
@@ -83,7 +83,7 @@
-
+
diff --git a/Qwilight/ViewModel/MainViewModel.cs b/Qwilight/ViewModel/MainViewModel.cs
index e1d3cce..1099db8 100644
--- a/Qwilight/ViewModel/MainViewModel.cs
+++ b/Qwilight/ViewModel/MainViewModel.cs
@@ -1471,13 +1471,14 @@
TwilightCommentText0 = (commentPlace + 1).ToString("##,##0");
TwilightCommentText1 = twilightWwwCommentValue.totalComments.ToString("/#,##0");
}
- var handled = twilightWwwCommentValue.handled;
- if (handled.HasValue)
+ var avatarID = TwilightSystem.Instance.AvatarID;
+ var commentsMe = twilightWwwCommentValue.comments.Where(comment => comment.avatarID == avatarID).ToArray();
+ if (commentsMe.Length == 1)
{
- var handledValue = handled.Value;
- if (noteFile.HandledValue != handledValue && !(noteFile.HandledValue == BaseNoteFile.Handled.F && handledValue == BaseNoteFile.Handled.Not))
+ var handled = commentsMe.Single().handled;
+ if (noteFile.HandledValue != handled && !(noteFile.HandledValue == BaseNoteFile.Handled.F && handled == BaseNoteFile.Handled.Not))
{
- noteFile.HandledValue = handledValue;
+ noteFile.HandledValue = handled;
DB.Instance.SetHandled(noteFile);
}
}