Add Obj_EmeraldCanHUDTrack to handle MT_EMERALD being used for Hyudoro orbiting

This commit is contained in:
James R. 2023-09-18 04:21:10 -07:00
parent de84a5e879
commit 543fd03b11
3 changed files with 13 additions and 2 deletions

View file

@ -448,8 +448,8 @@ bool is_object_tracking_target(const mobj_t* mobj)
return inDuel == false && battleovertime.enabled;
case MT_EMERALD:
// extravalue1: emerald flag must be set
return mobj->extravalue1 && ((specialstageinfo.valid && specialstageinfo.ufo) || is_player_tracking_target());
return Obj_EmeraldCanHUDTrack(mobj) &&
((specialstageinfo.valid && specialstageinfo.ufo) || is_player_tracking_target());
case MT_MONITOR:
return is_player_tracking_target() && Obj_MonitorGetEmerald(mobj) != 0;

View file

@ -215,6 +215,7 @@ void Obj_EmeraldFlareThink(mobj_t *flare);
void Obj_BeginEmeraldOrbit(mobj_t *emerald, mobj_t *target, fixed_t radius, INT32 revolution_time, tic_t fuse);
void Obj_GiveEmerald(mobj_t *emerald);
void Obj_SetEmeraldAwardee(mobj_t *emerald, mobj_t *awardee);
boolean Obj_EmeraldCanHUDTrack(const mobj_t *emerald);
/* Fake Shadow */
mobj_t *Obj_SpawnFakeShadow(mobj_t *from);

View file

@ -354,3 +354,13 @@ void Obj_SetEmeraldAwardee(mobj_t *emerald, mobj_t *awardee)
{
P_SetTarget(&emerald_award(emerald), awardee);
}
boolean Obj_EmeraldCanHUDTrack(const mobj_t *emerald)
{
if (!P_MobjWasRemoved(emerald_award(emerald)) && emerald_award(emerald)->type == MT_ITEMCAPSULE)
{
return false;
}
return true;
}