#include <common/resources.qh>
+// TODO: split resources into their own files, registry based
+float autocvar_g_balance_health_limit;
+int autocvar_g_balance_armor_limit;
+float autocvar_g_balance_fuel_limit;
+float autocvar_g_balance_armor_regen;
+float autocvar_g_balance_armor_regenlinear;
+int autocvar_g_balance_armor_regenstable;
+float autocvar_g_balance_armor_rot;
+float autocvar_g_balance_armor_rotlinear;
+int autocvar_g_balance_armor_rotstable;
+float autocvar_g_balance_fuel_regen;
+float autocvar_g_balance_fuel_regenlinear;
+int autocvar_g_balance_fuel_regenstable;
+float autocvar_g_balance_fuel_rot;
+float autocvar_g_balance_fuel_rotlinear;
+int autocvar_g_balance_fuel_rotstable;
+float autocvar_g_balance_health_regen;
+float autocvar_g_balance_health_regenlinear;
+float autocvar_g_balance_health_regenstable;
+float autocvar_g_balance_health_rot;
+float autocvar_g_balance_health_rotlinear;
+float autocvar_g_balance_health_rotstable;
+float autocvar_g_balance_pause_armor_rot;
+float autocvar_g_balance_pause_fuel_regen;
+float autocvar_g_balance_pause_fuel_rot;
+float autocvar_g_balance_pause_health_regen;
+float autocvar_g_balance_pause_health_rot;
+
// ============================ Public API ====================================
/// \brief Returns the maximum amount of the given resource.
/// \return Boolean for whether the ammo amount was changed
bool SetResourceExplicit(entity e, int res_type, float amount);
-/// \brief Sets the current amount of resource the given entity will have.
+/// \brief Sets the current amount of resource the given entity will have
+/// but limited to the max amount allowed for the resource type.
/// \param[in,out] e Entity to adjust.
/// \param[in] res_type Type of the resource (a RES_* constant).
/// \param[in] amount Amount of resource to set.
/// \return No return.
void TakeResourceWithLimit(entity receiver, int res_type, float amount, float limit);
-/// \brief Gives to or takes from an entity resource.
-/// \param[in,out] receiver Entity to give or take resource.
-/// \param[in] res_type Type of the resource (a RES_* constant).
-/// \param[in] amount Amount of resource to give or take.
-/// \return No return.
-void GiveOrTakeResource(entity receiver, int res_type, float amount);
-
-/// \brief Gives to or takes from an entity resource but not more/less than a limit.
-/// \param[in,out] receiver Entity to give or take resource.
-/// \param[in] res_type Type of the resource (a RES_* constant).
-/// \param[in] amount Amount of resource to give or take.
-/// \param[in] limit Limit of resources to give or take.
-/// \return No return.
-void GiveOrTakeResourceWithLimit(entity receiver, int res_type, float amount, float limit);
-
// ===================== Legacy and/or internal API ===========================
/// \brief Converts an entity field to resource type.