@ -112,37 +112,40 @@ void Player::update()
{
auto plPCtrl = mwmp : : Networking : : get ( ) . getPlayerPacketController ( ) ;
if ( inventory. isEquipmentChanged ( ) )
if ( baseInfoChanged )
{
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_ EQUIPMENT ) ;
packet - > setPlayer ( this ) ;
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_ BASEINFO ) ;
packet - > setPlayer ( basePlayer ) ;
packet - > Send ( false ) ;
packet - > Send ( true ) ;
inventory . resetEquipmentFlag ( ) ;
}
if ( inventory . inventoryChangeType ( ) ! = 0 )
// The character class can override values from below on the client, so send it first
cClass . update ( ) ;
if ( statsChanged )
{
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_EQUIPMENT ) ;
packet - > setPlayer ( this ) ;
packet - > Send ( /*toOthers*/ false ) ;
inventory. resetInventoryFlag ( ) ;
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_ STATS_DYNAMIC ) ;
packet - > setPlayer ( basePlayer ) ;
packet - > Send ( false ) ;
packet- > Send ( true ) ;
}
if ( attributes Changed)
if ( position Changed)
{
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_ ATTRIBUTE ) ;
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_ POSITION ) ;
packet - > setPlayer ( basePlayer ) ;
packet - > Send ( false ) ;
packet - > Send ( true ) ;
}
if ( statsChanged )
if ( attributesChanged )
{
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_ STATS_DYNAMIC ) ;
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_ ATTRIBUTE ) ;
packet - > setPlayer ( basePlayer ) ;
packet - > Send ( false ) ;
packet - > Send ( true ) ;
}
if ( skillsChanged )
{
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_SKILL ) ;
@ -150,19 +153,22 @@ void Player::update()
packet - > Send ( false ) ;
packet - > Send ( true ) ;
}
if ( baseInfoChanged )
if ( inventory . isEquipmentChanged ( ) )
{
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_ BASEINFO ) ;
packet - > setPlayer ( basePlayer ) ;
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_ EQUIPMENT ) ;
packet - > setPlayer ( this ) ;
packet - > Send ( false ) ;
packet - > Send ( true ) ;
inventory . resetEquipmentFlag ( ) ;
}
if ( positionChanged )
if ( inventory. inventoryChangeType ( ) ! = 0 )
{
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_POSITION ) ;
packet - > setPlayer ( basePlayer ) ;
packet - > Send ( false ) ;
auto packet = plPCtrl - > GetPacket ( ID_PLAYER_EQUIPMENT ) ;
packet - > setPlayer ( this ) ;
packet - > Send ( /*toOthers*/ false ) ;
inventory . resetInventoryFlag ( ) ;
}
if ( changedMap )
@ -181,7 +187,6 @@ void Player::update()
cellAPI . resetChangedCell ( ) ;
}
cClass . update ( ) ;
settings . update ( ) ;
books . update ( ) ;
gui . update ( ) ;