diff --git a/src/p_spec.c b/src/p_spec.c index 4c6d1d407..ce89a6887 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -7502,12 +7502,12 @@ void P_SpawnSpecials(boolean fromnetsave) */ static void P_AddFakeFloorsByLine(size_t line, ffloortype_e ffloorflags, thinkerlist_t *secthinkers) { + TAG_ITER_C INT32 s; size_t sec = sides[*lines[line].sidenum].sector-sectors; line_t* li = lines + line; TAG_ITER_SECTORS(li->tag, s) P_AddFakeFloor(§ors[s], §ors[sec], li, ffloorflags, secthinkers); - TAG_ITER_END } /* diff --git a/src/taglist.h b/src/taglist.h index 3fe24fdcb..7572b8042 100644 --- a/src/taglist.h +++ b/src/taglist.h @@ -29,25 +29,14 @@ void Taglist_AddToLines (const size_t tag, const size_t itemid); void Taglist_AddToMapthings (const size_t tag, const size_t itemid); #endif //__R_TAGLIST__ -#define TAG_ITER_SECTORS(tag, sc)\ -if(tags_sectors[tag])\ -{ size_t kk;\ - for(kk = 0, sc = tags_sectors[tag]->elements[0];\ - kk < tags_sectors[tag]->count;\ - sc = tags_sectors[tag]->elements[++kk]) +#define TAG_ITER_C size_t kkkk; -#define TAG_ITER_LINES(tag, li)\ -if(tags_lines[tag])\ -{ size_t kk;\ - for(kk = 0, li = tags_lines[tag]->elements[0];\ - kk < tags_lines[tag]->count;\ - li = tags_lines[tag]->elements[++kk]) +#define TAG_ITER(group, tag, id)\ +if (group[tag])\ + for(id = group[tag]->elements[kkkk = 0] = 0;\ + kkkk < group[tag]->count;\ + id = group[tag]->elements[++kkkk]) -#define TAG_ITER_THINGS(tag, mt)\ -if(tags_mapthings[tag])\ -{ size_t kk;\ - for(kk = 0, mt = tags_mapthings[tag]->elements[0];\ - kk < tags_mapthings[tag]->count;\ - mt = tags_mapthings[tag]->elements[++kk]) - -#define TAG_ITER_END } +#define TAG_ITER_SECTORS(tag, id) TAG_ITER(tags_sectors, tag, id) +#define TAG_ITER_LINES(tag, id) TAG_ITER(tags_lines, tag, id) +#define TAG_ITER_THINGS(tag, id) TAG_ITER(tags_mapthings, tag, id)