r4603 - in trunk/data/qcsrc/server: . tturrets/include tturrets/system tturrets/units
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Fri Oct 3 07:33:38 EDT 2008
Author: tzork
Date: 2008-10-03 07:33:37 -0400 (Fri, 03 Oct 2008)
New Revision: 4603
Modified:
trunk/data/qcsrc/server/assault.qc
trunk/data/qcsrc/server/tturrets/include/turret_tturrets_early.qh
trunk/data/qcsrc/server/tturrets/system/turret_system_aimprocs.qc
trunk/data/qcsrc/server/tturrets/system/turret_system_damage.qc
trunk/data/qcsrc/server/tturrets/system/turret_system_main.qc
trunk/data/qcsrc/server/tturrets/units/turret_unit_flac.qc
trunk/data/qcsrc/server/tturrets/units/turret_unit_fusionreactor.qc
trunk/data/qcsrc/server/tturrets/units/turret_unit_hellion.qc
trunk/data/qcsrc/server/tturrets/units/turret_unit_hk.qc
trunk/data/qcsrc/server/tturrets/units/turret_unit_machinegun.qc
trunk/data/qcsrc/server/tturrets/units/turret_unit_mlrs.qc
trunk/data/qcsrc/server/tturrets/units/turret_unit_phaser.qc
trunk/data/qcsrc/server/tturrets/units/turret_unit_plasma.qc
trunk/data/qcsrc/server/tturrets/units/turret_unit_targettrigger.qc
trunk/data/qcsrc/server/tturrets/units/turret_unit_tessla.qc
Log:
Turret updates #2 sound channels usage and some optimizations.
Modified: trunk/data/qcsrc/server/assault.qc
===================================================================
--- trunk/data/qcsrc/server/assault.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/assault.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -322,7 +322,8 @@
self = ent;
// Dubbles as teamchange
- ent.turret_spawnfunc();
+ turret_stdproc_respawn();
+ //ent.turret_spawnfunc();
ent = find(ent, classname, "turret_main");
}
Modified: trunk/data/qcsrc/server/tturrets/include/turret_tturrets_early.qh
===================================================================
--- trunk/data/qcsrc/server/tturrets/include/turret_tturrets_early.qh 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/include/turret_tturrets_early.qh 2008-10-03 11:33:37 UTC (rev 4603)
@@ -3,7 +3,7 @@
#ifdef TTURRETS_ENABLED
-#message "with tZork turrets rc1"
+#message "with tZork turrets rc2"
vector real_origin(entity ent);
@@ -104,7 +104,7 @@
#define TFL_FIRECHECK_OWM_AMMO 1024
/// Others ammo need to be < others .ammo_max
#define TFL_FIRECHECK_OTHER_AMMO 2048
-/// Check own .attack_finished vs time
+/// Check own .attack_finished_single vs time
#define TFL_FIRECHECK_REFIRE 4096
/// How shooting is done
@@ -170,7 +170,7 @@
#define TFL_AMMO_ROCKETS 8
/// Regenerates ammo on its own
#define TFL_AMMO_RECHARGE 16
- /// Can recive ammo from others
+/// Can recive ammo from others
#define TFL_AMMO_RECIVE 32
/// How incomming damage is handeld
@@ -233,15 +233,13 @@
.float tur_dist_toaimpos;
/// Decresment counter form .shot_volly to 0.
.float volly_counter;
-/// Pointer to master when in slave mode
-.entity emaster; // A slave?
/*
* Projectile/missile. its up to the individual turret implementation to
** deal the damage, blow upp the missile or whatever.
*/
/// Track then refireing is possible
-.float attack_finished;
+//.float attack_finished; = attack_finished_single
/// Shoot this often
.float shot_refire;
/// Shots travel this fast, when appliable
@@ -290,7 +288,7 @@
/// Maximum offset between impact and aim spot to fire
.float aim_firetolerance_dist;
/// Maximum angular offset between head and aimspot to fire
-.float aim_firetolerance_angle;
+//.float aim_firetolerance_angle;
/// How fast can i rotate/pitch (per second in stepmotor mode, base force in smooth modes)
.float aim_speed;
/// cant aim higher/lower then this
@@ -306,16 +304,7 @@
/// Max amount of ammo i can hold
.float ammo_max;
-// Am i enslaved?
-// Slave turrets always target the same target as their master.
-// However; Depending on their individual capabiliteis, they may not fire at the same time
-// or at all. (slaves ranges, rotaion limits, ammo etc still apply)
-/// Set to another turrets .master_nameof to enslave me
-.string master_name;
-/// Set another turrets .master_name to this to enslave it
-.string master_nameof;
-
// Uncomment below to enable various debug output.
//#define TURRET_DEBUG
//#define TURRET_DEBUG_TARGETVALIDATE
@@ -350,29 +339,43 @@
/// Add a target
.float(entity e_target,entity e_sender) turret_addtarget;
-.float call_diehook;
-.float call_respwnhook;
+//.float call_diehook;
+//.float call_respwnhook;
.void() turret_diehook;
.void() turret_respawnhook;
/*
+#define TEH_THINK 2
+#define TEH_DAMAGE 4
+#define TEH_DIE 8
+#define TEH_RESPAWN 16
+#define TEH_TRACK 32
+#define TEH_AIM 64
+#define TEH_SELECT 128
+.float(float event_id) turret_eventhook;
+*/
+
+/*
* Some turrets need other aimsystems then other.
* This should return the place to aim at, not acctualy turn or
* pitch anyting.
*
-* use turret_stdproc_aim# or Make your own.
+* use turret_stdproc_aim* or Make your own.
* Make sure you update tur_enemy_dist and tur_enemy_adist
* with the apropriate info, if you do.
+
+removed.
*/
/// function used to aim, usualy turret_stdproc_aim_generic
-.vector() turret_aim;
+//.vector() turret_aim;
/*
* This is where the acctual turret turning should take place
* Use turret_stdproc_track or make your own.
+wkacked to save mem.
*/
-/// Function used to turn and pitch the .tur_head usualy turret_stdproc_track
-.void() turret_track;
+// Function used to turn and pitch the .tur_head usualy turret_stdproc_track
+//.void() turret_track;
/*
* Target selection, preferably but not nessesarely
@@ -385,12 +388,13 @@
* Damage, death and respawn.
*/
void turret_gibs_precash();
-/// Function to handle incomming damage. usualy turret_stdproc_damage
-.void(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector vforce) turret_damagefunc;
-/// Function to handle the event of death. usualy turret_stdproc_die
-.void() turret_diefunc;
- /// Function that handles rebirth. usualy turret_stdproc_respawn
-.void() turret_spawnfunc;
+// generalized so save mem (on fields)
+// Function to handle incomming damage. usualy turret_stdproc_damage
+//.void(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector vforce) turret_damagefunc;
+// Function to handle the event of death. usualy turret_stdproc_die
+//.void() turret_diefunc;
+// Function that handles rebirth. usualy turret_stdproc_respawn
+//.void() turret_spawnfunc;
/*
* Stuff to plug into requierd but unused callbacks.
@@ -423,8 +427,8 @@
*/
/// Generic aimer guided by self.aim_flags
vector turret_stdproc_aim_generic()
-/// Straight line, current location
-vector turret_stdproc_aim_simple()
+// Straight line, current location
+//vector turret_stdproc_aim_simple()
/*
* Turret turning & pitch
Modified: trunk/data/qcsrc/server/tturrets/system/turret_system_aimprocs.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/system/turret_system_aimprocs.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/system/turret_system_aimprocs.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -60,7 +60,7 @@
if (self.aim_flags & TFL_AIM_SHOTTIMECOMPENSATE) // Need to conpensate for shot traveltime
pre_pos += self.enemy.velocity * (self.tur_dist_enemy / self.shot_speed);
else if (self.turrcaps_flags & TFL_TURRCAPS_HITSCAN) // Hitscan gun, conpensate for frametime and posibly refire offset.
- pre_pos += self.enemy.velocity * (frametime + min(max(self.attack_finished - time,0),self.ticrate*2));
+ pre_pos += self.enemy.velocity * (frametime + min(max(self.attack_finished_single - time,0),self.ticrate*2));
else // No lead
pre_pos += self.enemy.velocity;
Modified: trunk/data/qcsrc/server/tturrets/system/turret_system_damage.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/system/turret_system_damage.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/system/turret_system_damage.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -60,7 +60,7 @@
float i;
string s;
- for(i=1;i<5;i++)
+ for (i=1;i<5;i++)
{
gib = spawn();
gib.classname = "turret_gib";
@@ -172,14 +172,16 @@
// base
makevectors(self.angles);
- if(random() > 0.5)
+ if (random() > 0.5)
{
turret_trowgib(self.origin, '0 0 0','1 1 1',"models/turrets/base-gib2.md3",min(self.respawntime,20),1,1);
t_dir = (v_up * 700) + (randomvec() * 300);
turret_trowgib(self.origin, t_dir,'1 1 1',"models/turrets/base-gib3.md3",min(self.respawntime,10),1,1);
t_dir = (v_up * 700) + (randomvec() * 300);
turret_trowgib(self.origin, t_dir,'1 1 1',"models/turrets/base-gib4.md3",min(self.respawntime,10),1,1);
- } else {
+ }
+ else
+ {
turret_trowgib(self.origin, '0 0 0','1 1 1',"models/turrets/base-gib1.md3",min(self.respawntime,20),1,1);
}
@@ -195,11 +197,11 @@
// Setup respawn
self.nextthink = time + self.respawntime;
- self.think = self.turret_spawnfunc;
+ //self.think = self.turret_spawnfunc;
+ self.think = turret_stdproc_respawn;
- if(self.call_diehook)
+ if (self.turret_diehook)
self.turret_diehook();
-
}
void turret_stdproc_respawn()
@@ -238,7 +240,7 @@
self.nextthink = time + self.ticrate;
self.think = turret_think;
- if(self.call_respwnhook)
+ if (self.turret_respawnhook)
self.turret_respawnhook();
}
@@ -248,14 +250,14 @@
*/
void turret_stdproc_damage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector vforce)
{
- entity baseent;
+ entity baseent,oldself;
// entity player;
if (self.health <= 0) return;
// Damage func is shared on all parts as standard, we need to know what the master entity of this turret is.
// if ((self.classname == "turret_head")||(self.classname == "turret_gun")||(self.classname == "turret_badge"))
- if(self.owner)
+ if (self.owner)
baseent = self.owner;
else
baseent = self;
@@ -266,12 +268,14 @@
{
sprint(attacker,"Turret: Im on your team!\n");
return;
- } else {
- /*
+ }
+ else
+ {
+ /*
// This will get enoying fast...
- FOR_EACH_PLAYER(player)
- if(player.team == self.team)
- sprint(player, "The enemy is attacking your base!");
+ FOR_EACH_PLAYER(player)
+ if(player.team == self.team)
+ sprint(player, "The enemy is attacking your base!");
*/
}
@@ -281,14 +285,14 @@
baseent.health = baseent.health - damage;
// thorw head slightly off aim when hit?
- if((self.classname == "turret_head") || (self.classname == "turret_gun"))
- if(self.damage_flags & TFL_DMG_HEADSHAKE)
- {
- // makevectors(baseent.tur_head.v_angle);
- baseent.tur_head.angles = baseent.tur_head.angles + randomvec() * damage;
- }
+ if ((self.classname == "turret_head") || (self.classname == "turret_gun"))
+ if (self.damage_flags & TFL_DMG_HEADSHAKE)
+ {
+ // makevectors(baseent.tur_head.v_angle);
+ baseent.tur_head.angles = baseent.tur_head.angles + randomvec() * damage;
+ }
- if(self.turrcaps_flags & TFL_TURRCAPS_MOVE)
+ if (self.turrcaps_flags & TFL_TURRCAPS_MOVE)
{
self.velocity = self.velocity + vforce;
}
@@ -300,8 +304,12 @@
if (self.health <= 0)
{
+ oldself = self;
self = baseent;
- baseent.turret_diefunc();
+ turret_stdproc_die();
+ self = oldself;
+
+ //baseent.turret_diefunc();
}
}
Modified: trunk/data/qcsrc/server/tturrets/system/turret_system_main.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/system/turret_system_main.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/system/turret_system_main.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -66,7 +66,7 @@
ent.ammo_recharge = cvar(cvar_gets(sbase,"_ammo_recharge")) * ent.turret_scale_ammo;
ent.aim_firetolerance_dist = cvar(cvar_gets(sbase,"_aim_firetolerance_dist"));
- ent.aim_firetolerance_angle = cvar(cvar_gets(sbase,"_aim_firetolerance_angle"));
+// ent.aim_firetolerance_angle = cvar(cvar_gets(sbase,"_aim_firetolerance_angle"));
ent.aim_speed = cvar(cvar_gets(sbase,"_aim_speed")) * ent.turret_scale_aim;
ent.aim_maxrot = cvar(cvar_gets(sbase,"_aim_maxrot"));
ent.aim_maxpitch = cvar(cvar_gets(sbase,"_aim_maxpitch"));
@@ -289,7 +289,7 @@
// Ready?
if (self.firecheck_flags & TFL_FIRECHECK_REFIRE)
- if (self.attack_finished >= time) return 0;
+ if (self.attack_finished_single >= time) return 0;
//
if (self.firecheck_flags & TFL_FIRECHECK_DEAD)
@@ -328,7 +328,7 @@
if (self.shot_volly > 1)
{
if (self.volly_counter == self.shot_volly)
- if (self.ammo < (self.shot_dmg * self.shot_volly +1))
+ if (self.ammo < (self.shot_dmg * self.shot_volly))
return 0;
}
@@ -517,8 +517,9 @@
{
if (e.tur_head != world)
{
+
load_unit_settings(e,e.cvar_basename,1);
- self.turret_postthink();
+ e.turret_postthink();
}
e = nextent(e);
@@ -548,7 +549,8 @@
{
dprint("Warning: Inactive or dead turret running the think function!\n");
self.enemy = world;
- self.turret_track();
+ //self.turret_track();
+ turret_stdproc_track();
return;
}
@@ -577,25 +579,20 @@
else
{
// Check if we have a vailid enemy, and get one if we dont.
- if (self.emaster != world)
+ // turret_do_updates(self);
+ if ((turret_validate_target(self,self.enemy,self.target_validate_flags) <= 0) || (self.cnt < time))
{
- self.enemy = self.emaster.enemy;
+ self.enemy = turret_select_target();
+ self.cnt = time + self.ticrate * 3;
}
- else
- {
- // turret_do_updates(self);
- if ((turret_validate_target(self,self.enemy,self.target_validate_flags) <= 0) || (self.cnt < time))
- {
- self.enemy = turret_select_target();
- self.cnt = time + self.ticrate * 3;
- }
- }
+
// No target, just go to idle, do any custom stuff and bail.
if (self.enemy == world)
{
// Turn & pitch
- self.turret_track();
+ if (!self.track_flags & TFL_TRACK_NO)
+ turret_stdproc_track();
// do any per-turret stuff
self.turret_postthink();
@@ -609,11 +606,13 @@
// Predict or whatnot
if (!self.aim_flags & TFL_AIM_NO)
- self.tur_aimpos = self.turret_aim();
+ self.tur_aimpos = turret_stdproc_aim_generic();
+ //self.tur_aimpos = self.turret_aim();
// Turn & pitch
if (!self.track_flags & TFL_TRACK_NO)
- self.turret_track();
+ turret_stdproc_track();
+ //self.turret_track();
// Update
turret_do_updates(self);
@@ -634,7 +633,7 @@
self.turret_firefunc();
- self.attack_finished = time + self.shot_refire;
+ self.attack_finished_single = time + self.shot_refire;
self.ammo = self.ammo - self.shot_dmg;
self.volly_counter = self.volly_counter - 1;
@@ -645,7 +644,7 @@
if (self.shoot_flags & TFL_SHOOT_CLEARTARGET) self.enemy = world;
if (self.shot_volly > 1)
- self.attack_finished = time + self.shot_volly_refire;
+ self.attack_finished_single = time + self.shot_volly_refire;
}
@@ -798,8 +797,8 @@
if (!self.aim_firetolerance_dist) self.aim_firetolerance_dist = 5 + (self.shot_radius * 2);
self.aim_firetolerance_dist = bound(0.1,self.aim_firetolerance_dist,MAX_SHOT_DISTANCE);
- if (!self.aim_firetolerance_angle) self.aim_firetolerance_angle = 10;
- self.aim_firetolerance_angle = bound(0.1,self.aim_firetolerance_angle,360);
+// if (!self.aim_firetolerance_angle) self.aim_firetolerance_angle = 10;
+// self.aim_firetolerance_angle = bound(0.1,self.aim_firetolerance_angle,360);
if (!self.aim_flags) self.aim_flags = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE | TFL_AIM_ZEASE;
@@ -875,17 +874,6 @@
self.tur_head.netname = self.tur_head.classname = "turret_head";
self.tur_head.team = self.team;
- //Slave mode?
- if (self.master_nameof != "")
- {
- self.emaster = find(world, master_name, self.master_name);
- if (self.emaster == world)
- {
- self.master_nameof = "";
- dprint("Turret has bad invalid!\n");
- }
- }
-
// Defend mode?
if (self.target != "")
{
@@ -936,18 +924,18 @@
{
self.turret_prethink = turret_stdproc_true;
self.turret_score_target = turret_stdproc_targetscore_support;
- self.turret_aim = turret_stdproc_aim_generic;
- self.turret_track = turret_stdproc_track;
+ //self.turret_aim = turret_stdproc_aim_generic;
+ //self.turret_track = turret_stdproc_track;
self.turret_firecheckfunc = turret_stdproc_firecheck;
self.turret_firefunc = turret_stdproc_fire;
self.turret_postthink = turret_stdproc_nothing;
- self.turret_damagefunc = turret_stdproc_damage;
+ //self.turret_damagefunc = turret_stdproc_damage;
self.event_damage = turret_stdproc_damage;
self.tur_head.event_damage = turret_stdproc_damage;
- self.turret_diefunc = turret_stdproc_die;
- self.turret_spawnfunc = turret_stdproc_respawn;
+ //self.turret_diefunc = turret_stdproc_die;
+ //self.turret_spawnfunc = turret_stdproc_respawn;
}
else
@@ -956,22 +944,22 @@
self.turret_prethink = turret_stdproc_true;
self.turret_score_target = turret_stdproc_targetscore_generic;
- if (self.aim_flags & TFL_AIM_SIMPLE)
- self.turret_aim = turret_stdproc_aim_simple;
- else
- self.turret_aim = turret_stdproc_aim_generic;
+ //if (self.aim_flags & TFL_AIM_SIMPLE)
+ // self.turret_aim = turret_stdproc_aim_simple;
+ //else
+ // self.turret_aim = turret_stdproc_aim_generic;
- self.turret_track = turret_stdproc_track;
+ //self.turret_track = turret_stdproc_track;
self.turret_firecheckfunc = turret_stdproc_firecheck;
self.turret_firefunc = turret_stdproc_fire;
self.turret_postthink = turret_stdproc_nothing;
- self.turret_damagefunc = turret_stdproc_damage;
+ //self.turret_damagefunc = turret_stdproc_damage;
self.event_damage = turret_stdproc_damage;
self.tur_head.event_damage = turret_stdproc_damage;
- self.turret_diefunc = turret_stdproc_die;
- self.turret_spawnfunc = turret_stdproc_respawn;
+ //self.turret_diefunc = turret_stdproc_die;
+ //self.turret_spawnfunc = turret_stdproc_respawn;
self.turret_addtarget = turret_stdproc_false;
}
Modified: trunk/data/qcsrc/server/tturrets/units/turret_unit_flac.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/turret_unit_flac.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/units/turret_unit_flac.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -31,31 +31,28 @@
proj.nextthink = time + (vlen(self.tur_aimpos - self.tur_shotorg_updated) / self.shot_speed) + (random() * self.shot_spread);
self.tur_head.frame = self.tur_head.frame + 1;
- if(self.tur_head.frame >= 4) self.tur_head.frame = 0;
+ if (self.tur_head.frame >= 4) self.tur_head.frame = 0;
}
void turret_flac_projectile_explode()
{
- //vector org2;
- float d;
+ float ftmp;
- float b;
- //org2 = findbetterlocation (self.origin, 12);
te_explosion (self.origin);
- b = crandom();
- if (b<-0.7)
+ ftmp = crandom();
+ if (ftmp<-0.7)
sound (self, CHAN_PROJECTILE, "weapons/hagexp1.wav", 1, ATTN_NORM);
- else if (b<0.4)
+ else if (ftmp<0.4)
sound (self, CHAN_PROJECTILE, "weapons/hagexp2.wav", 1, ATTN_NORM);
- else if (b<1)
+ else if (ftmp<1)
sound (self, CHAN_PROJECTILE, "weapons/hagexp3.wav", 1, ATTN_NORM);
self.event_damage = SUB_Null;
- d = RadiusDamage (self, self.owner, self.owner.shot_dmg, 0, self.owner.shot_radius, world, self.owner.shot_force, DEATH_TURRET);
+ ftmp = RadiusDamage (self, self.owner, self.owner.shot_dmg, 0, self.owner.shot_radius, world, self.owner.shot_force, DEATH_TURRET);
#ifdef TURRET_DEBUG
self.owner.tur_dbg_dmg_t_h = self.owner.tur_dbg_dmg_t_h + d; //self.owner.shot_dmg;
@@ -75,12 +72,6 @@
self.ammo_flags = TFL_AMMO_ROCKETS | TFL_AMMO_RECHARGE;
self.aim_flags = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE;
-
-
- precache_model ("models/turrets/base.md3");
- precache_model ("models/turrets/flac.md3");
- precache_model("models/turrets/pd_proj.md3");
-
if (turret_stdproc_init("flac_std") == 0)
{
remove(self);
@@ -90,7 +81,7 @@
setmodel(self,"models/turrets/base.md3");
setmodel(self.tur_head,"models/turrets/flac.md3");
- if(!turret_tag_setup(0))
+ if (!turret_tag_setup(0))
dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
// Our fire routine
@@ -102,6 +93,10 @@
void spawnfunc_turret_flac()
{
+ precache_model ("models/turrets/base.md3");
+ precache_model ("models/turrets/flac.md3");
+ precache_model("models/turrets/pd_proj.md3");
+
self.think = turret_flac_dinit;
self.nextthink = time + 0.5;
}
Modified: trunk/data/qcsrc/server/tturrets/units/turret_unit_fusionreactor.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/turret_unit_fusionreactor.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/units/turret_unit_fusionreactor.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -47,8 +47,6 @@
self.track_flags = TFL_TRACK_NO;
- precache_model ("models/turrets/reactor.md3");
- precache_model ("models/turrets/base.md3");
if (turret_stdproc_init("fusreac_std") == 0)
{
remove(self);
@@ -76,7 +74,9 @@
*/
void spawnfunc_turret_fusionreactor()
{
- // return;
+ precache_model ("models/turrets/reactor.md3");
+ precache_model ("models/turrets/base.md3");
+
self.think = turret_fusionreactor_dinit;
self.nextthink = time + 0.5;
}
Modified: trunk/data/qcsrc/server/tturrets/units/turret_unit_hellion.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/turret_unit_hellion.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/units/turret_unit_hellion.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -10,16 +10,16 @@
void turret_hellion_postthink()
{
- if(cvar("g_turrets_reloadcvars"))
+ if (cvar("g_turrets_reloadcvars"))
{
- if(!self.shot_speed_max) self.shot_speed_max = cvar("g_turrets_unit_hellion_std_shot_speed_max");
- if(!self.shot_speed_gain) self.shot_speed_gain = cvar("g_turrets_unit_hellion_std_shot_speed_gain");
+ if (!self.shot_speed_max) self.shot_speed_max = cvar("g_turrets_unit_hellion_std_shot_speed_max");
+ if (!self.shot_speed_gain) self.shot_speed_gain = cvar("g_turrets_unit_hellion_std_shot_speed_gain");
}
- if(self.tur_head.frame != 0)
+ if (self.tur_head.frame != 0)
self.tur_head.frame = self.tur_head.frame + 1;
- if(self.tur_head.frame > 7)
+ if (self.tur_head.frame > 7)
self.tur_head.frame = 0;
}
@@ -31,7 +31,7 @@
missile = spawn ();
setorigin(missile, self.tur_shotorg_updated);
- sound (missile, CHAN_VOICE, "weapons/rocket_fly.wav", 0.4, ATTN_NORM);
+ sound (missile, CHAN_PROJECTILE, "weapons/rocket_fly.wav", 0.4, ATTN_NORM);
setmodel (missile, "models/turrets/mlrs_rocket.md3"); // precision set below
setsize (missile, '-3 -3 -3', '3 3 3'); // give it some size so it can be shot
@@ -60,7 +60,7 @@
// switch tubes
self.tur_shotorg_y = self.tur_shotorg_y * -1;
- if(self.tur_head.frame == 0)
+ if (self.tur_head.frame == 0)
self.tur_head.frame = self.tur_head.frame + 1;
}
@@ -109,12 +109,14 @@
olddir = normalize(self.velocity);
- if(self.enemy)
+ if (self.enemy)
{
// Predict enemy position
itime = vlen(self.enemy.origin - self.origin) / vlen(self.velocity);
pre_pos = self.enemy.origin + self.enemy.velocity * itime;
- } else {
+ }
+ else
+ {
pre_pos = self.origin + olddir * 1024;
}
@@ -176,8 +178,8 @@
{
if (self.netname == "") self.netname = "Hellion Missile Turret";
- if(!self.shot_speed_max) self.shot_speed_max = cvar("g_turrets_unit_hellion_std_shot_speed_max");
- if(!self.shot_speed_gain) self.shot_speed_gain = cvar("g_turrets_unit_hellion_std_shot_speed_gain");
+ if (!self.shot_speed_max) self.shot_speed_max = cvar("g_turrets_unit_hellion_std_shot_speed_max");
+ if (!self.shot_speed_gain) self.shot_speed_gain = cvar("g_turrets_unit_hellion_std_shot_speed_gain");
self.turrcaps_flags = TFL_TURRCAPS_RADIUSDMG | TFL_TURRCAPS_FASTPROJ | TFL_TURRCAPS_PLAYERKILL | TFL_TURRCAPS_MISSILEKILL;
self.aim_flags = TFL_AIM_SIMPLE;
@@ -185,10 +187,6 @@
self.firecheck_flags = TFL_FIRECHECK_WORLD | TFL_FIRECHECK_DEAD | TFL_FIRECHECK_DISTANCES | TFL_FIRECHECK_TEAMCECK | TFL_FIRECHECK_REFIRE | TFL_FIRECHECK_AFF | TFL_FIRECHECK_OWM_AMMO;
self.ammo_flags = TFL_AMMO_ROCKETS | TFL_AMMO_RECHARGE;
- precache_model ( "models/turrets/mlrs_rocket.md3");
- precache_model ("models/turrets/hellion.md3");
- precache_model ("models/turrets/base.md3");
-
if (turret_stdproc_init("hellion_std") == 0)
{
remove(self);
@@ -198,7 +196,7 @@
setmodel(self,"models/turrets/base.md3");
setmodel(self.tur_head,"models/turrets/hellion.md3");
- if(!turret_tag_setup(0))
+ if (!turret_tag_setup(0))
dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
// Our fire routine
@@ -212,6 +210,10 @@
*/
void spawnfunc_turret_hellion()
{
+ precache_model ( "models/turrets/mlrs_rocket.md3");
+ precache_model ("models/turrets/hellion.md3");
+ precache_model ("models/turrets/base.md3");
+
self.think = turret_hellion_dinit;
self.nextthink = time + 0.5;
}
Modified: trunk/data/qcsrc/server/tturrets/units/turret_unit_hk.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/turret_unit_hk.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/units/turret_unit_hk.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -23,7 +23,7 @@
{
if (e_target)
{
- if (turret_validate_target(self,e_target,self.target_validate_flags) > 0)
+ if (turret_validate_target(self,e_target,self.target_validate_flags) > 0)
{
self.enemy = e_target;
return 1;
@@ -49,7 +49,7 @@
// player
if (e_target.flags & FL_CLIENT)
{
- if(self.owner.target_select_playerbias < 0)
+ if (self.owner.target_select_playerbias < 0)
return 0;
if (e_target.deadflag != DEAD_NO)
@@ -91,7 +91,7 @@
missile.solid = SOLID_BBOX;
setmodel (missile, "models/turrets/hunter2.md3"); // precision set below
setsize (missile, '-3 -3 -3', '3 3 3'); // give it some size so it can be shot
- sound (missile, CHAN_VOICE, "weapons/rocket_fly.wav", 0.4, ATTN_NORM);
+ sound (missile, CHAN_PROJECTILE, "weapons/rocket_fly.wav", 0.4, ATTN_NORM);
setorigin(missile, self.tur_shotorg_updated);
missile.scale = 1;
@@ -118,7 +118,7 @@
te_explosion (missile.origin);
- if(self.tur_head.frame == 0)
+ if (self.tur_head.frame == 0)
self.tur_head.frame = self.tur_head.frame + 1;
}
@@ -296,11 +296,11 @@
//wishdir = normalize(self.enemy.origin - (self.enemy.origin + self.enemy.velocity));
}
- if((myspeed > hk_minspeed) && (self.cnt > time))
+ if ((myspeed > hk_minspeed) && (self.cnt > time))
myspeed = min(myspeed * hk_accel2,hk_maxspeed);
// Ranoutagazfish?
- if(self.cnt < time)
+ if (self.cnt < time)
{
self.cnt = time + 0.25;
self.nextthink = 0;
@@ -383,7 +383,7 @@
void turret_hk_postthink()
{
- if(cvar("g_turrets_reloadcvars"))
+ if (cvar("g_turrets_reloadcvars"))
{
hk_maxspeed = cvar("g_turrets_unit_hk_std_shot_speed_max");
hk_minspeed = cvar("g_turrets_unit_hk_std_shot_speed");
@@ -392,10 +392,10 @@
hk_decel = cvar("g_turrets_unit_hk_std_shot_speed_decel");
}
- if(self.tur_head.frame != 0)
+ if (self.tur_head.frame != 0)
self.tur_head.frame = self.tur_head.frame + 1;
- if(self.tur_head.frame > 5)
+ if (self.tur_head.frame > 5)
self.tur_head.frame = 0;
}
@@ -424,12 +424,6 @@
self.shoot_flags = TFL_SHOOT_CLEARTARGET;
-
- precache_model ( "models/turrets/hunter2.md3");
-
- precache_model ("models/turrets/base.md3");
- precache_model ("models/turrets/hk.md3");
-
if (turret_stdproc_init("hk_std") == 0)
{
remove(self);
@@ -441,7 +435,7 @@
setmodel(self,"models/turrets/base.md3");
setmodel(self.tur_head,"models/turrets/hk.md3");
- if(!turret_tag_setup(0))
+ if (!turret_tag_setup(0))
dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
// Our fire routine
@@ -466,6 +460,10 @@
void spawnfunc_turret_hk()
{
+ precache_model ( "models/turrets/hunter2.md3");
+ precache_model ("models/turrets/base.md3");
+ precache_model ("models/turrets/hk.md3");
+
self.think = turret_hk_dinit;
self.nextthink = time + 0.5;
}
Modified: trunk/data/qcsrc/server/tturrets/units/turret_unit_machinegun.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/turret_unit_machinegun.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/units/turret_unit_machinegun.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -11,7 +11,7 @@
fireBullet (self.tur_shotorg_updated, self.tur_shotdir_updated,self.shot_spread, self.shot_dmg, self.shot_force, DEATH_TURRET, FALSE);
te_smallflash(self.tur_shotorg_updated);
- trailparticles(self,particleeffectnum("EF_MINIGUNTRAIL"),self.tur_shotorg_updated,trace_endpos);
+ trailparticles(self,particleeffectnum("EF_MGTURRETTRAIL"),self.tur_shotorg_updated,trace_endpos);
// muzzle flash for 3rd person view
flash = spawn();
@@ -31,9 +31,6 @@
{
if (self.netname == "") self.netname = "Machinegun Turret";
- precache_model ("models/turrets/machinegun.md3");
- precache_model ("models/turrets/base.md3");
-
self.ammo_flags = TFL_AMMO_BULLETS | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;
self.turrcaps_flags = TFL_TURRCAPS_HITSCAN | TFL_TURRCAPS_PLAYERKILL;
self.aim_flags = TFL_AIM_LEAD | TFL_AIM_ZEASE;
@@ -47,7 +44,7 @@
setmodel(self,"models/turrets/base.md3");
setmodel(self.tur_head,"models/turrets/machinegun.md3");
- if(!turret_tag_setup(0))
+ if (!turret_tag_setup(0))
dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
// Our fire routine
@@ -65,6 +62,9 @@
*/
void spawnfunc_turret_machinegun()
{
+ precache_model ("models/turrets/machinegun.md3");
+ precache_model ("models/turrets/base.md3");
+
self.think = turret_machinegun_std_init;
self.nextthink = time + 0.5;
}
Modified: trunk/data/qcsrc/server/tturrets/units/turret_unit_mlrs.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/turret_unit_mlrs.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/units/turret_unit_mlrs.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -6,7 +6,7 @@
void turret_mlrs_postthink()
{
- if((self.tur_head.frame >= 6) && (self.attack_finished <= time))
+ if ((self.tur_head.frame >= 6) && (self.attack_finished_single <= time))
self.tur_head.frame = 0;
}
@@ -21,7 +21,7 @@
missile = spawn ();
setmodel (missile, "models/turrets/rocket.md3"); // precision set below
setsize (missile, '-3 -3 -3', '3 3 3'); // give it some size so it can be shot
- sound (missile, CHAN_VOICE, "weapons/rocket_fly.wav", 0.4, ATTN_NORM);
+ sound (missile, CHAN_PROJECTILE, "weapons/rocket_fly.wav", 0.4, ATTN_NORM);
setorigin(missile, self.tur_shotorg_updated);
missile.classname = "mlrs_missile";
missile.owner = self;
@@ -57,13 +57,15 @@
pointparticles(particleeffectnum("rocket_explode"), org2, '0 0 0', 1);
self.event_damage = SUB_Null;
- RadiusDamage (self, self.owner, self.owner.shot_dmg, 0, self.owner.shot_radius, world, self.owner.shot_force, DEATH_TURRET);
#ifdef TURRET_DEBUG
float d;
+
d = RadiusDamage (self, self.owner, self.owner.shot_dmg, 0, self.owner.shot_radius, world, self.owner.shot_force, DEATH_TURRET);
self.owner.tur_dbg_dmg_t_h = self.owner.tur_dbg_dmg_t_h + d; //self.owner.shot_dmg;
self.owner.tur_dbg_dmg_t_f = self.owner.tur_dbg_dmg_t_f + self.owner.shot_dmg;
+#else
+ RadiusDamage (self, self.owner, self.owner.shot_dmg, 0, self.owner.shot_radius, world, self.owner.shot_force, DEATH_TURRET);
#endif
// Target dead, get another is still targeting the same.
@@ -81,10 +83,6 @@
self.ammo_flags = TFL_AMMO_ROCKETS | TFL_AMMO_RECHARGE;
self.aim_flags = TFL_AIM_LEAD | TFL_AIM_ZEASE | TFL_AIM_SHOTTIMECOMPENSATE;
- precache_model ( "models/turrets/rocket.md3");
- precache_model ("models/turrets/mlrs.md3");
- precache_model ("models/turrets/base.md3");
-
if (turret_stdproc_init("mlrs_std") == 0)
{
remove(self);
@@ -94,7 +92,7 @@
setmodel(self,"models/turrets/base.md3");
setmodel(self.tur_head,"models/turrets/mlrs.md3");
- if(!turret_tag_setup(0))
+ if (!turret_tag_setup(0))
dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
// Our fire routine
@@ -108,6 +106,10 @@
void spawnfunc_turret_mlrs()
{
+ precache_model ( "models/turrets/rocket.md3");
+ precache_model ("models/turrets/mlrs.md3");
+ precache_model ("models/turrets/base.md3");
+
self.think = turret_mlrs_dinit;
self.nextthink = time + 0.5;
}
Modified: trunk/data/qcsrc/server/tturrets/units/turret_unit_phaser.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/turret_unit_phaser.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/units/turret_unit_phaser.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -6,18 +6,18 @@
float turret_phaser_firecheck()
{
- if(self.fireflag != 0) return 0;
+ if (self.fireflag != 0) return 0;
return turret_stdproc_firecheck();
}
void turret_phaser_postthink()
{
- if(self.tur_head.frame == 0)
+ if (self.tur_head.frame == 0)
return;
- if(self.fireflag == 1)
+ if (self.fireflag == 1)
{
- if(self.tur_head.frame == 10)
+ if (self.tur_head.frame == 10)
self.tur_head.frame = 1;
else
self.tur_head.frame = self.tur_head.frame +1;
@@ -25,7 +25,7 @@
else if (self.fireflag == 2 )
{
self.tur_head.frame = self.tur_head.frame +1;
- if(self.tur_head.frame == 15)
+ if (self.tur_head.frame == 15)
{
self.tur_head.frame = 0;
self.fireflag = 0;
@@ -35,9 +35,9 @@
void beam_think()
{
- if((time > self.cnt)||(self.owner.deadflag != DEAD_NO))
+ if ((time > self.cnt)||(self.owner.deadflag != DEAD_NO))
{
- self.owner.attack_finished = time + self.owner.shot_refire;
+ self.owner.attack_finished_single = time + self.owner.shot_refire;
self.owner.fireflag = 2;
self.owner.tur_head.frame = 10;
sound (self, CHAN_PROJECTILE, "", 1, ATTN_NORM);
@@ -47,16 +47,16 @@
turret_do_updates(self.owner);
- if(time - self.shot_spread > 0)
+ if (time - self.shot_spread > 0)
{
- self.shot_spread = time + 2;
- sound (self, CHAN_VOICE, "turrets/phaser.ogg", 1, ATTN_NORM);
+ self.shot_spread = time + 2;
+ sound (self, CHAN_VOICE, "turrets/phaser.ogg", 1, ATTN_NORM);
}
self.nextthink = time + self.ticrate;
- self.owner.attack_finished = time + frametime;
+ self.owner.attack_finished_single = time + frametime;
entity oldself;
oldself = self;
self = self.owner;
@@ -89,21 +89,21 @@
beam.owner = self;
beam.shot_dmg = self.shot_dmg / (self.shot_speed / beam.ticrate);
beam.scale = self.target_range_fire / 256;
- beam.movetype = MOVETYPE_NONE;
+ beam.movetype = MOVETYPE_NONE;
beam.enemy = self.enemy;
- beam.bot_dodge = TRUE;
- beam.bot_dodgerating = beam.shot_dmg;
- sound (beam, CHAN_VOICE, "turrets/phaser.ogg", 1, ATTN_NORM);
+ beam.bot_dodge = TRUE;
+ beam.bot_dodgerating = beam.shot_dmg;
+ sound (beam, CHAN_PROJECTILE, "turrets/phaser.ogg", 1, ATTN_NORM);
self.fireflag = 1;
- beam.attack_finished = self.attack_finished;
- self.attack_finished = time; // + cvar("sys_ticrate");
+ beam.attack_finished_single = self.attack_finished_single;
+ self.attack_finished_single = time; // + cvar("sys_ticrate");
setattachment(beam,self.tur_head,"tag_fire");
soundat (self, trace_endpos, CHAN_PROJECTILE, "weapons/neximpact.wav", VOL_BASE, ATTN_NORM);
- if(self.tur_head.frame == 0)
+ if (self.tur_head.frame == 0)
self.tur_head.frame = 1;
}
@@ -115,12 +115,6 @@
self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;
self.aim_flags = TFL_AIM_ZEASE | TFL_AIM_LEAD;
-
- precache_sound ("turrets/phaser.ogg");
- precache_model ("models/turrets/phaser.md3");
- precache_model ("models/turrets/phaser_beam.md3");
- precache_model ("models/turrets/base.md3");
-
if (turret_stdproc_init("phaser_std") == 0)
{
remove(self);
@@ -130,7 +124,7 @@
setmodel(self,"models/turrets/base.md3");
setmodel(self.tur_head,"models/turrets/phaser.md3");
- if(!turret_tag_setup(0))
+ if (!turret_tag_setup(0))
dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
self.turret_firecheckfunc = turret_phaser_firecheck;
@@ -143,6 +137,11 @@
*/
void spawnfunc_turret_phaser()
{
+ precache_sound ("turrets/phaser.ogg");
+ precache_model ("models/turrets/phaser.md3");
+ precache_model ("models/turrets/phaser_beam.md3");
+ precache_model ("models/turrets/base.md3");
+
self.think = turret_phaser_dinit;
self.nextthink = time + 0.5;
}
Modified: trunk/data/qcsrc/server/tturrets/units/turret_unit_plasma.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/turret_unit_plasma.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/units/turret_unit_plasma.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -9,15 +9,17 @@
void turret_plasma_postthink()
{
- if(self.tur_head.frame != 0)
+ if (self.tur_head.frame != 0)
self.tur_head.frame = self.tur_head.frame + 1;
- if(self.classname == "turret_plasma_dual")
+ if (self.classname == "turret_plasma_dual")
{
- if(self.tur_head.frame >= 6)
+ if (self.tur_head.frame >= 6)
self.tur_head.frame = 0;
- } else {
- if(self.tur_head.frame >= 5)
+ }
+ else
+ {
+ if (self.tur_head.frame >= 5)
self.tur_head.frame = 0;
}
}
@@ -49,7 +51,7 @@
proj.enemy = self.enemy;
proj.flags = FL_PROJECTILE | FL_NOTARGET;
- if(self.tur_head.frame == 0)
+ if (self.tur_head.frame == 0)
self.tur_head.frame = 1;
// trailparticles(proj,particleeffectnum("TR_REDPLASMA"),proj.origin,proj.origin + proj.velocity);
@@ -98,9 +100,6 @@
{
if (self.netname == "") self.netname = "Plasma Cannon";
- precache_model ("models/turrets/plasma.md3");
- precache_model ("models/turrets/base.md3");
-
self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;
self.aim_flags = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE | TFL_AIM_ZEASE | TFL_AIM_GROUND2;
@@ -113,7 +112,8 @@
setmodel(self,"models/turrets/base.md3");
setmodel(self.tur_head,"models/turrets/plasma.md3");
- if(!turret_tag_setup(0))
+
+ if (!turret_tag_setup(0))
dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
// Our fire routine
@@ -128,9 +128,6 @@
{
if (self.netname == "") self.netname = "Dual Plasma Cannon";
- precache_model ("models/turrets/plasmad.md3");
- precache_model ("models/turrets/base.md3");
-
self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;
if (turret_stdproc_init("plasma_dual") == 0)
@@ -142,13 +139,7 @@
setmodel(self,"models/turrets/base.md3");
setmodel(self.tur_head,"models/turrets/plasmad.md3");
- setorigin(self, self.origin);
- setorigin(self.tur_head, self.tur_head.origin);
-
- setsize(self, self.mins, self.maxs);
- setsize(self.tur_head, self.tur_head.mins, self.tur_head.maxs);
-
- if(!turret_tag_setup(0))
+ if (!turret_tag_setup(0))
dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
// select aim
@@ -172,6 +163,9 @@
*/
void spawnfunc_turret_plasma()
{
+ precache_model ("models/turrets/plasma.md3");
+ precache_model ("models/turrets/base.md3");
+
self.think = turret_plasma_std_init;
self.nextthink = time + 0.5;
}
@@ -180,6 +174,9 @@
*/
void spawnfunc_turret_plasma_dual()
{
+ precache_model ("models/turrets/plasmad.md3");
+ precache_model ("models/turrets/base.md3");
+
self.think = turret_plasma_dual_init;
self.nextthink = time + 0.5;
}
Modified: trunk/data/qcsrc/server/tturrets/units/turret_unit_targettrigger.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/turret_unit_targettrigger.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/units/turret_unit_targettrigger.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -4,14 +4,14 @@
void turret_targettrigger_touch()
{
entity e;
- if(self.cnt > time) return;
+ if (self.cnt > time) return;
entity oldself;
oldself = self;
e = find(world, targetname, self.target);
while (e)
{
- if(e.turrcaps_flags & TFL_TURRCAPS_RECIVETARGETS)
+ if (e.turrcaps_flags & TFL_TURRCAPS_RECIVETARGETS)
{
self = e;
e.turret_addtarget(other,oldself);
@@ -29,7 +29,7 @@
*/
void spawnfunc_turret_targettrigger()
{
- if(!cvar("g_turrets"))
+ if (!cvar("g_turrets"))
{
remove(self);
return;
Modified: trunk/data/qcsrc/server/tturrets/units/turret_unit_tessla.qc
===================================================================
--- trunk/data/qcsrc/server/tturrets/units/turret_unit_tessla.qc 2008-10-03 10:33:57 UTC (rev 4602)
+++ trunk/data/qcsrc/server/tturrets/units/turret_unit_tessla.qc 2008-10-03 11:33:37 UTC (rev 4603)
@@ -14,25 +14,25 @@
e = findradius(from.origin,range);
while (e)
{
- if((e.toasted != 1) && (e != from))
- if (turret_validate_target(self,e,self.target_validate_flags) > 0)
- {
+ if ((e.toasted != 1) && (e != from))
+ if (turret_validate_target(self,e,self.target_validate_flags) > 0)
+ {
- traceline(from.origin,e.origin,0,from);
- if(trace_fraction > 0.9)
- {
- d = vlen(e.origin - from.origin);
- if(d < dd)
+ traceline(from.origin,e.origin,0,from);
+ if (trace_fraction > 0.9)
{
- dd = d;
- etarget = e;
+ d = vlen(e.origin - from.origin);
+ if (d < dd)
+ {
+ dd = d;
+ etarget = e;
+ }
}
}
- }
e = e.chain;
}
- if(etarget)
+ if (etarget)
{
te_smallflash(etarget.origin);
te_lightning1(world,from.origin,etarget.origin);
@@ -48,10 +48,10 @@
entity e,t;
float d,r,i;
- if(cvar("g_turrets_nofire") != 0)
+ if (cvar("g_turrets_nofire") != 0)
return;
- if(self.attack_finished > time) return;
+ if (self.attack_finished_single > time) return;
d = self.shot_dmg;
r = self.target_range;
@@ -65,22 +65,23 @@
t = toast(e,r,d);
remove(e);
- if(t == world) return;
+ if (t == world) return;
self.target_validate_flags = TFL_TARGETSELECT_PLAYERS | TFL_TARGETSELECT_MISSILES |
TFL_TARGETSELECT_TEAMCHECK;
- self.attack_finished = time + self.shot_refire;
+ self.attack_finished_single = time + self.shot_refire;
self.ammo = self.ammo - self.shot_dmg;
- for(i = 0;i < 10;i++)
+ for (i = 0;i < 10;i++)
{
- d *= 0.5; r *= 0.75;
+ d *= 0.5;
+ r *= 0.75;
t = toast(t,r,d);
- if(t == world) break;
+ if (t == world) break;
}
e = findchainfloat(toasted, 1);
- while(e)
+ while (e)
{
e.toasted = 0;
e = e.chain;
@@ -93,10 +94,10 @@
self.tur_head.frame = self.tur_head.frame + 1;
- if(self.tur_head.frame >= 11)
+ if (self.tur_head.frame >= 11)
self.tur_head.frame = 0;
- if(self.tur_head.avelocity == '0 0 0')
+ if (self.tur_head.avelocity == '0 0 0')
self.tur_head.avelocity = '0 35 0';
}
@@ -113,23 +114,19 @@
self.aim_flags = TFL_AIM_NO;
self.track_flags = TFL_TRACK_NO;
- precache_model ("models/turrets/tesla_head.md3");
- precache_model ("models/turrets/tesla_base.md3");
-
if (turret_stdproc_init("tesla_std") == 0)
{
remove(self);
return;
}
+ setmodel(self,"models/turrets/tesla_base.md3");
+ setmodel(self.tur_head,"models/turrets/tesla_head.md3");
+
self.target_validate_flags = TFL_TARGETSELECT_PLAYERS | TFL_TARGETSELECT_MISSILES |
TFL_TARGETSELECT_RANGELIMTS | TFL_TARGETSELECT_TEAMCHECK;
-
- setmodel(self,"models/turrets/tesla_base.md3");
- setmodel(self.tur_head,"models/turrets/tesla_head.md3");
-
- if(!turret_tag_setup(0))
+ if (!turret_tag_setup(0))
dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
self.turret_firefunc = turret_stdproc_nothing;
@@ -140,7 +137,10 @@
*/
void spawnfunc_turret_tesla()
{
- // return;
+ precache_model ("models/turrets/tesla_head.md3");
+ precache_model ("models/turrets/tesla_base.md3");
+
+
self.think = turret_tesla_dinit;
self.nextthink = time + 0.5;
}
More information about the nexuiz-commits
mailing list