bool GameObject::ActivateToQuest( Player *pTarget)const { if(!objmgr.IsGameObjectForQuests(GetEntry())) return false; switch(GetGoType()) { // scan GO chest with loot including quest items case GAMEOBJECT_TYPE_CHEST: { if(LootTemplates_Gameobject.HaveQuestLootForPlayer(GetLootId(), pTarget)) return true; break; } case GAMEOBJECT_TYPE_GOOBER: { if(pTarget->GetQuestStatus(GetGOInfo()->goober.questId) == QUEST_STATUS_INCOMPLETE) return true; break; } default: break; } return false; }
bool GameObject::ActivateToQuest( Player *pTarget)const { if(!objmgr.IsGameObjectForQuests(GetEntry())) return false; switch(GetGoType()) { // scan GO chest with loot including quest items case GAMEOBJECT_TYPE_CHEST: { if(LootTemplates_Gameobject.HaveQuestLootForPlayer(GetLootId(), pTarget)) { //TODO: fix this hack //look for battlegroundAV for some objects which are only activated after mine gots captured by own team if(GetEntry() == BG_AV_OBJECTID_MINE_N || GetEntry() == BG_AV_OBJECTID_MINE_S) if(BattleGround *bg = pTarget->GetBattleGround()) if(bg->GetTypeID() == BATTLEGROUND_AV && !(((BattleGroundAV*)bg)->PlayerCanDoMineQuest(GetEntry(),pTarget->GetTeam()))) return false; return true; } break; } case GAMEOBJECT_TYPE_GOOBER: { if(pTarget->GetQuestStatus(GetGOInfo()->goober.questId) == QUEST_STATUS_INCOMPLETE) return true; break; } default: break; } return false; }