* - render partial sprites on the front side of a portal for actors behind it.

This commit is contained in:
Christoph Oelckers 2016-04-30 23:18:37 +02:00
parent ca95371a27
commit 51991ef22d
2 changed files with 10 additions and 1 deletions

View file

@ -376,5 +376,6 @@ inline float Dist2(float x1,float y1,float x2,float y2)
void gl_SetDynSpriteLight(AActor *self, float x, float y, float z, subsector_t *subsec); void gl_SetDynSpriteLight(AActor *self, float x, float y, float z, subsector_t *subsec);
void gl_SetDynSpriteLight(AActor *actor, particle_t *particle); void gl_SetDynSpriteLight(AActor *actor, particle_t *particle);
void gl_RenderActorsInPortal(FGLLinePortal *glport);
#endif #endif

View file

@ -214,7 +214,15 @@ void GLWall::PutPortal(int ptype)
case PORTALTYPE_LINETOLINE: case PORTALTYPE_LINETOLINE:
portal=GLPortal::FindPortal(lineportal); portal=GLPortal::FindPortal(lineportal);
if (!portal) portal=new GLLineToLinePortal(lineportal); if (!portal)
{
line_t *otherside = lineportal->lines[0]->mDestination;
if (otherside != NULL)
{
gl_RenderActorsInPortal(linePortalToGL[otherside->portalindex]);
}
portal = new GLLineToLinePortal(lineportal);
}
portal->AddLine(this); portal->AddLine(this);
break; break;