From: Samual Date: Sat, 31 Mar 2012 05:58:56 +0000 (-0400) Subject: Add pushable property, and a small fix for performance X-Git-Tag: xonotic-v0.7.0~240^2~147 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=a8635154f9132145cb73c07067a14321f18d3718;p=xonotic%2Fxonotic-data.pk3dir.git Add pushable property, and a small fix for performance --- diff --git a/qcsrc/server/defs.qh b/qcsrc/server/defs.qh index a309f68db..8ba6659c8 100644 --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@ -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; diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index ce91b2fd3..7cedebcad 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -2745,6 +2745,8 @@ float isPushable(entity e) { if(e.iscreature) return TRUE; + if(e.pushable) + return TRUE; switch(e.classname) { case "body": diff --git a/qcsrc/server/mutators/gamemode_ctf.qc b/qcsrc/server/mutators/gamemode_ctf.qc index b0782d5fe..d2144ad60 100644 --- a/qcsrc/server/mutators/gamemode_ctf.qc +++ b/qcsrc/server/mutators/gamemode_ctf.qc @@ -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';