From 801c76cbd278485ab4770aefde6a8010bf0de5c0 Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 23 Jul 2022 20:58:10 +0000 Subject: [PATCH] Pass context to spit_powerup --- common/main/fwd-weapon.h | 2 +- similar/main/multi.cpp | 8 ++++---- similar/main/weapon.cpp | 8 +++----- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/common/main/fwd-weapon.h b/common/main/fwd-weapon.h index c8a425984..1929c386f 100644 --- a/common/main/fwd-weapon.h +++ b/common/main/fwd-weapon.h @@ -202,7 +202,7 @@ int pick_up_secondary(player_info &, secondary_weapon_index_t weapon_index, int namespace dsx { int pick_up_vulcan_ammo(player_info &player_info, uint_fast32_t ammo_count, bool change_weapon = true); //this function is for when the player intentionally drops a powerup -imobjptridx_t spit_powerup(const d_vclip_array &Vclip, const object_base &spitter, unsigned id, unsigned seed); +imobjptridx_t spit_powerup(d_level_unique_object_state &LevelUniqueObjectState, const d_level_shared_segment_state &LevelSharedSegmentState, d_level_unique_segment_state &LevelUniqueSegmentState, const d_vclip_array &Vclip, const object_base &spitter, unsigned id, unsigned seed); #if defined(DXX_BUILD_DESCENT_II) void attempt_to_steal_item(vmobjptridx_t objp, const robot_info &, object &playerobjp); diff --git a/similar/main/multi.cpp b/similar/main/multi.cpp index 896258559..f44ebcb68 100644 --- a/similar/main/multi.cpp +++ b/similar/main/multi.cpp @@ -3810,7 +3810,7 @@ static void multi_do_drop_weapon(fvmobjptr &vmobjptr, const playernum_t pnum, co remote_objnum = GET_INTEL_SHORT(buf + 2); ammo = GET_INTEL_SHORT(buf + 4); seed = GET_INTEL_INT(buf + 6); - const auto &&objnum = spit_powerup(Vclip, vmobjptr(vcplayerptr(pnum)->objnum), powerup_id, seed); + const auto &&objnum = spit_powerup(LevelUniqueObjectState, LevelSharedSegmentState, LevelUniqueSegmentState, Vclip, vmobjptr(vcplayerptr(pnum)->objnum), powerup_id, seed); if (objnum == object_none) return; objnum->ctype.powerup_info.count = ammo; @@ -4461,7 +4461,7 @@ static void DropOrb () seed = d_rand(); - const auto &&objnum = spit_powerup(Vclip, vmobjptr(ConsoleObject), POW_HOARD_ORB, seed); + const auto &&objnum = spit_powerup(LevelUniqueObjectState, LevelSharedSegmentState, LevelUniqueSegmentState, Vclip, *ConsoleObject, POW_HOARD_ORB, seed); if (objnum == object_none) return; @@ -4502,7 +4502,7 @@ void DropFlag () return; } seed = d_rand(); - const auto &&objnum = spit_powerup(Vclip, vmobjptr(ConsoleObject), get_team(Player_num) == TEAM_RED ? POW_FLAG_BLUE : POW_FLAG_RED, seed); + const auto &&objnum = spit_powerup(LevelUniqueObjectState, LevelSharedSegmentState, LevelUniqueSegmentState, Vclip, *ConsoleObject, get_team(Player_num) == TEAM_RED ? POW_FLAG_BLUE : POW_FLAG_RED, seed); if (objnum == object_none) { HUD_init_message_literal(HM_MULTI, "Failed to drop flag!"); @@ -4547,7 +4547,7 @@ static void multi_do_drop_flag (const playernum_t pnum, const ubyte *buf) const auto &&objp = vmobjptr(vcplayerptr(pnum)->objnum); - const imobjidx_t objnum = spit_powerup(Vclip, objp, powerup_id, seed); + const imobjidx_t objnum = spit_powerup(LevelUniqueObjectState, LevelSharedSegmentState, LevelUniqueSegmentState, Vclip, objp, powerup_id, seed); if (objnum == object_none) return; diff --git a/similar/main/weapon.cpp b/similar/main/weapon.cpp index 9bc26255e..343de1353 100644 --- a/similar/main/weapon.cpp +++ b/similar/main/weapon.cpp @@ -1452,7 +1452,7 @@ void process_super_mines_frame(void) //this function is for when the player intentionally drops a powerup //this function is based on drop_powerup() -imobjptridx_t spit_powerup(const d_vclip_array &Vclip, const object_base &spitter, const unsigned id, const unsigned seed) +imobjptridx_t spit_powerup(d_level_unique_object_state &LevelUniqueObjectState, const d_level_shared_segment_state &LevelSharedSegmentState, d_level_unique_segment_state &LevelUniqueSegmentState, const d_vclip_array &Vclip, const object_base &spitter, const unsigned id, const unsigned seed) { d_srand(seed); @@ -1519,7 +1519,6 @@ imobjptridx_t spit_powerup(const d_vclip_array &Vclip, const object_base &spitte void DropCurrentWeapon (player_info &player_info) { auto &Objects = LevelUniqueObjectState.Objects; - auto &vmobjptr = Objects.vmptr; if (LevelUniqueObjectState.num_objects >= Objects.size()) return; @@ -1571,7 +1570,7 @@ void DropCurrentWeapon (player_info &player_info) } const auto seed = d_rand(); - const auto objnum = spit_powerup(Vclip, vmobjptr(ConsoleObject), drop_type, seed); + const auto objnum = spit_powerup(LevelUniqueObjectState, LevelSharedSegmentState, LevelUniqueSegmentState, Vclip, *ConsoleObject, drop_type, seed); if (objnum == object_none) { HUD_init_message(HM_DEFAULT, "Failed to drop %s!", weapon_name); @@ -1625,7 +1624,6 @@ void DropCurrentWeapon (player_info &player_info) void DropSecondaryWeapon (player_info &player_info) { auto &Objects = LevelUniqueObjectState.Objects; - auto &vmobjptr = Objects.vmptr; int seed; ushort sub_ammo=0; @@ -1726,7 +1724,7 @@ void DropSecondaryWeapon (player_info &player_info) seed = d_rand(); - auto objnum = spit_powerup(Vclip, vmobjptr(ConsoleObject), weapon_drop_id, seed); + auto objnum = spit_powerup(LevelUniqueObjectState, LevelSharedSegmentState, LevelUniqueSegmentState, Vclip, *ConsoleObject, weapon_drop_id, seed); const auto weapon_name = SECONDARY_WEAPON_NAMES(Secondary_weapon); if (objnum == object_none)