Faster weapon switching with 'cycleweap'

Allows to skip elements on the weapon list by tapping the same bound key
This commit is contained in:
Jaime Moreira 2022-08-01 14:31:26 -04:00
parent f9ab797c7c
commit 7f689f649c
2 changed files with 13 additions and 2 deletions

View file

@ -9,6 +9,7 @@ original clients (Vanilla Quake II) commands are still in place.
weapon classnames separated by whitespaces. A weapon in the list is
skipped if it is not a valid weapon classname, you do not own it in
your inventory or you do not have enough ammo to use it.
By quickly tapping the bound key, you can navigate the list faster.
* **prefweap <weapons>**: Similar to the previous command, this will
select the first weapon available in the priority list given. Useful

View file

@ -1430,6 +1430,7 @@ cycle_weapon(edict_t *ent)
int i;
int start;
int num_weaps;
const char *weapname = NULL;
if (!ent)
{
@ -1446,11 +1447,20 @@ cycle_weapon(edict_t *ent)
num_weaps = gi.argc();
/* find where we want to start the search for the next eligible weapon */
if (cl->pers.weapon)
if (cl->newweapon)
{
weapname = cl->newweapon->classname;
}
else if (cl->pers.weapon)
{
weapname = cl->pers.weapon->classname;
}
if (weapname)
{
for (i = 1; i < num_weaps; i++)
{
if (Q_stricmp(cl->pers.weapon->classname, gi.argv(i)) == 0)
if (Q_stricmp(weapname, gi.argv(i)) == 0)
{
break;
}