From 430842d17b7a8b827a8821690a1e0a3dd71ab2ec Mon Sep 17 00:00:00 2001 From: elasota Date: Sun, 29 Dec 2019 06:38:18 -0500 Subject: [PATCH] File system refactoring --- GpApp/AppleEvents.cpp | 80 +++---- GpApp/Banner.cpp | 6 +- GpApp/DynamicMaps.cpp | 4 +- GpApp/Environ.cpp | 2 +- GpApp/Events.cpp | 8 +- GpApp/Externs.h | 1 + GpApp/FileError.cpp | 46 +--- GpApp/GameOver.cpp | 8 +- GpApp/GliderProtos.h | 8 +- GpApp/GliderStructs.h | 2 +- GpApp/HighScores.cpp | 203 +++++------------- GpApp/House.cpp | 40 ++-- GpApp/HouseIO.cpp | 131 +++++------ GpApp/HouseLegal.cpp | 2 +- GpApp/Main.cpp | 10 +- GpApp/Map.cpp | 4 +- GpApp/Menu.cpp | 4 +- GpApp/Music.cpp | 64 +++--- GpApp/ObjectDraw2.cpp | 50 ++--- GpApp/ObjectRects.cpp | 2 +- GpApp/Objects.cpp | 2 +- GpApp/Play.cpp | 12 +- GpApp/Prefs.cpp | 184 +++++----------- GpApp/Render.cpp | 2 +- GpApp/Room.cpp | 4 +- GpApp/RoomInfo.cpp | 4 +- GpApp/SavedGames.cpp | 10 +- GpApp/SelectHouse.cpp | 60 +++--- GpApp/Settings.cpp | 14 +- GpApp/Sound.cpp | 65 +++--- GpApp/StructuresInit.cpp | 110 +++++----- GpApp/StructuresInit2.cpp | 26 +-- GpApp/Tools.cpp | 4 +- GpApp/Utilities.cpp | 24 +-- GpApp/Utilities.h | 3 +- GpD3D/GpFileSystem_Win32.cpp | 26 ++- GpD3D/GpFileSystem_Win32.h | 9 +- PortabilityLayer/FileManager.cpp | 160 +++++++------- PortabilityLayer/FileManager.h | 71 +++--- PortabilityLayer/FilePermission.h | 1 + PortabilityLayer/FontFamily.cpp | 2 +- PortabilityLayer/HostFileSystem.h | 6 +- PortabilityLayer/MacFileInfo.h | 2 +- PortabilityLayer/MenuManager.cpp | 6 +- PortabilityLayer/PLAliases.cpp | 8 - PortabilityLayer/PLAliases.h | 9 - PortabilityLayer/PLAppleEvents.cpp | 28 +-- PortabilityLayer/PLAppleEvents.h | 14 +- PortabilityLayer/PLAppleEventsCommonTypes.h | 4 +- PortabilityLayer/PLCore.cpp | 160 +++++--------- PortabilityLayer/PLCore.h | 77 +++---- PortabilityLayer/PLErrorCodes.h | 46 ++-- PortabilityLayer/PLMovies.cpp | 40 ++-- PortabilityLayer/PLMovies.h | 20 +- PortabilityLayer/PLNavigation.cpp | 8 +- PortabilityLayer/PLNavigation.h | 5 +- PortabilityLayer/PLQDOffscreen.cpp | 9 +- PortabilityLayer/PLQDOffscreen.h | 3 +- PortabilityLayer/PLQDraw.cpp | 12 +- PortabilityLayer/PLQDraw.h | 6 +- PortabilityLayer/PLResourceManager.cpp | 8 +- PortabilityLayer/PLResources.cpp | 12 +- PortabilityLayer/PLResources.h | 8 +- PortabilityLayer/PLSound.cpp | 36 ++-- PortabilityLayer/PLSound.h | 12 +- PortabilityLayer/PortabilityLayer.vcxproj | 2 - .../PortabilityLayer.vcxproj.filters | 6 - PortabilityLayer/QDGraf.h | 6 +- PortabilityLayer/QDManager.cpp | 53 +---- PortabilityLayer/QDManager.h | 5 +- PortabilityLayer/QDPort.cpp | 6 +- PortabilityLayer/QDPort.h | 3 +- PortabilityLayer/ResourceManager.h | 2 +- PortabilityLayer/VirtualDirectory.h | 24 ++- 74 files changed, 874 insertions(+), 1240 deletions(-) delete mode 100644 PortabilityLayer/PLAliases.cpp delete mode 100644 PortabilityLayer/PLAliases.h diff --git a/GpApp/AppleEvents.cpp b/GpApp/AppleEvents.cpp index d4fd275..5b55609 100644 --- a/GpApp/AppleEvents.cpp +++ b/GpApp/AppleEvents.cpp @@ -14,16 +14,16 @@ #define kNoPrintingAlert 1031 -OSErr DoOpenAppAE (const AppleEvent *, AppleEvent *, UInt32); -OSErr DoOpenDocAE (const AppleEvent *, AppleEvent *, UInt32); -OSErr DoPrintDocAE (const AppleEvent *, AppleEvent *, UInt32); -OSErr DoQuitAE (const AppleEvent *, AppleEvent *, UInt32); -OSErr MyGotRequiredParams (const AppleEvent *); +PLError_t DoOpenAppAE (const AppleEvent *, AppleEvent *, UInt32); +PLError_t DoOpenDocAE (const AppleEvent *, AppleEvent *, UInt32); +PLError_t DoPrintDocAE (const AppleEvent *, AppleEvent *, UInt32); +PLError_t DoQuitAE (const AppleEvent *, AppleEvent *, UInt32); +PLError_t MyGotRequiredParams (const AppleEvent *); AEEventHandlerUPP openAppAEUPP, openDocAEUPP, printDocAEUPP, quitAEUPP; -extern FSSpecPtr theHousesSpecs; +extern VFileSpec *theHousesSpecs; extern long incrementModeTime; extern short thisHouseIndex, splashOriginH, splashOriginV; extern Boolean quitting; @@ -33,9 +33,9 @@ extern Boolean quitting; //-------------------------------------------------------------- DoOpenAppAE // Handles an "Open Application" Apple Event. -OSErr DoOpenAppAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) +PLError_t DoOpenAppAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) { - OSErr theErr; + PLError_t theErr; theErr = MyGotRequiredParams(theAE); return (theErr); @@ -44,34 +44,34 @@ OSErr DoOpenAppAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) //-------------------------------------------------------------- DoOpenDocAE // Handles an "Open Document" Apple Event. -OSErr DoOpenDocAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) +PLError_t DoOpenDocAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) { - FSSpec oneFSS; - FInfo finderInfo; + VFileSpec oneFSS; + VFileInfo finderInfo; AEDescList docList; long itemsInList; Size actualSize; AEKeyword keywd; DescType returnedType; - OSErr theErr, whoCares; + PLError_t theErr, whoCares; short i; theErr = AEGetParamDesc(theAE, keyDirectObject, typeAEList, &docList); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowAppleEventErr, theErr); return (theErr); } theErr = MyGotRequiredParams(theAE); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { whoCares = AEDisposeDesc(&docList); return (theErr); } theErr = AECountItems(&docList, &itemsInList); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { whoCares = AEDisposeDesc(&docList); return (theErr); @@ -82,28 +82,28 @@ OSErr DoOpenDocAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) { theErr = AEGetNthPtr(&docList, i, typeFSS, &keywd, &returnedType, &oneFSS, sizeof(oneFSS), &actualSize); - if (theErr == noErr) + if (theErr == PLErrors::kNone) { - theErr = FSpGetFInfo(&oneFSS, &finderInfo); - if ((theErr == noErr) && (finderInfo.fdType == 'gliH')) - AddExtraHouse(&oneFSS); + theErr = FSpGetFInfo(oneFSS, finderInfo); + if ((theErr == PLErrors::kNone) && (finderInfo.m_type == 'gliH')) + AddExtraHouse(oneFSS); } } if (itemsInList > 0) { theErr = AEGetNthPtr(&docList, 1, typeFSS, &keywd, &returnedType, &oneFSS, sizeof(oneFSS), &actualSize); - if (theErr == noErr) + if (theErr == PLErrors::kNone) { - theErr = FSpGetFInfo(&oneFSS, &finderInfo); - if ((theErr == noErr) && (finderInfo.fdType == 'gliH')) + theErr = FSpGetFInfo(oneFSS, finderInfo); + if ((theErr == PLErrors::kNone) && (finderInfo.m_type == 'gliH')) { - whoCares = CloseHouse(); - PasStringCopy(oneFSS.name, thisHouseName); + CloseHouse(); + PasStringCopy(oneFSS.m_name, thisHouseName); BuildHouseList(); if (OpenHouse()) - whoCares = ReadHouse(); - PasStringCopy(theHousesSpecs[thisHouseIndex].name, thisHouseName); + ReadHouse(); + PasStringCopy(theHousesSpecs[thisHouseIndex].m_name, thisHouseName); OpenCloseEditWindows(); incrementModeTime = TickCount() + kIdleSplashTicks; if ((theMode == kSplashMode) || (theMode == kPlayMode)) @@ -126,25 +126,25 @@ OSErr DoOpenDocAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) //-------------------------------------------------------------- DoPrintDocAE // Handles a "Print Document" Apple Event. -OSErr DoPrintDocAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) +PLError_t DoPrintDocAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) { short hitWhat; // CenterAlert(kNoPrintingAlert); hitWhat = Alert(kNoPrintingAlert, nil); - return errAEEventNotHandled; + return PLErrors::kInvalidParameter; } //-------------------------------------------------------------- DoQuitAE // Handles a "Quit Application" Apple Event. -OSErr DoQuitAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) +PLError_t DoQuitAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) { - OSErr isHuman; + PLError_t isHuman; isHuman = MyGotRequiredParams(theAE); - if (isHuman == noErr) + if (isHuman == PLErrors::kNone) quitting = true; return isHuman; @@ -153,14 +153,14 @@ OSErr DoQuitAE (const AppleEvent *theAE, AppleEvent *reply, UInt32 ref) //-------------------------------------------------------------- MyGotRequiredParams // Have no clue! :) -OSErr MyGotRequiredParams (const AppleEvent *theAE) +PLError_t MyGotRequiredParams (const AppleEvent *theAE) { DescType returnedType; Size actualSize; return (AEGetAttributePtr(theAE, keyMissedKeywordAttr, typeWildCard, - &returnedType, 0L, 0, &actualSize) == errAEDescNotFound) ? noErr : - errAEParamMissed; + &returnedType, 0L, 0, &actualSize) == errAEDescNotFound) ? PLErrors::kNone : + PLErrors::kInvalidParameter; } //-------------------------------------------------------------- SetUpAppleEvents @@ -168,7 +168,7 @@ OSErr MyGotRequiredParams (const AppleEvent *theAE) void SetUpAppleEvents (void) { - OSErr theErr; + PLError_t theErr; openAppAEUPP = NewAEEventHandlerProc(DoOpenAppAE); openDocAEUPP = NewAEEventHandlerProc(DoOpenDocAE); @@ -177,26 +177,26 @@ void SetUpAppleEvents (void) theErr = AEInstallEventHandler(kCoreEventClass, // install oapp kAEOpenApplication, openAppAEUPP, 0, false); - if (theErr != noErr) + if (theErr != PLErrors::kNone) YellowAlert(kYellowAppleEventErr, theErr); theErr = AEInstallEventHandler(kCoreEventClass, // install odoc kAEOpenDocuments, openDocAEUPP, 0, false); - if (theErr != noErr) + if (theErr != PLErrors::kNone) YellowAlert(kYellowAppleEventErr, theErr); theErr = AEInstallEventHandler(kCoreEventClass, // install pdoc kAEPrintDocuments, printDocAEUPP, 0, false); - if (theErr != noErr) + if (theErr != PLErrors::kNone) YellowAlert(kYellowAppleEventErr, theErr); theErr = AEInstallEventHandler(kCoreEventClass, // install quit kAEQuitApplication, quitAEUPP, 0, false); - if (theErr != noErr) + if (theErr != PLErrors::kNone) YellowAlert(kYellowAppleEventErr, theErr); theErr = AESetInteractionAllowed(kAEInteractWithAll); - if (theErr != noErr) + if (theErr != PLErrors::kNone) YellowAlert(kYellowAppleEventErr, theErr); } diff --git a/GpApp/Banner.cpp b/GpApp/Banner.cpp index 09d0427..1aff257 100644 --- a/GpApp/Banner.cpp +++ b/GpApp/Banner.cpp @@ -45,7 +45,7 @@ void DrawBanner (Point *topLeft) Rect wholePage, partPage, mapBounds; GWorldPtr tempMap; GWorldPtr tempMask; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); @@ -64,11 +64,11 @@ void DrawBanner (Point *topLeft) partPage.top = partPage.bottom - 30; mapBounds = partPage; ZeroRectCorner(&mapBounds); - theErr = CreateOffScreenGWorld(&tempMap, &mapBounds, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &mapBounds, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(kBannerPageBottomPICT); - theErr = CreateOffScreenGWorld(&tempMask, &mapBounds, 1); + theErr = CreateOffScreenGWorld(&tempMask, &mapBounds, GpPixelFormats::kBW1); SetGraphicsPort(tempMask); LoadGraphic(kBannerPageBottomMask); diff --git a/GpApp/DynamicMaps.cpp b/GpApp/DynamicMaps.cpp index 6efa74f..14ee7f2 100644 --- a/GpApp/DynamicMaps.cpp +++ b/GpApp/DynamicMaps.cpp @@ -70,7 +70,7 @@ void NilSavedMaps (void) short BackUpToSavedMap (Rect *theRect, short where, short who) { Rect mapRect; - OSErr theErr; + PLError_t theErr; if (numSavedMaps >= kMaxSavedMaps) return(-1); @@ -79,7 +79,7 @@ short BackUpToSavedMap (Rect *theRect, short where, short who) ZeroRectCorner(&mapRect); savedMaps[numSavedMaps].dest = *theRect; // CreateOffScreenPixMap(&mapRect, &savedMaps[numSavedMaps].map); - theErr = CreateOffScreenGWorld(&savedMaps[numSavedMaps].map, &mapRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&savedMaps[numSavedMaps].map, &mapRect, kPreferredPixelFormat); CopyBits((BitMap *)*GetGWorldPixMap(backSrcMap), GetPortBitMapForCopyBits(savedMaps[numSavedMaps].map), diff --git a/GpApp/Environ.cpp b/GpApp/Environ.cpp index 05ff309..554f7a3 100644 --- a/GpApp/Environ.cpp +++ b/GpApp/Environ.cpp @@ -66,7 +66,7 @@ extern Boolean dontLoadMusic, dontLoadSounds; /* short GetThisVolumeRefNum (void) { - OSErr theErr; + PLError_t theErr; short vRef; theErr = GetVol(nil, &vRef); diff --git a/GpApp/Events.cpp b/GpApp/Events.cpp index a71409f..39f483e 100644 --- a/GpApp/Events.cpp +++ b/GpApp/Events.cpp @@ -379,7 +379,7 @@ void HandleUpdateEvent (EventRecord *theEvent) void HandleOSEvent (EventRecord *theEvent) { - OSErr theErr; + PLError_t theErr; short buttonHit; if (theEvent->message & 0x01000000) // suspend or resume event @@ -408,7 +408,7 @@ void HandleOSEvent (EventRecord *theEvent) if ((isPlayMusicIdle) && (theMode != kEditMode)) { theErr = StartMusic(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowNoMusic, theErr); failedMusic = true; @@ -436,10 +436,10 @@ void HandleOSEvent (EventRecord *theEvent) void HandleHighLevelEvent (EventRecord *theEvent) { - OSErr theErr; + PLError_t theErr; theErr = AEProcessAppleEvent(theEvent); - if ((theErr != noErr) && (theErr != errAEEventNotHandled)) + if ((theErr != PLErrors::kNone) && (theErr != errAEEventNotHandled)) YellowAlert(kYellowAppleEventErr, theErr); } diff --git a/GpApp/Externs.h b/GpApp/Externs.h index 39ffa4d..06fede8 100644 --- a/GpApp/Externs.h +++ b/GpApp/Externs.h @@ -17,6 +17,7 @@ namespace PortabilityLayer } #define kPreferredDepth 8 +#define kPreferredPixelFormat (GpPixelFormats::k8BitStandard) #define kNilPointer 0L diff --git a/GpApp/FileError.cpp b/GpApp/FileError.cpp index 07ac86a..68dc0bc 100644 --- a/GpApp/FileError.cpp +++ b/GpApp/FileError.cpp @@ -31,59 +31,23 @@ Boolean CheckFileError (short resultCode, const PLPasStr &fileName) short dummyInt, stringIndex; Str255 errMessage, errNumString; - if (resultCode == noErr) // No problems? Then cruise + if (resultCode == PLErrors::kNone) // No problems? Then cruise return(true); switch (resultCode) { - case dirFulErr: - stringIndex = 2; - break; - case dskFulErr: - stringIndex = 3; - break; - case ioErr: + case PLErrors::kIOError: stringIndex = 4; break; - case bdNamErr: + case PLErrors::kBadFileName: stringIndex = 5; break; - case fnOpnErr: + case PLErrors::kAccessDenied: stringIndex = 6; break; - case mFulErr: + case PLErrors::kOutOfMemory: stringIndex = 7; break; - case tmfoErr: - stringIndex = 8; - break; - case wPrErr: - stringIndex = 9; - break; - case fLckdErr: - stringIndex = 10; - break; - case vLckdErr: - stringIndex = 11; - break; - case fBsyErr: - stringIndex = 12; - break; - case dupFNErr: - stringIndex = 13; - break; - case opWrErr: - stringIndex = 14; - break; - case volOffLinErr: - stringIndex = 15; - break; - case permErr: - stringIndex = 16; - break; - case wrPermErr: - stringIndex = 17; - break; default: stringIndex = 1; break; diff --git a/GpApp/GameOver.cpp b/GpApp/GameOver.cpp index 54ba2f0..bb3381e 100644 --- a/GpApp/GameOver.cpp +++ b/GpApp/GameOver.cpp @@ -252,21 +252,21 @@ void InitDiedGameOver (void) #define kPageBackUp 128 short i; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&pageSrcRect, 0, 0, 25, 32 * 8); - theErr = CreateOffScreenGWorld(&gameOverSrcMap, &pageSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&gameOverSrcMap, &pageSrcRect, kPreferredPixelFormat); SetGraphicsPort(gameOverSrcMap); LoadGraphic(kLettersPictID); QSetRect(&pageSrcRect, 0, 0, 32, 32 * kPageFrames); - theErr = CreateOffScreenGWorld(&pageSrcMap, &pageSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&pageSrcMap, &pageSrcRect, kPreferredPixelFormat); SetGraphicsPort(pageSrcMap); LoadGraphic(kPagesPictID); - theErr = CreateOffScreenGWorld(&pageMaskMap, &pageSrcRect, 1); + theErr = CreateOffScreenGWorld(&pageMaskMap, &pageSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(pageMaskMap); LoadGraphic(kPagesMaskID); diff --git a/GpApp/GliderProtos.h b/GpApp/GliderProtos.h index de12d8d..4fbc2df 100644 --- a/GpApp/GliderProtos.h +++ b/GpApp/GliderProtos.h @@ -111,7 +111,7 @@ void ShiftWholeHouse (SInt16); void DoHouseInfo (void); // --- HouseInfo.c Boolean OpenHouse (void); // --- HouseIO.c -Boolean OpenSpecificHouse (FSSpec *); +Boolean OpenSpecificHouse (const VFileSpec &); Boolean SaveHouseAs (void); Boolean ReadHouse (void); Boolean WriteHouse (Boolean); @@ -223,7 +223,7 @@ void StartGliderFoilGoing (gliderPtr); void StartGliderFoilLosing (gliderPtr); void TagGliderIdle (gliderPtr); -OSErr StartMusic (void); // --- Music.c +PLError_t StartMusic (void); // --- Music.c void StopTheMusic (void); void ToggleMusicWhilePlaying (void); void SetMusicalMode (SInt16); @@ -440,14 +440,14 @@ Boolean HasDragManager (void); void DoLoadHouse (void); // --- SelectHouse.c void BuildHouseList (void); -void AddExtraHouse (FSSpec *); +void AddExtraHouse (const VFileSpec &); void DoSettingsMain (void); // --- Settings.c void PlayPrioritySound (SInt16, SInt16); // --- Sound.c void FlushAnyTriggerPlaying (void); void PlayExclusiveSoundChannel (SInt16, SInt16, SInt16, SInt16); -OSErr LoadTriggerSound (SInt16); +PLError_t LoadTriggerSound (SInt16); void DumpTriggerSound (void); void InitSound (void); void KillSound (void); diff --git a/GpApp/GliderStructs.h b/GpApp/GliderStructs.h index 6df0176..2f5fc1f 100644 --- a/GpApp/GliderStructs.h +++ b/GpApp/GliderStructs.h @@ -143,7 +143,7 @@ typedef struct typedef struct { - FSSpec house; // 70 + VFileSpec house; // 70 short version; // 2 short wasStarsLeft; // 2 long timeStamp; // 4 diff --git a/GpApp/HighScores.cpp b/GpApp/HighScores.cpp index f723e2a..cab7a54 100644 --- a/GpApp/HighScores.cpp +++ b/GpApp/HighScores.cpp @@ -16,11 +16,17 @@ #include "DialogUtils.h" #include "Externs.h" #include "Environ.h" +#include "FileManager.h" #include "House.h" +#include "IOStream.h" #include "MainWindow.h" #include "RectUtils.h" #include "Utilities.h" +namespace PortabilityLayer +{ + class IOStream; +} #define kHighScoresPictID 1994 #define kHighScoresMaskID 1998 @@ -39,9 +45,7 @@ void GetHighScoreName (short); void UpdateBannerDialog (DialogPtr); Boolean BannerFilter (DialogPtr, EventRecord *, short *); void GetHighScoreBanner (void); -Boolean CreateScoresFolder (long *); -Boolean FindHighScoresFolder (short *, long *); -Boolean OpenHighScoresFile (FSSpec *, short *); +Boolean OpenHighScoresFile (const VFileSpec &spec, PortabilityLayer::IOStream *&outStream); Str31 highBanner; @@ -97,7 +101,7 @@ void DrawHighScores (void) { GWorldPtr tempMap, tempMask; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; houseType *thisHousePtr; Rect tempRect, tempRect2; Str255 tempStr; @@ -110,11 +114,11 @@ void DrawHighScores (void) wasCPort = GetGraphicsPort(); QSetRect(&tempRect, 0, 0, 332, 30); - theErr = CreateOffScreenGWorld(&tempMap, &tempRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &tempRect, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(kHighScoresPictID); - theErr = CreateOffScreenGWorld(&tempMask, &tempRect, 1); + theErr = CreateOffScreenGWorld(&tempMask, &tempRect, GpPixelFormats::kBW1); SetGraphicsPort(tempMask); LoadGraphic(kHighScoresMaskID); @@ -622,97 +626,19 @@ void GetHighScoreBanner (void) DisposeModalFilterUPP(bannerFilterUPP); } -//-------------------------------------------------------------- CreateScoresFolder - -Boolean CreateScoresFolder (long *scoresDirID) -{ - FSSpec scoresSpec; - long prefsDirID; - OSErr theErr; - short volRefNum; - - theErr = FindFolder(kOnSystemDisk, kPreferencesFolderType, kCreateFolder, - &volRefNum, &prefsDirID); - if (!CheckFileError(theErr, PSTR("Prefs Folder"))) - return (false); - - theErr = FSMakeFSSpec(volRefNum, prefsDirID, PSTR("G-PRO Scores Ä"), &scoresSpec); - - theErr = FSpDirCreate(&scoresSpec, smSystemScript, scoresDirID); - if (!CheckFileError(theErr, PSTR("High Scores Folder"))) - return (false); - - return (true); -} - -//-------------------------------------------------------------- FindHighScoresFolder - -Boolean FindHighScoresFolder (short *volRefNum, long *scoresDirID) -{ - CInfoPBRec theBlock; - Str255 nameString; - long prefsDirID; - OSErr theErr; - short count; - Boolean foundIt; - - theErr = FindFolder(kOnSystemDisk, kPreferencesFolderType, kCreateFolder, - volRefNum, &prefsDirID); - if (!CheckFileError(theErr, PSTR("Prefs Folder"))) - return (false); - - PasStringCopy(PSTR("G-PRO Scores Ä"), nameString); - count = 1; - foundIt = false; - - theBlock.dirInfo.ioCompletion = nil; - theBlock.dirInfo.ioVRefNum = *volRefNum; - theBlock.dirInfo.ioNamePtr = nameString; - - while ((theErr == noErr) && (!foundIt)) - { - theBlock.dirInfo.ioFDirIndex = count; - theBlock.dirInfo.ioDrDirID = prefsDirID; - theErr = PBGetCatInfo(&theBlock, false); - if (theErr == noErr) - { - if ((theBlock.dirInfo.ioFlAttrib & 0x10) == 0x10) - { - if (EqualString(theBlock.dirInfo.ioNamePtr, PSTR("G-PRO Scores Ä"), - true, true)) - { - foundIt = true; - *scoresDirID = theBlock.dirInfo.ioDrDirID; - } - } - count++; - } - } - - if (theErr == fnfErr) - { - if (CreateScoresFolder(scoresDirID)) - return (true); - else - return (false); - } - else - return (true); -} - //-------------------------------------------------------------- OpenHighScoresFile -Boolean OpenHighScoresFile (FSSpec *scoreSpec, short *scoresRefNum) +Boolean OpenHighScoresFile (const VFileSpec &scoreSpec, PortabilityLayer::IOStream *&scoresStream) { - OSErr theErr; + PLError_t theErr; - theErr = FSpOpenDF(scoreSpec, fsCurPerm, scoresRefNum); - if (theErr == fnfErr) + theErr = PortabilityLayer::FileManager::GetInstance()->OpenFileDF(scoreSpec.m_dir, scoreSpec.m_name, PortabilityLayer::EFilePermission_Any, scoresStream); + if (theErr == PLErrors::kFileNotFound) { - theErr = FSpCreate(scoreSpec, 'ozm5', 'gliS', smSystemScript); + theErr = FSpCreate(scoreSpec, 'ozm5', 'gliS'); if (!CheckFileError(theErr, PSTR("New High Scores File"))) return (false); - theErr = FSpOpenDF(scoreSpec, fsCurPerm, scoresRefNum); + theErr = FSpOpenDF(scoreSpec, fsCurPerm, scoresStream); if (!CheckFileError(theErr, PSTR("High Score"))) return (false); } @@ -727,53 +653,46 @@ Boolean OpenHighScoresFile (FSSpec *scoreSpec, short *scoresRefNum) Boolean WriteScoresToDisk (void) { scoresType *theScores; - FSSpec scoreSpec; - long dirID, byteCount; - OSErr theErr; - short volRefNum, scoresRefNum; + VFileSpec scoreSpec; + long byteCount; + PLError_t theErr; + short volRefNum; char wasState; + PortabilityLayer::IOStream *scoresStream = nil; - if (!FindHighScoresFolder(&volRefNum, &dirID)) + scoreSpec = MakeVFileSpec(PortabilityLayer::VirtualDirectories::kHighScores, thisHouseName); + if (!OpenHighScoresFile(scoreSpec, scoresStream)) { SysBeep(1); return (false); } - - theErr = FSMakeFSSpec(volRefNum, dirID, thisHouseName, &scoreSpec); - if (!OpenHighScoresFile(&scoreSpec, &scoresRefNum)) + + if (!scoresStream->SeekStart(0)) { - SysBeep(1); - return (false); - } - - theErr = SetFPos(scoresRefNum, fsFromStart, 0L); - if (!CheckFileError(theErr, PSTR("High Scores File"))) - { - theErr = FSClose(scoresRefNum); + CheckFileError(PLErrors::kIOError, PSTR("High Scores File")); + scoresStream->Close(); return(false); } byteCount = sizeof(scoresType); theScores = &((*thisHouse)->highScores); - - theErr = FSWrite(scoresRefNum, &byteCount, (Ptr)theScores); - if (!CheckFileError(theErr, PSTR("High Scores File"))) + + if (scoresStream->Write(theScores, byteCount) != byteCount) { - theErr = FSClose(scoresRefNum); + CheckFileError(PLErrors::kIOError, PSTR("High Scores File")); + scoresStream->Close(); return(false); } - - theErr = SetEOF(scoresRefNum, byteCount); - if (!CheckFileError(theErr, PSTR("High Scores File"))) + + if (!scoresStream->Truncate(byteCount)) { - theErr = FSClose(scoresRefNum); + CheckFileError(PLErrors::kIOError, PSTR("High Scores File")); + scoresStream->Close(); return(false); } - - theErr = FSClose(scoresRefNum); - if (!CheckFileError(theErr, PSTR("High Scores File"))) - return(false); - + + scoresStream->Close(); + return (true); } @@ -782,52 +701,32 @@ Boolean WriteScoresToDisk (void) Boolean ReadScoresFromDisk (void) { scoresType *theScores; - FSSpec scoreSpec; - long dirID, byteCount; - OSErr theErr; - short volRefNum, scoresRefNum; + PortabilityLayer::UFilePos_t byteCount; + PLError_t theErr; + short volRefNum; char wasState; + PortabilityLayer::IOStream *scoresStream = nil; - if (!FindHighScoresFolder(&volRefNum, &dirID)) + VFileSpec scoreSpec = MakeVFileSpec(PortabilityLayer::VirtualDirectories::kHighScores, thisHouseName); + if (!OpenHighScoresFile(scoreSpec, scoresStream)) { SysBeep(1); return (false); } - theErr = FSMakeFSSpec(volRefNum, dirID, thisHouseName, &scoreSpec); - if (!OpenHighScoresFile(&scoreSpec, &scoresRefNum)) - { - SysBeep(1); - return (false); - } - - theErr = GetEOF(scoresRefNum, &byteCount); - if (!CheckFileError(theErr, PSTR("High Scores File"))) - { - theErr = FSClose(scoresRefNum); - return (false); - } - - theErr = SetFPos(scoresRefNum, fsFromStart, 0L); - if (!CheckFileError(theErr, PSTR("High Scores File"))) - { - theErr = FSClose(scoresRefNum); - return (false); - } + byteCount = scoresStream->Size(); theScores = &((*thisHouse)->highScores); - - theErr = FSRead(scoresRefNum, &byteCount, theScores); - if (!CheckFileError(theErr, PSTR("High Scores File"))) + + if (scoresStream->Read(theScores, byteCount) != byteCount) { - theErr = FSClose(scoresRefNum); + CheckFileError(PLErrors::kIOError, PSTR("High Scores File")); + scoresStream->Close(); return (false); } - theErr = FSClose(scoresRefNum); - if (!CheckFileError(theErr, PSTR("High Scores File"))) - return(false); - + scoresStream->Close(); + return (true); } diff --git a/GpApp/House.cpp b/GpApp/House.cpp index 042ec7c..5281289 100644 --- a/GpApp/House.cpp +++ b/GpApp/House.cpp @@ -13,6 +13,7 @@ #include "PLSound.h" #include "DialogUtils.h" #include "Externs.h" +#include "FileManager.h" #include "House.h" #include "RectUtils.h" @@ -52,30 +53,35 @@ Boolean CreateNewHouse (void) Size actualSize; NavReplyRecord theReply; NavDialogOptions dialogOptions; - FSSpec tempSpec; - FSSpec theSpec; - OSErr theErr; + VFileSpec tempSpec; + VFileSpec theSpec; + PLError_t theErr; theErr = NavGetDefaultDialogOptions(&dialogOptions); theErr = NavPutFile(nil, &theReply, &dialogOptions, nil, 'gliH', 'ozm5', nil); - if (theErr == userCanceledErr) + if (theErr == PLErrors::kUserCancelled_TEMP) return false; if (!theReply.validRecord) return (false); theErr = AEGetNthPtr(&(theReply.selection), 1, typeFSS, &theKeyword, - &actualType, &theSpec, sizeof(FSSpec), &actualSize); - + &actualType, &theSpec, sizeof(VFileSpec), &actualSize); + + PortabilityLayer::FileManager *fm = PortabilityLayer::FileManager::GetInstance(); + if (theReply.replacing) { - theErr = FSMakeFSSpec(theSpec.vRefNum, theSpec.parID, - theSpec.name, &tempSpec); - if (!CheckFileError(theErr, theSpec.name)) + if (fm->FileExists(theSpec.m_dir, theSpec.m_name)) + { + CheckFileError(PLErrors::kFileNotFound, theSpec.m_name); return (false); - - theErr = FSpDelete(&tempSpec); - if (!CheckFileError(theErr, theSpec.name)) + } + + if (!fm->DeleteFile(theSpec.m_dir, theSpec.m_name)) + { + CheckFileError(PLErrors::kAccessDenied, theSpec.m_name); return (false); + } } if (houseOpen) @@ -84,15 +90,15 @@ Boolean CreateNewHouse (void) return (false); } - theErr = FSpCreate(&theSpec, 'ozm5', 'gliH', theReply.keyScript); + theErr = FSpCreate(theSpec, 'ozm5', 'gliH'); if (!CheckFileError(theErr, PSTR("New House"))) return (false); - HCreateResFile(theSpec.vRefNum, theSpec.parID, theSpec.name); - if (ResError() != noErr) + HCreateResFile(theSpec.m_dir, theSpec.m_name); + if (ResError() != PLErrors::kNone) YellowAlert(kYellowFailedResCreate, ResError()); - PasStringCopy(theSpec.name, thisHouseName); - AddExtraHouse(&theSpec); + PasStringCopy(theSpec.m_name, thisHouseName); + AddExtraHouse(theSpec); BuildHouseList(); InitCursor(); if (!OpenHouse()) diff --git a/GpApp/HouseIO.cpp b/GpApp/HouseIO.cpp index 30f87c0..2966d65 100644 --- a/GpApp/HouseIO.cpp +++ b/GpApp/HouseIO.cpp @@ -6,7 +6,6 @@ //============================================================================ -#include "PLAliases.h" #include "PLMovies.h" #include "PLResources.h" #include "PLStringCompare.h" @@ -15,6 +14,7 @@ #include "Externs.h" #include "Environ.h" #include "House.h" +#include "IOStream.h" #include "ObjectEdit.h" @@ -26,17 +26,18 @@ void LoopMovie (void); void OpenHouseMovie (void); void CloseHouseMovie (void); -Boolean IsFileReadOnly (FSSpec *); +Boolean IsFileReadOnly (const VFileSpec &); Movie theMovie; Rect movieRect; -short houseRefNum, houseResFork, wasHouseVersion; +short houseResFork, wasHouseVersion; +PortabilityLayer::IOStream *houseStream; Boolean houseOpen, fileDirty, gameDirty; Boolean changeLockStateOfHouse, saveHouseLocked, houseIsReadOnly; Boolean hasMovie, tvInRoom; -extern FSSpecPtr theHousesSpecs; +extern VFileSpec *theHousesSpecs; extern short thisHouseIndex, tvWithMovieNumber; extern short numberRooms, housesFound; extern Boolean noRoomAtAll, quitting, wardBitSet; @@ -69,32 +70,32 @@ void OpenHouseMovie (void) { #ifdef COMPILEQT TimeBase theTime; - FSSpec theSpec; - FInfo finderInfo; + VFileSpec theSpec; + VFileInfo finderInfo; Handle spaceSaver; - OSErr theErr; + PLError_t theErr; short movieRefNum; Boolean dataRefWasChanged; if (thisMac.hasQT) { theSpec = theHousesSpecs[thisHouseIndex]; - PasStringConcat(theSpec.name, PSTR(".mov")); + PasStringConcat(theSpec.m_name, PSTR(".mov")); - theErr = FSpGetFInfo(&theSpec, &finderInfo); - if (theErr != noErr) + theErr = FSpGetFInfo(theSpec, finderInfo); + if (theErr != PLErrors::kNone) return; - theErr = OpenMovieFile(&theSpec, &movieRefNum, fsCurPerm); - if (theErr != noErr) + theErr = OpenMovieFile(theSpec, &movieRefNum, fsCurPerm); + if (theErr != PLErrors::kNone) { YellowAlert(kYellowQTMovieNotLoaded, theErr); return; } - theErr = NewMovieFromFile(&theMovie, movieRefNum, nil, theSpec.name, + theErr = NewMovieFromFile(&theMovie, movieRefNum, nil, theSpec.m_name, newMovieActive, &dataRefWasChanged); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowQTMovieNotLoaded, theErr); theErr = CloseMovieFile(movieRefNum); @@ -113,7 +114,7 @@ void OpenHouseMovie (void) GoToBeginningOfMovie(theMovie); theErr = LoadMovieIntoRam(theMovie, GetMovieTime(theMovie, 0L), GetMovieDuration(theMovie), 0); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowQTMovieNotLoaded, theErr); DisposeHandle(spaceSaver); @@ -123,7 +124,7 @@ void OpenHouseMovie (void) DisposeHandle(spaceSaver); theErr = PrerollMovie(theMovie, 0, 0x000F0000); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowQTMovieNotLoaded, theErr); CloseHouseMovie(); @@ -147,7 +148,7 @@ void OpenHouseMovie (void) void CloseHouseMovie (void) { #ifdef COMPILEQT - OSErr theErr; + PLError_t theErr; if ((thisMac.hasQT) && (hasMovie)) { @@ -164,8 +165,7 @@ void CloseHouseMovie (void) Boolean OpenHouse (void) { - OSErr theErr; - Boolean targetIsFolder, wasAliased; + PLError_t theErr; if (houseOpen) { @@ -175,19 +175,14 @@ Boolean OpenHouse (void) if ((housesFound < 1) || (thisHouseIndex == -1)) return(false); - theErr = ResolveAliasFile(&theHousesSpecs[thisHouseIndex], true, - &targetIsFolder, &wasAliased); - if (!CheckFileError(theErr, thisHouseName)) - return (false); - #ifdef COMPILEDEMO if (!EqualString(theHousesSpecs[thisHouseIndex].name, "\pDemo House", false, true)) return (false); #endif - houseIsReadOnly = IsFileReadOnly(&theHousesSpecs[thisHouseIndex]); + houseIsReadOnly = IsFileReadOnly(theHousesSpecs[thisHouseIndex]); - theErr = FSpOpenDF(&theHousesSpecs[thisHouseIndex], fsCurPerm, &houseRefNum); + theErr = FSpOpenDF(theHousesSpecs[thisHouseIndex], fsCurPerm, houseStream); if (!CheckFileError(theErr, thisHouseName)) return (false); @@ -206,7 +201,7 @@ Boolean OpenHouse (void) // Opens the specific house passed in. #ifndef COMPILEDEMO -Boolean OpenSpecificHouse (FSSpec *specs) +Boolean OpenSpecificHouse (const VFileSpec &specs) { short i; Boolean itOpened; @@ -218,12 +213,11 @@ Boolean OpenSpecificHouse (FSSpec *specs) for (i = 0; i < housesFound; i++) { - if ((theHousesSpecs[i].vRefNum == specs->vRefNum) && - (theHousesSpecs[i].parID == specs->parID) && - (EqualString(theHousesSpecs[i].name, specs->name, false, true))) + if ((theHousesSpecs[i].m_dir == specs.m_dir) && + (EqualString(theHousesSpecs[i].m_name, specs.m_name, false, true))) { thisHouseIndex = i; - PasStringCopy(theHousesSpecs[thisHouseIndex].name, thisHouseName); + PasStringCopy(theHousesSpecs[thisHouseIndex].m_name, thisHouseName); if (OpenHouse()) itOpened = ReadHouse(); else @@ -245,7 +239,7 @@ Boolean SaveHouseAs (void) /* StandardFileReply theReply; FSSpec oldHouse; - OSErr theErr; + PLError_t theErr; Boolean noProblems; Str255 tempStr; @@ -259,7 +253,7 @@ Boolean SaveHouseAs (void) CloseHouseResFork(); // close this house file theErr = FSClose(houseRefNum); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { CheckFileError(theErr, "\pPreferences"); return(false); @@ -270,7 +264,7 @@ Boolean SaveHouseAs (void) return (false); HCreateResFile(theReply.sfFile.vRefNum, theReply.sfFile.parID, theReply.sfFile.name); - if (ResError() != noErr) + if (ResError() != PLErrors::kNone) YellowAlert(kYellowFailedResCreate, ResError()); PasStringCopy(theReply.sfFile.name, thisHouseName); // open new house data fork @@ -612,7 +606,7 @@ bool ByteSwapHouse(housePtr house, size_t sizeInBytes) Boolean ReadHouse (void) { long byteCount; - OSErr theErr; + PLError_t theErr; short whichRoom; // There should be no padding remaining the house type @@ -637,13 +631,8 @@ Boolean ReadHouse (void) else if (!WriteHouse(false)) return(false); } - - theErr = GetEOF(houseRefNum, &byteCount); - if (theErr != noErr) - { - CheckFileError(theErr, thisHouseName); - return(false); - } + + byteCount = houseStream->Size(); #ifdef COMPILEDEMO if (byteCount != 16526L) @@ -663,18 +652,16 @@ Boolean ReadHouse (void) return(false); } - theErr = SetFPos(houseRefNum, fsFromStart, 0L); - if (theErr != noErr) + if (!houseStream->SeekStart(0)) { - CheckFileError(theErr, thisHouseName); + CheckFileError(PLErrors::kIOError, thisHouseName); return(false); } - long readByteCount = byteCount; - theErr = FSRead(houseRefNum, &readByteCount, *thisHouse); - if (theErr != noErr || readByteCount != byteCount || byteCount < static_cast(houseType::kBinaryDataSize)) + const size_t readByteCount = houseStream->Read(*thisHouse, byteCount); + if (readByteCount != byteCount || readByteCount < houseType::kBinaryDataSize) { - CheckFileError(theErr, thisHouseName); + CheckFileError(PLErrors::kIOError, thisHouseName); return(false); } @@ -757,7 +744,7 @@ Boolean WriteHouse (Boolean checkIt) { UInt32 timeStamp; long byteCount; - OSErr theErr; + PLError_t theErr; PL_NotYetImplemented(); @@ -766,11 +753,10 @@ Boolean WriteHouse (Boolean checkIt) YellowAlert(kYellowUnaccounted, 4); return (false); } - - theErr = SetFPos(houseRefNum, fsFromStart, 0L); - if (theErr != noErr) + + if (!houseStream->SeekStart(0)) { - CheckFileError(theErr, thisHouseName); + CheckFileError(PLErrors::kIOError, thisHouseName); return(false); } @@ -802,28 +788,25 @@ Boolean WriteHouse (Boolean checkIt) long headerSize = houseType::kBinaryDataSize; long roomsSize = sizeof(roomType) * (*thisHouse)->nRooms; - theErr = FSWrite(houseRefNum, &headerSize, *thisHouse); - if (theErr != noErr) + if (houseStream->Write(*thisHouse, headerSize) != headerSize) { - CheckFileError(theErr, thisHouseName); + CheckFileError(PLErrors::kIOError, thisHouseName); ByteSwapHouse(*thisHouse, static_cast(byteCount)); return(false); } - theErr = FSWrite(houseRefNum, &roomsSize, (*thisHouse)->rooms); - if (theErr != noErr) + if (houseStream->Write((*thisHouse)->rooms, roomsSize) != roomsSize) { - CheckFileError(theErr, thisHouseName); + CheckFileError(PLErrors::kIOError, thisHouseName); ByteSwapHouse(*thisHouse, static_cast(byteCount)); return(false); } ByteSwapHouse(*thisHouse, static_cast(byteCount)); - theErr = SetEOF(houseRefNum, byteCount); - if (theErr != noErr) + if (!houseStream->Truncate(byteCount)) { - CheckFileError(theErr, thisHouseName); + CheckFileError(PLErrors::kIOError, thisHouseName); return(false); } @@ -844,7 +827,7 @@ Boolean WriteHouse (Boolean checkIt) Boolean CloseHouse (void) { - OSErr theErr; + PLError_t theErr; if (!houseOpen) return (true); @@ -869,13 +852,8 @@ Boolean CloseHouse (void) CloseHouseResFork(); CloseHouseMovie(); - - theErr = FSClose(houseRefNum); - if (theErr != noErr) - { - CheckFileError(theErr, thisHouseName); - return(false); - } + + houseStream->Close(); houseOpen = false; @@ -889,7 +867,7 @@ void OpenHouseResFork (void) { if (houseResFork == -1) { - houseResFork = FSpOpenResFile(&theHousesSpecs[thisHouseIndex], fsCurPerm); + houseResFork = FSpOpenResFile(theHousesSpecs[thisHouseIndex], fsCurPerm); if (houseResFork == -1) YellowAlert(kYellowFailedResOpen, ResError()); else @@ -977,15 +955,16 @@ void YellowAlert (short whichAlert, short identifier) //-------------------------------------------------------------- IsFileReadOnly -Boolean IsFileReadOnly (FSSpec *theSpec) -{ - return false; +Boolean IsFileReadOnly (const VFileSpec &) +{ + PL_NotYetImplemented_TODO("FileSystem"); + return true; /* Str255 tempStr; ParamBlockRec theBlock; HParamBlockRec hBlock; VolumeParam *volPtr; - OSErr theErr; + PLError_t theErr; volPtr = (VolumeParam *)&theBlock; volPtr->ioCompletion = nil; diff --git a/GpApp/HouseLegal.cpp b/GpApp/HouseLegal.cpp index 7c02b18..402e040 100644 --- a/GpApp/HouseLegal.cpp +++ b/GpApp/HouseLegal.cpp @@ -737,7 +737,7 @@ void LopOffExtraRooms (void) { r = (*thisHouse)->nRooms - count; newSize = sizeof(houseType) + (sizeof(roomType) * (long)r); - if (SetHandleSize((Handle)thisHouse, newSize) != noErr) // resize house handle (shrink) + if (SetHandleSize((Handle)thisHouse, newSize) != PLErrors::kNone) // resize house handle (shrink) { ForeColor(redColor); GetLocalizedString(16, message); diff --git a/GpApp/Main.cpp b/GpApp/Main.cpp index 220ea2c..01fa2ef 100644 --- a/GpApp/Main.cpp +++ b/GpApp/Main.cpp @@ -10,6 +10,7 @@ #include "PLKeyEncoding.h" #include "Externs.h" #include "Environ.h" +#include "IOStream.h" #include "House.h" @@ -30,7 +31,8 @@ extern Str31 highBanner; extern Str15 leftName, rightName, batteryName, bandName; extern Str15 highName; //extern long encryptedNumber; -extern short maxFiles, numNeighbors, houseRefNum, willMaxFiles; +extern short maxFiles, numNeighbors, willMaxFiles; +extern PortabilityLayer::IOStream *houseStream; extern short isEditH, isEditV, isMapH, isMapV; extern short isToolsH, isToolsV, isCoordH, isCoordV; extern short isLinkH, isLinkV, toolMode, mapLeftRoom, mapTopRoom; @@ -285,7 +287,7 @@ int gpAppMain() { // long wasSeed; long theErr; - OSErr fileErr; + PLError_t fileErr; Boolean whoCares, copyGood; PL_Init(); @@ -332,7 +334,7 @@ int gpAppMain() if (thisMac.hasQT) { theErr = EnterMovies(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) thisMac.hasQT = false; } @@ -376,7 +378,7 @@ int gpAppMain() if (!CloseHouse()) { CloseHouseResFork(); - fileErr = FSClose(houseRefNum); + houseStream->Close(); houseOpen = false; } } diff --git a/GpApp/Map.cpp b/GpApp/Map.cpp index 7914902..a0e304e 100644 --- a/GpApp/Map.cpp +++ b/GpApp/Map.cpp @@ -717,14 +717,14 @@ Boolean QueryNewRoom (void) void CreateNailOffscreen (void) { CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; if (nailSrcMap == nil) { wasCPort = GetGraphicsPort(); QSetRect(&nailSrcRect, 0, 0, kMapRoomWidth, kMapRoomHeight * (kNumBackgrounds + 1)); - theErr = CreateOffScreenGWorld(&nailSrcMap, &nailSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&nailSrcMap, &nailSrcRect, kPreferredPixelFormat); SetGraphicsPort(nailSrcMap); LoadGraphic(kThumbnailPictID); diff --git a/GpApp/Menu.cpp b/GpApp/Menu.cpp index 20e0baf..1db9c7e 100644 --- a/GpApp/Menu.cpp +++ b/GpApp/Menu.cpp @@ -368,7 +368,7 @@ void DoGameMenu (short theItem) void DoOptionsMenu (short theItem) { #ifndef COMPILEDEMO - OSErr theErr; + PLError_t theErr; #endif switch (theItem) @@ -393,7 +393,7 @@ void DoOptionsMenu (short theItem) if (isPlayMusicIdle) { theErr = StartMusic(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowNoMusic, theErr); failedMusic = true; diff --git a/GpApp/Music.cpp b/GpApp/Music.cpp index b57fc46..e1d49c0 100644 --- a/GpApp/Music.cpp +++ b/GpApp/Music.cpp @@ -23,10 +23,10 @@ void MusicCallBack (SndChannelPtr, SndCommand *); -OSErr LoadMusicSounds (void); -OSErr DumpMusicSounds (void); -OSErr OpenMusicChannel (void); -OSErr CloseMusicChannel (void); +PLError_t LoadMusicSounds (void); +PLError_t DumpMusicSounds (void); +PLError_t OpenMusicChannel (void); +PLError_t CloseMusicChannel (void); SndCallBackUPP musicCallBackUPP; @@ -54,13 +54,13 @@ extern Boolean isSoundOn; //============================================================== Functions //-------------------------------------------------------------- StartMusic -OSErr StartMusic (void) +PLError_t StartMusic (void) { SndCommand theCommand; - OSErr theErr; + PLError_t theErr; short soundVolume; - theErr = noErr; + theErr = PLErrors::kNone; if (dontLoadMusic) return(theErr); @@ -76,7 +76,7 @@ OSErr StartMusic (void) theCommand.param1 = 0; theCommand.param2 = (intptr_t)(theMusicData[musicState.musicSoundID]); theErr = SndDoCommand(musicChannel, &theCommand, false); - if (theErr != noErr) + if (theErr != PLErrors::kNone) return (theErr); // GP: No idea what "1964" means @@ -84,7 +84,7 @@ OSErr StartMusic (void) theCommand.param1 = 1964; theCommand.param2 = 0; theErr = SndDoCommand(musicChannel, &theCommand, false); - if (theErr != noErr) + if (theErr != PLErrors::kNone) return (theErr); musicState.musicCursor++; @@ -96,7 +96,7 @@ OSErr StartMusic (void) theCommand.param1 = 0; theCommand.param2 = (intptr_t)(theMusicData[musicState.musicSoundID]); theErr = SndDoCommand(musicChannel, &theCommand, false); - if (theErr != noErr) + if (theErr != PLErrors::kNone) return (theErr); theCommand.cmd = callBackCmd; @@ -115,12 +115,12 @@ OSErr StartMusic (void) void StopTheMusic (void) { SndCommand theCommand; - OSErr theErr; + PLError_t theErr; if (dontLoadMusic) return; - theErr = noErr; + theErr = PLErrors::kNone; if ((isMusicOn) && (!failedMusic)) { theCommand.cmd = flushCmd; @@ -141,7 +141,7 @@ void StopTheMusic (void) void ToggleMusicWhilePlaying (void) { - OSErr theErr; + PLError_t theErr; if (dontLoadMusic) return; @@ -188,7 +188,7 @@ void SetMusicalMode (short newMode) void MusicCallBack (SndChannelPtr theChannel, SndCommand *theCommand) { - OSErr theErr; + PLError_t theErr; // gameA5 = theCommand.param2; // thisA5 = SetA5(gameA5); @@ -236,14 +236,14 @@ void MusicCallBack (SndChannelPtr theChannel, SndCommand *theCommand) //-------------------------------------------------------------- LoadMusicSounds -OSErr LoadMusicSounds (void) +PLError_t LoadMusicSounds (void) { Handle theSound; long soundDataSize; - OSErr theErr; + PLError_t theErr; short i; - theErr = noErr; + theErr = PLErrors::kNone; for (i = 0; i < kMaxMusic; i++) theMusicData[i] = nil; @@ -252,13 +252,13 @@ OSErr LoadMusicSounds (void) { theSound = GetResource('snd ', i + kBaseBufferMusicID); if (theSound == nil) - return (MemError()); + return PLErrors::kOutOfMemory; soundDataSize = GetHandleSize(theSound) - 20L; theMusicData[i] = NewPtr(soundDataSize); if (theMusicData[i] == nil) - return (MemError()); + return PLErrors::kOutOfMemory; BlockMove((Ptr)(static_cast(*theSound) + 20L), theMusicData[i], soundDataSize); ReleaseResource(theSound); @@ -268,12 +268,12 @@ OSErr LoadMusicSounds (void) //-------------------------------------------------------------- DumpMusicSounds -OSErr DumpMusicSounds (void) +PLError_t DumpMusicSounds (void) { - OSErr theErr; + PLError_t theErr; short i; - theErr = noErr; + theErr = PLErrors::kNone; for (i = 0; i < kMaxMusic; i++) { @@ -287,13 +287,13 @@ OSErr DumpMusicSounds (void) //-------------------------------------------------------------- OpenMusicChannel -OSErr OpenMusicChannel (void) +PLError_t OpenMusicChannel (void) { - OSErr theErr; + PLError_t theErr; musicCallBackUPP = NewSndCallBackProc(MusicCallBack); - theErr = noErr; + theErr = PLErrors::kNone; if (musicChannel != nil) return (theErr); @@ -308,11 +308,11 @@ OSErr OpenMusicChannel (void) //-------------------------------------------------------------- CloseMusicChannel -OSErr CloseMusicChannel (void) +PLError_t CloseMusicChannel (void) { - OSErr theErr; + PLError_t theErr; - theErr = noErr; + theErr = PLErrors::kNone; if (musicChannel != nil) theErr = SndDisposeChannel(musicChannel, true); @@ -327,7 +327,7 @@ OSErr CloseMusicChannel (void) void InitMusic (void) { - OSErr theErr; + PLError_t theErr; if (dontLoadMusic) return; @@ -337,7 +337,7 @@ void InitMusic (void) failedMusic = false; isMusicOn = false; theErr = LoadMusicSounds(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowNoMusic, theErr); failedMusic = true; @@ -380,7 +380,7 @@ void InitMusic (void) if (isPlayMusicIdle) { theErr = StartMusic(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowNoMusic, theErr); failedMusic = true; @@ -392,7 +392,7 @@ void InitMusic (void) void KillMusic (void) { - OSErr theErr; + PLError_t theErr; if (dontLoadMusic) return; diff --git a/GpApp/ObjectDraw2.cpp b/GpApp/ObjectDraw2.cpp index 44354e0..b49195b 100644 --- a/GpApp/ObjectDraw2.cpp +++ b/GpApp/ObjectDraw2.cpp @@ -117,7 +117,7 @@ void DrawMailboxLeft (Rect *theRect, short down) GWorldPtr tempMask; long darkGrayC, lightWoodC, darkWoodC; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); SetGraphicsPort(backSrcMap); @@ -170,11 +170,11 @@ void DrawMailboxLeft (Rect *theRect, short down) SetGraphicsPort(wasCPort); bounds = srcRects[kMailboxLf]; - theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(kMailboxLeftPictID); - theErr = CreateOffScreenGWorld(&tempMask, &bounds, 1); + theErr = CreateOffScreenGWorld(&tempMask, &bounds, GpPixelFormats::kBW1); SetGraphicsPort(tempMask); LoadGraphic(kMailboxLeftMaskID); @@ -199,7 +199,7 @@ void DrawMailboxRight (Rect *theRect, short down) GWorldPtr tempMask; long darkGrayC, lightWoodC, darkWoodC; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); SetGraphicsPort(backSrcMap); @@ -252,11 +252,11 @@ void DrawMailboxRight (Rect *theRect, short down) SetGraphicsPort(wasCPort); bounds = srcRects[kMailboxRt]; - theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(kMailboxRightPictID); - theErr = CreateOffScreenGWorld(&tempMask, &bounds, 1); + theErr = CreateOffScreenGWorld(&tempMask, &bounds, GpPixelFormats::kBW1); SetGraphicsPort(tempMask); LoadGraphic(kMailboxRightMaskID); @@ -659,18 +659,18 @@ void DrawTV (Rect *theRect, Boolean isOn, Boolean isLit) GWorldPtr tempMap; GWorldPtr tempMask; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; if (isLit) { wasCPort = GetGraphicsPort(); bounds = srcRects[kTV]; - theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(kTVPictID); - theErr = CreateOffScreenGWorld(&tempMask, &bounds, 1); + theErr = CreateOffScreenGWorld(&tempMask, &bounds, GpPixelFormats::kBW1); SetGraphicsPort(tempMask); LoadGraphic(kTVMaskID); @@ -752,18 +752,18 @@ void DrawVCR (Rect *theRect, Boolean isOn, Boolean isLit) GWorldPtr tempMap; GWorldPtr tempMask; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; if (isLit) { wasCPort = GetGraphicsPort(); bounds = srcRects[kVCR]; - theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(kVCRPictID); - theErr = CreateOffScreenGWorld(&tempMask, &bounds, 1); + theErr = CreateOffScreenGWorld(&tempMask, &bounds, GpPixelFormats::kBW1); SetGraphicsPort(tempMask); LoadGraphic(kVCRMaskID); @@ -805,7 +805,7 @@ void DrawStereo (Rect *theRect, Boolean isOn, Boolean isLit) GWorldPtr tempMap; GWorldPtr tempMask; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; if (isLit) @@ -813,11 +813,11 @@ void DrawStereo (Rect *theRect, Boolean isOn, Boolean isLit) wasCPort = GetGraphicsPort(); bounds = srcRects[kStereo]; - theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(kStereoPictID); - theErr = CreateOffScreenGWorld(&tempMask, &bounds, 1); + theErr = CreateOffScreenGWorld(&tempMask, &bounds, GpPixelFormats::kBW1); SetGraphicsPort(tempMask); LoadGraphic(kStereoMaskID); @@ -859,7 +859,7 @@ void DrawMicrowave (Rect *theRect, Boolean isOn, Boolean isLit) GWorldPtr tempMap; GWorldPtr tempMask; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; if (isLit) @@ -867,11 +867,11 @@ void DrawMicrowave (Rect *theRect, Boolean isOn, Boolean isLit) wasCPort = GetGraphicsPort(); bounds = srcRects[kMicrowave]; - theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(kMicrowavePictID); - theErr = CreateOffScreenGWorld(&tempMask, &bounds, 1); + theErr = CreateOffScreenGWorld(&tempMask, &bounds, GpPixelFormats::kBW1); SetGraphicsPort(tempMask); LoadGraphic(kMicrowaveMaskID); @@ -1260,7 +1260,7 @@ void DrawPictWithMaskObject (short what, Rect *theRect) GWorldPtr tempMask; short pictID, maskID; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); @@ -1278,11 +1278,11 @@ void DrawPictWithMaskObject (short what, Rect *theRect) } bounds = srcRects[what]; - theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(pictID); - theErr = CreateOffScreenGWorld(&tempMask, &bounds, 1); + theErr = CreateOffScreenGWorld(&tempMask, &bounds, GpPixelFormats::kBW1); SetGraphicsPort(tempMask); LoadGraphic(maskID); @@ -1307,7 +1307,7 @@ void DrawPictSansWhiteObject (short what, Rect *theRect) CGrafPtr tempMap; short pictID; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); @@ -1395,7 +1395,7 @@ void DrawPictSansWhiteObject (short what, Rect *theRect) } bounds = srcRects[what]; - theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(pictID); @@ -1415,13 +1415,13 @@ void DrawCustPictSansWhite (short pictID, Rect *theRect) Rect bounds; GWorldPtr tempMap; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); bounds = *theRect; ZeroRectCorner(&bounds); - theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tempMap, &bounds, kPreferredPixelFormat); SetGraphicsPort(tempMap); LoadGraphic(pictID); diff --git a/GpApp/ObjectRects.cpp b/GpApp/ObjectRects.cpp index bd76960..6fa05d2 100644 --- a/GpApp/ObjectRects.cpp +++ b/GpApp/ObjectRects.cpp @@ -921,7 +921,7 @@ short CreateActiveRects (short who) case kSoundTrigger: QSetRect(&bounds, 0, 0, 48, 48); QOffsetRect(&bounds, theObject.data.e.topLeft.h, theObject.data.e.topLeft.v); - if (LoadTriggerSound(theObject.data.e.where) == noErr) + if (LoadTriggerSound(theObject.data.e.where) == PLErrors::kNone) hotSpotNumber = AddActiveRect(&bounds, kSoundIt, who, true, false); break; diff --git a/GpApp/Objects.cpp b/GpApp/Objects.cpp index e16e5bf..be790b0 100644 --- a/GpApp/Objects.cpp +++ b/GpApp/Objects.cpp @@ -885,7 +885,7 @@ void BringSendFrontBack (Boolean bringFront) linksList = (linksPtr)NewPtr(sizeof(linksType) * numLinks); if (linksList == nil) { - YellowAlert(kYellowCantOrderLinks, MemError()); + YellowAlert(kYellowCantOrderLinks, PLErrors::kOutOfMemory); return; } GenerateLinksList(); // Fill in links list with src/destÉ diff --git a/GpApp/Play.cpp b/GpApp/Play.cpp index 7683312..8944d8e 100644 --- a/GpApp/Play.cpp +++ b/GpApp/Play.cpp @@ -54,7 +54,7 @@ Boolean playing, evenFrame, twoPlayerGame, showFoil, demoGoing; Boolean doBackground, playerSuicide, phoneBitSet, tvOn; extern WindowPtr menuWindow; -extern FSSpecPtr theHousesSpecs; +extern VFileSpec *theHousesSpecs; extern demoPtr demoData; extern gameType smallGame; extern Rect gliderSrc[kNumGliderSrcRects]; @@ -74,7 +74,7 @@ extern Boolean switchedOut; void NewGame (short mode) { Rect tempRect; - OSErr theErr; + PLError_t theErr; Boolean wasPlayMusicPref; AdjustScoreboardHeight(); @@ -85,7 +85,7 @@ void NewGame (short mode) if (!isMusicOn) { theErr = StartMusic(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowNoMusic, theErr); failedMusic = true; @@ -234,7 +234,7 @@ void NewGame (short mode) if (!isMusicOn) { theErr = StartMusic(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowNoMusic, theErr); failedMusic = true; @@ -281,7 +281,7 @@ void DoDemoGame (void) wasHouseIndex = thisHouseIndex; whoCares = CloseHouse(); thisHouseIndex = demoHouseIndex; - PasStringCopy(theHousesSpecs[thisHouseIndex].name, thisHouseName); + PasStringCopy(theHousesSpecs[thisHouseIndex].m_name, thisHouseName); if (OpenHouse()) { whoCares = ReadHouse(); @@ -290,7 +290,7 @@ void DoDemoGame (void) } whoCares = CloseHouse(); thisHouseIndex = wasHouseIndex; - PasStringCopy(theHousesSpecs[thisHouseIndex].name, thisHouseName); + PasStringCopy(theHousesSpecs[thisHouseIndex].m_name, thisHouseName); if (OpenHouse()) whoCares = ReadHouse(); incrementModeTime = TickCount() + kIdleSplashTicks; diff --git a/GpApp/Prefs.cpp b/GpApp/Prefs.cpp index 10cd308..615bf3d 100644 --- a/GpApp/Prefs.cpp +++ b/GpApp/Prefs.cpp @@ -8,6 +8,8 @@ #include "PLPasStr.h" #include "Externs.h" #include "Environ.h" +#include "FileManager.h" +#include "IOStream.h" #define kPrefCreatorType 'ozm5' @@ -20,11 +22,9 @@ Boolean CanUseFindFolder (void); -Boolean GetPrefsFPath (long *, short *); -Boolean CreatePrefsFolder (short *); -Boolean WritePrefs (long *, short *, prefsInfo *); -OSErr ReadPrefs (long *, short *, prefsInfo *); -Boolean DeletePrefs (long *, short *); +Boolean WritePrefs (const prefsInfo *); +PLError_t ReadPrefs (prefsInfo *); +Boolean DeletePrefs (); void BringUpDeletePrefsAlert (void); @@ -36,93 +36,43 @@ Boolean CanUseFindFolder (void) return true; } -//-------------------------------------------------------------- GetPrefsFPath - -Boolean GetPrefsFPath (long *prefDirID, short *systemVolRef) -{ - OSErr theErr; - - theErr = FindFolder(kOnSystemDisk, kPreferencesFolderType, kCreateFolder, - systemVolRef, prefDirID); - if (theErr != noErr) - return(false); - - return(true); -} - -//-------------------------------------------------------------- CreatePrefsFolder - -Boolean CreatePrefsFolder (short *systemVolRef) -{ - HFileParam fileParamBlock; - Str255 folderName; - OSErr theErr; - - GetIndString(folderName, kPrefsStringsID, kPrefsFNameIndex); - - fileParamBlock.ioVRefNum = *systemVolRef; - fileParamBlock.ioDirID = 0; - fileParamBlock.ioNamePtr = folderName; - fileParamBlock.ioCompletion = nil; - - theErr = PBDirCreate(&fileParamBlock, false); - if (theErr != noErr) - { - CheckFileError(theErr, PSTR("Preferences")); - return(false); - } - return(true); -} - //-------------------------------------------------------------- WritePrefs -Boolean WritePrefs (long *prefDirID, short *systemVolRef, prefsInfo *thePrefs) +Boolean WritePrefs (const prefsInfo *thePrefs) { - OSErr theErr; - short fileRefNum; + PLError_t theErr; + PortabilityLayer::IOStream *fileStream; long byteCount; - FSSpec theSpecs; Str255 fileName; PasStringCopy(kPrefFileName, fileName); - theErr = FSMakeFSSpec(*systemVolRef, *prefDirID, fileName, &theSpecs); - if (theErr != noErr) + VFileSpec theSpecs = MakeVFileSpec(PortabilityLayer::VirtualDirectories::kPrefs, fileName); + if (!PortabilityLayer::FileManager::GetInstance()->FileExists(PortabilityLayer::VirtualDirectories::kPrefs, fileName)) { - if (theErr != fnfErr) - { - CheckFileError(theErr, PSTR("Preferences")); - return(false); - } - theErr = FSpCreate(&theSpecs, kPrefCreatorType, kPrefFileType, smSystemScript); - if (theErr != noErr) + theErr = FSpCreate(theSpecs, kPrefCreatorType, kPrefFileType); + if (theErr != PLErrors::kNone) { CheckFileError(theErr, PSTR("Preferences")); return(false); } } - theErr = FSpOpenDF(&theSpecs, fsRdWrPerm, &fileRefNum); - if (theErr != noErr) + theErr = FSpOpenDF(theSpecs, fsRdWrPerm, fileStream); + if (theErr != PLErrors::kNone) { CheckFileError(theErr, PSTR("Preferences")); return(false); } byteCount = sizeof(*thePrefs); - - theErr = FSWrite(fileRefNum, &byteCount, thePrefs); - if (theErr != noErr) + + if (fileStream->Write(thePrefs, byteCount) != byteCount) { - CheckFileError(theErr, PSTR("Preferences")); - return(false); - } - - theErr = FSClose(fileRefNum); - if (theErr != noErr) - { - CheckFileError(theErr, PSTR("Preferences")); + CheckFileError(PLErrors::kIOError, PSTR("Preferences")); return(false); } + + fileStream->Close(); return(true); } @@ -131,15 +81,9 @@ Boolean WritePrefs (long *prefDirID, short *systemVolRef, prefsInfo *thePrefs) Boolean SavePrefs (prefsInfo *thePrefs, short versionNow) { - long prefDirID; - short systemVolRef; - thePrefs->prefVersion = versionNow; - if (!GetPrefsFPath(&prefDirID, &systemVolRef)) - return(false); - - if (!WritePrefs(&prefDirID, &systemVolRef, thePrefs)) + if (!WritePrefs(thePrefs)) return(false); return(true); @@ -147,77 +91,57 @@ Boolean SavePrefs (prefsInfo *thePrefs, short versionNow) //-------------------------------------------------------------- ReadPrefs -OSErr ReadPrefs (long *prefDirID, short *systemVolRef, prefsInfo *thePrefs) +PLError_t ReadPrefs (prefsInfo *thePrefs) { - OSErr theErr; - short fileRefNum; + PLError_t theErr; + PortabilityLayer::IOStream *fileStream; long byteCount; - FSSpec theSpecs; + VFileSpec theSpecs; Str255 fileName; PasStringCopy(kPrefFileName, fileName); - theErr = FSMakeFSSpec(*systemVolRef, *prefDirID, fileName, &theSpecs); - if (theErr != noErr) - { - if (theErr == fnfErr) - return(theErr); - else - { - CheckFileError(theErr, PSTR("Preferences")); - return(theErr); - } - } + theSpecs = MakeVFileSpec(PortabilityLayer::VirtualDirectory_t::kPrefs, fileName); + + if (!PortabilityLayer::FileManager::GetInstance()->FileExists(theSpecs.m_dir, theSpecs.m_name)) + return PLErrors::kFileNotFound; - theErr = FSpOpenDF(&theSpecs, fsRdWrPerm, &fileRefNum); - if (theErr != noErr) + theErr = FSpOpenDF(theSpecs, fsRdWrPerm, fileStream); + if (theErr != PLErrors::kNone) { CheckFileError(theErr, PSTR("Preferences")); return(theErr); } byteCount = sizeof(*thePrefs); - - theErr = FSRead(fileRefNum, &byteCount, thePrefs); - if (theErr != noErr) + + if (fileStream->Read(thePrefs, byteCount) != byteCount) { - if (theErr == eofErr) - theErr = FSClose(fileRefNum); - else - { - CheckFileError(theErr, PSTR("Preferences")); - theErr = FSClose(fileRefNum); - } - return(theErr); - } - - theErr = FSClose(fileRefNum); - if (theErr != noErr) - { - CheckFileError(theErr, PSTR("Preferences")); + CheckFileError(PLErrors::kIOError, PSTR("Preferences")); + fileStream->Close(); return(theErr); } + fileStream->Close(); + return(theErr); } //-------------------------------------------------------------- DeletePrefs -Boolean DeletePrefs (long *dirID, short *volRef) +Boolean DeletePrefs () { - FSSpec theSpecs; + VFileSpec theSpecs; Str255 fileName; - OSErr theErr; + PLError_t theErr; PasStringCopy(kPrefFileName, fileName); - theErr = FSMakeFSSpec(*volRef, *dirID, fileName, &theSpecs); - if (theErr != noErr) - return(false); - else - theErr = FSpDelete(&theSpecs); + theSpecs = MakeVFileSpec(PortabilityLayer::VirtualDirectories::kPrefs, fileName); + + theErr = FSpDelete(theSpecs); - if (theErr != noErr) + if (theErr != PLErrors::kNone) return(false); return(true); @@ -227,29 +151,25 @@ Boolean DeletePrefs (long *dirID, short *volRef) Boolean LoadPrefs (prefsInfo *thePrefs, short versionNeed) { - long prefDirID; - OSErr theErr; - short systemVolRef; + PLError_t theErr; Boolean noProblems; - noProblems = GetPrefsFPath(&prefDirID, &systemVolRef); - if (!noProblems) - return(false); - - theErr = ReadPrefs(&prefDirID, &systemVolRef, thePrefs); - if (theErr == eofErr) + theErr = ReadPrefs(thePrefs); + + if (theErr == PLErrors::kFileNotFound) + return (false); + + if (theErr != PLErrors::kNone) { BringUpDeletePrefsAlert(); - noProblems = DeletePrefs(&prefDirID, &systemVolRef); + noProblems = DeletePrefs(); return (false); } - else if (theErr != noErr) - return (false); if (thePrefs->prefVersion != versionNeed) { BringUpDeletePrefsAlert(); - noProblems = DeletePrefs(&prefDirID, &systemVolRef); + noProblems = DeletePrefs(); return(false); } diff --git a/GpApp/Render.cpp b/GpApp/Render.cpp index cd90a0c..3cad704 100644 --- a/GpApp/Render.cpp +++ b/GpApp/Render.cpp @@ -752,7 +752,7 @@ void AddToMirrorRegion (Rect *theRect) const long oldSize = GetHandleSize(reinterpret_cast(mirrorRects)); const long newSize = oldSize + sizeof(Rect); - if (SetHandleSize(reinterpret_cast(mirrorRects), newSize) == noErr) + if (SetHandleSize(reinterpret_cast(mirrorRects), newSize) == PLErrors::kNone) (*mirrorRects)[oldSize / sizeof(Rect)] = *theRect; } hasMirror = true; diff --git a/GpApp/Room.cpp b/GpApp/Room.cpp index 839dc88..56ea9ee 100644 --- a/GpApp/Room.cpp +++ b/GpApp/Room.cpp @@ -161,7 +161,7 @@ Boolean CreateNewRoom (short h, short v) { KeyMap theKeys; long howMuch; - OSErr theErr; + PLError_t theErr; short i, availableRoom; char wasState; @@ -195,7 +195,7 @@ Boolean CreateNewRoom (short h, short v) { howMuch = sizeof(roomType); // add new room to end of house theErr = PtrAndHand((Ptr)thisRoom, (Handle)thisHouse, howMuch); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowUnaccounted, theErr); return (false); diff --git a/GpApp/RoomInfo.cpp b/GpApp/RoomInfo.cpp index 0f2559c..27e236a 100644 --- a/GpApp/RoomInfo.cpp +++ b/GpApp/RoomInfo.cpp @@ -386,7 +386,7 @@ void DoRoomInfo (void) Boolean leaving, wasFirstRoom, forceDraw; ModalFilterUPP roomFilterUPP; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); roomFilterUPP = NewModalFilterUPP(RoomFilter); @@ -404,7 +404,7 @@ void DoRoomInfo (void) NumToString(thisRoom->numObjects, objectsStr); ParamText(floorStr, suiteStr, objectsStr, PSTR("")); - theErr = CreateOffScreenGWorld(&tileSrcMap, &tileSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&tileSrcMap, &tileSrcRect, kPreferredPixelFormat); SetGraphicsPort(tileSrcMap); // CreateOffScreenPixMap(&tileSrcRect, &tileSrcMap); // SetPort((GrafPtr)tileSrcMap); diff --git a/GpApp/SavedGames.cpp b/GpApp/SavedGames.cpp index 5e81c1f..2487835 100644 --- a/GpApp/SavedGames.cpp +++ b/GpApp/SavedGames.cpp @@ -19,7 +19,7 @@ void SavedGameMismatchError (StringPtr); gameType smallGame; -extern FSSpecPtr theHousesSpecs; +extern VFileSpec *theHousesSpecs; extern short numStarsRemaining, thisHouseIndex; extern Boolean twoPlayerGame; @@ -36,7 +36,7 @@ void SaveGame2 (void) FSSpec tempSpec; Str255 gameNameStr; Size byteCount; - OSErr theErr; + PLError_t theErr; houseType *thisHousePtr; roomType *srcRoom; savedRoom *destRoom; @@ -58,7 +58,7 @@ void SaveGame2 (void) savedGame = (gamePtr)NewPtr(byteCount); if (savedGame == nil) { - YellowAlert(kYellowFailedSaveGame, MemError()); + YellowAlert(kYellowFailedSaveGame, PLErrors::kOutOfMemory); return; } @@ -177,7 +177,7 @@ return false; // TEMP fix this iwth NavServices savedRoom *srcRoom; gamePtr savedGame; long byteCount; - OSErr theErr; + PLError_t theErr; short r, i, gameRefNum; char wasState; @@ -201,7 +201,7 @@ return false; // TEMP fix this iwth NavServices savedGame = (gamePtr)NewPtr(byteCount); if (savedGame == nil) { - YellowAlert(kYellowFailedSaveGame, MemError()); + YellowAlert(kYellowFailedSaveGame, PLErrors::kOutOfMemory); theErr = FSClose(gameRefNum); return(false); } diff --git a/GpApp/SelectHouse.cpp b/GpApp/SelectHouse.cpp index 71f8b00..ac9ff39 100644 --- a/GpApp/SelectHouse.cpp +++ b/GpApp/SelectHouse.cpp @@ -6,7 +6,6 @@ //============================================================================ -#include "PLAliases.h" #include "PLKeyEncoding.h" #include "PLResources.h" #include "PLSound.h" @@ -14,6 +13,7 @@ #include "DialogUtils.h" #include "Externs.h" #include "Environ.h" +#include "FileManager.h" #include "House.h" #include "RectUtils.h" #include "VirtualDirectory.h" @@ -46,8 +46,8 @@ void DoDirSearch (void); Rect loadHouseRects[12]; -FSSpecPtr theHousesSpecs; -FSSpec extraHouseSpecs[kMaxExtraHouses]; +VFileSpec *theHousesSpecs; +VFileSpec extraHouseSpecs[kMaxExtraHouses]; long lastWhenClick; Point lastWhereClick; short housesFound, thisHouseIndex, maxFiles, willMaxFiles; @@ -101,8 +101,7 @@ void UpdateLoadDialog (DialogPtr theDialog) if (SectRect(&dialogRect, &tempRect, &dummyRect)) { - isResFile = HOpenResFile(theHousesSpecs[i].vRefNum, - theHousesSpecs[i].parID, theHousesSpecs[i].name, fsRdPerm); + isResFile = HOpenResFile(theHousesSpecs[i].m_dir, theHousesSpecs[i].m_name, fsRdPerm); if (isResFile != -1) { if (Get1Resource('icl8', -16455) != nil) @@ -119,13 +118,13 @@ void UpdateLoadDialog (DialogPtr theDialog) kDefaultHousePict8); } - fileFirstChar[count] = theHousesSpecs[i].name[1]; + fileFirstChar[count] = theHousesSpecs[i].m_name[1]; if ((fileFirstChar[count] <= 0x7A) && (fileFirstChar[count] > 0x60)) fileFirstChar[count] -= 0x20; count++; DrawDialogUserText(theDialog, kLoadNameFirstItem + i - housePage, - theHousesSpecs[i].name, i == (thisHouseIndex + housePage)); + theHousesSpecs[i].m_name, i == (thisHouseIndex + housePage)); } @@ -416,7 +415,7 @@ void DoLoadHouse (void) if (thisHouseIndex != wasIndex) { whoCares = CloseHouse(); - PasStringCopy(theHousesSpecs[thisHouseIndex].name, + PasStringCopy(theHousesSpecs[thisHouseIndex].m_name, thisHouseName); if (OpenHouse()) whoCares = ReadHouse(); @@ -455,7 +454,7 @@ void DoLoadHouse (void) MyDisableControl(theDial, kOkayButton); MyDisableControl(theDial, kCancelButton); whoCares = CloseHouse(); - PasStringCopy(theHousesSpecs[thisHouseIndex].name, + PasStringCopy(theHousesSpecs[thisHouseIndex].m_name, thisHouseName); if (OpenHouse()) whoCares = ReadHouse(); @@ -490,7 +489,7 @@ void DoLoadHouse (void) MyDisableControl(theDial, kOkayButton); MyDisableControl(theDial, kCancelButton); whoCares = CloseHouse(); - PasStringCopy(theHousesSpecs[thisHouseIndex].name, + PasStringCopy(theHousesSpecs[thisHouseIndex].m_name, thisHouseName); if (OpenHouse()) whoCares = ReadHouse(); @@ -517,7 +516,7 @@ void DoLoadHouse (void) void SortHouseList (void) { - FSSpec tempSpec; + VFileSpec tempSpec; short i, h, whosFirst; i = 0; // remove exact duplicate houses @@ -526,9 +525,8 @@ void SortHouseList (void) h = i + 1; while (h < housesFound) { - if ((EqualString(theHousesSpecs[i].name, theHousesSpecs[h].name, true, true)) && - (theHousesSpecs[i].vRefNum == theHousesSpecs[i].vRefNum) && - (theHousesSpecs[i].parID == theHousesSpecs[i].parID)) + if ((EqualString(theHousesSpecs[i].m_name, theHousesSpecs[h].m_name, true, true)) && + (theHousesSpecs[i].m_dir == theHousesSpecs[i].m_dir)) { theHousesSpecs[h] = theHousesSpecs[housesFound - 1]; housesFound--; @@ -542,8 +540,8 @@ void SortHouseList (void) { for (h = 0; h < (housesFound - i - 1); h++) { - whosFirst = WhichStringFirst(theHousesSpecs[h].name, - theHousesSpecs[h + 1].name); + whosFirst = WhichStringFirst(theHousesSpecs[h].m_name, + theHousesSpecs[h + 1].m_name); if (whosFirst == 1) { tempSpec = theHousesSpecs[h + 1]; @@ -559,20 +557,23 @@ void SortHouseList (void) void DoDirSearch (void) { #define kMaxDirectories 32 - long theDirs[kMaxDirectories]; - OSErr theErr, notherErr; - short count, i, currentDir, numDirs; + PortabilityLayer::VirtualDirectory_t theDirs[kMaxDirectories]; + PLError_t theErr, notherErr; + short count, i, numDirs; + int currentDir; for (i = 0; i < kMaxDirectories; i++) - theDirs[i] = 0L; + theDirs[i] = PortabilityLayer::VirtualDirectories::kUnspecified; currentDir = 0; - theDirs[currentDir] = PortabilityLayer::EVirtualDirectory_GameData; + theDirs[currentDir] = PortabilityLayer::VirtualDirectories::kGameData; numDirs = 1; + + PortabilityLayer::FileManager *fm = PortabilityLayer::FileManager::GetInstance(); while ((currentDir < numDirs) && (currentDir < kMaxDirectories)) { count = 1; - theErr = noErr; + theErr = PLErrors::kNone; long dirID = theDirs[currentDir]; @@ -584,8 +585,9 @@ void DoDirSearch (void) if ((f->finderInfo.fdType == 'gliH') && (f->finderInfo.fdCreator == 'ozm5') && (housesFound < maxFiles)) { - notherErr = FSMakeFSSpec(thisMac.vRefNum, theDirs[currentDir], f->name, &theHousesSpecs[housesFound]); - if (notherErr == noErr) + theHousesSpecs[housesFound] = MakeVFileSpec(theDirs[currentDir], f->name); + + if (fm->FileExists(theDirs[currentDir], f->name)) housesFound++; } } @@ -606,18 +608,18 @@ void DoDirSearch (void) thisHouseIndex = 0; for (i = 0; i < housesFound; i++) { - if (EqualString(theHousesSpecs[i].name, thisHouseName, false, true)) + if (EqualString(theHousesSpecs[i].m_name, thisHouseName, false, true)) { thisHouseIndex = i; break; } } - PasStringCopy(theHousesSpecs[thisHouseIndex].name, thisHouseName); + PasStringCopy(theHousesSpecs[thisHouseIndex].m_name, thisHouseName); demoHouseIndex = -1; for (i = 0; i < housesFound; i++) { - if (EqualString(theHousesSpecs[i].name, PSTR("Demo House"), false, true)) + if (EqualString(theHousesSpecs[i].m_name, PSTR("Demo House"), false, true)) { demoHouseIndex = i; break; @@ -646,12 +648,12 @@ void BuildHouseList (void) //-------------------------------------------------------------- AddExtraHouse -void AddExtraHouse (FSSpec *newHouse) +void AddExtraHouse (const VFileSpec &newHouse) { if (numExtraHouses >= kMaxExtraHouses) return; - extraHouseSpecs[numExtraHouses] = *newHouse; + extraHouseSpecs[numExtraHouses] = newHouse; numExtraHouses++; } diff --git a/GpApp/Settings.cpp b/GpApp/Settings.cpp index 4eaaab4..194af68 100644 --- a/GpApp/Settings.cpp +++ b/GpApp/Settings.cpp @@ -624,7 +624,7 @@ void UpdateSettingsSound (DialogPtr theDialog) void HandleSoundMusicChange (short newVolume, Boolean sayIt) { - OSErr theErr; + PLError_t theErr; isSoundOn = (newVolume != 0); @@ -637,7 +637,7 @@ void HandleSoundMusicChange (short newVolume, Boolean sayIt) if (!isMusicOn) { theErr = StartMusic(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowNoMusic, theErr); failedMusic = true; @@ -751,7 +751,7 @@ void DoSoundPrefs (void) Rect tempRect; DialogPtr prefDlg; short wasLoudness, tempVolume; - OSErr theErr; + PLError_t theErr; short itemHit; Boolean leaving; ModalFilterUPP soundFilterUPP; @@ -791,7 +791,7 @@ void DoSoundPrefs (void) if (wasLoudness != 0) { theErr = StartMusic(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowNoMusic, theErr); failedMusic = true; @@ -846,7 +846,7 @@ void DoSoundPrefs (void) if (tempVolume != 0) { theErr = StartMusic(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowNoMusic, theErr); failedMusic = true; @@ -1207,7 +1207,7 @@ void DoDisplayPrefs (void) void SetAllDefaults (void) { - OSErr theErr; + PLError_t theErr; // Default brain settings willMaxFiles = 48; doZooms = true; @@ -1234,7 +1234,7 @@ void SetAllDefaults (void) if (!isMusicOn) { theErr = StartMusic(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowNoMusic, theErr); failedMusic = true; diff --git a/GpApp/Sound.cpp b/GpApp/Sound.cpp index 2ca07b9..e5b0cc3 100644 --- a/GpApp/Sound.cpp +++ b/GpApp/Sound.cpp @@ -10,6 +10,7 @@ #include "PLSound.h" #include "Externs.h" #include "SoundSync.h" +#include "VirtualDirectory.h" #define kBaseBufferSoundID 1000 @@ -19,10 +20,10 @@ void CallBack0 (SndChannelPtr, SndCommand *); void CallBack1 (SndChannelPtr, SndCommand *); void CallBack2 (SndChannelPtr, SndCommand *); -OSErr LoadBufferSounds (void); +PLError_t LoadBufferSounds (void); void DumpBufferSounds (void); -OSErr OpenSoundChannels (void); -OSErr CloseSoundChannels (void); +PLError_t OpenSoundChannels (void); +PLError_t CloseSoundChannels (void); SndCallBackUPP callBack0UPP, callBack1UPP, callBack2UPP; @@ -76,7 +77,7 @@ void PlayPrioritySound (short which, short priority) void FlushAnyTriggerPlaying (void) { SndCommand theCommand; - OSErr theErr; + PLError_t theErr; SoundSyncState ss = SoundSync_ReadAll(); @@ -122,7 +123,7 @@ void FlushAnyTriggerPlaying (void) void PlayExclusiveSoundChannel(short channelIndex, short soundID, short oldPriority, short newPriority) { SndCommand theCommand; - OSErr theErr; + PLError_t theErr; if (failedSound || dontLoadSounds) return; @@ -143,7 +144,7 @@ void PlayExclusiveSoundChannel(short channelIndex, short soundID, short oldPrior return; } - theErr = noErr; + theErr = PLErrors::kNone; if (isSoundOn) { if (oldPriority != 0) @@ -174,7 +175,7 @@ void PlayExclusiveSoundChannel(short channelIndex, short soundID, short oldPrior theCommand.param2 = 0; theErr = SndDoCommand(channel, &theCommand, true); - if (theErr != noErr) + if (theErr != PLErrors::kNone) SoundSync_ClearPriority(channelIndex); } } @@ -202,24 +203,24 @@ void CallBack2 (SndChannelPtr theChannel, SndCommand *theCommand) //-------------------------------------------------------------- LoadTriggerSound -OSErr LoadTriggerSound (short soundID) +PLError_t LoadTriggerSound (short soundID) { Handle theSound; long soundDataSize; - OSErr theErr; + PLError_t theErr; if ((dontLoadSounds) || (theSoundData[kMaxSounds - 1] != nil)) - theErr = -1; + theErr = PLErrors::kFileNotFound; else { // FlushAnyTriggerPlaying(); - theErr = noErr; + theErr = PLErrors::kNone; theSound = GetResource('snd ', soundID); if (theSound == nil) { - theErr = -1; + theErr = PLErrors::kFileNotFound; } else { @@ -228,7 +229,7 @@ OSErr LoadTriggerSound (short soundID) if (theSoundData[kMaxSounds - 1] == nil) { ReleaseResource(theSound); - theErr = MemError(); + theErr = PLErrors::kOutOfMemory; } else { @@ -252,26 +253,26 @@ void DumpTriggerSound (void) //-------------------------------------------------------------- LoadBufferSounds -OSErr LoadBufferSounds (void) +PLError_t LoadBufferSounds (void) { Handle theSound; long soundDataSize; - OSErr theErr; + PLError_t theErr; short i; - theErr = noErr; + theErr = PLErrors::kNone; for (i = 0; i < kMaxSounds - 1; i++) { theSound = GetResource('snd ', i + kBaseBufferSoundID); if (theSound == nil) - return (MemError()); + return (PLErrors::kOutOfMemory); soundDataSize = GetHandleSize(theSound) - 20L; theSoundData[i] = NewPtr(soundDataSize); if (theSoundData[i] == nil) - return (MemError()); + return (PLErrors::kOutOfMemory); BlockMove((Ptr)((Byte*)(*theSound) + 20L), theSoundData[i], soundDataSize); ReleaseResource(theSound); @@ -298,15 +299,15 @@ void DumpBufferSounds (void) //-------------------------------------------------------------- OpenSoundChannels -OSErr OpenSoundChannels (void) +PLError_t OpenSoundChannels (void) { - OSErr theErr; + PLError_t theErr; callBack0UPP = NewSndCallBackProc(CallBack0); callBack1UPP = NewSndCallBackProc(CallBack1); callBack2UPP = NewSndCallBackProc(CallBack2); - theErr = noErr; + theErr = PLErrors::kNone; if (channelOpen) return (theErr); @@ -314,7 +315,7 @@ OSErr OpenSoundChannels (void) theErr = SndNewChannel(&channel0, sampledSynth, initNoInterp + initMono, (SndCallBackUPP)callBack0UPP); - if (theErr == noErr) + if (theErr == PLErrors::kNone) channelOpen = true; else return (theErr); @@ -322,7 +323,7 @@ OSErr OpenSoundChannels (void) theErr = SndNewChannel(&channel1, sampledSynth, initNoInterp + initMono, (SndCallBackUPP)callBack1UPP); - if (theErr == noErr) + if (theErr == PLErrors::kNone) channelOpen = true; else return (theErr); @@ -330,7 +331,7 @@ OSErr OpenSoundChannels (void) theErr = SndNewChannel(&channel2, sampledSynth, initNoInterp + initMono, (SndCallBackUPP)callBack2UPP); - if (theErr == noErr) + if (theErr == PLErrors::kNone) channelOpen = true; return (theErr); @@ -338,11 +339,11 @@ OSErr OpenSoundChannels (void) //-------------------------------------------------------------- CloseSoundChannels -OSErr CloseSoundChannels (void) +PLError_t CloseSoundChannels (void) { - OSErr theErr; + PLError_t theErr; - theErr = noErr; + theErr = PLErrors::kNone; if (!channelOpen) return (theErr); @@ -359,7 +360,7 @@ OSErr CloseSoundChannels (void) theErr = SndDisposeChannel(channel2, true); channel2 = nil; - if (theErr == noErr) + if (theErr == PLErrors::kNone) channelOpen = false; DisposeSndCallBackUPP(callBack0UPP); @@ -373,7 +374,7 @@ OSErr CloseSoundChannels (void) void InitSound (void) { - OSErr theErr; + PLError_t theErr; if (dontLoadSounds) return; @@ -389,7 +390,7 @@ void InitSound (void) SoundSync_ClearPriority(2); theErr = LoadBufferSounds(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowFailedSound, theErr); failedSound = true; @@ -398,7 +399,7 @@ void InitSound (void) if (!failedSound) { theErr = OpenSoundChannels(); - if (theErr != noErr) + if (theErr != PLErrors::kNone) { YellowAlert(kYellowFailedSound, theErr); failedSound = true; @@ -410,7 +411,7 @@ void InitSound (void) void KillSound (void) { - OSErr theErr; + PLError_t theErr; if (dontLoadSounds) return; diff --git a/GpApp/StructuresInit.cpp b/GpApp/StructuresInit.cpp index 504bcde..67e20bb 100644 --- a/GpApp/StructuresInit.cpp +++ b/GpApp/StructuresInit.cpp @@ -61,7 +61,7 @@ void InitScoreboardMap (void) Rect bounds; PicHandle thePicture; CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; short hOffset; wasCPort = GetGraphicsPort(); @@ -70,7 +70,7 @@ void InitScoreboardMap (void) boardSrcRect = houseRect; ZeroRectCorner(&boardSrcRect); boardSrcRect.bottom = kScoreboardTall; - theErr = CreateOffScreenGWorld(&boardSrcMap, &boardSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&boardSrcMap, &boardSrcRect, kPreferredPixelFormat); SetGraphicsPort(boardSrcMap); if (boardSrcRect.right >= 640) @@ -87,7 +87,7 @@ void InitScoreboardMap (void) ReleaseResource((Handle)thePicture); QSetRect(&badgeSrcRect, 0, 0, 32, 66); // 2144 pixels - theErr = CreateOffScreenGWorld(&badgeSrcMap, &badgeSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&badgeSrcMap, &badgeSrcRect, kPreferredPixelFormat); SetGraphicsPort(badgeSrcMap); LoadGraphic(kBadgePictID); @@ -98,7 +98,7 @@ void InitScoreboardMap (void) hOffset = -128; QSetRect(&boardTSrcRect, 0, 0, 256, 12); // room title - theErr = CreateOffScreenGWorld(&boardTSrcMap, &boardTSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&boardTSrcMap, &boardTSrcRect, kPreferredPixelFormat); SetGraphicsPort(boardTSrcMap); boardTDestRect = boardTSrcRect; QOffsetRect(&boardTDestRect, 137 + hOffset, 5); @@ -107,7 +107,7 @@ void InitScoreboardMap (void) TextFace(bold); QSetRect(&boardGSrcRect, 0, 0, 20, 10); // # gliders - theErr = CreateOffScreenGWorld(&boardGSrcMap, &boardGSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&boardGSrcMap, &boardGSrcRect, kPreferredPixelFormat); SetGraphicsPort(boardGSrcMap); boardGDestRect = boardGSrcRect; QOffsetRect(&boardGDestRect, 526 + hOffset, 5); @@ -116,7 +116,7 @@ void InitScoreboardMap (void) TextFace(bold); QSetRect(&boardPSrcRect, 0, 0, 64, 10); // points - theErr = CreateOffScreenGWorld(&boardPSrcMap, &boardPSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&boardPSrcMap, &boardPSrcRect, kPreferredPixelFormat); SetGraphicsPort(boardPSrcMap); boardPDestRect = boardPSrcRect; QOffsetRect(&boardPDestRect, 570 + hOffset, 5); // total = 6396 pixels @@ -163,21 +163,21 @@ void InitScoreboardMap (void) void InitGliderMap (void) { CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; short i; wasCPort = GetGraphicsPort(); QSetRect(&glidSrcRect, 0, 0, kGliderWide, 668); // 32112 pixels - theErr = CreateOffScreenGWorld(&glidSrcMap, &glidSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&glidSrcMap, &glidSrcRect, kPreferredPixelFormat); SetGraphicsPort(glidSrcMap); LoadGraphic(kGliderPictID); - theErr = CreateOffScreenGWorld(&glid2SrcMap, &glidSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&glid2SrcMap, &glidSrcRect, kPreferredPixelFormat); SetGraphicsPort(glid2SrcMap); LoadGraphic(kGlider2PictID); - theErr = CreateOffScreenGWorld(&glidMaskMap, &glidSrcRect, 1); + theErr = CreateOffScreenGWorld(&glidMaskMap, &glidSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(glidMaskMap); LoadGraphic(kGliderPictID + 1000); @@ -198,11 +198,11 @@ void InitGliderMap (void) QOffsetRect(&gliderSrc[30], 0, 648); QSetRect(&shadowSrcRect, 0, 0, kGliderWide, kShadowHigh * kNumShadowSrcRects); - theErr = CreateOffScreenGWorld(&shadowSrcMap, &shadowSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&shadowSrcMap, &shadowSrcRect, kPreferredPixelFormat); SetGraphicsPort(shadowSrcMap); LoadGraphic(kShadowPictID); - theErr = CreateOffScreenGWorld(&shadowMaskMap, &shadowSrcRect, 1); + theErr = CreateOffScreenGWorld(&shadowMaskMap, &shadowSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(shadowMaskMap); LoadGraphic(kShadowPictID + 1000); @@ -213,11 +213,11 @@ void InitGliderMap (void) } QSetRect(&bandsSrcRect, 0, 0, 16, 18); // 304 pixels - theErr = CreateOffScreenGWorld(&bandsSrcMap, &bandsSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&bandsSrcMap, &bandsSrcRect, kPreferredPixelFormat); SetGraphicsPort(bandsSrcMap); LoadGraphic(kRubberBandsPictID); - theErr = CreateOffScreenGWorld(&bandsMaskMap, &bandsSrcRect, 1); + theErr = CreateOffScreenGWorld(&bandsMaskMap, &bandsSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(bandsMaskMap); LoadGraphic(kRubberBandsPictID + 1000); @@ -238,16 +238,16 @@ void InitBlowers (void) { CGrafPtr wasCPort; short i; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&blowerSrcRect, 0, 0, 48, 402); // 19344 pixels - theErr = CreateOffScreenGWorld(&blowerSrcMap, &blowerSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&blowerSrcMap, &blowerSrcRect, kPreferredPixelFormat); SetGraphicsPort(blowerSrcMap); LoadGraphic(kBlowerPictID); - theErr = CreateOffScreenGWorld(&blowerMaskMap, &blowerSrcRect, 1); + theErr = CreateOffScreenGWorld(&blowerMaskMap, &blowerSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(blowerMaskMap); LoadGraphic(kBlowerPictID + 1000); @@ -285,16 +285,16 @@ void InitBlowers (void) void InitFurniture (void) { CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&furnitureSrcRect, 0, 0, 64, 278); // 17856 pixels - theErr = CreateOffScreenGWorld(&furnitureSrcMap, &furnitureSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&furnitureSrcMap, &furnitureSrcRect, kPreferredPixelFormat); SetGraphicsPort(furnitureSrcMap); LoadGraphic(kFurniturePictID); - theErr = CreateOffScreenGWorld(&furnitureMaskMap, &furnitureSrcRect, 1); + theErr = CreateOffScreenGWorld(&furnitureMaskMap, &furnitureSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(furnitureMaskMap); LoadGraphic(kFurniturePictID + 1000); @@ -333,16 +333,16 @@ void InitPrizes (void) { CGrafPtr wasCPort; short i; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&bonusSrcRect, 0, 0, 88, 378); // 33264 pixels - theErr = CreateOffScreenGWorld(&bonusSrcMap, &bonusSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&bonusSrcMap, &bonusSrcRect, kPreferredPixelFormat); SetGraphicsPort(bonusSrcMap); LoadGraphic(kBonusPictID); - theErr = CreateOffScreenGWorld(&bonusMaskMap, &bonusSrcRect, 1); + theErr = CreateOffScreenGWorld(&bonusMaskMap, &bonusSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(bonusMaskMap); LoadGraphic(kBonusPictID + 1000); @@ -391,11 +391,11 @@ void InitPrizes (void) sparkleSrc[1] = sparkleSrc[3]; QSetRect(&pointsSrcRect, 0, 0, 24, 120); // 2880 pixels - theErr = CreateOffScreenGWorld(&pointsSrcMap, &pointsSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&pointsSrcMap, &pointsSrcRect, kPreferredPixelFormat); SetGraphicsPort(pointsSrcMap); LoadGraphic(kPointsPictID); - theErr = CreateOffScreenGWorld(&pointsMaskMap, &pointsSrcRect, 1); + theErr = CreateOffScreenGWorld(&pointsMaskMap, &pointsSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(pointsMaskMap); LoadGraphic(kPointsPictID + 1000); @@ -415,16 +415,16 @@ void InitPrizes (void) void InitTransports (void) { CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&transSrcRect, 0, 0, 56, 32); // 1848 pixels - theErr = CreateOffScreenGWorld(&transSrcMap, &transSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&transSrcMap, &transSrcRect, kPreferredPixelFormat); SetGraphicsPort(transSrcMap); LoadGraphic(kTransportPictID); - theErr = CreateOffScreenGWorld(&transMaskMap, &transSrcRect, 1); + theErr = CreateOffScreenGWorld(&transMaskMap, &transSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(transMaskMap); LoadGraphic(kTransportPictID + 1000); @@ -438,12 +438,12 @@ void InitTransports (void) void InitSwitches (void) { CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&switchSrcRect, 0, 0, 32, 104); // 3360 pixels - theErr = CreateOffScreenGWorld(&switchSrcMap, &switchSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&switchSrcMap, &switchSrcRect, kPreferredPixelFormat); SetGraphicsPort(switchSrcMap); LoadGraphic(kSwitchPictID); @@ -483,16 +483,16 @@ void InitLights (void) { CGrafPtr wasCPort; short i; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&lightSrcRect, 0, 0, 72, 126); // 9144 pixels - theErr = CreateOffScreenGWorld(&lightSrcMap, &lightSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&lightSrcMap, &lightSrcRect, kPreferredPixelFormat); SetGraphicsPort(lightSrcMap); LoadGraphic(kLightPictID); - theErr = CreateOffScreenGWorld(&lightMaskMap, &lightSrcRect, 1); + theErr = CreateOffScreenGWorld(&lightMaskMap, &lightSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(lightMaskMap); LoadGraphic(kLightPictID + 1000); @@ -519,34 +519,34 @@ void InitAppliances (void) { CGrafPtr wasCPort; short i; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&applianceSrcRect, 0, 0, 80, 269); // 21600 pixels - theErr = CreateOffScreenGWorld(&applianceSrcMap, &applianceSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&applianceSrcMap, &applianceSrcRect, kPreferredPixelFormat); SetGraphicsPort(applianceSrcMap); LoadGraphic(kAppliancePictID); - theErr = CreateOffScreenGWorld(&applianceMaskMap, &applianceSrcRect, 1); + theErr = CreateOffScreenGWorld(&applianceMaskMap, &applianceSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(applianceMaskMap); LoadGraphic(kAppliancePictID + 1000); QSetRect(&toastSrcRect, 0, 0, 32, 174); // 5600 pixels - theErr = CreateOffScreenGWorld(&toastSrcMap, &toastSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&toastSrcMap, &toastSrcRect, kPreferredPixelFormat); SetGraphicsPort(toastSrcMap); LoadGraphic(kToastPictID); - theErr = CreateOffScreenGWorld(&toastMaskMap, &toastSrcRect, 1); + theErr = CreateOffScreenGWorld(&toastMaskMap, &toastSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(toastMaskMap); LoadGraphic(kToastPictID + 1000); QSetRect(&shredSrcRect, 0, 0, 40, 35); // 1440 pixels - theErr = CreateOffScreenGWorld(&shredSrcMap, &shredSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&shredSrcMap, &shredSrcRect, kPreferredPixelFormat); SetGraphicsPort(shredSrcMap); LoadGraphic(kShreddedPictID); - theErr = CreateOffScreenGWorld(&shredMaskMap, &shredSrcRect, 1); + theErr = CreateOffScreenGWorld(&shredMaskMap, &shredSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(shredMaskMap); LoadGraphic(kShreddedPictID + 1000); @@ -603,70 +603,70 @@ void InitEnemies (void) { CGrafPtr wasCPort; short i; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&balloonSrcRect, 0, 0, 24, 30 * kNumBalloonFrames); - theErr = CreateOffScreenGWorld(&balloonSrcMap, &balloonSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&balloonSrcMap, &balloonSrcRect, kPreferredPixelFormat); SetGraphicsPort(balloonSrcMap); LoadGraphic(kBalloonPictID); - theErr = CreateOffScreenGWorld(&balloonMaskMap, &balloonSrcRect, 1); + theErr = CreateOffScreenGWorld(&balloonMaskMap, &balloonSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(balloonMaskMap); LoadGraphic(kBalloonPictID + 1000); QSetRect(&copterSrcRect, 0, 0, 32, 30 * kNumCopterFrames); - theErr = CreateOffScreenGWorld(&copterSrcMap, &copterSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&copterSrcMap, &copterSrcRect, kPreferredPixelFormat); SetGraphicsPort(copterSrcMap); LoadGraphic(kCopterPictID); - theErr = CreateOffScreenGWorld(&copterMaskMap, &copterSrcRect, 1); + theErr = CreateOffScreenGWorld(&copterMaskMap, &copterSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(copterMaskMap); LoadGraphic(kCopterPictID + 1000); QSetRect(&dartSrcRect, 0, 0, 64, 19 * kNumDartFrames); - theErr = CreateOffScreenGWorld(&dartSrcMap, &dartSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&dartSrcMap, &dartSrcRect, kPreferredPixelFormat); SetGraphicsPort(dartSrcMap); LoadGraphic(kDartPictID); - theErr = CreateOffScreenGWorld(&dartMaskMap, &dartSrcRect, 1); + theErr = CreateOffScreenGWorld(&dartMaskMap, &dartSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(dartMaskMap); LoadGraphic(kDartPictID + 1000); QSetRect(&ballSrcRect, 0, 0, 32, 32 * kNumBallFrames); - theErr = CreateOffScreenGWorld(&ballSrcMap, &ballSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&ballSrcMap, &ballSrcRect, kPreferredPixelFormat); SetGraphicsPort(ballSrcMap); LoadGraphic(kBallPictID); - theErr = CreateOffScreenGWorld(&ballMaskMap, &ballSrcRect, 1); + theErr = CreateOffScreenGWorld(&ballMaskMap, &ballSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(ballMaskMap); LoadGraphic(kBallPictID + 1000); QSetRect(&dripSrcRect, 0, 0, 16, 12 * kNumDripFrames); - theErr = CreateOffScreenGWorld(&dripSrcMap, &dripSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&dripSrcMap, &dripSrcRect, kPreferredPixelFormat); SetGraphicsPort(dripSrcMap); LoadGraphic(kDripPictID); - theErr = CreateOffScreenGWorld(&dripMaskMap, &dripSrcRect, 1); + theErr = CreateOffScreenGWorld(&dripMaskMap, &dripSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(dripMaskMap); LoadGraphic(kDripPictID + 1000); QSetRect(&enemySrcRect, 0, 0, 36, 33); - theErr = CreateOffScreenGWorld(&enemySrcMap, &enemySrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&enemySrcMap, &enemySrcRect, kPreferredPixelFormat); SetGraphicsPort(enemySrcMap); LoadGraphic(kEnemyPictID); - theErr = CreateOffScreenGWorld(&enemyMaskMap, &enemySrcRect, 1); + theErr = CreateOffScreenGWorld(&enemyMaskMap, &enemySrcRect, GpPixelFormats::kBW1); SetGraphicsPort(enemyMaskMap); LoadGraphic(kEnemyPictID + 1000); QSetRect(&fishSrcRect, 0, 0, 16, 16 * kNumFishFrames); - theErr = CreateOffScreenGWorld(&fishSrcMap, &fishSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&fishSrcMap, &fishSrcRect, kPreferredPixelFormat); SetGraphicsPort(fishSrcMap); LoadGraphic(kFishPictID); - theErr = CreateOffScreenGWorld(&fishMaskMap, &fishSrcRect, 1); + theErr = CreateOffScreenGWorld(&fishMaskMap, &fishSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(fishMaskMap); LoadGraphic(kFishPictID + 1000); diff --git a/GpApp/StructuresInit2.cpp b/GpApp/StructuresInit2.cpp index 32815ed..ccfc5d3 100644 --- a/GpApp/StructuresInit2.cpp +++ b/GpApp/StructuresInit2.cpp @@ -30,7 +30,7 @@ void InitAngel (void); extern Rect suppSrcRect, justRoomsRect; extern Rect tileSrcRect, angelSrcRect; extern CGrafPtr tileSrcMap; -extern FSSpecPtr theHousesSpecs; +extern VFileSpec *theHousesSpecs; extern hotPtr hotSpots; extern sparklePtr sparkles; extern flyingPtPtr flyingPoints; @@ -53,16 +53,16 @@ extern short maxFiles; void InitClutter (void) { CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&clutterSrcRect, 0, 0, 128, 69); - theErr = CreateOffScreenGWorld(&clutterSrcMap, &clutterSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&clutterSrcMap, &clutterSrcRect, kPreferredPixelFormat); SetGraphicsPort(clutterSrcMap); LoadGraphic(kClutterPictID); - theErr = CreateOffScreenGWorld(&clutterMaskMap, &clutterSrcRect, 1); + theErr = CreateOffScreenGWorld(&clutterMaskMap, &clutterSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(clutterMaskMap); LoadGraphic(kClutterPictID + 1000); @@ -95,12 +95,12 @@ void InitClutter (void) void InitSupport (void) { CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&suppSrcRect, 0, 0, kRoomWide, kFloorSupportTall); // 44 - theErr = CreateOffScreenGWorld(&suppSrcMap, &suppSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&suppSrcMap, &suppSrcRect, kPreferredPixelFormat); SetGraphicsPort(suppSrcMap); LoadGraphic(kSupportPictID); @@ -115,16 +115,16 @@ void InitSupport (void) void InitAngel (void) { CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); QSetRect(&angelSrcRect, 0, 0, 96, 44); - theErr = CreateOffScreenGWorld(&angelSrcMap, &angelSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&angelSrcMap, &angelSrcRect, kPreferredPixelFormat); SetGraphicsPort(angelSrcMap); LoadGraphic(kAngelPictID); - theErr = CreateOffScreenGWorld(&angelMaskMap, &angelSrcRect, 1); + theErr = CreateOffScreenGWorld(&angelMaskMap, &angelSrcRect, GpPixelFormats::kBW1); SetGraphicsPort(angelMaskMap); LoadGraphic(kAngelPictID + 1); @@ -140,7 +140,7 @@ void InitAngel (void) void CreateOffscreens (void) { CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; wasCPort = GetGraphicsPort(); @@ -149,11 +149,11 @@ void CreateOffscreens (void) workSrcRect = houseRect; // Set up work map ZeroRectCorner(&workSrcRect); - theErr = CreateOffScreenGWorld(&workSrcMap, &workSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&workSrcMap, &workSrcRect, kPreferredPixelFormat); backSrcRect = houseRect; // Set up background map ZeroRectCorner(&backSrcRect); - theErr = CreateOffScreenGWorld(&backSrcMap, &backSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&backSrcMap, &backSrcRect, kPreferredPixelFormat); InitScoreboardMap(); SpinCursor(1); InitGliderMap(); SpinCursor(1); @@ -269,7 +269,7 @@ void CreatePointers (void) RedAlert(kErrNoMemory); theHousesSpecs = nil; - theHousesSpecs = (FSSpecPtr)NewPtr(sizeof(FSSpec) * maxFiles); + theHousesSpecs = (VFileSpec*)NewPtr(sizeof(VFileSpec) * maxFiles); if (theHousesSpecs == nil) RedAlert(kErrNoMemory); diff --git a/GpApp/Tools.cpp b/GpApp/Tools.cpp index 131c94f..47cecd1 100644 --- a/GpApp/Tools.cpp +++ b/GpApp/Tools.cpp @@ -74,14 +74,14 @@ Boolean isToolsOpen; void CreateToolsOffscreen (void) { CGrafPtr wasCPort; - OSErr theErr; + PLError_t theErr; if (toolSrcMap == nil) { wasCPort = GetGraphicsPort(); QSetRect(&toolSrcRect, 0, 0, 360, 216); - theErr = CreateOffScreenGWorld(&toolSrcMap, &toolSrcRect, kPreferredDepth); + theErr = CreateOffScreenGWorld(&toolSrcMap, &toolSrcRect, kPreferredPixelFormat); SetGraphicsPort(toolSrcMap); LoadGraphic(kToolsPictID); diff --git a/GpApp/Utilities.cpp b/GpApp/Utilities.cpp index 9f99119..06a12d0 100644 --- a/GpApp/Utilities.cpp +++ b/GpApp/Utilities.cpp @@ -156,7 +156,7 @@ void CreateOffScreenBitMap (Rect *theRect, GrafPtr *offScreen) if (theBitMap.baseAddr == nil) RedAlert(kErrNoMemory); theBitMap.bounds = *theRect; - if (MemError() != noErr) + if (MemError() != PLErrors::kNone) RedAlert(kErrNoMemory); SetPortBits(&theBitMap); ClipRect(theRect); @@ -175,7 +175,7 @@ void CreateOffScreenPixMap (Rect *theRect, CGrafPtr *offScreen) CGrafPtr newCGrafPtr; Ptr theseBits; long sizeOfOff, offRowBytes; - OSErr theErr; + PLError_t theErr; short thisDepth; char wasState; @@ -229,17 +229,11 @@ void CreateOffScreenPixMap (Rect *theRect, CGrafPtr *offScreen) //-------------------------------------------------------------------- CreateOffScreenGWorld // Creates an offscreen GWorldÊusing the depth passed in. -OSErr CreateOffScreenGWorld (GWorldPtr *theGWorld, Rect *bounds, short depth) +PLError_t CreateOffScreenGWorld (GWorldPtr *theGWorld, Rect *bounds, GpPixelFormat_t pixelFormat) { - OSErr theErr; + PLError_t theErr; - theErr = NewGWorld(theGWorld, depth, bounds, nil, useTempMem); - - if (theErr) - theErr = NewGWorld(theGWorld, depth, bounds, nil, 0); - - if (!theErr) - LockPixels(GetGWorldPixMap(*theGWorld)); + theErr = NewGWorld(theGWorld, pixelFormat, bounds, nil); return theErr; } @@ -318,11 +312,11 @@ void LoadScaledGraphic (short resID, Rect *theRect) void LargeIconPlot (Rect *theRect, short theID) { - OSErr theErr; + PLError_t theErr; Handle theSuite; theErr = GetIconSuite(&theSuite, theID, svAllLargeData); - if (theErr == noErr) + if (theErr == PLErrors::kNone) theErr = PlotIconSuite(theRect, atNone, ttNone, theSuite); } @@ -522,7 +516,7 @@ void DelayTicks (long howLong) void UnivGetSoundVolume (short *volume, Boolean hasSM3) { long longVol; - OSErr theErr; + PLError_t theErr; // if (hasSM3) // { @@ -545,7 +539,7 @@ void UnivGetSoundVolume (short *volume, Boolean hasSM3) void UnivSetSoundVolume (short volume, Boolean hasSM3) { long longVol; - OSErr theErr; + PLError_t theErr; if (volume > 7) volume = 7; diff --git a/GpApp/Utilities.h b/GpApp/Utilities.h index d5fca68..0f13e97 100644 --- a/GpApp/Utilities.h +++ b/GpApp/Utilities.h @@ -6,6 +6,7 @@ #include "PLQDOffscreen.h" +#include "GpPixelFormat.h" -OSErr CreateOffScreenGWorld (GWorldPtr *theGWorld, Rect *bounds, short depth); +PLError_t CreateOffScreenGWorld (GWorldPtr *theGWorld, Rect *bounds, GpPixelFormat_t pixelFormat); diff --git a/GpD3D/GpFileSystem_Win32.cpp b/GpD3D/GpFileSystem_Win32.cpp index 2765a19..05be9f5 100644 --- a/GpD3D/GpFileSystem_Win32.cpp +++ b/GpD3D/GpFileSystem_Win32.cpp @@ -112,9 +112,12 @@ GpFileSystem_Win32::GpFileSystem_Win32() } m_prefsDir.append(L"\\GlidePort"); + m_scoresDir = m_prefsDir + L"\\Scores"; CreateDirectoryW(m_prefsDir.c_str(), nullptr); + CreateDirectoryW(m_scoresDir.c_str(), nullptr); m_prefsDir.append(L"\\"); + m_scoresDir.append(L"\\"); } DWORD modulePathSize = GetModuleFileNameW(nullptr, m_executablePath, MAX_PATH); @@ -153,13 +156,13 @@ GpFileSystem_Win32::GpFileSystem_Win32() if (currentPathLength > 0) { - m_packagedDir = std::wstring(m_executablePath) + L"Packaged\\"; + m_packagedDir = std::wstring(m_executablePath) + L"Packaged\\"; m_housesDir = std::wstring(m_executablePath) + L"Packaged\\Houses\\"; m_resourcesDir = std::wstring(m_executablePath) + L"Resources\\"; } } -bool GpFileSystem_Win32::FileExists(PortabilityLayer::EVirtualDirectory virtualDirectory, const char *path) +bool GpFileSystem_Win32::FileExists(PortabilityLayer::VirtualDirectory_t virtualDirectory, const char *path) { wchar_t winPath[MAX_PATH + 1]; @@ -169,7 +172,7 @@ bool GpFileSystem_Win32::FileExists(PortabilityLayer::EVirtualDirectory virtualD return PathFileExistsW(winPath) != 0; } -PortabilityLayer::IOStream *GpFileSystem_Win32::OpenFile(PortabilityLayer::EVirtualDirectory virtualDirectory, const char *path, bool writeAccess, bool create) +PortabilityLayer::IOStream *GpFileSystem_Win32::OpenFile(PortabilityLayer::VirtualDirectory_t virtualDirectory, const char *path, bool writeAccess, bool create) { wchar_t winPath[MAX_PATH + 1]; @@ -179,14 +182,14 @@ PortabilityLayer::IOStream *GpFileSystem_Win32::OpenFile(PortabilityLayer::EVirt const DWORD desiredAccess = writeAccess ? (GENERIC_WRITE | GENERIC_READ) : GENERIC_READ; const DWORD creationDisposition = create ? OPEN_ALWAYS : OPEN_EXISTING; - HANDLE h = CreateFileW(winPath, desiredAccess, FILE_SHARE_READ, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr); + HANDLE h = CreateFileW(winPath, desiredAccess, FILE_SHARE_READ, nullptr, creationDisposition, FILE_ATTRIBUTE_NORMAL, nullptr); if (h == INVALID_HANDLE_VALUE) return false; return new GpFileStream_Win32(h, true, writeAccess, true); } -PortabilityLayer::HostDirectoryCursor *GpFileSystem_Win32::ScanDirectory(PortabilityLayer::EVirtualDirectory virtualDirectory) +PortabilityLayer::HostDirectoryCursor *GpFileSystem_Win32::ScanDirectory(PortabilityLayer::VirtualDirectory_t virtualDirectory) { wchar_t winPath[MAX_PATH + 2]; @@ -212,24 +215,27 @@ GpFileSystem_Win32 *GpFileSystem_Win32::GetInstance() return &ms_instance; } -bool GpFileSystem_Win32::ResolvePath(PortabilityLayer::EVirtualDirectory virtualDirectory, const char *path, wchar_t *outPath) +bool GpFileSystem_Win32::ResolvePath(PortabilityLayer::VirtualDirectory_t virtualDirectory, const char *path, wchar_t *outPath) { const wchar_t *baseDir = nullptr; switch (virtualDirectory) { - case PortabilityLayer::EVirtualDirectory_ApplicationData: + case PortabilityLayer::VirtualDirectories::kApplicationData: baseDir = m_packagedDir.c_str(); break; - case PortabilityLayer::EVirtualDirectory_GameData: + case PortabilityLayer::VirtualDirectories::kGameData: baseDir = m_housesDir.c_str(); break; - case PortabilityLayer::EVirtualDirectory_Prefs: + case PortabilityLayer::VirtualDirectories::kPrefs: baseDir = m_prefsDir.c_str(); break; - case PortabilityLayer::EVirtualDirectory_Fonts: + case PortabilityLayer::VirtualDirectories::kFonts: baseDir = m_resourcesDir.c_str(); break; + case PortabilityLayer::VirtualDirectories::kHighScores: + baseDir = m_scoresDir.c_str(); + break; default: return false; } diff --git a/GpD3D/GpFileSystem_Win32.h b/GpD3D/GpFileSystem_Win32.h index e52718a..53a7e57 100644 --- a/GpD3D/GpFileSystem_Win32.h +++ b/GpD3D/GpFileSystem_Win32.h @@ -12,18 +12,19 @@ class GpFileSystem_Win32 final : public PortabilityLayer::HostFileSystem public: GpFileSystem_Win32(); - bool FileExists(PortabilityLayer::EVirtualDirectory virtualDirectory, const char *path) override; - PortabilityLayer::IOStream *OpenFile(PortabilityLayer::EVirtualDirectory virtualDirectory, const char *path, bool writeAccess, bool create) override; - PortabilityLayer::HostDirectoryCursor *ScanDirectory(PortabilityLayer::EVirtualDirectory virtualDirectory) override; + bool FileExists(PortabilityLayer::VirtualDirectory_t virtualDirectory, const char *path) override; + PortabilityLayer::IOStream *OpenFile(PortabilityLayer::VirtualDirectory_t virtualDirectory, const char *path, bool writeAccess, bool create) override; + PortabilityLayer::HostDirectoryCursor *ScanDirectory(PortabilityLayer::VirtualDirectory_t virtualDirectory) override; const wchar_t *GetBasePath() const; static GpFileSystem_Win32 *GetInstance(); private: - bool ResolvePath(PortabilityLayer::EVirtualDirectory virtualDirectory, const char *path, wchar_t *outPath); + bool ResolvePath(PortabilityLayer::VirtualDirectory_t virtualDirectory, const char *path, wchar_t *outPath); std::wstring m_prefsDir; + std::wstring m_scoresDir; std::wstring m_packagedDir; std::wstring m_housesDir; std::wstring m_resourcesDir; diff --git a/PortabilityLayer/FileManager.cpp b/PortabilityLayer/FileManager.cpp index 294aeb5..fda024b 100644 --- a/PortabilityLayer/FileManager.cpp +++ b/PortabilityLayer/FileManager.cpp @@ -6,6 +6,7 @@ #include "MacFileMem.h" #include "PLPasStr.h" #include "PLErrorCodes.h" +#include "ResTypeID.h" #include @@ -16,62 +17,89 @@ namespace PortabilityLayer class FileManagerImpl final : public FileManager { public: - bool FileExists(uint32_t dirID, const PLPasStr &filename) override; + bool FileExists(VirtualDirectory_t dirID, const PLPasStr &filename) override; + bool DeleteFile(VirtualDirectory_t dirID, const PLPasStr &filename) override; - int OpenFileDF(uint32_t dirID, const PLPasStr &filename, EFilePermission filePermission, short *outRefNum) override; - int OpenFileRF(uint32_t dirID, const PLPasStr &filename, EFilePermission filePermission, short *outRefNum) override; - bool ReadFileProperties(uint32_t dirID, const PLPasStr &filename, MacFileProperties &properties) override; - IOStream *GetFileStream(int fileID) override; + PLError_t CreateFile(VirtualDirectory_t dirID, const PLPasStr &filename, const MacFileProperties &mfp) override; - int RawOpenFileDF(uint32_t dirID, const PLPasStr &filename, EFilePermission filePermission, bool ignoreMeta, IOStream **outStream) override; - int RawOpenFileRF(uint32_t dirID, const PLPasStr &filename, EFilePermission filePermission, bool ignoreMeta, IOStream **outStream) override; + PLError_t OpenFileDF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission filePermission, IOStream *&outRefNum) override; + PLError_t OpenFileRF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission filePermission, IOStream *&outRefNum) override; + bool ReadFileProperties(VirtualDirectory_t dirID, const PLPasStr &filename, MacFileProperties &properties) override; + + PLError_t RawOpenFileDF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission filePermission, bool ignoreMeta, IOStream *&outStream) override; + PLError_t RawOpenFileRF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission filePermission, bool ignoreMeta, IOStream *&outStream) override; static FileManagerImpl *GetInstance(); private: typedef char ExtendedFileName_t[64 + 4]; - struct OpenedFile - { - EVirtualDirectory m_dirID; - PascalStr<64> m_fileName; - - IOStream *m_stream; - }; - - int OpenFileFork(uint32_t dirID, const PLPasStr &filename, const char *ext, EFilePermission permission, short *outRefNum); - int RawOpenFileFork(uint32_t dirID, const PLPasStr &filename, const char *ext, EFilePermission permission, bool ignoreMeta, IOStream **outStream); + PLError_t OpenFileFork(VirtualDirectory_t dirID, const PLPasStr &filename, const char *ext, EFilePermission permission, IOStream *&outRefNum); + PLError_t RawOpenFileFork(VirtualDirectory_t dirID, const PLPasStr &filename, const char *ext, EFilePermission permission, bool ignoreMeta, bool create, IOStream *&outStream); static bool ConstructFilename(ExtendedFileName_t& extFN, const PLPasStr &fn, const char *extension); - std::vector m_refs; - static FileManagerImpl ms_instance; }; - bool FileManagerImpl::FileExists(uint32_t dirID, const PLPasStr &filename) + bool FileManagerImpl::FileExists(VirtualDirectory_t dirID, const PLPasStr &filename) { ExtendedFileName_t extFN; if (!ConstructFilename(extFN, filename, ".gpf")) return false; - return HostFileSystem::GetInstance()->FileExists(static_cast(dirID), extFN); + return HostFileSystem::GetInstance()->FileExists(dirID, extFN); } - int FileManagerImpl::OpenFileDF(uint32_t dirID, const PLPasStr &filename, EFilePermission permission, short *outRefNum) + bool FileManagerImpl::DeleteFile(VirtualDirectory_t dirID, const PLPasStr &filename) { - return OpenFileFork(dirID, filename, ".gpd", permission, outRefNum); + ExtendedFileName_t extFN; + if (!ConstructFilename(extFN, filename, ".gpf")) + return false; + + // PL_NotYetImplemented_TODO("FileSystem") + return false; } - int FileManagerImpl::OpenFileRF(uint32_t dirID, const PLPasStr &filename, EFilePermission permission, short *outRefNum) + PLError_t FileManagerImpl::CreateFile(VirtualDirectory_t dirID, const PLPasStr &filename, const MacFileProperties &mfp) { - return OpenFileFork(dirID, filename, ".gpr", permission, outRefNum); + MacFilePropertiesSerialized serialized; + serialized.Serialize(mfp); + + ExtendedFileName_t extFN; + if (!ConstructFilename(extFN, filename, ".gpf")) + return PLErrors::kBadFileName; + + IOStream *stream = nullptr; + PLError_t err = RawOpenFileFork(dirID, filename, ".gpf", EFilePermission_Write, true, true, stream); + if (err) + return err; + + if (stream->Write(serialized.m_data, sizeof(serialized.m_data)) != sizeof(serialized.m_data)) + { + stream->Close(); + return PLErrors::kIOError; + } + + stream->Close(); + + return PLErrors::kNone; } - bool FileManagerImpl::ReadFileProperties(uint32_t dirID, const PLPasStr &filename, MacFileProperties &properties) + PLError_t FileManagerImpl::OpenFileDF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission permission, IOStream *&outStream) + { + return OpenFileFork(dirID, filename, ".gpd", permission, outStream); + } + + PLError_t FileManagerImpl::OpenFileRF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission permission, IOStream *&outStream) + { + return OpenFileFork(dirID, filename, ".gpr", permission, outStream); + } + + bool FileManagerImpl::ReadFileProperties(VirtualDirectory_t dirID, const PLPasStr &filename, MacFileProperties &properties) { IOStream *stream = nullptr; - int err = RawOpenFileFork(dirID, filename, ".gpf", EFilePermission_Read, true, &stream); + PLError_t err = RawOpenFileFork(dirID, filename, ".gpf", EFilePermission_Read, true, false, stream); if (err) return false; @@ -85,19 +113,14 @@ namespace PortabilityLayer return readOk; } - IOStream *FileManagerImpl::GetFileStream(int fileID) + PLError_t FileManagerImpl::RawOpenFileDF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission permission, bool ignoreMeta, IOStream *&outStream) { - return m_refs[fileID].m_stream; + return RawOpenFileFork(dirID, filename, ".gpd", permission, ignoreMeta, false, outStream); } - int FileManagerImpl::RawOpenFileDF(uint32_t dirID, const PLPasStr &filename, EFilePermission permission, bool ignoreMeta, IOStream **outStream) + PLError_t FileManagerImpl::RawOpenFileRF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission permission, bool ignoreMeta, IOStream *&outStream) { - return RawOpenFileFork(dirID, filename, ".gpd", permission, ignoreMeta, outStream); - } - - int FileManagerImpl::RawOpenFileRF(uint32_t dirID, const PLPasStr &filename, EFilePermission permission, bool ignoreMeta, IOStream **outStream) - { - return RawOpenFileFork(dirID, filename, ".gpr", permission, ignoreMeta, outStream); + return RawOpenFileFork(dirID, filename, ".gpr", permission, ignoreMeta, false, outStream); } FileManagerImpl *FileManagerImpl::GetInstance() @@ -105,91 +128,72 @@ namespace PortabilityLayer return &ms_instance; } - int FileManagerImpl::OpenFileFork(uint32_t dirID, const PLPasStr &filename, const char *extension, EFilePermission permission, short *outRefNum) + PLError_t FileManagerImpl::OpenFileFork(VirtualDirectory_t dirID, const PLPasStr &filename, const char *extension, EFilePermission permission, IOStream *&outStream) { - const size_t numRefs = m_refs.size(); - size_t refIndex = m_refs.size(); - for (size_t i = 0; i < numRefs; i++) - { - if (m_refs[i].m_stream == nullptr) - { - refIndex = i; - break; - } - } - - if (refIndex == 0x8000) - return tmfoErr; - + bool isWriteAccess = (permission == EFilePermission_Any || permission == EFilePermission_ReadWrite || permission == EFilePermission_Write); IOStream *stream = nullptr; - int openError = RawOpenFileFork(dirID, filename, extension, permission, false, &stream); - if (openError != 0) + PLError_t openError = RawOpenFileFork(dirID, filename, extension, permission, false, isWriteAccess, stream); + if (openError != PLErrors::kNone) return openError; - if (refIndex == numRefs) - m_refs.push_back(OpenedFile()); + outStream = stream; - OpenedFile &of = m_refs[refIndex]; - of.m_stream = stream; - of.m_dirID = static_cast(dirID); - of.m_fileName.Set(filename.Length(), filename.Chars()); - - *outRefNum = static_cast(refIndex); - - return noErr; + return PLErrors::kNone; } - int FileManagerImpl::RawOpenFileFork(uint32_t dirID, const PLPasStr &filename, const char *ext, EFilePermission permission, bool ignoreMeta, IOStream **outStream) + PLError_t FileManagerImpl::RawOpenFileFork(VirtualDirectory_t dirID, const PLPasStr &filename, const char *ext, EFilePermission permission, bool ignoreMeta, bool create, IOStream *&outStream) { ExtendedFileName_t gpfExtFN; ExtendedFileName_t extFN; if (filename.Length() > 63) - return bdNamErr; + return PLErrors::kBadFileName; if (!ignoreMeta) { if (!ConstructFilename(gpfExtFN, filename, ".gpf")) - return bdNamErr; + return PLErrors::kBadFileName; - if (!HostFileSystem::GetInstance()->FileExists(static_cast(dirID), gpfExtFN)) - return fnfErr; + if (!HostFileSystem::GetInstance()->FileExists(dirID, gpfExtFN)) + return PLErrors::kFileNotFound; } if (!ConstructFilename(extFN, filename, ext)) - return bdNamErr; + return PLErrors::kBadFileName; - const bool needToCreate = !(ignoreMeta || HostFileSystem::GetInstance()->FileExists(static_cast(dirID), extFN)); + const bool needToCreate = create && !HostFileSystem::GetInstance()->FileExists(dirID, extFN); IOStream *fstream = nullptr; switch (permission) { case EFilePermission_Any: - fstream = HostFileSystem::GetInstance()->OpenFile(static_cast(dirID), extFN, true, needToCreate); + fstream = HostFileSystem::GetInstance()->OpenFile(dirID, extFN, true, needToCreate); if (fstream) permission = EFilePermission_ReadWrite; else { permission = EFilePermission_Read; - fstream = HostFileSystem::GetInstance()->OpenFile(static_cast(dirID), extFN, false, needToCreate); + fstream = HostFileSystem::GetInstance()->OpenFile(dirID, extFN, false, needToCreate); } break; case EFilePermission_Read: - fstream = HostFileSystem::GetInstance()->OpenFile(static_cast(dirID), extFN, false, needToCreate); + fstream = HostFileSystem::GetInstance()->OpenFile(dirID, extFN, false, needToCreate); break; case EFilePermission_ReadWrite: - fstream = HostFileSystem::GetInstance()->OpenFile(static_cast(dirID), extFN, true, needToCreate); + case EFilePermission_Write: + fstream = HostFileSystem::GetInstance()->OpenFile(dirID, extFN, true, needToCreate); break; } if (!fstream) - return permErr; + return PLErrors::kAccessDenied; - *outStream = fstream; - return noErr; + outStream = fstream; + + return PLErrors::kNone; } - bool FileManagerImpl::ConstructFilename(ExtendedFileName_t& extFN, const PLPasStr &fn, const char *extension) + bool FileManagerImpl::ConstructFilename(ExtendedFileName_t &extFN, const PLPasStr &fn, const char *extension) { const size_t fnameSize = fn.Length(); if (fnameSize >= 64) diff --git a/PortabilityLayer/FileManager.h b/PortabilityLayer/FileManager.h index 0886c6b..7e11219 100644 --- a/PortabilityLayer/FileManager.h +++ b/PortabilityLayer/FileManager.h @@ -1,35 +1,40 @@ -#pragma once -#ifndef __PL_FILE_MANAGER_H__ -#define __PL_FILE_MANAGER_H__ - -#include "FilePermission.h" +#pragma once +#ifndef __PL_FILE_MANAGER_H__ +#define __PL_FILE_MANAGER_H__ + +#include "FilePermission.h" #include "CoreDefs.h" -#include "FilePos.h" - -#include - -class PLPasStr; - -namespace PortabilityLayer -{ +#include "FilePos.h" +#include "PLErrorCodes.h" +#include "VirtualDirectory.h" + +#include + +class PLPasStr; + +namespace PortabilityLayer +{ class IOStream; - struct MacFileProperties; - - class FileManager - { - public: - virtual bool FileExists(uint32_t dirID, const PLPasStr &filename) = 0; - - virtual int OpenFileDF(uint32_t dirID, const PLPasStr &filename, EFilePermission filePermission, short *outRefNum) = 0; - virtual int OpenFileRF(uint32_t dirID, const PLPasStr &filename, EFilePermission filePermission, short *outRefNum) = 0; - virtual bool ReadFileProperties(uint32_t dirID, const PLPasStr &filename, MacFileProperties &properties) = 0; - virtual IOStream *GetFileStream(int fileID) = 0; - - virtual int RawOpenFileDF(uint32_t dirID, const PLPasStr &filename, EFilePermission filePermission, bool ignoreMeta, IOStream **outStream) = 0; - virtual int RawOpenFileRF(uint32_t dirID, const PLPasStr &filename, EFilePermission filePermission, bool ignoreMeta, IOStream **outStream) = 0; - - static FileManager *GetInstance(); - }; -} - -#endif + class ResTypeID; + struct MacFileProperties; + + class FileManager + { + public: + virtual bool FileExists(VirtualDirectory_t dirID, const PLPasStr &filename) = 0; + virtual bool DeleteFile(VirtualDirectory_t dirID, const PLPasStr &filename) = 0; + + virtual PLError_t CreateFile(VirtualDirectory_t dirID, const PLPasStr &filename, const MacFileProperties &mfp) = 0; + + virtual PLError_t OpenFileDF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission filePermission, IOStream *&outStream) = 0; + virtual PLError_t OpenFileRF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission filePermission, IOStream *&outStream) = 0; + virtual bool ReadFileProperties(VirtualDirectory_t dirID, const PLPasStr &filename, MacFileProperties &properties) = 0; + + virtual PLError_t RawOpenFileDF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission filePermission, bool ignoreMeta, IOStream *&outStream) = 0; + virtual PLError_t RawOpenFileRF(VirtualDirectory_t dirID, const PLPasStr &filename, EFilePermission filePermission, bool ignoreMeta, IOStream *&outStream) = 0; + + static FileManager *GetInstance(); + }; +} + +#endif diff --git a/PortabilityLayer/FilePermission.h b/PortabilityLayer/FilePermission.h index f3926f5..8b9a367 100644 --- a/PortabilityLayer/FilePermission.h +++ b/PortabilityLayer/FilePermission.h @@ -9,6 +9,7 @@ namespace PortabilityLayer EFilePermission_Any, EFilePermission_Read, EFilePermission_ReadWrite, + EFilePermission_Write, }; } diff --git a/PortabilityLayer/FontFamily.cpp b/PortabilityLayer/FontFamily.cpp index 5ed54cf..205761d 100644 --- a/PortabilityLayer/FontFamily.cpp +++ b/PortabilityLayer/FontFamily.cpp @@ -11,7 +11,7 @@ namespace PortabilityLayer { void FontFamily::AddFont(int flags, const char *path, FontHacks fontHacks) { - PortabilityLayer::IOStream *sysFontStream = PortabilityLayer::HostFileSystem::GetInstance()->OpenFile(PortabilityLayer::EVirtualDirectory_Fonts, path, false, false); + PortabilityLayer::IOStream *sysFontStream = PortabilityLayer::HostFileSystem::GetInstance()->OpenFile(PortabilityLayer::VirtualDirectories::kFonts, path, false, false); if (!sysFontStream) return; diff --git a/PortabilityLayer/HostFileSystem.h b/PortabilityLayer/HostFileSystem.h index 4e86fea..2a22d11 100644 --- a/PortabilityLayer/HostFileSystem.h +++ b/PortabilityLayer/HostFileSystem.h @@ -12,9 +12,9 @@ namespace PortabilityLayer class HostFileSystem { public: - virtual bool FileExists(EVirtualDirectory virtualDirectory, const char *path) = 0; - virtual IOStream *OpenFile(EVirtualDirectory virtualDirectory, const char *path, bool writeAccess, bool create) = 0; - virtual HostDirectoryCursor *ScanDirectory(EVirtualDirectory virtualDirectory) = 0; + virtual bool FileExists(VirtualDirectory_t virtualDirectory, const char *path) = 0; + virtual IOStream *OpenFile(VirtualDirectory_t virtualDirectory, const char *path, bool writeAccess, bool create) = 0; + virtual HostDirectoryCursor *ScanDirectory(VirtualDirectory_t virtualDirectory) = 0; static HostFileSystem *GetInstance(); static void SetInstance(HostFileSystem *instance); diff --git a/PortabilityLayer/MacFileInfo.h b/PortabilityLayer/MacFileInfo.h index a4d7557..0b3dca7 100644 --- a/PortabilityLayer/MacFileInfo.h +++ b/PortabilityLayer/MacFileInfo.h @@ -30,7 +30,7 @@ namespace PortabilityLayer uint32_t m_creationDate; uint32_t m_modifiedDate; - void Serialize(void *buffer); + void Serialize(void *buffer) const; void Deserialize(const void *buffer); }; diff --git a/PortabilityLayer/MenuManager.cpp b/PortabilityLayer/MenuManager.cpp index 595eb86..2aaab48 100644 --- a/PortabilityLayer/MenuManager.cpp +++ b/PortabilityLayer/MenuManager.cpp @@ -551,9 +551,7 @@ namespace PortabilityLayer if (m_menuBarGraf == nullptr) { - int depth = PortabilityLayer::QDManager::GetInstance()->DepthForPixelFormat(pixelFormat); - - if (qdManager->NewGWorld(&m_menuBarGraf, depth, menuRect, nullptr, 0) != 0) + if (qdManager->NewGWorld(&m_menuBarGraf, pixelFormat, menuRect, nullptr) != 0) return; } @@ -1017,7 +1015,7 @@ namespace PortabilityLayer GpPixelFormat_t pixelFormat; PortabilityLayer::HostDisplayDriver::GetInstance()->GetDisplayResolution(nullptr, nullptr, &pixelFormat); - if (qdManager->NewGWorld(&m_menuGraf, qdManager->DepthForPixelFormat(pixelFormat), menuRect, nullptr, 0) != 0) + if (qdManager->NewGWorld(&m_menuGraf, pixelFormat, menuRect, nullptr) != 0) return; } diff --git a/PortabilityLayer/PLAliases.cpp b/PortabilityLayer/PLAliases.cpp deleted file mode 100644 index 64a0ced..0000000 --- a/PortabilityLayer/PLAliases.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "PLAliases.h" - -OSErr ResolveAliasFile(FSSpecPtr fsSpec, Boolean recursive, Boolean *outIsFolder, Boolean *outWasAliased) -{ - *outIsFolder = PL_FALSE; - *outWasAliased = PL_FALSE; - return noErr; -} diff --git a/PortabilityLayer/PLAliases.h b/PortabilityLayer/PLAliases.h deleted file mode 100644 index ee165cc..0000000 --- a/PortabilityLayer/PLAliases.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once -#ifndef __PL_ALIASES_H__ -#define __PL_ALIASES_H__ - -#include "PLCore.h" - -OSErr ResolveAliasFile(FSSpecPtr fsSpec, Boolean recursive, Boolean *outIsFolder, Boolean *outWasAliased); - -#endif diff --git a/PortabilityLayer/PLAppleEvents.cpp b/PortabilityLayer/PLAppleEvents.cpp index 41d6633..26f35bd 100644 --- a/PortabilityLayer/PLAppleEvents.cpp +++ b/PortabilityLayer/PLAppleEvents.cpp @@ -1,46 +1,46 @@ #include "PLAppleEvents.h" #include "AEManager.h" -OSErr AEGetParamDesc(const AppleEvent *evt, AEKeyword keyword, DescType desiredType, AEDescList *descList) +PLError_t AEGetParamDesc(const AppleEvent *evt, AEKeyword keyword, DescType desiredType, AEDescList *descList) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr AEDisposeDesc(AEDescList *descList) +PLError_t AEDisposeDesc(AEDescList *descList) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr AECountItems(AEDescList *descList, long *count) +PLError_t AECountItems(AEDescList *descList, long *count) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr AEGetNthPtr(AEDescList *descList, long index, DescType desiredType, AEKeyword *keyword, DescType *type, void *data, Size maxSize, Size *actualSize) +PLError_t AEGetNthPtr(AEDescList *descList, long index, DescType desiredType, AEKeyword *keyword, DescType *type, void *data, Size maxSize, Size *actualSize) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr AEGetAttributePtr(const AppleEvent *evt, AEKeyword keyword, DescType desiredType, DescType *type, void *data, Size maxSize, Size *actualSize) +PLError_t AEGetAttributePtr(const AppleEvent *evt, AEKeyword keyword, DescType desiredType, DescType *type, void *data, Size maxSize, Size *actualSize) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr AEInstallEventHandler(AEEventClass eventClass, AEEventID eventID, AEEventHandlerUPP handler, UInt32 ref, bool isSysHandler) +PLError_t AEInstallEventHandler(AEEventClass eventClass, AEEventID eventID, AEEventHandlerUPP handler, UInt32 ref, bool isSysHandler) { PortabilityLayer::AEManager::GetInstance()->InstallEventHandler(eventClass, eventID, handler, ref, isSysHandler); - return noErr; + return PLErrors::kNone; } -OSErr AESetInteractionAllowed(AEInteractAllowed level) +PLError_t AESetInteractionAllowed(AEInteractAllowed level) { PortabilityLayer::AEManager::GetInstance()->SetInteractAllowed(level); - return noErr; + return PLErrors::kNone; } AEEventHandlerUPP NewAEEventHandlerProc(AEEventHandler handler) diff --git a/PortabilityLayer/PLAppleEvents.h b/PortabilityLayer/PLAppleEvents.h index 7ca1588..1b73be5 100644 --- a/PortabilityLayer/PLAppleEvents.h +++ b/PortabilityLayer/PLAppleEvents.h @@ -19,13 +19,13 @@ struct AEDesc typedef AEEventHandler AEEventHandlerUPP; -OSErr AEGetParamDesc(const AppleEvent *evt, AEKeyword keyword, DescType desiredType, AEDescList *descList); -OSErr AEDisposeDesc(AEDescList *descList); -OSErr AECountItems(AEDescList *descList, long *count); -OSErr AEGetNthPtr(AEDescList *descList, long index, DescType desiredType, AEKeyword *keyword, DescType *type, void *data, Size maxSize, Size *actualSize); -OSErr AEGetAttributePtr(const AppleEvent *evt, AEKeyword keyword, DescType desiredType, DescType *type, void *data, Size maxSize, Size *actualSize); -OSErr AEInstallEventHandler(AEEventClass eventClass, AEEventID eventID, AEEventHandlerUPP handler, UInt32 ref, bool isSysHandler); -OSErr AESetInteractionAllowed(AEInteractAllowed level); +PLError_t AEGetParamDesc(const AppleEvent *evt, AEKeyword keyword, DescType desiredType, AEDescList *descList); +PLError_t AEDisposeDesc(AEDescList *descList); +PLError_t AECountItems(AEDescList *descList, long *count); +PLError_t AEGetNthPtr(AEDescList *descList, long index, DescType desiredType, AEKeyword *keyword, DescType *type, void *data, Size maxSize, Size *actualSize); +PLError_t AEGetAttributePtr(const AppleEvent *evt, AEKeyword keyword, DescType desiredType, DescType *type, void *data, Size maxSize, Size *actualSize); +PLError_t AEInstallEventHandler(AEEventClass eventClass, AEEventID eventID, AEEventHandlerUPP handler, UInt32 ref, bool isSysHandler); +PLError_t AESetInteractionAllowed(AEInteractAllowed level); AEEventHandlerUPP NewAEEventHandlerProc(AEEventHandler handler); diff --git a/PortabilityLayer/PLAppleEventsCommonTypes.h b/PortabilityLayer/PLAppleEventsCommonTypes.h index 30b6a38..22be153 100644 --- a/PortabilityLayer/PLAppleEventsCommonTypes.h +++ b/PortabilityLayer/PLAppleEventsCommonTypes.h @@ -2,6 +2,8 @@ #ifndef __PL_APPLE_EVENTS_COMMON_TYPES_H__ #define __PL_APPLE_EVENTS_COMMON_TYPES_H__ +#include "PLErrorCodes.h" + #include struct AppleEvent; @@ -45,6 +47,6 @@ enum AEInteractAllowed kAEInteractWithAll }; -typedef int(*AEEventHandler)(const AppleEvent *theAE, AppleEvent *reply, uint32_t ref); +typedef PLError_t (*AEEventHandler)(const AppleEvent *theAE, AppleEvent *reply, uint32_t ref); #endif diff --git a/PortabilityLayer/PLCore.cpp b/PortabilityLayer/PLCore.cpp index 865f0a2..27ca57b 100644 --- a/PortabilityLayer/PLCore.cpp +++ b/PortabilityLayer/PLCore.cpp @@ -202,12 +202,6 @@ Rect BERect::ToRect() const return rect; } -OSErr FSClose(short fsRef) -{ - PL_NotYetImplemented(); - return noErr; -} - CursHandle GetCursor(int cursorID) { return reinterpret_cast(GetResource('CURS', cursorID)); @@ -465,7 +459,7 @@ long MenuSelect(Point point) long MenuKey(int charCode) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } long TickCount() @@ -605,23 +599,10 @@ UInt32 FreeMem() return 256 * 1024 * 1024; } -OSErr AEProcessAppleEvent(EventRecord *evt) +PLError_t AEProcessAppleEvent(EventRecord *evt) { PL_NotYetImplemented(); - return noErr; -} - -OSErr FindFolder(int refNum, int posType, bool createFolder, short *volumeRef, long *dirID) -{ - switch (posType) - { - case kPreferencesFolderType: - *volumeRef = 0; - *dirID = PortabilityLayer::EVirtualDirectory_Prefs; - return noErr; - default: - return genericErr; - } + return PLErrors::kNone; } void GetIndString(unsigned char *str, int stringsID, int fnameIndex) @@ -649,41 +630,46 @@ void GetIndString(unsigned char *str, int stringsID, int fnameIndex) } } -OSErr PBDirCreate(HFileParam *fileParam, bool asynchronous) +PLError_t PBDirCreate(HFileParam *fileParam, bool asynchronous) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr FSMakeFSSpec(int refNum, long dirID, const PLPasStr &fileName, FSSpec *spec) + +VFileSpec MakeVFileSpec(PortabilityLayer::VirtualDirectory_t dir, const PLPasStr &fileName) { + VFileSpec spec; - if (fileName.Length() >= sizeof(spec->name)) - return genericErr; + assert(fileName.Length() < sizeof(spec.m_name)); - PortabilityLayer::Utils::MakePStr(spec->name, fileName.Length(), fileName.Chars()); - spec->vRefNum = refNum; - spec->parID = dirID; + spec.m_dir = dir; + spec.m_name[0] = static_cast(fileName.Length()); + memcpy(spec.m_name + 1, fileName.UChars(), fileName.Length()); - if (!PortabilityLayer::FileManager::GetInstance()->FileExists(dirID, fileName)) - return fnfErr; - - return noErr; + return spec; } -OSErr FSpCreate(const FSSpec *spec, UInt32 creator, UInt32 fileType, ScriptCode scriptTag) +PLError_t FSpCreate(const VFileSpec &spec, UInt32 creator, UInt32 fileType) +{ + PortabilityLayer::FileManager *fm = PortabilityLayer::FileManager::GetInstance(); + + PortabilityLayer::MacFileProperties props; + PortabilityLayer::ResTypeIDCodec::Encode(creator, props.m_fileCreator); + PortabilityLayer::ResTypeIDCodec::Encode(fileType, props.m_fileType); + + PL_NotYetImplemented_TODO("DateTime"); + + return fm->CreateFile(spec.m_dir, spec.m_name, props); +} + +PLError_t FSpDirCreate(const VFileSpec &spec, long *outDirID) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr FSpDirCreate(const FSSpec *spec, ScriptCode script, long *outDirID) -{ - PL_NotYetImplemented(); - return noErr; -} - -OSErr FSpOpenDF(const FSSpec *spec, int permission, short *refNum) +PLError_t FSpOpenDF(const VFileSpec &spec, int permission, PortabilityLayer::IOStream *&stream) { PortabilityLayer::EFilePermission perm = PortabilityLayer::EFilePermission_Any; switch (permission) @@ -699,85 +685,47 @@ OSErr FSpOpenDF(const FSSpec *spec, int permission, short *refNum) perm = PortabilityLayer::EFilePermission_Any; break; default: - return permErr; + return PLErrors::kAccessDenied; } - return PortabilityLayer::FileManager::GetInstance()->OpenFileDF(spec->parID, spec->name, perm, refNum); + return PortabilityLayer::FileManager::GetInstance()->OpenFileDF(spec.m_dir, spec.m_name, perm, stream); } -OSErr FSWrite(short refNum, long *byteCount, const void *data) +PLError_t FSpDelete(const VFileSpec &spec) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr FSRead(short refNum, long *byteCount, void *data) -{ - PortabilityLayer::IOStream *stream = PortabilityLayer::FileManager::GetInstance()->GetFileStream(refNum); - - const size_t bytesRead = stream->Read(data, static_cast(*byteCount)); - *byteCount = static_cast(bytesRead); - - return noErr; -} - -OSErr FSpDelete(const FSSpec *spec) -{ - PL_NotYetImplemented(); - return noErr; -} - -OSErr FSpGetFInfo(const FSSpec *spec, FInfo *finfo) +PLError_t FSpGetFInfo(const VFileSpec &spec, VFileInfo &finfo) { PortabilityLayer::MacFileProperties mfp; - if (!PortabilityLayer::FileManager::GetInstance()->ReadFileProperties(static_cast(spec->parID), spec->name, mfp)) - return fnfErr; + if (!PortabilityLayer::FileManager::GetInstance()->ReadFileProperties(spec.m_dir, spec.m_name, mfp)) + return PLErrors::kFileNotFound; - finfo->fdType = PortabilityLayer::ResTypeIDCodec::Decode(mfp.m_fileType); + finfo.m_type = PortabilityLayer::ResTypeID(mfp.m_fileType); + finfo.m_creator = PortabilityLayer::ResTypeID(mfp.m_fileCreator); - return noErr; + return PLErrors::kNone; } -OSErr SetFPos(short refNum, SetFPosWhere where, long offset) -{ - switch (where) - { - case fsFromStart: - if (!PortabilityLayer::FileManager::GetInstance()->GetFileStream(refNum)->SeekStart(static_cast(offset))) - return ioErr; - break; - default: - return genericErr; - } - - return noErr; -} - -OSErr GetEOF(short refNum, long *byteCount) -{ - const PortabilityLayer::UFilePos_t fileSize = PortabilityLayer::FileManager::GetInstance()->GetFileStream(refNum)->Size(); - - *byteCount = static_cast(fileSize); - return noErr; -} - -OSErr SetEOF(short refNum, long byteCount) +PLError_t SetEOF(short refNum, long byteCount) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr PBGetCatInfo(CInfoPBPtr paramBlock, Boolean async) +PLError_t PBGetCatInfo(CInfoPBPtr paramBlock, Boolean async) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -DirectoryFileListEntry *GetDirectoryFiles(long dirID) +DirectoryFileListEntry *GetDirectoryFiles(PortabilityLayer::VirtualDirectory_t dirID) { PortabilityLayer::MemoryManager *mm = PortabilityLayer::MemoryManager::GetInstance(); PortabilityLayer::HostFileSystem *fs = PortabilityLayer::HostFileSystem::GetInstance(); - PortabilityLayer::HostDirectoryCursor *dirCursor = fs->ScanDirectory(static_cast(dirID)); + PortabilityLayer::HostDirectoryCursor *dirCursor = fs->ScanDirectory(dirID); DirectoryFileListEntry *firstDFL = nullptr; DirectoryFileListEntry *lastDFL = nullptr; @@ -798,7 +746,7 @@ DirectoryFileListEntry *GetDirectoryFiles(long dirID) if (!strcmp(&filename[fnLen - 4], ".gpf")) { const size_t dotPos = fnLen - 4; - PortabilityLayer::IOStream *stream = fs->OpenFile(static_cast(dirID), filename, false, false); + PortabilityLayer::IOStream *stream = fs->OpenFile(dirID, filename, false, false); if (!stream) continue; @@ -1020,19 +968,19 @@ long GetHandleSize(Handle handle) return static_cast(block->m_size); } -OSErr PtrAndHand(const void *data, Handle handle, Size size) +PLError_t PtrAndHand(const void *data, Handle handle, Size size) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr SetHandleSize(Handle hdl, Size newSize) +PLError_t SetHandleSize(Handle hdl, Size newSize) { PortabilityLayer::MemoryManager *mm = PortabilityLayer::MemoryManager::GetInstance(); if (!mm->ResizeHandle(reinterpret_cast(hdl), newSize)) - return genericErr; + return PLErrors::kOutOfMemory; - return noErr; + return PLErrors::kNone; } void *NewPtr(Size size) @@ -1068,12 +1016,6 @@ char HGetState(Handle handle) return 0; } -OSErr MemError() -{ - PL_NotYetImplemented(); - return 0; -} - void BlockMove(const void *src, void *dest, Size size) { memcpy(dest, src, size); diff --git a/PortabilityLayer/PLCore.h b/PortabilityLayer/PLCore.h index dbf892a..12cc6ac 100644 --- a/PortabilityLayer/PLCore.h +++ b/PortabilityLayer/PLCore.h @@ -7,6 +7,8 @@ #include "SharedTypes.h" #include "QDPort.h" #include "QDGraf.h" +#include "ResTypeID.h" +#include "VirtualDirectory.h" #ifdef _MSC_VER #pragma warning(error:4311) // Pointer truncation to int @@ -17,6 +19,7 @@ struct IGpColorCursor; namespace PortabilityLayer { struct MMHandleBlock; + class IOStream; } typedef uint8_t Boolean; @@ -25,7 +28,6 @@ typedef uint8_t UInt8; typedef int16_t SInt16; typedef int32_t Int32; typedef uint32_t UInt32; -typedef int OSErr; typedef size_t Size; @@ -132,17 +134,17 @@ struct ColorSpec uint8_t r, g, b; }; -struct FSSpec +struct VFileSpec { - Str63 name; - UInt32 parID; // Directory ID - SInt16 vRefNum; // Volume ID + PortabilityLayer::VirtualDirectory_t m_dir; + Str63 m_name; }; -typedef struct FInfo +struct VFileInfo { - UInt32 fdType; -} FInfo; + PortabilityLayer::ResTypeID m_type; + PortabilityLayer::ResTypeID m_creator; +}; struct HFileParam { @@ -166,7 +168,6 @@ typedef CGrafPtr GWorldPtr; typedef Window *WindowPtr; typedef Cursor *CursPtr; typedef CCursor *CCrsrPtr; -typedef FSSpec *FSSpecPtr; typedef Menu *MenuPtr; typedef CInfoPBRec *CInfoPBPtr; typedef VersionRecord *VersRecPtr; @@ -210,26 +211,6 @@ enum EventCode kHighLevelEvent, }; -enum ScriptCode -{ - smSystemScript, -}; - -enum FindFolderRefNum -{ - kOnSystemDisk, -}; - -enum FindFolderType -{ - kPreferencesFolderType, -}; - -enum SetFPosWhere -{ - fsFromStart, -}; - enum BuiltinWDEFs { noGrowDocProc = 4, // Movable, not resizable @@ -261,8 +242,6 @@ static const int nullEvent = 0; //void FlushEvents(int eventMask, int stopMask); -OSErr FSClose(short fsRef); - void InitCursor(); CursHandle GetCursor(int cursorID); CCrsrHandle GetCCursor(int cursorID); @@ -319,28 +298,24 @@ void ParamText(const PLPasStr &title, const PLPasStr &a, const PLPasStr &b, cons UInt32 FreeMem(); -OSErr AEProcessAppleEvent(EventRecord *evt); +PLError_t AEProcessAppleEvent(EventRecord *evt); -OSErr FindFolder(int refNum, int posType, bool createFolder, short *volumeRef, long *dirID); +PLError_t FindFolder(int refNum, int posType, bool createFolder, short *volumeRef, long *dirID); void GetIndString(unsigned char *str, int stringsID, int fnameIndex); // Fetches a string resource of some sort -OSErr PBDirCreate(HFileParam *fileParam, bool asynchronous); +PLError_t PBDirCreate(HFileParam *fileParam, bool asynchronous); -OSErr FSMakeFSSpec(int refNum, long dirID, const PLPasStr &fileName, FSSpec *spec); -OSErr FSpCreate(const FSSpec *spec, UInt32 creator, UInt32 fileType, ScriptCode scriptTag); -OSErr FSpDirCreate(const FSSpec *spec, ScriptCode script, long *outDirID); -OSErr FSpOpenDF(const FSSpec *spec, int permission, short *refNum); -OSErr FSpOpenRF(const FSSpec *spec, int permission, short *refNum); -OSErr FSWrite(short refNum, long *byteCount, const void *data); -OSErr FSRead(short refNum, long *byteCount, void *data); -OSErr FSpDelete(const FSSpec *spec); -OSErr FSpGetFInfo(const FSSpec *spec, FInfo *finfo); -OSErr SetFPos(short refNum, SetFPosWhere where, long offset); -OSErr GetEOF(short refNum, long *byteCount); -OSErr SetEOF(short refNum, long byteCount); +VFileSpec MakeVFileSpec(PortabilityLayer::VirtualDirectory_t dir, const PLPasStr &fileName); -OSErr PBGetCatInfo(CInfoPBPtr paramBlock, Boolean async); +PLError_t FSpCreate(const VFileSpec &spec, UInt32 creator, UInt32 fileType); +PLError_t FSpDirCreate(const VFileSpec &spec, long *outDirID); +PLError_t FSpOpenDF(const VFileSpec &spec, int permission, PortabilityLayer::IOStream *&stream); +PLError_t FSpOpenRF(const VFileSpec &spec, int permission, PortabilityLayer::IOStream *&stream); +PLError_t FSpDelete(const VFileSpec &spec); +PLError_t FSpGetFInfo(const VFileSpec &spec, VFileInfo &finfoOut); -DirectoryFileListEntry *GetDirectoryFiles(long dirID); +PLError_t PBGetCatInfo(CInfoPBPtr paramBlock, Boolean async); + +DirectoryFileListEntry *GetDirectoryFiles(PortabilityLayer::VirtualDirectory_t dirID); void DisposeDirectoryFiles(DirectoryFileListEntry *firstDFL); short StringWidth(const PLPasStr &str); @@ -366,8 +341,8 @@ Handle NewHandle(Size size); void DisposeHandle(Handle handle); long GetHandleSize(Handle handle); -OSErr PtrAndHand(const void *data, Handle handle, Size size); // Appends data to the end of a handle -OSErr SetHandleSize(Handle hdl, Size newSize); +PLError_t PtrAndHand(const void *data, Handle handle, Size size); // Appends data to the end of a handle +PLError_t SetHandleSize(Handle hdl, Size newSize); void *NewPtr(Size size); void *NewPtrClear(Size size); @@ -376,7 +351,7 @@ void DisposePtr(void *ptr); Size MaxMem(Size *growBytes); void PurgeSpace(long *totalFree, long *contiguousFree); -OSErr MemError(); +PLError_t MemError(); void BlockMove(const void *src, void *dest, Size size); diff --git a/PortabilityLayer/PLErrorCodes.h b/PortabilityLayer/PLErrorCodes.h index acd18b2..3acc88c 100644 --- a/PortabilityLayer/PLErrorCodes.h +++ b/PortabilityLayer/PLErrorCodes.h @@ -2,32 +2,30 @@ #ifndef __PL_ERROR_CODES_H__ #define __PL_ERROR_CODES_H__ -enum ErrorCodes + +namespace PLErrors { - noErr, + enum PLError + { + kNone = 0, - fnfErr, - eofErr, - userCanceledErr, - dirFulErr, - dskFulErr, - ioErr, - bdNamErr, - fnOpnErr, - mFulErr, - tmfoErr, - wPrErr, - fLckdErr, - vLckdErr, - fBsyErr, - dupFNErr, - opWrErr, - volOffLinErr, - permErr, - wrPermErr, - queueFull, + kInvalidParameter, - genericErr, -}; + kFileHandlesExhausted, + kBadFileName, + kFileNotFound, + kAccessDenied, + + kOutOfMemory, + + kAudioError, + + kIOError, + + kUserCancelled_TEMP, + }; +} + +typedef PLErrors::PLError PLError_t; #endif diff --git a/PortabilityLayer/PLMovies.cpp b/PortabilityLayer/PLMovies.cpp index 1de571d..7e7d744 100644 --- a/PortabilityLayer/PLMovies.cpp +++ b/PortabilityLayer/PLMovies.cpp @@ -1,8 +1,8 @@ #include "PLMovies.h" -OSErr EnterMovies() +PLError_t EnterMovies() { - return noErr; + return PLErrors::kNone; } UserData GetMovieUserData(Movie movie) @@ -17,46 +17,46 @@ int CountUserDataType(UserData userData, UInt32 type) return 0; } -OSErr RemoveUserData(UserData userData, UInt32 type, int index) +PLError_t RemoveUserData(UserData userData, UInt32 type, int index) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr AddUserData(UserData userData, Handle data, UInt32 type) +PLError_t AddUserData(UserData userData, Handle data, UInt32 type) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr OpenMovieFile(const FSSpec *fsSpec, short *outRefNum, int permissions) +PLError_t OpenMovieFile(const VFileSpec &fsSpec, short *outRefNum, int permissions) { PL_NotYetImplemented_TODO("Movies"); - return noErr; + return PLErrors::kNone; } -OSErr NewMovieFromFile(Movie *movie, short refNum, const short *optResId, StringPtr resName, int flags, Boolean *unused) +PLError_t NewMovieFromFile(Movie *movie, short refNum, const short *optResId, StringPtr resName, int flags, Boolean *unused) { PL_NotYetImplemented_TODO("Movies"); - return noErr; + return PLErrors::kNone; } -OSErr CloseMovieFile(short refNum) +PLError_t CloseMovieFile(short refNum) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr GoToBeginningOfMovie(Movie movie) +PLError_t GoToBeginningOfMovie(Movie movie) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr LoadMovieIntoRam(Movie movie, TimeValue time, TimeValue duration, int flags) +PLError_t LoadMovieIntoRam(Movie movie, TimeValue time, TimeValue duration, int flags) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } TimeValue GetMovieTime(Movie movie, TimeRecord *outCurrentTime) @@ -71,10 +71,10 @@ TimeValue GetMovieDuration(Movie movie) return 0; } -OSErr PrerollMovie(Movie movie, TimeValue time, UInt32 rate) +PLError_t PrerollMovie(Movie movie, TimeValue time, UInt32 rate) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } TimeBase GetMovieTimeBase(Movie movie) @@ -83,10 +83,10 @@ TimeBase GetMovieTimeBase(Movie movie) return nullptr; } -OSErr SetTimeBaseFlags(TimeBase timeBase, int flags) +PLError_t SetTimeBaseFlags(TimeBase timeBase, int flags) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } void SetMovieMasterTimeBase(Movie movie, TimeBase timeBase, void *unused) diff --git a/PortabilityLayer/PLMovies.h b/PortabilityLayer/PLMovies.h index 1fed614..684c903 100644 --- a/PortabilityLayer/PLMovies.h +++ b/PortabilityLayer/PLMovies.h @@ -34,22 +34,22 @@ typedef TimeBaseObject *TimeBase; typedef MovieObject *Movie; -OSErr EnterMovies(); +PLError_t EnterMovies(); UserData GetMovieUserData(Movie movie); int CountUserDataType(UserData userData, UInt32 type); -OSErr RemoveUserData(UserData userData, UInt32 type, int index); // Index is 1-based -OSErr AddUserData(UserData userData, Handle data, UInt32 type); -OSErr OpenMovieFile(const FSSpec *fsSpec, short *outRefNum, int permissions); -OSErr NewMovieFromFile(Movie *movie, short refNum, const short *optResId, StringPtr resName, int flags, Boolean *unused); -OSErr CloseMovieFile(short refNum); -OSErr GoToBeginningOfMovie(Movie movie); -OSErr LoadMovieIntoRam(Movie movie, TimeValue time, TimeValue duration, int flags); +PLError_t RemoveUserData(UserData userData, UInt32 type, int index); // Index is 1-based +PLError_t AddUserData(UserData userData, Handle data, UInt32 type); +PLError_t OpenMovieFile(const VFileSpec &fsSpec, short *outRefNum, int permissions); +PLError_t NewMovieFromFile(Movie *movie, short refNum, const short *optResId, StringPtr resName, int flags, Boolean *unused); +PLError_t CloseMovieFile(short refNum); +PLError_t GoToBeginningOfMovie(Movie movie); +PLError_t LoadMovieIntoRam(Movie movie, TimeValue time, TimeValue duration, int flags); TimeValue GetMovieTime(Movie movie, TimeRecord *outCurrentTime); TimeValue GetMovieDuration(Movie movie); -OSErr PrerollMovie(Movie movie, TimeValue time, UInt32 rate); +PLError_t PrerollMovie(Movie movie, TimeValue time, UInt32 rate); TimeBase GetMovieTimeBase(Movie movie); -OSErr SetTimeBaseFlags(TimeBase timeBase, int flags); +PLError_t SetTimeBaseFlags(TimeBase timeBase, int flags); void SetMovieMasterTimeBase(Movie movie, TimeBase timeBase, void *unused); void GetMovieBox(Movie movie, Rect *rect); void StopMovie(Movie movie); diff --git a/PortabilityLayer/PLNavigation.cpp b/PortabilityLayer/PLNavigation.cpp index 0fccea4..defc5ce 100644 --- a/PortabilityLayer/PLNavigation.cpp +++ b/PortabilityLayer/PLNavigation.cpp @@ -1,13 +1,13 @@ #include "PLNavigation.h" -OSErr NavGetDefaultDialogOptions(NavDialogOptions *options) +PLError_t NavGetDefaultDialogOptions(NavDialogOptions *options) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr NavPutFile(AEDesc *defaultLocation, NavReplyRecord *reply, NavDialogOptions *dlgOptions, void *unknown, UInt32 fileType, UInt32 fileCreator, void *unknown2) +PLError_t NavPutFile(AEDesc *defaultLocation, NavReplyRecord *reply, NavDialogOptions *dlgOptions, void *unknown, UInt32 fileType, UInt32 fileCreator, void *unknown2) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } diff --git a/PortabilityLayer/PLNavigation.h b/PortabilityLayer/PLNavigation.h index a19305b..2f8ad16 100644 --- a/PortabilityLayer/PLNavigation.h +++ b/PortabilityLayer/PLNavigation.h @@ -14,14 +14,13 @@ struct NavReplyRecord int vRefNum; long parID; // Directory? AEDescList selection; - ScriptCode keyScript; // ??? }; struct NavDialogOptions { }; -OSErr NavGetDefaultDialogOptions(NavDialogOptions *options); -OSErr NavPutFile(AEDesc *defaultLocation, NavReplyRecord *reply, NavDialogOptions *dlgOptions, void *unknown, UInt32 fileType, UInt32 fileCreator, void *unknown2); +PLError_t NavGetDefaultDialogOptions(NavDialogOptions *options); +PLError_t NavPutFile(AEDesc *defaultLocation, NavReplyRecord *reply, NavDialogOptions *dlgOptions, void *unknown, UInt32 fileType, UInt32 fileCreator, void *unknown2); #endif diff --git a/PortabilityLayer/PLQDOffscreen.cpp b/PortabilityLayer/PLQDOffscreen.cpp index 5377896..d699dc3 100644 --- a/PortabilityLayer/PLQDOffscreen.cpp +++ b/PortabilityLayer/PLQDOffscreen.cpp @@ -232,9 +232,9 @@ namespace PortabilityLayer } } -OSErr NewGWorld(GWorldPtr *gworld, int depth, const Rect *bounds, CTabHandle colorTable, int flags) +PLError_t NewGWorld(GWorldPtr *gworld, GpPixelFormat_t pixelFormat, const Rect *bounds, CTabHandle colorTable) { - return PortabilityLayer::QDManager::GetInstance()->NewGWorld(gworld, depth, *bounds, colorTable, flags); + return PortabilityLayer::QDManager::GetInstance()->NewGWorld(gworld, pixelFormat, *bounds, colorTable); } void DisposeGWorld(GWorldPtr gworld) @@ -250,11 +250,6 @@ PixMapHandle GetGWorldPixMap(GWorldPtr gworld) return gworld->m_port.GetPixMap(); } -void LockPixels(PixMapHandle pixmap) -{ - (void)pixmap; -} - PicHandle GetPicture(short resID) { return reinterpret_cast(PortabilityLayer::ResourceManager::GetInstance()->GetResource('PICT', resID)); diff --git a/PortabilityLayer/PLQDOffscreen.h b/PortabilityLayer/PLQDOffscreen.h index c39e827..b1488f1 100644 --- a/PortabilityLayer/PLQDOffscreen.h +++ b/PortabilityLayer/PLQDOffscreen.h @@ -25,11 +25,10 @@ enum QDFlags useTempMem = 1, }; -OSErr NewGWorld(GWorldPtr *gworld, int depth, const Rect *bounds, CTabHandle colorTable, int flags); +PLError_t NewGWorld(GWorldPtr *gworld, GpPixelFormat_t pixelFormat, const Rect *bounds, CTabHandle colorTable); void DisposeGWorld(GWorldPtr gworld); PixMapHandle GetGWorldPixMap(GWorldPtr gworld); -void LockPixels(PixMapHandle pixmap); PicHandle GetPicture(short resID); diff --git a/PortabilityLayer/PLQDraw.cpp b/PortabilityLayer/PLQDraw.cpp index f7fc173..0640330 100644 --- a/PortabilityLayer/PLQDraw.cpp +++ b/PortabilityLayer/PLQDraw.cpp @@ -57,16 +57,16 @@ void EndUpdate(WindowPtr graf) graf->m_graf.m_port.SetDirty(PortabilityLayer::QDPortDirtyFlag_Contents); } -OSErr GetIconSuite(Handle *suite, short resID, IconSuiteFlags flags) +PLError_t GetIconSuite(Handle *suite, short resID, IconSuiteFlags flags) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -OSErr PlotIconSuite(Rect *rect, IconAlignmentType alignType, IconTransformType transformType, Handle iconSuite) +PLError_t PlotIconSuite(Rect *rect, IconAlignmentType alignType, IconTransformType transformType, Handle iconSuite) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } CIconHandle GetCIcon(short resID) @@ -75,10 +75,10 @@ CIconHandle GetCIcon(short resID) return nullptr; } -OSErr PlotCIcon(Rect *rect, CIconHandle icon) +PLError_t PlotCIcon(Rect *rect, CIconHandle icon) { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } void DisposeCIcon(CIconHandle icon) diff --git a/PortabilityLayer/PLQDraw.h b/PortabilityLayer/PLQDraw.h index a33955c..a47bfaf 100644 --- a/PortabilityLayer/PLQDraw.h +++ b/PortabilityLayer/PLQDraw.h @@ -102,11 +102,11 @@ void SetPortDialogPort(Dialog *dialog); void BeginUpdate(WindowPtr graf); void EndUpdate(WindowPtr graf); -OSErr GetIconSuite(Handle *suite, short resID, IconSuiteFlags flags); -OSErr PlotIconSuite(Rect *rect, IconAlignmentType alignType, IconTransformType transformType, Handle iconSuite); +PLError_t GetIconSuite(Handle *suite, short resID, IconSuiteFlags flags); +PLError_t PlotIconSuite(Rect *rect, IconAlignmentType alignType, IconTransformType transformType, Handle iconSuite); CIconHandle GetCIcon(short resID); -OSErr PlotCIcon(Rect *rect, CIconHandle icon); +PLError_t PlotCIcon(Rect *rect, CIconHandle icon); void DisposeCIcon(CIconHandle icon); void SetRect(Rect *rect, short left, short top, short right, short bottom); diff --git a/PortabilityLayer/PLResourceManager.cpp b/PortabilityLayer/PLResourceManager.cpp index 4f72ed4..3d07b24 100644 --- a/PortabilityLayer/PLResourceManager.cpp +++ b/PortabilityLayer/PLResourceManager.cpp @@ -25,7 +25,7 @@ namespace PortabilityLayer void SetResLoad(bool load) override; - short OpenResFork(EVirtualDirectory virtualDir, const PLPasStr &filename) override; + short OpenResFork(VirtualDirectory_t virtualDir, const PLPasStr &filename) override; MMHandleBlock *GetResource(const ResTypeID &resType, int id) override; short GetCurrentResFile() const override; @@ -60,7 +60,7 @@ namespace PortabilityLayer void ResourceManagerImpl::Init() { - m_currentResFile = OpenResFork(EVirtualDirectory_ApplicationData, PSTR("ApplicationResources")); + m_currentResFile = OpenResFork(VirtualDirectories::kApplicationData, PSTR("ApplicationResources")); } void ResourceManagerImpl::Shutdown() @@ -91,7 +91,7 @@ namespace PortabilityLayer m_load = load; } - short ResourceManagerImpl::OpenResFork(EVirtualDirectory virtualDir, const PLPasStr &filename) + short ResourceManagerImpl::OpenResFork(VirtualDirectory_t virtualDir, const PLPasStr &filename) { const size_t numSlots = m_resFiles.size(); size_t resFileIndex = numSlots; @@ -109,7 +109,7 @@ namespace PortabilityLayer return -1; IOStream *fStream = nullptr; - if (FileManager::GetInstance()->RawOpenFileRF(virtualDir, filename, EFilePermission_Read, true, &fStream) != noErr) + if (FileManager::GetInstance()->RawOpenFileRF(virtualDir, filename, EFilePermission_Read, true, fStream) != PLErrors::kNone) return -1; ResourceFile *resFile = new ResourceFile(); diff --git a/PortabilityLayer/PLResources.cpp b/PortabilityLayer/PLResources.cpp index 2335470..b1fe0d8 100644 --- a/PortabilityLayer/PLResources.cpp +++ b/PortabilityLayer/PLResources.cpp @@ -63,22 +63,22 @@ int Count1Resources(UInt32 resType) return 0; } -void HCreateResFile(int refNum, long dirID, const PLPasStr &name) +void HCreateResFile(PortabilityLayer::VirtualDirectory_t dirID, const PLPasStr &name) { PL_NotYetImplemented(); } -OSErr ResError() +PLError_t ResError() { PL_NotYetImplemented(); - return noErr; + return PLErrors::kNone; } -short FSpOpenResFile(const FSSpec *spec, int permission) +short FSpOpenResFile(const VFileSpec &spec, int permission) { PortabilityLayer::ResourceManager *rm = PortabilityLayer::ResourceManager::GetInstance(); - return rm->OpenResFork(static_cast(spec->parID), PLPasStr(spec->name)); + return rm->OpenResFork(spec.m_dir, spec.m_name); } void CloseResFile(short refNum) @@ -103,7 +103,7 @@ void GetResInfo(Handle res, short *resID, ResType *resType, Str255 resName) PL_NotYetImplemented(); } -short HOpenResFile(short refNum, long parID, const PLPasStr &name, int permissions) +short HOpenResFile(PortabilityLayer::VirtualDirectory_t dirID, const PLPasStr &name, int permissions) { PL_NotYetImplemented(); return 0; diff --git a/PortabilityLayer/PLResources.h b/PortabilityLayer/PLResources.h index fa0e591..1e5adb3 100644 --- a/PortabilityLayer/PLResources.h +++ b/PortabilityLayer/PLResources.h @@ -19,10 +19,10 @@ Handle Get1Resource(UInt32 resID, int index); Handle Get1IndResource(UInt32 resID, int index); int Count1Resources(UInt32 resType); -void HCreateResFile(int refNum, long dirID, const PLPasStr &name); -OSErr ResError(); +void HCreateResFile(PortabilityLayer::VirtualDirectory_t dirID, const PLPasStr &name); +PLError_t ResError(); -short FSpOpenResFile(const FSSpec *spec, int permission); +short FSpOpenResFile(const VFileSpec &spec, int permission); void CloseResFile(short refNum); void SetResLoad(Boolean load); // Sets whether resources should be loaded when requested @@ -31,7 +31,7 @@ long GetMaxResourceSize(Handle res); void GetResInfo(Handle res, short *resID, ResType *resType, Str255 resName); // This should return -1 on error? -short HOpenResFile(short refNum, long parID, const PLPasStr &name, int permissions); +short HOpenResFile(PortabilityLayer::VirtualDirectory_t dirID, const PLPasStr &name, int permissions); #endif diff --git a/PortabilityLayer/PLSound.cpp b/PortabilityLayer/PLSound.cpp index 3d2ecab..7f62a6a 100644 --- a/PortabilityLayer/PLSound.cpp +++ b/PortabilityLayer/PLSound.cpp @@ -232,7 +232,7 @@ namespace PortabilityLayer } -OSErr GetDefaultOutputVolume(long *vol) +PLError_t GetDefaultOutputVolume(long *vol) { short leftVol = 0x100; short rightVol = 0x100; @@ -241,12 +241,12 @@ OSErr GetDefaultOutputVolume(long *vol) *vol = (leftVol) | (rightVol << 16); - return noErr; + return PLErrors::kNone; } -OSErr SetDefaultOutputVolume(long vol) +PLError_t SetDefaultOutputVolume(long vol) { - return noErr; + return PLErrors::kNone; } @@ -259,19 +259,19 @@ void DisposeSndCallBackUPP(SndCallBackUPP upp) { } -OSErr SndNewChannel(SndChannelPtr *outChannel, SndSynthType synthType, int initFlags, SndCallBackUPP callback) +PLError_t SndNewChannel(SndChannelPtr *outChannel, SndSynthType synthType, int initFlags, SndCallBackUPP callback) { PortabilityLayer::MemoryManager *mm = PortabilityLayer::MemoryManager::GetInstance(); void *storage = mm->Alloc(sizeof(PortabilityLayer::AudioChannelImpl)); if (!storage) - return mFulErr; + return PLErrors::kOutOfMemory; PortabilityLayer::HostAudioDriver *audioDriver = PortabilityLayer::HostAudioDriver::GetInstance(); PortabilityLayer::HostAudioChannel *audioChannel = audioDriver->CreateChannel(); if (!audioChannel) { mm->Release(storage); - return genericErr; + return PLErrors::kAudioError; } PortabilityLayer::HostMutex *mutex = PortabilityLayer::HostSystemServices::GetInstance()->CreateMutex(); @@ -279,7 +279,7 @@ OSErr SndNewChannel(SndChannelPtr *outChannel, SndSynthType synthType, int initF { audioChannel->Destroy(); mm->Release(storage); - return genericErr; + return PLErrors::kAudioError; } PortabilityLayer::HostThreadEvent *threadEvent = PortabilityLayer::HostSystemServices::GetInstance()->CreateThreadEvent(true, false); @@ -288,15 +288,15 @@ OSErr SndNewChannel(SndChannelPtr *outChannel, SndSynthType synthType, int initF mutex->Destroy(); audioChannel->Destroy(); mm->Release(storage); - return genericErr; + return PLErrors::kAudioError; } *outChannel = new (storage) PortabilityLayer::AudioChannelImpl(audioChannel, callback, threadEvent, mutex); - return noErr; + return PLErrors::kNone; } -OSErr SndDisposeChannel(SndChannelPtr channel, Boolean flush) +PLError_t SndDisposeChannel(SndChannelPtr channel, Boolean flush) { if (flush) { @@ -316,20 +316,20 @@ OSErr SndDisposeChannel(SndChannelPtr channel, Boolean flush) PortabilityLayer::MemoryManager::GetInstance()->Release(audioChannelImpl); - return noErr; + return PLErrors::kNone; } -OSErr SndDoCommand(SndChannelPtr channel, const SndCommand *command, Boolean failIfFull) +PLError_t SndDoCommand(SndChannelPtr channel, const SndCommand *command, Boolean failIfFull) { PortabilityLayer::AudioChannelImpl *audioChannelImpl = static_cast(channel); if (!audioChannelImpl->PushCommand(*command, failIfFull == 0)) - return queueFull; + return PLErrors::kAudioError; - return noErr; + return PLErrors::kNone; } -OSErr SndDoImmediate(SndChannelPtr channel, const SndCommand *command) +PLError_t SndDoImmediate(SndChannelPtr channel, const SndCommand *command) { PortabilityLayer::AudioChannelImpl *audioChannelImpl = static_cast(channel); @@ -340,8 +340,8 @@ OSErr SndDoImmediate(SndChannelPtr channel, const SndCommand *command) else { assert(false); - return genericErr; + return PLErrors::kAudioError; } - return noErr; + return PLErrors::kNone; } diff --git a/PortabilityLayer/PLSound.h b/PortabilityLayer/PLSound.h index 8042d7b..7faefd0 100644 --- a/PortabilityLayer/PLSound.h +++ b/PortabilityLayer/PLSound.h @@ -42,15 +42,15 @@ typedef SndCallBackProc SndCallBackUPP; // Vol seems to be a packed stereo DWord -OSErr GetDefaultOutputVolume(long *vol); -OSErr SetDefaultOutputVolume(long vol); +PLError_t GetDefaultOutputVolume(long *vol); +PLError_t SetDefaultOutputVolume(long vol); SndCallBackUPP NewSndCallBackProc(SndCallBackProc callback); void DisposeSndCallBackUPP(SndCallBackUPP upp); -OSErr SndNewChannel(SndChannelPtr *outChannel, SndSynthType synthType, int initFlags, SndCallBackUPP callback); -OSErr SndDisposeChannel(SndChannelPtr channel, Boolean flush); -OSErr SndDoCommand(SndChannelPtr channel, const SndCommand *command, Boolean failIfFull); -OSErr SndDoImmediate(SndChannelPtr channel, const SndCommand *command); +PLError_t SndNewChannel(SndChannelPtr *outChannel, SndSynthType synthType, int initFlags, SndCallBackUPP callback); +PLError_t SndDisposeChannel(SndChannelPtr channel, Boolean flush); +PLError_t SndDoCommand(SndChannelPtr channel, const SndCommand *command, Boolean failIfFull); +PLError_t SndDoImmediate(SndChannelPtr channel, const SndCommand *command); #endif diff --git a/PortabilityLayer/PortabilityLayer.vcxproj b/PortabilityLayer/PortabilityLayer.vcxproj index 71d1022..50c7e9b 100644 --- a/PortabilityLayer/PortabilityLayer.vcxproj +++ b/PortabilityLayer/PortabilityLayer.vcxproj @@ -180,7 +180,6 @@ - @@ -284,7 +283,6 @@ - diff --git a/PortabilityLayer/PortabilityLayer.vcxproj.filters b/PortabilityLayer/PortabilityLayer.vcxproj.filters index d127c1d..98ce994 100644 --- a/PortabilityLayer/PortabilityLayer.vcxproj.filters +++ b/PortabilityLayer/PortabilityLayer.vcxproj.filters @@ -117,9 +117,6 @@ Header Files - - Header Files - Header Files @@ -431,9 +428,6 @@ Source Files - - Source Files - Source Files diff --git a/PortabilityLayer/QDGraf.h b/PortabilityLayer/QDGraf.h index bcfd21b..8ba5914 100644 --- a/PortabilityLayer/QDGraf.h +++ b/PortabilityLayer/QDGraf.h @@ -25,12 +25,12 @@ struct CGraf final { } - int Init(const Rect &rect, GpPixelFormat_t pixelFormat) + PLError_t Init(const Rect &rect, GpPixelFormat_t pixelFormat) { - if (int errorCode = m_port.Init(rect, pixelFormat)) + if (PLError_t errorCode = m_port.Init(rect, pixelFormat)) return errorCode; - return 0; + return PLErrors::kNone; } bool Resize(const Rect &rect) diff --git a/PortabilityLayer/QDManager.cpp b/PortabilityLayer/QDManager.cpp index 0ccf1dc..5de6db9 100644 --- a/PortabilityLayer/QDManager.cpp +++ b/PortabilityLayer/QDManager.cpp @@ -18,12 +18,10 @@ namespace PortabilityLayer void Init() override; QDPort *GetPort() const override; void SetPort(QDPort *gw) override; - int NewGWorld(CGraf **gw, int depth, const Rect &bounds, ColorTable **colorTable, int flags) override; + PLError_t NewGWorld(CGraf **gw, GpPixelFormat_t pixelFormat, const Rect &bounds, ColorTable **colorTable) override; void DisposeGWorld(CGraf *gw) override; QDState *GetState() override; - int DepthForPixelFormat(GpPixelFormat_t pixelFormat) const override; - static QDManagerImpl *GetInstance(); private: @@ -51,37 +49,17 @@ namespace PortabilityLayer m_port = gw; } - int QDManagerImpl::NewGWorld(CGraf **gw, int depth, const Rect &bounds, ColorTable **colorTable, int flags) + PLError_t QDManagerImpl::NewGWorld(CGraf **gw, GpPixelFormat_t pixelFormat, const Rect &bounds, ColorTable **colorTable) { - GpPixelFormat_t pixelFormat; - - switch (depth) - { - case 1: - pixelFormat = GpPixelFormats::kBW1; - break; - case 8: - pixelFormat = (colorTable == nullptr) ? GpPixelFormats::k8BitStandard : GpPixelFormats::k8BitCustom; - break; - case 16: - pixelFormat = GpPixelFormats::kRGB555; - break; - case 32: - pixelFormat = GpPixelFormats::kRGB32; - break; - default: - return genericErr; - } - void *grafStorage = MemoryManager::GetInstance()->Alloc(sizeof(CGraf)); if (!grafStorage) - return mFulErr; + return PLErrors::kOutOfMemory; if (!bounds.IsValid()) - return genericErr; + return PLErrors::kInvalidParameter; CGraf *graf = new (grafStorage) CGraf(); - int initError = graf->Init(bounds, pixelFormat); + PLError_t initError = graf->Init(bounds, pixelFormat); if (initError) { DisposeGWorld(graf); @@ -89,7 +67,7 @@ namespace PortabilityLayer } *gw = graf; - return noErr; + return PLErrors::kNone; } void QDManagerImpl::DisposeGWorld(CGraf *gw) @@ -103,25 +81,6 @@ namespace PortabilityLayer return m_port->GetState(); } - int QDManagerImpl::DepthForPixelFormat(GpPixelFormat_t pixelFormat) const - { - switch (pixelFormat) - { - case GpPixelFormats::k8BitStandard: - case GpPixelFormats::k8BitCustom: - return 8; - case GpPixelFormats::kRGB555: - return 16; - case GpPixelFormats::kRGB24: - return 24; - case GpPixelFormats::kRGB32: - return 32; - default: - assert(false); - return 0; - } - } - QDManagerImpl *QDManagerImpl::GetInstance() { return &ms_instance; diff --git a/PortabilityLayer/QDManager.h b/PortabilityLayer/QDManager.h index d881045..c927aa3 100644 --- a/PortabilityLayer/QDManager.h +++ b/PortabilityLayer/QDManager.h @@ -1,6 +1,7 @@ #pragma once #include "GpPixelFormat.h" +#include "PLErrorCodes.h" struct ColorTable; struct CGraf; @@ -17,13 +18,11 @@ namespace PortabilityLayer virtual void Init() = 0; virtual QDPort *GetPort() const = 0; virtual void SetPort(QDPort *gw) = 0; - virtual int NewGWorld(CGraf **gw, int depth, const Rect &bounds, ColorTable **colorTable, int flags) = 0; + virtual PLError_t NewGWorld(CGraf **gw, GpPixelFormat_t pixelFormat, const Rect &bounds, ColorTable **colorTable) = 0; virtual void DisposeGWorld(CGraf *gw) = 0; virtual QDState *GetState() = 0; - virtual int DepthForPixelFormat(GpPixelFormat_t pixelFormat) const = 0; - static QDManager *GetInstance(); }; } diff --git a/PortabilityLayer/QDPort.cpp b/PortabilityLayer/QDPort.cpp index 1172fcb..ea6e702 100644 --- a/PortabilityLayer/QDPort.cpp +++ b/PortabilityLayer/QDPort.cpp @@ -36,15 +36,15 @@ namespace PortabilityLayer } } - int QDPort::Init(const Rect &rect, GpPixelFormat_t pixelFormat) + PLError_t QDPort::Init(const Rect &rect, GpPixelFormat_t pixelFormat) { m_pixMap = nullptr; m_pixelFormat = pixelFormat; if (!Resize(rect)) - return mFulErr; + return PLErrors::kOutOfMemory; - return noErr; + return PLErrors::kNone; } bool QDPort::Resize(const Rect &rect) diff --git a/PortabilityLayer/QDPort.h b/PortabilityLayer/QDPort.h index 222e322..725c6f6 100644 --- a/PortabilityLayer/QDPort.h +++ b/PortabilityLayer/QDPort.h @@ -2,6 +2,7 @@ #include #include "GpPixelFormat.h" +#include "PLErrorCodes.h" #include "QDState.h" struct PixMap; @@ -29,7 +30,7 @@ namespace PortabilityLayer explicit QDPort(QDPortType portType); ~QDPort(); - int Init(const Rect &rect, GpPixelFormat_t pixelFormat); + PLError_t Init(const Rect &rect, GpPixelFormat_t pixelFormat); QDPortType GetPortType() const; PixMap **GetPixMap() const; diff --git a/PortabilityLayer/ResourceManager.h b/PortabilityLayer/ResourceManager.h index 76899cd..7878dd4 100644 --- a/PortabilityLayer/ResourceManager.h +++ b/PortabilityLayer/ResourceManager.h @@ -17,7 +17,7 @@ namespace PortabilityLayer virtual void SetResLoad(bool load) = 0; - virtual short OpenResFork(EVirtualDirectory virtualDir, const PLPasStr &filename) = 0; + virtual short OpenResFork(VirtualDirectory_t virtualDir, const PLPasStr &filename) = 0; virtual MMHandleBlock *GetResource(const ResTypeID &resType, int id) = 0; virtual short GetCurrentResFile() const = 0; diff --git a/PortabilityLayer/VirtualDirectory.h b/PortabilityLayer/VirtualDirectory.h index 6d2b59f..c084aff 100644 --- a/PortabilityLayer/VirtualDirectory.h +++ b/PortabilityLayer/VirtualDirectory.h @@ -2,15 +2,21 @@ namespace PortabilityLayer { - enum EVirtualDirectory + namespace VirtualDirectories { - EVirtualDirectory_Unspecified = 0, + enum VirtualDirectory + { + kUnspecified = 0, - EVirtualDirectory_ApplicationData = 1, - EVirtualDirectory_GameData, - EVirtualDirectory_UserData, - EVirtualDirectory_Prefs, - EVirtualDirectory_Fonts, - EVirtualDirectory_Cursors, - }; + kApplicationData = 1, + kGameData, + kUserData, + kPrefs, + kFonts, + kCursors, + kHighScores, + }; + } + + typedef VirtualDirectories::VirtualDirectory VirtualDirectory_t; }