From db89bf178c1915495875eb28dd42a428661bde4a Mon Sep 17 00:00:00 2001 From: elasota Date: Wed, 1 Apr 2020 23:35:10 -0400 Subject: [PATCH] Fix grease on res change --- GpApp/GliderProtos.h | 2 +- GpApp/Grease.cpp | 3 ++- GpApp/ObjectDrawAll.cpp | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/GpApp/GliderProtos.h b/GpApp/GliderProtos.h index 01054f0..922e7cd 100644 --- a/GpApp/GliderProtos.h +++ b/GpApp/GliderProtos.h @@ -83,7 +83,7 @@ void FlagGameOver (void); void DoDiedGameOver (void); void HandleGrease (void); // --- Grease.c -SInt16 ReBackUpGrease (SInt16, SInt16); +SInt16 ReBackUpGrease (SInt16 where, SInt16 who, SInt16 h, SInt16 v); SInt16 AddGrease (SInt16, SInt16, SInt16, SInt16, SInt16, Boolean); void SpillGrease (SInt16, SInt16); void RedrawAllGrease (void); diff --git a/GpApp/Grease.cpp b/GpApp/Grease.cpp index c77d668..8e6fcda 100644 --- a/GpApp/Grease.cpp +++ b/GpApp/Grease.cpp @@ -167,7 +167,7 @@ void BackupGrease (Rect *src, short index, Boolean isRight) // off or on the lights). It assumes certain data strucutures areÉ // already declared from an earlier call to the above funciton. -short ReBackUpGrease (short where, short who) +short ReBackUpGrease (short where, short who, short h, short v) { Rect src; short i; @@ -178,6 +178,7 @@ short ReBackUpGrease (short where, short who) { if ((grease[i].mode == kGreaseIdle) || (grease[i].mode == kGreaseFalling)) { + QOffsetRect(&grease[i].dest, h - grease[i].dest.left, v - grease[i].dest.top); src = grease[i].dest; BackupGrease(&src, grease[i].mapNum, grease[i].isRight); } diff --git a/GpApp/ObjectDrawAll.cpp b/GpApp/ObjectDrawAll.cpp index 7fe3943..6a1b8e3 100644 --- a/GpApp/ObjectDrawAll.cpp +++ b/GpApp/ObjectDrawAll.cpp @@ -369,7 +369,7 @@ void DrawARoomsObjects (short neighbor, Boolean redraw) if (SectRect(&itsRect, &testRect, &whoCares)) { if (redraw) - dynamicNum = ReBackUpGrease(localNumbers[neighbor], i); + dynamicNum = ReBackUpGrease(localNumbers[neighbor], i, itsRect.left, itsRect.top); else dynamicNum = AddGrease(localNumbers[neighbor], i, itsRect.left, itsRect.top, @@ -390,7 +390,7 @@ void DrawARoomsObjects (short neighbor, Boolean redraw) if (SectRect(&itsRect, &testRect, &whoCares)) { if (redraw) - dynamicNum = ReBackUpGrease(localNumbers[neighbor], i); + dynamicNum = ReBackUpGrease(localNumbers[neighbor], i, itsRect.left, itsRect.top); else dynamicNum = AddGrease(localNumbers[neighbor], i, itsRect.left, itsRect.top,