From 50a753b35e8edd8fd5b185cc6ee2e665374a609d Mon Sep 17 00:00:00 2001 From: Jon Thysell Date: Wed, 1 Dec 2021 10:08:07 -0800 Subject: [PATCH] Minor cleanup of resources Made sure all resources are no longer marked as purgeable so they stay in memory (not that we were running out), also cleaned up some other code issues. --- src/Bitmaps.c | 4 ++-- src/GameEngine.c | 18 ++++++++++++++++-- src/GameEngine.h | 2 +- src/GameWindow.c | 2 +- src/LevelSelectScene.c | 4 ---- src/MacCommon.c | 4 ++-- src/MacLO.c | 2 +- src/MacLO.pi.bin | Bin 16128 -> 16128 bytes src/MacLO.pi.rsrc.bin | Bin 35968 -> 35968 bytes src/Sounds.c | 6 +++--- 10 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/Bitmaps.c b/src/Bitmaps.c index 4930d47..ed906a0 100644 --- a/src/Bitmaps.c +++ b/src/Bitmaps.c @@ -159,12 +159,12 @@ int16_t Bitmaps_GetOverrideBaseResID() PicHandle Bitmaps_GetPict(const int16_t baseResID, const int16_t offset) { PicHandle pic; - pic = GetPicture(baseResID + offset); + pic = (PicHandle)Get1Resource('PICT', baseResID + offset); if (pic == nil) { // No override pic, get default - pic = GetPicture(BasePictResID + offset); + pic = (PicHandle)Get1Resource('PICT', BasePictResID + offset); } return pic; diff --git a/src/GameEngine.c b/src/GameEngine.c index 100540d..c21f38f 100644 --- a/src/GameEngine.c +++ b/src/GameEngine.c @@ -37,8 +37,22 @@ void GameEngine_Init(GameEngine *pGameEngine) void GameEngine_NewGame(GameEngine *pGameEngine, const bool setB) { + int8_t level, startLevel; + pGameEngine->SetB = setB; - GameEngine_StartLevel(pGameEngine, 0); + + startLevel = 0; + for (level = 0; level < LevelCount; level++) + { + // Find the first uncompleted level + if (GameEngine_GetScore(pGameEngine, level) == 0) + { + startLevel = level; + break; + } + } + + GameEngine_StartLevel(pGameEngine, startLevel); } void GameEngine_ResetGame(GameEngine *pGameEngine) @@ -52,7 +66,7 @@ void GameEngine_ResetGame(GameEngine *pGameEngine) } } -void GameEngine_StartLevel(GameEngine *pGameEngine, const uint8_t level) +void GameEngine_StartLevel(GameEngine *pGameEngine, const int8_t level) { GameEngine_LoadLevel(pGameEngine, level, pGameEngine->SetB); } diff --git a/src/GameEngine.h b/src/GameEngine.h index de76126..167e612 100644 --- a/src/GameEngine.h +++ b/src/GameEngine.h @@ -32,7 +32,7 @@ void GameEngine_NewGame(GameEngine *pGameEngine, const bool setB); void GameEngine_ResetGame(GameEngine *pGameEngine); -void GameEngine_StartLevel(GameEngine *pGameEngine, const uint8_t level); +void GameEngine_StartLevel(GameEngine *pGameEngine, const int8_t level); void GameEngine_CompleteLevel(GameEngine *pGameEngine); diff --git a/src/GameWindow.c b/src/GameWindow.c index ff56839..f98f38f 100644 --- a/src/GameWindow.c +++ b/src/GameWindow.c @@ -135,7 +135,7 @@ void GameWindow_Show(const GameWindow *pGameWindow) void GameWindow_ClearScores(GameWindow *pGameWindow) { - if (ShowConfirm("\pClear all scores?")) + if (ShowConfirm("\pAre you sure you want to clear all scores?")) { GameEngine_ResetGame(&(pGameWindow->Engine)); GameWindow_SetScene(pGameWindow, Title); diff --git a/src/LevelSelectScene.c b/src/LevelSelectScene.c index aae1e9c..42da3db 100644 --- a/src/LevelSelectScene.c +++ b/src/LevelSelectScene.c @@ -26,7 +26,6 @@ void LevelSelectScene_Init(GameWindow *pGameWindow) GetScaledPicFrame(pGameWindow->Engine.SetB ? pGameWindow->Bitmaps.BCharPict : pGameWindow->Bitmaps.ACharPict, SetTextScale, &(pGameWindow->LevelSelectScene.SetRect)); GetBoxRect(pContentRect, Top, &r); - //GetBoxRect(&r, Top, &r); CenterRect(&r, &(pGameWindow->LevelSelectScene.SetRect)); // Setup score @@ -37,21 +36,18 @@ void LevelSelectScene_Init(GameWindow *pGameWindow) ConcatenateRect(&(pGameWindow->LevelSelectScene.ScoreRect), &r, &(pGameWindow->LevelSelectScene.ScoreRect)); GetBoxRect(pContentRect, Bottom, &r); - //GetBoxRect(&r, Bottom, &r); CenterRect(&r, &(pGameWindow->LevelSelectScene.ScoreRect)); // Setup previous button GetPictureRect(pGameWindow->Bitmaps.NextButtonPict, &(pGameWindow->LevelSelectScene.PrevButtonRect)); GetBoxRect(pContentRect, BottomLeft, &r); - //GetBoxRect(&r, Bottom, &r); CenterRect(&r, &(pGameWindow->LevelSelectScene.PrevButtonRect)); // Setup next button GetPictureRect(pGameWindow->Bitmaps.NextButtonPict, &(pGameWindow->LevelSelectScene.NextButtonRect)); GetBoxRect(pContentRect, BottomRight, &r); - //GetBoxRect(&r, Bottom, &r); CenterRect(&r, &(pGameWindow->LevelSelectScene.NextButtonRect)); // Setup LevelGrid diff --git a/src/MacCommon.c b/src/MacCommon.c index ce23085..89e2b63 100644 --- a/src/MacCommon.c +++ b/src/MacCommon.c @@ -6,7 +6,7 @@ #define ErrorAlertResID BaseResID #define ConfirmAlertResID (ErrorAlertResID + 1) -#define YesResult 2 +#define ConfirmYesResult 2 const int16_t MonthOffset[] = { 0, // Jan @@ -41,7 +41,7 @@ bool ShowConfirm(Str255 message) ParamText(message, EmptyString, EmptyString, EmptyString); result = CautionAlert(ConfirmAlertResID, NilFilterProc); - return result == YesResult; + return result == ConfirmYesResult; } void CenterRect(const Rect *pOuterRect, Rect *pInnerRect) diff --git a/src/MacLO.c b/src/MacLO.c index 2a09934..94e1837 100644 --- a/src/MacLO.c +++ b/src/MacLO.c @@ -250,7 +250,7 @@ void MacLO_HandleGameMenuChoice(const int16_t item) void MacLO_Quit() { - if (ShowConfirm("\pQuit MacLO?")) + if (ShowConfirm("\pAre you sure you want to quit MacLO?")) { gExitApp = true; } diff --git a/src/MacLO.pi.bin b/src/MacLO.pi.bin index cde80a918c78d152e94db4527d7b5dcffe467449..c5f410fd42af22302a175042d4aca74e31ed089a 100644 GIT binary patch delta 1745 zcmZvbZ)h8J7{{Nx-=%SOtNpjEYchneKh7<*N!>b@T4uX-%V^VVDf16vytTij(MvAN zUDDVWO(t&ag<#7~nC}z{LfAn0fhhP=)E7a+81v0417G+;=~^6J6)`?{mp_-Z2S4uf ze4oF$-;?}8eqk}t3r){(&&u^*CRU11|5@tTBV4;y3@$B%_#O78(tiGL-1or`uUo$<0ZldTkzZKk4QxwjMae5{ZjU}uY2_#~w#T5zC zIX%!SU8D+CO)*!i5z*VJ=2Z2{kx@CGl&DI#ID$00HQK1WCA9W2EOi5lQ8|aDXRNaY zlrstOveYcGv@utD@BG$VH~)XjG!cWhvI`hB7)UCZdhA z)LL%i8<)kIEx&$Ll%~^?sM1=drA@VeIF_hR0mh8VE0y<%xj7J~Dx$tq3WQQL6O+?Q z)f7`OA!n!p$@*siNnbd?n;rqBezjS64-{j4l9(0G8ELcCZ5x*r6)-qT)z>QT*MWfW zJeO~afq>h*69D-g3%_e&$-;4i+ui&LOv9W+)%KdUtlK&0we$El?sbFLHwe#|uA~v# z>E?CKNWNNCe8-NNO3F~S%T}tfwQSW;T-8nkzQN;_UWf8+X~WqKV9G|jjG;N)e1CQf z9{{b?>f$$ew%Quzo}<986xV;N9v0elkMQgNX`x+vwU;}7c((3B$*CRg{D|N9Oly0w zhu!OJ;rOSAw6#5Z*GRLEPtP4BEHI@!s#X-X16O zxUV+Fs+{IJ;3UPzpKHJFcCgTa3mh6hv*m+d@%;Kr?9Ics8Z$g;PLq%R-q6uA%y+ik z5q3L${QEmE3m|j>aV%(G^c~?=mpZz&wZ1>N(o#p4_PGBj_dr+ry+^py2rTKf^P0y# z!{!F!JG4hbUAASV)P7Uj9Qq_z7{aA0mjP_wk%E8CWWhxWLwG5=PM#pQo9y`!W1g7o z{Sf(2;Pn{q8Y!Hd1!C|f@@e48LXF3wVAqKhh@PEh5u z1*%MKP-VtOm8)-3<*T2ma;AH-r;t9J;Zg37`q&83~P5H^rKPhiKZ-wC9<# zQrh-FH%{Fwpy>!s$Dkt*jUu|EqkTG>MAV6kI`hm;G?#T#qMJCH5Smb)Sw<7p&3@g4 z(S*^2^UOAy?r<#8{*!G^>X8PeE;Z{ZcpWb!Y01>xfrWH#2jYxn}oY z+*(9^G*Ei`uHc8bSY_M?;IXuR?iInDi9lfsOx<$#x-5M*y(`q@zn!}`_oS`BZ$)Nz z1RSx}&ene5aCjUccoi&t2Lcgwt4ai$D*|SZ8+a-0NQ>`lt;d3={^aSmyWt2SkPA(9DdC^P&j)Y;J=NgU*6HTdd=F_lOm66%h`~%j9*={ z4>DJgQy$;jLW%&m)g=Lcu*NX|!Dr<^oZUq3wI1U*`wA9i?0ehY!Y51xyKPT!HaE)_ zm&&Ic0^w|nY`vsRey`a7e>|^hG9*|VhUd-P1){~50ee10wJ}t?64hx+8dgJLm zPVHa8cLJaZhuomk->noy*p~0(Sn84uKve;RdYZaqHZuPV=29cm$C#Z)7QHle@u87T zUtn(mPP_LonhR|}^}ItRVOs?=;sYDSg{{7a?^|0FKao5M+(x^SX=Ibgct6E zpe^D7^J7c`fawj)n-JG}(*))vBMT193&tUuj?&cVq;ZI*F3h1^-%V5F_j7#@9%99K Omgz0bM3)R{H diff --git a/src/MacLO.pi.rsrc.bin b/src/MacLO.pi.rsrc.bin index 22551715386f14c975f13e2cc7dc34a33054dc68..da1b709f13228876d1aea683d00a77e72637a101 100644 GIT binary patch delta 739 zcmZ9}KS&#K6bJD4I}`G!i`F3!8~cm3YHcv3h^U0NRFGCARmftIZV7a-fo2m)a%oJW zr#9)?N)}x^oFLj@q0pf?I5>3ZPz8rBp>rKdp^)DDo_e9T+~@tdcfWU+tt#27Qhw~G z|1QlqU93->9{t|0wD}yW`gf#~zAw%ypNG7E?pnQ?p$n1Q%L-ZSh|^QrawyRxO5d9Mk_&|l) z`J5he&TdoBciUGSM7+Ps4_x!2kb|uaUa#$}zLpP!bR=CjZhF9S)@EZH(0{oiYWBu+j{1f>%?A}dSXZKCP>+D+!{1)DU z-?1Z@8KVsj?yYel5N79F;Q_X4eYy&}5aYZgdPvm&3>Nf==*}ptkh#c%KDK_Wg<4%> T$rp*|FXt}qdPDQ+p~=`kl$^RQ delta 758 zcmY+>K}b_^90&04+uLxiph<^dx%^wERwKnjjIc7+B5kdbU5tnb6*|mm8c2wHTXS2j zZ0oI3kdo+uhXo@If*>Mx=&(Zv4;BaoAssqJhi>cpe{UUnm-l(U-|zqX{oZ@pqD@=0 z<@-Gf{=agi&AF|C&FYTcLenmLBGEEXm_4Bs3-6A&JRz$zSJD+FxvD85v%7>#*s|Ng zF*9`p})`GiU#lUgJ`(5`T zx?)-BqRUWZy)w!AwR*h5_zTO9k95{@LzOkK?EJ*I6B^<|z_qR#<9Q@-OdzAs!%TPt z8Y5h&f+Wtd<}&SPO^`J^>8nDTPTVQ6QcSB(Fx*KDZ9gxm5q zyK2OvCF?-5iyP&Ul!u$;8*JdVw0D+%kCgNtKZjK@XZjbtgtT-^iPn&j7NZ>OMpn9& zUvB&i?wI~Ur*Kz#Z;=b-k)z|-7v_L<+>?nmC;c7wO@E-*G((OH}aj_eD z(?1v=#zX0jr(7ZhUAprEy?~-+Fnx|cnpEnabled = DefaultEnabled; - pSounds->ClickSnd = GetResource('snd ', ClickSndResID); + pSounds->ClickSnd = Get1Resource('snd ', ClickSndResID); if (pSounds->ClickSnd == nil) { ShowError("\pClick snd resource missing!", true); } - pSounds->RetrySnd = GetResource('snd ', RetrySndResID); + pSounds->RetrySnd = Get1Resource('snd ', RetrySndResID); if (pSounds->RetrySnd == nil) { ShowError("\pRetry snd resource missing!", true); } - pSounds->DoneSnd = GetResource('snd ', DoneSndResID); + pSounds->DoneSnd = Get1Resource('snd ', DoneSndResID); if (pSounds->DoneSnd == nil) { ShowError("\pDone snd resource missing!", true);