mirror of
https://github.com/ZDoom/gzdoom.git
synced 2025-02-22 12:01:13 +00:00
- 50 more simple replacements of 'level'
This commit is contained in:
parent
8c542e9be8
commit
06ba8c4c00
9 changed files with 50 additions and 46 deletions
|
@ -509,27 +509,27 @@ inline FSectorPortal *line_t::GetTransferredPortal()
|
||||||
|
|
||||||
inline FSectorPortal *sector_t::GetPortal(int plane)
|
inline FSectorPortal *sector_t::GetPortal(int plane)
|
||||||
{
|
{
|
||||||
return &level.sectorPortals[Portals[plane]];
|
return &Level->sectorPortals[Portals[plane]];
|
||||||
}
|
}
|
||||||
|
|
||||||
inline double sector_t::GetPortalPlaneZ(int plane)
|
inline double sector_t::GetPortalPlaneZ(int plane)
|
||||||
{
|
{
|
||||||
return level.sectorPortals[Portals[plane]].mPlaneZ;
|
return Level->sectorPortals[Portals[plane]].mPlaneZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline DVector2 sector_t::GetPortalDisplacement(int plane)
|
inline DVector2 sector_t::GetPortalDisplacement(int plane)
|
||||||
{
|
{
|
||||||
return level.sectorPortals[Portals[plane]].mDisplacement;
|
return Level->sectorPortals[Portals[plane]].mDisplacement;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int sector_t::GetPortalType(int plane)
|
inline int sector_t::GetPortalType(int plane)
|
||||||
{
|
{
|
||||||
return level.sectorPortals[Portals[plane]].mType;
|
return Level->sectorPortals[Portals[plane]].mType;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int sector_t::GetOppositePortalGroup(int plane)
|
inline int sector_t::GetOppositePortalGroup(int plane)
|
||||||
{
|
{
|
||||||
return level.sectorPortals[Portals[plane]].mDestination->PortalGroup;
|
return Level->sectorPortals[Portals[plane]].mDestination->PortalGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool sector_t::PortalBlocksView(int plane)
|
inline bool sector_t::PortalBlocksView(int plane)
|
||||||
|
|
|
@ -119,15 +119,16 @@ void P_Attach3dMidtexLinesToSector(sector_t *sector, int lineid, int tag, bool c
|
||||||
// invalid set of parameters
|
// invalid set of parameters
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
auto Level = sector->Level;
|
||||||
|
|
||||||
extsector_t::midtex::plane &scrollplane = ceiling? sector->e->Midtex.Ceiling : sector->e->Midtex.Floor;
|
extsector_t::midtex::plane &scrollplane = ceiling? sector->e->Midtex.Ceiling : sector->e->Midtex.Floor;
|
||||||
|
|
||||||
// Bit arrays that mark whether a line or sector is to be attached.
|
// Bit arrays that mark whether a line or sector is to be attached.
|
||||||
uint8_t *found_lines = new uint8_t[(level.lines.Size()+7)/8];
|
uint8_t *found_lines = new uint8_t[(Level->lines.Size()+7)/8];
|
||||||
uint8_t *found_sectors = new uint8_t[(level.sectors.Size()+7)/8];
|
uint8_t *found_sectors = new uint8_t[(Level->sectors.Size()+7)/8];
|
||||||
|
|
||||||
memset(found_lines, 0, sizeof (uint8_t) * ((level.lines.Size()+7)/8));
|
memset(found_lines, 0, sizeof (uint8_t) * ((Level->lines.Size()+7)/8));
|
||||||
memset(found_sectors, 0, sizeof (uint8_t) * ((level.sectors.Size()+7)/8));
|
memset(found_sectors, 0, sizeof (uint8_t) * ((Level->sectors.Size()+7)/8));
|
||||||
|
|
||||||
// mark all lines and sectors that are already attached to this one
|
// mark all lines and sectors that are already attached to this one
|
||||||
// and clear the arrays. The old data will be re-added automatically
|
// and clear the arrays. The old data will be re-added automatically
|
||||||
|
@ -149,11 +150,11 @@ void P_Attach3dMidtexLinesToSector(sector_t *sector, int lineid, int tag, bool c
|
||||||
|
|
||||||
if (tag == 0)
|
if (tag == 0)
|
||||||
{
|
{
|
||||||
auto itr = level.GetLineIdIterator(lineid);
|
auto itr = Level->GetLineIdIterator(lineid);
|
||||||
int line;
|
int line;
|
||||||
while ((line = itr.Next()) >= 0)
|
while ((line = itr.Next()) >= 0)
|
||||||
{
|
{
|
||||||
line_t *ln = &level.lines[line];
|
line_t *ln = &Level->lines[line];
|
||||||
|
|
||||||
if (ln->frontsector == NULL || ln->backsector == NULL || !(ln->flags & ML_3DMIDTEX))
|
if (ln->frontsector == NULL || ln->backsector == NULL || !(ln->flags & ML_3DMIDTEX))
|
||||||
{
|
{
|
||||||
|
@ -165,13 +166,13 @@ void P_Attach3dMidtexLinesToSector(sector_t *sector, int lineid, int tag, bool c
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
auto it = level.GetSectorTagIterator(tag);
|
auto it = Level->GetSectorTagIterator(tag);
|
||||||
int sec;
|
int sec;
|
||||||
while ((sec = it.Next()) >= 0)
|
while ((sec = it.Next()) >= 0)
|
||||||
{
|
{
|
||||||
for (auto ln : level.sectors[sec].Lines)
|
for (auto ln : Level->sectors[sec].Lines)
|
||||||
{
|
{
|
||||||
if (lineid != 0 && !level.LineHasId(ln, lineid)) continue;
|
if (lineid != 0 && !Level->LineHasId(ln, lineid)) continue;
|
||||||
|
|
||||||
if (ln->frontsector == NULL || ln->backsector == NULL || !(ln->flags & ML_3DMIDTEX))
|
if (ln->frontsector == NULL || ln->backsector == NULL || !(ln->flags & ML_3DMIDTEX))
|
||||||
{
|
{
|
||||||
|
@ -185,28 +186,28 @@ void P_Attach3dMidtexLinesToSector(sector_t *sector, int lineid, int tag, bool c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for(unsigned i=0; i < level.lines.Size(); i++)
|
for(unsigned i=0; i < Level->lines.Size(); i++)
|
||||||
{
|
{
|
||||||
if (found_lines[i>>3] & (1 << (i&7)))
|
if (found_lines[i>>3] & (1 << (i&7)))
|
||||||
{
|
{
|
||||||
auto &line = level.lines[i];
|
auto &line = Level->lines[i];
|
||||||
scrollplane.AttachedLines.Push(&line);
|
scrollplane.AttachedLines.Push(&line);
|
||||||
|
|
||||||
v = line.frontsector->Index();
|
v = line.frontsector->Index();
|
||||||
assert(v < (int)level.sectors.Size());
|
assert(v < (int)Level->sectors.Size());
|
||||||
found_sectors[v>>3] |= 1 << (v&7);
|
found_sectors[v>>3] |= 1 << (v&7);
|
||||||
|
|
||||||
v = line.backsector->Index();
|
v = line.backsector->Index();
|
||||||
assert(v < (int)level.sectors.Size());
|
assert(v < (int)Level->sectors.Size());
|
||||||
found_sectors[v>>3] |= 1 << (v&7);
|
found_sectors[v>>3] |= 1 << (v&7);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned i=0; i < level.sectors.Size(); i++)
|
for (unsigned i=0; i < Level->sectors.Size(); i++)
|
||||||
{
|
{
|
||||||
if (found_sectors[i>>3] & (1 << (i&7)))
|
if (found_sectors[i>>3] & (1 << (i&7)))
|
||||||
{
|
{
|
||||||
scrollplane.AttachedSectors.Push(&level.sectors[i]);
|
scrollplane.AttachedSectors.Push(&Level->sectors[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -132,7 +132,7 @@ void DDoor::Tick ()
|
||||||
// killough 10/98: implement gradual lighting effects
|
// killough 10/98: implement gradual lighting effects
|
||||||
if (m_LightTag != 0 && m_TopDist != -m_Sector->floorplane.fD())
|
if (m_LightTag != 0 && m_TopDist != -m_Sector->floorplane.fD())
|
||||||
{
|
{
|
||||||
level.EV_LightTurnOnPartway (m_LightTag,
|
Level->EV_LightTurnOnPartway (m_LightTag,
|
||||||
(m_Sector->ceilingplane.fD() + m_Sector->floorplane.fD()) / (m_TopDist + m_Sector->floorplane.fD()));
|
(m_Sector->ceilingplane.fD() + m_Sector->floorplane.fD()) / (m_TopDist + m_Sector->floorplane.fD()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ void DDoor::Tick ()
|
||||||
// killough 10/98: implement gradual lighting effects
|
// killough 10/98: implement gradual lighting effects
|
||||||
if (m_LightTag != 0 && m_TopDist != -m_Sector->floorplane.fD())
|
if (m_LightTag != 0 && m_TopDist != -m_Sector->floorplane.fD())
|
||||||
{
|
{
|
||||||
level.EV_LightTurnOnPartway (m_LightTag,
|
Level->EV_LightTurnOnPartway (m_LightTag,
|
||||||
(m_Sector->ceilingplane.fD() + m_Sector->floorplane.fD()) / (m_TopDist + m_Sector->floorplane.fD()));
|
(m_Sector->ceilingplane.fD() + m_Sector->floorplane.fD()) / (m_TopDist + m_Sector->floorplane.fD()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -352,7 +352,7 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
||||||
// [JM] Fire KILL type scripts for actor. Not needed for players, since they have the "DEATH" script type.
|
// [JM] Fire KILL type scripts for actor. Not needed for players, since they have the "DEATH" script type.
|
||||||
if (!player && !(flags7 & MF7_NOKILLSCRIPTS) && ((flags7 & MF7_USEKILLSCRIPTS) || gameinfo.forcekillscripts))
|
if (!player && !(flags7 & MF7_NOKILLSCRIPTS) && ((flags7 & MF7_USEKILLSCRIPTS) || gameinfo.forcekillscripts))
|
||||||
{
|
{
|
||||||
level.Behaviors.StartTypedScripts(SCRIPT_Kill, this, true, 0, true);
|
Level->Behaviors.StartTypedScripts(SCRIPT_Kill, this, true, 0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
flags &= ~(MF_SHOOTABLE|MF_FLOAT|MF_SKULLFLY);
|
flags &= ~(MF_SHOOTABLE|MF_FLOAT|MF_SKULLFLY);
|
||||||
|
@ -387,7 +387,7 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CountsAsKill())
|
if (CountsAsKill())
|
||||||
level.killed_monsters++;
|
Level->killed_monsters++;
|
||||||
|
|
||||||
if (source && source->player)
|
if (source && source->player)
|
||||||
{
|
{
|
||||||
|
@ -399,7 +399,7 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
||||||
// Don't count any frags at level start, because they're just telefrags
|
// Don't count any frags at level start, because they're just telefrags
|
||||||
// resulting from insufficient deathmatch starts, and it wouldn't be
|
// resulting from insufficient deathmatch starts, and it wouldn't be
|
||||||
// fair to count them toward a player's score.
|
// fair to count them toward a player's score.
|
||||||
if (player && level.maptime)
|
if (player && Level->maptime)
|
||||||
{
|
{
|
||||||
source->player->frags[player - players]++;
|
source->player->frags[player - players]++;
|
||||||
if (player == source->player) // [RH] Cumulative frag count
|
if (player == source->player) // [RH] Cumulative frag count
|
||||||
|
@ -492,7 +492,7 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
||||||
source->player->multicount++;
|
source->player->multicount++;
|
||||||
if (source->player->lastkilltime > 0)
|
if (source->player->lastkilltime > 0)
|
||||||
{
|
{
|
||||||
if (source->player->lastkilltime < level.time - 3*TICRATE)
|
if (source->player->lastkilltime < Level->time - 3*TICRATE)
|
||||||
{
|
{
|
||||||
source->player->multicount = 1;
|
source->player->multicount = 1;
|
||||||
}
|
}
|
||||||
|
@ -535,7 +535,7 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
source->player->lastkilltime = level.time;
|
source->player->lastkilltime = Level->time;
|
||||||
}
|
}
|
||||||
|
|
||||||
// [RH] Implement fraglimit
|
// [RH] Implement fraglimit
|
||||||
|
@ -563,10 +563,10 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
||||||
E_PlayerDied(int(player - players));
|
E_PlayerDied(int(player - players));
|
||||||
|
|
||||||
// Death script execution, care of Skull Tag
|
// Death script execution, care of Skull Tag
|
||||||
level.Behaviors.StartTypedScripts (SCRIPT_Death, this, true);
|
Level->Behaviors.StartTypedScripts (SCRIPT_Death, this, true);
|
||||||
|
|
||||||
// [RH] Force a delay between death and respawn
|
// [RH] Force a delay between death and respawn
|
||||||
player->respawn_time = level.time + TICRATE;
|
player->respawn_time = Level->time + TICRATE;
|
||||||
|
|
||||||
//Added by MC: Respawn bots
|
//Added by MC: Respawn bots
|
||||||
if (bglobal.botnum && !demoplayback)
|
if (bglobal.botnum && !demoplayback)
|
||||||
|
@ -617,8 +617,7 @@ void AActor::Die (AActor *source, AActor *inflictor, int dmgflags, FName MeansOf
|
||||||
}
|
}
|
||||||
|
|
||||||
// [RH] If this is the unmorphed version of another monster, destroy this
|
// [RH] If this is the unmorphed version of another monster, destroy this
|
||||||
// actor, because the morphed version is the one that will stick around in
|
// actor, because the morphed version is the one that will stick around.
|
||||||
// the level.
|
|
||||||
if (flags & MF_UNMORPHED)
|
if (flags & MF_UNMORPHED)
|
||||||
{
|
{
|
||||||
Destroy ();
|
Destroy ();
|
||||||
|
@ -1247,7 +1246,7 @@ static int DamageMobj (AActor *target, AActor *inflictor, AActor *source, int da
|
||||||
//Use the original damage to check for telefrag amount. Don't let the now-amplified damagetypes do it.
|
//Use the original damage to check for telefrag amount. Don't let the now-amplified damagetypes do it.
|
||||||
if (!telefragDamage || (target->flags7 & MF7_LAXTELEFRAGDMG))
|
if (!telefragDamage || (target->flags7 & MF7_LAXTELEFRAGDMG))
|
||||||
{ // Still allow telefragging :-(
|
{ // Still allow telefragging :-(
|
||||||
damage = (int)(damage * level.teamdamage);
|
damage = (int)(damage * target->Level->teamdamage);
|
||||||
if (damage <= 0)
|
if (damage <= 0)
|
||||||
{
|
{
|
||||||
return (damage < 0) ? -1 : 0;
|
return (damage < 0) ? -1 : 0;
|
||||||
|
@ -1681,7 +1680,7 @@ bool P_PoisonPlayer (player_t *player, AActor *poisoner, AActor *source, int poi
|
||||||
}
|
}
|
||||||
if (source != NULL && source->player != player && player->mo->IsTeammate (source))
|
if (source != NULL && source->player != player && player->mo->IsTeammate (source))
|
||||||
{
|
{
|
||||||
poison = (int)(poison * level.teamdamage);
|
poison = (int)(poison * player->mo->Level->teamdamage);
|
||||||
}
|
}
|
||||||
if (poison > 0)
|
if (poison > 0)
|
||||||
{
|
{
|
||||||
|
@ -1802,7 +1801,7 @@ void P_PoisonDamage (player_t *player, AActor *source, int damage, bool playPain
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!(level.time&63) && playPainSound)
|
if (!(target->Level->time&63) && playPainSound)
|
||||||
{
|
{
|
||||||
FState *painstate = target->FindState(NAME_Pain, player->poisonpaintype);
|
FState *painstate = target->FindState(NAME_Pain, player->poisonpaintype);
|
||||||
if (painstate != NULL)
|
if (painstate != NULL)
|
||||||
|
|
|
@ -288,7 +288,8 @@ static void RemoveTaggedSectors(extsector_t::linked::plane &scrollplane, int tag
|
||||||
{
|
{
|
||||||
for(int i = scrollplane.Sectors.Size()-1; i>=0; i--)
|
for(int i = scrollplane.Sectors.Size()-1; i>=0; i--)
|
||||||
{
|
{
|
||||||
if (level.SectorHasTag(scrollplane.Sectors[i].Sector, tag))
|
auto sec = scrollplane.Sectors[i].Sector;
|
||||||
|
if (sec->Level->SectorHasTag(sec, tag))
|
||||||
{
|
{
|
||||||
scrollplane.Sectors.Delete(i);
|
scrollplane.Sectors.Delete(i);
|
||||||
}
|
}
|
||||||
|
@ -313,6 +314,7 @@ bool P_AddSectorLinks(sector_t *control, int tag, INTBOOL ceiling, int movetype)
|
||||||
if ((ceiling && control->PlaneMoving(sector_t::ceiling)) ||
|
if ((ceiling && control->PlaneMoving(sector_t::ceiling)) ||
|
||||||
(!ceiling && control->PlaneMoving(sector_t::floor))) return false;
|
(!ceiling && control->PlaneMoving(sector_t::floor))) return false;
|
||||||
|
|
||||||
|
auto Level = control->Level;
|
||||||
// Make sure we have only valid combinations
|
// Make sure we have only valid combinations
|
||||||
movetype &= LINK_FLAGMASK;
|
movetype &= LINK_FLAGMASK;
|
||||||
if ((movetype & LINK_FLOORMIRROR) == LINK_FLOORMIRRORFLAG) movetype &= ~LINK_FLOORMIRRORFLAG;
|
if ((movetype & LINK_FLOORMIRROR) == LINK_FLOORMIRRORFLAG) movetype &= ~LINK_FLOORMIRRORFLAG;
|
||||||
|
@ -327,16 +329,16 @@ bool P_AddSectorLinks(sector_t *control, int tag, INTBOOL ceiling, int movetype)
|
||||||
if (movetype > 0)
|
if (movetype > 0)
|
||||||
{
|
{
|
||||||
int sec;
|
int sec;
|
||||||
auto itr = level.GetSectorTagIterator(tag);
|
auto itr = Level->GetSectorTagIterator(tag);
|
||||||
while ((sec = itr.Next()) >= 0)
|
while ((sec = itr.Next()) >= 0)
|
||||||
{
|
{
|
||||||
// Don't attach to self (but allow attaching to this sector's oposite plane.
|
// Don't attach to self (but allow attaching to this sector's oposite plane.
|
||||||
if (control == &level.sectors[sec])
|
if (control == &Level->sectors[sec])
|
||||||
{
|
{
|
||||||
if (ceiling == sector_t::floor && movetype & LINK_FLOOR) continue;
|
if (ceiling == sector_t::floor && movetype & LINK_FLOOR) continue;
|
||||||
if (ceiling == sector_t::ceiling && movetype & LINK_CEILING) continue;
|
if (ceiling == sector_t::ceiling && movetype & LINK_CEILING) continue;
|
||||||
}
|
}
|
||||||
AddSingleSector(scrollplane, &level.sectors[sec], movetype);
|
AddSingleSector(scrollplane, &Level->sectors[sec], movetype);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -360,11 +362,11 @@ void P_AddSectorLinksByID(sector_t *control, int id, INTBOOL ceiling)
|
||||||
{
|
{
|
||||||
extsector_t::linked::plane &scrollplane = ceiling? control->e->Linked.Ceiling : control->e->Linked.Floor;
|
extsector_t::linked::plane &scrollplane = ceiling? control->e->Linked.Ceiling : control->e->Linked.Floor;
|
||||||
|
|
||||||
auto itr = level.GetLineIdIterator(id);
|
auto itr = control->Level->GetLineIdIterator(id);
|
||||||
int line;
|
int line;
|
||||||
while ((line = itr.Next()) >= 0)
|
while ((line = itr.Next()) >= 0)
|
||||||
{
|
{
|
||||||
line_t *ld = &level.lines[line];
|
line_t *ld = &control->Level->lines[line];
|
||||||
|
|
||||||
if (ld->special == Static_Init && ld->args[1] == Init_SectorLink)
|
if (ld->special == Static_Init && ld->args[1] == Init_SectorLink)
|
||||||
{
|
{
|
||||||
|
|
|
@ -857,7 +857,7 @@ int P_CheckSight (AActor *t1, AActor *t2, int flags)
|
||||||
//
|
//
|
||||||
// check for trivial rejection
|
// check for trivial rejection
|
||||||
//
|
//
|
||||||
if (!level.CheckReject(s1, s2))
|
if (!t1->Level->CheckReject(s1, s2))
|
||||||
{
|
{
|
||||||
sightcounts[0]++;
|
sightcounts[0]++;
|
||||||
res = false; // can't possibly be connected
|
res = false; // can't possibly be connected
|
||||||
|
|
|
@ -164,6 +164,8 @@ bool P_ActivateLine (line_t *line, AActor *mo, int side, int activationType, DVe
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto Level = line->GetLevel();
|
||||||
|
|
||||||
// [MK] Use WorldLinePreActivated to decide if activation should continue
|
// [MK] Use WorldLinePreActivated to decide if activation should continue
|
||||||
bool shouldactivate = true;
|
bool shouldactivate = true;
|
||||||
E_WorldLinePreActivated(line, mo, activationType, &shouldactivate);
|
E_WorldLinePreActivated(line, mo, activationType, &shouldactivate);
|
||||||
|
@ -198,13 +200,13 @@ bool P_ActivateLine (line_t *line, AActor *mo, int side, int activationType, DVe
|
||||||
}
|
}
|
||||||
// some old WADs use this method to create walls that change the texture when shot.
|
// some old WADs use this method to create walls that change the texture when shot.
|
||||||
else if (activationType == SPAC_Impact && // only for shootable triggers
|
else if (activationType == SPAC_Impact && // only for shootable triggers
|
||||||
(level.flags2 & LEVEL2_DUMMYSWITCHES) && // this is only a compatibility setting for an old hack!
|
(Level->flags2 & LEVEL2_DUMMYSWITCHES) && // this is only a compatibility setting for an old hack!
|
||||||
!repeat && // only non-repeatable triggers
|
!repeat && // only non-repeatable triggers
|
||||||
(special<Generic_Floor || special>Generic_Crusher) && // not for Boom's generalized linedefs
|
(special<Generic_Floor || special>Generic_Crusher) && // not for Boom's generalized linedefs
|
||||||
special && // not for lines without a special
|
special && // not for lines without a special
|
||||||
level.LineHasId(line, line->args[0]) && // Safety check: exclude edited UDMF linedefs or ones that don't map the tag to args[0]
|
Level->LineHasId(line, line->args[0]) && // Safety check: exclude edited UDMF linedefs or ones that don't map the tag to args[0]
|
||||||
line->args[0] && // only if there's a tag (which is stored in the first arg)
|
line->args[0] && // only if there's a tag (which is stored in the first arg)
|
||||||
level.FindFirstSectorFromTag (line->args[0]) == -1) // only if no sector is tagged to this linedef
|
Level->FindFirstSectorFromTag (line->args[0]) == -1) // only if no sector is tagged to this linedef
|
||||||
{
|
{
|
||||||
P_ChangeSwitchTexture (line->sidedef[0], repeat, special);
|
P_ChangeSwitchTexture (line->sidedef[0], repeat, special);
|
||||||
line->special = 0;
|
line->special = 0;
|
||||||
|
|
|
@ -97,7 +97,7 @@ static bool P_StartButton (side_t *side, int Where, FSwitchDef *Switch, const DV
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
level.CreateThinker<DActiveButton> (side, Where, Switch, pos, useagain);
|
side->sector->Level->CreateThinker<DActiveButton> (side, Where, Switch, pos, useagain);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -118,7 +118,7 @@ namespace swrenderer
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return FindSubsectorDepth(thread, worldPos, level.HeadNode());
|
return FindSubsectorDepth(thread, worldPos, Level->HeadNode());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue