Core/Battlefield: Cleaned up all incrementquest functions as this is a hacky way to do it

This commit is contained in:
Kandera
2012-08-20 13:48:53 -04:00
parent 07c8eec963
commit b04ad4401d
3 changed files with 3 additions and 54 deletions
@@ -668,45 +668,6 @@ void Battlefield::SendAreaSpiritHealerQueryOpcode(Player *pl, const uint64 &guid
pl->GetSession()->SendPacket(&data);
}
bool Battlefield::IncrementQuest(Player *player, uint32 quest, bool complete)
{
if (!player)
return false;
Quest const* pQuest = sObjectMgr->GetQuestTemplate(quest);
if (!pQuest || player->GetQuestStatus(quest) == QUEST_STATUS_NONE)
return false;
if (complete)
{
player->CompleteQuest(quest);
return true;
}
else
{
for (uint8 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
{
int32 creature = pQuest->RequiredNpcOrGo[i];
if (uint32 spell_id = pQuest->RequiredSpellCast[i])
{
player->CastedCreatureOrGO(creature, 0, spell_id);
return true;
}
else if (creature > 0)
{
player->KilledMonsterCredit(creature, 0);
return true;
}
else if (creature < 0)
{
player->CastedCreatureOrGO(creature, 0, 0);
return true;
}
}
}
return false;
}
//--------------------
//-BfGraveYard Method-
//--------------------
@@ -314,7 +314,6 @@ class Battlefield:public ZoneScript
/// Return if we can use mount in battlefield
bool CanFlyIn() { return !m_BattlefieldActive; } // Used for check if we can use flying mount or not
bool IncrementQuest(Player * player, uint32 quest, bool complete = false);
void SendAreaSpiritHealerQueryOpcode(Player * pl, const uint64 & guid);
void StartBattle();
@@ -410,7 +410,6 @@ void BattlefieldWG::OnBattleEnd(bool endbytimer)
player->RewardHonor(NULL, 1, WinHonor);
RewardMarkOfHonor(player, 2);
}
IncrementQuest(player, WGQuest[player->GetTeamId()][1], true);
// Send Wintergrasp victory achievement
DoCompleteOrIncrementAchievement(ACHIEVEMENTS_WIN_WG, player);
// Award achievement for succeeding in Wintergrasp in 10 minutes or less
@@ -719,8 +718,6 @@ void BattlefieldWG::HandleKill(Player* killer, Unit* victim)
bool again = false;
if (victim->GetTypeId() == TYPEID_PLAYER)
{
IncrementQuest(killer, WGQuest[killer->GetTeamId()][4]);
IncrementQuest(killer, WGQuest[killer->GetTeamId()][5]);
for (GuidSet::const_iterator itr = m_PlayersInWar[killer->GetTeamId()].begin(); itr != m_PlayersInWar[killer->GetTeamId()].end(); ++itr)
{
if (Player* player = sObjectAccessor->FindPlayer(*itr))
@@ -739,12 +736,6 @@ void BattlefieldWG::HandleKill(Player* killer, Unit* victim)
if (victim->GetEntry() == creature->GetEntry() && !again)
{
again = true;
for (GuidSet::const_iterator iter = m_PlayersInWar[killer->GetTeamId()].begin(); iter != m_PlayersInWar[killer->GetTeamId()].end(); ++iter)
{
if (Player* player = sObjectAccessor->FindPlayer(*iter))
if (player->GetDistance2d(killer) < 40)
IncrementQuest(player, WGQuest[player->GetTeamId()][0]);
}
}
}
}
@@ -759,8 +750,6 @@ void BattlefieldWG::HandleKill(Player* killer, Unit* victim)
if (victim->GetEntry() == creature->GetEntry() && !again)
{
again = true;
IncrementQuest(killer, WGQuest[killer->GetTeamId()][4]);
IncrementQuest(killer, WGQuest[killer->GetTeamId()][5]);
for (GuidSet::const_iterator iter = m_PlayersInWar[killer->GetTeamId()].begin(); iter != m_PlayersInWar[killer->GetTeamId()].end(); ++iter)
{
if (Player* player = sObjectAccessor->FindPlayer(*iter))
@@ -960,14 +949,15 @@ void BattlefieldWG::SendInitWorldStatesToAll()
void BattlefieldWG::BrokenWallOrTower(TeamId team)
{
if (team == GetDefenderTeam())
// might be some use for this in the future. old code commented out below. KL
/* if (team == GetDefenderTeam())
{
for (GuidSet::const_iterator itr = m_PlayersInWar[GetAttackerTeam()].begin(); itr != m_PlayersInWar[GetAttackerTeam()].end(); ++itr)
{
if (Player* player = sObjectAccessor->FindPlayer(*itr))
IncrementQuest(player, WGQuest[player->GetTeamId()][2], true);
}
}
}*/
}
// Called when a tower is broke
void BattlefieldWG::AddBrokenTower(TeamId team)
@@ -989,7 +979,6 @@ void BattlefieldWG::AddBrokenTower(TeamId team)
if (Player* player = sObjectAccessor->FindPlayer(*itr))
{
player->CastSpell(player, SPELL_TOWER_CONTROL, true);
IncrementQuest(player, WGQuest[player->GetTeamId()][3], true);
DoCompleteOrIncrementAchievement(ACHIEVEMENTS_WG_TOWER_DESTROY, player);
}
// If the threw south tower is destroy