Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
cl_resources.qc File Reference

Source file that contains implementation of the resource system. More...

Include dependency graph for cl_resources.qc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

float GetResource (entity e, Resource res_type)
 Returns the current amount of resource the given entity has.
void SetResource (entity e, Resource res_type, float amount)
 Sets the current amount of resource the given entity will have.
bool SetResourceExplicit (entity e, Resource res_type, float amount)
 Sets the resource amount of an entity without calling any hooks.
void TakeResource (entity receiver, Resource res_type, float amount)
 Takes an entity some resource.
void TakeResourceWithLimit (entity receiver, Resource res_type, float amount, float limit)
 Takes an entity some resource but not less than a limit.

Detailed Description

Source file that contains implementation of the resource system.

Definition in file cl_resources.qc.

Function Documentation

◆ GetResource()

float GetResource ( entity e,
Resource res_type )

Returns the current amount of resource the given entity has.

Parameters
[in]eEntity to check.
[in]res_typeType of the resource (a RES_* constant).
Returns
Current amount of resource the given entity has.

Definition at line 10 of file cl_resources.qc.

11{
12 return e.(GetResourceField(res_type));
13}

References entity().

Referenced by ammo_bullets_init(), ammo_cells_init(), ammo_fuel_init(), ammo_pickupevalfunc(), ammo_rockets_init(), ammo_shells_init(), ammo_vaporizercells_init(), assault_decreaser_sprite_visible(), assault_objective_decrease_use(), assault_wall_think(), basketball_touch(), bot_cmd_eval(), bumblebee_pilot_frame(), button_damage(), button_reset(), button_return(), CA_PreventStalemate(), CheatImpulse(), ClientCommand_kill(), CommonCommand_editmob(), CopyBody(), cpicon_damage(), cpicon_draw(), cpicon_send(), ctf_CheckFlagReturn(), ctf_FlagcarrierWaypoints(), ctf_Handle_Drop(), Damage(), DebugText3d::DebugText3d_draw2d(), destructible_heal(), door_damage(), door_init_shared(), door_trigger_touch(), Draw_ShowNames(), Draw_ShowNames_All(), Draw_WaypointSprite(), Ent_WaypointSprite(), ENTCS_PROP_RESOURCE(), ewheel_draw(), football_touch(), formatmessage(), frag_centermessage_override(), freezetag_count_alive_players(), freezetag_LastPlayerForTeam(), func_breakable_behave_restore(), func_breakable_colormod(), func_breakable_damage(), func_breakable_setup(), generator_draw(), generator_send(), GiveRandomWeapons(), GiveResourceValue(), GrapplingHook_Damage(), havocbot_chooseenemy(), havocbot_goalrating_ctf_enemyflag(), havocbot_goalrating_enemyplayers(), havocbot_goalrating_ft_freeplayers(), havocbot_goalrating_item_can_be_left_to_teammate(), havocbot_movetogoal(), healtharmor_pickupevalfunc(), hk_is_valid_target(), if(), instagib_ammocheck(), instagib_countdown(), Invasion_CheckWinner(), item_armorbig_init(), item_armormedium_init(), item_armormega_init(), item_armorsmall_init(), Item_GiveAmmoTo(), item_healthbig_init(), item_healthmedium_init(), item_healthmega_init(), item_healthsmall_init(), LinkDoors(), lms_RemovePlayer(), load_unit_settings(), M_Golem_Attack_Lightning_Damage(), M_Mage_Attack_Spike_Think(), M_Mage_Defend_Heal(), M_Mage_Defend_Heal_Check(), M_Spider_Attack_Web_Explode(), M_Zombie_Attack(), M_Zombie_Attack_Leap_Touch(), M_Zombie_Defend_Block_End(), MapVote_Tick(), Monster_Attack_Leap_Check(), Monster_Damage(), Monster_Dead_Damage(), Monster_Enemy_Check(), Monster_Heal(), Monster_Spawn_Setup(), Monster_Think(), Monster_ValidTarget(), multi_eventdamage(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), nade_ammo_touch(), nade_damage(), nade_darkness_think(), nade_heal_touch(), nade_ice_think(), nade_touch(), NET_HANDLE(), NET_HANDLE(), NET_HANDLE(), Obituary(), ons_ControlPoint_Icon_BuildThink(), ons_ControlPoint_Icon_Damage(), ons_ControlPoint_Icon_Heal(), ons_ControlPoint_Icon_Spawn(), ons_ControlPoint_Icon_Think(), ons_ControlPoint_UpdateSprite(), ons_GeneratorDamage(), ons_GeneratorHeal(), ons_GeneratorReset(), ons_GeneratorSetup(), Onslaught_count_generators(), plat_center_touch(), plat_outside_touch(), player_regen(), PlayerCorpseDamage(), PlayerDamage(), PlayerHeal(), PlayerHealth(), Portal_Damage(), powerup_jetpack_init(), powerups_DropItem_Think(), PutObserverInServer(), raptor_flare_damage(), readplayerstartcvars(), RotRegen(), spawnfunc(), spawnfunc(), spawnfunc(), SpectateCopy(), StartItem(), TakeResource(), TakeResourceWithLimit(), target_objective_decrease_activate(), target_objective_spawn_evalfunc(), tdeath(), test_weapons_hurt(), toss_nade(), turret_damage(), turret_draw(), turret_draw2d(), turret_heal(), turret_initialize(), turret_projectile_damage(), turret_send(), turret_validate_target(), vehicles_damage(), vehicles_heal(), vehicles_painframe(), vehicles_projectile_damage(), vehicles_regen(), vehicles_regen_resource(), W_Arc_Beam_Think(), W_Arc_Bolt_Damage(), W_DecreaseAmmo(), W_Devastator_Damage(), W_Devastator_DoRemoteExplode(), W_Devastator_Explode(), W_Electro_Orb_Damage(), W_Electro_Orb_Stick(), W_Fireball_Damage(), W_Fireball_Explode(), W_Hagar_Attack2_Load(), W_Hagar_Damage(), W_Hook_Damage(), W_MineLayer_Damage(), W_MineLayer_Stick(), W_Mortar_Grenade_Damage(), W_OverkillRocketPropelledChainsaw_Damage(), W_Reload(), W_ReloadedAndReady(), W_Seeker_Missile_Damage(), W_Seeker_Tag_Damage(), W_Seeker_Vollycontroller_Think(), W_ThrowNewWeapon(), W_WeaponFrame(), walker_draw(), walker_rocket_damage(), WaypointSprite_AttachCarrier(), WaypointSprite_SendEntity(), WaypointSprite_UpdateHealth(), and weapon_defaultspawnfunc().

