]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add pushable property, and a small fix for performance
authorSamual <samual@xonotic.org>
Sat, 31 Mar 2012 05:58:56 +0000 (01:58 -0400)
committerSamual <samual@xonotic.org>
Sat, 31 Mar 2012 05:58:56 +0000 (01:58 -0400)
qcsrc/server/defs.qh
qcsrc/server/miscfunctions.qc
qcsrc/server/mutators/gamemode_ctf.qc

index a309f68dbd5af2a6e3c4962e7e3a28dc94c695c2..8ba6659c810ec00455d180bc2439b27d08371e9a 100644 (file)
@@ -197,6 +197,7 @@ void setanim(entity e, vector anim, float looping, float override, float restart
 .float iscreature;
 .float damagedbycontents;
 .float damagedbytriggers;
+.float pushable;
 .vector oldvelocity;
 
 .float pauseregen_finished;
index ce91b2fd31d976f75bb9ce9ca5aabf1fd7530f7b..7cedebcad2c99eb68efb3a5c4571d3984475f22e 100644 (file)
@@ -2745,6 +2745,8 @@ float isPushable(entity e)
 {
        if(e.iscreature)
                return TRUE;
+       if(e.pushable)
+               return TRUE;
        switch(e.classname)
        {
                case "body":
index b0782d5fed7207c5f67668ce3cb06b0ee9642881..d2144ad60dd1e66895cd5c9d40ad1856c6d4e8b9 100644 (file)
@@ -541,12 +541,15 @@ void ctf_FlagThink()
        {       
                case FLAG_BASE:
                {
-                       for(tmp_entity = ctf_worldflaglist; tmp_entity; tmp_entity = tmp_entity.ctf_worldflagnext)
+                       if(autocvar_g_ctf_dropped_capture_radius)
                        {
-                               if(tmp_entity.ctf_status == FLAG_DROPPED)
-                               if(vlen(self.origin - tmp_entity.origin) < autocvar_g_ctf_dropped_capture_radius)
+                               for(tmp_entity = ctf_worldflaglist; tmp_entity; tmp_entity = tmp_entity.ctf_worldflagnext)
                                {
-                                       ctf_Handle_Dropped_Capture(self, tmp_entity);
+                                       if(tmp_entity.ctf_status == FLAG_DROPPED)
+                                       if(vlen(self.origin - tmp_entity.origin) < autocvar_g_ctf_dropped_capture_radius)
+                                       {
+                                               ctf_Handle_Dropped_Capture(self, tmp_entity);
+                                       }
                                }
                        }
                        return;
@@ -720,6 +723,7 @@ void ctf_FlagSetup(float teamnumber, entity flag) // called when spawning a flag
        flag.max_flag_health = ((autocvar_g_ctf_flag_take_damage && autocvar_g_ctf_flag_health) ? autocvar_g_ctf_flag_health : 100);
        flag.health = flag.max_flag_health;
        flag.event_damage = ctf_FlagDamage;
+       flag.pushable = TRUE;
        flag.damagedbytriggers = autocvar_g_ctf_flag_return_when_unreachable;
        flag.damagedbycontents = autocvar_g_ctf_flag_return_when_unreachable;
        flag.velocity = '0 0 0';