From 8219df8db9ccd5060156b443073b79533696dd4f Mon Sep 17 00:00:00 2001 From: Kp Date: Sun, 2 Oct 2016 00:34:45 +0000 Subject: [PATCH] Pass player_info to pick_up_secondary --- common/main/fwd-weapon.h | 2 +- similar/main/powerup.cpp | 30 +++++++++++++++--------------- similar/main/weapon.cpp | 3 +-- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/common/main/fwd-weapon.h b/common/main/fwd-weapon.h index a2aeb2fe7..5e12b318b 100644 --- a/common/main/fwd-weapon.h +++ b/common/main/fwd-weapon.h @@ -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 diff --git a/similar/main/powerup.cpp b/similar/main/powerup.cpp index 040c41364..bd930e198 100644 --- a/similar/main/powerup.cpp +++ b/similar/main/powerup.cpp @@ -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) { diff --git a/similar/main/weapon.cpp b/similar/main/weapon.cpp index 91d87e908..f47fec95f 100644 --- a/similar/main/weapon.cpp +++ b/similar/main/weapon.cpp @@ -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)