]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/cl_impulse.qc
Remove some reloading system stupidity
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / cl_impulse.qc
index 524e796af2e32859054ee3a82522eae1ddb85147..c047d20b7385d36e09a2d9826974b922ed43aa2b 100644 (file)
@@ -46,9 +46,19 @@ void ImpulseCommands (void)
                return;
        self.impulse = 0;
 
-       if (timeout_status == TIMEOUT_ACTIVE) //don't allow any impulses while the game is paused
+       // forbid impulses when not in round time
+       if(round_handler_IsActive() && !round_handler_IsRoundStarted())
                return;
 
+       if (timeout_status == TIMEOUT_ACTIVE) //don't allow any impulses while the game is paused
+               return;
+    
+    if(self.vehicle)
+        if(self.vehicle.deadflag == DEAD_NO)
+            if(self.vehicle.vehicles_impusle)
+                if(self.vehicle.vehicles_impusle(imp))
+                    return;
+    
        if(CheatImpulse(imp))
        {
        }
@@ -67,38 +77,37 @@ void ImpulseCommands (void)
                        switch(imp)
                        {
                                case 10:
-                                       W_NextWeapon (0);
+                                       W_NextWeapon(0);
                                        break;
                                case 11:
                                        W_LastWeapon();
                                        break;
                                case 12:
-                                       W_PreviousWeapon (0);
+                                       W_PreviousWeapon(0);
                                        break;
                                case 13:
-                                       W_SwitchWeapon (w_getbestweapon(self));
+                                       W_SwitchWeapon(w_getbestweapon(self));
                                        break;
                                case 14:
                                        W_NextWeaponOnImpulse(0);
                                        break;
                                case 15:
-                                       W_NextWeapon (2);
+                                       W_NextWeapon(2);
                                        break;
                                case 16:
-                                       W_PreviousWeapon (2);
+                                       W_PreviousWeapon(2);
                                        break;
                                case 17:
-                                       if (!g_minstagib)
-                                               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);
+                                       W_NextWeapon(1);
                                        break;
                                case 19:
-                                       W_PreviousWeapon (1);
+                                       W_PreviousWeapon(1);
                                        break;
                                case 20:
-                                       W_TriggerReload ();
+                                       WEP_ACTION(self.weapon, WR_RELOAD);
                                        break;
                        }
                }
@@ -159,11 +168,14 @@ void ImpulseCommands (void)
                        case 33:
                                if(self.deadflag == DEAD_NO && teamplay)
                                {
-                                       wp = WaypointSprite_Attach("helpme", TRUE, RADARICON_HELPME, '1 0.5 0');
-                                       if(!wp)
-                                               WaypointSprite_HelpMePing(self.waypointsprite_attachedforcarrier);
-                                       else
-                                               WaypointSprite_Ping(wp);
+                                       if not(MUTATOR_CALLHOOK(HelpMePing))
+                                       {
+                                               wp = WaypointSprite_Attach("helpme", TRUE, RADARICON_HELPME, '1 0.5 0');
+                                               if(!wp)
+                                                       WaypointSprite_HelpMePing(self.waypointsprite_attachedforcarrier);
+                                               else
+                                                       WaypointSprite_Ping(wp);
+                                       }
                                        sprint(self, "HELP ME attached\n");
                                }
                                break;