Skip to content

Commit 3bb58a0

Browse files
committed
Merge remote-tracking branch 'upstream/main'
# Conflicts: # FFXIVClientStructs/FFXIV/Client/UI/RaptureAtkModule.cs
2 parents fc985dc + b9872d1 commit 3bb58a0

14 files changed

Lines changed: 437 additions & 82 deletions

File tree

FFXIVClientStructs/FFXIV/Client/Game/Character/VfxContainer.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace FFXIVClientStructs.FFXIV.Client.Game.Character;
88
[GenerateInterop]
99
[Inherits<ContainerInterface>]
1010
[StructLayout(LayoutKind.Explicit, Size = 0xF0)]
11-
public unsafe partial struct VfxContainer {
11+
public partial struct VfxContainer {
1212
/// <remarks>
1313
/// [6] = Omen
1414
/// </remarks>
@@ -18,7 +18,14 @@ public unsafe partial struct VfxContainer {
1818
[FieldOffset(0xD0)] public ushort VoiceId;
1919

2020
[MemberFunction("E8 ?? ?? ?? ?? EB 6A 0F BE 83 ?? ?? ?? ??")]
21-
public partial nint LoadCharacterSound(int unk1, int unk2, nint unk3, ulong unk4, int unk5, int unk6, ulong unk7);
21+
public partial nint LoadCharacterSound(
22+
int soundNumber,
23+
int unk2,
24+
nint unkGameObject, // TODO: change type to GameObject*
25+
ulong autoRelease, // TODO: change type to bool
26+
int weaponDataIndex,
27+
int unk6, // TODO: change type to SoundVolumeCategory
28+
ulong unk7); // TODO: change type to bool
2229

2330
[StructLayout(LayoutKind.Explicit, Size = 0x18)]
2431
public struct Tether {

FFXIVClientStructs/FFXIV/Client/Game/ContentsReplayManager.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ public unsafe partial struct ContentsReplayManager {
2222
[FieldOffset(0x4C8)] public Utf8String ReplayTitle;
2323
[FieldOffset(0x530)] private Utf8String Unk530;
2424

25+
[FieldOffset(0x5AC)] public ushort FateId;
26+
2527
[FieldOffset(0x5D0)] public ZoneInitPacket ZoneInitPacket;
2628

2729
[FieldOffset(0x724)] public float PositionMs;

FFXIVClientStructs/FFXIV/Client/Game/Event/EventFramework.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ public void MaterializeItem(InventoryItem* itemSlot, MaterializeEntryId entryId)
111111
[MemberFunction("E8 ?? ?? ?? ?? EB ?? 48 8D B7 ?? ?? ?? ?? 80 A7")]
112112
public partial void ProcessInitializeScene(GameObject* gameObject, EventId eventId, short scene, ulong sceneFlags, uint* sceneData, byte sceneDataCount);
113113

114+
[MemberFunction("40 53 57 48 83 EC ?? 48 8B 05 ?? ?? ?? ?? 48 33 C4 48 89 44 24 ?? 41 8B F9")]
115+
public partial void ProcessDirectorUpdate(EventId eventId, uint category, uint arg1, uint arg2, uint arg3, uint arg4, uint arg5, uint arg6);
116+
114117
private T* GetInstanceContentDirector<T>(InstanceContentType instanceContentType) where T : unmanaged {
115118
var instanceDirector = GetInstanceContentDirector();
116119
if (instanceDirector == null || instanceDirector->InstanceContentType != instanceContentType)

FFXIVClientStructs/FFXIV/Client/Game/Event/EventHandler.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ public unsafe partial struct EventHandler {
2222

2323
[FieldOffset(0xC8)] private Utf8String UnkString0;
2424

25+
[VirtualFunction(0)]
26+
public partial EventHandler* Dtor(byte freeFlags);
27+
2528
[VirtualFunction(40)]
2629
public partial void ProcessYield(short scene, byte yieldId, int* intParams, byte intParamCount);
2730

FFXIVClientStructs/FFXIV/Client/Game/HousingObjectManager.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
namespace FFXIVClientStructs.FFXIV.Client.Game;
44

55
[GenerateInterop]
6-
[StructLayout(LayoutKind.Explicit, Size = 0xCA8)]
6+
[StructLayout(LayoutKind.Explicit, Size = 0x12E8)]
77
public unsafe partial struct HousingObjectManager {
88
[FieldOffset(0x00)] public StdMap<ushort, HousingObjectData> DataMap;
99
[FieldOffset(0x10)] public HousingObjectArray ObjectArray;
1010

1111
[GenerateInterop]
12-
[StructLayout(LayoutKind.Explicit, Size = 0xC98)]
12+
[StructLayout(LayoutKind.Explicit, Size = 0x12D8)]
1313
public unsafe partial struct HousingObjectArray {
1414
[FieldOffset(0x00)] public GameObject* ObjectMemory; // 0x1D0 * ObjectCount
15-
[FieldOffset(0x08), FixedSizeArray] internal FixedSizeArray400<Pointer<GameObject>> _objects;
16-
[FieldOffset(0xC88)] public GameObject* TempObject;
17-
[FieldOffset(0xC90)] public ushort ObjectCount; // 200 for OutdoorTerritory, 400 for IndoorTerritory
15+
[FieldOffset(0x08), FixedSizeArray] internal FixedSizeArray600<Pointer<GameObject>> _objects;
16+
[FieldOffset(0x12C8)] public GameObject* TempObject;
17+
[FieldOffset(0x12D0)] public ushort ObjectCount; // 200 for OutdoorTerritory, 600 for IndoorTerritory
1818
}
1919

2020
[GenerateInterop]

FFXIVClientStructs/FFXIV/Client/Game/InstanceContent/InstanceContentOceanFishing.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,13 @@ public unsafe partial struct InstanceContentOceanFishing {
5050

5151
// Row ID for IKDPlayerMissionCondition sheet
5252
// Description and required amount can be extracted from sheet
53+
// TODO: make this an array of 3
5354
[FieldOffset(0x25C8)] public uint Mission1Type;
5455
[FieldOffset(0x25CC)] public uint Mission2Type;
5556
[FieldOffset(0x25D0)] public uint Mission3Type;
5657

5758
// Progress can be larger than the mission's required amount
59+
// TODO: make this an array of 3
5860
[FieldOffset(0x25D4)] public ushort Mission1Progress;
5961
[FieldOffset(0x25D6)] public ushort Mission2Progress;
6062
[FieldOffset(0x25D8)] public ushort Mission3Progress;

FFXIVClientStructs/FFXIV/Client/Game/UI/QTE.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
12
using AtkEventInterface = FFXIVClientStructs.FFXIV.Component.GUI.AtkModuleInterface.AtkEventInterface;
23

34
namespace FFXIVClientStructs.FFXIV.Client.Game.UI;
@@ -7,4 +8,8 @@ namespace FFXIVClientStructs.FFXIV.Client.Game.UI;
78
[GenerateInterop]
89
[Inherits<AtkEventInterface>]
910
[StructLayout(LayoutKind.Explicit, Size = 0x28)]
10-
public partial struct QTE;
11+
public partial struct QTE {
12+
[FieldOffset(0x18)] public AgentId AgentId;
13+
[FieldOffset(0x26)] private byte Flags1;
14+
[FieldOffset(0x27)] private byte Flags2;
15+
}

FFXIVClientStructs/FFXIV/Client/Graphics/Render/GraphicsConfig.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,7 @@ public unsafe partial struct GraphicsConfig {
6363
[FieldOffset(0x66)] public bool PortraitPreview; // GPose: Preview the framing of the camera composition used in portrait mode.
6464
[FieldOffset(0x67)] public bool PortraitMode; // GPose: Enter portrait mode, rotating the camera ninety degrees.<br>* Screenshots must be taken manually.
6565

66+
[FieldOffset(0x6A)] public bool IsIndoor; // This is true when the layouts lvb path contains "ind/", like for houses, apartments, or chambers.
67+
6668
[FieldOffset(0x78)] public float JitterMultiplier;
6769
}

FFXIVClientStructs/FFXIV/Client/Sound/SoundManager.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@ public unsafe partial struct SoundManager {
2121
[FieldOffset(0x31)] public bool Disabled;
2222
[FieldOffset(0x34)] public float MasterVolume;
2323
[FieldOffset(0x38)] public float ActiveVolume;
24-
[FieldOffset(0x3C), FixedSizeArray] internal FixedSizeArray19<float> _volume;
25-
[FieldOffset(0x88), FixedSizeArray] internal FixedSizeArray19<float> _unkVolume2; // All are 1.0f
26-
[FieldOffset(0xD4), FixedSizeArray] internal FixedSizeArray19<float> _unkVolume3; // All are 1.0f
27-
[FieldOffset(0x120), FixedSizeArray] internal FixedSizeArray19<float> _unkVolume4; // All are 1.0f
28-
[FieldOffset(0x16C), FixedSizeArray] internal FixedSizeArray19<bool> _busMuted;
29-
[FieldOffset(0x17F), FixedSizeArray] internal FixedSizeArray19<bool> _busAlwaysOn;
24+
[FieldOffset(0x3C), FixedSizeArray] internal FixedSizeArray21<float> _volume;
25+
[FieldOffset(0x90), FixedSizeArray] internal FixedSizeArray21<float> _unkVolume2; // All are 1.0f
26+
[FieldOffset(0xE4), FixedSizeArray] internal FixedSizeArray21<float> _unkVolume3; // All are 1.0f
27+
[FieldOffset(0x138), FixedSizeArray] internal FixedSizeArray21<float> _unkVolume4; // All are 1.0f
28+
[FieldOffset(0x18C), FixedSizeArray] internal FixedSizeArray21<float> _unkVolume5;
29+
[FieldOffset(0x1E0), FixedSizeArray] internal FixedSizeArray21<bool> _busMuted;
30+
[FieldOffset(0x1F5), FixedSizeArray] internal FixedSizeArray21<bool> _busAlwaysOn;
3031

3132
[FieldOffset(0x220)] public SoundDataMemory* SoundDataPool; // This points to +8 bytes into the allocated memory.
3233
[FieldOffset(0x228)] public SoundData* InactiveSoundDataListHead;

FFXIVClientStructs/FFXIV/Client/System/Scheduler/ScheduleManagement.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,7 @@ public unsafe partial struct ScheduleManagement {
1313

1414
[MemberFunction("E8 ?? ?? ?? ?? 48 8B D8 48 8B 03 48 8B CB")]
1515
public partial CutSceneController* CreateCutSceneController(byte* path, uint id, byte a4);
16+
17+
[MemberFunction("E8 ?? ?? ?? ?? 48 85 FF 75 ?? 84 C0")]
18+
public partial bool IsCutScenePlaying();
1619
}

0 commit comments

Comments
 (0)