mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2025-02-16 00:51:46 +00:00
Weapon preview for cycleweap
'Pickup style' just like weapprev/weapnext, only works when cycleweap is called with 3 or more parameters. Weapon binds in gamepad menus now include xatrix and rogue weapons.
This commit is contained in:
parent
1825aa9723
commit
6b8cd8fdf9
2 changed files with 46 additions and 22 deletions
|
@ -1326,12 +1326,20 @@ char *controller_bindnames[][2] =
|
||||||
{"+movedown", "down / crouch"},
|
{"+movedown", "down / crouch"},
|
||||||
{"weapnext", "next weapon"},
|
{"weapnext", "next weapon"},
|
||||||
{"weapprev", "previous weapon"},
|
{"weapprev", "previous weapon"},
|
||||||
{"cycleweap weapon_chaingun weapon_machinegun weapon_blaster", "long range: quickswitch 1"},
|
{"cycleweap weapon_plasmabeam weapon_boomer weapon_chaingun weapon_etf_rifle"
|
||||||
{"cycleweap weapon_supershotgun weapon_shotgun", "close range: quickswitch 2"},
|
" weapon_machinegun weapon_blaster", "long range: quickswitch 1"},
|
||||||
{"cycleweap weapon_rocketlauncher weapon_grenadelauncher ammo_grenades", "explosives: quickswitch 3"},
|
{"cycleweap weapon_supershotgun weapon_shotgun weapon_chainfist",
|
||||||
{"cycleweap weapon_bfg weapon_railgun weapon_hyperblaster", "special: quickswitch 4"},
|
"close range: quickswitch 2"},
|
||||||
{"prefweap weapon_railgun weapon_hyperblaster weapon_chaingun weapon_supershotgun weapon_machinegun weapon_shotgun weapon_blaster", "best safe weapon"},
|
{"cycleweap weapon_phalanx weapon_rocketlauncher weapon_proxlauncher"
|
||||||
{"prefweap weapon_bfg weapon_railgun weapon_rocketlauncher weapon_hyperblaster weapon_grenadelauncher weapon_chaingun ammo_grenades weapon_supershotgun", "best unsafe weapon"},
|
" weapon_grenadelauncher ammo_grenades", "explosives: quickswitch 3"},
|
||||||
|
{"cycleweap weapon_bfg weapon_disintegrator weapon_railgun weapon_hyperblaster"
|
||||||
|
" ammo_tesla ammo_trap", "special: quickswitch 4"},
|
||||||
|
{"prefweap weapon_railgun weapon_plasmabeam weapon_boomer weapon_hyperblaster weapon_chaingun"
|
||||||
|
" weapon_supershotgun weapon_etf_rifle weapon_machinegun weapon_shotgun weapon_blaster",
|
||||||
|
"best safe weapon"},
|
||||||
|
{"prefweap weapon_bfg weapon_disintegrator weapon_phalanx weapon_railgun weapon_rocketlauncher"
|
||||||
|
" weapon_plasmabeam weapon_boomer weapon_hyperblaster weapon_grenadelauncher weapon_chaingun"
|
||||||
|
" weapon_proxlauncher ammo_grenades weapon_supershotgun", "best unsafe weapon"},
|
||||||
{"centerview", "center view"},
|
{"centerview", "center view"},
|
||||||
{"inven", "inventory"},
|
{"inven", "inventory"},
|
||||||
{"invuse", "use item"},
|
{"invuse", "use item"},
|
||||||
|
@ -1489,12 +1497,20 @@ char *controller_alt_bindnames[][2] =
|
||||||
{
|
{
|
||||||
{"weapnext", "next weapon"},
|
{"weapnext", "next weapon"},
|
||||||
{"weapprev", "previous weapon"},
|
{"weapprev", "previous weapon"},
|
||||||
{"cycleweap weapon_chaingun weapon_machinegun weapon_blaster", "long range: quickswitch 1"},
|
{"cycleweap weapon_plasmabeam weapon_boomer weapon_chaingun weapon_etf_rifle"
|
||||||
{"cycleweap weapon_supershotgun weapon_shotgun", "close range: quickswitch 2"},
|
" weapon_machinegun weapon_blaster", "long range: quickswitch 1"},
|
||||||
{"cycleweap weapon_rocketlauncher weapon_grenadelauncher ammo_grenades", "explosives: quickswitch 3"},
|
{"cycleweap weapon_supershotgun weapon_shotgun weapon_chainfist",
|
||||||
{"cycleweap weapon_bfg weapon_railgun weapon_hyperblaster", "special: quickswitch 4"},
|
"close range: quickswitch 2"},
|
||||||
{"prefweap weapon_railgun weapon_hyperblaster weapon_chaingun weapon_supershotgun weapon_machinegun weapon_shotgun weapon_blaster", "best safe weapon"},
|
{"cycleweap weapon_phalanx weapon_rocketlauncher weapon_proxlauncher"
|
||||||
{"prefweap weapon_bfg weapon_railgun weapon_rocketlauncher weapon_hyperblaster weapon_grenadelauncher weapon_chaingun ammo_grenades weapon_supershotgun", "best unsafe weapon"},
|
" weapon_grenadelauncher ammo_grenades", "explosives: quickswitch 3"},
|
||||||
|
{"cycleweap weapon_bfg weapon_disintegrator weapon_railgun weapon_hyperblaster"
|
||||||
|
" ammo_tesla ammo_trap", "special: quickswitch 4"},
|
||||||
|
{"prefweap weapon_railgun weapon_plasmabeam weapon_boomer weapon_hyperblaster weapon_chaingun"
|
||||||
|
" weapon_supershotgun weapon_etf_rifle weapon_machinegun weapon_shotgun weapon_blaster",
|
||||||
|
"best safe weapon"},
|
||||||
|
{"prefweap weapon_bfg weapon_disintegrator weapon_phalanx weapon_railgun weapon_rocketlauncher"
|
||||||
|
" weapon_plasmabeam weapon_boomer weapon_hyperblaster weapon_grenadelauncher weapon_chaingun"
|
||||||
|
" weapon_proxlauncher ammo_grenades weapon_supershotgun", "best unsafe weapon"},
|
||||||
{"centerview", "center view"},
|
{"centerview", "center view"},
|
||||||
{"inven", "inventory"},
|
{"inven", "inventory"},
|
||||||
{"invuse", "use item"},
|
{"invuse", "use item"},
|
||||||
|
|
|
@ -1708,29 +1708,37 @@ static void
|
||||||
Cmd_CycleWeap_f(edict_t *ent)
|
Cmd_CycleWeap_f(edict_t *ent)
|
||||||
{
|
{
|
||||||
gitem_t *weap;
|
gitem_t *weap;
|
||||||
|
gclient_t *cl;
|
||||||
|
int num_weaps;
|
||||||
|
|
||||||
if (!ent)
|
if (!ent)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gi.argc() <= 1)
|
num_weaps = gi.argc();
|
||||||
|
if (num_weaps <= 1)
|
||||||
{
|
{
|
||||||
gi.cprintf(ent, PRINT_HIGH, "Usage: cycleweap classname1 classname2 .. classnameN\n");
|
gi.cprintf(ent, PRINT_HIGH, "Usage: cycleweap classname1 classname2 .. classnameN\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
weap = cycle_weapon(ent);
|
weap = cycle_weapon(ent);
|
||||||
if (weap)
|
if (!weap) return;
|
||||||
|
|
||||||
|
cl = ent->client;
|
||||||
|
if (cl->pers.inventory[ITEM_INDEX(weap)] <= 0)
|
||||||
{
|
{
|
||||||
if (ent->client->pers.inventory[ITEM_INDEX(weap)] <= 0)
|
gi.cprintf(ent, PRINT_HIGH, "Out of item: %s\n", weap->pickup_name);
|
||||||
{
|
return;
|
||||||
gi.cprintf(ent, PRINT_HIGH, "Out of item: %s\n", weap->pickup_name);
|
}
|
||||||
}
|
|
||||||
else
|
weap->use(ent, weap);
|
||||||
{
|
if (num_weaps > 3 && cl->newweapon == weap)
|
||||||
weap->use(ent, weap);
|
{
|
||||||
}
|
cl->ps.stats[STAT_PICKUP_ICON] = gi.imageindex(weap->icon);
|
||||||
|
cl->ps.stats[STAT_PICKUP_STRING] = CS_ITEMS + ITEM_INDEX(weap);
|
||||||
|
cl->pickup_msg_time = level.time + 0.7f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue