// const int STAT_NAILS = 7;
// const int STAT_ROCKETS = 8;
// const int STAT_CELLS = 9;
-// const int STAT_ACTIVEWEAPON = 10;
// const int STAT_ITEMS = 15; // .items | .items2 << 23 | serverflags << 28
// const int STAT_VIEWHEIGHT = 16;
#if defined(CSQC)
#define g_stat_HEALTH getstati(STAT_HEALTH)
- #define g_stat_ARMOR getstat_int(STAT_ARMOR)
- #define g_stat_SHELLS getstat_int(STAT_SHELLS)
- #define g_stat_NAILS getstat_int(STAT_NAILS)
- #define g_stat_ROCKETS getstat_int(STAT_ROCKETS)
- #define g_stat_CELLS getstat_int(STAT_CELLS)
- #define g_stat_ACTIVEWEAPON getstat_int(STAT_ACTIVEWEAPON)
+ #define g_stat_ARMOR getstati(STAT_ARMOR)
+ #define g_stat_SHELLS getstati(STAT_SHELLS)
+ #define g_stat_NAILS getstati(STAT_NAILS)
+ #define g_stat_ROCKETS getstati(STAT_ROCKETS)
+ #define g_stat_CELLS getstati(STAT_CELLS)
#define g_stat_ITEMS getstat_int(STAT_ITEMS)
#define g_stat_VIEWHEIGHT getstati(STAT_VIEWHEIGHT)
#elif defined(SVQC)
#define stat_NAILS ammo_nails
#define stat_ROCKETS ammo_rockets
#define stat_CELLS ammo_cells
- #define stat_ACTIVEWEAPON weapon
#define stat_ITEMS items
#define stat_VIEWHEIGHT view_ofs_z
#endif
bool GiveResourceValue(entity e, int res_type, int op, int val)
{
int v0 = GetResource(e, res_type);
+ float new_val = 0;
switch (op)
{
// min 100 cells = at least 100 cells
- case OP_SET: SetResource(e, res_type, val); break;
- case OP_MIN: SetResource(e, res_type, max(v0, val)); break;
- case OP_MAX: SetResource(e, res_type, min(v0, val)); break;
- case OP_PLUS: SetResource(e, res_type, v0 + val); break;
- case OP_MINUS: SetResource(e, res_type, v0 - val); break;
- }
- int v1 = GetResource(e, res_type);
- return v0 != v1;
+ case OP_SET: new_val = val; break;
+ case OP_MIN: new_val = max(v0, val); break;
+ case OP_MAX: new_val = min(v0, val); break;
+ case OP_PLUS: new_val = v0 + val; break;
+ case OP_MINUS: new_val = v0 - val; break;
+ default: return false;
+ }
+
+ return SetResourceExplicit(e, res_type, new_val);
}
float GiveItems(entity e, float beginarg, float endarg)