From a8a5734bea7f9b7b0f810b111f8e054a73317bce Mon Sep 17 00:00:00 2001 From: runningnak3d Date: Sun, 13 Feb 2011 21:23:01 -0700 Subject: [PATCH] Core/Gossip: Revert a change to SendPreparedQuest to allow multiple quests again. Thanks Manuel for pointing it out and Nay for testing --- src/server/game/Entities/Player/Player.cpp | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 4072d85723..c0d5465de5 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -14196,6 +14196,52 @@ void Player::SendPreparedQuest(uint64 guid) } } } + // multiple entries + else + { + QEmote qe; + qe._Delay = 0; + qe._Emote = 0; + std::string title = ""; + + // need pet case for some quests + Creature *pCreature = ObjectAccessor::GetCreatureOrPetOrVehicle(*this,guid); + if (pCreature) + { + uint32 textid = GetGossipTextId(pCreature); + GossipText const* gossiptext = sObjectMgr->GetGossipText(textid); + if (!gossiptext) + { + qe._Delay = 0; //TEXTEMOTE_MESSAGE; //zyg: player emote + qe._Emote = 0; //TEXTEMOTE_HELLO; //zyg: NPC emote + title = ""; + } + else + { + qe = gossiptext->Options[0].Emotes[0]; + + if (!gossiptext->Options[0].Text_0.empty()) + { + title = gossiptext->Options[0].Text_0; + + int loc_idx = GetSession()->GetSessionDbLocaleIndex(); + if (loc_idx >= 0) + if (NpcTextLocale const *nl = sObjectMgr->GetNpcTextLocale(textid)) + sObjectMgr->GetLocaleString(nl->Text_0[0], loc_idx, title); + } + else + { + title = gossiptext->Options[0].Text_1; + + int loc_idx = GetSession()->GetSessionDbLocaleIndex(); + if (loc_idx >= 0) + if (NpcTextLocale const *nl = sObjectMgr->GetNpcTextLocale(textid)) + sObjectMgr->GetLocaleString(nl->Text_1[0], loc_idx, title); + } + } + } + PlayerTalkClass->SendQuestGiverQuestList(qe, title, guid); + } } bool Player::IsActiveQuest(uint32 quest_id) const