REGISTER_MUTATOR(mutator_instagib, autocvar_g_instagib && !g_nexball)
{
- MUTATOR_ONADD
- {
- ITEM_VaporizerCells.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
- }
- MUTATOR_ONROLLBACK_OR_REMOVE
- {
- ITEM_VaporizerCells.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
- }
+ MUTATOR_ONADD
+ {
+ ITEM_VaporizerCells.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
+ ITEM_Invisibility.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
+ ITEM_Speed.spawnflags &= ~ITEM_FLAG_MUTATORBLOCKED;
+ }
+ MUTATOR_ONROLLBACK_OR_REMOVE
+ {
+ ITEM_VaporizerCells.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
+ ITEM_Invisibility.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
+ ITEM_Speed.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
+ }
}
void instagib_invisibility(entity this)
{
- this.strength_finished = autocvar_g_balance_powerup_strength_time;
+ this.strength_finished = autocvar_g_instagib_invisibility_time;
StartItem(this, ITEM_Invisibility);
}
void instagib_speed(entity this)
{
- this.invincible_finished = autocvar_g_balance_powerup_invincible_time;
+ this.invincible_finished = autocvar_g_instagib_speed_time;
StartItem(this, ITEM_Speed);
}
instagib_stop_countdown(player);
}
+MUTATOR_HOOKFUNCTION(mutator_instagib, ShouldGiveRandomStartWeapons)
+{
+ return true;
+}
+
MUTATOR_HOOKFUNCTION(mutator_instagib, PlayerSpawn)
{
entity player = M_ARGV(0, entity);
{
entity e = new(item_vaporizer_cells);
setorigin(e, item.origin);
- e.noalign = item.noalign;
+ e.noalign = Item_ShouldKeepPosition(item);
e.cnt = item.cnt;
e.team = item.team;
e.spawnfunc_checked = true;