void Test_ScheduleTasks(TestResult *result) { char buffer[80]; sprintf(buffer, "For %s, RECUR_N=%d and NUM_TASKS=%d\n" "RUN_IN_PARALLEL=%d, ", GetTestModeString(TEST_MODE).c_str(), RECUR_N, NUM_TASKS, RUN_IN_PARALLEL); result->overall += std::string(buffer); std::vector<int> data_vec; // own the memory. // Comment the line below will make the job crash due to address // change during container's memory reallocation. See comment on // top of this file. data_vec.reserve(NUM_TASKS); TaskManager task_manager; ScheduleTasks(NUM_TASKS, &data_vec, &task_manager); result->details += (GetNowString() + " Before: " + PrintVector(data_vec) + "\n"); CpuTimer timer; timer.Start(); task_manager.Run(); timer.Stop(); result->details += (GetNowString() + " After: " + PrintVector(data_vec) + "\n"); sprintf(buffer, "total in ms: %d\n", timer.GetInMs()); result->overall += std::string(buffer); result->cost_in_ms = timer.GetInMs(); }
void Emerge() { me->UpdateSpeed(MOVE_RUN); uint32 submergeSpell = wasMobile ? SPELL_SUBMERGE : SPELL_SUBMERGE_2; me->RemoveAurasDueToSpell(submergeSpell); me->RemoveAurasDueToSpell(SPELL_GROUND_VISUAL_0); DoCastSelf(SPELL_EMERGE); DoCastAOE(SPELL_HATE_TO_ZERO, true); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->SetReactState(REACT_AGGRESSIVE); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) AttackStart(target); // if the worm was mobile before submerging, make him stationary now if (wasMobile) { me->SetControlled(true, UNIT_STATE_ROOT); me->SetDisplayId(modelStationary); DoCastSelf(SPELL_GROUND_VISUAL_1, true); events.SetPhase(PHASE_STATIONARY); } else { if (Unit* target = me->GetVictim()) me->GetMotionMaster()->MoveChase(target); me->SetDisplayId(modelMobile); events.SetPhase(PHASE_MOBILE); } wasMobile = !wasMobile; ScheduleTasks(); }
void JustEngagedWith(Unit* /*who*/) override { me->SetCombatPulseDelay(5); me->setActive(true); ScheduleTasks(); HandleInstanceProgress(); instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me); if (IsHeroic()) HandleWithHeroicEvents(); }
void BossAI::_EnterCombat() { if (instance) { // bosses do not respawn, check only on enter combat if (!instance->CheckRequiredBosses(_bossId)) { EnterEvadeMode(EVADE_REASON_SEQUENCE_BREAK); return; } instance->SetBossState(_bossId, IN_PROGRESS); } me->SetCombatPulseDelay(5); me->setActive(true); DoZoneInCombat(); ScheduleTasks(); }
void JustEngagedWith(Unit* who) override { CreatureAI::JustEngagedWith(who); ScheduleTasks(); }
void EnterCombat(Unit* /*who*/) override { me->SetCombatPulseDelay(5); me->setActive(true); ScheduleTasks(); }
void JustEngagedWith(Unit* /*who*/) override { ScheduleTasks(); }
void JustEngagedWith(Unit* /*who*/) override { me->SetCombatPulseDelay(5); me->setActive(true); ScheduleTasks(); }