View Single Post
  #4  
Old 12-10-2010, 11:50 PM
haynar
Developer
 
Join Date: Jul 2009
Location: In a state of bliss
Posts: 31
Default

In Mob::AddBuff
Code:
	if(will_overwrite)
	{
		vector<int>::iterator cur, end;
		cur = overwrite_slots.begin();
		end = overwrite_slots.end();
		for(; cur != end; cur++) {
			// same spell, so put in same slot
			if (buffs[*cur].spellid == spell_id)
				emptyslot = *cur;
			// strip spell
			BuffFadeBySlot(*cur, false);

			// if we hadn't found a free slot before, or if this is earlier
			// we use it
			if(emptyslot == -1 || *cur < emptyslot)
				emptyslot = *cur;
		}
	}
Crude, but works for a lot of what you want. Could expand the checks to work for overwriting of spells of a higher level version of spells.

Haynar
Reply With Quote