◆ SetResource()

void SetResource ( entity e,
Resource res_type,
float amount )

Sets the current amount of resource the given entity will have.

Sets the current amount of resource the given entity will have but limited to the max amount allowed for the resource type.

Parameters
[in,out]eEntity to adjust.
[in]res_typeType of the resource (a RES_* constant).
[in]amountAmount of resource to set.
Returns
No return.

Definition at line 26 of file cl_resources.qc.

27{
28 SetResourceExplicit(e, res_type, amount);
29}
bool SetResourceExplicit(entity e, Resource res_type, float amount)
Sets the resource amount of an entity without calling any hooks.

References entity(), and SetResourceExplicit().

Referenced by DebugText3d::DebugText3d(), CheatImpulse(), freezetag_Freeze(), freezetag_Unfreeze(), GiveWarmupResources(), MUTATOR_HOOKABLE(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), nade_damage(), nade_spawn_SetSpawnHealth(), NIX_GiveCurrentWeapon(), PutPlayerInServer(), readplayerstartcvars(), REGISTER_MUTATOR(), RotRegen(), SetResource(), TakeResource(), target_init_use(), toss_nade(), vehicles_regen_resource(), W_Arc_Beam_Think(), W_DecreaseAmmo(), W_ReloadedAndReady(), W_ThrowNewWeapon(), and weapon_defaultspawnfunc().

◆ SetResourceExplicit()

bool SetResourceExplicit ( entity e,
Resource res_type,
float amount )

Sets the resource amount of an entity without calling any hooks.

Parameters
[in,out]eEntity to adjust.
[in]res_typeType of the resource (a RES_* constant).
[in]amountAmount of resource to set.
Returns
Boolean for whether the ammo amount was changed

Definition at line 15 of file cl_resources.qc.

16{
17 .float res_field = GetResourceField(res_type);
18 if (e.(res_field) != amount)
19 {
20 e.(res_field) = amount;
21 return true;
22 }
23 return false;
24}
float GetResourceField(Resource res_type)
Converts resource type (a RES_* constant) to entity field.
Definition resources.qc:11

References entity(), and GetResourceField().

