]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/client/resources.qc
Clear out .health and .armorvalue from the client side
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / resources.qc
1 #include "resources.qh"
2
3 /// \file
4 /// \brief Source file that contains implementation of the resource system.
5 /// \copyright GNU GPLv2 or any later version.
6
7 float GetResourceAmount(entity e, int resource_type)
8 {
9         .float resource_field = GetResourceField(resource_type);
10         return e.(resource_field);
11 }
12
13 bool SetResourceAmountExplicit(entity e, int resource_type, float amount)
14 {
15         .float resource_field = GetResourceField(resource_type);
16         if (e.(resource_field) != amount)
17         {
18                 e.(resource_field) = amount;
19                 return true;
20         }
21         return false;
22 }
23
24 void SetResourceAmount(entity e, int resource_type, float amount)
25 {
26         SetResourceAmountExplicit(e, resource_type, amount);
27 }
28
29 int GetResourceType(.float resource_field)
30 {
31         switch (resource_field)
32         {
33                 case health: { return RESOURCE_HEALTH; }
34                 case armorvalue: { return RESOURCE_ARMOR; }
35                 case ammo_shells: { return RESOURCE_SHELLS; }
36                 case ammo_nails: { return RESOURCE_BULLETS; }
37                 case ammo_rockets: { return RESOURCE_ROCKETS; }
38                 case ammo_cells: { return RESOURCE_CELLS; }
39                 case ammo_plasma: { return RESOURCE_PLASMA; }
40                 case ammo_fuel: { return RESOURCE_FUEL; }
41         }
42         error("GetResourceType: Invalid field.");
43         return 0;
44 }
45
46 .float GetResourceField(int resource_type)
47 {
48         switch (resource_type)
49         {
50                 case RESOURCE_HEALTH: { return health; }
51                 case RESOURCE_ARMOR: { return armorvalue; }
52                 case RESOURCE_SHELLS: { return ammo_shells; }
53                 case RESOURCE_BULLETS: { return ammo_nails; }
54                 case RESOURCE_ROCKETS: { return ammo_rockets; }
55                 case RESOURCE_CELLS: { return ammo_cells; }
56                 case RESOURCE_PLASMA: { return ammo_plasma; }
57                 case RESOURCE_FUEL: { return ammo_fuel; }
58         }
59         error("GetResourceField: Invalid resource type.");
60         return health;
61 }