From 5051c7a2de44bf4f4c787cdcde9e083c21b70782 Mon Sep 17 00:00:00 2001 From: Biscuit Boy Date: Wed, 26 Sep 2018 03:22:30 +1000 Subject: [PATCH 1/6] Add Shared Estate Settings PacketDef and ClientTrigger --- src/common/Network/CommonActorControl.h | 2 ++ src/common/Network/PacketDef/Ipcs.h | 4 ++++ .../Network/PacketDef/Zone/ServerZoneDef.h | 21 +++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 8dc22704..588afba0 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -287,6 +287,8 @@ enum ClientTriggerType AchievementCritReq = 0x3E8, AchievementList = 0x3E9, + RequestSharedEstateSettings = 0x46F, + CompanionAction = 0x6A4, CompanionSetBarding = 0x6A5, CompanionActionUnlock = 0x6A6, diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 42166f17..4d1c1360 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -187,6 +187,8 @@ enum ServerZoneIpcType : WardHousingPermission = 0x0229, // updated 4.4 WardYardInfo = 0x022B, // updated 4.4 + SharedEstateSettingsResponse = 0x023C, // updated 4.4 + DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui PerformNote = 0x0286, // updated 4.3 @@ -280,6 +282,8 @@ enum ClientZoneIpcType : LinkshellEventHandler = 0x0150, // updated 4.1 ?? LinkshellEventHandler1 = 0x0151, // updated 4.1 ?? + SetSharedEstateSettings = 0x0177, // updated 4.4 + PerformNoteHandler = 0x029B, // updated 4.3 ReqEquipDisplayFlagsChange = 0x016F, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index cc26c3e1..a0d625b6 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1592,6 +1592,27 @@ struct FFXIVIpcWardYardInfo : } object[100]; }; +/** +* Structural representation of the packet sent by the server +* to show the shared estate settings +*/ +struct FFXIVIpcActorFreeSpawn : + FFXIVIpcBasePacket< SharedEstateSettingsResponse > +{ + uint64_t char1ContentId; + uint8_t char1Permissions; + char char1Name[0x20]; + char padding1[0x7]; + uint64_t char2ContentId; + uint8_t char2Permissions; + char char2Name[0x20]; + char padding2[0x7]; + uint64_t char3ContentId; + uint8_t char3Permissions; + char char3Name[0x20]; + char padding3[0x7]; +}; + struct FFXIVIpcMSQTrackerProgress : FFXIVIpcBasePacket< MSQTrackerProgress > { From 9d10c65f19fd492651a1b33fcd9de043bc4b18b6 Mon Sep 17 00:00:00 2001 From: Biscuit Boy Date: Wed, 26 Sep 2018 03:23:31 +1000 Subject: [PATCH 2/6] Should mention it's the current --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index a0d625b6..0cf87f85 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1594,7 +1594,7 @@ struct FFXIVIpcWardYardInfo : /** * Structural representation of the packet sent by the server -* to show the shared estate settings +* to show the current shared estate settings */ struct FFXIVIpcActorFreeSpawn : FFXIVIpcBasePacket< SharedEstateSettingsResponse > From 07693cbf46c4c6d2dca92e5236b21fccb843cf08 Mon Sep 17 00:00:00 2001 From: Biscuit Boy Date: Wed, 26 Sep 2018 03:32:05 +1000 Subject: [PATCH 3/6] oops forgot the ClientDef --- src/common/Network/PacketDef/Zone/ClientZoneDef.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 3f751d4f..c5552526 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -183,6 +183,20 @@ struct FFXIVIpcInventoryModifyHandler : /* 0028 */ uint32_t splitCount; }; +struct FFXIVIpcSetSharedEstateSettings : + FFXIVIpcBasePacket< SetSharedEstateSettings > +{ + /* 0000 */ uint64_t char1ContentId; + /* 0008 */ uint64_t char2ContentId; + /* 0010 */ uint64_t char3ContentId; + /* 0018 */ uint8_t char1Permissions; + /* 0019 */ char padding1[0x7]; + /* 0020 */ uint8_t char2Permissions; + /* 0021 */ char padding2[0x7]; + /* 0028 */ uint8_t char3Permissions; + /* 0029 */ char padding3[0x7]; +}; + } } } From 95746e3219d297f1cec1df15786976228cfa76e3 Mon Sep 17 00:00:00 2001 From: Biscuit Date: Thu, 11 Oct 2018 15:44:15 +1100 Subject: [PATCH 4/6] derp, they should be in their own struct --- .../Network/PacketDef/Zone/ServerZoneDef.h | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 0cf87f85..b786e13c 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1599,18 +1599,12 @@ struct FFXIVIpcWardYardInfo : struct FFXIVIpcActorFreeSpawn : FFXIVIpcBasePacket< SharedEstateSettingsResponse > { - uint64_t char1ContentId; - uint8_t char1Permissions; - char char1Name[0x20]; - char padding1[0x7]; - uint64_t char2ContentId; - uint8_t char2Permissions; - char char2Name[0x20]; - char padding2[0x7]; - uint64_t char3ContentId; - uint8_t char3Permissions; - char char3Name[0x20]; - char padding3[0x7]; + struct playerEntry { + uint64_t contentId; + uint8_t permissions; + char name[0x20]; + char padding[0x7]; + } entry[3]; }; struct FFXIVIpcMSQTrackerProgress : From eda3f971d505253ee7c5b164f50d27a5d9573153 Mon Sep 17 00:00:00 2001 From: Biscuit Date: Thu, 11 Oct 2018 16:09:53 +1100 Subject: [PATCH 5/6] Fixed Level up / Fixed Build --- src/common/Network/PacketDef/Ipcs.h | 4 ++-- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 4d1c1360..c2d9c6dd 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -127,7 +127,7 @@ enum ServerZoneIpcType : ObjectSpawn = 0x0179, // updated 4.4 ObjectDespawn = 0x017A, // updated 4.4 - SetLevelSync = 0x017B, // updated 4.4 + UpdateClassInfo = 0x017B, // updated 4.4 SilentSetClassJob = 0x017C, // updated 4.4 - seems to be the case, not sure if it's actually used for anything InitUI = 0x017D, // updated 4.4 @@ -138,7 +138,7 @@ enum ServerZoneIpcType : ModelEquip = 0x0182, // updated 4.4 Examine = 0x0183, // updated 4.4 CharaNameReq = 0x0185, // updated 4.4 - UpdateClassInfo = 0x0186, // updated 4.4 + SetLevelSync = 0x0186, // not updated for 4.4, not sure what it is anymore ItemInfo = 0x018C, // updated 4.4 ContainerInfo = 0x018D, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index b786e13c..1fb94f8b 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1596,7 +1596,7 @@ struct FFXIVIpcWardYardInfo : * Structural representation of the packet sent by the server * to show the current shared estate settings */ -struct FFXIVIpcActorFreeSpawn : +struct FFXIVIpcSharedEstateSettingsResponse : FFXIVIpcBasePacket< SharedEstateSettingsResponse > { struct playerEntry { From 3060c102643d0cc87971a956a47fdaadb3b6de5c Mon Sep 17 00:00:00 2001 From: Biscuit Date: Thu, 11 Oct 2018 17:15:52 +1100 Subject: [PATCH 6/6] I WAS SO CLOSE --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 1fb94f8b..b4115dc4 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1599,7 +1599,8 @@ struct FFXIVIpcWardYardInfo : struct FFXIVIpcSharedEstateSettingsResponse : FFXIVIpcBasePacket< SharedEstateSettingsResponse > { - struct playerEntry { + struct playerEntry + { uint64_t contentId; uint8_t permissions; char name[0x20];