In CON showview, if drawing off-screen, clear the view with pal 0 and bail out.

This fixes the glitches/corruption whereever showview is used from
EVENT_DISPLAYROOMS while the scene is actually rendered to a tile instead of the
frame buffer, for example because we have a tilted view or "pixel doubling"
enabled.  Fixing it for real (i.e. so that the showview actually completes)
will require more effort.

git-svn-id: https://svn.eduke32.com/eduke32@2706 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2012-05-29 20:01:44 +00:00
parent 32c76d14b4
commit cea07d0125
2 changed files with 8 additions and 0 deletions

View file

@ -3743,6 +3743,8 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
break;
}
// NOTE: might be rendering off-screen here, so CON commands that draw stuff
// like showview must cope with that situation or bail out!
if (apScriptGameEvent[EVENT_DISPLAYROOMS])
VM_OnEvent(EVENT_DISPLAYROOMS, g_player[screenpeek].ps->i, screenpeek, -1, 0);

View file

@ -2342,6 +2342,12 @@ nullquote:
if (g_screenCapture) continue;
if (offscreenrendering)
{
clearview(0);
continue;
}
if (x1 > x2) swaplong(&x1,&x2);
if (y1 > y2) swaplong(&y1,&y2);