Renamed hmg to okhmg.
authorLyberta <lyberta@lyberta.net>
Tue, 24 Apr 2018 21:04:41 +0000 (00:04 +0300)
committerLyberta <lyberta@lyberta.net>
Tue, 24 Apr 2018 21:04:41 +0000 (00:04 +0300)
17 files changed:
bal-wep-mario.cfg
bal-wep-nexuiz25.cfg
bal-wep-overkill.cfg
bal-wep-samual.cfg
bal-wep-xdf.cfg
bal-wep-xonotic.cfg
bal-wep-xpm.cfg
qcsrc/common/mutators/mutator/overkill/_mod.inc
qcsrc/common/mutators/mutator/overkill/_mod.qh
qcsrc/common/mutators/mutator/overkill/hmg.qc [deleted file]
qcsrc/common/mutators/mutator/overkill/hmg.qh [deleted file]
qcsrc/common/mutators/mutator/overkill/okhmg.qc [new file with mode: 0644]
qcsrc/common/mutators/mutator/overkill/okhmg.qh [new file with mode: 0644]
qcsrc/common/mutators/mutator/overkill/sv_overkill.qc
qcsrc/common/mutators/mutator/random_items/sv_random_items.qc
qcsrc/common/notifications/all.inc
randomitems-xonotic.cfg

index 4c0eebf..37ad0b4 100644 (file)
@@ -778,23 +778,36 @@ set g_balance_arc_weaponstart 0
 set g_balance_arc_weaponstartoverride -1
 set g_balance_arc_weaponthrowable 1
 // }}}
-// {{{ #21: Heavy Machine Gun
-set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 30
-set g_balance_hmg_force 10
-set g_balance_hmg_refire 0.05
-set g_balance_hmg_reload_ammo 120
-set g_balance_hmg_reload_time 1
-set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.005
-set g_balance_hmg_spread_max 0.06
-set g_balance_hmg_spread_min 0.01
-set g_balance_hmg_switchdelay_drop 0.2
-set g_balance_hmg_switchdelay_raise 0.2
-set g_balance_hmg_weaponreplace ""
-set g_balance_hmg_weaponstart 0
-set g_balance_hmg_weaponstartoverride 0
-set g_balance_hmg_weaponthrowable 0
+// {{{ #21: Overkill Heavy Machine Gun
+set g_balance_okhmg_primary_ammo 1
+set g_balance_okhmg_primary_damage 30
+set g_balance_okhmg_primary_force 10
+set g_balance_okhmg_primary_refire 0.05
+set g_balance_okhmg_primary_solidpenetration 32
+set g_balance_okhmg_primary_spread_add 0.005
+set g_balance_okhmg_primary_spread_max 0.06
+set g_balance_okhmg_primary_spread_min 0.01
+set g_balance_okhmg_reload_ammo 120
+set g_balance_okhmg_reload_time 1
+set g_balance_okhmg_secondary_ammo 0
+set g_balance_okhmg_secondary_animtime 0.2
+set g_balance_okhmg_secondary_damage 25
+set g_balance_okhmg_secondary_delay 0
+set g_balance_okhmg_secondary_edgedamage 12.5
+set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_lifetime 5
+set g_balance_okhmg_secondary_radius 70
+set g_balance_okhmg_secondary_refire 0.7
+set g_balance_okhmg_secondary_refire_type 1
+set g_balance_okhmg_secondary_shotangle 0
+set g_balance_okhmg_secondary_speed 6000
+set g_balance_okhmg_secondary_spread 0
+set g_balance_okhmg_switchdelay_drop 0.2
+set g_balance_okhmg_switchdelay_raise 0.2
+set g_balance_okhmg_weaponreplace ""
+set g_balance_okhmg_weaponstart 0
+set g_balance_okhmg_weaponstartoverride 0
+set g_balance_okhmg_weaponthrowable 0
 // }}}
 // {{{ #22: Rocket Propelled Chainsaw
 set g_balance_rpc_ammo 10
index f102759..554d5ea 100644 (file)
@@ -778,23 +778,36 @@ set g_balance_arc_weaponstart 0
 set g_balance_arc_weaponstartoverride -1
 set g_balance_arc_weaponthrowable 1
 // }}}
-// {{{ #21: Heavy Machine Gun
-set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 30
-set g_balance_hmg_force 10
-set g_balance_hmg_refire 0.05
-set g_balance_hmg_reload_ammo 120
-set g_balance_hmg_reload_time 1
-set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.005
-set g_balance_hmg_spread_max 0.06
-set g_balance_hmg_spread_min 0.01
-set g_balance_hmg_switchdelay_drop 0.2
-set g_balance_hmg_switchdelay_raise 0.2
-set g_balance_hmg_weaponreplace ""
-set g_balance_hmg_weaponstart 0
-set g_balance_hmg_weaponstartoverride 0
-set g_balance_hmg_weaponthrowable 0
+// {{{ #21: Overkill Heavy Machine Gun
+set g_balance_okhmg_primary_ammo 1
+set g_balance_okhmg_primary_damage 30
+set g_balance_okhmg_primary_force 10
+set g_balance_okhmg_primary_refire 0.05
+set g_balance_okhmg_primary_solidpenetration 32
+set g_balance_okhmg_primary_spread_add 0.005
+set g_balance_okhmg_primary_spread_max 0.06
+set g_balance_okhmg_primary_spread_min 0.01
+set g_balance_okhmg_reload_ammo 120
+set g_balance_okhmg_reload_time 1
+set g_balance_okhmg_secondary_ammo 0
+set g_balance_okhmg_secondary_animtime 0.2
+set g_balance_okhmg_secondary_damage 25
+set g_balance_okhmg_secondary_delay 0
+set g_balance_okhmg_secondary_edgedamage 12.5
+set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_lifetime 5
+set g_balance_okhmg_secondary_radius 70
+set g_balance_okhmg_secondary_refire 0.7
+set g_balance_okhmg_secondary_refire_type 1
+set g_balance_okhmg_secondary_shotangle 0
+set g_balance_okhmg_secondary_speed 6000
+set g_balance_okhmg_secondary_spread 0
+set g_balance_okhmg_switchdelay_drop 0.2
+set g_balance_okhmg_switchdelay_raise 0.2
+set g_balance_okhmg_weaponreplace ""
+set g_balance_okhmg_weaponstart 0
+set g_balance_okhmg_weaponstartoverride 0
+set g_balance_okhmg_weaponthrowable 0
 // }}}
 // {{{ #22: Rocket Propelled Chainsaw
 set g_balance_rpc_ammo 10
index 8d40332..2564e70 100644 (file)
@@ -778,23 +778,36 @@ set g_balance_arc_weaponstart 0
 set g_balance_arc_weaponstartoverride -1
 set g_balance_arc_weaponthrowable 1
 // }}}
-// {{{ #21: Heavy Machine Gun
-set g_balance_hmg_primary_ammo 1
-set g_balance_hmg_primary_damage 30
-set g_balance_hmg_primary_force 10
-set g_balance_hmg_primary_refire 0.05
-set g_balance_hmg_primary_solidpenetration 32
-set g_balance_hmg_primary_spread_add 0.005
-set g_balance_hmg_primary_spread_max 0.06
-set g_balance_hmg_primary_spread_min 0.01
-set g_balance_hmg_reload_ammo 120
-set g_balance_hmg_reload_time 1
-set g_balance_hmg_switchdelay_drop 0.2
-set g_balance_hmg_switchdelay_raise 0.2
-set g_balance_hmg_weaponreplace ""
-set g_balance_hmg_weaponstart 0
-set g_balance_hmg_weaponstartoverride 0
-set g_balance_hmg_weaponthrowable 0
+// {{{ #21: Overkill Heavy Machine Gun
+set g_balance_okhmg_primary_ammo 1
+set g_balance_okhmg_primary_damage 30
+set g_balance_okhmg_primary_force 10
+set g_balance_okhmg_primary_refire 0.05
+set g_balance_okhmg_primary_solidpenetration 32
+set g_balance_okhmg_primary_spread_add 0.005
+set g_balance_okhmg_primary_spread_max 0.06
+set g_balance_okhmg_primary_spread_min 0.01
+set g_balance_okhmg_reload_ammo 120
+set g_balance_okhmg_reload_time 1
+set g_balance_okhmg_secondary_ammo 0
+set g_balance_okhmg_secondary_animtime 0.2
+set g_balance_okhmg_secondary_damage 25
+set g_balance_okhmg_secondary_delay 0
+set g_balance_okhmg_secondary_edgedamage 12.5
+set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_lifetime 5
+set g_balance_okhmg_secondary_radius 70
+set g_balance_okhmg_secondary_refire 0.7
+set g_balance_okhmg_secondary_refire_type 1
+set g_balance_okhmg_secondary_shotangle 0
+set g_balance_okhmg_secondary_speed 6000
+set g_balance_okhmg_secondary_spread 0
+set g_balance_okhmg_switchdelay_drop 0.2
+set g_balance_okhmg_switchdelay_raise 0.2
+set g_balance_okhmg_weaponreplace ""
+set g_balance_okhmg_weaponstart 0
+set g_balance_okhmg_weaponstartoverride 0
+set g_balance_okhmg_weaponthrowable 0
 // }}}
 // {{{ #22: Rocket Propelled Chainsaw
 set g_balance_rpc_primary_ammo 10
index 2957567..9fa51af 100644 (file)
@@ -776,23 +776,36 @@ set g_balance_shotgun_weaponstart 0
 set g_balance_shotgun_weaponstartoverride -1
 set g_balance_shotgun_weaponthrowable 1
 // }}}
-// {{{ #21: Heavy Machine Gun
-set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 30
-set g_balance_hmg_force 10
-set g_balance_hmg_refire 0.05
-set g_balance_hmg_reload_ammo 120
-set g_balance_hmg_reload_time 1
-set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.005
-set g_balance_hmg_spread_max 0.06
-set g_balance_hmg_spread_min 0.01
-set g_balance_hmg_switchdelay_drop 0.2
-set g_balance_hmg_switchdelay_raise 0.2
-set g_balance_hmg_weaponreplace ""
-set g_balance_hmg_weaponstart 0
-set g_balance_hmg_weaponstartoverride 0
-set g_balance_hmg_weaponthrowable 0
+// {{{ #21: Overkill Heavy Machine Gun
+set g_balance_okhmg_primary_ammo 1
+set g_balance_okhmg_primary_damage 30
+set g_balance_okhmg_primary_force 10
+set g_balance_okhmg_primary_refire 0.05
+set g_balance_okhmg_primary_solidpenetration 32
+set g_balance_okhmg_primary_spread_add 0.005
+set g_balance_okhmg_primary_spread_max 0.06
+set g_balance_okhmg_primary_spread_min 0.01
+set g_balance_okhmg_reload_ammo 120
+set g_balance_okhmg_reload_time 1
+set g_balance_okhmg_secondary_ammo 0
+set g_balance_okhmg_secondary_animtime 0.2
+set g_balance_okhmg_secondary_damage 25
+set g_balance_okhmg_secondary_delay 0
+set g_balance_okhmg_secondary_edgedamage 12.5
+set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_lifetime 5
+set g_balance_okhmg_secondary_radius 70
+set g_balance_okhmg_secondary_refire 0.7
+set g_balance_okhmg_secondary_refire_type 1
+set g_balance_okhmg_secondary_shotangle 0
+set g_balance_okhmg_secondary_speed 6000
+set g_balance_okhmg_secondary_spread 0
+set g_balance_okhmg_switchdelay_drop 0.2
+set g_balance_okhmg_switchdelay_raise 0.2
+set g_balance_okhmg_weaponreplace ""
+set g_balance_okhmg_weaponstart 0
+set g_balance_okhmg_weaponstartoverride 0
+set g_balance_okhmg_weaponthrowable 0
 // }}}
 // {{{ #22: Rocket Propelled Chainsaw
 set g_balance_rpc_ammo 10
index fc9a1dd..7e5a465 100644 (file)
@@ -778,23 +778,36 @@ set g_balance_arc_weaponstart 0
 set g_balance_arc_weaponstartoverride -1
 set g_balance_arc_weaponthrowable 1
 // }}}
-// {{{ #21: Heavy Machine Gun
-set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 30
-set g_balance_hmg_force 10
-set g_balance_hmg_refire 0.05
-set g_balance_hmg_reload_ammo 120
-set g_balance_hmg_reload_time 1
-set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.005
-set g_balance_hmg_spread_max 0.06
-set g_balance_hmg_spread_min 0.01
-set g_balance_hmg_switchdelay_drop 0.2
-set g_balance_hmg_switchdelay_raise 0.2
-set g_balance_hmg_weaponreplace ""
-set g_balance_hmg_weaponstart 0
-set g_balance_hmg_weaponstartoverride 0
-set g_balance_hmg_weaponthrowable 0
+// {{{ #21: Overkill Heavy Machine Gun
+set g_balance_okhmg_primary_ammo 1
+set g_balance_okhmg_primary_damage 30
+set g_balance_okhmg_primary_force 10
+set g_balance_okhmg_primary_refire 0.05
+set g_balance_okhmg_primary_solidpenetration 32
+set g_balance_okhmg_primary_spread_add 0.005
+set g_balance_okhmg_primary_spread_max 0.06
+set g_balance_okhmg_primary_spread_min 0.01
+set g_balance_okhmg_reload_ammo 120
+set g_balance_okhmg_reload_time 1
+set g_balance_okhmg_secondary_ammo 0
+set g_balance_okhmg_secondary_animtime 0.2
+set g_balance_okhmg_secondary_damage 25
+set g_balance_okhmg_secondary_delay 0
+set g_balance_okhmg_secondary_edgedamage 12.5
+set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_lifetime 5
+set g_balance_okhmg_secondary_radius 70
+set g_balance_okhmg_secondary_refire 0.7
+set g_balance_okhmg_secondary_refire_type 1
+set g_balance_okhmg_secondary_shotangle 0
+set g_balance_okhmg_secondary_speed 6000
+set g_balance_okhmg_secondary_spread 0
+set g_balance_okhmg_switchdelay_drop 0.2
+set g_balance_okhmg_switchdelay_raise 0.2
+set g_balance_okhmg_weaponreplace ""
+set g_balance_okhmg_weaponstart 0
+set g_balance_okhmg_weaponstartoverride 0
+set g_balance_okhmg_weaponthrowable 0
 // }}}
 // {{{ #22: Rocket Propelled Chainsaw
 set g_balance_rpc_ammo 10
index e880166..217705c 100644 (file)
@@ -778,36 +778,36 @@ set g_balance_arc_weaponstart 0
 set g_balance_arc_weaponstartoverride -1
 set g_balance_arc_weaponthrowable 1
 // }}}
