This will cause problem:
typedef enum
{
  WP_NONE,
  WP_ALEVEL0,
  WP_ALEVEL1,
  WP_ALEVEL1_UPG,
  WP_ALEVEL2,
  WP_ALEVEL2_UPG,
  WP_ALEVEL3,
  WP_ALEVEL3_UPG,
  WP_ALEVEL4,
  WP_BLASTER,
  WP_MACHINEGUN,
  WP_PAIN_SAW,
  WP_SHOTGUN,
  WP_LAS_GUN,
  WP_MASS_DRIVER,
  WP_CHAINGUN,
  WP_PULSE_RIFLE,
  WP_FLAMER,
  WP_LUCIFER_CANNON,
  WP_GRENADE,
  WP_R_BLASTER,
  WP_R_MACHINEGUN,
  WP_R_PAIN_SAW,
  WP_R_SHOTGUN,
  WP_R_LAS_GUN,
  WP_R_MASS_DRIVER,
  WP_R_CHAINGUN,
  WP_R_PULSE_RIFLE,
  WP_R_FLAMER,
  WP_R_LUCIFER_CANNON,
  WP_R_GRENADE,
  WP_LOCKBLOB_LAUNCHER,
  WP_HIVE,
  WP_TESLAGEN,
  WP_MGTURRET,
  WP_R_TESLAGEN,
  WP_R_MGTURRET,
  //build weapons must remain in a block
  WP_ABUILD,
  WP_ABUILD2,
  WP_HBUILD2,
  WP_HBUILD,
  WP_RBUILD2,
  WP_RBUILD,
  //ok?
  WP_NUM_WEAPONS
} weapon_t; 
This is ok:
typedef enum
{
  WP_NONE,
  WP_ALEVEL0,
  WP_ALEVEL1,
  WP_ALEVEL1_UPG,
  WP_ALEVEL2,
  WP_ALEVEL2_UPG,
  WP_ALEVEL3,
  WP_ALEVEL3_UPG,
  WP_ALEVEL4,
  WP_BLASTER,
  WP_MACHINEGUN,
  WP_PAIN_SAW,
  WP_SHOTGUN,
  WP_LAS_GUN,
  WP_MASS_DRIVER,
  WP_CHAINGUN,
  WP_PULSE_RIFLE,
  WP_FLAMER,
  WP_LUCIFER_CANNON,
  WP_GRENADE,
/*
  WP_R_BLASTER,
  WP_R_MACHINEGUN,
  WP_R_PAIN_SAW,
  WP_R_SHOTGUN,
  WP_R_LAS_GUN,
  WP_R_MASS_DRIVER,
  WP_R_CHAINGUN,
  WP_R_PULSE_RIFLE,
  WP_R_FLAMER,
  WP_R_LUCIFER_CANNON,
  WP_R_GRENADE,
*/
  WP_LOCKBLOB_LAUNCHER,
  WP_HIVE,
  WP_TESLAGEN,
  WP_MGTURRET,
/*
  WP_R_TESLAGEN,
  WP_R_MGTURRET,
*/
  //build weapons must remain in a block
  WP_ABUILD,
  WP_ABUILD2,
  WP_HBUILD2,
  WP_HBUILD,
  WP_RBUILD2,
  WP_RBUILD,
  //ok?
  WP_NUM_WEAPONS
} weapon_t;