diff --git a/src/p_spec.c b/src/p_spec.c index ef0703c50f7e47aea1981d3c282ea07812689df8..35e6f4b4c92b03df2f912d22bab9dd1ca4f6bb01 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -1873,15 +1873,16 @@ boolean P_RunTriggerLinedef(line_t *triggerline, mobj_t *actor, sector_t *caller */ void P_LinedefExecute(INT16 tag, mobj_t *actor, sector_t *caller) { - size_t masterline; + INT32 masterline; CONS_Debug(DBG_GAMELOGIC, "P_LinedefExecute: Executing trigger linedefs of tag %d\n", tag); I_Assert(!actor || !P_MobjWasRemoved(actor)); // If actor is there, it must be valid. - for (masterline = 0; masterline < numlines; masterline++) + TAG_ITER_LINES(tag, masterline) { - if (Tag_FGet(&lines[masterline].tags) != tag) + if (lines[masterline].special < 300 + || lines[masterline].special > 399) continue; // "No More Enemies" and "Level Load" take care of themselves. @@ -1897,10 +1898,6 @@ void P_LinedefExecute(INT16 tag, mobj_t *actor, sector_t *caller) || lines[masterline].special == 335)// Dye - Each time continue; - if (lines[masterline].special < 300 - || lines[masterline].special > 399) - continue; - if (!P_RunTriggerLinedef(&lines[masterline], actor, caller)) return; // cancel P_LinedefExecute if function returns false }