Fix transitions not spanning the entire screen and fix dissolve replaying when toggling full-screen

This commit is contained in:
elasota
2020-07-20 12:17:36 -04:00
parent a77e1d868f
commit 7bf6147fa1
5 changed files with 15 additions and 15 deletions

View File

@@ -166,7 +166,7 @@ void BringUpBanner (void)
DrawBanner(&topLeft);
DrawBannerMessage(topLeft);
DumpScreenOn(&justRoomsRect);
DumpScreenOn(&justRoomsRect, false);
// if (quickerTransitions)
// DissBitsChunky(&justRoomsRect); // was workSrcRect

View File

@@ -498,7 +498,7 @@ void FollowTheLeader (void);
void PourScreenOn (Rect *); // --- Transitions.c
void WipeScreenOn (SInt16, Rect *);
void DumpScreenOn (Rect *);
void DumpScreenOn (Rect *, Boolean);
//void DissBits (Rect *);
//void DissBitsChunky (Rect *);
//void FillColorNoise (Rect *);

View File

@@ -82,13 +82,13 @@ void DoHighScores (void)
// else
// DissBits(&workSrcRect);
DumpScreenOn(&workSrcRect);
DumpScreenOn(&workSrcRect, false);
SpinCursor(3);
DrawHighScores(workSrcMap);
DumpScreenOn(&workSrcRect);
DumpScreenOn(&workSrcRect, false);
SpinCursor(3);
// if (quickerTransitions)

View File

@@ -168,16 +168,16 @@ void NewGame (short mode)
if (mode == kNewGameMode)
{
BringUpBanner();
DumpScreenOn(&justRoomsRect);
DumpScreenOn(&justRoomsRect, false);
}
else if (mode == kResumeGameMode)
{
DisplayStarsRemaining();
DumpScreenOn(&justRoomsRect);
DumpScreenOn(&justRoomsRect, false);
}
else
{
DumpScreenOn(&justRoomsRect);
DumpScreenOn(&justRoomsRect, false);
}
InitGarbageRects();
@@ -381,7 +381,7 @@ void HandleGameResolutionChange(void)
ResetLocale(true);
InitScoreboardMap();
RefreshScoreboard(wasScoreboardTitleMode);
DumpScreenOn(&justRoomsRect);
DumpScreenOn(&justRoomsRect, true);
}
//-------------------------------------------------------------- PlayGame

View File

@@ -122,28 +122,28 @@ void WipeScreenOn (short direction, Rect *theRect)
wipeRect.bottom = wipeRect.top + wipeRectThick;
hOffset = 0;
vOffset = wipeRectThick;
count = ((theRect->bottom - theRect->top) / wipeRectThick) + 1;
count = (theRect->bottom - theRect->top + wipeRectThick - 1) / wipeRectThick;
break;
case kToRight:
wipeRect.left = wipeRect.right - wipeRectThick;
hOffset = -wipeRectThick;
vOffset = 0;
count = workSrcRect.right / wipeRectThick;
count = (workSrcRect.right + wipeRectThick - 1) / wipeRectThick;
break;
case kBelow:
wipeRect.top = wipeRect.bottom - wipeRectThick;
hOffset = 0;
vOffset = -wipeRectThick;
count = ((theRect->bottom - theRect->top) / wipeRectThick) + 1;
count = (theRect->bottom - theRect->top + wipeRectThick - 1) / wipeRectThick;
break;
case kToLeft:
wipeRect.right = wipeRect.left + wipeRectThick;
hOffset = wipeRectThick;
vOffset = 0;
count = workSrcRect.right / wipeRectThick;
count = (workSrcRect.right + wipeRectThick - 1) / wipeRectThick;
break;
}
@@ -170,7 +170,7 @@ void WipeScreenOn (short direction, Rect *theRect)
}
}
//-------------------------------------------------------------- DumpScreenOn
//-------------------------------------------------------------- DissolveScreenOn
void DissolveScreenOn(Rect *theRect)
{
@@ -239,9 +239,9 @@ void DissolveScreenOn(Rect *theRect)
//-------------------------------------------------------------- DumpScreenOn
void DumpScreenOn(Rect *theRect)
void DumpScreenOn(Rect *theRect, Boolean fast)
{
if (quickerTransitions)
if (quickerTransitions || fast)
{
DrawSurface *graf = mainWindow->GetDrawSurface();