Referenced by ammo_bullets_init(), ammo_cells_init(), ammo_fuel_init(), ammo_rockets_init(), ammo_shells_init(), ammo_vaporizercells_init(), assault_objective_decrease_use(), assault_objective_reset(), assault_objective_use(), button_fire(), button_reset(), CheatCommand(), CopyBody(), ctf_FlagDamage(), ctf_FlagSetup(), ctf_FlagThink(), ctf_Handle_Drop(), ctf_Handle_Pickup(), ctf_RespawnFlag(), Damage(), door_damage(), door_go_down(), door_rotating_go_down(), Draw_ShowNames_All(), Draw_WaypointSprite(), electro_orb_setup(), Ent_WaypointSprite(), fd_secret_done(), fd_secret_use(), FireGrapplingHook(), FixIntermissionClient(), ft_RemovePlayer(), func_breakable_behave_destroyed(), func_breakable_behave_restore(), func_breakable_setup(), GiveResourceValue(), item_armorbig_init(), item_armormedium_init(), item_armormega_init(), item_armorsmall_init(), item_healthbig_init(), item_healthmedium_init(), item_healthmega_init(), item_healthsmall_init(), LinkDoors(), load_unit_settings(), M_Golem_Attack_Lightning(), M_Mage_Defend_Shield(), M_Spider_Attack_Web(), M_Zombie_Defend_Block(), M_Zombie_Defend_Block_End(), MapVote_Tick(), Monster_Dead_Fade(), Monster_Reset(), Monster_Spawn_Setup(), multi_reset(), multi_wait(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), NET_HANDLE(), NET_HANDLE(), NET_HANDLE(), ons_ControlPoint_Icon_BuildThink(), ons_ControlPoint_Icon_Spawn(), ons_GeneratorReset(), ons_GeneratorSetup(), orb_setup(), Portal_Spawn(), Portal_TeleportPlayer(), powerup_jetpack_init(), powerups_DropItem(), PutObserverInServer(), secret_reset(), SetResource(), spawnfunc(), spawnfunc(), SpectateCopy(), turret_construct(), turret_die(), turret_initialize(), turret_projectile(), turret_respawn(), vehicles_projectile(), W_Arc_Attack_Bolt(), W_Devastator_Attack(), W_Electro_Attack_Orb(), W_Electro_Orb_Stick(), W_Fireball_Attack1(), W_Hagar_Attack(), W_Hagar_Attack2(), W_Hagar_Attack2_Load_Release(), W_Hook_Attack2(), W_Hook_Damage(), W_MineLayer_Attack(), W_MineLayer_Stick(), W_Mortar_Attack(), W_Mortar_Attack2(), W_OverkillRocketPropelledChainsaw_Attack(), W_Seeker_Fire_Missile(), W_Seeker_Fire_Tag(), walker_fire_rocket(), and WaypointSprite_UpdateHealth().

◆ TakeResource()

void TakeResource ( entity receiver,
Resource res_type,
float amount )

Takes an entity some resource.

Parameters
[in,out]receiverEntity to take resource from.
[in]res_typeType of the resource (a RES_* constant).
[in]amountAmount of resource to take.
Returns
No return.

Definition at line 31 of file cl_resources.qc.

32{
33 if (amount == 0)
34 {
35 return;
36 }
37 SetResource(receiver, res_type, GetResource(receiver, res_type) - amount);
38}
void SetResource(entity e, Resource res_type, float amount)
Sets the current amount of resource the given entity will have.
float GetResource(entity e, Resource res_type)
Returns the current amount of resource the given entity has.

References entity(), GetResource(), and SetResource().

Referenced by assault_objective_decrease_use(), button_damage(), ctf_FlagDamage(), ctf_FlagThink(), door_damage(), func_breakable_damage(), GrapplingHook_Damage(), M_Golem_Attack_Lightning_Damage(), Monster_Damage(), Monster_Dead_Damage(), multi_eventdamage(), MUTATOR_HOOKABLE(), MUTATOR_HOOKFUNCTION(), ons_ControlPoint_Icon_Damage(), ons_ControlPoint_Icon_Think(), ons_GeneratorDamage(), PlayerCorpseDamage(), PlayerDamage(), PM_jetpack(), Portal_Damage(), raptor_flare_damage(), TakeResource(), TakeResourceWithLimit(), turret_damage(), turret_projectile_damage(), vehicles_damage(), vehicles_projectile_damage(), W_Arc_Bolt_Damage(), W_Devastator_Damage(), W_Electro_Orb_Damage(), W_Fireball_Damage(), W_Hagar_Damage(), W_MineLayer_Damage(), W_Mortar_Grenade_Damage(), W_OverkillRocketPropelledChainsaw_Damage(), W_Seeker_Missile_Damage(), W_Seeker_Tag_Damage(), and walker_rocket_damage().

◆ TakeResourceWithLimit()

void TakeResourceWithLimit ( entity receiver,
Resource res_type,
float amount,
float limit )

Takes an entity some resource but not less than a limit.

Parameters
[in,out]receiverEntity to take resource from.
[in]res_typeType of the resource (a RES_* constant).
[in]amountAmount of resource to take.
[in]limitLimit of resources to take.
Returns
No return.

Definition at line 40 of file cl_resources.qc.

41{
42 if (amount == 0)
43 {
44 return;
45 }
46 float current_amount = GetResource(receiver, res_type);
47 if (current_amount - amount < limit)
48 {
49 amount = limit + current_amount;
50 }
51 TakeResource(receiver, res_type, amount);
52}
void TakeResource(entity receiver, Resource res_type, float amount)
Takes an entity some resource.

References entity(), GetResource(), and TakeResource().

Referenced by Item_GiveAmmoTo(), MUTATOR_HOOKABLE(), and TakeResourceWithLimit().