forked from aers/FFXIVClientStructs
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
52 changed files
with
43,246 additions
and
48,386 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
name: Breaking Change Check | ||
|
||
on: | ||
pull_request_target: | ||
types: | ||
- opened | ||
- synchronize | ||
- reopened | ||
branches: | ||
- main | ||
paths: | ||
- 'FFXIVClientStructs/**/*.cs' | ||
|
||
jobs: | ||
build-pr: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha }} | ||
- name: Install dependencies for PR branch | ||
run: dotnet restore | ||
- name: Build PR branch | ||
run: dotnet build FFXIVClientStructs/FFXIVClientStructs.csproj --output ida/cs | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: cs-pr | ||
path: ida/cs/FFXIVClientStructs.dll | ||
retention-days: 1 | ||
|
||
build-main: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Install dependencies for Main branch | ||
run: dotnet restore | ||
- name: Build Main branch | ||
run: dotnet build FFXIVClientStructs/FFXIVClientStructs.csproj --output ida/cs | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: cs-main | ||
path: ida/cs/FFXIVClientStructs.dll | ||
retention-days: 1 | ||
|
||
check-breaking-changes: | ||
runs-on: ubuntu-latest | ||
needs: [build-pr, build-main] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: cs-pr | ||
path: ida/cs-pr | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: cs-main | ||
path: ida/cs-main | ||
- name: Check for breaking changes | ||
id: breaking_changes | ||
run: | | ||
dotnet tool install -g Microsoft.DotNet.ApiCompat.Tool | ||
testout=$(apicompat -l ida/cs-main/FFXIVClientStructs.dll -r ida/cs-pr/FFXIVClientStructs.dll) | ||
echo $testout | ||
if [ "$testout" != "APICompat ran successfully without finding any breaking changes." ]; then | ||
echo "Breaking changes detected" | ||
echo "breaking=true" >> $GITHUB_OUTPUT | ||
else | ||
echo "No breaking changes detected" | ||
echo "breaking=false" >> $GITHUB_OUTPUT | ||
fi | ||
- name: Add tag to PR | ||
if: steps.breaking_changes.outputs.breaking == 'true' | ||
uses: actions/github-script@v7 | ||
with: | ||
script: | | ||
github.rest.issues.addLabels({ | ||
issue_number: context.payload.pull_request.number, | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
labels: ["breaking change"] | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
namespace FFXIVClientStructs.FFXIV.Client.Game; | ||
|
||
[StructLayout(LayoutKind.Explicit, Size = 0x178)] | ||
public unsafe partial struct CSBonusManager { | ||
[StaticAddress("48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 63 D0", 3, true)] | ||
public static partial CSBonusManager* Instance(); | ||
|
||
[FieldOffset(0x08)] public ushort State; // 1 = Pending, 2 = Underway, 3 = Finished | ||
|
||
[FieldOffset(0x0C)] public uint BaseTime; | ||
[FieldOffset(0x10)] public uint SeasonTarget; | ||
[FieldOffset(0x14)] public byte IsOpenShop; | ||
[FieldOffset(0x15)] public byte IsOpenMission; | ||
|
||
[FieldOffset(0x18)] public uint SeedBase; | ||
|
||
[FieldOffset(0x2C)] public fixed byte WBAchieveFlag[20]; | ||
[FieldOffset(0x40)] public fixed byte PMAchieveFlag[20]; | ||
[FieldOffset(0x54)] public fixed byte MMAchieveFlag[4]; | ||
|
||
[FieldOffset(0x7C)] public fixed byte WBReceiveFlag[20]; | ||
[FieldOffset(0x90)] public fixed byte PMReceiveFlag[20]; | ||
[FieldOffset(0xA4)] public fixed byte MMReceiveFlag[4]; | ||
|
||
[FieldOffset(0xBA)] public byte WBCount; | ||
|
||
[FieldOffset(0xBC)] public byte PMCount; | ||
|
||
[FieldOffset(0xBE)] public byte MMCount; | ||
} |
57 changes: 57 additions & 0 deletions
57
FFXIVClientStructs/FFXIV/Client/Game/Event/CraftEventHandler.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
using FFXIVClientStructs.FFXIV.Client.System.String; | ||
using FFXIVClientStructs.FFXIV.Component.Excel; | ||
|
||
namespace FFXIVClientStructs.FFXIV.Client.Game.Event; | ||
|
||
[Flags] | ||
public enum CraftStateFlags : uint { | ||
Unk1 = 1 << 0, | ||
NotFirstStep = 1 << 1, | ||
Unk2 = 1 << 4, | ||
StandardTouchProc = 1 << 27, | ||
AdvancedTouchProc = 1 << 28, | ||
ObservedProc = 1 << 29, | ||
NoMoreCarefulObservation = 1 << 30, | ||
NoMoreHeartAndSoul = 1u << 31 | ||
} | ||
|
||
[Flags] | ||
public enum CraftFlags : uint { | ||
ExecutingAction2 = 1 << 0, | ||
Unk1 = 1 << 1, | ||
NotTrialSynthesis = 1 << 2, | ||
ExecutingAction1 = 1 << 3, | ||
Unk2 = 1 << 4, | ||
Unk3 = 1 << 5 | ||
} | ||
|
||
public enum CraftCondition : byte { | ||
Normal = 1, | ||
Good, | ||
Excellent, | ||
Poor, | ||
|
||
Centered, | ||
Sturdy, | ||
Pliant, | ||
Malleable, | ||
Primed, | ||
GoodOmen, | ||
} | ||
|
||
[StructLayout(LayoutKind.Explicit, Size = 0x4C0)] | ||
public unsafe struct CraftEventHandler { | ||
[FieldOffset(0x0)] public EventHandler EventHandler; | ||
[FieldOffset(0x210)] public fixed byte RecipeExcelRow[106]; | ||
[FieldOffset(0x320)] public Utf8String RecipeName; | ||
[FieldOffset(0x388)] public fixed byte RecipeLevelTableExcelRow[20]; | ||
[FieldOffset(0x3F0)] public ExcelSheet* RecipeSheet1; | ||
[FieldOffset(0x400)] public ExcelSheet* RecipeSheet2; | ||
[FieldOffset(0x410)] public ExcelSheet* RecipeSheet3; | ||
[FieldOffset(0x418)] public ExcelSheet* ItemSheet; | ||
[FieldOffset(0x448)] public uint DataSource; | ||
[FieldOffset(0x44C)] public CraftStateFlags StateFlags; | ||
[FieldOffset(0x456)] public ushort StepNumber; | ||
[FieldOffset(0x467)] public CraftCondition Condition; | ||
[FieldOffset(0x468)] public CraftFlags CraftFlags; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
FFXIVClientStructs/FFXIV/Client/Game/Event/GoldSaucerDirector.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
namespace FFXIVClientStructs.FFXIV.Client.Game.Event; | ||
|
||
// Client::Game::Event::GoldSaucerDirector | ||
// Client::Game::Event::Director | ||
// Client::Game::Event::LuaEventHandler | ||
// Client::Game::Event::EventHandler | ||
[StructLayout(LayoutKind.Explicit, Size = 0x678)] | ||
public unsafe struct GoldSaucerDirector { | ||
[FieldOffset(0)] public Director Director; | ||
} |
48 changes: 48 additions & 0 deletions
48
FFXIVClientStructs/FFXIV/Client/Game/GoldSaucer/GFateDirector.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
using FFXIVClientStructs.FFXIV.Client.Game.Event; | ||
using FFXIVClientStructs.FFXIV.Client.System.String; | ||
|
||
namespace FFXIVClientStructs.FFXIV.Client.Game.GoldSaucer; | ||
|
||
// Client::Game::GoldSaucer::GFateDirector | ||
// Client::Game::Event::GoldSaucerDirector | ||
// Client::Game::Event::Director | ||
// Client::Game::Event::LuaEventHandler | ||
// Client::Game::Event::EventHandler | ||
[StructLayout(LayoutKind.Explicit, Size = 0x808)] | ||
public unsafe partial struct GFateDirector { | ||
[FieldOffset(0)] public GoldSaucerDirector GoldSaucerDirector; | ||
[FieldOffset(0x678)] public Utf8String MapMarkerTooltipText; | ||
[FieldOffset(0x6E0)] public uint MapMarkerLevelId; | ||
|
||
[FieldOffset(0x6E8)] public uint MapMarkerIconId; | ||
|
||
[FieldOffset(0x760)] public fixed uint ObjectIds[32]; // for what? | ||
[FieldOffset(0x7E0)] public uint EndTimestamp; | ||
|
||
[FieldOffset(0x7EC)] public ushort BgmId; | ||
|
||
[FieldOffset(0x7F6)] public byte GateType; | ||
[FieldOffset(0x7F7)] public byte GatePositionType; | ||
|
||
[FieldOffset(0x7F0)] public ushort ScreenImageId1; | ||
[FieldOffset(0x7F2)] public ushort ScreenImageId2; | ||
[FieldOffset(0x7F4)] public ushort ScreenImageId3; | ||
|
||
[FieldOffset(0x7FC)] public GFateDirectorFlag Flags; | ||
|
||
[VirtualFunction(3)] | ||
public partial bool IsRunningGate(); | ||
|
||
[VirtualFunction(294)] | ||
public partial bool IsAcceptingGate(); | ||
} | ||
|
||
[Flags] | ||
public enum GFateDirectorFlag : uint { | ||
IsJoined = 1 << 0, | ||
IsFinished = 1 << 1, | ||
Unk2 = 1 << 2, | ||
Unk3 = 1 << 3, | ||
Unk4 = 1 << 4, | ||
Unk5 = 1 << 5, | ||
} |
27 changes: 27 additions & 0 deletions
27
FFXIVClientStructs/FFXIV/Client/Game/GoldSaucer/GoldSaucerManager.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
using FFXIVClientStructs.FFXIV.Client.Game.GoldSaucer; | ||
|
||
namespace FFXIVClientStructs.FFXIV.Client.Game; | ||
|
||
[StructLayout(LayoutKind.Explicit, Size = 0x68)] | ||
public unsafe partial struct GoldSaucerManager { | ||
[StaticAddress("89 43 64 48 89 1D", 6, isPointer: true)] | ||
public static partial GoldSaucerManager* Instance(); | ||
|
||
[FieldOffset(0x28)] public GFateDirector* CurrentGFateDirector; | ||
|
||
[FieldOffset(0x50)] public uint WeeklyLotOffsetTime; | ||
|
||
[FieldOffset(0x58)] public GoldSaucerFlag Flags; | ||
} | ||
|
||
[Flags] | ||
public enum GoldSaucerFlag : byte { | ||
Unk0 = 1 << 0, | ||
ChocoboRaceTutorialClear = 1 << 1, | ||
Unk2 = 1 << 2, | ||
Unk3 = 1 << 3, | ||
Unk4 = 1 << 4, | ||
ChocoboRaceAllOpen = 1 << 5, | ||
Unk6 = 1 << 6, | ||
Unk7 = 1 << 7, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
namespace FFXIVClientStructs.FFXIV.Client.Graphics; | ||
|
||
// Client::Graphics::JobSystem<T> | ||
[StructLayout(LayoutKind.Explicit, Size = 0xC0)] | ||
public unsafe partial struct JobSystem { | ||
[FieldOffset(0)] public void* Vtbl; | ||
|
||
[FieldOffset(0x20)] public void* CallbackThisArg; | ||
[FieldOffset(0x28)] public delegate* unmanaged<void*, void*, void> CallbackFunction; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.