mirror of
https://github.com/softdorothy/GliderPRO.git
synced 2024-11-22 05:31:29 +00:00
7a70d18ba6
Sources for Glider PRO, a Macintosh game written by John Calhoun and published by Casady & Greene, Inc. I believe it was using CodeWarrior IDE to create a fat (68K and PowerPC) binary.
1 line
16 KiB
C
Executable File
1 line
16 KiB
C
Executable File
//============================================================================
|
||
//----------------------------------------------------------------------------
|
||
// StructuresInit2.c
|
||
//----------------------------------------------------------------------------
|
||
//============================================================================
|
||
|
||
|
||
#include <Resources.h>
|
||
#include "Externs.h"
|
||
#include "Environ.h"
|
||
#include "GameOver.h"
|
||
#include "MainWindow.h"
|
||
#include "Objects.h"
|
||
#include "RectUtils.h"
|
||
#include "Room.h"
|
||
#include "RoomGraphics.h"
|
||
#include "Utilities.h"
|
||
|
||
|
||
#define kAngelPictID 1019
|
||
#define kSupportPictID 1999
|
||
#define kClutterPictID 4018
|
||
|
||
|
||
void InitClutter (void);
|
||
void InitSupport (void);
|
||
void InitAngel (void);
|
||
|
||
|
||
extern Rect suppSrcRect, justRoomsRect;
|
||
extern Rect tileSrcRect, angelSrcRect;
|
||
extern GDHandle thisGDevice;
|
||
extern CGrafPtr tileSrcMap;
|
||
extern FSSpecPtr theHousesSpecs;
|
||
extern hotPtr hotSpots;
|
||
extern sparklePtr sparkles;
|
||
extern flyingPtPtr flyingPoints;
|
||
extern flamePtr flames, tikiFlames, bbqCoals;
|
||
extern pendulumPtr pendulums;
|
||
extern savedPtr savedMaps;
|
||
extern bandPtr bands;
|
||
extern greasePtr grease;
|
||
extern starPtr theStars;
|
||
extern shredPtr shreds;
|
||
extern dynaPtr dinahs;
|
||
extern demoPtr demoData;
|
||
extern short maxFiles;
|
||
|
||
|
||
//============================================================== Functions
|
||
//-------------------------------------------------------------- InitClutter
|
||
// Structures and graphics relating to clutter are loaded up.
|
||
// Clutter includes mirrors, teddy bears, fireplaces, calendars, etc.
|
||
|
||
void InitClutter (void)
|
||
{
|
||
CGrafPtr wasCPort;
|
||
GDHandle wasWorld;
|
||
OSErr theErr;
|
||
|
||
GetGWorld(&wasCPort, &wasWorld);
|
||
|
||
QSetRect(&clutterSrcRect, 0, 0, 128, 69);
|
||
theErr = CreateOffScreenGWorld(&clutterSrcMap, &clutterSrcRect, kPreferredDepth);
|
||
SetGWorld(clutterSrcMap, nil);
|
||
LoadGraphic(kClutterPictID);
|
||
|
||
theErr = CreateOffScreenGWorld(&clutterMaskMap, &clutterSrcRect, 1);
|
||
SetGWorld(clutterMaskMap, nil);
|
||
LoadGraphic(kClutterPictID + 1000);
|
||
|
||
QSetRect(&flowerSrc[0], 0, 0, 10, 28);
|
||
QOffsetRect(&flowerSrc[0], 0, 23);
|
||
|
||
QSetRect(&flowerSrc[1], 0, 0, 24, 35);
|
||
QOffsetRect(&flowerSrc[1], 10, 16);
|
||
|
||
QSetRect(&flowerSrc[2], 0, 0, 34, 35);
|
||
QOffsetRect(&flowerSrc[2], 34, 16);
|
||
|
||
QSetRect(&flowerSrc[3], 0, 0, 27, 23);
|
||
QOffsetRect(&flowerSrc[3], 68, 14);
|
||
|
||
QSetRect(&flowerSrc[4], 0, 0, 27, 14);
|
||
QOffsetRect(&flowerSrc[4], 68, 37);
|
||
|
||
QSetRect(&flowerSrc[5], 0, 0, 32, 51);
|
||
QOffsetRect(&flowerSrc[5], 95, 0);
|
||
|
||
SetGWorld(wasCPort, wasWorld);
|
||
}
|
||
|
||
//-------------------------------------------------------------- InitSupport
|
||
// The floor support grphic is loaded up. It is only visible when<65>
|
||
// playing in 9-room mode. It is the horizontal wooden beam that<61>
|
||
// seperates floors from one another.
|
||
|
||
void InitSupport (void)
|
||
{
|
||
CGrafPtr wasCPort;
|
||
GDHandle wasWorld;
|
||
OSErr theErr;
|
||
|
||
GetGWorld(&wasCPort, &wasWorld);
|
||
|
||
QSetRect(&suppSrcRect, 0, 0, kRoomWide, kFloorSupportTall); // 44
|
||
theErr = CreateOffScreenGWorld(&suppSrcMap, &suppSrcRect, kPreferredDepth);
|
||
SetGWorld(suppSrcMap, nil);
|
||
LoadGraphic(kSupportPictID);
|
||
|
||
SetGWorld(wasCPort, wasWorld);
|
||
}
|
||
|
||
//-------------------------------------------------------------- InitAngel
|
||
// This loads the graphic of the girl riding the glider. It is seen<65>
|
||
// only upon completing a house. She flies across the screen dropping<6E>
|
||
// stars below.
|
||
|
||
void InitAngel (void)
|
||
{
|
||
CGrafPtr wasCPort;
|
||
GDHandle wasWorld;
|
||
OSErr theErr;
|
||
|
||
GetGWorld(&wasCPort, &wasWorld);
|
||
|
||
QSetRect(&angelSrcRect, 0, 0, 96, 44);
|
||
theErr = CreateOffScreenGWorld(&angelSrcMap, &angelSrcRect, kPreferredDepth);
|
||
SetGWorld(angelSrcMap, nil);
|
||
LoadGraphic(kAngelPictID);
|
||
|
||
theErr = CreateOffScreenGWorld(&angelMaskMap, &angelSrcRect, 1);
|
||
SetGWorld(angelMaskMap, nil);
|
||
LoadGraphic(kAngelPictID + 1);
|
||
|
||
SetGWorld(wasCPort, wasWorld);
|
||
}
|
||
|
||
//-------------------------------------------------------------- CreateOffscreens
|
||
// All "utility" or "work" offscreen pix/bit maps are created here.
|
||
// These would be offscreens that are reused throughout a game - they<65>
|
||
// are not static (mere repositories for graphics). Most are used<65>
|
||
// to facilitate the animation when a game is in progress.
|
||
|
||
void CreateOffscreens (void)
|
||
{
|
||
CGrafPtr wasCPort;
|
||
GDHandle wasWorld;
|
||
OSErr theErr;
|
||
|
||
GetGWorld(&wasCPort, &wasWorld);
|
||
|
||
justRoomsRect = houseRect;
|
||
ZeroRectCorner(&justRoomsRect);
|
||
|
||
workSrcRect = houseRect; // Set up work map
|
||
ZeroRectCorner(&workSrcRect);
|
||
theErr = CreateOffScreenGWorld(&workSrcMap, &workSrcRect, kPreferredDepth);
|
||
|
||
backSrcRect = houseRect; // Set up background map
|
||
ZeroRectCorner(&backSrcRect);
|
||
theErr = CreateOffScreenGWorld(&backSrcMap, &backSrcRect, kPreferredDepth);
|
||
|
||
InitScoreboardMap(); SpinCursor(1);
|
||
InitGliderMap(); SpinCursor(1);
|
||
InitBlowers(); SpinCursor(1);
|
||
InitFurniture(); SpinCursor(1);
|
||
InitPrizes(); SpinCursor(1);
|
||
InitTransports(); SpinCursor(1);
|
||
InitSwitches(); SpinCursor(1);
|
||
InitLights(); SpinCursor(1);
|
||
InitAppliances(); SpinCursor(1);
|
||
InitEnemies(); SpinCursor(1);
|
||
InitClutter(); SpinCursor(1);
|
||
InitSupport(); SpinCursor(1);
|
||
InitAngel(); SpinCursor(1);
|
||
|
||
QSetRect(&tileSrcRect, 0, 0, 128, 80);
|
||
tileSrcMap = nil;
|
||
// ????
|
||
}
|
||
|
||
//-------------------------------------------------------------- CreatePointers
|
||
// This function allocates other large structures. Pointers to hold<6C>
|
||
// large arrays, etc.
|
||
|
||
void CreatePointers (void)
|
||
{
|
||
Handle tempHandle;
|
||
short i;
|
||
|
||
thisRoom = nil;
|
||
thisRoom = (roomPtr)NewPtr(sizeof(roomType));
|
||
if (thisRoom == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
hotSpots = nil;
|
||
hotSpots = (hotPtr)NewPtr(sizeof(hotObject) * kMaxHotSpots);
|
||
if (hotSpots == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
sparkles = nil;
|
||
sparkles = (sparklePtr)NewPtr(sizeof(sparkleType) * kMaxSparkles);
|
||
if (sparkles == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
flyingPoints = nil;
|
||
flyingPoints = (flyingPtPtr)NewPtr(sizeof(flyingPtType) * kMaxFlyingPts);
|
||
if (flyingPoints == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
flames = nil;
|
||
flames = (flamePtr)NewPtr(sizeof(flameType) * kMaxCandles);
|
||
if (flames == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
tikiFlames = nil;
|
||
tikiFlames = (flamePtr)NewPtr(sizeof(flameType) * kMaxTikis);
|
||
if (tikiFlames == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
bbqCoals = nil;
|
||
bbqCoals = (flamePtr)NewPtr(sizeof(flameType) * kMaxCoals);
|
||
if (bbqCoals == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
pendulums = nil;
|
||
pendulums = (pendulumPtr)NewPtr(sizeof(pendulumType) * kMaxPendulums);
|
||
if (pendulums == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
savedMaps = nil;
|
||
savedMaps = (savedPtr)NewPtr(sizeof(savedType) * kMaxSavedMaps);
|
||
if (savedMaps == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
for (i = 0; i < kMaxSavedMaps; i++)
|
||
savedMaps[i].map = nil;
|
||
|
||
bands = nil;
|
||
bands = (bandPtr)NewPtr(sizeof(bandType) * kMaxRubberBands);
|
||
if (bands == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
grease = nil;
|
||
grease = (greasePtr)NewPtr(sizeof(greaseType) * kMaxGrease);
|
||
if (grease == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
theStars = nil;
|
||
theStars = (starPtr)NewPtr(sizeof(starType) * kMaxStars);
|
||
if (theStars == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
shreds = nil;
|
||
shreds = (shredPtr)NewPtr(sizeof(shredType) * kMaxShredded);
|
||
if (shreds == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
dinahs = nil;
|
||
dinahs = (dynaPtr)NewPtr(sizeof(dynaType) * kMaxDynamicObs);
|
||
if (dinahs == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
masterObjects = nil;
|
||
masterObjects = (objDataPtr)NewPtr(sizeof(objDataType) * kMaxMasterObjects);
|
||
if (masterObjects == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
srcRects = nil;
|
||
srcRects = (Rect *)NewPtr(sizeof(Rect) * kNumSrcRects);
|
||
if (srcRects == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
theHousesSpecs = nil;
|
||
theHousesSpecs = (FSSpecPtr)NewPtr(sizeof(FSSpec) * maxFiles);
|
||
if (theHousesSpecs == nil)
|
||
RedAlert(kErrNoMemory);
|
||
|
||
#ifdef CREATEDEMODATA
|
||
demoData = nil;
|
||
demoData = (demoPtr)NewPtr(sizeof(demoType) * 2000);
|
||
if (demoData == nil)
|
||
RedAlert(kErrNoMemory);
|
||
#else
|
||
demoData = nil;
|
||
demoData = (demoPtr)NewPtr(kDemoLength);
|
||
if (demoData == nil)
|
||
RedAlert(kErrNoMemory);
|
||
tempHandle = GetResource('demo', 128);
|
||
if (tempHandle == nil)
|
||
RedAlert(kErrNoMemory);
|
||
else
|
||
{
|
||
BlockMove(*tempHandle, demoData, kDemoLength);
|
||
ReleaseResource(tempHandle);
|
||
}
|
||
#endif
|
||
}
|
||
|
||
//-------------------------------------------------------------- InitSrcRects
|
||
|
||
// This is a nasty, ugly function that initializes all global rectangles<65>
|
||
// used in Glider PRO.
|
||
|
||
void InitSrcRects (void)
|
||
{
|
||
QSetRect(&srcRects[kFloorVent], 0, 0, 48, 11); // Blowers
|
||
QOffsetRect(&srcRects[kFloorVent], 0, 0);
|
||
QSetRect(&srcRects[kCeilingVent], 0, 0, 48, 11);
|
||
QOffsetRect(&srcRects[kCeilingVent], 0, 11);
|
||
QSetRect(&srcRects[kFloorBlower], 0, 0, 48, 15);
|
||
QOffsetRect(&srcRects[kFloorBlower], 0, 22);
|
||
QSetRect(&srcRects[kCeilingBlower], 0, 0, 48, 15);
|
||
QOffsetRect(&srcRects[kCeilingBlower], 0, 37);
|
||
QSetRect(&srcRects[kSewerGrate], 0, 0, 48, 17);
|
||
QOffsetRect(&srcRects[kSewerGrate], 0, 52);
|
||
QSetRect(&srcRects[kLeftFan], 0, 0, 40, 55);
|
||
QOffsetRect(&srcRects[kLeftFan], 0, 69);
|
||
QSetRect(&srcRects[kRightFan], 0, 0, 40, 55);
|
||
QOffsetRect(&srcRects[kRightFan], 0, 124);
|
||
QSetRect(&srcRects[kTaper], 0, 0, 20, 59);
|
||
QOffsetRect(&srcRects[kTaper], 0, 209);
|
||
QSetRect(&srcRects[kCandle], 0, 0, 32, 30);
|
||
QOffsetRect(&srcRects[kCandle], 0, 179);
|
||
QSetRect(&srcRects[kStubby], 0, 0, 20, 36);
|
||
QOffsetRect(&srcRects[kStubby], 0, 268);
|
||
QSetRect(&srcRects[kTiki], 0, 0, 27, 28);
|
||
QOffsetRect(&srcRects[kTiki], 21, 268);
|
||
QSetRect(&srcRects[kBBQ], 0, 0, 64, 33);
|
||
QSetRect(&srcRects[kInvisBlower], 0, 0, 24, 24);
|
||
QSetRect(&srcRects[kGrecoVent], 0, 0, 48, 18);
|
||
QOffsetRect(&srcRects[kGrecoVent], 0, 340);
|
||
QSetRect(&srcRects[kSewerBlower], 0, 0, 32, 12);
|
||
QOffsetRect(&srcRects[kSewerBlower], 0, 390);
|
||
QSetRect(&srcRects[kLiftArea], 0, 0, 64, 32);
|
||
|
||
QSetRect(&srcRects[kTable], 0, 0, 64, kTableThick); // Furniture
|
||
QSetRect(&srcRects[kShelf], 0, 0, 64, kShelfThick);
|
||
QSetRect(&srcRects[kCabinet], 0, 0, 64, 64);
|
||
QSetRect(&srcRects[kFilingCabinet], 0, 0, 74, 107);
|
||
QSetRect(&srcRects[kWasteBasket], 0, 0, 64, 61);
|
||
QOffsetRect(&srcRects[kWasteBasket], 0, 43);
|
||
QSetRect(&srcRects[kMilkCrate], 0, 0, 64, 58);
|
||
QOffsetRect(&srcRects[kMilkCrate], 0, 104);
|
||
QSetRect(&srcRects[kCounter], 0, 0, 128, 64);
|
||
QSetRect(&srcRects[kDresser], 0, 0, 128, 64);
|
||
QSetRect(&srcRects[kDeckTable], 0, 0, 64, kTableThick);
|
||
QSetRect(&srcRects[kStool], 0, 0, 48, 38);
|
||
QOffsetRect(&srcRects[kStool], 0, 183);
|
||
QSetRect(&srcRects[kTrunk], 0, 0, 144, 80);
|
||
QSetRect(&srcRects[kInvisObstacle], 0, 0, 64, 64);
|
||
QSetRect(&srcRects[kManhole], 0, 0, 123, 22);
|
||
QSetRect(&srcRects[kBooks], 0, 0, 64, 51);
|
||
QSetRect(&srcRects[kInvisBounce], 0, 0, 64, 64);
|
||
|
||
QSetRect(&srcRects[kRedClock], 0, 0, 28, 17); // Prizes
|
||
QSetRect(&srcRects[kBlueClock], 0, 0, 28, 25);
|
||
QOffsetRect(&srcRects[kBlueClock], 0, 17);
|
||
QSetRect(&srcRects[kYellowClock], 0, 0, 28, 28);
|
||
QOffsetRect(&srcRects[kYellowClock], 0, 42);
|
||
QSetRect(&srcRects[kCuckoo], 0, 0, 40, 80);
|
||
QOffsetRect(&srcRects[kCuckoo], 0, 148);
|
||
QSetRect(&srcRects[kPaper], 0, 0, 48, 21);
|
||
QOffsetRect(&srcRects[kPaper], 0, 127);
|
||
QSetRect(&srcRects[kBattery], 0, 0, 16, 25);
|
||
QOffsetRect(&srcRects[kBattery], 32, 0);
|
||
QSetRect(&srcRects[kBands], 0, 0, 28, 23);
|
||
QOffsetRect(&srcRects[kBands], 20, 70);
|
||
QSetRect(&srcRects[kGreaseRt], 0, 0, 32, 27);
|
||
QOffsetRect(&srcRects[kGreaseRt], 0, 243);
|
||
QSetRect(&srcRects[kGreaseLf], 0, 0, 32, 27);
|
||
QOffsetRect(&srcRects[kGreaseLf], 0, 324);
|
||
QSetRect(&srcRects[kFoil], 0, 0, 55, 15);
|
||
QOffsetRect(&srcRects[kFoil], 0, 228);
|
||
QSetRect(&srcRects[kInvisBonus], 0, 0, 24, 24);
|
||
QSetRect(&srcRects[kStar], 0, 0, 32, 31);
|
||
QOffsetRect(&srcRects[kStar], 48, 0);
|
||
QSetRect(&srcRects[kSparkle], 0, 0, 20, 19);
|
||
QOffsetRect(&srcRects[kSparkle], 0, 70);
|
||
QSetRect(&srcRects[kHelium], 0, 0, 56, 16);
|
||
QOffsetRect(&srcRects[kHelium], 32, 270);
|
||
QSetRect(&srcRects[kSlider], 0, 0, 64, 16);
|
||
|
||
QSetRect(&srcRects[kUpStairs], 0, 0, 160, 267); // Transport
|
||
QSetRect(&srcRects[kDownStairs], 0, 0, 160, 267);
|
||
QSetRect(&srcRects[kMailboxLf], 0, 0, 94, 80);
|
||
QSetRect(&srcRects[kMailboxRt], 0, 0, 94, 80);
|
||
QSetRect(&srcRects[kFloorTrans], 0, 0, 56, 15);
|
||
QOffsetRect(&srcRects[kFloorTrans], 0, 1);
|
||
QSetRect(&srcRects[kCeilingTrans], 0, 0, 56, 15);
|
||
QOffsetRect(&srcRects[kCeilingTrans], 0, 16);
|
||
QSetRect(&srcRects[kDoorInLf], 0, 0, 144, 322);
|
||
QSetRect(&srcRects[kDoorInRt], 0, 0, 144, 322);
|
||
QSetRect(&srcRects[kDoorExRt], 0, 0, 16, 322);
|
||
QSetRect(&srcRects[kDoorExLf], 0, 0, 16, 322);
|
||
QSetRect(&srcRects[kWindowInLf], 0, 0, 20, 170);
|
||
QSetRect(&srcRects[kWindowInRt], 0, 0, 20, 170);
|
||
QSetRect(&srcRects[kWindowExRt], 0, 0, 16, 170);
|
||
QSetRect(&srcRects[kWindowExLf], 0, 0, 16, 170);
|
||
QSetRect(&srcRects[kInvisTrans], 0, 0, 64, 32);
|
||
QSetRect(&srcRects[kDeluxeTrans], 0, 0, 64, 64);
|
||
|
||
QSetRect(&srcRects[kLightSwitch], 0, 0, 15, 24); // Switch
|
||
QSetRect(&srcRects[kMachineSwitch], 0, 0, 16, 24);
|
||
QOffsetRect(&srcRects[kMachineSwitch], 0, 48);
|
||
QSetRect(&srcRects[kThermostat], 0, 0, 15, 24);
|
||
QOffsetRect(&srcRects[kThermostat], 0, 48);
|
||
QSetRect(&srcRects[kPowerSwitch], 0, 0, 8, 8);
|
||
QOffsetRect(&srcRects[kPowerSwitch], 0, 72);
|
||
QSetRect(&srcRects[kKnifeSwitch], 0, 0, 16, 24);
|
||
QOffsetRect(&srcRects[kKnifeSwitch], 0, 80);
|
||
QSetRect(&srcRects[kInvisSwitch], 0, 0, 12, 12);
|
||
QSetRect(&srcRects[kTrigger], 0, 0, 12, 12);
|
||
QSetRect(&srcRects[kLgTrigger], 0, 0, 48, 48);
|
||
QSetRect(&srcRects[kSoundTrigger], 0, 0, 32, 32);
|
||
|
||
QSetRect(&srcRects[kCeilingLight], 0, 0, 64, 20); // Lights
|
||
QOffsetRect(&srcRects[kCeilingLight], 0, 0);
|
||
QSetRect(&srcRects[kLightBulb], 0, 0, 16, 28);
|
||
QOffsetRect(&srcRects[kLightBulb], 0, 20);
|
||
QSetRect(&srcRects[kTableLamp], 0, 0, 48, 70);
|
||
QOffsetRect(&srcRects[kTableLamp], 16, 20);
|
||
QSetRect(&srcRects[kHipLamp], 0, 0, 72, 276);
|
||
QSetRect(&srcRects[kDecoLamp], 0, 0, 64, 212);
|
||
QSetRect(&srcRects[kFlourescent], 0, 0, 64, 12);
|
||
QSetRect(&srcRects[kTrackLight], 0, 0, 64, 24);
|
||
QSetRect(&srcRects[kInvisLight], 0, 0, 16, 16);
|
||
|
||
QSetRect(&srcRects[kShredder], 0, 0, 73, 22); // Appliances
|
||
QSetRect(&srcRects[kToaster], 0, 0, 48, 27);
|
||
QOffsetRect(&srcRects[kToaster], 0, 22);
|
||
QSetRect(&srcRects[kMacPlus], 0, 0, 48, 58);
|
||
QOffsetRect(&srcRects[kMacPlus], 0, 49);
|
||
QSetRect(&srcRects[kGuitar], 0, 0, 64, 172);
|
||
QSetRect(&srcRects[kTV], 0, 0, 92, 77);
|
||
QSetRect(&srcRects[kCoffee], 0, 0, 43, 64);
|
||
QOffsetRect(&srcRects[kCoffee], 0, 107);
|
||
QSetRect(&srcRects[kOutlet], 0, 0, 16, 24);
|
||
QOffsetRect(&srcRects[kOutlet], 64, 22);
|
||
QSetRect(&srcRects[kVCR], 0, 0, 96, 22);
|
||
QSetRect(&srcRects[kStereo], 0, 0, 128, 53);
|
||
QSetRect(&srcRects[kMicrowave], 0, 0, 92, 59);
|
||
QSetRect(&srcRects[kCinderBlock], 0, 0, 40, 62);
|
||
QSetRect(&srcRects[kFlowerBox], 0, 0, 80, 32);
|
||
QSetRect(&srcRects[kCDs], 0, 0, 16, 30);
|
||
QOffsetRect(&srcRects[kCDs], 48, 22);
|
||
QSetRect(&srcRects[kCustomPict], 0, 0, 72, 34);
|
||
|
||
QSetRect(&srcRects[kBalloon], 0, 0, 24, 30); // Enemies
|
||
QSetRect(&srcRects[kCopterLf], 0, 0, 32, 30);
|
||
QSetRect(&srcRects[kCopterRt], 0, 0, 32, 30);
|
||
QSetRect(&srcRects[kDartLf], 0, 0, 64, 19);
|
||
QSetRect(&srcRects[kDartRt], 0, 0, 64, 19);
|
||
QSetRect(&srcRects[kBall], 0, 0, 32, 32);
|
||
QSetRect(&srcRects[kDrip], 0, 0, 16, 12);
|
||
QSetRect(&srcRects[kFish], 0, 0, 36, 33);
|
||
QSetRect(&srcRects[kCobweb], 0, 0, 54, 45);
|
||
|
||
QSetRect(&srcRects[kOzma], 0, 0, 102, 92); // Clutter
|
||
QSetRect(&srcRects[kMirror], 0, 0, 64, 64);
|
||
QSetRect(&srcRects[kMousehole], 0, 0, 10, 11);
|
||
QSetRect(&srcRects[kFireplace], 0, 0, 180, 142);
|
||
QSetRect(&srcRects[kWallWindow], 0, 0, 64, 80);
|
||
QSetRect(&srcRects[kBear], 0, 0, 56, 58);
|
||
QSetRect(&srcRects[kCalendar], 0, 0, 63, 92);
|
||
QSetRect(&srcRects[kVase1], 0, 0, 36, 45);
|
||
QSetRect(&srcRects[kVase2], 0, 0, 35, 57);
|
||
QSetRect(&srcRects[kBulletin], 0, 0, 80, 58);
|
||
QSetRect(&srcRects[kCloud], 0, 0, 128, 30);
|
||
QSetRect(&srcRects[kFaucet], 0, 0, 56, 18);
|
||
QOffsetRect(&srcRects[kFaucet], 0, 51);
|
||
QSetRect(&srcRects[kRug], 0, 0, 144, 18);
|
||
QSetRect(&srcRects[kChimes], 0, 0, 28, 74);
|
||
}
|
||
|