X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmapobjects%2Ffunc%2Fplat.qc;h=08faae9ebef1a1ca05f9c5b380ac41254d54c7b6;hb=e4c6c6d7f00f23fe23a2145278a15c308e70ec28;hp=2376c5956de1adbdc227654e30b819c8d5137b0f;hpb=cf34c825e0e646cc1d80dcfbe5123ce33d0db000;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/mapobjects/func/plat.qc b/qcsrc/common/mapobjects/func/plat.qc index 2376c5956..08faae9eb 100644 --- a/qcsrc/common/mapobjects/func/plat.qc +++ b/qcsrc/common/mapobjects/func/plat.qc @@ -7,7 +7,9 @@ void plat_link(entity this); void plat_delayedinit(entity this) { plat_link(this); - plat_spawn_inside_trigger(this); // the "start moving" trigger + // Q3 uses only a truth check of .targetname to decide whether to spawn a trigger + if(!Q3COMPAT_COMMON || this.targetname == "") + plat_spawn_inside_trigger(this); // the "start moving" trigger } float plat_send(entity this, entity to, float sf) @@ -56,7 +58,12 @@ void plat_link(entity this) spawnfunc(func_plat) { - if (this.spawnflags & CRUSH) + if (q3compat) + { + this.spawnflags = 0; // Q3 plats have no spawnflags + if (!this.dmg) this.dmg = 2; + } + else if (this.spawnflags & CRUSH) { this.dmg = 10000; } @@ -91,14 +98,28 @@ spawnfunc(func_plat) if (q3compat) { - // CPMA adds these fields for overriding the engine sounds + // CPMA adds these fields for overriding the Q3 default sounds string s = GetField_fullspawndata(this, "sound_start", true); string e = GetField_fullspawndata(this, "sound_end", true); if (s) this.noise = strzone(s); + else + { + // PK3s supporting Q3A sometimes include custom sounds at Q3 default paths + s = "sound/movers/plats/pt1_strt.wav"; + if (FindFileInMapPack(s)) + this.noise = s; + } + if (e) this.noise1 = strzone(e); + else + { + e = "sound/movers/plats/pt1_end.wav"; + if (FindFileInMapPack(e)) + this.noise1 = e; + } } if(this.noise && this.noise != "") @@ -122,8 +143,8 @@ spawnfunc(func_plat) setblocked(this, plat_crush); - if (!this.speed) this.speed = 150; - if (!this.lip) this.lip = 16; + if (!this.speed) this.speed = q3compat ? 200 : 150; + if (!this.lip) this.lip = q3compat ? 8 : 16; if (!this.height) this.height = this.size.z - this.lip; this.pos1 = this.origin; @@ -186,7 +207,8 @@ NET_HANDLE(ENT_CLIENT_PLAT, bool isnew) set_movetype(this, MOVETYPE_PUSH); this.move_time = time; - plat_spawn_inside_trigger(this); + if(!Q3COMPAT_COMMON || this.targetname == "") + plat_spawn_inside_trigger(this); } if(sf & SF_TRIGGER_RESET)