diff --git a/MareAPI b/MareAPI
index d361cfa..bd4c360 160000
--- a/MareAPI
+++ b/MareAPI
@@ -1 +1 @@
-Subproject commit d361cfa3b983e8772c2bd08b3d638542ed57cd0f
+Subproject commit bd4c360a4f1d0b1caa0e2c00d19eed7bd209d931
diff --git a/MareSynchronos/Interop/RenderModel.cs b/MareSynchronos/Interop/RenderModel.cs
index db84aa7..ca6946f 100644
--- a/MareSynchronos/Interop/RenderModel.cs
+++ b/MareSynchronos/Interop/RenderModel.cs
@@ -25,18 +25,18 @@ public unsafe struct RenderModel
[FieldOffset( 0x60 )]
public int BoneListCount;
- [FieldOffset( 0x68 )]
+ [FieldOffset( 0x70 )]
private void* UnkDXBuffer1;
- [FieldOffset( 0x70 )]
+ [FieldOffset( 0x78 )]
private void* UnkDXBuffer2;
- [FieldOffset( 0x78 )]
+ [FieldOffset( 0x80 )]
private void* UnkDXBuffer3;
- [FieldOffset( 0x90 )]
+ [FieldOffset( 0x98 )]
public void** Materials;
- [FieldOffset( 0x98 )]
+ [FieldOffset( 0xA0 )]
public int MaterialCount;
}
\ No newline at end of file
diff --git a/MareSynchronos/MareSynchronos.csproj b/MareSynchronos/MareSynchronos.csproj
index 76f0df6..22f54fc 100644
--- a/MareSynchronos/MareSynchronos.csproj
+++ b/MareSynchronos/MareSynchronos.csproj
@@ -10,7 +10,7 @@
- net6.0-windows
+ net7.0-windows
x64
enable
latest
@@ -26,15 +26,15 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
+
diff --git a/MareSynchronos/UI/SettingsUi.cs b/MareSynchronos/UI/SettingsUi.cs
index e0d2547..db3ec76 100644
--- a/MareSynchronos/UI/SettingsUi.cs
+++ b/MareSynchronos/UI/SettingsUi.cs
@@ -669,16 +669,22 @@ public class SettingsUi : Window, IDisposable
ImGui.SameLine();
if (ImGui.Button("Clear local cache"))
{
- Task.Run(() =>
+ if (UiShared.CtrlPressed())
{
- foreach (var file in Directory.GetFiles(_configuration.CacheFolder))
+ Task.Run(() =>
{
- File.Delete(file);
- }
+ foreach (var file in Directory.GetFiles(_configuration.CacheFolder))
+ {
+ File.Delete(file);
+ }
- _uiShared.RecalculateFileCacheSize();
- });
+ _uiShared.RecalculateFileCacheSize();
+ });
+ }
}
+ UiShared.AttachToolTip("You normally do not need to do this. This will solely remove all downloaded data from all players and will require you to re-download everything again." + Environment.NewLine
+ + "Mares Cache is self-clearing and will not surpass the limit you have set it to." + Environment.NewLine
+ + "If you still think you need to do this hold CTRL while pressing the button.");
}
public override void OnClose()
diff --git a/MareSynchronos/Utils/DalamudUtil.cs b/MareSynchronos/Utils/DalamudUtil.cs
index 6d66c4a..6bd0068 100644
--- a/MareSynchronos/Utils/DalamudUtil.cs
+++ b/MareSynchronos/Utils/DalamudUtil.cs
@@ -177,21 +177,21 @@ public class DalamudUtil : IDisposable
public unsafe IntPtr GetMinion()
{
- return (IntPtr)((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)PlayerPointer)->CompanionObject;
+ return (IntPtr)((Character*)PlayerPointer)->CompanionObject;
}
public unsafe IntPtr GetPet(IntPtr? playerPointer = null)
{
var mgr = CharacterManager.Instance();
if (playerPointer == null) playerPointer = PlayerPointer;
- return (IntPtr)mgr->LookupPetByOwnerObject((FFXIVClientStructs.FFXIV.Client.Game.Character.BattleChara*)playerPointer);
+ return (IntPtr)mgr->LookupPetByOwnerObject((BattleChara*)playerPointer);
}
public unsafe IntPtr GetCompanion(IntPtr? playerPointer = null)
{
var mgr = CharacterManager.Instance();
if (playerPointer == null) playerPointer = PlayerPointer;
- return (IntPtr)mgr->LookupBuddyByOwnerObject((FFXIVClientStructs.FFXIV.Client.Game.Character.BattleChara*)playerPointer);
+ return (IntPtr)mgr->LookupBuddyByOwnerObject((BattleChara*)playerPointer);
}
public string PlayerName => _clientState.LocalPlayer?.Name.ToString() ?? "--";
diff --git a/MareSynchronos/WebAPI/ApIController.Functions.Files.cs b/MareSynchronos/WebAPI/ApIController.Functions.Files.cs
index 3d162d2..2a9a973 100644
--- a/MareSynchronos/WebAPI/ApIController.Functions.Files.cs
+++ b/MareSynchronos/WebAPI/ApIController.Functions.Files.cs
@@ -4,6 +4,8 @@ using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Net.Http.Json;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
@@ -13,6 +15,7 @@ using MareSynchronos.API;
using MareSynchronos.Utils;
using MareSynchronos.WebAPI.Utils;
using Microsoft.AspNetCore.SignalR.Client;
+using Newtonsoft.Json;
namespace MareSynchronos.WebAPI;
@@ -43,30 +46,81 @@ public partial class ApiController
await _mareHub!.SendAsync(nameof(FilesDeleteAll)).ConfigureAwait(false);
}
- private async Task DownloadFileHttpClient(Uri url, IProgress progress, CancellationToken ct)
+ private async Task GetQueueRequestDto(DownloadFileTransfer downloadFileTransfer)
{
- using var client = new HttpClient();
- client.DefaultRequestHeaders.Add(AuthorizationJwtHeader.Key, AuthorizationJwtHeader.Value);
+ var response = await SendRequestAsync