X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ffunc%2Fladder.qc;h=5ff2bdcc247133ac99b9c7a95f1ae4da3fe38a82;hb=34e7f534e2015466228eb3a78c9857741b736dca;hp=bcf994ff4e42de7b845ab1c319592ef6d649980d;hpb=71ce27cd515d7e8157535466ef357f83253b64f0;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/triggers/func/ladder.qc b/qcsrc/common/triggers/func/ladder.qc index bcf994ff4..5ff2bdcc2 100644 --- a/qcsrc/common/triggers/func/ladder.qc +++ b/qcsrc/common/triggers/func/ladder.qc @@ -1,81 +1,84 @@ +#include "ladder.qh" REGISTER_NET_LINKED(ENT_CLIENT_LADDER) -void func_ladder_touch() -{SELFPARAM(); +void func_ladder_touch(entity this, entity toucher) +{ #ifdef SVQC - if (!other.iscreature) + if (!toucher.iscreature) + return; + if(IS_VEHICLE(toucher)) return; - if(IS_VEHICLE(other)) +#elif defined(CSQC) + if(!toucher.isplayermodel) return; #endif - EXACTTRIGGER_TOUCH; + EXACTTRIGGER_TOUCH(this, toucher); - other.ladder_time = time + 0.1; - other.ladder_entity = self; + toucher.ladder_time = time + 0.1; + toucher.ladder_entity = this; } #ifdef SVQC -bool func_ladder_send(entity to, int sf) -{SELFPARAM(); +bool func_ladder_send(entity this, entity to, int sf) +{ WriteHeader(MSG_ENTITY, ENT_CLIENT_LADDER); - WriteString(MSG_ENTITY, self.classname); - WriteByte(MSG_ENTITY, self.skin); - WriteCoord(MSG_ENTITY, self.speed); + WriteString(MSG_ENTITY, this.classname); + WriteByte(MSG_ENTITY, this.skin); + WriteCoord(MSG_ENTITY, this.speed); - trigger_common_write(self, false); + trigger_common_write(this, false); return true; } -void func_ladder_link() +void func_ladder_link(entity this) { - self.SendEntity = func_ladder_send; - self.SendFlags = 0xFFFFFF; - //self.model = "null"; + trigger_link(this, func_ladder_send); + //this.model = "null"; } -void func_ladder_init() +void func_ladder_init(entity this) { - self.touch = func_ladder_touch; + settouch(this, func_ladder_touch); - trigger_init(self); - func_ladder_link(); + trigger_init(this); + func_ladder_link(this); } spawnfunc(func_ladder) { - func_ladder_init(); + func_ladder_init(this); } spawnfunc(func_water) { - func_ladder_init(); + func_ladder_init(this); } #elif defined(CSQC) .float speed; -void func_ladder_remove() +void func_ladder_remove(entity this) { - if(self.classname) { strunzone(self.classname); } - self.classname = string_null; + if(this.classname) { strunzone(this.classname); } + this.classname = string_null; } NET_HANDLE(ENT_CLIENT_LADDER, bool isnew) { - self.classname = strzone(ReadString()); - self.skin = ReadByte(); - self.speed = ReadCoord(); + this.classname = strzone(ReadString()); + this.skin = ReadByte(); + this.speed = ReadCoord(); - trigger_common_read(false); + trigger_common_read(this, false); - self.solid = SOLID_TRIGGER; - self.move_touch = func_ladder_touch; - self.drawmask = MASK_NORMAL; - self.move_time = time; - self.entremove = func_ladder_remove; + this.solid = SOLID_TRIGGER; + settouch(this, func_ladder_touch); + this.drawmask = MASK_NORMAL; + this.move_time = time; + this.entremove = func_ladder_remove; return true; }