MUTATOR_HOOKFUNCTION(nt, SetModname)
{
- modname = "NewToys";
- return 0;
+ M_ARGV(0, string) = "NewToys";
}
bool nt_IsNewToy(int w)
// apply those bits that are set by start_weapon_defaultmask
// same for warmup
- float i, j, k, n;
+ float j, n;
WepSet newdefault;
WepSet warmup_newdefault;
newdefault = '0 0 0';
warmup_newdefault = '0 0 0';
- for(i = WEP_FIRST; i <= WEP_LAST; ++i)
- {
- entity e = Weapons_from(i);
- if(e == WEP_Null) continue;
+ WepSet seti = '0 0 0';
- n = tokenize_console(nt_GetReplacement(e.netname, autocvar_g_new_toys_autoreplace));
+ FOREACH(Weapons, it != WEP_Null, LAMBDA(
+ seti = it.m_wepset;
+ n = tokenize_console(nt_GetReplacement(it.netname, autocvar_g_new_toys_autoreplace));
- for (j = 0; j < n; ++j)
- for (k = WEP_FIRST; k <= WEP_LAST; ++k)
- {
- Weapon w = Weapons_from(k);
- if (w.netname == argv(j))
+ for(j = 0; j < n; ++j)
+ FOREACH(Weapons, it != WEP_Null, LAMBDA(
+ if(it.netname == argv(j))
{
- WepSet seti = e.m_wepset;
- WepSet setk = w.m_wepset;
- if (start_weapons & seti) newdefault |= setk;
- if (warmup_start_weapons & seti) warmup_newdefault |= setk;
+ WepSet setk = it.m_wepset;
+ if(start_weapons & seti) newdefault |= setk;
+ if(warmup_start_weapons & seti) warmup_newdefault |= setk;
}
- }
- }
+ ));
+ ));
newdefault &= start_weapons_defaultmask;
start_weapons &= ~start_weapons_defaultmask;
warmup_newdefault &= warmup_start_weapons_defaultmask;
warmup_start_weapons &= ~warmup_start_weapons_defaultmask;
warmup_start_weapons |= warmup_newdefault;
-
- return 0;
}
MUTATOR_HOOKFUNCTION(nt, SetWeaponreplace)
-{SELFPARAM();
+{
+ entity wep = M_ARGV(0, entity);
+ entity wepinfo = M_ARGV(1, entity);
+ string ret_string = M_ARGV(2, string);
+
// otherwise, we do replace
- if(self.new_toys)
+ if(wep.new_toys)
{
// map defined replacement:
- ret_string = self.new_toys;
+ ret_string = wep.new_toys;
}
else
{
// auto replacement:
- ret_string = nt_GetReplacement(other.netname, autocvar_g_new_toys_autoreplace);
+ ret_string = nt_GetReplacement(wepinfo.netname, autocvar_g_new_toys_autoreplace);
}
// apply regular weaponreplace
ret_string = W_Apply_Weaponreplace(ret_string);
- return 0;
+ M_ARGV(2, string) = ret_string;
}
MUTATOR_HOOKFUNCTION(nt, FilterItem)
-{SELFPARAM();
- if(nt_IsNewToy(self.weapon) && autocvar_g_new_toys_use_pickupsound) {
- self.item_pickupsound = string_null;
- self.item_pickupsound_ent = SND_WEAPONPICKUP_NEW_TOYS;
+{
+ entity item = M_ARGV(0, entity);
+
+ if(nt_IsNewToy(item.weapon) && autocvar_g_new_toys_use_pickupsound) {
+ item.item_pickupsound = string_null;
+ item.item_pickupsound_ent = SND_WEAPONPICKUP_NEW_TOYS;
}
- return 0;
}
#endif