set g_random_gravity_max 2000 "maximum gravity"
set g_random_gravity_positive 1000 "positive gravity multiplier"
set g_random_gravity_negative 1000 "negative gravity multiplier"
+
+set g_melee_only 0 "enable melee only arena"
CHECK_MUTATOR_ADD("g_multijump", mutator_multijump, 1);
CHECK_MUTATOR_ADD("g_jump_grunt", mutator_jump_grunt, 1);
CHECK_MUTATOR_ADD("g_footsteps", mutator_footsteps, 1);
+ CHECK_MUTATOR_ADD("g_melee_only", mutator_melee_only, !cvar("g_minstagib"));
CHECK_MUTATOR_ADD("g_sandbox", sandbox, 1);
#undef CHECK_MUTATOR_ADD
g_warmup_allguns = cvar("g_warmup_allguns");
g_warmup_allow_timeout = cvar("g_warmup_allow_timeout");
- if ((g_race && g_race_qualifying == 2) || g_arena || g_minstagib || g_assault || cvar("g_campaign"))
+ if ((g_race && g_race_qualifying == 2) || g_arena || g_minstagib || g_assault || cvar("g_campaign") || cvar("g_melee_only"))
inWarmupStage = 0; // these modes cannot work together, sorry
g_pickup_respawntime_weapon = cvar("g_pickup_respawntime_weapon");
--- /dev/null
+MUTATOR_HOOKFUNCTION(melee_SetStartItems)
+{
+ start_ammo_shells = 0;
+
+ WEPSET_COPY_AW(start_weapons, WEP_SHOTGUN);
+
+ return FALSE;
+}
+
+MUTATOR_HOOKFUNCTION(melee_FilterItem)
+{
+ switch (self.items)
+ {
+ case IT_5HP:
+ case IT_ARMOR_SHARD:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+MUTATOR_HOOKFUNCTION(melee_BuildMutatorsString)
+{
+ ret_string = strcat(ret_string, ":MeleeOnly");
+ return FALSE;
+}
+
+MUTATOR_HOOKFUNCTION(melee_BuildMutatorsPrettyString)
+{
+ ret_string = strcat(ret_string, ", Melee Only Arena");
+ return FALSE;
+}
+
+MUTATOR_DEFINITION(mutator_melee_only)
+{
+ MUTATOR_HOOK(SetStartItems, melee_SetStartItems, CBC_ORDER_ANY);
+ MUTATOR_HOOK(FilterItem, melee_FilterItem, CBC_ORDER_ANY);
+ MUTATOR_HOOK(BuildMutatorsString, melee_BuildMutatorsString, CBC_ORDER_ANY);
+ MUTATOR_HOOK(BuildMutatorsPrettyString, melee_BuildMutatorsPrettyString, CBC_ORDER_ANY);
+
+ return FALSE;
+}
MUTATOR_DECLARATION(mutator_multijump);
MUTATOR_DECLARATION(mutator_jump_grunt);
MUTATOR_DECLARATION(mutator_footsteps);
+MUTATOR_DECLARATION(mutator_melee_only);
MUTATOR_DECLARATION(sandbox);
mutators/mutator_multijump.qc
mutators/mutator_jump_grunt.qc
mutators/mutator_footsteps.qc
+mutators/mutator_melee_only.qc
../warpzonelib/anglestransform.qc
../warpzonelib/mathlib.qc