==============================
*/
-void SUB_UseTargets_Ex(entity this, entity actor, entity trigger, bool preventReuse)
+void SUB_UseTargets_Ex(entity this, entity actor, entity trigger, bool preventReuse, int skiptargets)
{
//
// check for a delay
t.enemy = actor;
t.message = this.message;
t.killtarget = this.killtarget;
- t.target = this.target;
- t.target2 = this.target2;
- t.target3 = this.target3;
- t.target4 = this.target4;
+ if(!(skiptargets & BIT(1))) t.target = this.target;
+ if(!(skiptargets & BIT(2))) t.target2 = this.target2;
+ if(!(skiptargets & BIT(3))) t.target3 = this.target3;
+ if(!(skiptargets & BIT(4))) t.target4 = this.target4;
t.antiwall_flag = this.antiwall_flag;
return;
}
for(int i = 0; i < 4; ++i)
{
+ if(skiptargets & BIT(i + 1))
+ continue;
switch(i)
{
default:
}
}
-void SUB_UseTargets(entity this, entity actor, entity trigger) { SUB_UseTargets_Ex(this, actor, trigger, false); }
-void SUB_UseTargets_PreventReuse(entity this, entity actor, entity trigger) { SUB_UseTargets_Ex(this, actor, trigger, true); }
+void SUB_UseTargets(entity this, entity actor, entity trigger) { SUB_UseTargets_Ex(this, actor, trigger, false, 0); }
+void SUB_UseTargets_PreventReuse(entity this, entity actor, entity trigger) { SUB_UseTargets_Ex(this, actor, trigger, true, 0); }
+void SUB_UseTargets_SkipTargets(entity this, entity actor, entity trigger, int skiptargets) { SUB_UseTargets_Ex(this, actor, trigger, false, skiptargets); }