Pass context to drop_stolen_items

This commit is contained in:
Kp 2022-02-05 13:30:56 +00:00
parent 60c5fc5dc4
commit 29d6072f60
4 changed files with 8 additions and 11 deletions

View file

@ -13,9 +13,8 @@
#pragma once
#include "maths.h"
#ifdef __cplusplus
#include "fwd-object.h"
#include "fwd-vclip.h"
#ifdef dsx
namespace dsx {
@ -23,7 +22,7 @@ namespace dsx {
static inline void detect_escort_goal_accomplished(const vmobjptridx_t &)
{
}
static inline void drop_stolen_items (const vcobjptr_t &) {}
static inline void drop_stolen_items (fvmsegptridx &, d_level_unique_object_state &, const d_vclip_array &, const object_base &) {}
#elif defined(DXX_BUILD_DESCENT_II)
#define GUIDEBOT_NAME_LEN 9
struct netgame_info;
@ -35,7 +34,7 @@ void set_escort_special_goal(d_unique_buddy_state &BuddyState, int key);
void recreate_thief(uint8_t thief_id);
void init_buddy_for_level(void);
void invalidate_escort_goal(d_unique_buddy_state &);
void drop_stolen_items (vcobjptr_t);
void drop_stolen_items (fvmsegptridx &vmsegptridx, d_level_unique_object_state &LevelUniqueObjectState, const d_vclip_array &Vclip, const object_base &);
unsigned check_warn_local_player_can_control_guidebot(fvcobjptr &vcobjptr, const d_unique_buddy_state &, const netgame_info &Netgame);
enum escort_goal_t : uint8_t
@ -70,5 +69,3 @@ enum escort_goal_t : uint8_t
#endif
}
#endif
#endif

View file

@ -1842,15 +1842,15 @@ void init_thief_for_level(void)
}
// --------------------------------------------------------------------------------------------------------------
void drop_stolen_items(const vcobjptr_t objp)
void drop_stolen_items(fvmsegptridx &vmsegptridx, d_level_unique_object_state &LevelUniqueObjectState, const d_vclip_array &Vclip, const object_base &objp)
{
auto &ThiefUniqueState = LevelUniqueObjectState.ThiefState;
const auto &&segp = vmsegptridx(objp->segnum);
const auto &&segp = vmsegptridx(objp.segnum);
range_for (auto &i, ThiefUniqueState.Stolen_items)
{
if (i != 255)
{
drop_powerup(Vclip, std::exchange(i, 255), 1, objp->mtype.phys_info.velocity, objp->pos, segp, true);
drop_powerup(Vclip, std::exchange(i, 255), 1, objp.mtype.phys_info.velocity, objp.pos, segp, true);
}
}

View file

@ -1465,7 +1465,7 @@ void do_explosion_sequence(object &obj)
}
#if defined(DXX_BUILD_DESCENT_II)
if (robot_is_thief(robptr))
drop_stolen_items(del_obj);
drop_stolen_items(vmsegptridx, LevelUniqueObjectState, Vclip, del_obj);
else if (robot_is_companion(robptr))
{
DropBuddyMarker(del_obj);

View file

@ -959,7 +959,7 @@ int multi_explode_robot_sub(const vmobjptridx_t robot)
multi_drop_robot_powerups(robot);
}
if (robot_is_thief(Robot_info[get_robot_id(robot)]))
drop_stolen_items(robot);
drop_stolen_items(vmsegptridx, LevelUniqueObjectState, Vclip, robot);
if (Robot_info[get_robot_id(robot)].boss_flag) {
if (!BossUniqueState.Boss_dying)