Pararena2/Sources/MainWindow.c

1 line
17 KiB
C
Raw Permalink Normal View History

/*============================================================*/ /*============================================================*/ /*== ==*/ /*== Main Window Routines ==*/ /*== ==*/ /*============================================================*/ /*============================================================*/ /*======================================================== Includes */ #include "Globals.h" #include "UnivUtilities.h" #include "MainWindow.h" #include "Render.h" /*======================================================== Functions */ /*======================================================== EraseMenuBarRect */ void EraseMenuBarRect (void) { RgnHandle newVis; GrafPtr wasPort; Rect theRect; Point thePoint; GetPort(&wasPort); SetPort((GrafPtr)mainWndo); GetOrigin(&thePoint); SetOrigin(0, 0); theRect = screenBits.bounds; theRect.bottom = theRect.top + wasMenuBarHeight; newVis = NewRgn(); RectRgn(newVis, &theRect); UnionRgn(mainWndo->visRgn, newVis, mainWndo->visRgn); if (isColor) CopyBits(&((GrafPtr)offCWorkPtr)->portBits, &(((GrafPtr)mainWndo)->portBits), &theRect, &theRect, srcCopy, kNilPointer); else CopyBits(&offWorkBits, &(mainWndo->portBits), &theRect, &theRect, srcCopy, kNilPointer); DisposeRgn(newVis); SetOrigin(thePoint.h, thePoint.v); SetPort((GrafPtr)wasPort); } /*======================================================== FixVisRegion */ void FixVisRegion (void) { RgnHandle newVis; GrafPtr wasPort; Rect theRect; Point thePoint; GetPort(&wasPort); SetPort((GrafPtr)mainWndo); GetOrigin(&thePoint); SetOrigin(0, 0); theRect = screenBits.bounds; theRect.top += wasMenuBarHeight; newVis = NewRgn(); RectRgn(newVis, &theRect); SectRgn(mainWndo->visRgn, newVis, mainWndo->visRgn); DisposeRgn(newVis); SetOrigin(thePoint.h, thePoint.v); SetPort((GrafPtr)wasPort); } /*======================================================== LoadBackgroundPict */ void LoadBackgroundPict (void) { Rect pictRect; PicHandle thePict; if (isColor) { SetPort((GrafPtr)offCBackPtr); if (displayMode == kDisplay13Inch) thePict = GetPicture(rArenaPictLg4BitID); else thePict = GetPicture(rArenaPictSm4BitID); if (thePict != kNilPointer) { HLock((Handle)thePict); pictRect = (**thePict).picFrame; DrawPicture(thePict, &pictRect); HUnlock((Handle)thePict); ReleaseResource((Handle)thePict); } else DeathError(kErrNoPictRsrc); } else { SetPort((GrafPtr)offBackPtr); if (displayMode == kDisplay13Inch) thePict = GetPicture(rArenaPictLg1BitID); else thePict = GetPicture(rArenaPictSm1BitID); if (thePict != kNilPointer) { HLock((Handle)thePict); pictRect = (**thePict).picFrame; DrawPicture(thePict, &pictRect); HUnlock((Handle)thePict); ReleaseResource((Handle)thePict); } else DeathError(kErrNoPictRsrc); } } /*======================================================== UpdateGoalPicts */ void UpdateGoalPicts (Boolean drawToMain) { #define kBackBoardHeight 20 RGBColor theRGBColor; Rect tempRect; RgnHandle leftRgn, rightRgn, tempRgn; GrafPtr wasPort; LoadBackgroundPict(); leftRgn = kNilPointer; rightRgn = kNilPointer; if (arenaSize == kSmallArena) { leftRgn = NewRgn(); /* define left & right goal regions for small arena */ OpenRgn(); MoveTo(6, 174); LineTo(14, 138); LineTo(39, 104); LineTo(78, 76); LineTo(132, 53); LineTo(191, 40); LineTo(256, 34); LineTo(256, 34 - kBackBoardHeight); LineTo(191, 40 - kBackBoardHeight); LineTo(132, 53 - kBackBoardHeight); LineTo(78, 76 - kBackBoardHeight); LineTo(39, 104 - kBackBoardHeight); LineTo(14, 138 - kBackBoardHeight); LineTo(6, 174 - kBackBoardHeight); LineTo(6, 174); CloseRgn(leftRgn); rightRgn = NewRgn(); OpenRgn(); MoveTo(512 - 6, 174); LineTo(512 - 14, 138); LineTo(512 - 39, 104); LineTo(512 - 78, 76); LineTo(512 - 132, 53); LineTo(512 - 191, 40); LineTo(512 - 256, 34); LineTo(512 - 256, 34 - kBackBoa