Pass player_info to pick_up_secondary

This commit is contained in:
Kp 2016-10-02 00:34:45 +00:00
parent c94cec40d0
commit 8219df8db9
3 changed files with 17 additions and 18 deletions

View file

@ -192,8 +192,8 @@ has_weapon_result player_has_secondary_weapon(const player_info &, int weapon_nu
//when you pick up a secondary, you always get the weapon & ammo for it
#ifdef dsx
namespace dsx {
int pick_up_secondary(int weapon_index,int count);
int pick_up_primary(player_info &, int weapon_index);
int pick_up_secondary(player_info &, int weapon_index,int count);
//called when a primary weapon is picked up
//returns true if actually picked up

View file

@ -466,10 +466,10 @@ int do_powerup(const vobjptridx_t obj)
used = pick_up_energy();
break;
case POW_MISSILE_1:
used=pick_up_secondary(CONCUSSION_INDEX,1);
used=pick_up_secondary(player_info, CONCUSSION_INDEX, 1);
break;
case POW_MISSILE_4:
used=pick_up_secondary(CONCUSSION_INDEX,4);
used=pick_up_secondary(player_info, CONCUSSION_INDEX, 4);
break;
case POW_KEY_BLUE:
@ -576,38 +576,38 @@ int do_powerup(const vobjptridx_t obj)
#endif
case POW_PROXIMITY_WEAPON:
used=pick_up_secondary(PROXIMITY_INDEX,4);
used=pick_up_secondary(player_info, PROXIMITY_INDEX, 4);
break;
case POW_SMARTBOMB_WEAPON:
used=pick_up_secondary(SMART_INDEX,1);
used=pick_up_secondary(player_info, SMART_INDEX, 1);
break;
case POW_MEGA_WEAPON:
used=pick_up_secondary(MEGA_INDEX,1);
used=pick_up_secondary(player_info, MEGA_INDEX, 1);
break;
#if defined(DXX_BUILD_DESCENT_II)
case POW_SMISSILE1_1:
used=pick_up_secondary(SMISSILE1_INDEX,1);
used=pick_up_secondary(player_info, SMISSILE1_INDEX, 1);
break;
case POW_SMISSILE1_4:
used=pick_up_secondary(SMISSILE1_INDEX,4);
used=pick_up_secondary(player_info, SMISSILE1_INDEX, 4);
break;
case POW_GUIDED_MISSILE_1:
used=pick_up_secondary(GUIDED_INDEX,1);
used=pick_up_secondary(player_info, GUIDED_INDEX, 1);
break;
case POW_GUIDED_MISSILE_4:
used=pick_up_secondary(GUIDED_INDEX,4);
used=pick_up_secondary(player_info, GUIDED_INDEX, 4);
break;
case POW_SMART_MINE:
used=pick_up_secondary(SMART_MINE_INDEX,4);
used=pick_up_secondary(player_info, SMART_MINE_INDEX, 4);
break;
case POW_MERCURY_MISSILE_1:
used=pick_up_secondary(SMISSILE4_INDEX,1);
used=pick_up_secondary(player_info, SMISSILE4_INDEX, 1);
break;
case POW_MERCURY_MISSILE_4:
used=pick_up_secondary(SMISSILE4_INDEX,4);
used=pick_up_secondary(player_info, SMISSILE4_INDEX, 4);
break;
case POW_EARTHSHAKER_MISSILE:
used=pick_up_secondary(SMISSILE5_INDEX,1);
used=pick_up_secondary(player_info, SMISSILE5_INDEX, 1);
break;
#endif
case POW_VULCAN_AMMO:
@ -618,10 +618,10 @@ int do_powerup(const vobjptridx_t obj)
#endif
break;
case POW_HOMING_AMMO_1:
used=pick_up_secondary(HOMING_INDEX,1);
used=pick_up_secondary(player_info, HOMING_INDEX, 1);
break;
case POW_HOMING_AMMO_4:
used=pick_up_secondary(HOMING_INDEX,4);
used=pick_up_secondary(player_info, HOMING_INDEX, 4);
break;
case POW_CLOAK:
if (player_info.powerup_flags & PLAYER_FLAGS_CLOAKED) {

View file

@ -780,10 +780,9 @@ static void maybe_autoselect_primary_weapon(int weapon_index)
//when you pick up a secondary, you always get the weapon & ammo for it
// Returns true if powerup picked up, else returns false.
namespace dsx {
int pick_up_secondary(int weapon_index,int count)
int pick_up_secondary(player_info &player_info, int weapon_index,int count)
{
int num_picked_up;
auto &player_info = get_local_plrobj().ctype.player_info;
const auto max = PLAYER_MAX_AMMO(player_info.powerup_flags, Secondary_ammo_max[weapon_index]);
auto &secondary_ammo = player_info.secondary_ammo;
if (secondary_ammo[weapon_index] >= max)