mirror of
https://github.com/gwdevhub/Daybreak.git
synced 2026-07-21 01:59:49 +00:00
ef513e1230
* Bump version to 0.9.10.1 * Bump Microsoft.Web.WebView2 from 1.0.3719.77 to 1.0.3800.47 (#1442) --- updated-dependencies: - dependency-name: Microsoft.Web.WebView2 dependency-version: 1.0.3800.47 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Improve mod view responsiveness (#1443) * Improve application launcher logging (Closes #1441) (#1444) * Damage modifier 0x248 (Closes #1438) (#1445) * Initial commit * Setup generator * Progress * Update generator * Initial commit * Setup generator * Progress * Update generator * Fix library loading * Move code to gwca * Fix leave party * Disable console on Release * Add more exports to gwca * Upgrade gwca * Fixes to character selector * Fix GetWindowHandle * Move character selector to frame based * Fix config spamming --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandru Macocian <amacocian@microsoft.com>
91 lines
2.4 KiB
C#
91 lines
2.4 KiB
C#
using Daybreak.API.Models;
|
|
using System.Extensions;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Daybreak.API.Interop.GuildWars;
|
|
|
|
// Very incomplete. GWCA contains a much better definition
|
|
[StructLayout(LayoutKind.Explicit, Pack = 1, Size = 0x1AC)]
|
|
[GWCAEquivalent("Frame")]
|
|
public readonly struct Frame
|
|
{
|
|
[FieldOffset(0x0008)]
|
|
public readonly uint FrameLayout;
|
|
|
|
[FieldOffset(0x0018)]
|
|
public readonly uint VisibilityFlags;
|
|
|
|
[FieldOffset(0x0020)]
|
|
public readonly uint Type;
|
|
|
|
[FieldOffset(0x0024)]
|
|
public readonly uint TemplateType;
|
|
|
|
[FieldOffset(0x00A8)]
|
|
public readonly GuildWarsArray<FrameInteractionCallback> FrameCallbacks;
|
|
|
|
[FieldOffset(0x00b8)]
|
|
public readonly uint ChildOffsetId;
|
|
|
|
[FieldOffset(0x00bc)]
|
|
public readonly uint FrameId;
|
|
|
|
[FieldOffset(0x0128)]
|
|
public readonly FrameRelation Relation;
|
|
|
|
[FieldOffset(0x018C)]
|
|
public readonly uint FrameState;
|
|
|
|
public bool IsCreated => (this.FrameState & 0x4) != 0;
|
|
public bool IsHidden => (this.FrameState & 0x200) != 0;
|
|
public bool IsVisible => !this.IsHidden;
|
|
public bool IsDIsabled => (this.FrameState & 0x10) != 0;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Explicit, Pack = 1, Size = 0x1C)]
|
|
public readonly unsafe struct FrameRelation
|
|
{
|
|
[FieldOffset(0x0000)]
|
|
public readonly FrameRelation* Parent;
|
|
|
|
[FieldOffset(0x000C)]
|
|
public readonly uint FrameHashId;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
|
public readonly unsafe struct InteractionMessage
|
|
{
|
|
public readonly uint FrameId;
|
|
public readonly UIMessage MessageId;
|
|
public readonly void** WParam;
|
|
}
|
|
|
|
public unsafe delegate void UIInteractionCallback(InteractionMessage* message, void* wParam, void* lParam);
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0xC)]
|
|
public unsafe readonly struct FrameInteractionCallback
|
|
{
|
|
public readonly void* Callback; // UIInteractionCallback
|
|
public readonly void* UiCtl_Context;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Explicit, Pack = 1)]
|
|
public readonly unsafe struct CharSelectorContext
|
|
{
|
|
[FieldOffset(0x0000)]
|
|
public readonly uint Vtable;
|
|
|
|
[FieldOffset(0x0004)]
|
|
public readonly uint FrameId;
|
|
|
|
[FieldOffset(0x0008)]
|
|
public readonly GuildWarsArray<WrappedPointer<CharSelectorChar>> Chars;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Explicit, Pack = 1)]
|
|
public readonly struct CharSelectorChar
|
|
{
|
|
[FieldOffset(0x0020)]
|
|
public readonly Array20Char Name;
|
|
}
|