diff --git a/GpApp/Dynamics3.cpp b/GpApp/Dynamics3.cpp index 6e6c713..7f1d77a 100644 --- a/GpApp/Dynamics3.cpp +++ b/GpApp/Dynamics3.cpp @@ -706,13 +706,3 @@ short AddDynamicObject (short what, Rect *where, objectType *who, return dynIndex; } - -void OffsetDynamics(SInt16 h, SInt16 v) -{ - for (int i = 0; i < numDynamics; i++) - { - dynaType &dinah = dinahs[i]; - //QOffsetRect(&dinah.dest, h, v); - //QOffsetRect(&dinah.whole, h, v); - } -} diff --git a/GpApp/Events.cpp b/GpApp/Events.cpp index 33342bc..44159c3 100644 --- a/GpApp/Events.cpp +++ b/GpApp/Events.cpp @@ -426,6 +426,25 @@ void HandleHighLevelEvent (EventRecord *theEvent) } #endif + +//-------------------------------------------------------------- HandleSplashResolutionChange +void HandleSplashResolutionChange(void) +{ + FlushResolutionChange(); + + RecomputeInterfaceRects(); + RecreateOffscreens(); + CloseMainWindow(); + OpenMainWindow(); + + UpdateMainWindow(); + + //ResetLocale(true); + //InitScoreboardMap(); + //RefreshScoreboard(wasScoreboardTitleMode); + //DumpScreenOn(&justRoomsRect); +} + //-------------------------------------------------------------- HandleIdleTask // Handle some processing during event lulls. @@ -443,6 +462,14 @@ void HandleIdleTask (void) newRoomNow = false; } } + + if (theMode == kSplashMode) + { + if (thisMac.isResolutionDirty) + { + HandleSplashResolutionChange(); + } + } } //-------------------------------------------------------------- HandleEvent diff --git a/GpApp/GliderProtos.h b/GpApp/GliderProtos.h index 200c30b..a5ac24c 100644 --- a/GpApp/GliderProtos.h +++ b/GpApp/GliderProtos.h @@ -76,7 +76,6 @@ void ZeroDinahs (void); void ZeroDinahsNotInRoom (SInt16); SInt16 AddDynamicObject(SInt16 what, Rect *where, objectType *who, SInt16 room, SInt16 index, Boolean isOn, Boolean keepExisting); -void OffsetDynamics(SInt16 h, SInt16 v); void DoGameOver (void); // --- GameOver.c void FlagGameOver (void); diff --git a/GpApp/ObjectDrawAll.cpp b/GpApp/ObjectDrawAll.cpp index c08ae3e..a6ea753 100644 --- a/GpApp/ObjectDrawAll.cpp +++ b/GpApp/ObjectDrawAll.cpp @@ -698,8 +698,7 @@ void DrawARoomsObjects (short neighbor, Boolean redraw) if (SectRect(&itsRect, &testRect, &whoCares)) { #ifdef COMPILEQT - if ((thisMac.hasQT) && (hasMovie) && (neighbor == kCentralRoom) && - (!tvInRoom)) + if ((thisMac.hasQT) && (hasMovie) && (neighbor == kCentralRoom)) { whoCares = tvScreen1; ZeroRectCorner(&whoCares); @@ -708,7 +707,9 @@ void DrawARoomsObjects (short neighbor, Boolean redraw) CenterRectInRect(&movieRect, &whoCares); theMovie.m_renderRect = movieRect; theMovie.m_constrainRect = whoCares; - tvOn = thisObject.data.g.state; + + if (!tvInRoom) + tvOn = thisObject.data.g.state; } #endif DrawTV(&itsRect, thisObject.data.g.state, isLit); diff --git a/GpApp/Play.cpp b/GpApp/Play.cpp index 83a183f..0b260cf 100644 --- a/GpApp/Play.cpp +++ b/GpApp/Play.cpp @@ -366,12 +366,8 @@ void SetHouseToSavedRoom (void) //-------------------------------------------------------------- HandleGameResolutionChange -extern DrawSurface *backSrcMap; void HandleGameResolutionChange(void) { - short prevPlayOriginH = playOriginH; - short prevPlayOriginV = playOriginV; - FlushResolutionChange(); RecomputeInterfaceRects(); @@ -382,8 +378,6 @@ void HandleGameResolutionChange(void) if (hasMovie) theMovie.m_surface = &mainWindow->m_surface; - OffsetDynamics(playOriginH - prevPlayOriginH, playOriginV - prevPlayOriginV); - ResetLocale(true); InitScoreboardMap(); RefreshScoreboard(wasScoreboardTitleMode);