Remove presumably the remaining old tag references in the gamelogic.

This commit is contained in:
Nev3r 2020-04-17 22:26:04 +02:00
parent b5eaad42fc
commit 7904856e8e
6 changed files with 72 additions and 49 deletions

View File

@ -398,9 +398,10 @@ INT32 EV_DoCeiling(line_t *line, ceiling_e type)
INT32 secnum = -1;
sector_t *sec;
ceiling_t *ceiling;
mtag_t tag = Tag_FGet(&line->tags);
TAG_ITER_C
TAG_ITER_SECTORS(line->tag, secnum)
TAG_ITER_SECTORS(tag, secnum)
{
sec = &sectors[secnum];
@ -598,7 +599,7 @@ INT32 EV_DoCeiling(line_t *line, ceiling_e type)
}
ceiling->tag = sec->tag;
ceiling->tag = tag;
ceiling->type = type;
firstone = 0;
}
@ -619,9 +620,10 @@ INT32 EV_DoCrush(line_t *line, ceiling_e type)
INT32 secnum = -1;
sector_t *sec;
ceiling_t *ceiling;
mtag_t tag = Tag_FGet(&line->tags);
TAG_ITER_C
TAG_ITER_SECTORS(line->tag, secnum)
TAG_ITER_SECTORS(tag, secnum)
{
sec = &sectors[secnum];
@ -676,7 +678,7 @@ INT32 EV_DoCrush(line_t *line, ceiling_e type)
break;
}
ceiling->tag = sec->tag;
ceiling->tag = tag;
ceiling->type = type;
}
return rtn;

View File

