+// constants
+#define WANT_CONST /* we WANT these to be constant, but it conflicts with the declaration in dpdefs/progsdefs.qc */
+const float IT_UNLIMITED_WEAPON_AMMO = 1; // when this bit is set, using a weapon does not reduce ammo. Checkpoints can give this powerup.
+const float IT_UNLIMITED_SUPERWEAPONS = 2; // when this bit is set, superweapons don't expire. Checkpoints can give this powerup.
+const float IT_CTF_SHIELDED = 4; // set for the flag shield
+const float IT_USING_JETPACK = 8; // confirmation that button is pressed
+const float IT_JETPACK = 16; // actual item
+const float IT_FUEL_REGEN = 32; // fuel regeneration trigger
+// where is 64... ?
+const float IT_FUEL = 128;
+WANT_CONST float IT_SHELLS = 256;
+WANT_CONST float IT_NAILS = 512;
+WANT_CONST float IT_ROCKETS = 1024;
+WANT_CONST float IT_CELLS = 2048;
+const float IT_SUPERWEAPON = 4096;
+const float IT_STRENGTH = 8192;
+const float IT_INVINCIBLE = 16384;
+const float IT_HEALTH = 32768;
+const float IT_PLASMA = 65536;
+
+// shared value space (union):
+ // for items:
+ WANT_CONST float IT_KEY1 = 131072;
+ WANT_CONST float IT_KEY2 = 262144;
+ // for players:
+ const float IT_RED_FLAG_TAKEN = 32768;
+ const float IT_RED_FLAG_LOST = 65536;
+ const float IT_RED_FLAG_CARRYING = 98304;
+ const float IT_BLUE_FLAG_TAKEN = 131072;
+ const float IT_BLUE_FLAG_LOST = 262144;
+ const float IT_BLUE_FLAG_CARRYING = 393216;
+// end
+
+const float IT_5HP = 524288;
+const float IT_25HP = 1048576;
+const float IT_ARMOR_SHARD = 2097152;
+const float IT_ARMOR = 4194304;
+
+// item masks
+const float IT_AMMO = 3968; // IT_FUEL | IT_SHELLS | IT_NAILS | IT_ROCKETS | IT_CELLS | IT_PLASMA;
+const float IT_PICKUPMASK = 51; // IT_FUEL_REGEN | IT_JETPACK | IT_UNLIMITED_AMMO; // strength and invincible are handled separately
+const float IT_UNLIMITED_AMMO = 3; // IT_UNLIMITED_SUPERWEAPONS | IT_UNLIMITED_WEAPON_AMMO;
+
+const float AMMO_COUNT = 4; // amount of ammo types to show in the inventory panel
+
+// item networking
#define ISF_LOCATION 2
#define ISF_MODEL 4
#define ISF_STATUS 8
var vector autocvar_cl_weapon_stay_color = '2 0.5 0.5';
var float autocvar_cl_weapon_stay_alpha = 0.75;
var float autocvar_cl_simple_items = 0;
-var string autocvr_cl_simpleitems_postfix = "_simple";
+var string autocvar_cl_simpleitems_postfix = "_simple";
.float spawntime;
.float gravity;
.vector colormod;
void ItemRead(float _IsNew);
#endif
-
#ifdef SVQC
float autocvar_sv_simple_items;
float ItemSend(entity to, float sf);
float ITEM_MODE_HEALTH = 1;
float ITEM_MODE_ARMOR = 2;
float ITEM_MODE_FUEL = 3;
-float Item_GiveAmmoTo(entity item, entity player, .float ammofield, float ammomax, float mode);
+float Item_GiveAmmoTo(entity item, entity player, .float ammotype, float ammomax, float mode);
float Item_GiveTo(entity item, entity player);
void Item_FindTeam();
// Savage: used for item garbage-collection
// TODO: perhaps nice special effect?
-void RemoveItem(void); // WEAPONTODO
float ItemSend(entity to, float sf);
void ItemUpdate(entity item);