diff --git a/src/p_enemy.c b/src/p_enemy.c index d5da92e38d65fd2d9b4af50141a28893e5c41af9..09274b5a80de2fa6185eb4113dac01ba332cc5f5 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -7597,48 +7597,35 @@ void A_SetTargetsTarget(mobj_t *actor) { INT32 locvar1 = var1; INT32 locvar2 = var2; - mobj_t *targetedmobj = NULL; - thinker_t *th; - mobj_t *mo2; + mobj_t *oldtarg = NULL, *newtarg = NULL; #ifdef HAVE_BLUA if (LUA_CallAction("A_SetTargetsTarget", actor)) return; #endif - if ((!locvar1 && (!actor->target)) || (locvar1 && (!actor->tracer))) - return; - - if ((!locvar1 && !locvar2 && (!actor->target->target)) - || (!locvar1 && locvar2 && (!actor->target->tracer)) - || (locvar1 && !locvar2 && (!actor->tracer->target)) - || (locvar1 && locvar2 && (!actor->tracer->tracer))) - return; // Don't search for nothing. - - // scan the thinkers - for (th = thinkercap.next; th != &thinkercap; th = th->next) - { - if (th->function.acp1 != (actionf_p1)P_MobjThinker) - continue; + // actor's target + if (locvar1) // or tracer + oldtarg = actor->tracer; + else + oldtarg = actor->target; - mo2 = (mobj_t *)th; + if (P_MobjWasRemoved(oldtarg)) + return; - if ((!locvar1 && !locvar2 && (mo2 == actor->target->target)) - || (!locvar1 && locvar2 && (mo2 == actor->target->tracer)) - || (locvar1 && !locvar2 && (mo2 == actor->tracer->target)) - || (locvar1 && locvar2 && (mo2 == actor->tracer->tracer))) - { - targetedmobj = mo2; - break; - } - } + // actor's target's target! + if (locvar2) // or tracer + newtarg = oldtarg->tracer; + else + newtarg = oldtarg->target; - if (!targetedmobj) - return; // Oops, nothing found.. + if (P_MobjWasRemoved(newtarg)) + return; - if (!locvar1) - P_SetTarget(&actor->target, targetedmobj); + // set actor's new target + if (locvar1) // or tracer + P_SetTarget(&actor->tracer, newtarg); else - P_SetTarget(&actor->tracer, targetedmobj); + P_SetTarget(&actor->target, newtarg); } // Function: A_SetObjectFlags diff --git a/src/p_slopes.c b/src/p_slopes.c index 755939039303d1015e65429da3e320bad973ba76..2d55cf19451f25458f61fa5c01c9608e7f13e3b0 100644 --- a/src/p_slopes.c +++ b/src/p_slopes.c @@ -46,14 +46,14 @@ static pslope_t *slopelist = NULL; static UINT16 slopecount = 0; // Calculate line normal -void P_CalculateSlopeNormal(pslope_t *slope) { +static void P_CalculateSlopeNormal(pslope_t *slope) { slope->normal.z = FINECOSINE(slope->zangle>>ANGLETOFINESHIFT); slope->normal.x = -FixedMul(FINESINE(slope->zangle>>ANGLETOFINESHIFT), slope->d.x); slope->normal.y = -FixedMul(FINESINE(slope->zangle>>ANGLETOFINESHIFT), slope->d.y); } // With a vertex slope that has its vertices set, configure relevant slope info -void P_ReconfigureVertexSlope(pslope_t *slope) +static void P_ReconfigureVertexSlope(pslope_t *slope) { vector3_t vec1, vec2; @@ -543,7 +543,7 @@ void P_SpawnSlope_Line(int linenum) // // Creates a new slope from three vertices with the specified IDs // -pslope_t *P_NewVertexSlope(INT16 tag1, INT16 tag2, INT16 tag3, UINT8 flags) +static pslope_t *P_NewVertexSlope(INT16 tag1, INT16 tag2, INT16 tag3, UINT8 flags) { size_t i; mapthing_t *mt = mapthings;