mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-20 09:17:36 +01:00
Speedup check in Player::HasQuestForItem and Player::HasQuestForGO, related cleanups. Author: VladimirMangos
--HG-- branch : trunk
This commit is contained in:
@@ -13705,7 +13705,7 @@ void Player::AdjustQuestReqItemCount( Quest const* pQuest, QuestStatusData& ques
|
||||
|
||||
uint16 Player::FindQuestSlot( uint32 quest_id ) const
|
||||
{
|
||||
for ( uint16 i = 0; i < MAX_QUEST_LOG_SIZE; i++ )
|
||||
for ( uint16 i = 0; i < MAX_QUEST_LOG_SIZE; ++i )
|
||||
if ( GetQuestSlotQuestId(i) == quest_id )
|
||||
return i;
|
||||
|
||||
@@ -14045,13 +14045,21 @@ void Player::MoneyChanged( uint32 count )
|
||||
|
||||
bool Player::HasQuestForItem( uint32 itemid ) const
|
||||
{
|
||||
for( QuestStatusMap::const_iterator i = mQuestStatus.begin( ); i != mQuestStatus.end( ); ++i )
|
||||
for( int i = 0; i < MAX_QUEST_LOG_SIZE; ++i )
|
||||
{
|
||||
QuestStatusData const& q_status = i->second;
|
||||
uint32 questid = GetQuestSlotQuestId(i);
|
||||
if ( questid == 0 )
|
||||
continue;
|
||||
|
||||
QuestStatusMap::const_iterator qs_itr = mQuestStatus.find(questid);
|
||||
if(qs_itr == mQuestStatus.end())
|
||||
continue;
|
||||
|
||||
QuestStatusData const& q_status = qs_itr->second;
|
||||
|
||||
if (q_status.m_status == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
Quest const* qinfo = objmgr.GetQuestTemplate(i->first);
|
||||
Quest const* qinfo = objmgr.GetQuestTemplate(questid);
|
||||
if(!qinfo)
|
||||
continue;
|
||||
|
||||
@@ -19081,14 +19089,23 @@ bool Player::IsSpellFitByClassAndRace( uint32 spell_id ) const
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Player::HasQuestForGO(int32 GOId)
|
||||
bool Player::HasQuestForGO(int32 GOId) const
|
||||
{
|
||||
for( QuestStatusMap::iterator i = mQuestStatus.begin( ); i != mQuestStatus.end( ); ++i )
|
||||
for( int i = 0; i < MAX_QUEST_LOG_SIZE; ++i )
|
||||
{
|
||||
QuestStatusData qs=i->second;
|
||||
uint32 questid = GetQuestSlotQuestId(i);
|
||||
if ( questid == 0 )
|
||||
continue;
|
||||
|
||||
QuestStatusMap::const_iterator qs_itr = mQuestStatus.find(questid);
|
||||
if(qs_itr == mQuestStatus.end())
|
||||
continue;
|
||||
|
||||
QuestStatusData const& qs = qs_itr->second;
|
||||
|
||||
if (qs.m_status == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
Quest const* qinfo = objmgr.GetQuestTemplate(i->first);
|
||||
Quest const* qinfo = objmgr.GetQuestTemplate(questid);
|
||||
if(!qinfo)
|
||||
continue;
|
||||
|
||||
|
||||
@@ -1274,7 +1274,7 @@ class TRINITY_DLL_SPEC Player : public Unit
|
||||
void TalkedToCreature( uint32 entry, uint64 guid );
|
||||
void MoneyChanged( uint32 value );
|
||||
bool HasQuestForItem( uint32 itemid ) const;
|
||||
bool HasQuestForGO(int32 GOId);
|
||||
bool HasQuestForGO(int32 GOId) const;
|
||||
void UpdateForQuestsGO();
|
||||
bool CanShareQuest(uint32 quest_id) const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user