X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ftrigger%2Fkeylock.qc;h=b3e6a5b09023d17e1284a91a22d0afdbddceacdf;hb=afb64a6464e74357bc69ac3386818917601a2ef4;hp=182650ed5bed4aa74625fd94f21534aab9aacd13;hpb=724a41faf2cbfd86d41f3ab59ff8326a831a8326;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/triggers/trigger/keylock.qc b/qcsrc/common/triggers/trigger/keylock.qc index 182650ed5..b3e6a5b09 100644 --- a/qcsrc/common/triggers/trigger/keylock.qc +++ b/qcsrc/common/triggers/trigger/keylock.qc @@ -1,24 +1,11 @@ /** * 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)); ) +void trigger_keylock_trigger(entity this, entity actor, string s) +{ + for(entity t = world; (t = find(t, targetname, s)); ) if(t.use) - { - setself(t); - other = this; - activator = atemp; - self.use(); - } - - setself(this); - other = otemp; - activator = atemp; + t.use(t, actor, this); } /** @@ -44,8 +31,6 @@ void trigger_keylock_touch() if(self.itemkeys) key_used = item_keys_usekey(self, other); - activator = other; - if(self.itemkeys) { #ifdef SVQC @@ -70,7 +55,7 @@ void trigger_keylock_touch() 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; } @@ -84,7 +69,7 @@ void trigger_keylock_touch() #endif if(self.target) - trigger_keylock_trigger(self.target); + trigger_keylock_trigger(this, other, self.target); if(self.killtarget) trigger_keylock_kill(self.killtarget); @@ -97,22 +82,22 @@ void trigger_keylock_touch() REGISTER_NET_LINKED(ENT_CLIENT_KEYLOCK) #ifdef SVQC -bool trigger_keylock_send(entity to, int sf) -{SELFPARAM(); +bool trigger_keylock_send(entity this, entity to, int sf) +{ WriteHeader(MSG_ENTITY, ENT_CLIENT_KEYLOCK); - WriteInt24_t(MSG_ENTITY, self.itemkeys); - WriteByte(MSG_ENTITY, self.height); + WriteInt24_t(MSG_ENTITY, this.itemkeys); + WriteByte(MSG_ENTITY, this.height); - trigger_common_write(self, true); + trigger_common_write(this, true); return true; } -void trigger_keylock_link() +void trigger_keylock_link(entity this) { // uncomment to network keylocks - //Net_LinkEntity(self, false, 0, trigger_keylock_send); + //Net_LinkEntity(this, false, 0, trigger_keylock_send); } /*QUAKED trigger_keylock (.0 .5 .8) ? @@ -136,44 +121,44 @@ message2 and noise2 will be resent to the player every 2 seconds while he is in */ spawnfunc(trigger_keylock) { - if(!self.itemkeys) { remove(self); return; } + if(!this.itemkeys) { remove(this); return; } // set unlocked message - if(self.message == "") - self.message = "Unlocked!"; + if(this.message == "") + this.message = "Unlocked!"; // set default unlock noise - if(self.noise == "") + if(this.noise == "") { - if(self.sounds == 1) - self.noise = "misc/secret.wav"; - else if(self.sounds == 2) - self.noise = strzone(SND(TALK)); - else //if (self.sounds == 3) { - self.noise = "misc/trigger1.wav"; + if(this.sounds == 1) + this.noise = "misc/secret.wav"; + else if(this.sounds == 2) + this.noise = strzone(SND(TALK)); + else //if (this.sounds == 3) { + this.noise = "misc/trigger1.wav"; } // set default use key sound - if(self.noise1 == "") - self.noise1 = "misc/decreasevalue.wav"; + if(this.noise1 == "") + this.noise1 = "misc/decreasevalue.wav"; // set closed sourd - if(self.noise2 == "") - self.noise2 = SND(TALK); + if(this.noise2 == "") + this.noise2 = SND(TALK); // delay between triggering message2 and trigger2 - if(!self.wait) { self.wait = 5; } + if(!this.wait) { this.wait = 5; } // precache sounds - precache_sound(self.noise); - precache_sound(self.noise1); - precache_sound(self.noise2); + precache_sound(this.noise); + precache_sound(this.noise1); + precache_sound(this.noise2); EXACTTRIGGER_INIT; - self.touch = trigger_keylock_touch; + settouch(this, trigger_keylock_touch); - trigger_keylock_link(); + trigger_keylock_link(this); } #elif defined(CSQC) void keylock_remove(entity this) @@ -199,17 +184,14 @@ void keylock_remove(entity this) NET_HANDLE(ENT_CLIENT_KEYLOCK, bool isnew) { - self.itemkeys = ReadInt24_t(); - self.height = ReadByte(); + this.itemkeys = ReadInt24_t(); + this.height = ReadByte(); - trigger_common_read(true); + trigger_common_read(this, true); return = true; - self.classname = "trigger_keylock"; - self.drawmask = MASK_NORMAL; - self.draw = trigger_draw_generic; - self.trigger_touch = trigger_keylock_touch; - self.entremove = keylock_remove; + this.classname = "trigger_keylock"; + this.entremove = keylock_remove; } #endif