#include <common/util.qh>
REGISTRY(Weapons, 72) // Increase as needed. Can be up to 72.
-#define Weapons_from(i) _Weapons_from(i, WEP_Null)
REGISTER_REGISTRY(Weapons)
STATIC_INIT(WeaponPickup) { FOREACH(Weapons, true, it.m_pickup = NEW(WeaponPickup, it)); }
default:
case CMD_REQUEST_USAGE:
{
- LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " dumpweapons [filename]");
- LOG_INFO(" Where 'filename' is the file to write (default is weapons_dump.cfg),");
- LOG_INFO(" if supplied with '-' output to console as well as default,");
- LOG_INFO(" if left blank, it will only write to default.");
+ LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " dumpweapons [filename]");
+ LOG_HELP(" Where 'filename' is the file to write (default is weapons_dump.cfg),");
+ LOG_HELP(" if supplied with '-' output to console as well as default,");
+ LOG_HELP(" if left blank, it will only write to default.");
return;
}
}
[[alias("WEP_" #id)]] Weapon _wep_##sname
REGISTER_WEAPON(Null, NEW(Weapon));
+REGISTRY_DEFINE_GET(Weapons, WEP_Null)
-Weapon Weapons_fromstr(string s)
+Weapon Weapon_from_name(string s)
{
FOREACH(Weapons, it != WEP_Null && it.netname == s, return it);
return WEP_Null;
.void(Weapon this, int i) wr_net;
NET_HANDLE(WeaponUpdate, bool isnew)
{
- Weapon w = Weapons_from(ReadByte());
+ Weapon w = REGISTRY_GET(Weapons, ReadByte());
for (int i; (i = ReadByte()); )
{
w.wr_net(w, i);
// read cvars from weapon settings
+// cvars are created as such: g_balance_wepname_name
#define WEP_CVAR(wepname, name) (_wep_##wepname.wepvar_##name)
#define WEP_CVAR_PRI(wepname, name) WEP_CVAR(wepname, primary_##name)
#define WEP_CVAR_SEC(wepname, name) WEP_CVAR(wepname, secondary_##name)
#endif
weaponorder_byid = "";
for (int i = REGISTRY_MAX(Weapons) - 1; i >= 1; --i)
- if (Weapons_from(i))
+ if (REGISTRY_GET(Weapons, i))
weaponorder_byid = strcat(weaponorder_byid, " ", ftos(i));
weaponorder_byid = strzone(substring(weaponorder_byid, 1, -1));
}