-// {{{ #21: Heavy Machine Gun
-set g_balance_hmg_primary_ammo 1
-set g_balance_hmg_primary_damage 30
-set g_balance_hmg_primary_force 10
-set g_balance_hmg_primary_refire 0.05
-set g_balance_hmg_primary_solidpenetration 32
-set g_balance_hmg_primary_spread_add 0.005
-set g_balance_hmg_primary_spread_max 0.06
-set g_balance_hmg_primary_spread_min 0.01
-set g_balance_hmg_reload_ammo 120
-set g_balance_hmg_reload_time 1
-set g_balance_hmg_secondary_ammo 0
-set g_balance_hmg_secondary_animtime 0.2
-set g_balance_hmg_secondary_damage 25
-set g_balance_hmg_secondary_delay 0
-set g_balance_hmg_secondary_edgedamage 12.5
-set g_balance_hmg_secondary_force 300
-set g_balance_hmg_secondary_lifetime 5
-set g_balance_hmg_secondary_radius 70
-set g_balance_hmg_secondary_refire 0.7
-set g_balance_hmg_secondary_refire_type 1
-set g_balance_hmg_secondary_shotangle 0
-set g_balance_hmg_secondary_speed 6000
-set g_balance_hmg_secondary_spread 0
-set g_balance_hmg_switchdelay_drop 0.2
-set g_balance_hmg_switchdelay_raise 0.2
-set g_balance_hmg_weaponreplace ""
-set g_balance_hmg_weaponstart 0
-set g_balance_hmg_weaponstartoverride 0
-set g_balance_hmg_weaponthrowable 0
+// {{{ #21: Overkill Heavy Machine Gun
+set g_balance_okhmg_primary_ammo 1
+set g_balance_okhmg_primary_damage 30
+set g_balance_okhmg_primary_force 10
+set g_balance_okhmg_primary_refire 0.05
+set g_balance_okhmg_primary_solidpenetration 32
+set g_balance_okhmg_primary_spread_add 0.005
+set g_balance_okhmg_primary_spread_max 0.06
+set g_balance_okhmg_primary_spread_min 0.01
+set g_balance_okhmg_reload_ammo 120
+set g_balance_okhmg_reload_time 1
+set g_balance_okhmg_secondary_ammo 0
+set g_balance_okhmg_secondary_animtime 0.2
+set g_balance_okhmg_secondary_damage 25
+set g_balance_okhmg_secondary_delay 0
+set g_balance_okhmg_secondary_edgedamage 12.5
+set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_lifetime 5
+set g_balance_okhmg_secondary_radius 70
+set g_balance_okhmg_secondary_refire 0.7
+set g_balance_okhmg_secondary_refire_type 1
+set g_balance_okhmg_secondary_shotangle 0
+set g_balance_okhmg_secondary_speed 6000
+set g_balance_okhmg_secondary_spread 0
+set g_balance_okhmg_switchdelay_drop 0.2
+set g_balance_okhmg_switchdelay_raise 0.2
+set g_balance_okhmg_weaponreplace ""
+set g_balance_okhmg_weaponstart 0
+set g_balance_okhmg_weaponstartoverride 0
+set g_balance_okhmg_weaponthrowable 0
 // }}}
 // {{{ #22: Rocket Propelled Chainsaw
 set g_balance_rpc_primary_ammo 10
index 2a391a2..e0b3e28 100644 (file)
@@ -778,23 +778,36 @@ set g_balance_arc_weaponstart 0
 set g_balance_arc_weaponstartoverride -1
 set g_balance_arc_weaponthrowable 1
 // }}}
-// {{{ #21: Heavy Machine Gun
-set g_balance_hmg_ammo 1
-set g_balance_hmg_damage 30
-set g_balance_hmg_force 10
-set g_balance_hmg_refire 0.05
-set g_balance_hmg_reload_ammo 120
-set g_balance_hmg_reload_time 1
-set g_balance_hmg_solidpenetration 32
-set g_balance_hmg_spread_add 0.005
-set g_balance_hmg_spread_max 0.06
-set g_balance_hmg_spread_min 0.01
-set g_balance_hmg_switchdelay_drop 0.2
-set g_balance_hmg_switchdelay_raise 0.2
-set g_balance_hmg_weaponreplace ""
-set g_balance_hmg_weaponstart 0
-set g_balance_hmg_weaponstartoverride 0
-set g_balance_hmg_weaponthrowable 0
+// {{{ #21: Overkill Heavy Machine Gun
+set g_balance_okhmg_primary_ammo 1
+set g_balance_okhmg_primary_damage 30
+set g_balance_okhmg_primary_force 10
+set g_balance_okhmg_primary_refire 0.05
+set g_balance_okhmg_primary_solidpenetration 32
+set g_balance_okhmg_primary_spread_add 0.005
+set g_balance_okhmg_primary_spread_max 0.06
+set g_balance_okhmg_primary_spread_min 0.01
+set g_balance_okhmg_reload_ammo 120
+set g_balance_okhmg_reload_time 1
+set g_balance_okhmg_secondary_ammo 0
+set g_balance_okhmg_secondary_animtime 0.2
+set g_balance_okhmg_secondary_damage 25
+set g_balance_okhmg_secondary_delay 0
+set g_balance_okhmg_secondary_edgedamage 12.5
+set g_balance_okhmg_secondary_force 300
+set g_balance_okhmg_secondary_lifetime 5
+set g_balance_okhmg_secondary_radius 70
+set g_balance_okhmg_secondary_refire 0.7
+set g_balance_okhmg_secondary_refire_type 1
+set g_balance_okhmg_secondary_shotangle 0
+set g_balance_okhmg_secondary_speed 6000
+set g_balance_okhmg_secondary_spread 0
+set g_balance_okhmg_switchdelay_drop 0.2
+set g_balance_okhmg_switchdelay_raise 0.2
+set g_balance_okhmg_weaponreplace ""
+set g_balance_okhmg_weaponstart 0
+set g_balance_okhmg_weaponstartoverride 0
+set g_balance_okhmg_weaponthrowable 0
 // }}}
 // {{{ #22: Rocket Propelled Chainsaw
 set g_balance_rpc_ammo 10
index 4ded179..959902f 100644 (file)
@@ -1,13 +1,12 @@
 // generated file; do not modify
-#include <common/mutators/mutator/overkill/hmg.qc>
-#include <common/mutators/mutator/overkill/okmachinegun.qc>
-#include <common/mutators/mutator/overkill/oknex.qc>
-#include <common/mutators/mutator/overkill/okshotgun.qc>
-#include <common/mutators/mutator/overkill/overkill.qc>
 #ifdef CSQC
     #include <common/mutators/mutator/overkill/cl_overkill.qc>
 #endif
 #ifdef SVQC
     #include <common/mutators/mutator/overkill/sv_overkill.qc>
 #endif
+#include <common/mutators/mutator/overkill/okhmg.qc>
+#include <common/mutators/mutator/overkill/okmachinegun.qc>
+#include <common/mutators/mutator/overkill/oknex.qc>
+#include <common/mutators/mutator/overkill/okshotgun.qc>
 #include <common/mutators/mutator/overkill/rpc.qc>
index db437c8..afe93c9 100644 (file)
@@ -1,13 +1,12 @@
 // generated file; do not modify
-#include <common/mutators/mutator/overkill/hmg.qh>
-#include <common/mutators/mutator/overkill/okmachinegun.qh>
-#include <common/mutators/mutator/overkill/oknex.qh>
-#include <common/mutators/mutator/overkill/okshotgun.qh>
-#include <common/mutators/mutator/overkill/overkill.qh>
 #ifdef CSQC
     #include <common/mutators/mutator/overkill/cl_overkill.qh>
 #endif
 #ifdef SVQC
     #include <common/mutators/mutator/overkill/sv_overkill.qh>
 #endif
+#include <common/mutators/mutator/overkill/okhmg.qh>
+#include <common/mutators/mutator/overkill/okmachinegun.qh>
+#include <common/mutators/mutator/overkill/oknex.qh>
+#include <common/mutators/mutator/overkill/okshotgun.qh>
 #include <common/mutators/mutator/overkill/rpc.qh>
