Glider4/Glider_405/Sources/G-GameBody.p

1 line
6.0 KiB
OpenEdge ABL
Raw Normal View History

{------------------------------------------------------} { } { G L I D E R } { } { } { Glider 4.05, copyright 1991, Casady & Greene, Inc. } { All code contained herein is by john calhoun } { } { This is version 4.05 compiled with THINK Pascal 3.02 } { } {------------------------------------------------------} program Glider; {$I-} uses SMS, Palettes, Globals, GlobalUtils, IdleUtils, PlayActive, FileInNOut, IdleInput, Initialize; var eventHappened: Boolean; {=================================} procedure SavePrefs; type prefType = record theName: string[24]; houseName: string[32]; resName: string[32]; sndVolume: Integer; controlIs: Integer; leftIs, rightIs, energyIs, bandIs: Integer; musicIs, channel4Is, airVisIs, buttonIs, restoreIs: Boolean; leftNameIs, rightNameIs, energyNameIs, bandNameIs: string[12]; keyBoardIs: Integer; end; prefPtr = ^prefType; prefHand = ^prefPtr; var theirPrefs: prefHand; begin UseResFile(gliderResNum); theirPrefs := prefHand(NewHandle(SIZEOF(prefType))); if (theirPrefs = nil) then begin GenericAlert(kErrMemLow); Exit(SavePrefs); end; Handle(theirPrefs) := Get1Resource('Gprf', 128); if ((ResError = noErr) and (theirPrefs <> nil)) then begin HLock(Handle(theirPrefs)); with theirPrefs^^ do begin houseName := defaultHouse; theName := playerName; resName := resourceName; GetSoundVol(sndVolume); controlIs := controlMethod; leftIs := leftKey; rightIs := rightKey; energyIs := energyKey; bandIs := bandKey; musicIs := musicOn; channel4Is := is4Channel; {presently un-used} airVisIs := airVisible; buttonIs := buttonFires; restoreIs := restoreColor; leftNameIs := leftName; rightNameIs := rightName; energyNameIs := energyName; bandNameIs := bandName; keyBoardIs := herKeyBoard; end; end else begin GenericAlert(kErrLoadingRes); Exit(SavePrefs); end; ChangedResource(Handle(theirPrefs)); WriteResource(Handle(theirPrefs)); if (ResError <> noErr) then begin if ((ResError = FLckdErr) or (ResError = VLckdErr) or (ResError = WPrErr)) then GenericAlert(kErrSavingPrefs) else GenericAlert(ResError); end; HUnlock(Handle(theirPrefs)); ReleaseResource(Handle(theirPrefs)); end; {=================================} procedure DoUpdate; var whichWindow: WindowPtr; begin whichWindow := WindowPtr(theEvent.message); if (whichWindow = mainWndo) then begin BeginUpdate(mainWndo); RedrawWindowFrame; if ((demoMode = highScoreMode) and (not playing)) then DrawHiScores else if (demoMode = helpScreensMode) then DisplayAHelpScreen else begin if (inColor) then CopyBits(BitMapPtr(virginCPtr^.portPixMap^)^, GrafPtr(mainWndo)^.portBits, wholeArea, wholeArea, srcCopy, mainWndo^.visRgn) else CopyBits(offVirginMap, mainWndo^.portBits, wholeArea, wholeArea, srcCopy, mainWndo^.visRgn); end; EndUpdate(mainWndo); ClipRect(wholeArea); end; end; {=================================} procedure CloseUpShop; const Color = 1; GDTypeFlag = 1; var theDevice: GDHandle; {-----------} function SetDepth (gd: GDHandle; newDepth, whichFlags, newFlags: Integer): Integer; inline $203C, $000A, $0013, $AAA2; {-----------} begin DropIdle; ShowMenuBar; SpinBall; if (hasMirror) then begin hasMirror := FALSE; HUnlock(Handle(mirrorRgn)); DisposeRgn(mirrorRgn); end; if (hasWindow) then begin hasWindow := FALSE; HUnlock(Handle(windowRgn)); DisposeRgn(windowRgn); end; if (hasToast) then begin hasToast := FALSE; HUnlock(Handle(toastRgn)); DisposeRgn(toastRgn); end; SpinBall; if (smsIsActive) then SMSExit; smsIsActive := FALSE; SpinBall; if (wholeRgn <> nil) then begin HUnlock(Handle(wholeRgn)); DisposeRgn(wholeRgn); end; SpinBall; if (inColor) then begin if (mainPalette <> nil) then Dispose