diff --git a/src/world/Network/PacketWrappers/PlayerSetupPacket.h b/src/world/Network/PacketWrappers/PlayerSetupPacket.h index ae57bc18..cbe1fdc4 100644 --- a/src/world/Network/PacketWrappers/PlayerSetupPacket.h +++ b/src/world/Network/PacketWrappers/PlayerSetupPacket.h @@ -25,8 +25,6 @@ namespace Sapphire::Network::Packets::Server private: void initialize( Entity::Player& player ) { - memset( &m_data.unknownOword[ 0 ], 255, reinterpret_cast< uint64_t >( &m_data.unknown5_55c ) - reinterpret_cast< uint64_t >( &m_data.unknownOword[ 0 ] ) ); - m_data.contentId = player.getContentId(); // TODO: Support rested experience. @@ -52,7 +50,7 @@ namespace Sapphire::Network::Packets::Server memset( &m_data.name[ 0 ], 0, sizeof( m_data.name ) ); strcpy( &m_data.name[ 0 ], player.getName().c_str() ); - //memcpy( m_data.aetheryte, player.getAetheryteArray(), sizeof( m_data.aetheryte ) ); + memcpy( m_data.aetheryte, player.getAetheryteArray(), sizeof( m_data.aetheryte ) ); // Set the class levels and exp. for( uint8_t i = 0; i < Common::CLASSJOB_SLOTS; i++ ) @@ -61,36 +59,35 @@ namespace Sapphire::Network::Packets::Server m_data.exp[ i ] = player.getExpArray()[ i ]; } - //memcpy( m_data.orchestrionMask, player.getOrchestrionBitmask(), sizeof( m_data.orchestrionMask ) ); - //m_data.orchestrionMask[0] = 0xFE; - //memcpy( m_data.mountGuideMask, player.getMountGuideBitmask(), sizeof( m_data.mountGuideMask ) ); - memset( m_data.mountGuideMask, 0xFF, sizeof( m_data.mountGuideMask ) ); - - //memcpy( m_data.unlockBitmask, player.getUnlockBitmask(), sizeof( m_data.unlockBitmask ) ); - //m_data.unlockBitmask[0] = 0xFD; - //memcpy( m_data.discovery, player.getDiscoveryBitmask(), sizeof( m_data.discovery ) ); - //m_data.discovery[0] = 0xFB; - //memcpy( m_data.howto, player.getHowToArray(), sizeof( m_data.howto ) ); - //m_data.howto[0] = 0xEF; + memcpy( m_data.orchestrionMask, player.getOrchestrionBitmask(), sizeof( m_data.orchestrionMask ) ); + + memcpy( m_data.mountGuideMask, player.getMountGuideBitmask(), sizeof( m_data.mountGuideMask ) ); + + memcpy( m_data.unlockBitmask, player.getUnlockBitmask(), sizeof( m_data.unlockBitmask ) ); + + memcpy( m_data.discovery, player.getDiscoveryBitmask(), sizeof( m_data.discovery ) ); + + memcpy( m_data.howto, player.getHowToArray(), sizeof( m_data.howto ) ); + // possibly max level or current level m_data.maxLevel = Common::MAX_PLAYER_LEVEL; m_data.expansion = Common::CURRENT_EXPANSION_ID; // df stuff // todo: actually do this properly - // m_data.unknown70[4] = 1; // enable df + // m_data.unknown70[4] = 1; // enable df // enable all raids/guildhests/dungeons memset( m_data.unlockedDungeons, 0xFF, sizeof( m_data.unlockedDungeons ) ); - //m_data.unlockedDungeons[0] = 0xEE; memset( m_data.unlockedGuildhests, 0xFF, sizeof( m_data.unlockedGuildhests ) ); - //m_data.unlockedGuildhests[0] = 0xDF; memset( m_data.unlockedPvp, 0xFF, sizeof( m_data.unlockedPvp ) ); - //m_data.unlockedPvp[0] = 0xDE; memset( m_data.unlockedRaids, 0xFF, sizeof( m_data.unlockedRaids ) ); - //m_data.unlockedRaids[0] = 0xDD; memset( m_data.unlockedTrials, 0xFF, sizeof( m_data.unlockedTrials ) ); - //m_data.unlockedTrials[0] = 0xDB; + + //custom unlock + //memset( &m_data.unknownOword[ 0 ], 255, reinterpret_cast< uint64_t >( &m_data.unknown5_55c ) - reinterpret_cast< uint64_t >( &m_data.unknownOword[ 0 ] ) ); + memset( m_data.unlockBitmask, 0xFF, sizeof( m_data.unlockBitmask ) ); + memset( m_data.mountGuideMask, 0xFF, sizeof( m_data.mountGuideMask ) ); }; };