- fixed: ACS's GetActorLightLevel didn't check 3D floors.
This commit is contained in:
parent
ba7260c176
commit
27cc3d6289
2 changed files with 21 additions and 2 deletions
|
|
@ -9346,7 +9346,26 @@ scriptwait:
|
|||
AActor *actor = SingleActorFromTID(STACK(1), activator);
|
||||
if (actor != NULL)
|
||||
{
|
||||
STACK(1) = actor->Sector->lightlevel;
|
||||
sector_t *sector = actor->Sector;
|
||||
if (sector->e->XFloor.lightlist.Size())
|
||||
{
|
||||
unsigned i;
|
||||
TArray<lightlist_t> &lightlist = sector->e->XFloor.lightlist;
|
||||
|
||||
STACK(1) = *lightlist.Last().p_lightlevel;
|
||||
for (i = 1; i < lightlist.Size(); i++)
|
||||
{
|
||||
if (lightlist[i].plane.ZatPoint(actor) <= actor->Z())
|
||||
{
|
||||
STACK(1) = *lightlist[i - 1].p_lightlevel;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
STACK(1) = actor->Sector->lightlevel;
|
||||
}
|
||||
}
|
||||
else STACK(1) = 0;
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue