1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 14:37:44 +00:00

fix searchinfo update, add searchinfo ipc struct

This commit is contained in:
NotAdam 2018-07-07 16:50:11 +10:00
parent 7607f42a67
commit 0fa55e3d9a
4 changed files with 36 additions and 12 deletions

View file

@ -27,6 +27,14 @@ namespace Common {
float z;
};
enum ClientLanguage : uint8_t
{
Japanese = 1,
English = 2,
German = 4,
French = 8
};
enum EquipSlot : uint8_t
{
MainHand = 0,

View file

@ -9,6 +9,8 @@ namespace Network {
namespace Packets {
namespace Client {
#pragma pack(push, 1)
struct FFXIVIpcGmCommand1 : FFXIVIpcBasePacket< GMCommand1 >
{
/* 0000 */ uint32_t commandId;
@ -25,8 +27,6 @@ struct FFXIVIpcGmCommand2 : FFXIVIpcBasePacket< GMCommand2 >
/* 0014 */ char param1[0x20];
};
#pragma pack(push, 4)
struct FFXIVIpcClientTrigger : FFXIVIpcBasePacket< ClientTrigger >
{
/* 0000 */ uint16_t commandId;
@ -47,8 +47,6 @@ struct FFXIVIpcClientTrigger : FFXIVIpcBasePacket< ClientTrigger >
/* 0018 */ uint64_t param3;
};
#pragma pack(pop)
struct FFXIVIpcSkillHandler : FFXIVIpcBasePacket< SkillHandler >
{
/* 0000 */ char pad_0000[1];
@ -119,6 +117,25 @@ struct FFXIVIpcPingHandler : FFXIVIpcBasePacket< PingHandler >
/* 0000 */ uint32_t timestamp; // maybe lol..
};
struct FFXIVIpcSetSearchInfo : FFXIVIpcBasePacket< SetSearchInfoHandler >
{
union
{
/* 0000 */ uint64_t status;
struct
{
/* 0000 */ uint32_t status1;
/* 0004 */ uint32_t status2;
};
};
/* 0008 */ char pad_0008[9];
/* 0011 */ Common::ClientLanguage language;
/* 0012 */ char searchComment[193];
};
#pragma pack(pop)
}
}
}

View file

@ -488,7 +488,7 @@ void Core::Entity::Player::updateDbSearchInfo() const
stmtS1->setInt( 2, m_id );
pDb->execute( stmtS1 );
auto stmtS2 = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SELECTREGION );
auto stmtS2 = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SEARCHCOMMENT );
stmtS2->setString( 1, string( m_searchMessage != nullptr ? m_searchMessage : "" ) );
stmtS2->setInt( 2, m_id );
pDb->execute( stmtS2 );

View file

@ -63,15 +63,14 @@ void Core::Network::GameConnection::fcInfoReqHandler( const Core::Network::Packe
void Core::Network::GameConnection::setSearchInfoHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player )
{
Packets::FFXIVARR_PACKET_RAW copy = inPacket;
const auto packet = ZoneChannelPacket< Client::FFXIVIpcSetSearchInfo >( inPacket, true );
auto inval = *reinterpret_cast< uint32_t* >( &copy.data[0x10] );
auto inval1 = *reinterpret_cast< uint32_t* >( &copy.data[0x14] );
auto status = *reinterpret_cast< uint64_t* >( &copy.data[0x10] );
const auto& inval = packet.data().status1;
const auto& inval1 = packet.data().status2;
const auto& status = packet.data().status;
const auto& selectRegion = packet.data().language;
auto selectRegion = copy.data[0x21];
player.setSearchInfo( selectRegion, 0, reinterpret_cast< char* >( &copy.data[0x22] ) );
player.setSearchInfo( selectRegion, 0, packet.data().searchComment );
player.setOnlineStatusMask( status );