diff --git a/src/polyrenderer/scene/poly_scene.cpp b/src/polyrenderer/scene/poly_scene.cpp index 378264ef7..6fca68576 100644 --- a/src/polyrenderer/scene/poly_scene.cpp +++ b/src/polyrenderer/scene/poly_scene.cpp @@ -49,6 +49,7 @@ RenderPolyScene::~RenderPolyScene() void RenderPolyScene::Render(PolyPortalViewpoint *viewpoint) { + PolyPortalViewpoint *oldviewpoint = CurrentViewpoint; CurrentViewpoint = viewpoint; PolyRenderThread *thread = PolyRenderer::Instance()->Threads.MainThread(); @@ -85,7 +86,7 @@ void RenderPolyScene::Render(PolyPortalViewpoint *viewpoint) RenderPortals(); - CurrentViewpoint = nullptr; + CurrentViewpoint = oldviewpoint; } void RenderPolyScene::RenderSectors() @@ -359,6 +360,7 @@ void RenderPolyScene::RenderPortals() void RenderPolyScene::RenderTranslucent(PolyPortalViewpoint *viewpoint) { + PolyPortalViewpoint *oldviewpoint = CurrentViewpoint; CurrentViewpoint = viewpoint; PolyRenderThread *thread = PolyRenderer::Instance()->Threads.MainThread(); @@ -428,7 +430,7 @@ void RenderPolyScene::RenderTranslucent(PolyPortalViewpoint *viewpoint) PolyMaskedCycles.Unclock(); - CurrentViewpoint = nullptr; + CurrentViewpoint = oldviewpoint; } /////////////////////////////////////////////////////////////////////////////