aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2011-06-15 20:46:49 +0200
committerShauren <shauren.trinity@gmail.com>2011-06-15 20:46:49 +0200
commit50dbb8c8a548aa2b34aec9393dee69bb030968e8 (patch)
treeec2c958bf016577674260366a22185298b025124 /src
parent8b14aff9097bd18838f6f1322a0aa2822574c9f4 (diff)
Core/Spells: Fixed spell effect quest complete when quest was already in target's quest log
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 3255f818ddf..9627b5c4f83 100755
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -5121,7 +5121,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
if (chargesAura->ModCharges(-1))
m_caster->ToTempSummon()->UnSummon();
}
-
+
return;
}
// Stoneclaw Totem
@@ -5895,27 +5895,26 @@ void Spell::EffectReputation(SpellEffIndex effIndex)
void Spell::EffectQuestComplete(SpellEffIndex effIndex)
{
- Player *pPlayer;
-
- if (m_caster->GetTypeId() == TYPEID_PLAYER)
- pPlayer = (Player*)m_caster;
- else if (unitTarget && unitTarget->GetTypeId() == TYPEID_PLAYER)
- pPlayer = (Player*)unitTarget;
+ Player* player = NULL;
+ if (unitTarget && unitTarget->GetTypeId() == TYPEID_PLAYER)
+ player = (Player*)unitTarget;
+ else if (m_caster->GetTypeId() == TYPEID_PLAYER)
+ player = (Player*)m_caster;
else
return;
- uint32 quest_id = m_spellInfo->EffectMiscValue[effIndex];
- if (quest_id)
+ uint32 questId = m_spellInfo->EffectMiscValue[effIndex];
+ if (questId)
{
- Quest* pQuest = sObjectMgr->GetQuestTemplate(quest_id);
- if (!pQuest || !pPlayer->CanTakeQuest(pQuest, false))
+ Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
+ if (!quest)
return;
- uint16 log_slot = pPlayer->FindQuestSlot(quest_id);
- if (log_slot < MAX_QUEST_LOG_SIZE)
- pPlayer->AreaExploredOrEventHappens(quest_id);
- else if (!pPlayer->GetQuestRewardStatus(quest_id)) // never rewarded before
- pPlayer->CompleteQuest(quest_id); // quest not in log - for internal use
+ uint16 logSlot = player->FindQuestSlot(questId);
+ if (logSlot < MAX_QUEST_LOG_SIZE)
+ player->AreaExploredOrEventHappens(questId);
+ else if (player->CanTakeQuest(quest, false)) // never rewarded before
+ player->CompleteQuest(questId); // quest not in log - for internal use
}
}