X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ffunc%2Fplat.qc;h=7e2ae74aabfd5080e936a2f20fc615c8989d624d;hp=f2c57be21ec223e5d4ec12feed5a1abf73a878a9;hb=cf1edea8694548556934b5b05f526bc192f576cb;hpb=a4594d94df1eb60aca616cccd45df07e561ffa01 diff --git a/qcsrc/common/triggers/func/plat.qc b/qcsrc/common/triggers/func/plat.qc index f2c57be21..7e2ae74aa 100644 --- a/qcsrc/common/triggers/func/plat.qc +++ b/qcsrc/common/triggers/func/plat.qc @@ -1,7 +1,9 @@ +REGISTER_NET_LINKED(ENT_CLIENT_PLAT) + #ifdef SVQC void plat_link(); -void plat_delayedinit() +void plat_delayedinit(entity this) { plat_link(); plat_spawn_inside_trigger(); // the "start moving" trigger @@ -9,7 +11,7 @@ void plat_delayedinit() float plat_send(entity to, float sf) {SELFPARAM(); - WriteByte(MSG_ENTITY, ENT_CLIENT_PLAT); + WriteHeader(MSG_ENTITY, ENT_CLIENT_PLAT); WriteByte(MSG_ENTITY, sf); if(sf & SF_TRIGGER_INIT) @@ -21,7 +23,7 @@ float plat_send(entity to, float sf) WriteString(MSG_ENTITY, self.model); - trigger_common_write(true); + trigger_common_write(self, true); WriteCoord(MSG_ENTITY, self.pos1_x); WriteCoord(MSG_ENTITY, self.pos1_y); @@ -59,143 +61,137 @@ void plat_link() //Net_LinkEntity(self, 0, false, plat_send); } -void spawnfunc_func_plat() -{SELFPARAM(); - if (self.sounds == 0) - self.sounds = 2; +spawnfunc(func_plat) +{ + if (this.sounds == 0) this.sounds = 2; - if(self.spawnflags & 4) - self.dmg = 10000; + if (this.spawnflags & 4) this.dmg = 10000; - if(self.dmg && (self.message == "")) - self.message = "was squished"; - if(self.dmg && (self.message2 == "")) - self.message2 = "was squished by"; + if (this.dmg && (this.message == "")) this.message = "was squished"; + if (this.dmg && (this.message2 == "")) this.message2 = "was squished by"; - if (self.sounds == 1) + if (this.sounds == 1) { precache_sound ("plats/plat1.wav"); precache_sound ("plats/plat2.wav"); - self.noise = "plats/plat1.wav"; - self.noise1 = "plats/plat2.wav"; + this.noise = "plats/plat1.wav"; + this.noise1 = "plats/plat2.wav"; } - if (self.sounds == 2) + if (this.sounds == 2) { precache_sound ("plats/medplat1.wav"); precache_sound ("plats/medplat2.wav"); - self.noise = "plats/medplat1.wav"; - self.noise1 = "plats/medplat2.wav"; + this.noise = "plats/medplat1.wav"; + this.noise1 = "plats/medplat2.wav"; } - if (self.sound1) + if (this.sound1) { - precache_sound (self.sound1); - self.noise = self.sound1; + precache_sound (this.sound1); + this.noise = this.sound1; } - if (self.sound2) + if (this.sound2) { - precache_sound (self.sound2); - self.noise1 = self.sound2; + precache_sound (this.sound2); + this.noise1 = this.sound2; } - self.mangle = self.angles; - self.angles = '0 0 0'; + this.mangle = this.angles; + this.angles = '0 0 0'; - self.classname = "plat"; - if (!InitMovingBrushTrigger()) + this.classname = "plat"; + if (!InitMovingBrushTrigger(this)) return; - self.effects |= EF_LOWPRECISION; - setsize (self, self.mins , self.maxs); + this.effects |= EF_LOWPRECISION; + setsize (this, this.mins , this.maxs); - self.blocked = plat_crush; + this.blocked = plat_crush; - if (!self.speed) - self.speed = 150; - if (!self.lip) - self.lip = 16; - if (!self.height) - self.height = self.size_z - self.lip; + if (!this.speed) this.speed = 150; + if (!this.lip) this.lip = 16; + if (!this.height) this.height = this.size.z - this.lip; - self.pos1 = self.origin; - self.pos2 = self.origin; - self.pos2_z = self.origin_z - self.height; + this.pos1 = this.origin; + this.pos2 = this.origin; + this.pos2_z = this.origin.z - this.height; - self.reset = plat_reset; - plat_reset(); + this.reset = plat_reset; + this.reset(this); - InitializeEntity(self, plat_delayedinit, INITPRIO_FINDTARGET); + InitializeEntity(this, plat_delayedinit, INITPRIO_FINDTARGET); } #elif defined(CSQC) -void plat_draw() +void plat_draw(entity this) { - Movetype_Physics_NoMatchServer(); + Movetype_Physics_NoMatchServer(this); //Movetype_Physics_MatchServer(autocvar_cl_projectiles_sloppy); } -void ent_plat() -{SELFPARAM(); +NET_HANDLE(ENT_CLIENT_PLAT, bool isnew) +{ float sf = ReadByte(); if(sf & SF_TRIGGER_INIT) { - self.platmovetype_start = ReadByte(); - self.platmovetype_turn = ReadByte(); - self.platmovetype_end = ReadByte(); - self.spawnflags = ReadByte(); + this.platmovetype_start = ReadByte(); + this.platmovetype_turn = ReadByte(); + this.platmovetype_end = ReadByte(); + this.spawnflags = ReadByte(); - self.model = strzone(ReadString()); - _setmodel(self, self.model); + this.model = strzone(ReadString()); + _setmodel(this, this.model); - trigger_common_read(true); + trigger_common_read(this, true); - self.pos1_x = ReadCoord(); - self.pos1_y = ReadCoord(); - self.pos1_z = ReadCoord(); - self.pos2_x = ReadCoord(); - self.pos2_y = ReadCoord(); - self.pos2_z = ReadCoord(); + this.pos1_x = ReadCoord(); + this.pos1_y = ReadCoord(); + this.pos1_z = ReadCoord(); + this.pos2_x = ReadCoord(); + this.pos2_y = ReadCoord(); + this.pos2_z = ReadCoord(); - self.size_x = ReadCoord(); - self.size_y = ReadCoord(); - self.size_z = ReadCoord(); + this.size_x = ReadCoord(); + this.size_y = ReadCoord(); + this.size_z = ReadCoord(); - self.mangle_x = ReadAngle(); - self.mangle_y = ReadAngle(); - self.mangle_z = ReadAngle(); + this.mangle_x = ReadAngle(); + this.mangle_y = ReadAngle(); + this.mangle_z = ReadAngle(); - self.speed = ReadShort(); - self.height = ReadShort(); - self.lip = ReadByte(); - self.state = ReadByte(); + this.speed = ReadShort(); + this.height = ReadShort(); + this.lip = ReadByte(); + this.state = ReadByte(); - self.dmg = ReadShort(); + this.dmg = ReadShort(); - self.classname = "plat"; - self.solid = SOLID_BSP; - self.movetype = MOVETYPE_PUSH; - self.drawmask = MASK_NORMAL; - self.draw = plat_draw; - self.use = plat_use; - self.entremove = trigger_remove_generic; + this.classname = "plat"; + this.solid = SOLID_BSP; + this.movetype = MOVETYPE_PUSH; + this.drawmask = MASK_NORMAL; + this.draw = plat_draw; + this.use = plat_use; + this.entremove = trigger_remove_generic; - plat_reset(); // also called here + plat_reset(this); // also called here - self.move_movetype = MOVETYPE_PUSH; - self.move_origin = self.origin; - self.move_angles = self.angles; - self.move_time = time; + this.move_movetype = MOVETYPE_PUSH; + this.move_origin = this.origin; + this.move_angles = this.angles; + this.move_time = time; plat_spawn_inside_trigger(); } if(sf & SF_TRIGGER_RESET) { - plat_reset(); + plat_reset(this); - self.move_origin = self.origin; - self.move_angles = self.angles; - self.move_time = time; + this.move_origin = this.origin; + this.move_angles = this.angles; + this.move_time = time; } + return true; } #endif