From 6fc8d110f30bafe613f6c9f2b483b75b94f39b22 Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 26 Oct 2013 19:52:41 +0000 Subject: [PATCH] Only give secondaries that exist --- common/main/weapon.h | 9 +++++++++ similar/main/gamecntl.cpp | 8 ++++---- similar/main/powerup.cpp | 4 ++-- similar/main/weapon.cpp | 2 +- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/common/main/weapon.h b/common/main/weapon.h index 9a6a3216a..2fc74075a 100644 --- a/common/main/weapon.h +++ b/common/main/weapon.h @@ -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; diff --git a/similar/main/gamecntl.cpp b/similar/main/gamecntl.cpp index 08c29ee38..95c271f2a 100644 --- a/similar/main/gamecntl.cpp +++ b/similar/main/gamecntl.cpp @@ -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