1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-27 22:57:45 +00:00

add preliminary hierarchy data to ls commonlist;

This commit is contained in:
Alice Ogeda 2021-12-05 18:30:35 -03:00
parent 2b8a3ba8a0
commit 57d5982309
2 changed files with 34 additions and 2 deletions

View file

@ -1013,8 +1013,13 @@ namespace Sapphire::Common
uint8_t status;
uint8_t type;
uint8_t group;
uint8_t unk;
uint8_t unavailable;
} data;
struct Hierarchy32 {
uint32_t date;
uint32_t rawId;
} u32;
};
/* 61719 */

View file

@ -213,10 +213,37 @@ void Sapphire::Network::GameConnection::getCommonlistHandler( const Packets::FFX
auto& inviteSet = lsPtr->getInviteIdList();
std::vector< uint64_t > memberVec;
std::vector< Common::HierarchyData > hierarchyData;
std::copy( memberSet.begin(), memberSet.end(), std::back_inserter( memberVec ) );
std::copy( inviteSet.begin(), inviteSet.end(), std::back_inserter( memberVec ) );
page = generateEntries( memberVec, offset, {} );
for( const auto& id : memberVec )
{
Common::HierarchyData hierarchy;
if( lsPtr->getMasterId() == id )
{
hierarchy.data.type = Ls::LinkshellHierarchy::Master;
hierarchy.u32.rawId |= 1ul << 11;
}
else if( lsPtr->getLeaderIdList().count( id ) )
{
hierarchy.data.type = Ls::LinkshellHierarchy::Leader;
hierarchy.u32.rawId |= 1ul << 11;
}
else if( lsPtr->getInviteIdList().count( id ) )
{
hierarchy.data.type = Ls::LinkshellHierarchy::Invite;
}
else
{
hierarchy.data.type = Ls::LinkshellHierarchy::Member;
hierarchy.u32.rawId |= 1ul << 11;
}
hierarchyData.push_back( hierarchy );
}
page = generateEntries( memberVec, offset, hierarchyData );
}
}
else if( data.ListType == 0x0e )