Thing_StartTracking: Make it do something
Instead of using a linedef executor tag as an argument, apply an action special to the angle manager object that you had to place anyways. There is no UDMF version check because the old behavior was practically unusable.
This commit is contained in:
parent
eb4a7b3d14
commit
b538a68dc4
2 changed files with 3 additions and 11 deletions
|
|
@ -6539,12 +6539,8 @@ static void P_TracerAngleThink(mobj_t *mobj)
|
|||
if (!mobj->tracer)
|
||||
return;
|
||||
|
||||
if (!mobj->extravalue2)
|
||||
return;
|
||||
|
||||
// mobj->lastlook - Don't disable behavior after first failure
|
||||
// mobj->extravalue1 - Angle tolerance
|
||||
// mobj->extravalue2 - Exec tag upon failure
|
||||
// mobj->cvval - Allowable failure delay
|
||||
// mobj->cvmem - Failure timer
|
||||
|
||||
|
|
@ -6567,8 +6563,6 @@ static void P_TracerAngleThink(mobj_t *mobj)
|
|||
mobj->cvmem--;
|
||||
else
|
||||
{
|
||||
INT32 exectag = mobj->extravalue2; // remember this before we erase the values
|
||||
|
||||
if (mobj->lastlook)
|
||||
mobj->cvmem = mobj->cusval; // reset timer for next failure
|
||||
else
|
||||
|
|
@ -6578,7 +6572,7 @@ static void P_TracerAngleThink(mobj_t *mobj)
|
|||
mobj->lastlook = mobj->extravalue1 = mobj->extravalue2 = mobj->cvmem = mobj->cusval = 0;
|
||||
}
|
||||
|
||||
P_LinedefExecute(exectag, mobj, NULL);
|
||||
P_ActivateThingSpecial(mobj->tracer, mobj);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -3917,8 +3917,7 @@ boolean P_ProcessSpecial(activator_t *activator, INT16 special, INT32 *args, cha
|
|||
{
|
||||
INT32 failureangle = FixedAngle((min(max(abs(args[1]), 0), 360))*FRACUNIT);
|
||||
INT32 failuredelay = abs(args[2]);
|
||||
INT32 failureexectag = args[3];
|
||||
boolean persist = !!(args[4]);
|
||||
boolean persist = !!(args[3]);
|
||||
mobj_t *anchormo;
|
||||
|
||||
anchormo = P_FindObjectTypeFromTag(MT_ANGLEMAN, args[0]);
|
||||
|
|
@ -3929,7 +3928,6 @@ boolean P_ProcessSpecial(activator_t *activator, INT16 special, INT32 *args, cha
|
|||
P_SetTarget(&mo->tracer, anchormo);
|
||||
mo->lastlook = persist; // don't disable behavior after first failure
|
||||
mo->extravalue1 = failureangle; // angle to exceed for failure state
|
||||
mo->extravalue2 = failureexectag; // exec tag for failure state (angle is not within range)
|
||||
mo->cusval = mo->cvmem = failuredelay; // cusval = tics to allow failure before line trigger; cvmem = decrement timer
|
||||
}
|
||||
break;
|
||||
|
|
@ -3939,7 +3937,7 @@ boolean P_ProcessSpecial(activator_t *activator, INT16 special, INT32 *args, cha
|
|||
{
|
||||
mo->eflags &= ~MFE_TRACERANGLE;
|
||||
P_SetTarget(&mo->tracer, NULL);
|
||||
mo->lastlook = mo->cvmem = mo->cusval = mo->extravalue1 = mo->extravalue2 = 0;
|
||||
mo->lastlook = mo->cvmem = mo->cusval = mo->extravalue1 = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue