mirror of
https://github.com/softdorothy/Pararena2.git
synced 2024-06-11 01:29:28 +00:00
1 line
17 KiB
C
1 line
17 KiB
C
|
/*============================================================*/
/*============================================================*/
/*== ==*/
/*== 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
|