X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_impulse.qc;h=2cc8e0215bb8c1b1f0be9620c2b484326f4acde0;hb=390d33b5f587dc807ae08ffe39adc1d762fc7f4c;hp=eab7b55bf2ee12844bfd61167156eeb81c715ff3;hpb=fbb52b893f7be6bf4073f1853761c4f2fc11a343;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_impulse.qc b/qcsrc/server/cl_impulse.qc index eab7b55bf..2cc8e0215 100644 --- a/qcsrc/server/cl_impulse.qc +++ b/qcsrc/server/cl_impulse.qc @@ -1,3 +1,11 @@ +#include "round_handler.qh" + +#include "bot/waypoints.qh" + +#include "weapons/throwing.qh" + +#include "../common/weapons/weapons.qh" + /* * Impulse map: * @@ -35,7 +43,7 @@ void ImpulseCommands (void) { - float imp; + int imp; vector org; float i; float m; @@ -46,8 +54,9 @@ void ImpulseCommands (void) return; self.impulse = 0; - // forbid impulses when not in round time + // allow only weapon change impulses when not in round time if(round_handler_IsActive() && !round_handler_IsRoundStarted()) + if(imp == 17 || (imp >= 20 && imp < 200) || imp > 253) return; if (timeout_status == TIMEOUT_ACTIVE) //don't allow any impulses while the game is paused @@ -55,8 +64,8 @@ void ImpulseCommands (void) if(self.vehicle) if(self.vehicle.deadflag == DEAD_NO) - if(self.vehicle.vehicles_impusle) - if(self.vehicle.vehicles_impusle(imp)) + if(self.vehicle.vehicles_impulse) + if(self.vehicle.vehicles_impulse(imp)) return; if(CheatImpulse(imp)) @@ -98,7 +107,7 @@ void ImpulseCommands (void) W_PreviousWeapon(2); break; case 17: - W_ThrowWeapon(W_CalculateProjectileVelocity(self.velocity, v_forward * 750, FALSE), '0 0 0', TRUE); + W_ThrowWeapon(W_CalculateProjectileVelocity(self.velocity, v_forward * 750, false), '0 0 0', true); break; case 18: W_NextWeapon(1); @@ -107,7 +116,7 @@ void ImpulseCommands (void) W_PreviousWeapon(1); break; case 20: - WEP_ACTION(self.weapon, WR_RELOAD); + if(!forbidWeaponUse()) { WEP_ACTION(self.weapon, WR_RELOAD); } break; } } @@ -123,7 +132,7 @@ void ImpulseCommands (void) if(self.deadflag == DEAD_NO) { // custom order weapon cycling - i = mod(imp, 10); + i = imp % 10; m = (imp - (210 + i)); // <0 for prev, =0 for best, >0 for next W_CycleWeapon(self.(cvar_cl_weaponpriorities[i]), m); } @@ -170,7 +179,7 @@ void ImpulseCommands (void) { if (!MUTATOR_CALLHOOK(HelpMePing)) { - wp = WaypointSprite_Attach("helpme", TRUE, RADARICON_HELPME, '1 0.5 0'); + wp = WaypointSprite_Attach("helpme", true, RADARICON_HELPME, '1 0.5 0'); if(!wp) WaypointSprite_HelpMePing(self.waypointsprite_attachedforcarrier); else @@ -180,14 +189,14 @@ void ImpulseCommands (void) } break; case 34: - wp = WaypointSprite_DeployFixed("here", FALSE, self.origin, RADARICON_HERE, '0 1 0'); + wp = WaypointSprite_DeployFixed("here", false, self.origin, RADARICON_HERE, '0 1 0'); if(wp) WaypointSprite_Ping(wp); sprint(self, "HERE spawned at location\n"); break; case 35: WarpZone_crosshair_trace(self); - wp = WaypointSprite_DeployFixed("here", FALSE, trace_endpos, RADARICON_HERE, '0 1 0'); + wp = WaypointSprite_DeployFixed("here", false, trace_endpos, RADARICON_HERE, '0 1 0'); if(wp) WaypointSprite_Ping(wp); sprint(self, "HERE spawned at crosshair\n"); @@ -195,21 +204,21 @@ void ImpulseCommands (void) case 36: if(vlen(self.death_origin)) { - wp = WaypointSprite_DeployFixed("here", FALSE, self.death_origin, RADARICON_HERE, '0 1 0'); + wp = WaypointSprite_DeployFixed("here", false, self.death_origin, RADARICON_HERE, '0 1 0'); if(wp) WaypointSprite_Ping(wp); sprint(self, "HERE spawned at death location\n"); } break; case 37: - wp = WaypointSprite_DeployFixed("danger", FALSE, self.origin, RADARICON_DANGER, '1 0.5 0'); + wp = WaypointSprite_DeployFixed("danger", false, self.origin, RADARICON_DANGER, '1 0.5 0'); if(wp) WaypointSprite_Ping(wp); sprint(self, "DANGER spawned at location\n"); break; case 38: WarpZone_crosshair_trace(self); - wp = WaypointSprite_DeployFixed("danger", FALSE, trace_endpos, RADARICON_DANGER, '1 0.5 0'); + wp = WaypointSprite_DeployFixed("danger", false, trace_endpos, RADARICON_DANGER, '1 0.5 0'); if(wp) WaypointSprite_Ping(wp); sprint(self, "DANGER spawned at crosshair\n"); @@ -217,7 +226,7 @@ void ImpulseCommands (void) case 39: if(vlen(self.death_origin)) { - wp = WaypointSprite_DeployFixed("danger", FALSE, self.death_origin, RADARICON_DANGER, '1 0.5 0'); + wp = WaypointSprite_DeployFixed("danger", false, self.death_origin, RADARICON_DANGER, '1 0.5 0'); if(wp) WaypointSprite_Ping(wp); sprint(self, "DANGER spawned at death location\n"); @@ -254,7 +263,7 @@ void ImpulseCommands (void) bprint(strcat("Waypoint spawned at ",vtos(self.origin),"\n")); break; case 104: - e = navigation_findnearestwaypoint(self, FALSE); + e = navigation_findnearestwaypoint(self, false); if (e) if (!(e.wpflags & WAYPOINTFLAG_GENERATED)) { @@ -274,7 +283,7 @@ void ImpulseCommands (void) e.colormod = '0.5 0.5 0.5'; e.effects &= ~(EF_NODEPTHTEST | EF_RED | EF_BLUE); } - e2 = navigation_findnearestwaypoint(self, FALSE); + e2 = navigation_findnearestwaypoint(self, false); navigation_markroutes(e2); i = 0; m = 0; @@ -315,7 +324,7 @@ void ImpulseCommands (void) org = e.origin; tracebox(e.origin, PL_MIN, PL_MAX, e.origin - '0 0 512', MOVE_NOMONSTERS, world); setorigin(e, trace_endpos); - if(navigation_findnearestwaypoint(e, FALSE)) + if(navigation_findnearestwaypoint(e, false)) { setorigin(e, org); e.effects &= ~EF_NODEPTHTEST; @@ -346,7 +355,7 @@ void ImpulseCommands (void) } for(e = start; e; e = e.chain) { - if(navigation_findnearestwaypoint(e, FALSE)) + if(navigation_findnearestwaypoint(e, false)) { } else @@ -363,7 +372,7 @@ void ImpulseCommands (void) for(e = start; e; e = e.chain) { org = e.origin; - if(navigation_findnearestwaypoint(e, TRUE)) + if(navigation_findnearestwaypoint(e, true)) { } else