From 1c4392cc0af09c6f47dd3dfd279e745d467ee9b1 Mon Sep 17 00:00:00 2001 From: Maru Date: Fri, 6 Oct 2017 20:40:27 -0300 Subject: [PATCH] Basic title list handling; --- src/servers/Server_Common/Network/PacketDef/Ipcs.h | 1 + .../Network/PacketDef/Zone/ServerZoneDef.h | 10 +++++++++- .../Server_Zone/Network/Handlers/ActionHandler.cpp | 10 ++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/servers/Server_Common/Network/PacketDef/Ipcs.h b/src/servers/Server_Common/Network/PacketDef/Ipcs.h index b4ade11c..22a7ed3f 100644 --- a/src/servers/Server_Common/Network/PacketDef/Ipcs.h +++ b/src/servers/Server_Common/Network/PacketDef/Ipcs.h @@ -114,6 +114,7 @@ namespace Packets { ActorFreeSpawn = 0x0191, // unchanged for sb InitZone = 0x019A, // unchanged for sb WeatherChange = 0x01AF, // updated for sb + PlayerTitleList = 0x01B1, // updated for 4.06 Discovery = 0x01B2, // updated for sb EorzeaTimeOffset = 0x01B4, diff --git a/src/servers/Server_Common/Network/PacketDef/Zone/ServerZoneDef.h b/src/servers/Server_Common/Network/PacketDef/Zone/ServerZoneDef.h index a9c5905f..bfae778b 100644 --- a/src/servers/Server_Common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/servers/Server_Common/Network/PacketDef/Zone/ServerZoneDef.h @@ -638,7 +638,15 @@ struct FFXIVIpcUpdateClassInfo : FFXIVIpcBasePacket uint32_t currentExp; uint32_t restedExp; }; - +/** + * Structural representation of the packet sent by the server + * to send the titles available to the player + */ +struct FFXIVIpcPlayerTitleList : FFXIVIpcBasePacket +{ + char padding; + uint32_t bitmask; +}; /** * Structural representation of the packet sent by the server diff --git a/src/servers/Server_Zone/Network/Handlers/ActionHandler.cpp b/src/servers/Server_Zone/Network/Handlers/ActionHandler.cpp index 09d76e94..c98780c5 100644 --- a/src/servers/Server_Zone/Network/Handlers/ActionHandler.cpp +++ b/src/servers/Server_Zone/Network/Handlers/ActionHandler.cpp @@ -118,6 +118,16 @@ void Core::Network::GameConnection::actionHandler( const Packets::GamePacket& in pPlayer->getCurrentAction()->setInterrupted(); break; } + case 0x12F: // Get title list + { + g_log.debug( "for real" ); + /* + GamePacketNew< FFXIVIpcPlayerTitleList, ServerZoneIpcType > titleListPacket( pPlayer->getId() ); + titleListPacket.data().bitmask = 0; + titleListPacket.data().bitmask |= 1; + pPlayer->queuePacket( titleListPacket ); + */ + } case 0x133: // Update howtos seen { uint32_t howToId = static_cast< uint32_t >( param1 );