[nexuiz-commits] r6356 - in trunk/data/qcsrc/server/tturrets: include system units

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sun Mar 29 19:25:47 EDT 2009


Author: tzork
Date: 2009-03-29 19:25:46 -0400 (Sun, 29 Mar 2009)
New Revision: 6356

Modified:
   trunk/data/qcsrc/server/tturrets/include/turrets_early.qh
   trunk/data/qcsrc/server/tturrets/system/system_main.qc
   trunk/data/qcsrc/server/tturrets/units/unit_ewheel.qc
   trunk/data/qcsrc/server/tturrets/units/unit_walker.qc
Log:
add spawnflags: 
TSF_TERRAINBASE - was already supported but hard coded 
TSF_NO_AMMO_REGEN - Disable ammo regeneration, only makes sense energy based turrets power by a reactor atm.
TSF_NO_PATHBREAK. - Stop moving units from leaving its path to chase targets

make ewheel and walker honor TSF_NO_PATHBREAK.

Modified: trunk/data/qcsrc/server/tturrets/include/turrets_early.qh
===================================================================
--- trunk/data/qcsrc/server/tturrets/include/turrets_early.qh	2009-03-29 21:47:59 UTC (rev 6355)
+++ trunk/data/qcsrc/server/tturrets/include/turrets_early.qh	2009-03-29 23:25:46 UTC (rev 6356)
@@ -25,8 +25,18 @@
 /// Used for cvar reloading
 .string cvar_basename;
 
+//.float spawnflags
+/// Spawn a pillar model under the turret to make it look ok on uneven ground surfaces
+#define TSF_TERRAINBASE   2
+/// Disable builtin ammo regeneration
+#define TSF_NO_AMMO_REGEN 4
+/// Dont break path to chase enemys. will still fire at them if possible.
+#define TSF_NO_PATHBREAK  8
+
+
 /// target selection flags
 .float target_select_flags;
+/// target validatoin flags
 .float target_validate_flags;
 /// Dont select a target on its own.
 #define TFL_TARGETSELECT_NO            2

Modified: trunk/data/qcsrc/server/tturrets/system/system_main.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/system/system_main.qc	2009-03-29 21:47:59 UTC (rev 6355)
+++ trunk/data/qcsrc/server/tturrets/system/system_main.qc	2009-03-29 23:25:46 UTC (rev 6356)
@@ -519,13 +519,14 @@
     if(e_turret.turrcaps_flags & TFL_TURRCAPS_HEADATTACHED)
     {
         tvt_thadv = angleofs3(e_turret.tur_head.origin,e_turret.angles + e_turret.tur_head.angles ,e_target);
+        //tvt_thadv = angleofs(e_turret.angles,e_target);
     }
     else
     {
         tvt_thadv = angleofs(e_turret.tur_head,e_target);
     }
 
-    tvt_tadv  = angleofs(e_turret,e_target);
+    tvt_tadv  = shortangle_vxy(angleofs(e_turret,e_target),e_turret.angles);
     tvt_thadf = vlen(tvt_thadv);
     tvt_tadf  = vlen(tvt_tadv);
 
@@ -656,6 +657,7 @@
 #endif
 
     // Handle ammo
+    if not (self.spawnflags & TSF_NO_AMMO_REGEN)
     if (self.ammo < self.ammo_max)
         self.ammo = min(self.ammo + self.ammo_recharge,self.ammo_max);
 
@@ -858,7 +860,7 @@
 
     // Terrainbase spawnflag. This puts a enlongated model
     // under the turret, so it looks ok on uneaven surfaces.
-    if (self.spawnflags & 2)
+    if (self.spawnflags & TSF_TERRAINBASE)
     {
         entity tb;
         precache_model("models/turrets/terrainbase.md3");

Modified: trunk/data/qcsrc/server/tturrets/units/unit_ewheel.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/unit_ewheel.qc	2009-03-29 21:47:59 UTC (rev 6355)
+++ trunk/data/qcsrc/server/tturrets/units/unit_ewheel.qc	2009-03-29 23:25:46 UTC (rev 6356)
@@ -145,7 +145,13 @@
     {
     case VCM_EVAL:
         if (self.enemy)
+        {
+            if (self.spawnflags & TSF_NO_PATHBREAK)
+                if (self.pathcurrent)
+                    return VS_CALL_NO;
+
             return verb.verb_static_value;
+        }
 
         return VS_CALL_NO;
 
@@ -194,6 +200,10 @@
     switch (eval)
     {
     case VCM_EVAL:
+        if (self.spawnflags & TSF_NO_PATHBREAK)
+            if (self.pathcurrent)
+                return VS_CALL_NO;
+
         if (self.enemy)
             if (self.health < 50)
                 return verb.verb_static_value;

Modified: trunk/data/qcsrc/server/tturrets/units/unit_walker.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/unit_walker.qc	2009-03-29 21:47:59 UTC (rev 6355)
+++ trunk/data/qcsrc/server/tturrets/units/unit_walker.qc	2009-03-29 23:25:46 UTC (rev 6356)
@@ -587,6 +587,11 @@
     {
     case VCM_EVAL:
 
+        if (self.enemy)
+            if (self.spawnflags & TSF_NO_PATHBREAK)
+                if (self.pathcurrent)
+                    return VS_CALL_NO;
+
         if (self.animflag == ANIM_MEELE)
             return VS_CALL_NO;
 
@@ -953,8 +958,8 @@
 
     self.damage_flags |= TFL_DMG_DEATH_NOGIBS;
 
-    //self.target_select_flags   = TFL_TARGETSELECT_PLAYERS | TFL_TARGETSELECT_RANGELIMTS | TFL_TARGETSELECT_TEAMCHECK | TFL_TARGETSELECT_LOS;
-    //self.target_validate_flags = TFL_TARGETSELECT_PLAYERS | TFL_TARGETSELECT_RANGELIMTS | TFL_TARGETSELECT_TEAMCHECK | TFL_TARGETSELECT_LOS;
+    self.target_select_flags   = TFL_TARGETSELECT_PLAYERS | TFL_TARGETSELECT_RANGELIMTS | TFL_TARGETSELECT_TEAMCHECK | TFL_TARGETSELECT_LOS;
+    self.target_validate_flags = TFL_TARGETSELECT_PLAYERS | TFL_TARGETSELECT_RANGELIMTS | TFL_TARGETSELECT_TEAMCHECK | TFL_TARGETSELECT_LOS;
 
     self.iscreature = TRUE;
     self.movetype   = MOVETYPE_WALK;



More information about the nexuiz-commits mailing list