diff --git a/common/main/collide.h b/common/main/collide.h index 7d682b9ce..6a8f8fac5 100644 --- a/common/main/collide.h +++ b/common/main/collide.h @@ -54,7 +54,7 @@ int maybe_detonate_weapon(vobjptridx_t obj0p, vobjptr_t obj, const vms_vector &p void collide_player_and_nasty_robot(vobjptridx_t player, vobjptridx_t robot, const vms_vector &collision_point); void net_destroy_controlcen(objptridx_t controlcen); -void collide_player_and_powerup(vobjptr_t player, vobjptridx_t powerup, const vms_vector &collision_point); +void collide_player_and_powerup(object &player, vobjptridx_t powerup, const vms_vector &collision_point); #if defined(DXX_BUILD_DESCENT_I) #define check_effect_blowup(seg,side,pnt,blower,force_blowup_flag,remote) check_effect_blowup(seg,side,pnt) #endif diff --git a/similar/main/collide.cpp b/similar/main/collide.cpp index 84ffa4ab4..93564f15a 100644 --- a/similar/main/collide.cpp +++ b/similar/main/collide.cpp @@ -2246,17 +2246,15 @@ void collide_robot_and_materialization_center(const vobjptridx_t objp) } -void collide_player_and_powerup(const vobjptr_t playerobj, const vobjptridx_t powerup, const vms_vector &) +void collide_player_and_powerup(object &playerobj, const vobjptridx_t powerup, const vms_vector &) { if (!Endlevel_sequence && Player_dead_state == player_dead_state::no && get_player_id(playerobj) == Player_num) { - int powerup_used; - - powerup_used = do_powerup(powerup); - - if (powerup_used) { + const auto powerup_used = do_powerup(powerup); + if (powerup_used) + { powerup->flags |= OF_SHOULD_BE_DEAD; if (Game_mode & GM_MULTI) multi_send_remobj(powerup); @@ -2266,13 +2264,13 @@ void collide_player_and_powerup(const vobjptr_t playerobj, const vobjptridx_t po { switch (get_powerup_id(powerup)) { case POW_KEY_BLUE: - playerobj->ctype.player_info.powerup_flags |= PLAYER_FLAGS_BLUE_KEY; + playerobj.ctype.player_info.powerup_flags |= PLAYER_FLAGS_BLUE_KEY; break; case POW_KEY_RED: - playerobj->ctype.player_info.powerup_flags |= PLAYER_FLAGS_RED_KEY; + playerobj.ctype.player_info.powerup_flags |= PLAYER_FLAGS_RED_KEY; break; case POW_KEY_GOLD: - playerobj->ctype.player_info.powerup_flags |= PLAYER_FLAGS_GOLD_KEY; + playerobj.ctype.player_info.powerup_flags |= PLAYER_FLAGS_GOLD_KEY; break; default: break;