Only give secondaries that exist
This commit is contained in:
parent
58958e091b
commit
6fc8d110f3
|
@ -195,6 +195,8 @@ extern int weapon_info_read_n(weapon_info *wi, int n, PHYSFS_file *fp, int file_
|
|||
#define HAS_FUSION_FLAG HAS_PRIMARY_FLAG(FUSION_INDEX)
|
||||
|
||||
#define HAS_CONCUSSION_FLAG HAS_SECONDARY_FLAG(CONCUSSION_INDEX)
|
||||
#define HAS_HOMING_FLAG HAS_SECONDARY_FLAG(HOMING_INDEX)
|
||||
#define HAS_PROXIMITY_BOMB_FLAG HAS_SECONDARY_FLAG(PROXIMITY_INDEX)
|
||||
#define HAS_SMART_FLAG HAS_SECONDARY_FLAG(SMART_INDEX)
|
||||
#define HAS_MEGA_FLAG HAS_SECONDARY_FLAG(MEGA_INDEX)
|
||||
|
||||
|
@ -224,6 +226,7 @@ extern int weapon_info_read_n(weapon_info *wi, int n, PHYSFS_file *fp, int file_
|
|||
#define PROXIMITY_INDEX 2
|
||||
#define SMART_INDEX 3
|
||||
#define MEGA_INDEX 4
|
||||
|
||||
#if defined(DXX_BUILD_DESCENT_I)
|
||||
#define NUM_SHAREWARE_WEAPONS 3 //in shareware, old get first 3 of each
|
||||
|
||||
|
@ -240,6 +243,12 @@ extern int weapon_info_read_n(weapon_info *wi, int n, PHYSFS_file *fp, int file_
|
|||
#define VULCAN_AMMO_SCALE 0xcc163 //(0x198300/2) //multiply ammo by this before displaying
|
||||
|
||||
#define NUM_SMART_CHILDREN 6 // Number of smart children created by default.
|
||||
|
||||
#define HAS_FLASH_FLAG HAS_SECONDARY_FLAG(SMISSILE1_INDEX)
|
||||
#define HAS_GUIDED_FLAG HAS_SECONDARY_FLAG(GUIDED_INDEX)
|
||||
#define HAS_SMART_BOMB_FLAG HAS_SECONDARY_FLAG(SMART_MINE_INDEX)
|
||||
#define HAS_MERCURY_FLAG HAS_SECONDARY_FLAG(SMISSILE4_INDEX)
|
||||
#define HAS_EARTHSHAKER_FLAG HAS_SECONDARY_FLAG(SMISSILE5_INDEX)
|
||||
#endif
|
||||
|
||||
extern int N_weapon_types;
|
||||
|
|
|
@ -1459,7 +1459,7 @@ static int FinalCheats(int key)
|
|||
HUD_init_message_literal(HM_DEFAULT, TXT_WOWIE_ZOWIE);
|
||||
|
||||
Players[Player_num].primary_weapon_flags |= (HAS_LASER_FLAG | HAS_VULCAN_FLAG | HAS_SPREADFIRE_FLAG);
|
||||
Players[Player_num].secondary_weapon_flags |= 0xff ^ (HAS_SMART_FLAG | HAS_MEGA_FLAG);
|
||||
Players[Player_num].secondary_weapon_flags |= (HAS_CONCUSSION_FLAG | HAS_HOMING_FLAG | HAS_PROXIMITY_BOMB_FLAG);
|
||||
|
||||
Players[Player_num].vulcan_ammo = Primary_ammo_max[VULCAN_INDEX];
|
||||
for (unsigned i=0; i<3; i++)
|
||||
|
@ -1479,7 +1479,7 @@ static int FinalCheats(int key)
|
|||
HUD_init_message(HM_DEFAULT, "SUPER %s",TXT_WOWIE_ZOWIE);
|
||||
|
||||
Players[Player_num].primary_weapon_flags |= (HAS_LASER_FLAG | HAS_VULCAN_FLAG | HAS_SPREADFIRE_FLAG | HAS_PLASMA_FLAG | HAS_FUSION_FLAG);
|
||||
Players[Player_num].secondary_weapon_flags = 0xff;
|
||||
Players[Player_num].secondary_weapon_flags |= (HAS_CONCUSSION_FLAG | HAS_HOMING_FLAG | HAS_PROXIMITY_BOMB_FLAG | HAS_SMART_FLAG | HAS_MEGA_FLAG);
|
||||
|
||||
Players[Player_num].vulcan_ammo = Primary_ammo_max[VULCAN_INDEX];
|
||||
for (unsigned i=0; i<MAX_SECONDARY_WEAPONS; i++)
|
||||
|
@ -1507,12 +1507,12 @@ static int FinalCheats(int key)
|
|||
if (Piggy_hamfile_version < 3) // SHAREWARE
|
||||
{
|
||||
Players[Player_num].primary_weapon_flags |= (HAS_LASER_FLAG | HAS_VULCAN_FLAG | HAS_SPREADFIRE_FLAG | HAS_PLASMA_FLAG) | (HAS_GAUSS_FLAG | HAS_HELIX_FLAG);
|
||||
Players[Player_num].secondary_weapon_flags = ~((1<<SMISSILE4_INDEX) | (1<<MEGA_INDEX) | (1<<SMISSILE5_INDEX));
|
||||
Players[Player_num].secondary_weapon_flags |= (HAS_CONCUSSION_FLAG | HAS_HOMING_FLAG | HAS_PROXIMITY_BOMB_FLAG | HAS_SMART_FLAG) | (HAS_FLASH_FLAG | HAS_GUIDED_FLAG | HAS_SMART_BOMB_FLAG);
|
||||
}
|
||||
else
|
||||
{
|
||||
Players[Player_num].primary_weapon_flags |= (HAS_LASER_FLAG | HAS_VULCAN_FLAG | HAS_SPREADFIRE_FLAG | HAS_PLASMA_FLAG | HAS_FUSION_FLAG) | (HAS_GAUSS_FLAG | HAS_HELIX_FLAG | HAS_PHOENIX_FLAG | HAS_OMEGA_FLAG);
|
||||
Players[Player_num].secondary_weapon_flags = 0xffff;
|
||||
Players[Player_num].secondary_weapon_flags |= (HAS_CONCUSSION_FLAG | HAS_HOMING_FLAG | HAS_PROXIMITY_BOMB_FLAG | HAS_SMART_FLAG | HAS_MEGA_FLAG) | (HAS_FLASH_FLAG | HAS_GUIDED_FLAG | HAS_SMART_BOMB_FLAG | HAS_MERCURY_FLAG | HAS_EARTHSHAKER_FLAG);
|
||||
}
|
||||
|
||||
Players[Player_num].vulcan_ammo = Primary_ammo_max[VULCAN_INDEX];
|
||||
|
|
|
@ -157,10 +157,10 @@ void do_megawow_powerup(int quantity)
|
|||
powerup_basic(30, 0, 30, 1, "MEGA-WOWIE-ZOWIE!");
|
||||
#if defined(DXX_BUILD_DESCENT_I)
|
||||
Players[Player_num].primary_weapon_flags = (HAS_LASER_FLAG | HAS_VULCAN_FLAG | HAS_SPREADFIRE_FLAG | HAS_PLASMA_FLAG | HAS_FUSION_FLAG);
|
||||
Players[Player_num].secondary_weapon_flags = 0xff;
|
||||
Players[Player_num].secondary_weapon_flags |= (HAS_CONCUSSION_FLAG | HAS_HOMING_FLAG | HAS_PROXIMITY_BOMB_FLAG | HAS_SMART_FLAG | HAS_MEGA_FLAG);
|
||||
#elif defined(DXX_BUILD_DESCENT_II)
|
||||
Players[Player_num].primary_weapon_flags = (HAS_LASER_FLAG | HAS_VULCAN_FLAG | HAS_SPREADFIRE_FLAG | HAS_PLASMA_FLAG | HAS_FUSION_FLAG) | (HAS_GAUSS_FLAG | HAS_HELIX_FLAG | HAS_PHOENIX_FLAG | HAS_OMEGA_FLAG);
|
||||
Players[Player_num].secondary_weapon_flags = 0xffff;
|
||||
Players[Player_num].secondary_weapon_flags |= (HAS_CONCUSSION_FLAG | HAS_HOMING_FLAG | HAS_PROXIMITY_BOMB_FLAG | HAS_SMART_FLAG | HAS_MEGA_FLAG) | (HAS_FLASH_FLAG | HAS_GUIDED_FLAG | HAS_SMART_BOMB_FLAG | HAS_MERCURY_FLAG | HAS_EARTHSHAKER_FLAG);
|
||||
#endif
|
||||
Players[Player_num].vulcan_ammo = VULCAN_AMMO_MAX;
|
||||
|
||||
|
|
|
@ -238,7 +238,7 @@ int player_has_weapon(int weapon_num, int secondary_flag)
|
|||
} else {
|
||||
weapon_index = Secondary_weapon_to_weapon_info[weapon_num];
|
||||
|
||||
if (Players[Player_num].secondary_weapon_flags & (1 << weapon_num))
|
||||
if (Players[Player_num].secondary_weapon_flags & HAS_SECONDARY_FLAG(weapon_num))
|
||||
return_value |= HAS_WEAPON_FLAG;
|
||||
|
||||
if (Weapon_info[weapon_index].ammo_usage <= Players[Player_num].secondary_ammo[weapon_num])
|
||||
|
|
Loading…
Reference in a new issue