diff --git a/qcsrc/common/mutators/mutator/overkill/hmg.qc b/qcsrc/common/mutators/mutator/overkill/hmg.qc
deleted file mode 100644 (file)
index 347e76d..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-#include "hmg.qh"
-
-#ifdef SVQC
-
-REGISTER_MUTATOR(hmg_nadesupport, true);
-MUTATOR_HOOKFUNCTION(hmg_nadesupport, Nade_Damage)
-{
-       if (M_ARGV(1, entity) != WEP_HMG) return;
-       return = true;
-       M_ARGV(3, float) /* damage */ = (M_ARGV(0, entity)).max_health * 0.1;
-}
-
-void W_HeavyMachineGun_Attack_Auto(Weapon thiswep, entity actor, .entity weaponentity, int fire)
-{
-       if (!PHYS_INPUT_BUTTON_ATCK(actor))
-       {
-               w_ready(thiswep, actor, weaponentity, fire);
-               return;
-       }
-
-       if((!thiswep.wr_checkammo1(thiswep, actor, weaponentity) && !(actor.items & IT_UNLIMITED_WEAPON_AMMO)) || (!(actor.items & IT_SUPERWEAPON) && !(actor.items & IT_UNLIMITED_SUPERWEAPONS)))
-       {
-               W_SwitchWeapon_Force(actor, w_getbestweapon(actor, weaponentity), weaponentity);
-               w_ready(thiswep, actor, weaponentity, fire);
-               return;
-       }
-
-       W_DecreaseAmmo(WEP_HMG, actor, WEP_CVAR_PRI(hmg, ammo), weaponentity);
-
-       W_SetupShot(actor, weaponentity, true, 0, SND_UZI_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(hmg, damage), WEP_HMG.m_id);
-
-       if(!autocvar_g_norecoil)
-       {
-               actor.punchangle_x = random () - 0.5;
-               actor.punchangle_y = random () - 0.5;
-       }
-
-       float hmg_spread = bound(WEP_CVAR_PRI(hmg, spread_min), WEP_CVAR_PRI(hmg, spread_min) + (WEP_CVAR_PRI(hmg, spread_add) * actor.(weaponentity).misc_bulletcounter), WEP_CVAR_PRI(hmg, spread_max));
-       fireBullet(actor, weaponentity, w_shotorg, w_shotdir, hmg_spread, WEP_CVAR_PRI(hmg, solidpenetration), WEP_CVAR_PRI(hmg, damage), WEP_CVAR_PRI(hmg, force), WEP_HMG.m_id, 0);
-
-       actor.(weaponentity).misc_bulletcounter = actor.(weaponentity).misc_bulletcounter + 1;
-
-       Send_Effect(EFFECT_MACHINEGUN_MUZZLEFLASH, w_shotorg, w_shotdir * 1000, 1);
-
-       W_MachineGun_MuzzleFlash(actor, weaponentity);
-       W_AttachToShotorg(actor, weaponentity, actor.(weaponentity).muzzle_flash, '5 0 0');
-
-       if (autocvar_g_casings >= 2) // casing code
-       {
-               makevectors(actor.v_angle); // for some reason, this is lost
-               SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, actor, weaponentity);
-       }
-
-       int slot = weaponslot(weaponentity);
-       ATTACK_FINISHED(actor, slot) = time + WEP_CVAR_PRI(hmg, refire) * W_WeaponRateFactor(actor);
-       weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(hmg, refire), W_HeavyMachineGun_Attack_Auto);
-}
-
-METHOD(HeavyMachineGun, wr_aim, void(entity thiswep, entity actor, .entity weaponentity))
-{
-    if(vdist(actor.origin - actor.enemy.origin, <, 3000 - bound(0, skill, 10) * 200))
-        PHYS_INPUT_BUTTON_ATCK(actor) = bot_aim(actor, weaponentity, 1000000, 0, 0.001, false);
-    else
-        PHYS_INPUT_BUTTON_ATCK2(actor) = bot_aim(actor, weaponentity, 1000000, 0, 0.001, false);
-}
-
-METHOD(HeavyMachineGun, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire))
-{
-       if ((WEP_CVAR_SEC(hmg, refire_type) == 1) && (fire & 2) && (time >= actor.jump_interval))
-       {
-               // Secondary uses it's own refire timer if refire_type is 1.
-               actor.jump_interval = time + WEP_CVAR_SEC(hmg, refire) * W_WeaponRateFactor(actor);
-               BLASTER_SECONDARY_ATTACK(hmg, actor, weaponentity);
-               if ((actor.(weaponentity).wframe == WFRAME_IDLE) ||
-                       (actor.(weaponentity).wframe == WFRAME_FIRE2))
-               {
-                       // Set secondary fire animation.
-                       vector a = '0 0 0';
-                       actor.(weaponentity).wframe = WFRAME_FIRE2;
-                       a = actor.(weaponentity).anim_fire2;
-                       a.z *= g_weaponratefactor;
-                       FOREACH_CLIENT(true, LAMBDA(
-                               if (it == actor || (IS_SPEC(it) && it.enemy == actor))
-                               {
-                                       wframe_send(it, actor.(weaponentity), a, true);
-                               }
-                       ));
-                       animdecide_setaction(actor, ANIMACTION_SHOOT, true);
-               }
-       }
-    if (WEP_CVAR(hmg, reload_ammo) && actor.(weaponentity).clip_load < WEP_CVAR_PRI(hmg, ammo))
-       {
-               // Forced reload.
-        thiswep.wr_reload(thiswep, actor, weaponentity);
-               return;
-       }
-       if (fire & 1) // Primary attack
-       {
-               if (!weapon_prepareattack(thiswep, actor, weaponentity, false, 0))
-               {
-                       return;
-               }
-               actor.(weaponentity).misc_bulletcounter = 0;
-               W_HeavyMachineGun_Attack_Auto(thiswep, actor, weaponentity, fire);
-               return;
-       }
-       if ((fire & 2) && (WEP_CVAR_SEC(hmg, refire_type) == 0)) // Secondary attack
-       {
-               if (!weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_SEC(hmg, refire)))
-               {
-                       return;
-               }
-               BLASTER_SECONDARY_ATTACK(hmg, actor, weaponentity);
-               weapon_thinkf(actor, weaponentity, WFRAME_FIRE2, WEP_CVAR_SEC(hmg, animtime), w_ready);
-       }
-}
-
-METHOD(HeavyMachineGun, wr_checkammo1, bool(entity thiswep, entity actor, .entity weaponentity))
-{
-       float ammo_amount = GetResourceAmount(actor, thiswep.ammo_type) >= WEP_CVAR_PRI(hmg, ammo);
-       if (autocvar_g_balance_hmg_reload_ammo)
-       {
-               ammo_amount += actor.(weaponentity).(weapon_load[WEP_HMG.m_id]) >= WEP_CVAR_PRI(hmg, ammo);
-       }
-       return ammo_amount;
-}
-
-METHOD(HeavyMachineGun, wr_checkammo2, bool(entity thiswep, entity actor, .entity weaponentity))
-{
-       float ammo_amount = GetResourceAmount(actor, thiswep.ammo_type) >= WEP_CVAR_SEC(hmg, ammo);
-       if (autocvar_g_balance_hmg_reload_ammo)
-       {
-               ammo_amount += actor.(weaponentity).(weapon_load[WEP_HMG.m_id]) >= WEP_CVAR_SEC(hmg, ammo);
-       }
-       return ammo_amount;
-}
-
-METHOD(HeavyMachineGun, wr_reload, void(entity thiswep, entity actor, .entity weaponentity))
-{
-    W_Reload(actor, weaponentity, WEP_CVAR_PRI(hmg, ammo), SND_RELOAD);
-}
-
-METHOD(HeavyMachineGun, wr_suicidemessage, Notification(entity thiswep))
-{
-    return WEAPON_THINKING_WITH_PORTALS;
-}
-
-METHOD(HeavyMachineGun, wr_killmessage, Notification(entity thiswep))
-{
-    if(w_deathtype & HITTYPE_SECONDARY)
-        return WEAPON_HMG_MURDER_SNIPE;
-    else
-        return WEAPON_HMG_MURDER_SPRAY;
-}
-
-#endif
-#ifdef CSQC
-
-METHOD(HeavyMachineGun, wr_impacteffect, void(entity thiswep, entity actor))
-{
-    vector org2;
-    org2 = w_org + w_backoff * 2;
-    pointparticles(EFFECT_MACHINEGUN_IMPACT, org2, w_backoff * 1000, 1);
-    if(!w_issilent)
-        sound(actor, CH_SHOTS, SND_RIC_RANDOM(), VOL_BASE, ATTEN_NORM);
-}
-
-#endif
diff --git a/qcsrc/common/mutators/mutator/overkill/hmg.qh b/qcsrc/common/mutators/mutator/overkill/hmg.qh
deleted file mode 100644 (file)
index eafec5c..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#pragma once
-
-#include <common/weapons/all.qh>
-
-CLASS(HeavyMachineGun, Weapon)
-/* spawnfunc */ ATTRIB(HeavyMachineGun, m_canonical_spawnfunc, string, "weapon_hmg");
-/* ammotype  */ ATTRIB(HeavyMachineGun, ammo_type, int, RESOURCE_BULLETS);
-/* impulse   */ ATTRIB(HeavyMachineGun, impulse, int, 3);
-/* flags     */ ATTRIB(HeavyMachineGun, spawnflags, int, WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_HIDDEN | WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_FLAG_SUPERWEAPON);
-/* rating    */ ATTRIB(HeavyMachineGun, bot_pickupbasevalue, float, 10000);
-/* color     */ ATTRIB(HeavyMachineGun, wpcolor, vector, '0.5 0.5 0');
-/* modelname */ ATTRIB(HeavyMachineGun, mdl, string, "ok_hmg");
-#ifdef GAMEQC
-/* model     */ ATTRIB(HeavyMachineGun, m_model, Model, MDL_HMG_ITEM);
-#endif
-/* crosshair */ ATTRIB(HeavyMachineGun, w_crosshair, string, "gfx/crosshairuzi");
-/* crosshair */ ATTRIB(HeavyMachineGun, w_crosshair_size, float, 0.6);
-/* wepimg    */ ATTRIB(HeavyMachineGun, model2, string, "weaponhmg");
-/* refname   */ ATTRIB(HeavyMachineGun, netname, string, "hmg");
-/* wepname   */ ATTRIB(HeavyMachineGun, m_name, string, _("Heavy Machine Gun"));
-
-#define X(BEGIN, P, END, class, prefix) \
-       BEGIN(class) \
-               P(class, prefix, ammo, float, PRI) \
-               P(class, prefix, damage, float, PRI) \
-               P(class, prefix, force, float, PRI) \
-               P(class, prefix, refire, float, PRI) \
-               P(class, prefix, solidpenetration, float, PRI) \
-               P(class, prefix, spread_add, float, PRI) \
-               P(class, prefix, spread_max, float, PRI) \
-               P(class, prefix, spread_min, float, PRI) \
-               P(class, prefix, ammo, float, SEC) \
-               P(class, prefix, animtime, float, SEC) \
-               P(class, prefix, damage, float, SEC) \
-               P(class, prefix, delay, float, SEC) \
-               P(class, prefix, edgedamage, float, SEC) \
-               P(class, prefix, force, float, SEC) \
-               P(class, prefix, lifetime, float, SEC) \
-               P(class, prefix, radius, float, SEC) \
-               P(class, prefix, refire, float, SEC) \
-               P(class, prefix, refire_type, float, SEC) \
-               P(class, prefix, shotangle, float, SEC) \
-               P(class, prefix, speed, float, SEC) \
-               P(class, prefix, spread, float, SEC) \
-               P(class, prefix, reload_ammo, float, NONE) \
-               P(class, prefix, reload_time, float, NONE) \
-               P(class, prefix, switchdelay_drop, float, NONE) \
-               P(class, prefix, switchdelay_raise, float, NONE) \
-               P(class, prefix, weaponreplace, string, NONE) \
-               P(class, prefix, weaponstartoverride, float, NONE) \
-               P(class, prefix, weaponstart, float, NONE) \
-               P(class, prefix, weaponthrowable, float, NONE) \
-    END()
-    W_PROPS(X, HeavyMachineGun, hmg)
-#undef X
-
-ENDCLASS(HeavyMachineGun)
-REGISTER_WEAPON(HMG, hmg, NEW(HeavyMachineGun));
-
-SPAWNFUNC_WEAPON(weapon_hmg, WEP_HMG)
diff --git a/qcsrc/common/mutators/mutator/overkill/okhmg.qc b/qcsrc/common/mutators/mutator/overkill/okhmg.qc
new file mode 100644 (file)
index 0000000..d278ca9
--- /dev/null
@@ -0,0 +1,168 @@
+#include "okhmg.qh"
+
+#ifdef SVQC
+
+REGISTER_MUTATOR(okhmg_nadesupport, true);
+MUTATOR_HOOKFUNCTION(okhmg_nadesupport, Nade_Damage)
+{
+       if (M_ARGV(1, entity) != WEP_OVERKILL_HMG) return;
+       return = true;
+       M_ARGV(3, float) /* damage */ = (M_ARGV(0, entity)).max_health * 0.1;
+}
+
+void W_OverkillHeavyMachineGun_Attack_Auto(Weapon thiswep, entity actor, .entity weaponentity, int fire)
+{
+       if (!PHYS_INPUT_BUTTON_ATCK(actor))
+       {
+               w_ready(thiswep, actor, weaponentity, fire);
+               return;
+       }
+
+       if((!thiswep.wr_checkammo1(thiswep, actor, weaponentity) && !(actor.items & IT_UNLIMITED_WEAPON_AMMO)) || (!(actor.items & IT_SUPERWEAPON) && !(actor.items & IT_UNLIMITED_SUPERWEAPONS)))
+       {
+               W_SwitchWeapon_Force(actor, w_getbestweapon(actor, weaponentity), weaponentity);
+               w_ready(thiswep, actor, weaponentity, fire);
+               return;
+       }
+
+       W_DecreaseAmmo(WEP_OVERKILL_HMG, actor, WEP_CVAR_PRI(okhmg, ammo), weaponentity);
+
+       W_SetupShot(actor, weaponentity, true, 0, SND_UZI_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(okhmg, damage), WEP_OVERKILL_HMG.m_id);
+
+       if(!autocvar_g_norecoil)
+       {
+               actor.punchangle_x = random () - 0.5;
+               actor.punchangle_y = random () - 0.5;
+       }
+
+       float okhmg_spread = bound(WEP_CVAR_PRI(okhmg, spread_min), WEP_CVAR_PRI(okhmg, spread_min) + (WEP_CVAR_PRI(okhmg, spread_add) * actor.(weaponentity).misc_bulletcounter), WEP_CVAR_PRI(okhmg, spread_max));
+       fireBullet(actor, weaponentity, w_shotorg, w_shotdir, okhmg_spread, WEP_CVAR_PRI(okhmg, solidpenetration), WEP_CVAR_PRI(okhmg, damage), WEP_CVAR_PRI(okhmg, force), WEP_OVERKILL_HMG.m_id, 0);
+
+       actor.(weaponentity).misc_bulletcounter = actor.(weaponentity).misc_bulletcounter + 1;
+
+       Send_Effect(EFFECT_MACHINEGUN_MUZZLEFLASH, w_shotorg, w_shotdir * 1000, 1);
+
+       W_MachineGun_MuzzleFlash(actor, weaponentity);
+       W_AttachToShotorg(actor, weaponentity, actor.(weaponentity).muzzle_flash, '5 0 0');
+
+       if (autocvar_g_casings >= 2) // casing code
+       {
+               makevectors(actor.v_angle); // for some reason, this is lost
+               SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, actor, weaponentity);
+       }
+
+       int slot = weaponslot(weaponentity);
+       ATTACK_FINISHED(actor, slot) = time + WEP_CVAR_PRI(okhmg, refire) * W_WeaponRateFactor(actor);
+       weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(okhmg, refire), W_OverkillHeavyMachineGun_Attack_Auto);
+}
+
+METHOD(OverkillHeavyMachineGun, wr_aim, void(entity thiswep, entity actor, .entity weaponentity))
+{
+    if(vdist(actor.origin - actor.enemy.origin, <, 3000 - bound(0, skill, 10) * 200))
+        PHYS_INPUT_BUTTON_ATCK(actor) = bot_aim(actor, weaponentity, 1000000, 0, 0.001, false);
+    else
+        PHYS_INPUT_BUTTON_ATCK2(actor) = bot_aim(actor, weaponentity, 1000000, 0, 0.001, false);
+}
+
+METHOD(OverkillHeavyMachineGun, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire))
+{
+       if ((WEP_CVAR_SEC(okhmg, refire_type) == 1) && (fire & 2) && (time >= actor.jump_interval))
+       {
+               // Secondary uses it's own refire timer if refire_type is 1.
+               actor.jump_interval = time + WEP_CVAR_SEC(okhmg, refire) * W_WeaponRateFactor(actor);
+               BLASTER_SECONDARY_ATTACK(okhmg, actor, weaponentity);
+               if ((actor.(weaponentity).wframe == WFRAME_IDLE) ||
+                       (actor.(weaponentity).wframe == WFRAME_FIRE2))
+               {
+                       // Set secondary fire animation.
+                       vector a = '0 0 0';
+                       actor.(weaponentity).wframe = WFRAME_FIRE2;
+                       a = actor.(weaponentity).anim_fire2;
+                       a.z *= g_weaponratefactor;
+                       FOREACH_CLIENT(true, LAMBDA(
+                               if (it == actor || (IS_SPEC(it) && it.enemy == actor))
+                               {
+                                       wframe_send(it, actor.(weaponentity), a, true);
+                               }
+                       ));
+                       animdecide_setaction(actor, ANIMACTION_SHOOT, true);
+               }
+       }
+    if (WEP_CVAR(okhmg, reload_ammo) && actor.(weaponentity).clip_load < WEP_CVAR_PRI(okhmg, ammo))
+       {
+               // Forced reload.
+        thiswep.wr_reload(thiswep, actor, weaponentity);
+               return;
+       }
+       if (fire & 1) // Primary attack
+       {
+               if (!weapon_prepareattack(thiswep, actor, weaponentity, false, 0))
+               {
+                       return;
+               }
+               actor.(weaponentity).misc_bulletcounter = 0;
+               W_OverkillHeavyMachineGun_Attack_Auto(thiswep, actor, weaponentity, fire);
+               return;
+       }
+       if ((fire & 2) && (WEP_CVAR_SEC(okhmg, refire_type) == 0)) // Secondary attack
+       {
+               if (!weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_SEC(okhmg, refire)))
+               {
+                       return;
+               }
+               BLASTER_SECONDARY_ATTACK(okhmg, actor, weaponentity);
+               weapon_thinkf(actor, weaponentity, WFRAME_FIRE2, WEP_CVAR_SEC(okhmg, animtime), w_ready);
+       }
+}
+
+METHOD(OverkillHeavyMachineGun, wr_checkammo1, bool(entity thiswep, entity actor, .entity weaponentity))
+{
+       float ammo_amount = GetResourceAmount(actor, thiswep.ammo_type) >= WEP_CVAR_PRI(okhmg, ammo);
+       if (autocvar_g_balance_okhmg_reload_ammo)
+       {
+               ammo_amount += actor.(weaponentity).(weapon_load[WEP_OVERKILL_HMG.m_id]) >= WEP_CVAR_PRI(okhmg, ammo);
+       }
+       return ammo_amount;
+}
+
+METHOD(OverkillHeavyMachineGun, wr_checkammo2, bool(entity thiswep, entity actor, .entity weaponentity))
+{
+       float ammo_amount = GetResourceAmount(actor, thiswep.ammo_type) >= WEP_CVAR_SEC(okhmg, ammo);
+       if (autocvar_g_balance_okhmg_reload_ammo)
+       {
+               ammo_amount += actor.(weaponentity).(weapon_load[WEP_OVERKILL_HMG.m_id]) >= WEP_CVAR_SEC(okhmg, ammo);
+       }
+       return ammo_amount;
+}
+
+METHOD(OverkillHeavyMachineGun, wr_reload, void(entity thiswep, entity actor, .entity weaponentity))
+{
+    W_Reload(actor, weaponentity, WEP_CVAR_PRI(okhmg, ammo), SND_RELOAD);
+}
+
+METHOD(OverkillHeavyMachineGun, wr_suicidemessage, Notification(entity thiswep))
+{
+    return WEAPON_THINKING_WITH_PORTALS;
+}
+
+METHOD(OverkillHeavyMachineGun, wr_killmessage, Notification(entity thiswep))
+{
+    if(w_deathtype & HITTYPE_SECONDARY)
+        return WEAPON_OVERKILL_HMG_MURDER_SNIPE;
+    else
+        return WEAPON_OVERKILL_HMG_MURDER_SPRAY;
+}
+
+#endif
+#ifdef CSQC
+
+METHOD(OverkillHeavyMachineGun, wr_impacteffect, void(entity thiswep, entity actor))
+{
+    vector org2;
+    org2 = w_org + w_backoff * 2;
+    pointparticles(EFFECT_MACHINEGUN_IMPACT, org2, w_backoff * 1000, 1);
+    if(!w_issilent)
+        sound(actor, CH_SHOTS, SND_RIC_RANDOM(), VOL_BASE, ATTEN_NORM);
+}
+
+#endif
diff --git a/qcsrc/common/mutators/mutator/overkill/okhmg.qh b/qcsrc/common/mutators/mutator/overkill/okhmg.qh
new file mode 100644 (file)
index 0000000..ecad050
--- /dev/null
@@ -0,0 +1,61 @@
+#pragma once
+
+#include <common/weapons/all.qh>
+
+CLASS(OverkillHeavyMachineGun, Weapon)
+/* spawnfunc */ ATTRIB(OverkillHeavyMachineGun, m_canonical_spawnfunc, string, "weapon_okhmg");
+/* ammotype  */ ATTRIB(OverkillHeavyMachineGun, ammo_type, int, RESOURCE_BULLETS);
+/* impulse   */ ATTRIB(OverkillHeavyMachineGun, impulse, int, 3);
+/* flags     */ ATTRIB(OverkillHeavyMachineGun, spawnflags, int, WEP_FLAG_MUTATORBLOCKED | WEP_FLAG_HIDDEN | WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN | WEP_FLAG_SUPERWEAPON);
+/* rating    */ ATTRIB(OverkillHeavyMachineGun, bot_pickupbasevalue, float, 10000);
+/* color     */ ATTRIB(OverkillHeavyMachineGun, wpcolor, vector, '0.5 0.5 0');
+/* modelname */ ATTRIB(OverkillHeavyMachineGun, mdl, string, "ok_hmg");
+#ifdef GAMEQC
+/* model     */ ATTRIB(OverkillHeavyMachineGun, m_model, Model, MDL_HMG_ITEM);
+#endif
+/* crosshair */ ATTRIB(OverkillHeavyMachineGun, w_crosshair, string, "gfx/crosshairuzi");
+/* crosshair */ ATTRIB(OverkillHeavyMachineGun, w_crosshair_size, float, 0.6);
+/* wepimg    */ ATTRIB(OverkillHeavyMachineGun, model2, string, "weaponhmg");
+/* refname   */ ATTRIB(OverkillHeavyMachineGun, netname, string, "okhmg");
+/* wepname   */ ATTRIB(OverkillHeavyMachineGun, m_name, string, _("Overkill Heavy Machine Gun"));
+
+#define X(BEGIN, P, END, class, prefix) \
+       BEGIN(class) \
+               P(class, prefix, ammo, float, PRI) \
+               P(class, prefix, damage, float, PRI) \
+               P(class, prefix, force, float, PRI) \
+               P(class, prefix, refire, float, PRI) \
+               P(class, prefix, solidpenetration, float, PRI) \
+               P(class, prefix, spread_add, float, PRI) \
+               P(class, prefix, spread_max, float, PRI) \
+               P(class, prefix, spread_min, float, PRI) \
+               P(class, prefix, ammo, float, SEC) \
+               P(class, prefix, animtime, float, SEC) \
+               P(class, prefix, damage, float, SEC) \
+               P(class, prefix, delay, float, SEC) \
+               P(class, prefix, edgedamage, float, SEC) \
+               P(class, prefix, force, float, SEC) \
+               P(class, prefix, lifetime, float, SEC) \
+               P(class, prefix, radius, float, SEC) \
+               P(class, prefix, refire, float, SEC) \
+               P(class, prefix, refire_type, float, SEC) \
+               P(class, prefix, shotangle, float, SEC) \
+               P(class, prefix, speed, float, SEC) \
+               P(class, prefix, spread, float, SEC) \
+               P(class, prefix, reload_ammo, float, NONE) \
+               P(class, prefix, reload_time, float, NONE) \
+               P(class, prefix, switchdelay_drop, float, NONE) \
+               P(class, prefix, switchdelay_raise, float, NONE) \
+               P(class, prefix, weaponreplace, string, NONE) \
+               P(class, prefix, weaponstartoverride, float, NONE) \
+               P(class, prefix, weaponstart, float, NONE) \
+               P(class, prefix, weaponthrowable, float, NONE) \
+    END()
+    W_PROPS(X, OverkillHeavyMachineGun, okhmg)
+#undef X
+
+ENDCLASS(OverkillHeavyMachineGun)
+REGISTER_WEAPON(OVERKILL_HMG, okhmg, NEW(OverkillHeavyMachineGun));
+
+SPAWNFUNC_WEAPON(weapon_okhmg, WEP_OVERKILL_HMG)
+SPAWNFUNC_WEAPON(weapon_hmg, WEP_OVERKILL_HMG)
index dbdc793..4459541 100644 (file)
@@ -1,6 +1,7 @@
 #include "sv_overkill.qh"
 
-#include "hmg.qh"
+#include "okshotgun.qh"
+#include "okhmg.qh"
 #include "rpc.qh"
 
 string autocvar_g_overkill;
@@ -35,7 +36,7 @@ REGISTER_MUTATOR(ok, expr_evaluate(autocvar_g_overkill) && !autocvar_g_instagib
                }
 
                WEP_RPC.spawnflags &= ~WEP_FLAG_MUTATORBLOCKED;
-               WEP_HMG.spawnflags &= ~WEP_FLAG_MUTATORBLOCKED;
+               WEP_OVERKILL_HMG.spawnflags &= ~WEP_FLAG_MUTATORBLOCKED;
 
                //WEP_SHOTGUN.mdl = "ok_shotgun";
                //WEP_MACHINEGUN.mdl = "ok_mg";
@@ -50,7 +51,7 @@ REGISTER_MUTATOR(ok, expr_evaluate(autocvar_g_overkill) && !autocvar_g_instagib
                ITEM_ArmorMega.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
 
                WEP_RPC.spawnflags |= WEP_FLAG_MUTATORBLOCKED;
-               WEP_HMG.spawnflags |= WEP_FLAG_MUTATORBLOCKED;
+               WEP_OVERKILL_HMG.spawnflags |= WEP_FLAG_MUTATORBLOCKED;
        }
 }
 
@@ -167,7 +168,7 @@ MUTATOR_HOOKFUNCTION(ok, PlayerWeaponSelect)
                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)
                                newwep = WEP_OVERKILL_NEX;
@@ -226,7 +227,7 @@ MUTATOR_HOOKFUNCTION(ok, FilterItem)
        }
        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);
@@ -235,7 +236,7 @@ MUTATOR_HOOKFUNCTION(ok, FilterItem)
                wep.respawntime = g_pickup_respawntime_superweapon;
                wep.pickup_anyway = true;
                wep.spawnfunc_checked = true;
-               Item_Initialize(wep, "weapon_hmg");
+               Item_Initialize(wep, "weapon_okhmg");
                return true;
        }
        else if (item.classname == "item_shield")
@@ -260,7 +261,7 @@ MUTATOR_HOOKFUNCTION(ok, SetStartItems, CBC_ORDER_LAST)
        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_HMG.weaponstart > 0) { ok_start_items |= WEPSET(OVERKILL_HMG); }
 
        start_items |= IT_UNLIMITED_WEAPON_AMMO;
        start_weapons = warmup_start_weapons = ok_start_items;
index 553dcf5..e22a02a 100644 (file)
@@ -232,14 +232,14 @@ string RandomItems_GetRandomOverkillItemClassName(string prefix)
                }
                RandomSelection_AddString(it.m_canonical_spawnfunc, cvar(cvar_name), 1);
        });
-       string cvar_name = sprintf("g_%s_overkill_weapon_hmg_probability", prefix);
+       string cvar_name = sprintf("g_%s_overkill_weapon_okhmg_probability", prefix);
        if (!(cvar_type(cvar_name) & CVAR_TYPEFLAG_EXISTS))
        {
                LOG_WARNF("Random items: cvar %s doesn't exist.", cvar_name);
        }
        else
        {
-               RandomSelection_AddString("weapon_hmg", cvar(cvar_name), 1);
+               RandomSelection_AddString("weapon_okhmg", cvar(cvar_name), 1);
        }
        cvar_name = sprintf("g_%s_overkill_weapon_rpc_probability", prefix);
        if (!(cvar_type(cvar_name) & CVAR_TYPEFLAG_EXISTS))
index e0234c2..a41979b 100644 (file)
     MSG_INFO_NOTIF(WEAPON_HAGAR_SUICIDE,                    N_CONSOLE,  2, 1, "s1 s2loc spree_lost", "s1",                      "weaponhagar",              _("^BG%s^K1 played with tiny Hagar rockets%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_HLAC_MURDER,                      N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weaponhlac",               _("^BG%s%s^K1 was cut down with ^BG%s^K1's HLAC%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_HLAC_SUICIDE,                     N_CONSOLE,  2, 1, "s1 s2loc spree_lost", "s1",                      "weaponhlac",               _("^BG%s^K1 got a little jumpy with their HLAC%s%s"), "")
-    MSG_INFO_NOTIF(WEAPON_HMG_MURDER_SNIPE,                 N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weaponhmg",                _("^BG%s%s^K1 was sniped by ^BG%s^K1's Heavy Machine Gun%s%s"), "")
-    MSG_INFO_NOTIF(WEAPON_HMG_MURDER_SPRAY,                 N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weaponhmg",                _("^BG%s%s^K1 was torn to bits by ^BG%s^K1's Heavy Machine Gun%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_HOOK_MURDER,                      N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weaponhook",               _("^BG%s%s^K1 was caught in ^BG%s^K1's Hook gravity bomb%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_KLEINBOTTLE_MURDER,               N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weapontuba",               _("^BG%s%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Klein Bottle%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_KLEINBOTTLE_SUICIDE,              N_CONSOLE,  2, 1, "s1 s2loc spree_lost", "s1",                      "weapontuba",               _("^BG%s^K1 hurt their own ears with the @!#%%'n Klein Bottle%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_MORTAR_MURDER_EXPLODE,            N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weapongrenadelauncher",    _("^BG%s%s^K1 ate ^BG%s^K1's Mortar grenade%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_MORTAR_SUICIDE_BOUNCE,            N_CONSOLE,  2, 1, "s1 s2loc spree_lost", "s1",                      "weapongrenadelauncher",    _("^BG%s^K1 didn't see their own Mortar grenade%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_MORTAR_SUICIDE_EXPLODE,           N_CONSOLE,  2, 1, "s1 s2loc spree_lost", "s1",                      "weapongrenadelauncher",    _("^BG%s^K1 blew themself up with their own Mortar%s%s"), "")
+    MSG_INFO_NOTIF(WEAPON_OVERKILL_HMG_MURDER_SNIPE,        N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weaponhmg",                _("^BG%s%s^K1 was sniped by ^BG%s^K1's Overkill Heavy Machine Gun%s%s"), "")
+    MSG_INFO_NOTIF(WEAPON_OVERKILL_HMG_MURDER_SPRAY,        N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weaponhmg",                _("^BG%s%s^K1 was torn to bits by ^BG%s^K1's Overkill Heavy Machine Gun%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_OVERKILL_MACHINEGUN_MURDER,       N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weaponokmachinegun",       _("^BG%s%s^K1 was riddled full of holes by ^BG%s^K1's Overkill Machine Gun%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_OVERKILL_NEX_MURDER,              N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weaponoknex",              _("^BG%s%s^K1 has been vaporized by ^BG%s^K1's Overkill Nex%s%s"), "")
     MSG_INFO_NOTIF(WEAPON_OVERKILL_SHOTGUN_MURDER,          N_CONSOLE,  3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",       "weaponokshotgun",          _("^BG%s%s^K1 was gunned down by ^BG%s^K1's Overkill Shotgun%s%s"), "")
     MSG_MULTI_NOTIF(WEAPON_HAGAR_SUICIDE,               N_ENABLE,  NULL,           INFO_WEAPON_HAGAR_SUICIDE,              CENTER_DEATH_SELF_GENERIC)
     MSG_MULTI_NOTIF(WEAPON_HLAC_MURDER,                 N_ENABLE,  NULL,           INFO_WEAPON_HLAC_MURDER,                NULL)
     MSG_MULTI_NOTIF(WEAPON_HLAC_SUICIDE,                N_ENABLE,  NULL,           INFO_WEAPON_HLAC_SUICIDE,               CENTER_DEATH_SELF_GENERIC)
-    MSG_MULTI_NOTIF(WEAPON_HMG_MURDER_SNIPE,            N_ENABLE,  NULL,           INFO_WEAPON_HMG_MURDER_SNIPE,           NULL)
-    MSG_MULTI_NOTIF(WEAPON_HMG_MURDER_SPRAY,            N_ENABLE,  NULL,           INFO_WEAPON_HMG_MURDER_SPRAY,           NULL)
     MSG_MULTI_NOTIF(WEAPON_HOOK_MURDER,                 N_ENABLE,  NULL,           INFO_WEAPON_HOOK_MURDER,                NULL)
     MSG_MULTI_NOTIF(WEAPON_KLEINBOTTLE_MURDER,          N_ENABLE,  NULL,           INFO_WEAPON_KLEINBOTTLE_MURDER,         NULL)
     MSG_MULTI_NOTIF(WEAPON_KLEINBOTTLE_SUICIDE,         N_ENABLE,  NULL,           INFO_WEAPON_KLEINBOTTLE_SUICIDE,        CENTER_DEATH_SELF_GENERIC)
     MSG_MULTI_NOTIF(WEAPON_MORTAR_MURDER_EXPLODE,       N_ENABLE,  NULL,           INFO_WEAPON_MORTAR_MURDER_EXPLODE,      NULL)
     MSG_MULTI_NOTIF(WEAPON_MORTAR_SUICIDE_BOUNCE,       N_ENABLE,  NULL,           INFO_WEAPON_MORTAR_SUICIDE_BOUNCE,      CENTER_DEATH_SELF_GENERIC)
     MSG_MULTI_NOTIF(WEAPON_MORTAR_SUICIDE_EXPLODE,      N_ENABLE,  NULL,           INFO_WEAPON_MORTAR_SUICIDE_EXPLODE,     CENTER_DEATH_SELF_GENERIC)
+    MSG_MULTI_NOTIF(WEAPON_OVERKILL_HMG_MURDER_SNIPE,   N_ENABLE,  NULL,           INFO_WEAPON_OVERKILL_HMG_MURDER_SNIPE,  NULL)
+    MSG_MULTI_NOTIF(WEAPON_OVERKILL_HMG_MURDER_SPRAY,   N_ENABLE,  NULL,           INFO_WEAPON_OVERKILL_HMG_MURDER_SPRAY,  NULL)
     MSG_MULTI_NOTIF(WEAPON_OVERKILL_MACHINEGUN_MURDER,  N_ENABLE,  NULL,           INFO_WEAPON_OVERKILL_MACHINEGUN_MURDER, NULL)
     MSG_MULTI_NOTIF(WEAPON_OVERKILL_NEX_MURDER,         N_ENABLE,  NULL,           INFO_WEAPON_OVERKILL_NEX_MURDER,        NULL)
     MSG_MULTI_NOTIF(WEAPON_OVERKILL_SHOTGUN_MURDER,     N_ENABLE,  NULL,           INFO_WEAPON_OVERKILL_SHOTGUN_MURDER,    NULL)
index f25387a..c5d1ff7 100644 (file)
@@ -39,7 +39,7 @@ set g_random_items_replace_weapon_hlac "random" "Classnames to replace HLAC with
 set g_random_items_replace_weapon_rifle "random" "Classnames to replace rifle with."
 set g_random_items_replace_weapon_seeker "random" "Classnames to replace TAG seeker with."
 set g_random_items_replace_weapon_vaporizer "random" "Classnames to replace vaporizer with."
-set g_random_items_replace_weapon_hmg "random" "Classnames to replace HMG with."
+set g_random_items_replace_weapon_okhmg "random" "Classnames to replace overkill HMG with."
 set g_random_items_replace_weapon_rpc "random" "Classnames to replace RPC with."
 set g_random_items_replace_item_strength "random" "Classnames to replace strength with."
 set g_random_items_replace_item_shield "random" "Classnames to replace shield with."
@@ -104,7 +104,7 @@ set g_random_items_overkill_item_armor_small_probability 10 "Probability of rand
 set g_random_items_overkill_item_armor_medium_probability 4 "Probability of random medium armor spawning in the map during overkill."
 set g_random_items_overkill_item_armor_big_probability 2 "Probability of random big armor spawning in the map during overkill."
 set g_random_items_overkill_item_armor_mega_probability 1 "Probability of random mega armor spawning in the map during overkill."
-set g_random_items_overkill_weapon_hmg_probability 0.5 "Probability of random HMG spawning in the map during overkill."
+set g_random_items_overkill_weapon_okhmg_probability 0.5 "Probability of random overkill HMG spawning in the map during overkill."
 set g_random_items_overkill_weapon_rpc_probability 0.5 "Probability of random RPC spawning in the map during overkill."
 
 // Loot
@@ -168,5 +168,5 @@ set g_random_loot_overkill_item_armor_small_probability 10 "Probability of rando
 set g_random_loot_overkill_item_armor_medium_probability 4 "Probability of random medium armor spawning as loot during overkill."
 set g_random_loot_overkill_item_armor_big_probability 2 "Probability of random big armor spawning as loot during overkill."
 set g_random_loot_overkill_item_armor_mega_probability 1 "Probability of random mega armor spawning as loot during overkill."
-set g_random_loot_overkill_weapon_hmg_probability 1 "Probability of random HMG spawning as loot during overkill."
+set g_random_loot_overkill_weapon_okhmg_probability 1 "Probability of random overkill HMG spawning as loot during overkill."
 set g_random_loot_overkill_weapon_rpc_probability 1 "Probability of random RPC spawning as loot during overkill."