From 3a0fa7fc7de3344d8b569477217b62134c1f0f4f Mon Sep 17 00:00:00 2001 From: AtmoOmen Date: Mon, 21 Sep 2026 23:13:46 +0800 Subject: [PATCH 01/17] AgentHousingPortal --- .../Client/UI/Agent/AgentHousingPortal.cs | 53 +++++++++++++++++++ ida/data.yml | 8 +++ 2 files changed, 61 insertions(+) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index 98cbc432af..e38ea80f6d 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -1,4 +1,5 @@ using FFXIVClientStructs.FFXIV.Client.Game.Network; +using FFXIVClientStructs.FFXIV.Component.GUI; namespace FFXIVClientStructs.FFXIV.Client.UI.Agent; @@ -10,6 +11,58 @@ namespace FFXIVClientStructs.FFXIV.Client.UI.Agent; [Inherits] [StructLayout(LayoutKind.Explicit, Size = 0xA0)] public unsafe partial struct AgentHousingPortal { + + [FieldOffset(0x30)] public uint ConfirmAddonId; + [FieldOffset(0x34)] public ushort PortalMenuAddonId; + [FieldOffset(0x36)] public ushort WardSelectAddonId; + + [FieldOffset(0x38)] public ushort TerritoryType; + + [FieldOffset(0x3C)] public int SelectedWardIndex; + + [FieldOffset(0x40)] public uint PlotCount; + [FieldOffset(0x44), FixedSizeArray] internal FixedSizeArray60 _plotOccupied; + + /// + /// 0 - Personal Estate
+ /// 1 - Free Company Estate
+ /// 2 - Apartment Room
+ ///
+ [FieldOffset(0x80)] public int TeleportEstateType; + + [FieldOffset(0x84), FixedSizeArray] internal FixedSizeArray6 _menuActions; + [FieldOffset(0x9C), FixedSizeArray] public uint MenuItemCount; + [MemberFunction("40 55 53 41 54 41 55 41 57 48 8D AC 24 ?? ?? ?? ?? B8")] public partial void ReadPacket(HousingPortalPacket* packet); + + [MemberFunction("E8 ?? ?? ?? ?? EB ?? BA ?? ?? ?? ?? EB ?? BA ?? ?? ?? ?? EB ?? 48 8B CE")] + public partial void SelectWard(uint wardIndex); + + /// + /// + /// + [MemberFunction("48 89 6C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 41 56 48 83 EC ?? 8B B1 ?? ?? ?? ?? 48 8B F9 83 FE")] + public partial void TeleportToOwnEstateWard(); + + [MemberFunction("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 41 56 41 57 48 83 EC ?? 48 8B F9 48 8B F2")] + public partial void ProcessPortalMenuSelect(AtkValue* values); + + [MemberFunction("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 41 56 41 57 48 83 EC ?? 48 8B F1 48 8B DA")] + public partial void ProcessAction(AtkValue* values); + + [MemberFunction("48 89 5C 24 ?? 57 48 83 EC ?? 48 8B D9 33 FF 89 79 ?? 48 8B CA E8 ?? ?? ?? ?? 83 F8 ?? 0F 84")] + public partial void ProcessMenuConfirm(AtkValue* values); + + [MemberFunction("40 53 48 83 EC ?? 48 8B D9 C7 41 ?? ?? ?? ?? ?? 48 8B CA E8 ?? ?? ?? ?? 85 C0 75 ?? 44 8B 43")] + public partial void ConfirmTeleport(AtkValue* values); + + [MemberFunction("E8 ?? ?? ?? ?? 48 8B 74 24 ?? B1 ?? EB")] + public partial void OpenPortalMenu(ushort territoryType, AtkModuleInterface.AtkEventInterface* eventInterface, uint menuAction); + + /// Text in SelectYesno + /// Doesn't seem to be used + /// Doesn't seem to be used + [MemberFunction("E8 ?? ?? ?? ?? B3 ?? E9 ?? ?? ?? ?? 83 FD")] + public partial void ShowTeleportConfirm(CStringPointer text, int a3, ushort a4); } diff --git a/ida/data.yml b/ida/data.yml index 434eab8bdb..7ca9917e27 100644 --- a/ida/data.yml +++ b/ida/data.yml @@ -13785,6 +13785,14 @@ classes: funcs: 0x14173AA10: ctor 0x14173B3F0: ReadPacket + 0x14173B330: ConfirmTeleport + 0x14173BF00: SelectWard + 0x14173C2C0: TeleportToOwnEstate + 0x14173AD10: ProcessPortalMenuSelect + 0x14173AF00: ProcessAction + 0x14173B1D0: ProcessMenuConfirm + 0x14173B8C0: OpenPortalMenu + 0x14173C170: ShowTeleportConfirm Client::UI::Agent::AgentHousingTravellersNote: vtbls: - ea: 0x1422CEB70 From c404e952377df1bafac2e511c47fb7118d7c2f97 Mon Sep 17 00:00:00 2001 From: AtmoOmen Date: Mon, 21 Sep 2026 23:25:48 +0800 Subject: [PATCH 02/17] RequestWardInfo --- FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs | 3 +++ ida/data.yml | 1 + 2 files changed, 4 insertions(+) diff --git a/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs b/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs index 043f908104..49f2596051 100644 --- a/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs +++ b/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs @@ -149,6 +149,9 @@ public unsafe partial struct HousingManager { /// True or False [MemberFunction("E8 ?? ?? ?? ?? 88 45 38")] public static partial bool IsSubmarineExplorationExplored(byte point); + + [MemberFunction("E8 ?? ?? ?? ?? 88 45 38")] + public static partial void RequestWardInfo(ushort territoryType, ushort wardIndex); public HousingTerritoryType GetCurrentHousingTerritoryType() => CurrentTerritory != null ? CurrentTerritory->GetTerritoryType() : HousingTerritoryType.None; diff --git a/ida/data.yml b/ida/data.yml index 7ca9917e27..c027df9322 100644 --- a/ida/data.yml +++ b/ida/data.yml @@ -2319,6 +2319,7 @@ classes: 0x140E1E0A0: SetTemporaryObject 0x140E1E160: SetTemporaryObjectStain 0x140E1D2B0: DepositItemInStoreroom + 0x140E20400: RequestWardInfo Client::Game::HouseId: funcs: 0x140E24E80: GetWardIndex From 683d4db2241da79e5d226c52876d61b600576503 Mon Sep 17 00:00:00 2001 From: AtmoOmen Date: Mon, 21 Sep 2026 23:30:11 +0800 Subject: [PATCH 03/17] should be byte for unsigned __int8 --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index e38ea80f6d..5675a05845 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -21,7 +21,7 @@ public unsafe partial struct AgentHousingPortal { [FieldOffset(0x3C)] public int SelectedWardIndex; [FieldOffset(0x40)] public uint PlotCount; - [FieldOffset(0x44), FixedSizeArray] internal FixedSizeArray60 _plotOccupied; + [FieldOffset(0x44), FixedSizeArray] internal FixedSizeArray60 _plotOccupied; /// /// 0 - Personal Estate
From 8a436b4d490d4650dd7c2db412eaf51d14682d7c Mon Sep 17 00:00:00 2001 From: AtmoOmen Date: Mon, 21 Sep 2026 23:33:32 +0800 Subject: [PATCH 04/17] signatures --- FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs b/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs index 49f2596051..2d753900f6 100644 --- a/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs +++ b/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs @@ -150,7 +150,7 @@ public unsafe partial struct HousingManager { [MemberFunction("E8 ?? ?? ?? ?? 88 45 38")] public static partial bool IsSubmarineExplorationExplored(byte point); - [MemberFunction("E8 ?? ?? ?? ?? 88 45 38")] + [MemberFunction("48 83 EC ?? 45 0F B6 C0 45 33 C9 0F B7 D2")] public static partial void RequestWardInfo(ushort territoryType, ushort wardIndex); public HousingTerritoryType GetCurrentHousingTerritoryType() From 0ce50eca0a7f0baaa0ec5a5ca271d691a95075f3 Mon Sep 17 00:00:00 2001 From: AtmoOmen <110901588+AtmoOmen@users.noreply.github.com> Date: Tue, 22 Sep 2026 00:35:12 +0800 Subject: [PATCH 05/17] Update FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs Co-authored-by: pohky <1510568+pohky@users.noreply.github.com> --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index 5675a05845..ca97dac6ea 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -64,5 +64,5 @@ public unsafe partial struct AgentHousingPortal { /// Doesn't seem to be used /// Doesn't seem to be used [MemberFunction("E8 ?? ?? ?? ?? B3 ?? E9 ?? ?? ?? ?? 83 FD")] - public partial void ShowTeleportConfirm(CStringPointer text, int a3, ushort a4); + public partial void ShowTeleportConfirm(CStringPointer text, uint callbackEventKind, ushort parentAddonId); } From f571e2af4bf0466b7eaf60bd693d9ceaa7c75dd7 Mon Sep 17 00:00:00 2001 From: AtmoOmen <110901588+AtmoOmen@users.noreply.github.com> Date: Tue, 22 Sep 2026 01:44:38 +0800 Subject: [PATCH 06/17] Apply suggestion from @pohky Co-authored-by: pohky <1510568+pohky@users.noreply.github.com> --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index ca97dac6ea..fc023b683f 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -37,7 +37,7 @@ public unsafe partial struct AgentHousingPortal { public partial void ReadPacket(HousingPortalPacket* packet); [MemberFunction("E8 ?? ?? ?? ?? EB ?? BA ?? ?? ?? ?? EB ?? BA ?? ?? ?? ?? EB ?? 48 8B CE")] - public partial void SelectWard(uint wardIndex); + public partial void SelectWard(int wardIndex); /// /// From 34391aa413b54d8b1c340c5092c3bd121366f1f4 Mon Sep 17 00:00:00 2001 From: AtmoOmen <110901588+AtmoOmen@users.noreply.github.com> Date: Tue, 22 Sep 2026 01:51:14 +0800 Subject: [PATCH 07/17] Apply suggestion from @pohky Co-authored-by: pohky <1510568+pohky@users.noreply.github.com> --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index fc023b683f..ca80bd437e 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -43,7 +43,7 @@ public unsafe partial struct AgentHousingPortal { /// /// [MemberFunction("48 89 6C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 41 56 48 83 EC ?? 8B B1 ?? ?? ?? ?? 48 8B F9 83 FE")] - public partial void TeleportToOwnEstateWard(); + public partial bool TeleportToOwnEstateWard(); [MemberFunction("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 41 56 41 57 48 83 EC ?? 48 8B F9 48 8B F2")] public partial void ProcessPortalMenuSelect(AtkValue* values); From 4d13e3cb8d1329d11fe46ab6440a088b23c0fd31 Mon Sep 17 00:00:00 2001 From: AtmoOmen <110901588+AtmoOmen@users.noreply.github.com> Date: Tue, 22 Sep 2026 01:51:22 +0800 Subject: [PATCH 08/17] Apply suggestion from @pohky Co-authored-by: pohky <1510568+pohky@users.noreply.github.com> --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index ca80bd437e..b74e1ccb41 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -49,7 +49,7 @@ public unsafe partial struct AgentHousingPortal { public partial void ProcessPortalMenuSelect(AtkValue* values); [MemberFunction("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 41 56 41 57 48 83 EC ?? 48 8B F1 48 8B DA")] - public partial void ProcessAction(AtkValue* values); + public partial bool ProcessAction(AtkValue* values); [MemberFunction("48 89 5C 24 ?? 57 48 83 EC ?? 48 8B D9 33 FF 89 79 ?? 48 8B CA E8 ?? ?? ?? ?? 83 F8 ?? 0F 84")] public partial void ProcessMenuConfirm(AtkValue* values); From 6d60687f6c41a0dec947fbd5d4c9e1b39be5da79 Mon Sep 17 00:00:00 2001 From: AtmoOmen <110901588+AtmoOmen@users.noreply.github.com> Date: Tue, 22 Sep 2026 01:51:29 +0800 Subject: [PATCH 09/17] Apply suggestion from @pohky Co-authored-by: pohky <1510568+pohky@users.noreply.github.com> --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index b74e1ccb41..09789d0238 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -55,7 +55,7 @@ public unsafe partial struct AgentHousingPortal { public partial void ProcessMenuConfirm(AtkValue* values); [MemberFunction("40 53 48 83 EC ?? 48 8B D9 C7 41 ?? ?? ?? ?? ?? 48 8B CA E8 ?? ?? ?? ?? 85 C0 75 ?? 44 8B 43")] - public partial void ConfirmTeleport(AtkValue* values); + public partial bool ConfirmTeleport(AtkValue* values); [MemberFunction("E8 ?? ?? ?? ?? 48 8B 74 24 ?? B1 ?? EB")] public partial void OpenPortalMenu(ushort territoryType, AtkModuleInterface.AtkEventInterface* eventInterface, uint menuAction); From 34be2412e82e34c049c076c74773d46f0910c28f Mon Sep 17 00:00:00 2001 From: AtmoOmen <110901588+AtmoOmen@users.noreply.github.com> Date: Tue, 22 Sep 2026 01:51:36 +0800 Subject: [PATCH 10/17] Apply suggestion from @pohky Co-authored-by: pohky <1510568+pohky@users.noreply.github.com> --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index 09789d0238..8c4c220688 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -52,7 +52,7 @@ public unsafe partial struct AgentHousingPortal { public partial bool ProcessAction(AtkValue* values); [MemberFunction("48 89 5C 24 ?? 57 48 83 EC ?? 48 8B D9 33 FF 89 79 ?? 48 8B CA E8 ?? ?? ?? ?? 83 F8 ?? 0F 84")] - public partial void ProcessMenuConfirm(AtkValue* values); + public partial bool ProcessMenuConfirm(AtkValue* values); [MemberFunction("40 53 48 83 EC ?? 48 8B D9 C7 41 ?? ?? ?? ?? ?? 48 8B CA E8 ?? ?? ?? ?? 85 C0 75 ?? 44 8B 43")] public partial bool ConfirmTeleport(AtkValue* values); From d30224c3193f20f2003b92a51e3ec8ac2ac4ade4 Mon Sep 17 00:00:00 2001 From: AtmoOmen <110901588+AtmoOmen@users.noreply.github.com> Date: Tue, 22 Sep 2026 01:51:44 +0800 Subject: [PATCH 11/17] Apply suggestion from @pohky Co-authored-by: pohky <1510568+pohky@users.noreply.github.com> --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index 8c4c220688..ec72928b24 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -60,9 +60,6 @@ public unsafe partial struct AgentHousingPortal { [MemberFunction("E8 ?? ?? ?? ?? 48 8B 74 24 ?? B1 ?? EB")] public partial void OpenPortalMenu(ushort territoryType, AtkModuleInterface.AtkEventInterface* eventInterface, uint menuAction); - /// Text in SelectYesno - /// Doesn't seem to be used - /// Doesn't seem to be used [MemberFunction("E8 ?? ?? ?? ?? B3 ?? E9 ?? ?? ?? ?? 83 FD")] public partial void ShowTeleportConfirm(CStringPointer text, uint callbackEventKind, ushort parentAddonId); } From 2da66354027a7b7072fbf5148e7773a8c32a47b7 Mon Sep 17 00:00:00 2001 From: AtmoOmen <110901588+AtmoOmen@users.noreply.github.com> Date: Tue, 22 Sep 2026 01:51:52 +0800 Subject: [PATCH 12/17] Apply suggestion from @pohky Co-authored-by: pohky <1510568+pohky@users.noreply.github.com> --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index ec72928b24..e2a53bcc41 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -46,7 +46,7 @@ public unsafe partial struct AgentHousingPortal { public partial bool TeleportToOwnEstateWard(); [MemberFunction("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 41 56 41 57 48 83 EC ?? 48 8B F9 48 8B F2")] - public partial void ProcessPortalMenuSelect(AtkValue* values); + public partial bool ProcessPortalMenuSelect(AtkValue* values); [MemberFunction("48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 41 56 41 57 48 83 EC ?? 48 8B F1 48 8B DA")] public partial bool ProcessAction(AtkValue* values); From 3d70fa4c8ee973473eca48903da2d7f439eb0083 Mon Sep 17 00:00:00 2001 From: AtmoOmen <110901588+AtmoOmen@users.noreply.github.com> Date: Tue, 22 Sep 2026 01:52:07 +0800 Subject: [PATCH 13/17] Apply suggestion from @pohky Co-authored-by: pohky <1510568+pohky@users.noreply.github.com> --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index e2a53bcc41..f5fe519ebe 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -21,7 +21,7 @@ public unsafe partial struct AgentHousingPortal { [FieldOffset(0x3C)] public int SelectedWardIndex; [FieldOffset(0x40)] public uint PlotCount; - [FieldOffset(0x44), FixedSizeArray] internal FixedSizeArray60 _plotOccupied; + [FieldOffset(0x44), FixedSizeArray] internal FixedSizeArray60 _plotOccupied; /// /// 0 - Personal Estate
From f3b49bef8ef48c7cf57bff89e619b5ac8154aefe Mon Sep 17 00:00:00 2001 From: AtmoOmen Date: Tue, 22 Sep 2026 01:58:14 +0800 Subject: [PATCH 14/17] rename TeleportEstateType to SelectedMenuAction --- .../FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index f5fe519ebe..d028b10a74 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -24,12 +24,14 @@ public unsafe partial struct AgentHousingPortal { [FieldOffset(0x44), FixedSizeArray] internal FixedSizeArray60 _plotOccupied; /// - /// 0 - Personal Estate
- /// 1 - Free Company Estate
- /// 2 - Apartment Room
+ /// 0 - Teleport to Personal Estate ward
+ /// 1 - Teleport to Free Company Estate ward
+ /// 2 - Teleport to Apartment Room ward
+ /// 3 - Clear ward selection
+ /// 4 - Unknown
+ /// 5 - Unknown
///
- [FieldOffset(0x80)] public int TeleportEstateType; - + [FieldOffset(0x80)] public int SelectedMenuAction; [FieldOffset(0x84), FixedSizeArray] internal FixedSizeArray6 _menuActions; [FieldOffset(0x9C), FixedSizeArray] public uint MenuItemCount; @@ -40,7 +42,7 @@ public unsafe partial struct AgentHousingPortal { public partial void SelectWard(int wardIndex); /// - /// + /// /// [MemberFunction("48 89 6C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 41 56 48 83 EC ?? 8B B1 ?? ?? ?? ?? 48 8B F9 83 FE")] public partial bool TeleportToOwnEstateWard(); From 24c2c2d4027ac4c76c66db2cb799f810e024f02a Mon Sep 17 00:00:00 2001 From: AtmoOmen <110901588+AtmoOmen@users.noreply.github.com> Date: Tue, 22 Sep 2026 12:30:00 +0800 Subject: [PATCH 15/17] Update FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs Co-authored-by: pohky <1510568+pohky@users.noreply.github.com> --- FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs b/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs index 2d753900f6..5304054d02 100644 --- a/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs +++ b/FFXIVClientStructs/FFXIV/Client/Game/HousingManager.cs @@ -151,7 +151,7 @@ public unsafe partial struct HousingManager { public static partial bool IsSubmarineExplorationExplored(byte point); [MemberFunction("48 83 EC ?? 45 0F B6 C0 45 33 C9 0F B7 D2")] - public static partial void RequestWardInfo(ushort territoryType, ushort wardIndex); + public static partial void RequestWardInfo(ushort territoryType, byte wardIndex); public HousingTerritoryType GetCurrentHousingTerritoryType() => CurrentTerritory != null ? CurrentTerritory->GetTerritoryType() : HousingTerritoryType.None; From d462b7e17d57acaa82e49a26c882266604f58837 Mon Sep 17 00:00:00 2001 From: AtmoOmen Date: Tue, 22 Sep 2026 12:38:26 +0800 Subject: [PATCH 16/17] MenuItemCount --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index d028b10a74..6e13944586 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -33,7 +33,7 @@ public unsafe partial struct AgentHousingPortal { ///
[FieldOffset(0x80)] public int SelectedMenuAction; [FieldOffset(0x84), FixedSizeArray] internal FixedSizeArray6 _menuActions; - [FieldOffset(0x9C), FixedSizeArray] public uint MenuItemCount; + [FieldOffset(0x9C)] public uint MenuItemCount; [MemberFunction("40 55 53 41 54 41 55 41 57 48 8D AC 24 ?? ?? ?? ?? B8")] public partial void ReadPacket(HousingPortalPacket* packet); From 27fae6c5cea1df58af355ab6c91150745966cd89 Mon Sep 17 00:00:00 2001 From: pohky <1510568+pohky@users.noreply.github.com> Date: Wed, 30 Sep 2026 13:26:08 +0200 Subject: [PATCH 17/17] Update AgentHousingPortal.cs --- FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs index 6e13944586..e0ab0ac7f9 100644 --- a/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs +++ b/FFXIVClientStructs/FFXIV/Client/UI/Agent/AgentHousingPortal.cs @@ -15,12 +15,10 @@ public unsafe partial struct AgentHousingPortal { [FieldOffset(0x30)] public uint ConfirmAddonId; [FieldOffset(0x34)] public ushort PortalMenuAddonId; [FieldOffset(0x36)] public ushort WardSelectAddonId; - [FieldOffset(0x38)] public ushort TerritoryType; [FieldOffset(0x3C)] public int SelectedWardIndex; - [FieldOffset(0x40)] public uint PlotCount; [FieldOffset(0x44), FixedSizeArray] internal FixedSizeArray60 _plotOccupied; ///