#include "sv_overkill.qh"
-#include "hmg.qh"
-#include "rpc.qh"
-
-string autocvar_g_overkill;
-
bool autocvar_g_overkill_powerups_replace;
bool autocvar_g_overkill_itemwaypoints = true;
.Weapon ok_lastwep[MAX_WEAPONSLOTS];
-REGISTER_MUTATOR(ok, expr_evaluate(autocvar_g_overkill) && !cvar("g_instagib") && !g_nexball && cvar_string("g_mod_balance") == "Overkill")
-{
- MUTATOR_ONADD
- {
- precache_all_playermodels("models/ok_player/*.dpm");
-
- if (autocvar_g_overkill_filter_healthmega)
- {
- ITEM_HealthMega.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
- }
- if (autocvar_g_overkill_filter_armormedium)
- {
- ITEM_ArmorMedium.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
- }
- if (autocvar_g_overkill_filter_armorbig)
- {
- ITEM_ArmorBig.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
- }
- if (autocvar_g_overkill_filter_armormega)
- {
- ITEM_ArmorMega.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
- }
-
- WEP_RPC.spawnflags &= ~WEP_FLAG_MUTATORBLOCKED;
- WEP_HMG.spawnflags &= ~WEP_FLAG_MUTATORBLOCKED;
-
- //WEP_SHOTGUN.mdl = "ok_shotgun";
- //WEP_MACHINEGUN.mdl = "ok_mg";
- //WEP_VORTEX.mdl = "ok_sniper";
- }
-
- MUTATOR_ONREMOVE
- {
- ITEM_HealthMega.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
- ITEM_ArmorMedium.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
- ITEM_ArmorBig.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
- ITEM_ArmorMega.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
-
- WEP_RPC.spawnflags |= WEP_FLAG_MUTATORBLOCKED;
- WEP_HMG.spawnflags |= WEP_FLAG_MUTATORBLOCKED;
- }
-}
-
-void W_Blaster_Attack(entity, .entity, float, float, float, float, float, float, float, float, float, float);
-
MUTATOR_HOOKFUNCTION(ok, Damage_Calculate, CBC_ORDER_LAST)
{
entity frag_attacker = M_ARGV(1, entity);
if(player.ok_lastwep[slot] && player.ok_lastwep[slot] != WEP_Null)
{
Weapon newwep = player.ok_lastwep[slot];
- if(player.ok_lastwep[slot] == WEP_HMG)
+ if(player.ok_lastwep[slot] == WEP_OVERKILL_HMG)
newwep = WEP_OVERKILL_MACHINEGUN;
- if(player.ok_lastwep[slot] == WEP_RPC)
+ if(player.ok_lastwep[slot] == WEP_OVERKILL_RPC)
newwep = WEP_OVERKILL_NEX;
thiswep.m_switchweapon = newwep;
player.ok_lastwep[slot] = WEP_Null;
}
if (item.classname == "item_strength")
{
- entity wep = new(weapon_hmg);
+ entity wep = new(weapon_okhmg);
setorigin(wep, item.origin);
wep.ok_item = true;
wep.noalign = Item_ShouldKeepPosition(item);
wep.respawntime = g_pickup_respawntime_superweapon;
wep.pickup_anyway = true;
wep.spawnfunc_checked = true;
- Item_Initialize(wep, "weapon_hmg");
+ Item_Initialize(wep, "weapon_okhmg"); // doesn't actually use spawnfunc
return true;
}
else if (item.classname == "item_shield")
{
- entity wep = new(weapon_rpc);
+ entity wep = new(weapon_okrpc);
setorigin(wep, item.origin);
wep.ok_item = true;
wep.noalign = Item_ShouldKeepPosition(item);
wep.respawntime = g_pickup_respawntime_superweapon;
wep.pickup_anyway = true;
wep.spawnfunc_checked = true;
- Item_Initialize(wep, "weapon_rpc");
+ Item_Initialize(wep, "weapon_okrpc"); // doesn't actually use spawnfunc
return true;
}
return true;
{
WepSet ok_start_items = (WEPSET(OVERKILL_MACHINEGUN) | WEPSET(OVERKILL_NEX) | WEPSET(OVERKILL_SHOTGUN));
- if(WEP_RPC.weaponstart > 0) { ok_start_items |= WEPSET(RPC); }
- if(WEP_HMG.weaponstart > 0) { ok_start_items |= WEPSET(HMG); }
+ if(WEP_OVERKILL_RPC.weaponstart > 0) { ok_start_items |= WEPSET(OVERKILL_RPC); }
+ if(WEP_OVERKILL_HMG.weaponstart > 0) { ok_start_items |= WEPSET(OVERKILL_HMG); }
start_items |= IT_UNLIMITED_WEAPON_AMMO;
start_weapons = warmup_start_weapons = ok_start_items;