X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmapobjects%2Ffunc%2Fdoor.qc;h=8d40a377be081fbc583f3adef2486a129530d694;hb=ea08a566448645c9363cb429cd6b1bd9d95d470c;hp=c19041aa0b1b7ad2269597caa1ea93040a26afa6;hpb=0076d3f631e54b908b7506883c75c6d28f6b9505;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/mapobjects/func/door.qc b/qcsrc/common/mapobjects/func/door.qc index c19041aa0..8d40a377b 100644 --- a/qcsrc/common/mapobjects/func/door.qc +++ b/qcsrc/common/mapobjects/func/door.qc @@ -113,7 +113,7 @@ void door_go_down(entity this) if (this.max_health) { this.takedamage = DAMAGE_YES; - this.health = this.max_health; + SetResourceAmountExplicit(this, RESOURCE_HEALTH, this.max_health); } this.state = STATE_DOWN; @@ -265,7 +265,7 @@ void door_damage(entity this, entity inflictor, entity attacker, float damage, i if(this.spawnflags & NOSPLASH) if(!(DEATH_ISSPECIAL(deathtype)) && (deathtype & HITTYPE_SPLASH)) return; - this.health = this.health - damage; + TakeResource(this, RESOURCE_HEALTH, damage); if (this.itemkeys) { @@ -273,10 +273,10 @@ void door_damage(entity this, entity inflictor, entity attacker, float damage, i return; } - if (this.health <= 0) + if (GetResourceAmount(this, RESOURCE_HEALTH) <= 0) { - this.owner.health = this.owner.max_health; - this.owner.takedamage = DAMAGE_NO; // wil be reset upon return + SetResourceAmountExplicit(this.owner, RESOURCE_HEALTH, this.owner.max_health); + this.owner.takedamage = DAMAGE_NO; // will be reset upon return door_use(this.owner, NULL, NULL); } } @@ -357,7 +357,7 @@ Spawned if a door lacks a real activator void door_trigger_touch(entity this, entity toucher) { - if (toucher.health < 1) + if (GetResourceAmount(toucher, RESOURCE_HEALTH) < 1) #ifdef SVQC if (!((toucher.iscreature || (toucher.flags & FL_PROJECTILE)) && !IS_DEAD(toucher))) #elif defined(CSQC) @@ -441,7 +441,7 @@ void LinkDoors(entity this) { this.owner = this.enemy = this; - if (this.health) + if (GetResourceAmount(this, RESOURCE_HEALTH)) return; IFTARGETED return; @@ -474,8 +474,8 @@ void LinkDoors(entity this) cmaxs = this.absmax; for(t = this; ; t = t.enemy) { - if(t.health && !this.health) - this.health = t.health; + if(GetResourceAmount(t, RESOURCE_HEALTH) && !GetResourceAmount(this, RESOURCE_HEALTH)) + SetResourceAmountExplicit(this, RESOURCE_HEALTH, GetResourceAmount(t, RESOURCE_HEALTH)); if((t.targetname != "") && (this.targetname == "")) this.targetname = t.targetname; if((t.message != "") && (this.message == "")) @@ -499,7 +499,7 @@ void LinkDoors(entity this) // distribute health, targetname, message for(t = this; t; t = t.enemy) { - t.health = this.health; + SetResourceAmountExplicit(t, RESOURCE_HEALTH, GetResourceAmount(this, RESOURCE_HEALTH)); t.targetname = this.targetname; t.message = this.message; if(t.enemy == this) @@ -509,7 +509,7 @@ void LinkDoors(entity this) // shootable, or triggered doors just needed the owner/enemy links, // they don't spawn a field - if (this.health) + if (GetResourceAmount(this, RESOURCE_HEALTH)) return; IFTARGETED return; @@ -630,7 +630,7 @@ void door_reset(entity this) // common code for func_door and func_door_rotating spawnfuncs void door_init_shared(entity this) { - this.max_health = this.health; + this.max_health = GetResourceAmount(this, RESOURCE_HEALTH); // unlock sound if(this.noise == "") @@ -683,7 +683,7 @@ void door_init_shared(entity this) this.state = STATE_BOTTOM; - if (this.health) + if (GetResourceAmount(this, RESOURCE_HEALTH)) { //this.canteamdamage = true; // TODO this.takedamage = DAMAGE_YES;