Fix 3d floor sides not getting lit
This commit is contained in:
parent
2ba2553c60
commit
6a7c17dfd6
1 changed files with 4 additions and 9 deletions
|
|
@ -305,17 +305,11 @@ std::pair<FLightNode*, int> DoomLevelMesh::GetSurfaceLightNode(const DoomLevelMe
|
|||
node = subsector->section->lighthead;
|
||||
portalgroup = subsector->sector->PortalGroup;
|
||||
}
|
||||
else if (!doomsurf->ControlSector)
|
||||
else
|
||||
{
|
||||
node = doomsurf->Side->lighthead;
|
||||
portalgroup = doomsurf->Side->sector->PortalGroup;
|
||||
}
|
||||
else // 3d floor needs light from the sidedef on the other side
|
||||
{
|
||||
int otherside = doomsurf->Side->linedef->sidedef[0] == doomsurf->Side ? 1 : 0;
|
||||
node = doomsurf->Side->linedef->sidedef[otherside]->lighthead;
|
||||
portalgroup = doomsurf->Side->linedef->sidedef[otherside]->sector->PortalGroup;
|
||||
}
|
||||
}
|
||||
return { node, portalgroup };
|
||||
}
|
||||
|
|
@ -877,12 +871,13 @@ void DoomLevelMesh::SetSideLightmap(DoomLevelMeshSurface* surface)
|
|||
}
|
||||
else
|
||||
{
|
||||
const auto& ffloors = surface->Side->sector->e->XFloor.ffloors;
|
||||
side_t* backside = surface->Side->linedef->sidedef[surface->Side == surface->Side->linedef->sidedef[0]];
|
||||
const auto& ffloors = backside->sector->e->XFloor.ffloors;
|
||||
for (unsigned int i = 0; i < ffloors.Size(); i++)
|
||||
{
|
||||
if (ffloors[i]->model == surface->ControlSector)
|
||||
{
|
||||
surface->Side->surface[4 + i] = surface;
|
||||
backside->surface[4 + i] = surface;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue