this.impulse = IMP_weapon_group_##slot.impulse; \
return; \
} \
- W_NextWeaponOnImpulse(this, slot); \
+ for(int wepslot = 0; wepslot < MAX_WEAPONSLOTS; ++wepslot) \
+ { \
+ .entity weaponentity = weaponentities[wepslot]; \
+ W_NextWeaponOnImpulse(this, slot, weaponentity); \
+ if(wepslot == 0 && autocvar_g_weaponswitch_debug != 1) \
+ break; \
+ } \
}
X(1)
X(2)
noref int prev = -1; \
noref int best = 0; \
noref int next = +1; \
- W_CycleWeapon(this, this.cvar_cl_weaponpriorities[slot], dir); \
+ for(int wepslot = 0; wepslot < MAX_WEAPONSLOTS; ++wepslot) \
+ { \
+ .entity weaponentity = weaponentities[wepslot]; \
+ W_CycleWeapon(this, this.cvar_cl_weaponpriorities[slot], dir, weaponentity); \
+ if(wepslot == 0 && autocvar_g_weaponswitch_debug != 1) \
+ break; \
+ } \
}
X(0, prev)
X(1, prev)
this.impulse = IMP_weapon_byid_##i.impulse; \
return; \
} \
- W_SwitchWeapon(this, Weapons_from(WEP_FIRST + i)); \
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot) \
+ { \
+ .entity weaponentity = weaponentities[slot]; \
+ W_SwitchWeapon(this, Weapons_from(WEP_FIRST + i), weaponentity); \
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1) \
+ break; \
+ } \
}
X(0)
X(1)
this.impulse = IMP_weapon_next_byid.impulse;
return;
}
- W_NextWeapon(this, 0);
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ W_NextWeapon(this, 0, weaponentity);
+
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1)
+ break;
+ }
}
IMPULSE(weapon_prev_byid)
this.impulse = IMP_weapon_prev_byid.impulse;
return;
}
- W_PreviousWeapon(this, 0);
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ W_PreviousWeapon(this, 0, weaponentity);
+
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1)
+ break;
+ }
}
IMPULSE(weapon_next_bygroup)
this.impulse = IMP_weapon_next_bygroup.impulse;
return;
}
- W_NextWeapon(this, 1);
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ W_NextWeapon(this, 1, weaponentity);
+
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1)
+ break;
+ }
}
IMPULSE(weapon_prev_bygroup)
this.impulse = IMP_weapon_prev_bygroup.impulse;
return;
}
- W_PreviousWeapon(this, 1);
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ W_PreviousWeapon(this, 1, weaponentity);
+
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1)
+ break;
+ }
}
IMPULSE(weapon_next_bypriority)
this.impulse = IMP_weapon_next_bypriority.impulse;
return;
}
- W_NextWeapon(this, 2);
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ W_NextWeapon(this, 2, weaponentity);
+
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1)
+ break;
+ }
}
IMPULSE(weapon_prev_bypriority)
this.impulse = IMP_weapon_prev_bypriority.impulse;
return;
}
- W_PreviousWeapon(this, 2);
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ W_PreviousWeapon(this, 2, weaponentity);
+
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1)
+ break;
+ }
}
IMPULSE(weapon_last)
{
if (this.vehicle) return;
if (IS_DEAD(this)) return;
- W_LastWeapon(this);
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ W_LastWeapon(this, weaponentity);
+
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1)
+ break;
+ }
}
IMPULSE(weapon_best)
{
if (this.vehicle) return;
if (IS_DEAD(this)) return;
- W_SwitchWeapon(this, w_getbestweapon(this));
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ W_SwitchWeapon(this, w_getbestweapon(this, weaponentity), weaponentity);
+
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1)
+ break;
+ }
}
IMPULSE(weapon_drop)
{
if (this.vehicle) return;
if (IS_DEAD(this)) return;
- W_ThrowWeapon(this, weaponentities[0], W_CalculateProjectileVelocity(this, this.velocity, v_forward * 750, false), '0 0 0', true);
+ for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+ {
+ .entity weaponentity = weaponentities[slot];
+ W_ThrowWeapon(this, weaponentity, W_CalculateProjectileVelocity(this, this.velocity, v_forward * 750, false), '0 0 0', true);
+
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1)
+ break;
+ }
}
IMPULSE(weapon_reload)
if (this.vehicle) return;
if (IS_DEAD(this)) return;
if (forbidWeaponUse(this)) return;
- Weapon w = PS(this).m_weapon;
entity actor = this;
for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
{
.entity weaponentity = weaponentities[slot];
+ Weapon w = this.(weaponentity).m_weapon;
w.wr_reload(w, actor, weaponentity);
+
+ if(slot == 0 && autocvar_g_weaponswitch_debug != 1)
+ break;
}
}
void ImpulseCommands(entity this)
{
- if (gameover) return;
+ if (game_stopped) return;
int imp = this.impulse;
if (!imp) return;
{
delete(this.personal);
this.personal = NULL;
+
+ if((g_cts || g_race) && autocvar_g_allow_checkpoints)
+ ClientKill(this);
}
sprint(this, "personal waypoint cleared\n");
}
{
delete(this.personal);
this.personal = NULL;
+ if((g_cts || g_race) && autocvar_g_allow_checkpoints)
+ ClientKill(this);
}
sprint(this, "all waypoints cleared\n");
}