X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fcommon%2Ftriggers%2Ftrigger%2Fjumppads.qc;h=cdd383e536216af459824fbfd2be574b3d33d848;hb=71ce27cd515d7e8157535466ef357f83253b64f0;hp=c124a064531f71cb131cda502b977b8c1db2150c;hpb=a0feb46a5f3f7db30054e67266e1c59f712f3da7;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/triggers/trigger/jumppads.qc b/qcsrc/common/triggers/trigger/jumppads.qc index c124a0645..cdd383e53 100644 --- a/qcsrc/common/triggers/trigger/jumppads.qc +++ b/qcsrc/common/triggers/trigger/jumppads.qc @@ -37,7 +37,7 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht) torg = tgt.origin + (tgt.mins + tgt.maxs) * 0.5; - grav = PHYS_GRAVITY; + grav = PHYS_GRAVITY(other); if(PHYS_ENTGRAVITY(other)) grav *= PHYS_ENTGRAVITY(other); @@ -170,9 +170,11 @@ void trigger_push_touch() other.move_velocity = other.velocity; } +#ifdef SVQC UNSET_ONGROUND(other); - +#elif defined(CSQC) other.move_flags &= ~FL_ONGROUND; +#endif #ifdef SVQC if (IS_PLAYER(other)) @@ -313,31 +315,21 @@ void trigger_push_findtarget() } trigger_push_link(); - defer(0.1, trigger_push_updatelink); + defer(self, 0.1, trigger_push_updatelink); #endif } #ifdef SVQC -float trigger_push_send(entity to, float sf) -{SELFPARAM(); +float trigger_push_send(entity this, entity to, float sf) +{ WriteHeader(MSG_ENTITY, ENT_CLIENT_TRIGGER_PUSH); - WriteByte(MSG_ENTITY, sf); - - if(sf & 1) - { - WriteByte(MSG_ENTITY, self.team); - WriteInt24_t(MSG_ENTITY, self.spawnflags); - WriteByte(MSG_ENTITY, self.active); - WriteByte(MSG_ENTITY, self.height); - trigger_common_write(true); - } + WriteByte(MSG_ENTITY, self.team); + WriteInt24_t(MSG_ENTITY, self.spawnflags); + WriteByte(MSG_ENTITY, self.active); + WriteCoord(MSG_ENTITY, self.height); - if(sf & 2) - { - WriteByte(MSG_ENTITY, self.team); - WriteByte(MSG_ENTITY, self.active); - } + trigger_common_write(self, true); return true; } @@ -349,10 +341,9 @@ void trigger_push_updatelink() void trigger_push_link() { - //Net_LinkEntity(self, false, 0, trigger_push_send); + trigger_link(self, trigger_push_send); } -#endif -#ifdef SVQC + /* * ENTITY PARAMETERS: * @@ -369,7 +360,7 @@ spawnfunc(trigger_push) { SetMovedir(self); - EXACTTRIGGER_INIT; + trigger_init(self); self.active = ACTIVE_ACTIVE; self.use = trigger_push_use; @@ -399,12 +390,17 @@ bool target_push_send(entity this, entity to, float sf) WriteCoord(MSG_ENTITY, self.origin_y); WriteCoord(MSG_ENTITY, self.origin_z); + WriteAngle(MSG_ENTITY, self.angles_x); + WriteAngle(MSG_ENTITY, self.angles_y); + WriteAngle(MSG_ENTITY, self.angles_z); + return true; } void target_push_link() {SELFPARAM(); - //Net_LinkEntity(self, false, 0, target_push_send); + BITSET_ASSIGN(self.effects, EF_NODEPTHTEST); + Net_LinkEntity(self, false, 0, target_push_send); //self.SendFlags |= 1; // update } @@ -412,38 +408,28 @@ spawnfunc(target_push) { target_push_link(); } spawnfunc(info_notnull) { target_push_link(); } spawnfunc(target_position) { make_pure(this); target_push_link(); } -#endif - -#ifdef CSQC +#elif defined(CSQC) NET_HANDLE(ENT_CLIENT_TRIGGER_PUSH, bool isnew) { - float sf = ReadByte(); + make_pure(this); - if(sf & 1) - { - self.classname = "jumppad"; - int mytm = ReadByte(); if(mytm) { self.team = mytm - 1; } - self.spawnflags = ReadInt24_t(); - self.active = ReadByte(); - self.height = ReadByte(); - - trigger_common_read(true); - - self.entremove = trigger_remove_generic; - self.solid = SOLID_TRIGGER; - self.draw = trigger_draw_generic; - self.trigger_touch = trigger_push_touch; - self.drawmask = MASK_NORMAL; - self.move_time = time; - trigger_push_findtarget(); - } + self.classname = "jumppad"; + int mytm = ReadByte(); if(mytm) { self.team = mytm - 1; } + self.spawnflags = ReadInt24_t(); + self.active = ReadByte(); + self.height = ReadCoord(); + + trigger_common_read(true); + + self.entremove = trigger_remove_generic; + self.solid = SOLID_TRIGGER; + //self.draw = trigger_draw_generic; + self.move_touch = trigger_push_touch; + self.drawmask = MASK_NORMAL; + self.move_time = time; + defer(self, 0.25, trigger_push_findtarget); - if(sf & 2) - { - self.team = ReadByte(); - self.active = ReadByte(); - } return true; } @@ -460,6 +446,7 @@ void target_push_remove() NET_HANDLE(ENT_CLIENT_TARGET_PUSH, bool isnew) { + make_pure(this); self.classname = "push_target"; self.cnt = ReadByte(); self.targetname = strzone(ReadString()); @@ -467,6 +454,10 @@ NET_HANDLE(ENT_CLIENT_TARGET_PUSH, bool isnew) self.origin_y = ReadCoord(); self.origin_z = ReadCoord(); + self.angles_x = ReadAngle(); + self.angles_y = ReadAngle(); + self.angles_z = ReadAngle(); + return = true; setorigin(self, self.origin);