Because it might be handy to be able to set thresholds for how long an individual NPC stays irked at you. Something I always disliked about eq was that some animals should just give up sooner than others. I want a wolf to stick on me for a *long* time, but I want a drunkard to forget about me. This allows you to do that.
Code:
npc.cpp
constructor:
hatedecay_timer = new Timer(30); // low for tests, but each mob could have its own "how long do i stay angry for?" value by passing a variable in place of 30
NPC::Process
//*****************************************
//malevolent:hatedecay timer check
if (hatedecay_timer->Check())
{
//disable the timer
hatedecay_timer->Disable();
//remove the target from the list
if (target!=0) //prevents leak
{
entity_list.RemoveFromTargets(this->GetTarget());
this->RemoveFromHateList(this->CastToMob());
}
//set the next target up
SetTarget(hate_list.GetTop());
}
//*****************************************
NPC::AddToHateList
hatedecay_timer->Start(); //reset timer each time hate is added using the value passed in before, don't irk me and I won't bother you
npc.h
protected:
Timer* hatedecay_timer;
--MV