@ -3865,11 +3865,15 @@ void A_BossDeath(mobj_t *mo)
else
{
// Bring the egg trap up to the surface
// Incredibly shitty code ahead
junk.tag = LE_CAPSULE0;
Tag_FSet(&junk.tags, LE_CAPSULE0);
EV_DoElevator(&junk, elevateHighest, false);
junk.tag = LE_CAPSULE1;
Tag_FSet(&junk.tags, LE_CAPSULE1);
EV_DoElevator(&junk, elevateUp, false);
junk.tag = LE_CAPSULE2;
Tag_FSet(&junk.tags, LE_CAPSULE2);
EV_DoElevator(&junk, elevateHighest, false);
if (mapheaderinfo[gamemap-1]->muspostbossname[0] &&
@ -3993,6 +3997,7 @@ bossjustdie:
case MT_KOOPA:
{
junk.tag = LE_KOOPA;
Tag_FSet(&junk.tags, LE_KOOPA);
EV_DoCeiling(&junk, raiseToHighest);
return;
}

View File

@ -687,6 +687,7 @@ void T_BounceCheese(levelspecthink_t *bouncer)
fixed_t floorheight;
sector_t *actionsector;
INT32 i;
mtag_t tag = Tag_FGet(&bouncer->sourceline->tags);
TAG_ITER_C
if (bouncer->sector->crumblestate == 4 || bouncer->sector->crumblestate == 1
@ -702,7 +703,7 @@ void T_BounceCheese(levelspecthink_t *bouncer)
}
// You can use multiple target sectors, but at your own risk!!!
TAG_ITER_SECTORS(bouncer->sourceline->tag, i)
TAG_ITER_SECTORS(tag, i)
{
actionsector = &sectors[i];
actionsector->moved = true;
@ -845,6 +846,7 @@ void T_StartCrumble(elevator_t *elevator)
ffloor_t *rover;
sector_t *sector;
INT32 i;
mtag_t tag = Tag_FGet(&elevator->sourceline->tags);
TAG_ITER_C
// Once done, the no-return thinker just sits there,
@ -875,7 +877,7 @@ void T_StartCrumble(elevator_t *elevator)
}
else if (++elevator->distance == 0) // Reposition back to original spot
{
TAG_ITER_SECTORS(elevator->sourceline->tag, i)
TAG_ITER_SECTORS(tag, i)
{
sector = &sectors[i];
@ -906,7 +908,7 @@ void T_StartCrumble(elevator_t *elevator)
// Flash to indicate that the platform is about to return.
if (elevator->distance > -224 && (leveltime % ((abs(elevator->distance)/8) + 1) == 0))
{
TAG_ITER_SECTORS(elevator->sourceline->tag, i)
TAG_ITER_SECTORS(tag, i)
{
sector = &sectors[i];
@ -1002,7 +1004,7 @@ void T_StartCrumble(elevator_t *elevator)
P_RemoveThinker(&elevator->thinker);
}
TAG_ITER_SECTORS(elevator->sourceline->tag, i)
TAG_ITER_SECTORS(tag, i)
{
sector = &sectors[i];
sector->moved = true;
@ -1456,9 +1458,10 @@ void T_NoEnemiesSector(levelspecthink_t *nobaddies)
msecnode_t *node;
mobj_t *thing;
boolean FOFsector = false;
mtag_t tag = Tag_FGet(&nobaddies->sourceline->tags);
TAG_ITER_C
TAG_ITER_SECTORS(nobaddies->sourceline->tag, secnum)
TAG_ITER_SECTORS(tag, secnum)
{
sec = &sectors[secnum];
@ -1468,6 +1471,7 @@ void T_NoEnemiesSector(levelspecthink_t *nobaddies)
for (i = 0; i < sec->linecount; i++)
{
INT32 targetsecnum = -1;
mtag_t tag2 = Tag_FGet(&sec->lines[i]->tags);
TAG_ITER_C
if (sec->lines[i]->special < 100 || sec->lines[i]->special >= 300)
@ -1475,7 +1479,7 @@ void T_NoEnemiesSector(levelspecthink_t *nobaddies)
FOFsector = true;
TAG_ITER_SECTORS(sec->lines[i]->tag, targetsecnum)
TAG_ITER_SECTORS(tag2, targetsecnum)
{
targetsec = &sectors[targetsecnum];
@ -1513,7 +1517,7 @@ void T_NoEnemiesSector(levelspecthink_t *nobaddies)
}
}
CONS_Debug(DBG_GAMELOGIC, "Running no-more-enemies exec with tag of %d\n", nobaddies->sourceline->tag);
CONS_Debug(DBG_GAMELOGIC, "Running no-more-enemies exec with tag of %d\n", tag);
// No enemies found, run the linedef exec and terminate this thinker
P_RunTriggerLinedef(nobaddies->sourceline, NULL, NULL);
@ -1601,6 +1605,7 @@ void T_EachTimeThinker(levelspecthink_t *eachtime)
fixed_t bottomheight, topheight;
msecnode_t *node;
ffloor_t *rover;
mtag_t tag = Tag_FGet(&eachtime->sourceline->tags);
TAG_ITER_C
for (i = 0; i < MAXPLAYERS; i++)
@ -1622,7 +1627,7 @@ void T_EachTimeThinker(levelspecthink_t *eachtime)
playersOnArea[i] = false;
}
TAG_ITER_SECTORS(eachtime->sourceline->tag, secnum)
TAG_ITER_SECTORS(tag, secnum)
{
sec = &sectors[secnum];
@ -1639,6 +1644,7 @@ void T_EachTimeThinker(levelspecthink_t *eachtime)
for (i = 0; i < sec->linecount; i++)
{
INT32 targetsecnum = -1;
mtag_t tag2 = Tag_FGet(&sec->lines[i]->tags);
TAG_ITER_C
if (sec->lines[i]->special < 100 || sec->lines[i]->special >= 300)
@ -1646,7 +1652,7 @@ void T_EachTimeThinker(levelspecthink_t *eachtime)
FOFsector = true;
TAG_ITER_SECTORS(sec->lines[i]->tag, targetsecnum)
TAG_ITER_SECTORS(tag2, targetsecnum)
{
targetsec = &sectors[targetsecnum];
@ -1828,7 +1834,7 @@ void T_EachTimeThinker(levelspecthink_t *eachtime)
}
}
CONS_Debug(DBG_GAMELOGIC, "Trying to activate each time executor with tag %d\n", eachtime->sourceline->tag);
CONS_Debug(DBG_GAMELOGIC, "Trying to activate each time executor with tag %d\n", tag);
// 03/08/14 -Monster Iestyn
// No more stupid hacks involving changing eachtime->sourceline's tag or special or whatever!
@ -1858,12 +1864,13 @@ void T_RaiseSector(levelspecthink_t *raise)
boolean playeronme = false, active = false;
fixed_t ceilingdestination, floordestination;
result_e res = 0;
mtag_t tag = Tag_FGet(&raise->sourceline->tags);
TAG_ITER_C
if (raise->sector->crumblestate >= 3 || raise->sector->ceilingdata)
return;
TAG_ITER_SECTORS(raise->sourceline->tag, i)
TAG_ITER_SECTORS(tag, i)
{
sector = &sectors[i];
@ -2056,7 +2063,7 @@ void T_RaiseSector(levelspecthink_t *raise)
raise->sector->ceilspeed = 42;
raise->sector->floorspeed = raise->vars[3]*raise->vars[8];
TAG_ITER_SECTORS(raise->sourceline->tag, i)
TAG_ITER_SECTORS(tag, i)
P_RecalcPrecipInSector(&sectors[i]);
}
@ -2173,9 +2180,10 @@ INT32 EV_DoFloor(line_t *line, floor_e floortype)
INT32 secnum = -1;
sector_t *sec;
floormove_t *dofloor;
mtag_t tag = Tag_FGet(&line->tags);
TAG_ITER_C
TAG_ITER_SECTORS(line->tag, secnum)
TAG_ITER_SECTORS(tag, secnum)
{
sec = &sectors[secnum];
@ -2393,10 +2401,11 @@ INT32 EV_DoElevator(line_t *line, elevator_e elevtype, boolean customspeed)
INT32 rtn = 0;
sector_t *sec;
elevator_t *elevator;
mtag_t tag = Tag_FGet(&line->tags);
TAG_ITER_C
// act on all sectors with the same tag as the triggering linedef
TAG_ITER_SECTORS(line->tag, secnum)
TAG_ITER_SECTORS(tag, secnum)
{
sec = &sectors[secnum];
@ -2519,6 +2528,7 @@ void EV_CrumbleChain(sector_t *sec, ffloor_t *rover)
INT16 flags;
sector_t *controlsec = rover->master->frontsector;
mtag_t tag = Tag_FGet(&controlsec->tags);
if (sec == NULL)
{
@ -2547,9 +2557,9 @@ void EV_CrumbleChain(sector_t *sec, ffloor_t *rover)
lifetime = 3*TICRATE;
flags = 0;
if (controlsec->tag != 0)
if (tag != 0)
{
INT32 tagline = Tag_FindLineSpecial(14, controlsec->tag);
INT32 tagline = Tag_FindLineSpecial(14, tag);
if (tagline != -1)
{
if (sides[lines[tagline].sidenum[0]].toptexture)
@ -2725,6 +2735,7 @@ INT32 EV_StartCrumble(sector_t *sec, ffloor_t *rover, boolean floating,
elevator_t *elevator;
sector_t *foundsec;
INT32 i;
mtag_t tag = Tag_FGet(&rover->master->tags);
TAG_ITER_C
// If floor is already activated, skip it
@ -2778,7 +2789,7 @@ INT32 EV_StartCrumble(sector_t *sec, ffloor_t *rover, boolean floating,
elevator->sector->crumblestate = 2;
TAG_ITER_SECTORS(elevator->sourceline->tag, i)
TAG_ITER_SECTORS(tag, i)
{
foundsec = &sectors[i];
@ -2822,7 +2833,7 @@ INT32 EV_MarioBlock(ffloor_t *rover, sector_t *sector, mobj_t *puncher)
// Set up the fields
block->sector = roversec;
block->vars[0] = sector->tag; // actionsector
block->vars[0] = Tag_FGet(&sector->tags); // actionsector
block->vars[1] = 4*FRACUNIT; // speed
block->vars[2] = 1; // Up // direction
block->vars[3] = block->sector->floorheight; // floorwasheight

View File

@ -1377,6 +1377,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
return;
junk.tag = LE_AXE;
Tag_FSet(&junk.tags, LE_AXE);
EV_DoElevator(&junk, bridgeFall, false);
// scan the remaining thinkers to find koopa

View File

@ -3548,16 +3548,19 @@ static boolean P_CameraCheckHeat(camera_t *thiscam)
{
sector_t *sector;
fixed_t halfheight = thiscam->z + (thiscam->height >> 1);
size_t i;
// see if we are in water
sector = thiscam->subsector->sector;
if (Tag_FindLineSpecial(13, sector->tag) != -1)
return true;
for (i = 0; i < sector->tags.count; i++)
if (Tag_FindLineSpecial(13, sector->tags.tags[i]) != -1)
return true;
if (sector->ffloors)
{
ffloor_t *rover;
size_t j;
for (rover = sector->ffloors; rover; rover = rover->next)
{
@ -3573,7 +3576,8 @@ static boolean P_CameraCheckHeat(camera_t *thiscam)
*rover->bottomheight))
continue;
if (Tag_FindLineSpecial(13, rover->master->frontsector->tag) != -1)
for (j = 0; j < rover->master->frontsector->tags.count; j++)
if (Tag_FindLineSpecial(13, rover->master->frontsector->tags.tags[j]) != -1)
return true;
}
}

View File

@ -1000,7 +1000,7 @@ static boolean PolyDoor(line_t *line)
{
polydoordata_t pdd;
pdd.polyObjNum = line->tag; // polyobject id
pdd.polyObjNum = Tag_FGet(&line->tags); // polyobject id
switch(line->special)
{
@ -1041,7 +1041,7 @@ static boolean PolyMove(line_t *line)
{
polymovedata_t pmd;
pmd.polyObjNum = line->tag;
pmd.polyObjNum = Tag_FGet(&line->tags);
pmd.speed = sides[line->sidenum[0]].textureoffset / 8;
pmd.angle = R_PointToAngle2(line->v1->x, line->v1->y, line->v2->x, line->v2->y);
pmd.distance = sides[line->sidenum[0]].rowoffset;
@ -1059,7 +1059,7 @@ static boolean PolyMove(line_t *line)
//
static void PolyInvisible(line_t *line)
{
INT32 polyObjNum = line->tag;
INT32 polyObjNum = Tag_FGet(&line->tags);
polyobj_t *po;
if (!(po = Polyobj_GetForNum(polyObjNum)))
@ -1087,7 +1087,7 @@ static void PolyInvisible(line_t *line)
//
static void PolyVisible(line_t *line)
{
INT32 polyObjNum = line->tag;
INT32 polyObjNum = Tag_FGet(&line->tags);
polyobj_t *po;
if (!(po = Polyobj_GetForNum(polyObjNum)))
@ -1115,7 +1115,7 @@ static void PolyVisible(line_t *line)
//
static void PolyTranslucency(line_t *line)
{
INT32 polyObjNum = line->tag;
INT32 polyObjNum = Tag_FGet(&line->tags);
polyobj_t *po;
if (!(po = Polyobj_GetForNum(polyObjNum)))
@ -1156,7 +1156,7 @@ static void PolyTranslucency(line_t *line)
//
static boolean PolyFade(line_t *line)
{
INT32 polyObjNum = line->tag;
INT32 polyObjNum = Tag_FGet(&line->tags);
polyobj_t *po;
polyfadedata_t pfd;
@ -1227,7 +1227,7 @@ static boolean PolyWaypoint(line_t *line)
{
polywaypointdata_t pwd;
pwd.polyObjNum = line->tag;
pwd.polyObjNum = Tag_FGet(&line->tags);
pwd.speed = sides[line->sidenum[0]].textureoffset / 8;
pwd.sequence = sides[line->sidenum[0]].rowoffset >> FRACBITS; // Sequence #
pwd.reverse = (line->flags & ML_EFFECT1) == ML_EFFECT1; // Reverse?
@ -1247,7 +1247,7 @@ static boolean PolyRotate(line_t *line)
{
polyrotdata_t prd;
prd.polyObjNum = line->tag;
prd.polyObjNum = Tag_FGet(&line->tags);
prd.speed = sides[line->sidenum[0]].textureoffset >> FRACBITS; // angular speed
prd.distance = sides[line->sidenum[0]].rowoffset >> FRACBITS; // angular distance
@ -1276,7 +1276,7 @@ static boolean PolyDisplace(line_t *line)
{
polydisplacedata_t pdd;
pdd.polyObjNum = line->tag;
pdd.polyObjNum = Tag_FGet(&line->tags);
pdd.controlSector = line->frontsector;
pdd.dx = line->dx>>8;
@ -1293,7 +1293,7 @@ static boolean PolyRotDisplace(line_t *line)
polyrotdisplacedata_t pdd;
fixed_t anginter, distinter;
pdd.polyObjNum = line->tag;
pdd.polyObjNum = Tag_FGet(&line->tags);
pdd.controlSector = line->frontsector;
// Rotate 'anginter' interval for each 'distinter' interval from the control sector.
@ -2412,12 +2412,12 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
// (formerly "Change calling sectors' tag", but behavior was changed)
{
TAG_ITER_SECTORS(tag, secnum)
P_ChangeSectorTag(secnum,(INT16)(sides[line->sidenum[0]].textureoffset>>FRACBITS));
Tag_SectorFSet(secnum,(INT16)(sides[line->sidenum[0]].textureoffset>>FRACBITS));
break;
}
case 410: // Change front sector's tag
P_ChangeSectorTag((UINT32)(line->frontsector - sectors), (INT16)(sides[line->sidenum[0]].textureoffset>>FRACBITS));
Tag_SectorFSet((UINT32)(line->frontsector - sectors), (INT16)(sides[line->sidenum[0]].textureoffset>>FRACBITS));
break;
case 411: // Stop floor/ceiling movement in tagged sector(s)
@ -2626,7 +2626,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
if (!camobj)
continue;
if (foundit || (camobj->subsector->sector->tag == tag))
if (foundit || Tag_Find(&camobj->subsector->sector->tags, tag))
{
foundit = true;
break;
@ -2635,7 +2635,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
// Only trigger if mobj is touching the tag
for(rover = camobj->subsector->sector->ffloors; rover; rover = rover->next)
{
if (rover->master->frontsector->tag != tag)
if (!Tag_Find(&rover->master->frontsector->tags, tag))
continue;
if (camobj->z > P_GetSpecialTopZ(camobj, sectors + rover->secnum, camobj->subsector->sector))
@ -3092,7 +3092,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
for (rover = sec->ffloors; rover; rover = rover->next)
{
if (rover->master->frontsector->tag == foftag)
if (Tag_Find(&rover->master->frontsector->tags, foftag))
{
foundrover = true;
@ -3277,7 +3277,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
for (rover = sec->ffloors; rover; rover = rover->next)
{
if (rover->master->frontsector->tag == foftag)
if (Tag_Find(&rover->master->frontsector->tags, foftag))
{
foundrover = true;
@ -3335,7 +3335,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
for (rover = sec->ffloors; rover; rover = rover->next)
{
if (rover->master->frontsector->tag == foftag)
if (Tag_Find(&rover->master->frontsector->tags, foftag))
{
foundrover = true;
@ -3520,7 +3520,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
for (rover = sec->ffloors; rover; rover = rover->next)
{
if (rover->master->frontsector->tag == foftag)
if (Tag_Find(&rover->master->frontsector->tags, foftag))
{
foundrover = true;
@ -3584,7 +3584,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
for (rover = sec->ffloors; rover; rover = rover->next)
{
if (rover->master->frontsector->tag == foftag)
if (Tag_Find(&rover->master->frontsector->tags, foftag))
{
foundrover = true;
@ -3669,7 +3669,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
for (rover = sec->ffloors; rover; rover = rover->next)
{
if (rover->master->frontsector->tag == foftag)
if (Tag_Find(&rover->master->frontsector->tags, foftag))
{
foundrover = true;
@ -5774,7 +5774,7 @@ static ffloor_t *P_AddFakeFloor(sector_t *sec, sector_t *sec2, line_t *master, f
if ((flags & FF_FLOATBOB))
{
P_AddFloatThinker(sec2, sec->tag, master);
P_AddFloatThinker(sec2, Tag_FGet(&master->tags), master);
CheckForFloatBob = true;
}
@ -6011,7 +6011,7 @@ static inline void P_AddThwompThinker(sector_t *sec, sector_t *actionsector, lin
// set up the fields according to the type of elevator action
thwomp->sector = sec;
thwomp->vars[0] = actionsector->tag;
thwomp->vars[0] = Tag_FGet(&sourceline->tags);
thwomp->floorwasheight = thwomp->sector->floorheight;
thwomp->ceilingwasheight = thwomp->sector->ceilingheight;
thwomp->direction = 0;
@ -6572,11 +6572,11 @@ void P_SpawnSpecials(boolean fromnetsave)
Add_MasterDisappearer(abs(lines[i].dx>>FRACBITS), abs(lines[i].dy>>FRACBITS), abs(sides[lines[i].sidenum[0]].sector->floorheight>>FRACBITS), (INT32)(sectors[s].lines[j]-lines), (INT32)i);
} else // Find FOFs by effect sector tag
{
TAG_ITER_LINES((lines + i)->tag, s)
TAG_ITER_LINES(tag, s)
{
if ((size_t)s == i)
continue;
if (sides[lines[s].sidenum[0]].sector->tag == sides[lines[i].sidenum[0]].sector->tag)
if (Tag_Find(&sides[lines[s].sidenum[0]].sector->tags, Tag_FGet(&sides[lines[i].sidenum[0]].sector->tags)))
Add_MasterDisappearer(abs(lines[i].dx>>FRACBITS), abs(lines[i].dy>>FRACBITS), abs(sides[lines[i].sidenum[0]].sector->floorheight>>FRACBITS), s, (INT32)i);
}
}