diff --git a/src/servers/Server_Common/Network/GamePacket.h b/src/servers/Server_Common/Network/GamePacket.h index d98f0316..6fcc584e 100644 --- a/src/servers/Server_Common/Network/GamePacket.h +++ b/src/servers/Server_Common/Network/GamePacket.h @@ -45,31 +45,37 @@ public: template T getValAt( uint16_t pos ) const { - assert(m_segHdr.size > pos); + assert( m_segHdr.size > pos ); return *reinterpret_cast< const T* >( &m_dataBuf[0] + pos ); } void setBytesAt( uint16_t offset, uint8_t * bytes, uint16_t length ) { - assert(m_segHdr.size > offset); + assert( m_segHdr.size > offset ); memcpy( reinterpret_cast< uint8_t* >( &m_dataBuf[0] + offset ), bytes, length ); } const char * getStringAt( uint16_t pos ) const { - assert(m_segHdr.size > pos); + assert( m_segHdr.size > pos ); return reinterpret_cast< const char* >( &m_dataBuf[0] + pos ); } void setStringAt( uint16_t pos, const std::string& str ) { - assert(m_segHdr.size > pos); + assert( m_segHdr.size > pos ); memcpy( reinterpret_cast< uint8_t* >( &m_dataBuf[0] + pos ), str.c_str(), str.length() ); } - uint8_t * getData() + const uint8_t * getData() const { - return reinterpret_cast< uint8_t* >( &m_dataBuf[0] ); + return reinterpret_cast< const uint8_t* >( &m_dataBuf[0] ); + } + + const uint8_t * getDataAt(uint16_t pos) const + { + assert( m_segHdr.size > pos ); + return reinterpret_cast< const uint8_t* >( &m_dataBuf[0] + pos ); } void setHeader( uint16_t size, uint16_t type, uint32_t id1, uint32_t id2, uint16_t subType, uint32_t unknown = 0xFED2E000 ); diff --git a/src/servers/Server_Zone/Network/Handlers/PacketHandlers.cpp b/src/servers/Server_Zone/Network/Handlers/PacketHandlers.cpp index 0f397f2a..4fc80e64 100644 --- a/src/servers/Server_Zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/Server_Zone/Network/Handlers/PacketHandlers.cpp @@ -601,10 +601,10 @@ void Core::Network::GameConnection::tellHandler( const Packets::GamePacket& inPa void Core::Network::GameConnection::performNoteHandler( const Packets::GamePacket& inPacket, Entity::Player& player ) { - GamePacketNew< FFXIVIpcPerformNote, ServerZoneIpcType > performPacket( player.getId() ); + ZoneChannelPacket< FFXIVIpcPerformNote > performPacket( player.getId() ); - uint8_t inVal = inPacket.getValAt< uint8_t >( 0x20 ); - memcpy( &performPacket.data().data[0], &inVal, 32 ); + auto inVal = inPacket.getDataAt( 0x20 ); + memcpy( &performPacket.data().data[0], inVal, 32 ); player.sendToInRangeSet( performPacket ); }