diff --git a/src/common/Common.h b/src/common/Common.h index 854f9d6f..14be767a 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -566,6 +566,18 @@ namespace Sapphire::Common }; + enum FieldMarkerStatus : uint32_t + { + A = 0x1, + B = 0x2, + C = 0x4, + D = 0x8, + One = 0x10, + Two = 0x20, + Three = 0x40, + Four = 0x80 + }; + enum struct ActionAspect : uint8_t { None = 0, // Doesn't imply unaspected diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index f6dba912..9187be45 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -336,8 +336,8 @@ namespace Sapphire::Network::Packets ClientTrigger = 0x017D, // updated 5.25 DiscoveryHandler = 0x02C8, // updated 5.25 - PlaceFieldMarkerPreset = 0x23F, // updated 5.25 - PlaceFieldMarker = 0x013C, // updated 5.0 + PlaceFieldMarkerPreset = 0x023F, // updated 5.25 + PlaceFieldMarker = 0x01BA, // updated 5.25 SkillHandler = 0x0241, // updated 5.25 GMCommand1 = 0x01EC, // updated 5.25 GMCommand2 = 0x0368, // updated 5.25 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index cf00709c..6da042a6 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1687,25 +1687,28 @@ namespace Sapphire::Network::Packets::Server */ struct FFXIVIpcPlaceFieldMarkerPreset : FFXIVIpcBasePacket< PlaceFieldMarkerPreset > { - enum FieldMarkerStatus - { - A = 0x1, - B = 0x2, - C = 0x4, - D = 0x8, - One = 0x10, - Two = 0x20, - Three = 0x40, - Four = 0x80 - }; /*! which fieldmarks to show */ - enum FieldMarkerStatus status; + Common::FieldMarkerStatus status; /*! A coordinates would be (float)Xints[0]/1000.0, (float)Yints[0]/1000.0, (float)Zints[0]/1000.0 */ uint32_t Xints[8]; uint32_t Yints[8]; uint32_t Zints[8]; }; + /** + * Structural representation of the packet sent by the server + * to place/remove a field marker + */ + struct FFXIVIpcPlaceFieldMarker : FFXIVIpcBasePacket< PlaceFieldMarker > + { + uint8_t markerId; + uint8_t status; + uint8_t pad[2]; + uint32_t Xint; + uint32_t Yint; + uint32_t Zint; + }; + /** * Structural representation of the packet sent by the server * to mount a player