]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/t_items.qc
Merged Lyberta/URS2 into Lyberta/RandomStartWeapons.
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / t_items.qc
index c18d704097994fee0f13e924f562c21a02e09f42..e3a2c8be439a5bcb5d3bc5dd3341856cbc0a2e74 100644 (file)
@@ -716,7 +716,7 @@ int GetResourceType(.float resource_property)
        return health;
 }
 
        return health;
 }
 
-float GetResourceLimit(int resource_type)
+float GetResourceLimit(entity e, int resource_type)
 {
        float limit;
        switch (resource_type)
 {
        float limit;
        switch (resource_type)
@@ -767,8 +767,8 @@ float GetResourceLimit(int resource_type)
                        return 0;
                }
        }
                        return 0;
                }
        }
-       MUTATOR_CALLHOOK(GetResourceLimit, resource_type, limit);
-       limit = M_ARGV(1, float);
+       MUTATOR_CALLHOOK(GetResourceLimit, e, resource_type, limit);
+       limit = M_ARGV(2, float);
        if (limit > RESOURCE_AMOUNT_HARD_LIMIT)
        {
                limit = RESOURCE_AMOUNT_HARD_LIMIT;
        if (limit > RESOURCE_AMOUNT_HARD_LIMIT)
        {
                limit = RESOURCE_AMOUNT_HARD_LIMIT;
@@ -776,13 +776,13 @@ float GetResourceLimit(int resource_type)
        return limit;
 }
 
        return limit;
 }
 
-void GivePlayerResource(entity player, int resource_type, float amount)
+void GiveResource(entity receiver, int resource_type, float amount)
 {
        if (amount == 0)
        {
                return;
        }
 {
        if (amount == 0)
        {
                return;
        }
-       bool forbid = MUTATOR_CALLHOOK(GivePlayerResource, player, resource_type,
+       bool forbid = MUTATOR_CALLHOOK(GiveResource, receiver, resource_type,
                amount);
        if (forbid)
        {
                amount);
        if (forbid)
        {
@@ -791,51 +791,38 @@ void GivePlayerResource(entity player, int resource_type, float amount)
        resource_type = M_ARGV(1, int);
        amount = M_ARGV(2, float);
        .float resource_property = GetResourceProperty(resource_type);
        resource_type = M_ARGV(1, int);
        amount = M_ARGV(2, float);
        .float resource_property = GetResourceProperty(resource_type);
-       float max_amount = GetResourceLimit(resource_type);
-       player.(resource_property) = bound(player.(resource_property),
-               player.(resource_property) + amount, max_amount);
+       float max_amount = GetResourceLimit(receiver, resource_type);
+       receiver.(resource_property) = bound(receiver.(resource_property),
+               receiver.(resource_property) + amount, max_amount);
        switch (resource_type)
        {
                case RESOURCE_HEALTH:
                {
        switch (resource_type)
        {
                case RESOURCE_HEALTH:
                {
-                       player.pauserothealth_finished = max(player.pauserothealth_finished,
-                               time + autocvar_g_balance_pause_health_rot);
+                       receiver.pauserothealth_finished =
+                               max(receiver.pauserothealth_finished, time +
+                               autocvar_g_balance_pause_health_rot);
                        return;
                }
                case RESOURCE_ARMOR:
                {
                        return;
                }
                case RESOURCE_ARMOR:
                {
-                       player.pauserotarmor_finished = max(player.pauserotarmor_finished,
-                               time + autocvar_g_balance_pause_armor_rot);
+                       receiver.pauserotarmor_finished =
+                               max(receiver.pauserotarmor_finished, time +
+                               autocvar_g_balance_pause_armor_rot);
                        return;
                }
                case RESOURCE_FUEL:
                {
                        return;
                }
                case RESOURCE_FUEL:
                {
-                       player.pauserotfuel_finished = max(player.pauserotfuel_finished,
+                       receiver.pauserotfuel_finished = max(receiver.pauserotfuel_finished,
                                time + autocvar_g_balance_pause_fuel_rot);
                        return;
                }
        }
 }
 
                                time + autocvar_g_balance_pause_fuel_rot);
                        return;
                }
        }
 }
 
-void GivePlayerResourceViaProperty(entity player, .float resource_property,
+void GiveResourceViaProperty(entity receiver, .float resource_property,
        float amount)
 {
        float amount)
 {
-       GivePlayerResource(player, GetResourceType(resource_property), amount);
-}
-
-void GivePlayerHealth(entity player, float amount)
-{
-       GivePlayerResource(player, RESOURCE_HEALTH, amount);
-}
-
-void GivePlayerArmor(entity player, float amount)
-{
-       GivePlayerResource(player, RESOURCE_ARMOR, amount);
-}
-
-void GivePlayerFuel(entity player, float amount)
-{
-       GivePlayerResource(player, RESOURCE_FUEL, amount);
+       GiveResource(receiver, GetResourceType(resource_property), amount);
 }
 
 void GivePlayerRandomWeapons(entity player, int num_weapons,
 }
 
 void GivePlayerRandomWeapons(entity player, int num_weapons,
@@ -933,7 +920,7 @@ float Item_GiveAmmoTo(entity item, entity player, .float ammotype, float ammomax
                        {
                                amount = ammomax - player.(ammotype);
                        }
                        {
                                amount = ammomax - player.(ammotype);
                        }
-                       GivePlayerResourceViaProperty(player, ammotype, amount);
+                       GiveResourceViaProperty(player, ammotype, amount);
                        return true;
                }
        }
                        return true;
                }
        }
@@ -942,8 +929,7 @@ float Item_GiveAmmoTo(entity item, entity player, .float ammotype, float ammomax
                float mi = min(item.(ammotype), ammomax);
                if (player.(ammotype) < mi)
                {
                float mi = min(item.(ammotype), ammomax);
                if (player.(ammotype) < mi)
                {
-                       GivePlayerResourceViaProperty(player, ammotype, mi -
-                               player.(ammotype));
+                       GiveResourceViaProperty(player, ammotype, mi - player.(ammotype));
                }
                return true;
        }
                }
                return true;
        }