Move powerup size reset into set_powerup_id

This commit is contained in:
Kp 2015-03-28 17:18:02 +00:00
parent ccc440df57
commit b32d1c76c9
5 changed files with 10 additions and 18 deletions

View file

@ -472,10 +472,7 @@ static inline void set_player_id(const vobjptr_t o, ubyte id)
o->id = id;
}
static inline void set_powerup_id(const vobjptr_t o, ubyte id)
{
o->id = id;
}
void set_powerup_id(vobjptr_t o, uint8_t id);
static inline void set_robot_id(const vobjptr_t o, ubyte id)
{

View file

@ -257,7 +257,7 @@ static void verify_object(const vobjptr_t obj)
if ( obj->type == OBJ_POWERUP ) {
if ( get_powerup_id(obj) >= N_powerup_types ) {
set_powerup_id(obj, 0);
set_powerup_id(obj, POW_SHIELD_BOOST);
Assert( obj->render_type != RT_POLYOBJ );
}
obj->control_type = CT_POWERUP;

View file

@ -1605,9 +1605,6 @@ void (bash_to_shield)(const vobjptr_t i)
enum powerup_type_t type = (enum powerup_type_t) get_powerup_id(i);
PowerupsInMine[type]=MaxPowerupsAllowed[type]=0;
set_powerup_id(i, POW_SHIELD_BOOST);
i->size = Powerup_info[get_powerup_id(i)].size;
i->rtype.vclip_info.vclip_num = Powerup_info[get_powerup_id(i)].vclip_num;
i->rtype.vclip_info.frametime = Vclip[i->rtype.vclip_info.vclip_num].frame_time;
}

View file

@ -3254,14 +3254,10 @@ void multi_prep_level(void)
if (!inv_remaining)
{
set_powerup_id(o, POW_SHIELD_BOOST);
o->rtype.vclip_info.vclip_num = Powerup_info[get_powerup_id(o)].vclip_num;
o->rtype.vclip_info.frametime = Vclip[o->rtype.vclip_info.vclip_num].frame_time;
}
else
{
set_powerup_id(o, POW_INVULNERABILITY);
o->rtype.vclip_info.vclip_num = Powerup_info[get_powerup_id(o)].vclip_num;
o->rtype.vclip_info.frametime = Vclip[o->rtype.vclip_info.vclip_num].frame_time;
}
}
@ -3270,16 +3266,12 @@ void multi_prep_level(void)
if ((get_powerup_id(o) >= POW_KEY_BLUE) && (get_powerup_id(o) <= POW_KEY_GOLD))
{
set_powerup_id(o, POW_SHIELD_BOOST);
o->rtype.vclip_info.vclip_num = Powerup_info[get_powerup_id(o)].vclip_num;
o->rtype.vclip_info.frametime = Vclip[o->rtype.vclip_info.vclip_num].frame_time;
}
if (get_powerup_id(o) == POW_INVULNERABILITY) {
if (!inv_remaining)
{
set_powerup_id(o, POW_SHIELD_BOOST);
o->rtype.vclip_info.vclip_num = Powerup_info[get_powerup_id(o)].vclip_num;
o->rtype.vclip_info.frametime = Vclip[o->rtype.vclip_info.vclip_num].frame_time;
} else
-- inv_remaining;
}
@ -3288,8 +3280,6 @@ void multi_prep_level(void)
if (!cloak_remaining)
{
set_powerup_id(o, POW_SHIELD_BOOST);
o->rtype.vclip_info.vclip_num = Powerup_info[get_powerup_id(o)].vclip_num;
o->rtype.vclip_info.frametime = Vclip[o->rtype.vclip_info.vclip_num].frame_time;
} else
-- cloak_remaining;
}

View file

@ -1923,6 +1923,14 @@ int update_object_seg(const vobjptridx_t obj)
return 1;
}
void set_powerup_id(const vobjptr_t o, uint8_t id)
{
o->id = id;
o->size = Powerup_info[id].size;
const auto vclip_num = Powerup_info[id].vclip_num;
o->rtype.vclip_info.vclip_num = vclip_num;
o->rtype.vclip_info.frametime = Vclip[vclip_num].frame_time;
}
//go through all objects and make sure they have the correct segment numbers
void fix_object_segs()