mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 18:52:22 +00:00
Switch AI timers to smart pointers
This commit is contained in:
+22
-22
@@ -425,12 +425,12 @@ bool EntityList::AICheckCloseBeneficialSpells(NPC* caster, uint8 iChance, float
|
||||
void Mob::AI_Init()
|
||||
{
|
||||
pAIControlled = false;
|
||||
AIthink_timer = nullptr;
|
||||
AIwalking_timer = nullptr;
|
||||
AImovement_timer = nullptr;
|
||||
AItarget_check_timer = nullptr;
|
||||
AIfeignremember_timer = nullptr;
|
||||
AIscanarea_timer = nullptr;
|
||||
AIthink_timer.reset(nullptr);
|
||||
AIwalking_timer.reset(nullptr);
|
||||
AImovement_timer.reset(nullptr);
|
||||
AItarget_check_timer.reset(nullptr);
|
||||
AIfeignremember_timer.reset(nullptr);
|
||||
AIscanarea_timer.reset(nullptr);
|
||||
minLastFightingDelayMoving = RuleI(NPC, LastFightingDelayMovingMin);
|
||||
maxLastFightingDelayMoving = RuleI(NPC, LastFightingDelayMovingMax);
|
||||
|
||||
@@ -444,7 +444,7 @@ void Mob::AI_Init()
|
||||
|
||||
void NPC::AI_Init()
|
||||
{
|
||||
AIautocastspell_timer = nullptr;
|
||||
AIautocastspell_timer.reset(nullptr);
|
||||
casting_spell_AIindex = static_cast<uint8>(AIspells.size());
|
||||
|
||||
roambox_max_x = 0;
|
||||
@@ -474,13 +474,13 @@ void Mob::AI_Start(uint32 iMoveDelay) {
|
||||
pLastFightingDelayMoving = 0;
|
||||
|
||||
pAIControlled = true;
|
||||
AIthink_timer = new Timer(AIthink_duration);
|
||||
AIthink_timer = std::unique_ptr<Timer>(new Timer(AIthink_duration));
|
||||
AIthink_timer->Trigger();
|
||||
AIwalking_timer = new Timer(0);
|
||||
AImovement_timer = new Timer(AImovement_duration);
|
||||
AItarget_check_timer = new Timer(AItarget_check_duration);
|
||||
AIfeignremember_timer = new Timer(AIfeignremember_delay);
|
||||
AIscanarea_timer = new Timer(AIscanarea_delay);
|
||||
AIwalking_timer = std::unique_ptr<Timer>(new Timer(0));
|
||||
AImovement_timer = std::unique_ptr<Timer>(new Timer(AImovement_duration));
|
||||
AItarget_check_timer = std::unique_ptr<Timer>(new Timer(AItarget_check_duration));
|
||||
AIfeignremember_timer = std::unique_ptr<Timer>(new Timer(AIfeignremember_delay));
|
||||
AIscanarea_timer = std::unique_ptr<Timer>(new Timer(AIscanarea_delay));
|
||||
#ifdef REVERSE_AGGRO
|
||||
if(IsNPC() && !CastToNPC()->WillAggroNPCs())
|
||||
AIscanarea_timer->Disable();
|
||||
@@ -516,10 +516,10 @@ void NPC::AI_Start(uint32 iMoveDelay) {
|
||||
return;
|
||||
|
||||
if (AIspells.size() == 0) {
|
||||
AIautocastspell_timer = new Timer(1000);
|
||||
AIautocastspell_timer = std::unique_ptr<Timer>(new Timer(1000));
|
||||
AIautocastspell_timer->Disable();
|
||||
} else {
|
||||
AIautocastspell_timer = new Timer(750);
|
||||
AIautocastspell_timer = std::unique_ptr<Timer>(new Timer(750));
|
||||
AIautocastspell_timer->Start(RandomTimer(0, 15000), false);
|
||||
}
|
||||
|
||||
@@ -540,19 +540,19 @@ void Mob::AI_Stop() {
|
||||
|
||||
pAIControlled = false;
|
||||
|
||||
safe_delete(AIthink_timer);
|
||||
safe_delete(AIwalking_timer);
|
||||
safe_delete(AImovement_timer);
|
||||
safe_delete(AItarget_check_timer);
|
||||
safe_delete(AIscanarea_timer);
|
||||
safe_delete(AIfeignremember_timer);
|
||||
AIthink_timer.reset(nullptr);
|
||||
AIwalking_timer.reset(nullptr);
|
||||
AImovement_timer.reset(nullptr);
|
||||
AItarget_check_timer.reset(nullptr);
|
||||
AIscanarea_timer.reset(nullptr);
|
||||
AIfeignremember_timer.reset(nullptr);
|
||||
|
||||
hate_list.WipeHateList();
|
||||
}
|
||||
|
||||
void NPC::AI_Stop() {
|
||||
Waypoints.clear();
|
||||
safe_delete(AIautocastspell_timer);
|
||||
AIautocastspell_timer.reset(nullptr);
|
||||
}
|
||||
|
||||
void Client::AI_Stop() {
|
||||
|
||||
Reference in New Issue
Block a user