/**
* trigger given targets
*/
-void trigger_keylock_trigger(string s)
-{SELFPARAM();
- entity otemp = other;
- entity atemp = activator;
-
- entity t;
- for(t = world; (t = find(t, targetname, s)); )
- if(t.use)
- {
- setself(t);
- other = this;
- activator = atemp;
- self.use();
- }
-
- setself(this);
- other = otemp;
- activator = atemp;
+void trigger_keylock_trigger(entity this, entity actor, string s)
+{
+ for(entity t = world; (t = find(t, targetname, s)); )
+ if(t.use1)
+ t.use1(t, actor, this);
}
/**
if(self.itemkeys)
key_used = item_keys_usekey(self, other);
- activator = other;
-
if(self.itemkeys)
{
#ifdef SVQC
if(self.delay <= time || started_delay == true)
if(self.target2)
{
- trigger_keylock_trigger(self.target2);
+ trigger_keylock_trigger(this, other, self.target2);
started_delay = true;
self.delay = time + self.wait;
}
#endif
if(self.target)
- trigger_keylock_trigger(self.target);
+ trigger_keylock_trigger(this, other, self.target);
if(self.killtarget)
trigger_keylock_kill(self.killtarget);