X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ffunc%2Fdoor.qc;h=706784eda7b18b13918269cbece6bad46d0bc3eb;hb=641c47df604de42c11c68a7d80813b29affcefb2;hp=f32a8d75ded3ac456e217e5af07c07a22c1c27e1;hpb=8e0690ba978a6a0c7287bc3cfa2873a05b15fc5f;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/triggers/func/door.qc b/qcsrc/common/triggers/func/door.qc index f32a8d75d..706784eda 100644 --- a/qcsrc/common/triggers/func/door.qc +++ b/qcsrc/common/triggers/func/door.qc @@ -23,33 +23,33 @@ THINK FUNCTIONS void door_go_down(entity this); void door_go_up(entity this); void door_rotating_go_down(entity this); -void door_rotating_go_up(entity this); +void door_rotating_go_up(entity this, entity oth); -void door_blocked(entity this) +void door_blocked(entity this, entity blocker) { if((this.spawnflags & 8) #ifdef SVQC - && (other.takedamage != DAMAGE_NO) + && (blocker.takedamage != DAMAGE_NO) #elif defined(CSQC) - && !IS_DEAD(other) + && !IS_DEAD(blocker) #endif ) { // KIll Kill Kill!! #ifdef SVQC - Damage (other, this, this, 10000, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0'); + Damage (blocker, this, this, 10000, DEATH_HURTTRIGGER.m_id, blocker.origin, '0 0 0'); #endif } else { #ifdef SVQC - if((this.dmg) && (other.takedamage == DAMAGE_YES)) // Shall we bite? - Damage (other, this, this, this.dmg, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0'); + if((this.dmg) && (blocker.takedamage == DAMAGE_YES)) // Shall we bite? + Damage (blocker, this, this, this.dmg, DEATH_HURTTRIGGER.m_id, blocker.origin, '0 0 0'); #endif // don't change direction for dead or dying stuff - if(IS_DEAD(other) + if(IS_DEAD(blocker) #ifdef SVQC - && (other.takedamage == DAMAGE_NO) + && (blocker.takedamage == DAMAGE_NO) #endif ) { @@ -61,7 +61,7 @@ void door_blocked(entity this) door_go_up (this); } else { - door_rotating_go_up (this); + door_rotating_go_up(this, blocker); } else if (this.classname == "door") @@ -77,8 +77,8 @@ void door_blocked(entity this) else { //gib dying stuff just to make sure - if((this.dmg) && (other.takedamage != DAMAGE_NO)) // Shall we bite? - Damage (other, this, this, 10000, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0'); + if((this.dmg) && (blocker.takedamage != DAMAGE_NO)) // Shall we bite? + Damage (blocker, this, this, 10000, DEATH_HURTTRIGGER.m_id, blocker.origin, '0 0 0'); } #endif } @@ -235,15 +235,15 @@ void door_fire(entity this, entity actor, entity trigger) door_go_up(e); } else { // if the BIDIR spawnflag (==2) is set and the trigger has set trigger_reverse, reverse the opening direction - if ((e.spawnflags & 2) && other.trigger_reverse!=0 && e.lip != 666 && e.state == STATE_BOTTOM) { + if ((e.spawnflags & 2) && trigger.trigger_reverse!=0 && e.lip != 666 && e.state == STATE_BOTTOM) { e.lip = 666; // e.lip is used to remember reverse opening direction for door_rotating e.pos2 = '0 0 0' - e.pos2; } // if BIDIR_IN_DOWN (==8) is set, prevent the door from reoping during closing if it is triggered from the wrong side if (!((e.spawnflags & 2) && (e.spawnflags & 8) && e.state == STATE_DOWN - && (((e.lip == 666) && (other.trigger_reverse == 0)) || ((e.lip != 666) && (other.trigger_reverse != 0))))) + && (((e.lip == 666) && (trigger.trigger_reverse == 0)) || ((e.lip != 666) && (trigger.trigger_reverse != 0))))) { - door_rotating_go_up(e); + door_rotating_go_up(e, trigger); } } e = e.enemy; @@ -289,9 +289,9 @@ Prints messages ================ */ -void door_touch(entity this) +void door_touch(entity this, entity toucher) { - if (!IS_PLAYER(other)) + if (!IS_PLAYER(toucher)) return; if (this.owner.door_finished > time) return; @@ -301,36 +301,35 @@ void door_touch(entity this) #ifdef SVQC if (!(this.owner.dmg) && (this.owner.message != "")) { - if (IS_CLIENT(other)) - centerprint(other, this.owner.message); - play2(other, this.owner.noise); + if (IS_CLIENT(toucher)) + centerprint(toucher, this.owner.message); + play2(toucher, this.owner.noise); } #endif } -void door_generic_plat_blocked(entity this) +void door_generic_plat_blocked(entity this, entity blocker) { - - if((this.spawnflags & 8) && (other.takedamage != DAMAGE_NO)) { // KIll Kill Kill!! + if((this.spawnflags & 8) && (blocker.takedamage != DAMAGE_NO)) { // Kill Kill Kill!! #ifdef SVQC - Damage (other, this, this, 10000, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0'); + Damage (blocker, this, this, 10000, DEATH_HURTTRIGGER.m_id, blocker.origin, '0 0 0'); #endif } else { #ifdef SVQC - if((this.dmg) && (other.takedamage == DAMAGE_YES)) // Shall we bite? - Damage (other, this, this, this.dmg, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0'); + if((this.dmg) && (blocker.takedamage == DAMAGE_YES)) // Shall we bite? + Damage (blocker, this, this, this.dmg, DEATH_HURTTRIGGER.m_id, blocker.origin, '0 0 0'); #endif //Dont chamge direction for dead or dying stuff - if(IS_DEAD(other) && (other.takedamage == DAMAGE_NO)) + if(IS_DEAD(blocker) && (blocker.takedamage == DAMAGE_NO)) { if (this.wait >= 0) { if (this.state == STATE_DOWN) - door_rotating_go_up (this); + door_rotating_go_up (this, blocker); else door_rotating_go_down (this); } @@ -339,8 +338,8 @@ void door_generic_plat_blocked(entity this) else { //gib dying stuff just to make sure - if((this.dmg) && (other.takedamage != DAMAGE_NO)) // Shall we bite? - Damage (other, this, this, 10000, DEATH_HURTTRIGGER.m_id, other.origin, '0 0 0'); + if((this.dmg) && (blocker.takedamage != DAMAGE_NO)) // Shall we bite? + Damage (blocker, this, this, 10000, DEATH_HURTTRIGGER.m_id, blocker.origin, '0 0 0'); } #endif } @@ -383,7 +382,7 @@ void door_rotating_go_down(entity this) SUB_CalcAngleMove (this, this.pos1, TSPEED_LINEAR, this.speed, door_rotating_hit_bottom); } -void door_rotating_go_up(entity this) +void door_rotating_go_up(entity this, entity oth) { if (this.state == STATE_UP) return; // already going up @@ -401,7 +400,7 @@ void door_rotating_go_up(entity this) string oldmessage; oldmessage = this.message; this.message = ""; - SUB_UseTargets(this, NULL, other); // TODO: is other needed here? + SUB_UseTargets(this, NULL, oth); // TODO: is oth needed here? this.message = oldmessage; } @@ -414,13 +413,13 @@ Spawned if a door lacks a real activator ========================================= */ -void door_trigger_touch(entity this) +void door_trigger_touch(entity this, entity toucher) { - if (other.health < 1) + if (toucher.health < 1) #ifdef SVQC - if (!((other.iscreature || (other.flags & FL_PROJECTILE)) && !IS_DEAD(other))) + if (!((toucher.iscreature || (toucher.flags & FL_PROJECTILE)) && !IS_DEAD(toucher))) #elif defined(CSQC) - if(!((IS_CLIENT(other) || other.classname == "csqcprojectile") && !IS_DEAD(other))) + if(!((IS_CLIENT(toucher) || toucher.classname == "csqcprojectile") && !IS_DEAD(toucher))) #endif return; @@ -428,12 +427,12 @@ void door_trigger_touch(entity this) return; // check if door is locked - if (!door_check_keys(this, other)) + if (!door_check_keys(this, toucher)) return; this.door_finished = time + 1; - door_use(this.owner, other, NULL); + door_use(this.owner, toucher, NULL); } void door_spawnfield(entity this, vector fmins, vector fmaxs) @@ -442,7 +441,7 @@ void door_spawnfield(entity this, vector fmins, vector fmaxs) vector t1 = fmins, t2 = fmaxs; trigger = new(doortriggerfield); - trigger.movetype = MOVETYPE_NONE; + set_movetype(trigger, MOVETYPE_NONE); trigger.solid = SOLID_TRIGGER; trigger.owner = this; #ifdef SVQC @@ -526,7 +525,7 @@ void LinkDoors(entity this) break; } } - LOG_TRACE("\n"); + LOG_TRACE(""); // collect health, targetname, message, size cmins = this.absmin; @@ -816,7 +815,7 @@ NET_HANDLE(ENT_CLIENT_DOOR, bool isnew) this.SUB_LTIME = ReadCoord(); this.solid = SOLID_BSP; - this.movetype = MOVETYPE_PUSH; + set_movetype(this, MOVETYPE_PUSH); this.use = door_use; LinkDoors(this); @@ -825,10 +824,7 @@ NET_HANDLE(ENT_CLIENT_DOOR, bool isnew) door_init_startopen(this); this.move_time = time; - this.move_origin = this.origin; - this.move_movetype = MOVETYPE_PUSH; - this.move_angles = this.angles; - this.move_blocked = door_blocked; + set_movetype(this, MOVETYPE_PUSH); } if(sf & SF_TRIGGER_RESET) @@ -842,7 +838,6 @@ NET_HANDLE(ENT_CLIENT_DOOR, bool isnew) this.origin_y = ReadCoord(); this.origin_z = ReadCoord(); setorigin(this, this.origin); - this.move_origin = this.origin; this.pos1_x = ReadCoord(); this.pos1_y = ReadCoord();