[nexuiz-commits] r7677 - in trunk/data: . qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Sep 7 01:34:16 EDT 2009


Author: div0
Date: 2009-09-07 01:34:15 -0400 (Mon, 07 Sep 2009)
New Revision: 7677

Modified:
   trunk/data/qcsrc/server/cl_weaponsystem.qc
   trunk/data/qcsrc/server/w_laser.qc
   trunk/data/weapons.cfg
   trunk/data/weapons25.cfg
   trunk/data/weaponsHavoc.cfg
Log:
laser: add a cvar g_balance_laser_*_shotangle to change the angle of the laser shot.
Useful e.g. for making laser secondary shoot 90 degrees downwards compared to crosshair direction.


Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc	2009-09-06 21:46:39 UTC (rev 7676)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc	2009-09-07 05:34:15 UTC (rev 7677)
@@ -126,7 +126,7 @@
 // this function calculates w_shotorg and w_shotdir based on the weapon model
 // offset, trueaim and antilag, and won't put w_shotorg inside a wall.
 // make sure you call makevectors first (FIXME?)
-void W_SetupShot_ProjectileSize(entity ent, vector mi, vector ma, float antilag, float recoil, string snd, float maxdamage)
+void W_SetupShot_Dir_ProjectileSize(entity ent, vector s_forward, vector mi, vector ma, float antilag, float recoil, string snd, float maxdamage)
 {
 	float nudge = 1; // added to traceline target and subtracted from result
 	local vector trueaimpoint;
@@ -134,7 +134,7 @@
 	vector vecs, dv;
 	oldsolid = ent.dphitcontentsmask;
 	ent.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE;
-	traceline(ent.origin + ent.view_ofs, ent.origin + ent.view_ofs + v_forward * MAX_SHOT_DISTANCE, MOVE_NOMONSTERS, ent); // no antilag needed
+	traceline(ent.origin + ent.view_ofs, ent.origin + ent.view_ofs + s_forward * MAX_SHOT_DISTANCE, MOVE_NOMONSTERS, ent); // no antilag needed
 	trueaimpoint = trace_endpos;
 
 	// Track max damage and set the stat to be sent later in g_world.qc
@@ -301,10 +301,9 @@
 		sound (ent, CHAN_AUTO, "weapons/strength_fire.wav", VOL_BASE, ATTN_NORM);
 };
 
-void W_SetupShot(entity ent, float antilag, float recoil, string snd, float maxdamage)
-{
-	W_SetupShot_ProjectileSize(ent, '0 0 0', '0 0 0', antilag, recoil, snd, maxdamage);
-}
+#define W_SetupShot_ProjectileSize(ent,mi,ma,antilag,recoil,snd,maxdamage) W_SetupShot_Dir_ProjectileSize(ent, v_forward, mi, ma, antilag, recoil, snd, maxdamage)
+#define W_SetupShot_Dir(ent,s_forward,antilag,recoil,snd,maxdamage) W_SetupShot_Dir_ProjectileSize(ent, s_forward, '0 0 0', '0 0 0', antilag, recoil, snd, maxdamage)
+#define W_SetupShot(ent,antilag,recoil,snd,maxdamage) W_SetupShot_ProjectileSize(ent, '0 0 0', '0 0 0', antilag, recoil, snd, maxdamage)
 
 void LaserTarget_Think()
 {

Modified: trunk/data/qcsrc/server/w_laser.qc
===================================================================
--- trunk/data/qcsrc/server/w_laser.qc	2009-09-06 21:46:39 UTC (rev 7676)
+++ trunk/data/qcsrc/server/w_laser.qc	2009-09-07 05:34:15 UTC (rev 7677)
@@ -16,8 +16,19 @@
 void W_Laser_Attack (float issecondary)
 {
 	local entity missile;
+	vector s_forward;
+	float a;
 
-	W_SetupShot (self, FALSE, 3, "weapons/lasergun_fire.wav", cvar("g_balance_laser_secondary_damage"));
+	if (issecondary)
+		a = cvar("g_balance_laser_secondary_shotangle");
+	else
+		a = cvar("g_balance_laser_primary_shotangle");
+	s_forward = v_forward * cos(a * DEG2RAD) + v_up * sin(a * DEG2RAD);
+
+	if(issecondary)
+		W_SetupShot_Dir (self, s_forward, FALSE, 3, "weapons/lasergun_fire.wav", cvar("g_balance_laser_secondary_damage"));
+	else
+		W_SetupShot_Dir (self, s_forward, FALSE, 3, "weapons/lasergun_fire.wav", cvar("g_balance_laser_primary_damage"));
 	pointparticles(particleeffectnum("laser_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
 	missile = spawn ();

Modified: trunk/data/weapons.cfg
===================================================================
--- trunk/data/weapons.cfg	2009-09-06 21:46:39 UTC (rev 7676)
+++ trunk/data/weapons.cfg	2009-09-07 05:34:15 UTC (rev 7677)
@@ -96,6 +96,7 @@
 set g_balance_laser_primary_refire 0.3
 set g_balance_laser_primary_animtime 0.3
 set g_balance_laser_primary_lifetime 30
+set g_balance_laser_primary_shotangle 0
 set g_balance_laser_secondary 1 // when 1, a secondary laser mode exists
 set g_balance_laser_secondary_damage 45
 set g_balance_laser_secondary_edgedamage 0
@@ -105,6 +106,7 @@
 set g_balance_laser_secondary_refire 1
 set g_balance_laser_secondary_animtime 0.3
 set g_balance_laser_secondary_lifetime 30
+set g_balance_laser_secondary_shotangle 0
 
 set g_balance_shotgun_primary_bullets 21
 set g_balance_shotgun_primary_damage 5

Modified: trunk/data/weapons25.cfg
===================================================================
--- trunk/data/weapons25.cfg	2009-09-06 21:46:39 UTC (rev 7676)
+++ trunk/data/weapons25.cfg	2009-09-07 05:34:15 UTC (rev 7677)
@@ -96,6 +96,7 @@
 set g_balance_laser_primary_refire 0.7
 set g_balance_laser_primary_animtime 0.3
 set g_balance_laser_primary_lifetime 30
+set g_balance_laser_primary_shotangle 0
 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
 set g_balance_laser_secondary_damage 35
 set g_balance_laser_secondary_edgedamage 10
@@ -105,6 +106,7 @@
 set g_balance_laser_secondary_refire 0.7
 set g_balance_laser_secondary_animtime 0.3
 set g_balance_laser_secondary_lifetime 30
+set g_balance_laser_secondary_shotangle 0
 
 set g_balance_shotgun_primary_bullets 6
 set g_balance_shotgun_primary_damage 12

Modified: trunk/data/weaponsHavoc.cfg
===================================================================
--- trunk/data/weaponsHavoc.cfg	2009-09-06 21:46:39 UTC (rev 7676)
+++ trunk/data/weaponsHavoc.cfg	2009-09-07 05:34:15 UTC (rev 7677)
@@ -91,6 +91,7 @@
 set g_balance_laser_primary_refire 0.3
 set g_balance_laser_primary_animtime 0.3
 set g_balance_laser_primary_lifetime 30
+set g_balance_laser_primary_shotangle 0
 set g_balance_laser_secondary 1 // when 1, a secondary laser mode exists
 set g_balance_laser_secondary_damage 45
 set g_balance_laser_secondary_edgedamage 0
@@ -100,6 +101,7 @@
 set g_balance_laser_secondary_refire 1
 set g_balance_laser_secondary_animtime 0.3
 set g_balance_laser_secondary_lifetime 30
+set g_balance_laser_secondary_shotangle 0
 
 set g_balance_shotgun_primary_bullets 21
 set g_balance_shotgun_primary_damage 6



More information about the nexuiz-commits mailing list