]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/t_items.qc
Fixed GivePlayerAmmo.
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / t_items.qc
index 3298e7fb035637eeb7ebca73ca2c1e2d241d8950..6b2428bf7803b4719d304a231d3e8a3525f1a2c1 100644 (file)
@@ -641,28 +641,67 @@ void Item_ScheduleInitialRespawn(entity e)
        Item_ScheduleRespawnIn(e, max(0, game_starttime - time) + ((e.respawntimestart) ? e.respawntimestart : ITEM_RESPAWNTIME_INITIAL(e)));
 }
 
-void GivePlayerShells(entity player, float amount)
+void GivePlayerHealth(entity player, float amount)
 {
-       player.ammo_shells = bound(player.ammo_shells, player.ammo_shells + amount,
-               g_pickup_shells_max);
-}
-
-void GivePlayerBullets(entity player, float amount)
-{
-       player.ammo_nails = bound(player.ammo_nails, player.ammo_nails + amount,
-               g_pickup_nails_max);
+       if (amount == 0)
+       {
+               return;
+       }
+       player.health = bound(player.health, player.health + amount,
+                g_pickup_healthmega_max);
+       player.pauserothealth_finished = max(player.pauserothealth_finished, time +
+               autocvar_g_balance_pause_health_rot);
 }
 
-void GivePlayerRockets(entity player, float amount)
+void GivePlayerArmor(entity player, float amount)
 {
-       player.ammo_rockets = bound(player.ammo_rockets, player.ammo_rockets +
-               amount, g_pickup_rockets_max);
+       if (amount == 0)
+       {
+               return;
+       }
+       player.armorvalue = bound(player.armorvalue, player.armorvalue + amount,
+                g_pickup_armormega_max);
+       player.pauserotarmor_finished = max(player.pauserotarmor_finished, time +
+               autocvar_g_balance_pause_armor_rot);
 }
 
-void GivePlayerCells(entity player, float amount)
+void GivePlayerAmmo(entity player, .float ammotype, float amount)
 {
-       player.ammo_cells = bound(player.ammo_cells, player.ammo_cells + amount,
-               g_pickup_cells_max);
+       float maxvalue = 999;
+       switch (ammotype)
+       {
+               case ammo_shells:
+               {
+                       maxvalue = g_pickup_shells_max;
+                       break;
+               }
+               case ammo_cells:
+               {
+                       maxvalue = g_pickup_cells_max;
+                       break;
+               }
+               case ammo_rockets:
+               {
+                       maxvalue = g_pickup_rockets_max;
+                       break;
+               }
+               case ammo_plasma:
+               {
+                       maxvalue = g_pickup_plasma_max;
+                       break;
+               }
+               case ammo_nails:
+               {
+                       maxvalue = g_pickup_nails_max;
+                       break;
+               }
+               case ammo_fuel:
+               {
+                       maxvalue = g_pickup_fuel_max;
+                       break;
+               }
+       }
+       player.(ammotype) = min(player.(ammotype) + amount, maxvalue);
 }
 
 float Item_GiveAmmoTo(entity item, entity player, .float ammotype, float ammomax, float mode)