Pass object & to update_item_state::process_powerup
This commit is contained in:
parent
d5a64c4f33
commit
ed7376c695
|
@ -3171,14 +3171,14 @@ class update_item_state
|
|||
{
|
||||
std::bitset<MAX_OBJECTS> m_modified;
|
||||
public:
|
||||
bool must_skip(const vcobjptridx_t i) const
|
||||
bool must_skip(const vcobjidx_t i) const
|
||||
{
|
||||
return m_modified.test(i);
|
||||
}
|
||||
void process_powerup(vcobjptridx_t, powerup_type_t);
|
||||
void process_powerup(const object &, powerup_type_t);
|
||||
};
|
||||
|
||||
void update_item_state::process_powerup(const vcobjptridx_t o, const powerup_type_t id)
|
||||
void update_item_state::process_powerup(const object &o, const powerup_type_t id)
|
||||
{
|
||||
uint_fast32_t count;
|
||||
switch (id)
|
||||
|
@ -3232,20 +3232,20 @@ void update_item_state::process_powerup(const vcobjptridx_t o, const powerup_typ
|
|||
}
|
||||
if (!count)
|
||||
return;
|
||||
const auto &vc = Vclip[o->rtype.vclip_info.vclip_num];
|
||||
const auto &vc = Vclip[o.rtype.vclip_info.vclip_num];
|
||||
const auto vc_num_frames = vc.num_frames;
|
||||
const auto &&segp = vsegptridx(o->segnum);
|
||||
const auto &&segp = vsegptridx(o.segnum);
|
||||
const auto &seg_verts = segp->verts;
|
||||
for (uint_fast32_t i = count++; i; --i)
|
||||
{
|
||||
const auto no = obj_create(OBJ_POWERUP, id, segp, vm_vec_avg(o->pos, Vertices[seg_verts[i % seg_verts.size()]]), &vmd_identity_matrix, o->size, CT_POWERUP, MT_PHYSICS, RT_POWERUP);
|
||||
const auto &&no = obj_create(OBJ_POWERUP, id, segp, vm_vec_avg(o.pos, Vertices[seg_verts[i % seg_verts.size()]]), &vmd_identity_matrix, o.size, CT_POWERUP, MT_PHYSICS, RT_POWERUP);
|
||||
if (no == object_none)
|
||||
return;
|
||||
m_modified.set(no);
|
||||
no->mtype.phys_info = o->mtype.phys_info;
|
||||
no->rtype.vclip_info = o->rtype.vclip_info;
|
||||
no->rtype.vclip_info.framenum = (o->rtype.vclip_info.framenum + (i * vc_num_frames) / count) % vc_num_frames;
|
||||
no->ctype.powerup_info = o->ctype.powerup_info;
|
||||
no->mtype.phys_info = o.mtype.phys_info;
|
||||
no->rtype.vclip_info = o.rtype.vclip_info;
|
||||
no->rtype.vclip_info.framenum = (o.rtype.vclip_info.framenum + (i * vc_num_frames) / count) % vc_num_frames;
|
||||
no->ctype.powerup_info = o.ctype.powerup_info;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue