Index: trunk/src/game/bg_public.h =================================================================== --- trunk/src/game/bg_public.h (revision 809) +++ trunk/src/game/bg_public.h (working copy) @@ -339,7 +339,8 @@ typedef enum { - WP_NONE, + WP_NONE = 0, + WP_ANY = 0, WP_ALEVEL0, WP_ALEVEL1, Index: trunk/src/game/g_weapon.c =================================================================== --- trunk/src/game/g_weapon.c (revision 809) +++ trunk/src/game/g_weapon.c (working copy) @@ -42,7 +42,7 @@ { ent->client->ps.pm_flags |= PMF_WEAPON_SWITCH; - if( weapon == WP_NONE + if( weapon == WP_NONE || weapon == WP_ANY || !BG_InventoryContainsWeapon( weapon, ent->client->ps.stats )) { //switch to the first non blaster weapon Index: trunk/src/game/g_cmds.c =================================================================== --- trunk/src/game/g_cmds.c (revision 809) +++ trunk/src/game/g_cmds.c (working copy) @@ -1776,24 +1776,8 @@ if( ent->client->ps.weapon != WP_BLASTER ) weapon = WP_BLASTER; else - { - //find a held weapon which isn't the blaster - for( i = WP_NONE + 1; i < WP_NUM_WEAPONS; i++ ) - { - if( i == WP_BLASTER ) - continue; + weapon = WP_ANY; - if( BG_InventoryContainsWeapon( i, ent->client->ps.stats ) ) - { - weapon = i; - break; - } - } - - if( i == WP_NUM_WEAPONS ) - weapon = WP_BLASTER; - } - G_ForceWeaponChange( ent, weapon ); } else if( BG_InventoryContainsUpgrade( upgrade, ent->client->ps.stats ) )