r5403 - in trunk/data: . qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Mon Jan 5 03:47:33 EST 2009
Author: div0
Date: 2009-01-05 03:47:18 -0500 (Mon, 05 Jan 2009)
New Revision: 5403
Modified:
trunk/data/defaultNexuiz.cfg
trunk/data/qcsrc/server/cl_impulse.qc
trunk/data/qcsrc/server/cl_weapons.qc
trunk/data/qcsrc/server/defs.qh
trunk/data/qcsrc/server/w_campingrifle.qc
trunk/data/qcsrc/server/w_hook.qc
Log:
camping rifle: reload when selecting even if it's the only weapon you have;
impulse 20 = reload
Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg 2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/defaultNexuiz.cfg 2009-01-05 08:47:18 UTC (rev 5403)
@@ -634,6 +634,8 @@
set _supports_weaponpriority 0 // set to 1 by csqc if supported, and to 0 on disconnect
alias weapbest "impulse 13"
+alias reload "impulse 20"
+
// movement
bind w +forward
bind a +moveleft
Modified: trunk/data/qcsrc/server/cl_impulse.qc
===================================================================
--- trunk/data/qcsrc/server/cl_impulse.qc 2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/qcsrc/server/cl_impulse.qc 2009-01-05 08:47:18 UTC (rev 5403)
@@ -70,6 +70,7 @@
* 17: throw weapon
* 18: next weapon according to sbar_hudselector 1 list
* 19: previous weapon according to sbar_hudselector 1 list
+ * 20: reload if needed
*
* 30 to 39: create waypoints
* 47: clear personal waypoints
@@ -119,7 +120,7 @@
else
self.impulse = imp; // retry in next frame
}
- else if(imp >= 10 && imp <= 19)
+ else if(imp >= 10 && imp <= 20)
{
if(self.deadflag == DEAD_NO)
{
@@ -156,7 +157,10 @@
case 19:
W_PreviousWeapon (1);
break;
- }
+ case 20:
+ W_Reload ();
+ break;
+ }
}
else
self.impulse = imp; // retry in next frame
Modified: trunk/data/qcsrc/server/cl_weapons.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weapons.qc 2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/qcsrc/server/cl_weapons.qc 2009-01-05 08:47:18 UTC (rev 5403)
@@ -1,3 +1,10 @@
+void W_Reload()
+{
+ if(self.switchweapon == self.weapon)
+ if(self.weaponentity.state == WS_READY)
+ weapon_action(self.weapon, WR_RELOAD);
+}
+
// switch between weapons
void W_SwitchWeapon(float imp)
{
@@ -2,4 +9,10 @@
if (self.switchweapon != imp)
- if (client_hasweapon(self, imp, TRUE, TRUE))
- W_SwitchWeapon_Force(self, imp);
+ {
+ if (client_hasweapon(self, imp, TRUE, TRUE))
+ W_SwitchWeapon_Force(self, imp);
+ }
+ else
+ {
+ W_Reload();
+ }
};
Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh 2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/qcsrc/server/defs.qh 2009-01-05 08:47:18 UTC (rev 5403)
@@ -220,6 +220,7 @@
float WR_PRECACHE = 6; // precaches models/sounds used by this weapon
float WR_SUICIDEMESSAGE = 7; // sets w_deathtypestring or leaves it alone (and may inspect w_deathtype for details)
float WR_KILLMESSAGE = 8; // sets w_deathtypestring or leaves it alone
+float WR_RELOAD = 9; // does not need to do anything
void weapon_defaultspawnfunc(float wpn);
Modified: trunk/data/qcsrc/server/w_campingrifle.qc
===================================================================
--- trunk/data/qcsrc/server/w_campingrifle.qc 2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/qcsrc/server/w_campingrifle.qc 2009-01-05 08:47:18 UTC (rev 5403)
@@ -6,13 +6,17 @@
void W_Campingrifle_ReloadedAndReady()
{
+ float t;
self.campingrifle_bulletcounter = 0;
- ATTACK_FINISHED(self) = time;
+ t = ATTACK_FINISHED(self) - cvar("g_balance_campingrifle_reloadtime") + 1;
+ ATTACK_FINISHED(self) = t;
w_ready();
}
void W_Campingrifle_Reload()
{
+ float t;
+
if (self.campingrifle_bulletcounter == 0)
return;
@@ -27,7 +31,8 @@
sound (self, CHAN_WEAPON2, "weapons/campingrifle_reload.wav", VOL_BASE, ATTN_NORM);
- ATTACK_FINISHED(self) = time + cvar("g_balance_campingrifle_reloadtime") + 1;
+ t = max(time, ATTACK_FINISHED(self)) + cvar("g_balance_campingrifle_reloadtime") + 1;
+ ATTACK_FINISHED(self) = t;
weapon_thinkf(WFRAME_RELOAD, cvar("g_balance_campingrifle_reloadtime"), W_Campingrifle_ReloadedAndReady);
}
@@ -189,5 +194,9 @@
}
}
}
+ else if (req == WR_RELOAD)
+ {
+ W_Campingrifle_Reload();
+ }
return TRUE;
};
Modified: trunk/data/qcsrc/server/w_hook.qc
===================================================================
--- trunk/data/qcsrc/server/w_hook.qc 2009-01-05 08:28:29 UTC (rev 5402)
+++ trunk/data/qcsrc/server/w_hook.qc 2009-01-05 08:47:18 UTC (rev 5403)
@@ -176,7 +176,7 @@
else
{
self.hook_time_hooked = time;
- self.hook_time_ammodecrease = time + cvar("g_balance_hook_primary_hooked_time_free");;
+ self.hook_time_ammodecrease = time + cvar("g_balance_hook_primary_hooked_time_free");
}
if (self.BUTTON_CROUCH)
More information about the nexuiz-commits
mailing list