]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Doors: Use PLAT_CRUSH instead of 8 (already in use for other infos)
authorFreddy <schro.sb@gmail.com>
Mon, 5 Mar 2018 13:31:17 +0000 (14:31 +0100)
committerFreddy <schro.sb@gmail.com>
Mon, 5 Mar 2018 13:31:17 +0000 (14:31 +0100)
Also remove more magic numbers

qcsrc/common/triggers/func/door.qc
qcsrc/common/triggers/func/door_rotating.qc
qcsrc/common/triggers/func/door_rotating.qh

index f768717c6bbde4c18c6ba50c6b05a7e773466b3a..cfccf10a48e05c8566a4d110de74f662c8c2ab9d 100644 (file)
@@ -1,4 +1,5 @@
 #include "door.qh"
+#include "door_rotating.qh"
 /*
 
 Doors are similar to buttons, but can spawn a fat trigger field around them
@@ -28,7 +29,7 @@ void door_rotating_go_up(entity this, entity oth);
 
 void door_blocked(entity this, entity blocker)
 {
-       if((this.spawnflags & 8)
+       if((this.spawnflags & PLAT_CRUSH)
 #ifdef SVQC
                && (blocker.takedamage != DAMAGE_NO)
 #elif defined(CSQC)
@@ -240,12 +241,12 @@ void door_fire(entity this, entity actor, entity trigger)
                        door_go_up(e, actor, trigger);
                } else {
                        // if the BIDIR spawnflag (==2) is set and the trigger has set trigger_reverse, reverse the opening direction
-                       if ((e.spawnflags & 2) && trigger.trigger_reverse!=0 && e.lip != 666 && e.state == STATE_BOTTOM) {
+                       if ((e.spawnflags & BIDIR) && 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
+                       if (!((e.spawnflags & BIDIR) &&  (e.spawnflags & BIDIR_IN_DOWN) && e.state == STATE_DOWN
                                && (((e.lip == 666) && (trigger.trigger_reverse == 0)) || ((e.lip != 666) && (trigger.trigger_reverse != 0)))))
                        {
                                door_rotating_go_up(e, trigger);
@@ -315,7 +316,7 @@ void door_touch(entity this, entity toucher)
 
 void door_generic_plat_blocked(entity this, entity blocker)
 {
-       if((this.spawnflags & 8) && (blocker.takedamage != DAMAGE_NO)) { // Kill Kill Kill!!
+       if((this.spawnflags & PLAT_CRUSH) && (blocker.takedamage != DAMAGE_NO)) { // Kill Kill Kill!!
 #ifdef SVQC
                Damage (blocker, this, this, 10000, DEATH_HURTTRIGGER.m_id, DMG_NOWEP, blocker.origin, '0 0 0');
 #endif
@@ -467,7 +468,7 @@ LinkDoors
 
 entity LinkDoors_nextent(entity cur, entity near, entity pass)
 {
-       while((cur = find(cur, classname, pass.classname)) && ((cur.spawnflags & 4) || cur.enemy))
+       while((cur = find(cur, classname, pass.classname)) && ((cur.spawnflags & DOOR_DONT_LINK) || cur.enemy))
        {
        }
        return cur;
@@ -500,7 +501,7 @@ void LinkDoors(entity this)
 
        if (this.enemy)
                return;         // already linked by another door
-       if (this.spawnflags & 4)
+       if (this.spawnflags & DOOR_DONT_LINK)
        {
                this.owner = this.enemy = this;
 
index 04cd81a401710bf64086c9665dd7486999f48650..d1849ab8e6a46bea71086e790c922cea1a77ee75 100644 (file)
@@ -47,6 +47,8 @@ void door_rotating_init_startopen(entity this)
 
 spawnfunc(func_door_rotating)
 {
+       // possible TODO: support for Quake1 keys (like func_door)
+       // however SPAWNFLAGS_GOLD_KEY (==8) has the same value as BIDIR_IN_DOWN
 
        //if (!this.deathtype) // map makers can override this
        //      this.deathtype = " got in the way";
index 2e299b20558680aa959b13ff426d8f4ca9b13545..efaac5d56ae4add89a6275afc8f17ad4ef7e30c2 100644 (file)
@@ -1,5 +1,8 @@
 #pragma once
 
 
+const int BIDIR = BIT(1);
+const int BIDIR_IN_DOWN = BIT(3);
+
 const int DOOR_ROTATING_XAXIS = BIT(6);
 const int DOOR_ROTATING_YAXIS = BIT(7);