Changed GivePlayerAmmo.
authorLyberta <lyberta@lyberta.net>
Thu, 13 Apr 2017 05:27:17 +0000 (08:27 +0300)
committerLyberta <lyberta@lyberta.net>
Thu, 13 Apr 2017 05:27:17 +0000 (08:27 +0300)
qcsrc/common/t_items.qc
qcsrc/common/t_items.qh

index ec237c7d631fd68fe168cfb5dfb96b4933968a3b..642c29d29a85e580143bedde5e20b3a542319eb1 100644 (file)
@@ -665,28 +665,19 @@ void GivePlayerArmor(entity player, float amount)
                autocvar_g_balance_pause_armor_rot);
 }
 
-void GivePlayerShells(entity player, float amount)
+void GivePlayerAmmo(entity player, .float ammotype, 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);
-}
-
-void GivePlayerRockets(entity player, float amount)
-{
-       player.ammo_rockets = bound(player.ammo_rockets, player.ammo_rockets +
-               amount, g_pickup_rockets_max);
-}
-
-void GivePlayerCells(entity player, 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;
+               case ammo_cells: maxvalue = g_pickup_cells_max;
+               case ammo_rockets: maxvalue = g_pickup_rockets_max;
+               case ammo_plasma: maxvalue = g_pickup_plasma_max;
+               case ammo_nails: maxvalue = g_pickup_nails_max;
+               case ammo_fuel: maxvalue = g_pickup_fuel_max;
+       }
+       player.(ammotype) = min(player.(ammotype) + amount, maxvalue);
 }
 
 float Item_GiveAmmoTo(entity item, entity player, .float ammotype, float ammomax, float mode)
index 6ce04b830c1724ddee9412a036722bfa0aea7482..17e3af939fca2927101456fde3d2f07049cb24c0 100644 (file)
@@ -94,29 +94,12 @@ void GivePlayerHealth(entity player, float amount);
 /// \return No return.
 void GivePlayerArmor(entity player, float amount);
 
-/// \brief Gives shells to the player.
-/// \param[in,out] player Player to give shells to.
-/// \param[in] amount Amount of shells to give.
+/// \brief Gives ammo of the specified type to the player.
+/// \param[in,out] player Player to give ammo to.
+/// \param[in] type Ammo type property.
+/// \param[in] amount Amount of ammo to give.
 /// \return No return.
-void GivePlayerShells(entity player, float amount);
-
-/// \brief Gives bullets to the player.
-/// \param[in,out] player Player to give bullets to.
-/// \param[in] amount Amount of bullets to give.
-/// \return No return.
-void GivePlayerBullets(entity player, float amount);
-
-/// \brief Gives rockets to the player.
-/// \param[in,out] player Player to give rockets to.
-/// \param[in] amount Amount of rockets to give.
-/// \return No return.
-void GivePlayerRockets(entity player, float amount);
-
-/// \brief Gives cells to the player.
-/// \param[in,out] player Player to give cells to.
-/// \param[in] amount Amount of cells to give.
-/// \return No return.
-void GivePlayerCells(entity player, float amount);
+void GivePlayerAmmo(entity player, .float ammotype, float amount);
 
 float ITEM_MODE_NONE = 0;
 float ITEM_MODE_HEALTH = 1;