]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/resources.qc
Merge branch 'sev/luma-menu-xpm' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / resources.qc
index b3b19095ae8b14e7832b386d1f5614c891a3d93f..74a0c55788a71a2f19de6accaeaacba47f1c9c3b 100644 (file)
@@ -232,13 +232,38 @@ void TakeResourceWithLimit(entity receiver, int resource_type, float amount,
                return;
        }
        float current_amount = GetResourceAmount(receiver, resource_type);
-       if (current_amount - amount < limit)
+       if (current_amount - amount < -limit)
        {
-               amount = limit + current_amount;
+               amount = -limit + current_amount;
        }
        TakeResource(receiver, resource_type, amount);
 }
 
+void GiveOrTakeResource(entity receiver, int resource_type, float amount)
+{
+       if(amount < 0)
+       {
+               TakeResource(receiver, resource_type, amount * -1);
+       }
+       else
+       {
+               GiveResource(receiver, resource_type, amount);
+       }
+}
+
+void GiveOrTakeResourceWithLimit(entity receiver, int resource_type, float amount,
+       float limit)
+{
+       if(amount < 0)
+       {
+               TakeResourceWithLimit(receiver, resource_type, amount * -1, limit);
+       }
+       else
+       {
+               GiveResourceWithLimit(receiver, resource_type, amount, limit);
+       }
+}
+
 int GetResourceType(.float resource_field)
 {
        switch (resource_field)