[11458] Non-item related uint64 guids replaced by ObjectGUids in Player.h

Also let ObjectAccessor::FindPlayer optimize empty guid case work.
This commit is contained in:
VladimirMangos 2011-05-09 21:47:28 +04:00
parent 1d781cd431
commit 151e5eae9c
13 changed files with 123 additions and 125 deletions

View file

@ -131,7 +131,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
)
{
_player->PlayerTalkClass->CloseGossip();
_player->SetDivider( 0 );
_player->ClearDividerGuid();
return;
}
@ -142,18 +142,14 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
if(!GetPlayer()->CanTakeQuest(qInfo,true) )
{
_player->PlayerTalkClass->CloseGossip();
_player->SetDivider( 0 );
_player->ClearDividerGuid();
return;
}
if( _player->GetDivider() != 0 )
if (Player *pPlayer = ObjectAccessor::FindPlayer(_player->GetDividerGuid()))
{
Player *pPlayer = ObjectAccessor::FindPlayer( _player->GetDivider() );
if( pPlayer )
{
pPlayer->SendPushToPartyResponse( _player, QUEST_PARTY_MSG_ACCEPT_QUEST );
_player->SetDivider( 0 );
}
pPlayer->SendPushToPartyResponse(_player, QUEST_PARTY_MSG_ACCEPT_QUEST);
_player->ClearDividerGuid();
}
if( _player->CanAddQuest( qInfo, true ) )
@ -173,7 +169,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode( WorldPacket & recv_data )
if (pPlayer->CanTakeQuest(qInfo, true))
{
pPlayer->SetDivider(_player->GetGUID());
pPlayer->SetDividerGuid(_player->GetObjectGuid());
//need confirmation that any gossip window will close
pPlayer->PlayerTalkClass->CloseGossip();
@ -374,7 +370,7 @@ void WorldSession::HandleQuestConfirmAccept(WorldPacket& recv_data)
if (!pQuest->HasQuestFlag(QUEST_FLAGS_PARTY_ACCEPT))
return;
Player* pOriginalPlayer = ObjectAccessor::FindPlayer(_player->GetDivider());
Player* pOriginalPlayer = ObjectAccessor::FindPlayer(_player->GetDividerGuid());
if (!pOriginalPlayer)
return;
@ -393,7 +389,7 @@ void WorldSession::HandleQuestConfirmAccept(WorldPacket& recv_data)
if (_player->CanAddQuest(pQuest, true))
_player->AddQuest(pQuest, NULL); // NULL, this prevent DB script from duplicate running
_player->SetDivider(0);
_player->ClearDividerGuid();
}
}
@ -476,14 +472,14 @@ void WorldSession::HandlePushQuestToParty(WorldPacket& recvPacket)
continue;
}
if (pPlayer->GetDivider() != 0)
if (!pPlayer->GetDividerGuid().IsEmpty())
{
_player->SendPushToPartyResponse(pPlayer, QUEST_PARTY_MSG_BUSY);
continue;
}
pPlayer->PlayerTalkClass->SendQuestGiverQuestDetails(pQuest, _player->GetObjectGuid(), true);
pPlayer->SetDivider(_player->GetGUID());
pPlayer->SetDividerGuid(_player->GetObjectGuid());
}
}
}
@ -497,16 +493,13 @@ void WorldSession::HandleQuestPushResult(WorldPacket& recvPacket)
DEBUG_LOG("WORLD: Received MSG_QUEST_PUSH_RESULT");
if (_player->GetDivider() != 0)
if (Player *pPlayer = ObjectAccessor::FindPlayer(_player->GetDividerGuid()))
{
if (Player *pPlayer = ObjectAccessor::FindPlayer(_player->GetDivider()))
{
WorldPacket data( MSG_QUEST_PUSH_RESULT, (8+1) );
data << ObjectGuid(guid);
data << uint8(msg); // valid values: 0-8
pPlayer->GetSession()->SendPacket(&data);
_player->SetDivider( 0 );
}
WorldPacket data( MSG_QUEST_PUSH_RESULT, (8+1) );
data << ObjectGuid(guid);
data << uint8(msg); // valid values: 0-8
pPlayer->GetSession()->SendPacket(&data);
_player->ClearDividerGuid();
}
}