Glider4/Glider_405/Sources/G-Globals.p

1 line
10 KiB
OpenEdge ABL
Executable File
Raw Blame History

unit Globals;
interface
uses
Palettes;
const
kGlideVersion = $0100; {version of house format}
kStackSize = 24576; {must be even - stack size}
kSleep = 1; {sleep time in Ticks}
kSuspendResumeBit = $0001; {for WNE}
kResuming = 1; {for WNE}
kSecondaryAddr = $3F2700; {address of alternate page buffer}
kSlowScoreIncrement = 17; {fast machine extend score-odometer}
kFastScoreIncrement = 37; {slow machine race score-odometer}
kMouseSlop = 1; {who knows}
kMinBassLoop = 14; {quickest pace of duh-dum}
kBassFract = 8; {smaller = slower bass @ 1st / larger = quicker}
kBonusTimeToBeat = 256; {number of passes for time bonus}
kCeilingVert = 24; {absolute ceiling in pixels}
kFloorVert = 325; {absolute floor in pixels}
kFloorLimit = kFloorVert + 5;
kMaxThrust = 5; {maximum speed (in pixels) of glider}
kLastHelpScreen = 7; {number of help screens}
kCursCount = 12; {number of frames for animated cursor}
rAcurID = 128; {resource ID numbers}
rMainWndoID = 128;
rAlertID = 128;
rFileAlertID = 129;
rSoundDlgID = 131;
rQuitNoSaveAlertID = 132;
rDepthAlertID = 136;
rCustomKeysID = 137;
rCustGetID = 256;
rAlertStrIDs = 128;
rFileStrIDs = 129;
rMiscStrID = 130;
rDemoStrIDs = 131;
rObjectPictID = 128;
rMaskPictID = 129;
rFarmPict = 130;
rSidePict1 = 140;
rSidePict2 = 141;
rIdleID = 200;
rColorIdleID = 210;
rHelpBasePictID = 1000;
kDefaultLeftKey = $2B; {default control keys}
kDefaultRightKey = $2F;
kDefaultEnergyKey = $24;
kDefaultBandKey = $31;
kDefaultLeftName = ', key'; {default names for control keys}
kDefaultRightName = '. key';
kDefaultEnergyName = 'return';
kDefaultBandName = 'space';
kTabKey = $09; {misc. ascii codes}
kReturnKey = $0D;
kSpaceBar = $20;
kSKeyMap = $01; {misc. keymap codes}
kQKeyMap = $0C;
kEKeyMap = $0E;
kReturnKeyMap = $24;
kTabKeyMap = $30;
kControlKeyMap = $3B;
kCommandKeyMap = $37;
kShiftKey = $38;
kErrUnaccounted = 1; {error codes}
kErrMacPlusNeeded = 2; {these correspond with STR#}
kErr2Or16Colors = 4; {resources for the TEXT part}
kErrNotEnoughMem = 5; {of the message}
kErrUnknownAtInit = 6;
kErrMemLow = 7;
kErrGraphicsNotFound = 8;
kErrGraphicLoad = 9;
kErrSavingPrefs = 10;
kErrAirChange = 11;
kErrLoadingRes = 12;
kErrFileExists = 13;
kErrNothingToPrint = 14;
kErrWrongHouseVers = 15;
kErrLoadingDfltHouse = 16;
kErrLoadingPrefs = 17;
kErrNotDemoHouse = 18;
kErrExitSansGraphics = 19;
kErrGraphicsAre2Bit = 20;
kErrGraphicsAre16Bit = 21;
kErrGameOldVers = 22;
kErrExitSansHouse = 23;
kErrHouseModified = 24;
kErrBackgroundMusic = 25;
kErrDepthSwitched = 26;
kErrStartUpWrongType = 27;
kErrNoSounds = 28;
kErrVolLocked = 29;
kErrMissionINIT = 30;
kErrNotFirstHouse = 31;
kErrDemoRefuseHouse = 32;
kErrNewKeyboard = 33;
kHouseType = 0;
kArtType = 1;
kGameType = 2;
nulObj = 0; {room object codes}
{furniture}
table = 1;
shelf = 2;
books = 3;
cabnet = 4;
extRct = 5;
obsRct = 6;
{blowers}
flrVnt = 8;
celVnt = 9;
celDct = 10;
candle = 11;
lftFan = 12;
ritFan = 13;
{table objects}
clock = 16;
paper = 17;
grease = 18;
bnsRct = 19;
battry = 20;
rbrBnd = 21;
{wall objects}
litSwt = 24;
outlet = 25;
thermo = 26;
shredr = 27;
pwrSwt = 28;
guitar = 29;
{animate objects}
drip = 32;
toastr = 33;
ball = 34;
fshBwl = 35;
teaKtl = 36;
window = 37;
{jewelry}
paintg = 40;
mirror = 41;
basket = 42;
macTsh = 43;
upStar = 44;
dnStar = 45;
normal = 0; {glider situational modes}
fadingIn = 1;
fadingOut = 2;
turnRt2Lf = 3;
turnLf2Rt = 4;
burning = 5;
ascending = 6;
descending = 7;
shredding = 8;
{objects effects codes}
ignoreIt = 0; {null or unknown objects}
crashIt = 1; {tables, shelves, cabinets, etc...}
liftIt = 2; {floor vents}
dropIt = 3; {ceiling blower, some ducts}
moveIt = 4; {exit rects/suction ceiling ducts}
burnIt = 5; {candle if too close}
turnItLeft = 6; {left fan}
turnItRight = 7; {right fan}
awardIt = 8; {clocks}
extraIt = 9; {folded pieces of paper}
slideIt = 10; {grease fallen}
trickIt = 11; {bonus rect}
energizeIt = 12; {battery}
bandIt = 13; {rubber bands}
playIt = 14; {guitar}
lightIt = 15; {light switch}
zapIt = 16; {wall outlet}
airOnIt = 17; {thermostats}
shredIt = 18; {shredder}
toggleIt = 19; {power switch}
weightIt = 20; {?}
spillIt = 21; {grease standing up}
ascendIt = 22; {up stair case}
descendIt = 23; {down stair case}
steamIt = 24;
highScoreMode = 0; {demo mode numbers}
balloonMode = 1;
copterMode = 2;
dartMode = 3;
controlMode = 4;
tabMode = 5;
adMode = 6;
editorMode = 7;
colorMusicMode = 8;
ventCandleMode = 9;
bandBatteryMode = 10;
paperClockMode = 11;
lastDemo = 11;
helpScreensMode = 99;
iNothing = 0;
mApple = 128; {Menu resource ID}
iAbout = 1; {Menu items}
mGame = 129; {Menu resource ID}
iBegin = 1; {Menu items<EFBFBD>}
iLoadHouse = 2;
iEndGame = 3;
iLoadGame = 5;
iSaveGame = 6;
iSaveGameAs = 7;
iQuit = 9;
mOption = 130; {Menu resource ID}
iControls = 1; {Menu items<EFBFBD>}
iSound = 2;
iShowAir = 3;
iRestoreDeep = 4;
iHiScores = 6;
iHelp = 8;
mControls = 131; {Menu resource ID}
iHoldKeyboard = 1; {Menu items<EFBFBD>}
iDropKeyboard = 2;
iAbsMouse = 3;
iRelMouse = 4;
iConfigure = 6;
whoCares = 0; {place where entered room}
topOfRoom = 1;
bottomOfRoom = 2;
leftOfRoom = 3;
rightOfRoom = 4;
kWhistleSound = 13;
kTapSound = 27;
kCRSound = 28;
kMusicSound = 29; {ID of music sound}
kDuhDumSound = 30; {ID of bass beat}
type
objectData = record
objectIs: Integer;
boundRect: Rect;
amount: Integer;
extra: Integer;
isOn: Boolean;
end;
roomData = record
roomName: string[24];
numberOObjects: Integer;
backPictID: Integer;
tileOrder: array[0..7] of Integer;
leftOpen, rightOpen: Boolean;
animateKind: Integer;
animateNumber: Integer;
animateDelay: LongInt;
conditionCode: Integer;
theObjects: array[1..16] of objectData;
end;
houseRec = record
version: Integer;
numberORooms: Integer;
timeStamp: LongInt;
hiScores: array[0..19] of LongInt;
hiLevel: array[0..19] of Integer;
hiName: array[0..19] of string[24];
hiRoom: array[0..19] of string[24];
pictFile: string[32];
nextFile: string[32];
firstFile: string[32];
theRooms: array[1..40] of roomData;
end;
gliderRec = record
destRect, oldRect, wholeRect: Rect;
shadoDest, oldShado, wholeShado: Rect;
touchRect: Rect;
timeStamp: LongInt;
mode, phase: Integer;
srcNum: Integer;
forVel: Integer;
mass: Integer;
bands, energy: Integer;
isRight, isForward: Boolean;
end;
animateRec = record
destRect, wholeRect, oldRect: Rect;
horiOff, vertOff: Integer;
kind, phase: Integer;
tickStamp, delay: LongInt;
unSeen: Boolean;
end;
cycleRec = record
holdRect, wholeRect, oldRect: Rect;
tiedTo, kindIs, phase: Integer;
reset, position: LongInt;
accel, velocity: Integer;
end;
bandRec = record
dest, whole, old: Rect;
phase, velocity: Integer;
end;
scoreRec = record
rank: Integer;
changed: Boolean;
end;
pointRec = record
whereR: Rect;
tickStamp: LongInt;
saysWhat: string[16];
out: Boolean;
end;
lightningRec = record
theBolts: array[1..3, 0..7, 0..1] of Integer;
whichBolt, whatPhase: Integer;
whatTime: LongInt;
end;
BitMapPtr = ^BitMap;
IntPtr = ^Integer;
LongintPtr = ^Longint;
acur = record
whichBall: LongInt;
ball: array[1..kCursCount] of CursHandle;
end;
acurPtr = ^acur;
acurHand = ^acurPtr;
var
theEvent: EventRecord;
mainWndo: WindowPtr;
mainPalette: PaletteHandle;
wholeArea, fullArea, nullRect, smScoreRect, lgScoreRect: Rect;
wholeRgn: RgnHandle;
offMaskMap, offVirginMap, offLoadMap, offPlayerMap, offReserveMap: BitMap;
offMaskPort, offVirginPort, offLoadPort, offPlayerPort, offReservePort: GrafPtr;
offMaskBits, offVirginBits, offLoadBits, offPlayerBits, offReserveBits: Ptr;
virginCPort, loadCPort, objectCPort, reserveCPort: CGrafPort;
virginCPtr, loadCPtr, objectCPtr, reserveCPtr: CGrafPtr;
virginCBits, loadCBits, objectCBits, reserveCBits: Ptr;
rgbBlack, rgbWhite, rgbLtBlue, rgbRed, rgbBlue, rgbLtGreen: RGBColor;
rgbYellow, rgbViolet, rgbBrown, rgbLtBrown, rgbDkGray: RGBColor;
noCursor: CursHandle;
thisHouse: houseRec;
theKeys: KeyMap;
theErr: OSErr;
currentBall: Integer;
ballList: acurHand;
ballC: array[1..kCursCount] of CCrsrHandle;
theAnimates: array[1..16] of animateRec;
animateRct: array[0..2, -1..16] of Rect;
cycleObjects: array[1..16] of cycleRec;
floatPoints: pointRec;
theGlider: GliderRec;
roomVisits: array[1..40] of Boolean;
glideRct: array[0..27] of Rect;
shadoRct: array[0..1] of Rect;
nextPhase: array[1..4, 0..16] of Integer;
theBand: BandRec;
bandRct: array[0..2] of Rect;
roomScore, suppScore, rollScore, loopsThruRoom, workingGameNumber: LongInt;
scoreList: scoreRec;
rightOffset, downOffset, gliderResNum, wasSndVolume: Integer;
controlMethod, demoMode, demoCount, wasDepth: Integer;
liftAmount, mortals, shiftAmount, sideYouCantExit: Integer;
leftKey, rightKey, energyKey, bandKey, scoreIncrement: Integer;
roomAt, roomsPassed, nObjects, binaryFlip: Integer;
gameNumber, houseNumber, wasMBarHeight: Integer;
houseVolNum, gameVolNum, resVolNum, bassLoop, playBassTime: Integer;
nAnimates, nCycleObs, herKeyBoard, iGlidersHelp: Integer;
leftName, rightName, energyName, bandName: string[12];
playerName: string[24];
musicName, gameName, resourceName: string[32];
firstFileName, defaultHouse, housesName: string[32];
mirrorRgn, windowRgn, toastRgn: RgnHandle;
theLightning: LightningRec;
tileRects: array[0..7] of Rect;
srcRect: array[0..69] of Rect;
eventRect, reserveRects: array[0..16] of Rect;
eventKind: array[0..16, 0..2] of LongInt;
windowOpen, hasWindow, leftIsOpen, rightIsOpen, enteredLeft: Boolean;
cantSwitch, airVisible, hasMirror, hasToast, lightsOut, airOut: Boolean;
bandBorne, cantColor, soundOn, musicOn, inhibitSound, hasSys7: Boolean;
buttonFires, cantMusic, smsIsActive, doneFlag, inColor: Boolean;
inBackground, playing, pausing, hasWNE, restoreColor, refuseHigh: Boolean;
scoreIsRolling, lifeNormal, didntExitEntrance, areFlipping: Boolean;
mainScreenHidden, fileWasLost, is4Channel, useColorCursor: Boolean;
implementation
end.