[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