-entity Buff_Type_first;
-entity Buff_Type_last;
-.entity enemy; // internal next pointer
-
-var float BUFF_LAST = 1;
-
-.float items; // buff ID
-.string netname; // buff name
-.string message; // human readable name
-.vector colormod; // buff color
-.string model2; // buff sprite
-.float skin; // buff skin
-
-#define REGISTER_BUFF(hname,sname,NAME,bskin,bcolor) \
- var float BUFF_##NAME; \
- var entity Buff_Type##sname; \
- void RegisterBuffs_##sname() \
- { \
- BUFF_##NAME = BUFF_LAST * 2; \
- BUFF_LAST = BUFF_##NAME; \
- Buff_Type##sname = spawn(); \
- Buff_Type##sname.items = BUFF_##NAME; \
- Buff_Type##sname.netname = #sname; \
- Buff_Type##sname.message = hname; \
- Buff_Type##sname.skin = bskin; \
- Buff_Type##sname.colormod = bcolor; \
- Buff_Type##sname.model2 = strzone(strcat("buff-", #sname)); \
- if(!Buff_Type_first) \
- Buff_Type_first = Buff_Type##sname; \
- if(Buff_Type_last) \
- Buff_Type_last.enemy = Buff_Type##sname; \
- Buff_Type_last = Buff_Type##sname; \
- } \
- ACCUMULATE_FUNCTION(RegisterBuffs, RegisterBuffs_##sname)
-
-REGISTER_BUFF(_("Ammo"),ammo,AMMO,3,'0.2 1 0.2');
-REGISTER_BUFF(_("Resistance"),resistance,RESISTANCE,0,'0.3 0.2 1');
-REGISTER_BUFF(_("Speed"),speed,SPEED,9,'1 1 0.2');
-REGISTER_BUFF(_("Medic"),medic,MEDIC,1,'1 0.3 1');
-REGISTER_BUFF(_("Bash"),bash,BASH,5,'1 0.4 0');
-REGISTER_BUFF(_("Vampire"),vampire,VAMPIRE,2,'1 0.15 0');
-REGISTER_BUFF(_("Disability"),disability,DISABILITY,7,'0.66 0.66 0.73');
-REGISTER_BUFF(_("Vengeance"),vengeance,VENGEANCE,15,'0.55 0.5 1');
-REGISTER_BUFF(_("Jump"),jump,JUMP,10,'0.7 0.2 1');
-REGISTER_BUFF(_("Flight"),flight,FLIGHT,11,'1 0.2 0.5');
-REGISTER_BUFF(_("Invisible"),invisible,INVISIBLE,12,'0.9 0.9 0.9');
-#undef REGISTER_BUFF