[Draft] Update 0.8 (#46)

* move stuff out into file transfer manager

* obnoxious unsupported version text, adjustments to filetransfermanager

* add back file upload transfer progress

* restructure code

* cleanup some more stuff I guess

* downloadids by playername

* individual anim/sound bs

* fix migration stuff, finalize impl of individual sound/anim pause

* fixes with logging stuff

* move download manager to transient

* rework dl ui first iteration

* some refactoring and cleanup

* more code cleanup

* refactoring

* switch to hostbuilder

* some more rework I guess

* more refactoring

* clean up mediator calls and disposal

* fun code cleanup

* push error message when log level is set to anything but information in non-debug builds

* remove notificationservice

* move message to after login

* add download bars to gameworld

* fixes download progress bar

* set gpose ui min and max size

* remove unnecessary usings

* adjustments to reconnection logic

* add options to set visible/offline groups visibility

* add impl of uploading display, transfer list in settings ui

* attempt to fix issues with server selection

* add back download status to compact ui

* make dl bar fixed size based

* some fixes for upload/download handling

* adjust text from Syncing back to Uploading

---------

Co-authored-by: rootdarkarchon <root.darkarchon@outlook.com>
Co-authored-by: Stanley Dimant <stanley.dimant@varian.com>
This commit is contained in:
rootdarkarchon
2023-03-14 19:48:35 +01:00
committed by GitHub
parent 0824ba434b
commit 0c87e84f25
109 changed files with 7323 additions and 6488 deletions

View File

@@ -0,0 +1,11 @@
using System.Runtime.InteropServices;
using FFXIVClientStructs.FFXIV.Client.Game.Character;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct CharaExt
{
[FieldOffset(0x0)] public Character Character;
[FieldOffset(0x650)] public Character* Mount;
}

View File

@@ -0,0 +1,12 @@
using System.Runtime.InteropServices;
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct HumanExt
{
[FieldOffset(0x0)] public Human Human;
[FieldOffset(0x9E8)] public ResourceHandle* Decal;
[FieldOffset(0x9F0)] public ResourceHandle* LegacyBodyDecal;
}

View File

@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct Material
{
[FieldOffset(0x10)]
public ResourceHandle* ResourceHandle;
}

View File

@@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct MaterialData
{
[FieldOffset(0x0)]
public byte* Data;
}

View File

@@ -0,0 +1,28 @@
using System.Runtime.InteropServices;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct MtrlResource
{
[FieldOffset(0x00)]
public ResourceHandle Handle;
[FieldOffset(0xD0)]
public ushort* TexSpace; // Contains the offsets for the tex files inside the string list.
[FieldOffset(0xE0)]
public byte* StringList;
[FieldOffset(0xF8)]
public ushort ShpkOffset;
[FieldOffset(0xFA)]
public byte NumTex;
public byte* ShpkString
=> StringList + ShpkOffset;
public byte* TexString(int idx)
=> StringList + *(TexSpace + 4 + idx * 8);
}

View File

@@ -0,0 +1,33 @@
using System.Runtime.InteropServices;
using FFXIVClientStructs.FFXIV.Client.Graphics.Render;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct RenderModel
{
[FieldOffset(0x18)]
public RenderModel* PreviousModel;
[FieldOffset(0x20)]
public RenderModel* NextModel;
[FieldOffset(0x30)]
public ResourceHandle* ResourceHandle;
[FieldOffset(0x40)]
public Skeleton* Skeleton;
[FieldOffset(0x58)]
public void** BoneList;
[FieldOffset(0x60)]
public int BoneListCount;
[FieldOffset(0x98)]
public void** Materials;
[FieldOffset(0xA0)]
public int MaterialCount;
}

View File

@@ -0,0 +1,32 @@
using System.Runtime.InteropServices;
using FFXIVClientStructs.FFXIV.Client.System.Resource;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct ResourceHandle
{
public const int SsoSize = 15;
public byte* FileName()
{
if (FileNameLength > SsoSize)
{
return FileNameData;
}
fixed (byte** name = &FileNameData)
{
return (byte*)name;
}
}
[FieldOffset(0x08)]
public ResourceCategory Category;
[FieldOffset(0x48)]
public byte* FileNameData;
[FieldOffset(0x58)]
public int FileNameLength;
}

View File

@@ -0,0 +1,12 @@
using System.Runtime.InteropServices;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct Weapon
{
[FieldOffset(0x18)] public IntPtr Parent;
[FieldOffset(0x20)] public IntPtr NextSibling;
[FieldOffset(0x28)] public IntPtr PreviousSibling;
[FieldOffset(0xA8)] public WeaponDrawObject* WeaponRenderModel;
}

View File

@@ -0,0 +1,9 @@
using System.Runtime.InteropServices;
namespace MareSynchronos.Interop.FFXIV;
[StructLayout(LayoutKind.Explicit)]
public unsafe struct WeaponDrawObject
{
[FieldOffset(0x00)] public RenderModel* RenderModel;
}