void UnitAI::MoveInLineOfSight(Unit* who) { if (!HasReactState(REACT_AGGRESSIVE)) return; if (!m_unit->CanFly() && m_unit->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE) return; if (m_unit->getVictim() && !m_unit->GetMap()->IsDungeon()) return; if (m_unit->IsNeutralToAll()) return; if (who->GetObjectGuid().IsCreature() && who->isInCombat()) CheckForHelp(who, m_unit, 10.0); if (m_unit->CanInitiateAttack() && who->isInAccessablePlaceFor(m_unit)) { if (AssistPlayerInCombat(who)) return; if (m_unit->CanAttackOnSight(who)) DetectOrAttack(who); } }
// Parse options runs through the heirarchy doing all the parsing void ParseOptions(int argc, char* argv[]) { ParseCommandLine(argc, argv); CheckForHelp(); CheckForVersion(); ParseEnvironment(); ParseConfigFiles(); ParseDefaultConfigFile(); }