From ce0027e87fe9be70000e53f52f185321bae3e35e Mon Sep 17 00:00:00 2001 From: Xavier ASUS Date: Sat, 24 Nov 2018 11:56:04 +0100 Subject: [PATCH] Aircraft are now auto-locked when entering "ShowAircraftData" menu. Minor fixes and improvements. Path is shown when selecting a moving aircraft. --- Source/Aircraft.c | 6 +- Source/Aircraft.h | 2 +- Source/Airport.geany | 20 +-- Source/Exe/AIRPORT.elf | Bin 357624 -> 357460 bytes Source/Exe/AIRPORT.iso | Bin 1501184 -> 1482752 bytes Source/Game.c | 304 ++++++++++++++++++++++------------------- Source/GameGui.c | 276 ++++++++++++++++++------------------- Source/System.c | 8 +- Source/System.h | 8 +- 9 files changed, 325 insertions(+), 299 deletions(-) diff --git a/Source/Aircraft.c b/Source/Aircraft.c index ee84fb2..f2727a4 100644 --- a/Source/Aircraft.c +++ b/Source/Aircraft.c @@ -466,8 +466,6 @@ void AircraftRender(TYPE_PLAYER* const ptrPlayer, uint8_t aircraftIdx) AircraftSpr.g = 0; AircraftSpr.b = 0; - AircraftSpr.attribute |= ENABLE_TRANS | TRANS_MODE(0); - GfxSortSprite(&AircraftSpr); } @@ -477,8 +475,6 @@ void AircraftRender(TYPE_PLAYER* const ptrPlayer, uint8_t aircraftIdx) AircraftSpr.x = cartPos.x - (AircraftSpr.w >> 1); AircraftSpr.y = cartPos.y - (AircraftSpr.h >> 1); - AircraftSpr.attribute &= ~(ENABLE_TRANS | TRANS_MODE(0)); - CameraApplyCoordinatesToSprite(ptrPlayer, &AircraftSpr); if ((ptrPlayer->FlightDataSelectedAircraft == aircraftIdx) @@ -864,7 +860,7 @@ DIRECTION AircraftGetDirection(TYPE_AIRCRAFT_DATA* const ptrAircraft) return ptrAircraft->Direction; } -uint16_t* AircraftGetTargets(uint8_t index) +const uint16_t* AircraftGetTargets(uint8_t index) { TYPE_AIRCRAFT_DATA* const ptrAircraft = AircraftFromFlightDataIndex(index); diff --git a/Source/Aircraft.h b/Source/Aircraft.h index 1da7346..239ec4c 100644 --- a/Source/Aircraft.h +++ b/Source/Aircraft.h @@ -21,7 +21,7 @@ void AircraftAddTargets(TYPE_AIRCRAFT_DATA* const ptrAircraft, uint16_t* targets TYPE_ISOMETRIC_POS AircraftGetIsoPos(const uint8_t FlightDataIdx); uint16_t AircraftGetTileFromFlightDataIndex(const uint8_t index); bool AircraftRemove(uint8_t aircraftIdx); -uint16_t* AircraftGetTargets(uint8_t index); +const uint16_t* AircraftGetTargets(uint8_t index); bool AircraftMoving(uint8_t index); uint8_t AircraftGetTargetIdx(uint8_t index); DIRECTION AircraftGetDirection(TYPE_AIRCRAFT_DATA* const ptrAircraft); diff --git a/Source/Airport.geany b/Source/Airport.geany index b54567e..7bf7129 100644 --- a/Source/Airport.geany +++ b/Source/Airport.geany @@ -29,14 +29,14 @@ long_line_column=120 [files] current_page=41 -FILE_NAME_0=4282;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FAircraft.c;0;4 +FILE_NAME_0=9500;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FAircraft.c;0;4 FILE_NAME_1=5298;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FCamera.c;0;4 FILE_NAME_2=4018;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FEndAnimation.c;0;4 FILE_NAME_3=6782;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FFont.c;0;4 -FILE_NAME_4=9763;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGame.c;0;4 -FILE_NAME_5=32887;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGameGui.c;0;4 +FILE_NAME_4=34311;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGame.c;0;4 +FILE_NAME_5=9784;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGameGui.c;0;4 FILE_NAME_6=17638;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGfx.c;0;4 -FILE_NAME_7=9154;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FLoadMenu.c;0;4 +FILE_NAME_7=11629;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FLoadMenu.c;0;4 FILE_NAME_8=746;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2Fmain.c;0;4 FILE_NAME_9=745;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FMainMenuBtnAni.c;0;4 FILE_NAME_10=26018;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FMemCard.c;0;4 @@ -47,18 +47,18 @@ FILE_NAME_14=10669;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FPltPar FILE_NAME_15=8394;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FPSXSDKIntro.c;0;4 FILE_NAME_16=1758;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FSerial.c;0;4 FILE_NAME_17=1221;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FSfx.c;0;4 -FILE_NAME_18=16275;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FSystem.c;0;4 +FILE_NAME_18=22173;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FSystem.c;0;4 FILE_NAME_19=2698;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FTimer.c;0;4 -FILE_NAME_20=1055;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FAircraft.h;0;4 +FILE_NAME_20=714;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FAircraft.h;0;4 FILE_NAME_21=848;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FCamera.h;0;4 FILE_NAME_22=529;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FEndAnimation.h;0;4 FILE_NAME_23=1133;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FFont.h;0;4 FILE_NAME_24=1633;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGameGui.h;0;4 -FILE_NAME_25=936;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGame.h;0;4 -FILE_NAME_26=2185;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGameStructures.h;0;4 +FILE_NAME_25=658;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGame.h;0;4 +FILE_NAME_26=172;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGameStructures.h;0;4 FILE_NAME_27=3564;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGfx.h;0;4 FILE_NAME_28=406;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FGlobal_Inc.h;0;4 -FILE_NAME_29=514;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FLoadMenu.h;0;4 +FILE_NAME_29=273;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FLoadMenu.h;0;4 FILE_NAME_30=559;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FMainMenuBtnAni.h;0;4 FILE_NAME_31=4622;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FMemCard.h;0;4 FILE_NAME_32=387;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FMenu.h;0;4 @@ -70,7 +70,7 @@ FILE_NAME_37=752;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FSerial FILE_NAME_38=831;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FSfx.h;0;4 FILE_NAME_39=421;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FSystem.h;0;4 FILE_NAME_40=1066;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FTimer.h;0;4 -FILE_NAME_41=283;Make;0;EUTF-8;1;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FMakefile;0;4 +FILE_NAME_41=3393;Make;0;EUTF-8;1;1;0;%2Fhome%2Fxavier%2FAirport%2FSource%2FMakefile;0;4 [VTE] last_dir=/home/xavier/Airport/Bin diff --git a/Source/Exe/AIRPORT.elf b/Source/Exe/AIRPORT.elf index 64d1de6b5067c4aa10023e3d388f018ecb9db452..bbb1129a6fcbf2eebbdb135d08af478533ae55bb 100755 GIT binary patch delta 53622 zcmbq+4SZC^)%V=Fo9rfTl1&I91PGhu?k0v1Lx?1$D=wRWfQUdXqK~yP1O#m<3M!`7 ztTB9VJ_yKIt9IFZ5H%!-D3k{=g@}lVK`A1o7!frpB3ePD$iDwG_ihN(KF|C9UVgvj z-uXIn=FIt;Gcz~mKJR<5yKk-Cv3-67Q*4aoF+1ZdgY{!cOl55ToWH3IKi{0ct@1h| z8zNP9de@8h1Vh8-f5NQYp;yyS?qpU*|9r+1uO^?#{lj;a+6>fjW_VcE6F*b_%m5jwp^uvoG46SSD`g%6YDx5z|#AH>w+roEePI*s@Ah{&XRw!(6h)hd zIq>LCec&VB)t?HB)K0Sq?KjBxDJJdp-Fp799U@8Lj*)vikk2Z$@0RKL1uyAO0=~!W zkx2Q_;Ty*LEi0JyO|zJXw#pE(O5y3e(=4_jS$^1TswVsipQGl8>VqekwG(4GZ06O- zt2t^`t7*(Owy}oh!S^>gCzfRPYC3h-2^xjRP3dceAwQZxF}dlh;zwBCZq#_t>y|pan$yB^KySK8?PNU&-M?sapkC4+@tc8ag;u4z8e^G z4FJ$!Ny~QgQm{{i`>iVgz6F3A0dO;5@ylWDy%HAMqVAHG%?7N!SHRi}Sj~Xd0$9

>#pr! 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 xnb<2MHUdCs3;DF4F& zfB6y&ou8MK{ExW)c84OPzuxq`J)+3Cw&MmzO7a$q{>O5AZIN+V=xO`CBIB;E5)#Mb zI!!BC#Sf{aJOMX7ZO^*N=+mz0Y5BHFi`S7JzRBplaj4>3x@GAl8yq5=Hza zX=+A97am}Lc$0CL{^22e%FV_{W92|HbKDEtwH$YcB@LI=ygYi63O7;V`{9I~%^V`T zzq`&Ku=7sW{xp?6HmBSD zr*k4E8lj!$>y*YlvpOMXOFwynD08*cL&_)~$J51eTl)3Qn63@B@0o5qI==5mZcxg& zEvvnIFM2w~q>ba7eMl-{6HZ^A;x$E@AsPhG{d-lc-iSKa-7by&)4}GlNvV9)Vj*jQk70W#-XQX zn(WtdH2E+^td@J>E%ve!WAKILWGVY539_Y+nDE3#cIAndsJ(1qYYy2*ON_2PKPDRq z|Ad-J*e}xBoo5<-`*>00piv$tO5@^@y?h;I1+`>bfBj5$r_R|PS-np@`E3U|-&^E{ zubN3w?%AFcm&3c5ya|GpJ3(CeEr??KjhV&|osuw?VnoHzCTH3EW*NQuC#%(he7B0! zu<$)Cz9Tct!Zr^r=GmQZF-G$$*VVTeJ-SM)5Z@|rTD41ZO=7mY#pu=bT86gDsnsm2 zuy(&zVdeIFx3D5BY_!Lh8oee;2UgO7KWoE=#*tMh>AI(m?Yd^0$$fUCJfG}?`d?dR zV#HE2uo#F~4$^B#Bgfg2-sD^KnmN91K5hT06#e{cm;F(xajVpLwlS=IcH<{0&AZ}K z@m@aLSl%c8E9c3Eb0RJZ;2lee_^V>Jq`dyIJ>piQ*R-?tFAw+ROf!z%^NC&hA5ZKu zSIN1iwD!a<|50^{n>P>D<+#yZX34RV9C(Pr{mzk|$pOaZewuy9ZALeH|E)$sXoCIz ztwuMFRldH}xTu}PO3jGjsILEQ#^{cM=hHE*i7wI`8*4Y+#yL#rK6_`G(VM2eQ)bla z2aemT<`@%0W9;|m7`sBN>?h|MgF8idiK&3)wRF`5S+z&!8V`g*585-!ji>c($L;oa z7z?@9K5&OI0RP$-<{7Wc^^OWQkdo!TJB`zFeeE~K6=dD{Zey}tbeFL}{0`mK8rI!D zw!laajj1KV^Sb2x+HZMA!}T|djHjHbrn<%Mb&qky`P+`uK(@AWf~Pa?hS0hU+v z_ZXLSuW8vLFLpRTXcfuIb?(JVM6&Ed_ZVY4)e)Ys#zTi&?5u%*~7C0PVQ_ zz+%qRiTmYZrk>2Dgf2h6@%r}B_IH-i`}|_OQnRZW(|oH(hQ;gT?$@%9wudYsIOqQr z+|9O@7;*a15A5YjjP9{v$EH1Fzm><X7-0#yj>p87d|#UXsqcdDAOwz zh6j{OmKxEhc!@&FCTyYFgh|G!)j95_ZELZ6+~AxkSo%+&OP5#c^7;s8B@|lhZsf?) zv8f!;IGepT#~RL22YHmS3@g=kt}fAbtS;7GvZKq4%X>cYp=)rwjSlP#NvUUN`@>~M zUq@&hJ7Ma#tiIpwyu6K9g?;IABWrl^yKX{xwjg7gXNW=V9DrI@R$4TkU-yWJWN!7+D3 z*BFnqua3#xCi78sjD27Y3ums!*I+xZw>z(8qP*U|y7kh{u3l?oQg=S;z$aj9KVE12%II~BDNNJa zIbjJ}#0isdgC8@lm{mJ*0}l^F=hd!!+?Xm)jBCH#$N{4~GVZjA(;+<8Z8Bm^x!Lp- zm6ecvPqSskWBO)eyvbAN+COeJ_8D@saGP-;tT!`BzsRu(52ye5qVc^1Jol0@MPk@7 zwd{BB7*K2Irk?hWJ?IszE&=OaF%C$;ta_u9(RI&X#7sQH@Ox&pd=4bS%WwoPf8F?V zNMc>_hH=^{anxUpiD5~zjqf3;|D;z9oUE(^ObNFM!YQZHOH>`AAF0L5209S?E ziram>cEsDp05h8R6;i+z;YxAkxJ9_7xHY(H+*aHUTs>|#?jY_6t{K;Y(^?EG9+!km z!DZma;PP+t{k@rw-mPqmv^fXwbtB9hRU7f8vhazUNEd&m#Mz3RHN^@ioK+>3u157VtgZakO$YVF)Z#;Y;sPMbY<_S{<{ z(`L_`F>l(eicyi&5_{D9Mt38%WWK%Ued7(g?0sWQ?b4&hnQp!6&?Nd;JIM6}&QzL& z3DY)TWpDb%n8)v-##p;?q zBlstZmD?`X;=3TNYMg{saLvPwX^yc=^vv$)DMwj@6v$h)|sebzT=N}$kl4v)^n*3gDhuVZVvpgg>_qH=%2t~3F z5_Og?_UJyMo1yzj;~3LHV9kcw>pGatA-!gUeQ`%~yuN#by{w}-RBzc(`)WrCXxU&t zdkz6{kK13JLqPW9wfz#zqu8Iv?bt5nK=ByS#k?x4pRBH3(oI56R@>9gH%H5L)A{C0 zdg+t)b=}Q+ea%yL=N?@5Zn59$VVBGlvTOau(~ZYc@1OGkw0)7b#6C{?`Te)LW6cZYgk?Q1wn4pX`D5L&-ms1 z-hTN4v&WeAM3dJ36$vCxow|THH-M{#@?X-y?F>b3KKfMJAG6=ovr=%ZQ*hFA+}`8dMyNwK+qun_+cKv*ZEAL!jFS=wmKr@pThp#&8%R{{Bs!)7hy5~elM|S|)t*KUy1C6>+}GTx z?|;@Fo?_0_&up*Vm}0gI$<4E==5KWU$WFU=8ZlGq>@jjp+hO03Wm&X0v|s zPxgua=KA(cbr`Q0O?xL^dTWIJuN3o*_#g2I^?immG}YBUe34ld(igpA_Z?_nsaL&X zmklI8c-cVnYrVAIwg#DR==HDKmkl;I>+!GKpAI%pajiX)VO|}|I@y2#-45UQH*Vby zPk4h{x5M*^5a{rVJCGdT#8Es{+WCfkk6g#>wKs4bbC?`N+{Q1({lh#FcbW=}{4%i9 zd;-s}+-08{YW5qqLke~~{K#LpbvwN7b#C1bKPb0uhqtNONHR*=`no-37&SSzi>aQB zcm1-kyb7sF(;l~)a*i74;2WL5q+Rw4OxjlP%Z~qxlc?$q zJ2jIIFKw`oWSTSEm+v*K6+~|6BHh-_o<7|COfTPSPaI+H*U#>)P0kW+;HF=;xgexB zzghd_NbzZY)8019tkfI!@tDZW(ChcvC8N!I^~3w@=F#RYdhY((YsQ#GA-UOpu^C!} z?Xh2c+Z-V_<+HcVUSdMp|C1{gV}M+-3*+Tl`HX$5T+eK`m&>)O&VEj=D8xRwQn}CM zdUmhf{(rbqlL2z2pz;4>{A;-*H#1z$T_}F9{ zj5Yb{xXDTfb^rD=^QcZ~weNmm{x>9gxA(v1cZQU=>nrm;DQ{DY`L2lIuCL9WPRrJP zWA1AgP40kIMusBvpZN=Ep+&tr_H;OcU(E*Q^#3J12mhA;C7iX1R*druVP2=Sf``q5 zNA*XH(%*%u!bZes-$^^T_JeRw8nE`K@OTl{_z+iwwJsDM)yM1JwpELeZ55WDMx73Y zhl&s{)Wf4;>-N?%bSxzJ^q#fa=xy4>= zhQ~&C$8wAWhuBT^qz!)w@CbN6%*6@6lAC`7cmjMN!1?f70iFsUhGj%b{$=pqK=^_X zAFAFH@VK7{Zw7b`d@#V9;D!Ld0RJt(yWqbE_%(Q6fE(dD*sIW&p-dDi;9(+)tpV;X z9AjEk-)VuIGdIQBUxvej`ZUMJSkh0@vPt-#fQuF12p@~J$Hs(v=@a7Yn`4mlNqRTY z2{*OZ2shvI`E6KM>FFx{Q}97n?A@`xLLmJ7L+6$XbDqqHB9#*_*fp#%k}u#c}r0*l_n~6PavX7US4usr=fvYLYYg`NwpA2vhxP-FY^s!nxH%|w`hr^p;m0uRGO2 zMEDh4Oa^WNvD(e>Cc<^6F>%_h@WyubALGKkhE8AZ``?fMtN<^Ud;*~8a+8io1xu`hgX4VL?{dJ z9C&tsqi`v$B(;;lL&AaZ$Khl2x+~RK?f3BEukB79!h`fFE9|iy82tQ{=*?WCg*3z~ z_p(@2J-`L>*e-PhP_xgLee@*;odDF@rJUNW#=! zAVLBKxEza3#(D%2{1Z+iezuC=3{MCYh%mK0*lSQPI5!Y}i40nHc3y?9isP$3#t;Dk zIg*?#5!9clo%;DEID-V7+d1K-a60U@aABMH_qAa@8>Qt13goK;v_9Rrm<*&EC>$;aBi6!Xs$7gtuoW^&ACw;XUB3ur~nu!`onyl;~b`I3DIA z-6~fZ+ypNVBq)QI1~QxvSHhkI7Qq#Zbt@YYN(CN)&(cM%?wQ&a_+)?^;MIP9QSD7U zR{0*Pyr;2U7?PZ}^2j!WXi98Vb~3)_TSZTJB= zdMuFPBW)sVgex**os$D;;TE`=_$w$t`1ft%Z*Rjp+wd#!iVF>^K~?bYof!WU`uQIJ zCPI7~2gt08r3GKZah$?>w%a_1t_twE@Z!L*>IvTy;C}F;01tr^1L-e5hyG6pcw9|{ zytfUjv(rLTn+j`z@HudNfEP;maFi0uA`)3Dtp21+9&W?y;p9O2t9KkJWbnGQrPp!If(b%dJF6`=CvDGo1LCAO1buu-@m+^zD&WX8!AsM@y?mNOKK? zo4vH~|CcWjziq=8(iPsHWH`AE^SdOie-i%ZHhiKD{|Glt z`vpD=Z;rbA2Fd>=xavXOD#HFa1s=eojGayy z8Fpqid>^h{$&(jVz;U?wO&-TF&ZWYq;iUU@XLgeeze8fhN-3oR2Inb>mb+7ua9+OD zwsq94gGxf(;rvTjHOu@X5z@tDnC>jOgvY}5hjgn{CCG<&U&=RutN3%_v~zi0r8o-L zb@5xc49+~DTYII#H^D~QD<{F>l39tK5x0+RWGF*|ON39H1f&O@uDMKMjHU>UH zhPf(1F1(oN9Ffhcu})%t&epZ_z+yY#Fx;caDGb^rBVsD z;ITiCN2@Bs8o0XDSGrI6rpA2wG);xSMR-fLUx82IG{f(r@8G>DJk3+_W4bc?#kgBJ zkzh~waP&MLo2m$d@i_97yTTC(jDl;BK)edS1m2PEp3O-HSHbe!QY0ktuY)tX@ia}v zzZpJL$b)G$s^-DTrs1rjCA|elb7%Tmx(<*0h3<4K8CJuY=cDy1!{^~6Py6BWTQ7x6 zeVut3t|q>0ETn)p;5730bmUDqXR2;hD2cz@mGM_|sV~ywM5w&la5fH-!B>*ux4y{Y zI4`aUjOzs0WbPqzSdE6aW@%%0ZTTX2%DLF#5Vyua6R1A z(Qn~YI9DB5i{&eacLbC+3hxh$nw9WU8Rz6D4f-9NGu<`4!Y@mL#9qEu{#7yx&G1%~FkSI~;dm@%oZ=tgBY_H>Lto@FN<6!f44a)9#>_ENfvCKal#|M^ zQ5g(}_Xb3k3)jT^Ixq!Z-(RbEFEm`n`Zpo3n6!;LF zq_Yig1ST(o zVcT+%AKqDp@j7=s&{_7sJ@61y{_Hjy_8x%nGdEfuoY05YF;oQ$ z;Qb@@)&|`UTTE`=D7XvGDbd|775lpqkCN+ol|p53c^|r> zQ6k*~uSjIJRD1|d=j|Gk{A3t6!A)3BZ`d`%3z!W>hn)HUG#+RCKG8aMXL@8DdrH$4 z-lmpRGP@0dbBAF_RE5XDHGv9W4mSpD|9H3#CHIuJ0IuFe7gD~{hj-wS!tCcoSO%Y9 ze)cNx1iYfJAI_K0XhkR?893?pz!NB-O!3NoCaTMMf3Rwg*tV7y0ET_}15Idvh z|Idj~fk@FMC&O>y{ShV~CDL#Y3=>M$q{2JH@z{k%#mR6B4ainJ1YVD=PgHy*oZj0v z-IL%9=_0W|(nq)9ag52tYjG5A?CKA@HSh_P)Kj93a7l(=p{?-VEM6p172XMNzDQO$ zZiC*2vjbgp6h2HBJKt0;!|1sF=8pd0Kxp_FkRfe&J8^Hlgn zaK+cUm7#bneE9BIYXB?_{1tq%nkT3-8Ik_iaOpZ;G$Nb`A?-#y(!TRe<1KI^vz;fA zJK(s$^m-qhF`KuVNG}ao4OcDWr6t9W!zWp^g7i6?SNKH0GSn^j?p{wMPy(N2wk%NLcf-~Y-6~YP z935AD!NEj;J#jrzatoyMap9>5n5PaL=*bJM5CupuxwZQ8y@ePrA0R^%EnLxPcKzq2F z$x15Z%>NNQP7Lz3zCS#MMQ4&qFcNNB$+~^Go55H(38k!1;dyZW8Q<_sh7)D8slsoA z8!i7lVLq(hrg8WGi|{C>1;r$g$)XZY3AFezcrS*?EAVM}ePA#59DIxgOrk3Ab+|Fm zCHvq8^7HIQBb?^sA9V}-6pw7iE#GbEi0E6may&|8xE$99oxqky$U#Kd1FoRUJky#A zZ|>$#RwLk=)&8RPQaBQ*Q1uXMs)a0Be>k(>1R_khmUmA>ZUIx^0=mEx;X*k3KL0>s z3EZ@w$wu2UI4fyY6VDp&Cq zIL#ZUNa#iQ1a@Gv3V#)@Xz$102X73R@^>WsN_0dO_zAo_u#9h)!ule5j=!_%jYmd6 zL?hs>g$zTL!B|*hy7eq$K3vZ@_l9X9T!1O}crIM`vu>4`u1?$oHwBb%IULPoHX?tg z&o|)F99Z{nlLXlAWZli+CAcK8tZslakeFwv_P~o~8CIpL@H=oZrrS~y`w-q8XyE55 z=zqf$-uYJ%P7@(6pj1D>iPQacf4@}111%T^*PtWbxE~Fl+0I!q!$xdK4mTwLb)+dmGs?Z|I5Q%uU`$5=SqRFUv1kMiV$m6j0imX&%Gkll> zjw+SkcDOmvz+F*1s{VuNG+hz@6W+!e&g);z_@XL+}}PzYQwGC*ZWX_?~faN*_t&gjqZju3W%aA*GCk4JG=e|l|# zm&W)K`5dkb*oAN5B9yXK31Rn@Qg_&OAfSOR@xuFXvzIQRJA$j3F$RQQ=k@c3#@{72X5Sn}s9 zkF{K8&v<1?JHRRAmoM|LMCge}DF+ZTAG(quY@MgB#*-A%d!DZNf zPf72D&xZX~^8;`lv!^#oR>Disxu}<54Ib7vjC({N%kVAmRwf%yA}_)v94O?d3had= zaeC{a)hBRrVA%Z(*E5RFsQB$U2&n7qZ)B3-@=5If<5Yxxc~532})!a z!`2{Qt0%(Vd&*rjLo0yy1~wkkB|ZgatNibTb6L=oD_#X}%x3@Z_2C9QsscNmKfz5; zqeRqD7Nu{%yNmo$u?IeRg)d^00i9y`E1*Wgoe$v9MV)n1I|`pY*Pjbc!&Om~&XYjw zMGQk`r*u`rPH4M6@G2Cdv8<{J-@EhQ0 z;z>-c=_+9<9@{vz@|0{oTt@;=DObXK19spsxIQp!x4?%t_!6suPX-=Jy$r7p%zpJ3 zG5)FolgD3)&`^eDGu#UO6E0@~;`P~ku$Af$t1l%yFgbk>?+++p7*P%nEO5?+6Rz|} zRqu4h-(q;i71g@3Fl?_%j_v|DHZa%YzCY>107Q7m%z=O3)ZOgE8)7n zzQ{Mig(D5CNlExC6y%uf^h9EWFipUJi3Id<`yH?OVRT!8O=^ zufm7mT$C(F6?hcR>5ZXLE&d#qPx9pwF2ne1cmcyS!->!Q&)3Fl^#Kufg%ha|!`Z1o zU-&Z?k;HT|7y)MnByc619pD>b`EV;e;l!T>ZwpLbcf-kp)e=nR{|E6n8yE!-!^KR$ zX{rK`!(}YHGZjAr=LUvR4P1JmU*W&N^%Ur(KLT$KH1N2DWBX-=HD3Dc1Rm*uCl;}T z5pf_vBAmjZQ>CgvU-%d&8lE8;3iDMVW3zY#K9~FIk96y#ihB*bg4Ir*>W*T#2rKI; zd!B(I# z@4)%Y{oY#RLpVJk%~SB^RldT014mG3Pv3rm%UGRds|qEdNNKFt7dVVQjm0B^5vx`a zu7L~4Fkf*YoEPZsnegU71#X9HkcgWhBMLsj^3GH(UJ0LF;hX(6@b0s$KP7+Brzi19 z3)qww;cQMtQ&a_BhFb#jz&>~fElN`1Ul6ek^t7n0fQyW1sNoUR7u^oXBt;72L(=0 z;dj7AG%(*=PcFbCG0=kh;EGv(A8vqykMN#_PXrD>UW0QP($eQ*Gv0=qo@Zi1M8Zem zMHoG=0$;#&19VPX)OzwqJQDi(C*vK4(nstOyaY*b2J6FI)q)hbk*&OEmIuNsSPpta zek6Qky1)7w4;P@6oOMG*haD}d0xRKC zX2$$jw@=r>CpqTzo+)mH4>C=71@3|iQ~YD$f5Bsrn0#E*5z!g;1S6td*hYiO9$x1 z2kcFEgnPxv0Sotkxg*>sMppQx2kg(dZzrEZ#A#>j^X7$n$H)LKea9X(k0AK~B95n1 zGYM)ZpFhMgt*;c6^$Sj$VDFq4?yK`@#DC2TUue|FnD#Yi`SSE`^TVC>{W11{`QZ!o z_ham9<@%?K?S*np&9|SD>r%dQL#{dhv`@=5?*qGg1=r9w_BgIa#?PjGTSYjvV}2;C rm5-7i4A8Vm_7fH19x)B0!&=u&`?ZR2pQJ;#hqdFPBkGUdcK-ek50@^) delta 54363 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 J!Skc~{2z1LeyRWf diff --git a/Source/Exe/AIRPORT.iso b/Source/Exe/AIRPORT.iso index 50f20f1869d47704f11f1388730cec260980dc49..c8b77bfda521f2e125b091f4324957a2d8ca0281 100644 GIT binary patch delta 38763 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 U1O7lqpc4=Pbas2&1Ap4}Kk635m;e9( delta 47169 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 W5bFzc@ddj20^NLpxZQ#7d;TAbEl!^R diff --git a/Source/Game.c b/Source/Game.c index 3eae43c..4a04a1b 100644 --- a/Source/Game.c +++ b/Source/Game.c @@ -168,7 +168,7 @@ static void GamePlayerHandler(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* co static void GamePlayerAddWaypoint(TYPE_PLAYER* const ptrPlayer); static void GamePlayerAddWaypoint_Ex(TYPE_PLAYER* const ptrPlayer, uint16_t tile); static void GameGraphics(void); -static void GameRenderTerrainPrecalculations(TYPE_PLAYER* const ptrPlayer); +static void GameRenderTerrainPrecalculations(TYPE_PLAYER* const ptrPlayer, const TYPE_FLIGHT_DATA* const ptrFlightData); static void GameRenderTerrain(TYPE_PLAYER* const ptrPlayer); static void GameClock(void); static void GameClockFlights(const uint8_t i); @@ -951,7 +951,7 @@ void GamePlayerHandler(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const ptr GameStateSelectTaxiwayParking(ptrPlayer, ptrFlightData); GameStateShowAircraft(ptrPlayer, ptrFlightData); CameraHandler(ptrPlayer); - GameRenderTerrainPrecalculations(ptrPlayer); + GameRenderTerrainPrecalculations(ptrPlayer, ptrFlightData); GameGuiActiveAircraftPage(ptrPlayer, ptrFlightData); GameSelectAircraftFromList(ptrPlayer, ptrFlightData); } @@ -1495,7 +1495,7 @@ static void GameAircraftState(const uint8_t i) { if (AircraftFromFlightDataIndex(j)->State != STATE_IDLE) { - uint16_t* targets = AircraftGetTargets(j); + const uint16_t* const targets = AircraftGetTargets(j); if (targets != NULL) { @@ -1584,6 +1584,10 @@ static void GameInitTileUVTable(void) * TYPE_PLAYER* const ptrPlayer: * Pointer to a player structure * + * TYPE_FLIGHT_DATA* const ptrFlightData: + * In the end, pointer to FlightData data table, which contains + * information about all available flights. + * * @brief: * Reads current player states, precalculates RGB/XY/visibilty data and saves it into * lookup tables which will be then used on GameRenderTerrain(). @@ -1593,7 +1597,7 @@ static void GameInitTileUVTable(void) * or ptrPlayer->InvalidPath. * * ******************************************************************************************/ -void GameRenderTerrainPrecalculations(TYPE_PLAYER* const ptrPlayer) +static void GameRenderTerrainPrecalculations(TYPE_PLAYER* const ptrPlayer, const TYPE_FLIGHT_DATA* const ptrFlightData) { uint16_t i; uint8_t rows = 0; @@ -1627,14 +1631,16 @@ void GameRenderTerrainPrecalculations(TYPE_PLAYER* const ptrPlayer) // V Building, bit 6 // Building, bit 7 uint8_t CurrentTile = (uint8_t)(levelBuffer[i] & 0x007F); // Remove building data - // and mirror flag. + // and mirror flag. // Isometric -> Cartesian conversion tileIsoPos.x = columns << (TILE_SIZE_BIT_SHIFT); tileIsoPos.y = rows << (TILE_SIZE_BIT_SHIFT); tileIsoPos.z = 0; - ptrPlayer->TileData[i].CartPos = GfxIsometricToCartesian(&tileIsoPos); + TYPE_TILE_DATA* const tileData = &ptrPlayer->TileData[i]; + + tileData->CartPos = GfxIsometricToCartesian(&tileIsoPos); if (columns < (GameLevelColumns - 1) ) { @@ -1647,86 +1653,119 @@ void GameRenderTerrainPrecalculations(TYPE_PLAYER* const ptrPlayer) } // Set coordinate origin to left upper corner. - ptrPlayer->TileData[i].CartPos.x -= TILE_SIZE >> 1; + tileData->CartPos.x -= TILE_SIZE >> 1; - CameraApplyCoordinatesToCartesianPos(ptrPlayer, &ptrPlayer->TileData[i].CartPos); + CameraApplyCoordinatesToCartesianPos(ptrPlayer, &tileData->CartPos); - if (GfxIsInsideScreenArea( ptrPlayer->TileData[i].CartPos.x, - ptrPlayer->TileData[i].CartPos.y, + if (GfxIsInsideScreenArea( tileData->CartPos.x, + tileData->CartPos.y, TILE_SIZE, - TILE_SIZE_H ) == false) + TILE_SIZE_H )) { - continue; - } + tileData->ShowTile = true; - ptrPlayer->TileData[i].ShowTile = true; + tileData->r = NORMAL_LUMINANCE; + tileData->g = NORMAL_LUMINANCE; + tileData->b = NORMAL_LUMINANCE; - ptrPlayer->TileData[i].r = NORMAL_LUMINANCE; - ptrPlayer->TileData[i].g = NORMAL_LUMINANCE; - ptrPlayer->TileData[i].b = NORMAL_LUMINANCE; - - if (i != 0) - { - if (ptrPlayer->SelectRunway) + if (i != 0) { - if (SystemContains_u16(i, ptrPlayer->RwyArray, GAME_MAX_RWY_LENGTH)) + if (ptrPlayer->SelectRunway) { - if (used_rwy) + if (SystemContains_u16(i, ptrPlayer->RwyArray, GAME_MAX_RWY_LENGTH)) { - ptrPlayer->TileData[i].r = rwy_sine; - ptrPlayer->TileData[i].b = NORMAL_LUMINANCE >> 2; - ptrPlayer->TileData[i].g = NORMAL_LUMINANCE >> 2; + if (used_rwy) + { + tileData->r = rwy_sine; + tileData->b = NORMAL_LUMINANCE >> 2; + tileData->g = NORMAL_LUMINANCE >> 2; + } + else + { + tileData->r = NORMAL_LUMINANCE >> 2; + tileData->g = NORMAL_LUMINANCE >> 2; + tileData->b = rwy_sine; + } } - else - { - ptrPlayer->TileData[i].r = NORMAL_LUMINANCE >> 2; - ptrPlayer->TileData[i].g = NORMAL_LUMINANCE >> 2; - ptrPlayer->TileData[i].b = rwy_sine; - } - } - } - else if ( (ptrPlayer->SelectTaxiwayParking) - || - (ptrPlayer->SelectTaxiwayRunway) ) - { - if (( (SystemContains_u16(i, ptrPlayer->Waypoints, ptrPlayer->WaypointIdx)) - || - (i == ptrPlayer->SelectedTile) ) - && - (ptrPlayer->SelectedTile != GAME_INVALID_TILE_SELECTION) ) - { - if (ptrPlayer->InvalidPath) - { - ptrPlayer->TileData[i].r = rwy_sine; - ptrPlayer->TileData[i].b = NORMAL_LUMINANCE >> 2; - ptrPlayer->TileData[i].g = NORMAL_LUMINANCE >> 2; - } - else - { - ptrPlayer->TileData[i].r = NORMAL_LUMINANCE >> 2; - ptrPlayer->TileData[i].g = NORMAL_LUMINANCE >> 2; - ptrPlayer->TileData[i].b = rwy_sine; - } - } - else if ( (ptrPlayer->SelectTaxiwayRunway) - && - ( (CurrentTile == TILE_RWY_HOLDING_POINT) - || - (CurrentTile == TILE_RWY_HOLDING_POINT_2) ) ) - { - ptrPlayer->TileData[i].r = NORMAL_LUMINANCE >> 2; - ptrPlayer->TileData[i].g = rwy_sine; - ptrPlayer->TileData[i].b = NORMAL_LUMINANCE >> 2; } else if ( (ptrPlayer->SelectTaxiwayParking) - && - ( (CurrentTile == TILE_PARKING) - || - (CurrentTile == TILE_PARKING_2) ) ) + || + (ptrPlayer->SelectTaxiwayRunway) ) { - ptrPlayer->TileData[i].r = NORMAL_LUMINANCE >> 2; - ptrPlayer->TileData[i].g = rwy_sine; - ptrPlayer->TileData[i].b = NORMAL_LUMINANCE >> 2; + if (( (SystemContains_u16(i, ptrPlayer->Waypoints, ptrPlayer->WaypointIdx)) + || + (i == ptrPlayer->SelectedTile) ) + && + (ptrPlayer->SelectedTile != GAME_INVALID_TILE_SELECTION) ) + { + if (ptrPlayer->InvalidPath) + { + tileData->r = rwy_sine; + tileData->b = NORMAL_LUMINANCE >> 2; + tileData->g = NORMAL_LUMINANCE >> 2; + } + else + { + tileData->r = NORMAL_LUMINANCE >> 2; + tileData->g = NORMAL_LUMINANCE >> 2; + tileData->b = rwy_sine; + } + } + else if ( (ptrPlayer->SelectTaxiwayRunway) + && + ( (CurrentTile == TILE_RWY_HOLDING_POINT) + || + (CurrentTile == TILE_RWY_HOLDING_POINT_2) ) ) + { + tileData->r = NORMAL_LUMINANCE >> 2; + tileData->g = rwy_sine; + tileData->b = NORMAL_LUMINANCE >> 2; + } + else if ( (ptrPlayer->SelectTaxiwayParking) + && + ( (CurrentTile == TILE_PARKING) + || + (CurrentTile == TILE_PARKING_2) ) ) + { + tileData->r = NORMAL_LUMINANCE >> 2; + tileData->g = rwy_sine; + tileData->b = NORMAL_LUMINANCE >> 2; + } + } + else if (ptrPlayer->ShowAircraftData) + { + const uint8_t aircraftIndex = ptrPlayer->FlightDataSelectedAircraft; + + switch (ptrFlightData->State[aircraftIndex]) + { + case STATE_TAXIING: + // Fall through. + case STATE_USER_STOPPED: + // Fall through. + case STATE_AUTO_STOPPED: + // Fall through. + { + const uint16_t* const targets = AircraftGetTargets(aircraftIndex); + + if (targets != NULL) + { + if (SystemContains_u16(i, targets, AIRCRAFT_MAX_TARGETS)) + { + if (SystemIndexOf_U16(i, targets, AIRCRAFT_MAX_TARGETS) >= + AircraftGetTargetIdx(aircraftIndex)) + { + tileData->r = NORMAL_LUMINANCE >> 2; + tileData->g = NORMAL_LUMINANCE >> 2; + tileData->b = rwy_sine; + } + } + } + } + break; + + default: + break; + } } } } @@ -1961,42 +2000,28 @@ static void GameStateLockTarget(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* if (ptrPlayer->LockTarget) { - if (ptrPlayer->LockedAircraft != FLIGHT_DATA_INVALID_IDX) + if ((ptrPlayer->LockedAircraft != FLIGHT_DATA_INVALID_IDX) + && + (ptrPlayer->LockedAircraft <= ptrPlayer->FlightDataSelectedAircraft)) { CameraMoveToIsoPos(ptrPlayer, AircraftGetIsoPos(ptrPlayer->LockedAircraft) ); } } - if (ptrPlayer->PadKeySinglePress_Callback(PAD_SQUARE)) + if (ptrPlayer->ShowAircraftData) { - if (ptrPlayer->LockTarget == false) + if ( (ptrFlightData->State[AircraftIdx] != STATE_IDLE) + && + (ptrFlightData->State[AircraftIdx] != STATE_APPROACH) ) { - if (ptrPlayer->ShowAircraftData) - { - if ( (ptrFlightData->State[AircraftIdx] != STATE_IDLE) - && - (ptrFlightData->State[AircraftIdx] != STATE_APPROACH) ) - { - ptrPlayer->LockTarget = true; - ptrPlayer->LockedAircraft = AircraftIdx; - } - } - } - else - { - ptrPlayer->LockTarget = false; - ptrPlayer->LockedAircraft = FLIGHT_DATA_INVALID_IDX; + ptrPlayer->LockTarget = true; + ptrPlayer->LockedAircraft = AircraftIdx; } } - else if (ptrPlayer->PadDirectionKeyPressed_Callback()) + else { - if ( (ptrPlayer->LockTarget) - && - (ptrPlayer->ShowAircraftData == false) ) - { - ptrPlayer->LockTarget = false; - ptrPlayer->LockedAircraft = FLIGHT_DATA_INVALID_IDX; - } + ptrPlayer->LockTarget = false; + ptrPlayer->LockedAircraft = FLIGHT_DATA_INVALID_IDX; } } @@ -2242,7 +2267,6 @@ static void GameStateSelectTaxiwayParking(TYPE_PLAYER* const ptrPlayer, TYPE_FLI static void GameStateSelectRunway(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const ptrFlightData) { uint8_t i; - bool success; TYPE_ISOMETRIC_POS IsoPos = { GameGetXFromTile_short(GameRwy[ptrPlayer->SelectedRunway]), GameGetYFromTile_short(GameRwy[ptrPlayer->SelectedRunway]), 0 }; @@ -2264,14 +2288,13 @@ static void GameStateSelectRunway(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA else if (ptrPlayer->PadKeySinglePress_Callback(PAD_CROSS)) { ptrPlayer->SelectRunway = false; + bool success = false; if (SystemContains_u16(GameRwy[ptrPlayer->SelectedRunway], GameUsedRwy, GAME_MAX_RUNWAYS) == false) { ptrPlayer->SelectRunway = false; Serial_printf("Player selected runway %d!\n",GameRwy[ptrPlayer->SelectedRunway]); - success = false; - for (i = 0; i < GAME_MAX_RUNWAYS; i++) { if (GameUsedRwy[i] == 0) @@ -3148,21 +3171,23 @@ bool GameWaypointCheckExisting(TYPE_PLAYER* const ptrPlayer, uint16_t temp_tile) bool GamePathToTile(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const ptrFlightData) { - uint8_t AcceptedTiles[] = { TILE_ASPHALT_WITH_BORDERS, - TILE_PARKING, - TILE_RWY_MID, - TILE_RWY_EXIT, - TILE_TAXIWAY_CORNER_GRASS, - TILE_TAXIWAY_CORNER_GRASS_2, - TILE_TAXIWAY_GRASS, - TILE_TAXIWAY_INTERSECT_GRASS, - TILE_TAXIWAY_4WAY_CROSSING, - TILE_PARKING_2, - TILE_RWY_HOLDING_POINT, - TILE_RWY_HOLDING_POINT_2 }; + static const uint8_t AcceptedTiles[] = + { + TILE_ASPHALT_WITH_BORDERS, + TILE_PARKING, + TILE_RWY_MID, + TILE_RWY_EXIT, + TILE_TAXIWAY_CORNER_GRASS, + TILE_TAXIWAY_CORNER_GRASS_2, + TILE_TAXIWAY_GRASS, + TILE_TAXIWAY_INTERSECT_GRASS, + TILE_TAXIWAY_4WAY_CROSSING, + TILE_PARKING_2, + TILE_RWY_HOLDING_POINT, + TILE_RWY_HOLDING_POINT_2 + }; uint8_t i; - uint8_t j; uint16_t x_diff; uint16_t y_diff; @@ -3180,11 +3205,11 @@ bool GamePathToTile(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const ptrFli ptrPlayer->WaypointIdx = ptrPlayer->LastWaypointIdx + 1; - x_diff = (uint16_t)abs( (ptrPlayer->SelectedTile % GameLevelColumns) - - (ptrPlayer->Waypoints[ptrPlayer->LastWaypointIdx] % GameLevelColumns) ); + x_diff = abs((ptrPlayer->SelectedTile % GameLevelColumns) - + (ptrPlayer->Waypoints[ptrPlayer->LastWaypointIdx] % GameLevelColumns)); - y_diff = (uint16_t)abs( (ptrPlayer->SelectedTile / GameLevelColumns) - - (ptrPlayer->Waypoints[ptrPlayer->LastWaypointIdx] / GameLevelColumns) ); + y_diff = abs((ptrPlayer->SelectedTile / GameLevelColumns) - + (ptrPlayer->Waypoints[ptrPlayer->LastWaypointIdx] / GameLevelColumns)); // At this point, we have to update current waypoints list. // ptrPlayer->Waypoints[ptrPlayer->WaypointIdx - 1] points to the last inserted point, @@ -3284,26 +3309,29 @@ bool GamePathToTile(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const ptrFli sizeof (AcceptedTiles) ) == false) { // Now try again with mirrored tiles, just in case! - - for (j = 0; j < (sizeof (AcceptedTiles) * sizeof (uint8_t) ); j++) + static const uint8_t AcceptedMirroredTiles[] = { - AcceptedTiles[j] |= TILE_MIRROR_FLAG; - } + TILE_ASPHALT_WITH_BORDERS | TILE_MIRROR_FLAG, + TILE_PARKING | TILE_MIRROR_FLAG, + TILE_RWY_MID | TILE_MIRROR_FLAG, + TILE_RWY_EXIT | TILE_MIRROR_FLAG, + TILE_TAXIWAY_CORNER_GRASS | TILE_MIRROR_FLAG, + TILE_TAXIWAY_CORNER_GRASS_2 | TILE_MIRROR_FLAG, + TILE_TAXIWAY_GRASS | TILE_MIRROR_FLAG, + TILE_TAXIWAY_INTERSECT_GRASS | TILE_MIRROR_FLAG, + TILE_TAXIWAY_4WAY_CROSSING | TILE_MIRROR_FLAG, + TILE_PARKING_2 | TILE_MIRROR_FLAG, + TILE_RWY_HOLDING_POINT | TILE_MIRROR_FLAG, + TILE_RWY_HOLDING_POINT_2 | TILE_MIRROR_FLAG, + }; if (SystemContains_u8( levelBuffer[ptrPlayer->Waypoints[i]], - AcceptedTiles, + AcceptedMirroredTiles, sizeof (AcceptedTiles) ) == false) { // Both cases have failed. Return from function. return false; } - - // Reverse mirror flag. - - for (j = 0; j < (sizeof (AcceptedTiles) * sizeof (uint8_t) ); j++) - { - AcceptedTiles[j] &= ~(TILE_MIRROR_FLAG); - } } } @@ -3394,9 +3422,9 @@ bool GameTwoPlayersActive(void) * * *****************************************************************/ -void GameDrawMouse(TYPE_PLAYER* const ptrPlayer) +static void GameDrawMouse(TYPE_PLAYER* const ptrPlayer) { - if ( (ptrPlayer->SelectTaxiwayParking) + if ((ptrPlayer->SelectTaxiwayParking) || (ptrPlayer->SelectTaxiwayRunway) ) { @@ -3464,7 +3492,7 @@ uint32_t GameGetScore(void) * * *******************************************************************************************/ -void GameStateUnboarding(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const ptrFlightData) +static void GameStateUnboarding(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const ptrFlightData) { if (ptrPlayer->Unboarding) { @@ -3533,7 +3561,7 @@ void GameStateUnboarding(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const p * * *******************************************************************************************/ -void GameGenerateUnboardingSequence(TYPE_PLAYER* const ptrPlayer) +static void GameGenerateUnboardingSequence(TYPE_PLAYER* const ptrPlayer) { uint8_t i; unsigned short keyTable[] = { PAD_CROSS, PAD_SQUARE, PAD_TRIANGLE }; @@ -3580,7 +3608,7 @@ void GameGenerateUnboardingSequence(TYPE_PLAYER* const ptrPlayer) * * *********************************************************************************************************************/ -void GameCreateTakeoffWaypoints(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const ptrFlightData, uint8_t aircraftIdx) +static void GameCreateTakeoffWaypoints(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const ptrFlightData, uint8_t aircraftIdx) { TYPE_AIRCRAFT_DATA* const ptrAircraft = AircraftFromFlightDataIndex(aircraftIdx); @@ -3667,7 +3695,7 @@ void GameCreateTakeoffWaypoints(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* * * *******************************************************************************************/ -void GameGetRunwayEntryTile(uint8_t aircraftIdx, TYPE_RWY_ENTRY_DATA* ptrRwyEntry) +static void GameGetRunwayEntryTile(uint8_t aircraftIdx, TYPE_RWY_ENTRY_DATA* ptrRwyEntry) { // Look for aircraft direction by searching TILE_RWY_EXIT uint16_t currentTile = AircraftGetTileFromFlightDataIndex(aircraftIdx) & (uint16_t)~(TILE_MIRROR_FLAG); @@ -3846,7 +3874,7 @@ void GameRemoveFlight(uint8_t idx, bool successful) for (k = 0; k < GAME_MAX_RUNWAYS; k++) { - uint16_t* targets = AircraftGetTargets(idx); + const uint16_t* const targets = AircraftGetTargets(idx); uint16_t rwyArray[GAME_MAX_RWY_LENGTH] = {0}; if (SystemContains_u16(GameUsedRwy[k], targets, AIRCRAFT_MAX_TARGETS)) diff --git a/Source/GameGui.c b/Source/GameGui.c index 2d63cd1..df76051 100644 --- a/Source/GameGui.c +++ b/Source/GameGui.c @@ -31,6 +31,29 @@ enum NOTIFICATION_BUTTON_Y = BUBBLE_SPRITE_Y + 16 }; +enum +{ + PAUSE_DIALOG_X = 92, + PAUSE_DIALOG_Y = 28, + PAUSE_DIALOG_W = 200, + PAUSE_DIALOG_H = 184, + + PAUSE_DIALOG_R0 = 0, + PAUSE_DIALOG_R1 = PAUSE_DIALOG_R0, + PAUSE_DIALOG_R2 = 0, + PAUSE_DIALOG_R3 = PAUSE_DIALOG_R2, + + PAUSE_DIALOG_G0 = NORMAL_LUMINANCE, + PAUSE_DIALOG_G1 = PAUSE_DIALOG_G0, + PAUSE_DIALOG_G2 = 0, + PAUSE_DIALOG_G3 = PAUSE_DIALOG_G2, + + PAUSE_DIALOG_B0 = 40, + PAUSE_DIALOG_B1 = PAUSE_DIALOG_B0, + PAUSE_DIALOG_B2 = 0, + PAUSE_DIALOG_B3 = PAUSE_DIALOG_B2, +}; + enum { AIRCRAFT_DATA_GSGPOLY4_R0 = 0, @@ -69,14 +92,6 @@ enum AIRCRAFT_DATA_GSGPOLY4_Y3_2PLAYER = AIRCRAFT_DATA_GSGPOLY4_Y2_2PLAYER, }; -enum -{ - AIRCRAFT_LOCK_TARGET_X = 32, - AIRCRAFT_LOCK_TARGET_TEXT_X = AIRCRAFT_LOCK_TARGET_X + 16, - AIRCRAFT_LOCK_TARGET_Y = 224, - AIRCRAFT_LOCK_TARGET_TEXT_Y = AIRCRAFT_LOCK_TARGET_Y + 4, -}; - enum { AIRCRAFT_DATA_FLIGHT_GSGPOLY4_R0 = NORMAL_LUMINANCE, @@ -193,8 +208,56 @@ static void GameGuiBubbleStopVibration(void); static GsSprite BubbleSpr; static GsGPoly4 AircraftDataGPoly4; -static GsGPoly4 SelectedAircraftGPoly4; -static GsGPoly4 PauseRect; +static GsGPoly4 SelectedAircraftGPoly4 = +{ + .r[0] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_R0, + .r[1] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_R1, + .r[2] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_R2, + .r[3] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_R3, + + .g[0] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_G0, + .g[1] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_G1, + .g[2] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_G2, + .g[3] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_G3, + + .b[0] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_B0, + .b[1] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_B1, + .b[2] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_B2, + .b[3] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_B3, + + .attribute = ENABLE_TRANS | TRANS_MODE(0) +}; + +static const GsGPoly4 PauseRect = +{ + .x[0] = PAUSE_DIALOG_X, + .x[1] = PAUSE_DIALOG_X + PAUSE_DIALOG_W, + .x[2] = PAUSE_DIALOG_X, + .x[3] = PAUSE_DIALOG_X + PAUSE_DIALOG_W, + + .y[0] = PAUSE_DIALOG_Y, + .y[1] = PAUSE_DIALOG_Y, + .y[2] = PAUSE_DIALOG_Y + PAUSE_DIALOG_H, + .y[3] = PAUSE_DIALOG_Y + PAUSE_DIALOG_H, + + .r[0] = PAUSE_DIALOG_R0, + .r[1] = PAUSE_DIALOG_R1, + .r[2] = PAUSE_DIALOG_R2, + .r[3] = PAUSE_DIALOG_R3, + + .b[0] = PAUSE_DIALOG_B0, + .b[1] = PAUSE_DIALOG_B1, + .b[2] = PAUSE_DIALOG_B2, + .b[3] = PAUSE_DIALOG_B3, + + .g[0] = PAUSE_DIALOG_G0, + .g[1] = PAUSE_DIALOG_G1, + .g[2] = PAUSE_DIALOG_G2, + .g[3] = PAUSE_DIALOG_G3, + + .attribute = ENABLE_TRANS | TRANS_MODE(0) +}; + static GsSprite SecondDisplay; static GsSprite DepArrSpr; static GsSprite PageUpDownSpr; @@ -208,7 +271,7 @@ static const char* GameFileList[] = { "DATA\\SPRITES\\BUBBLE.TIM" , "DATA\\SPRITES\\DEPARR.TIM" , "DATA\\SPRITES\\PAGEUPDN.TIM" }; -static void* GameFileDest[] = { (GsSprite*)&BubbleSpr , +static void* GameFileDest[] = { (GsSprite*)&BubbleSpr , (TYPE_FONT*)&RadioFont , (GsSprite*)&DepArrSpr , (GsSprite*)&PageUpDownSpr }; @@ -227,29 +290,6 @@ static uint32_t slowScore; // It will update slowly to actual score value * ***************************************************************************************/ void GameGuiInit(void) { - enum - { - PAUSE_DIALOG_X = 92, - PAUSE_DIALOG_Y = 28, - PAUSE_DIALOG_W = 200, - PAUSE_DIALOG_H = 184, - - PAUSE_DIALOG_R0 = 0, - PAUSE_DIALOG_R1 = PAUSE_DIALOG_R0, - PAUSE_DIALOG_R2 = 0, - PAUSE_DIALOG_R3 = PAUSE_DIALOG_R2, - - PAUSE_DIALOG_G0 = NORMAL_LUMINANCE, - PAUSE_DIALOG_G1 = PAUSE_DIALOG_G0, - PAUSE_DIALOG_G2 = 0, - PAUSE_DIALOG_G3 = PAUSE_DIALOG_G2, - - PAUSE_DIALOG_B0 = 40, - PAUSE_DIALOG_B1 = PAUSE_DIALOG_B0, - PAUSE_DIALOG_B2 = 0, - PAUSE_DIALOG_B3 = PAUSE_DIALOG_B2, - }; - enum { RADIO_FONT_SPACING = 12 @@ -262,39 +302,11 @@ void GameGuiInit(void) initialised = true; LOAD_FILES(GameFileList, GameFileDest); + ShowAircraftPassengersTimer = TimerCreate(20, true, GameGuiClearPassengersLeft); } - PauseRect.x[0] = PAUSE_DIALOG_X; - PauseRect.x[1] = PAUSE_DIALOG_X + PAUSE_DIALOG_W; - PauseRect.x[2] = PAUSE_DIALOG_X; - PauseRect.x[3] = PAUSE_DIALOG_X + PAUSE_DIALOG_W; - - PauseRect.y[0] = PAUSE_DIALOG_Y; - PauseRect.y[1] = PAUSE_DIALOG_Y; - PauseRect.y[2] = PAUSE_DIALOG_Y + PAUSE_DIALOG_H; - PauseRect.y[3] = PAUSE_DIALOG_Y + PAUSE_DIALOG_H; - - PauseRect.r[0] = PAUSE_DIALOG_R0; - PauseRect.r[1] = PAUSE_DIALOG_R1; - PauseRect.r[2] = PAUSE_DIALOG_R2; - PauseRect.r[3] = PAUSE_DIALOG_R3; - - PauseRect.b[0] = PAUSE_DIALOG_B0; - PauseRect.b[1] = PAUSE_DIALOG_B1; - PauseRect.b[2] = PAUSE_DIALOG_B2; - PauseRect.b[3] = PAUSE_DIALOG_B3; - - PauseRect.g[0] = PAUSE_DIALOG_G0; - PauseRect.g[1] = PAUSE_DIALOG_G1; - PauseRect.g[2] = PAUSE_DIALOG_G2; - PauseRect.g[3] = PAUSE_DIALOG_G3; - - PauseRect.attribute |= ENABLE_TRANS | TRANS_MODE(0); - PageUpDownSpr.w = AIRCRAFT_DATA_FLIGHT_PAGEUPDN_SIZE; - ShowAircraftPassengersTimer = TimerCreate( 20, true, GameGuiClearPassengersLeft); - // Prepare RGB data and (X,Y) coordinates for aircraft // data list request rectangle. AircraftDataGPoly4.r[0] = AIRCRAFT_DATA_GSGPOLY4_R0; @@ -350,7 +362,7 @@ bool GameGuiPauseDialog(const TYPE_PLAYER* const ptrPlayer) GfxSortSprite(&SecondDisplay); - GsSortGPoly4(&PauseRect); + GsSortGPoly4((GsGPoly4*)&PauseRect); GfxDrawScene_Slow(); @@ -510,9 +522,9 @@ void GameGuiAircraftList(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const p enum { - AIRCRAFT_STOP_X = 128, + AIRCRAFT_STOP_X = 32, AIRCRAFT_STOP_TEXT_X = AIRCRAFT_STOP_X + 32, - AIRCRAFT_STOP_Y = AIRCRAFT_LOCK_TARGET_Y, + AIRCRAFT_STOP_Y = 224, AIRCRAFT_STOP_TEXT_Y = AIRCRAFT_STOP_Y + 4 }; @@ -547,54 +559,52 @@ void GameGuiAircraftList(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const p GsSortGPoly4(&AircraftDataGPoly4); - if (GameTwoPlayersActive()) + const struct { - FontPrintText( &SmallFont, - GAME_GUI_REMAINING_AIRCRAFT_X_2PLAYER, - GAME_GUI_REMAINING_AIRCRAFT_Y_2PLAYER, - "Rem. aircraft: %d", - ptrFlightData->nRemainingAircraft ); + struct pos + { + short x; + short y; + } remainingTime; - FontPrintText( &SmallFont, - GAME_GUI_NEXT_AIRCRAFT_TIME_X_2PLAYER, - GAME_GUI_NEXT_AIRCRAFT_TIME_Y_2PLAYER, - "Next aircraft: %d sec", - ptrPlayer->NextAircraftTime ); - } - else + struct pos aircraftTime; + } posData = { - FontPrintText( &SmallFont, - GAME_GUI_REMAINING_AIRCRAFT_X, - GAME_GUI_REMAINING_AIRCRAFT_Y, - "Remaining aircraft: %d", - ptrFlightData->nRemainingAircraft ); + .remainingTime = + { + .x = GameTwoPlayersActive() ? + GAME_GUI_REMAINING_AIRCRAFT_X_2PLAYER + : GAME_GUI_REMAINING_AIRCRAFT_X, + .y = GameTwoPlayersActive() ? + GAME_GUI_REMAINING_AIRCRAFT_Y_2PLAYER + :GAME_GUI_REMAINING_AIRCRAFT_Y + }, - FontPrintText( &SmallFont, - GAME_GUI_NEXT_AIRCRAFT_TIME_X, - GAME_GUI_NEXT_AIRCRAFT_TIME_Y, - "Next aircraft: %d sec", - ptrPlayer->NextAircraftTime ); - } + .aircraftTime = + { + .x = GameTwoPlayersActive() ? + GAME_GUI_NEXT_AIRCRAFT_TIME_X_2PLAYER + : GAME_GUI_NEXT_AIRCRAFT_TIME_X, + .y = GameTwoPlayersActive() ? + GAME_GUI_NEXT_AIRCRAFT_TIME_Y_2PLAYER + : GAME_GUI_NEXT_AIRCRAFT_TIME_Y + }, + }; + + FontPrintText(&SmallFont, + posData.remainingTime.x, + posData.remainingTime.y, + "Remaining aircraft: %d", + ptrFlightData->nRemainingAircraft); + + FontPrintText(&SmallFont, + posData.aircraftTime.x, + posData.aircraftTime.y, + "Next aircraft: %d sec", + ptrPlayer->NextAircraftTime); if (ptrPlayer->ActiveAircraft != 0) { - SelectedAircraftGPoly4.r[0] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_R0; - SelectedAircraftGPoly4.r[1] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_R1; - SelectedAircraftGPoly4.r[2] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_R2; - SelectedAircraftGPoly4.r[3] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_R3; - - SelectedAircraftGPoly4.g[0] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_G0; - SelectedAircraftGPoly4.g[1] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_G1; - SelectedAircraftGPoly4.g[2] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_G2; - SelectedAircraftGPoly4.g[3] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_G3; - - SelectedAircraftGPoly4.b[0] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_B0; - SelectedAircraftGPoly4.b[1] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_B1; - SelectedAircraftGPoly4.b[2] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_B2; - SelectedAircraftGPoly4.b[3] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_B3; - - SelectedAircraftGPoly4.attribute |= ENABLE_TRANS | TRANS_MODE(0); - if (GameTwoPlayersActive()) { SelectedAircraftGPoly4.x[0] = AIRCRAFT_DATA_FLIGHT_GSGPOLY4_X0_2PLAYER; @@ -684,17 +694,6 @@ void GameGuiAircraftList(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* const p GameGuiShowAircraftData(ptrPlayer, ptrFlightData); - GfxDrawButton(AIRCRAFT_LOCK_TARGET_X, AIRCRAFT_LOCK_TARGET_Y, PAD_SQUARE); - - if (ptrPlayer->LockTarget) - { - FontPrintText(&SmallFont, AIRCRAFT_LOCK_TARGET_TEXT_X, AIRCRAFT_LOCK_TARGET_TEXT_Y, "Unlock target"); - } - else - { - FontPrintText(&SmallFont, AIRCRAFT_LOCK_TARGET_TEXT_X, AIRCRAFT_LOCK_TARGET_TEXT_Y, "Lock target"); - } - if (ptrFlightData->State[ptrPlayer->FlightDataSelectedAircraft] == STATE_USER_STOPPED) { GfxDrawButton(AIRCRAFT_STOP_X, AIRCRAFT_STOP_Y, PAD_L1); @@ -794,8 +793,8 @@ void GameGuiBubble(TYPE_FLIGHT_DATA* const ptrFlightData) if (bubbleVibration) { - BubbleSpr.x += SystemRand(BUBBLE_SPRITE_RAND_MIN,BUBBLE_SPRITE_RAND_MAX); - BubbleSpr.y += SystemRand(BUBBLE_SPRITE_RAND_MIN,BUBBLE_SPRITE_RAND_MAX); + BubbleSpr.x += SystemRand(BUBBLE_SPRITE_RAND_MIN, BUBBLE_SPRITE_RAND_MAX); + BubbleSpr.y += SystemRand(BUBBLE_SPRITE_RAND_MIN, BUBBLE_SPRITE_RAND_MAX); } GfxSortSprite(&BubbleSpr); @@ -927,17 +926,20 @@ void GameGuiShowAircraftData(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* con for (i = init_flight ; i < ptrPlayer->ActiveAircraft ; i++) { - const char* const strAircraftArray[MAX_STATES] = { [STATE_APPROACH] = "Approach", - [STATE_READY_FOR_TAKEOFF] = "Takeoff", - [STATE_LANDED] = "Landed", - [STATE_PARKED] = "Parked", - [STATE_UNBOARDING] = "Unboard", - [STATE_HOLDING_RWY] = "Holding", - [STATE_USER_STOPPED] = "Stopped", - [STATE_AUTO_STOPPED] = "Stopped" }; + static const char* const strAircraftArray[MAX_STATES] = + { + [STATE_APPROACH] = "Approach", + [STATE_READY_FOR_TAKEOFF] = "Takeoff", + [STATE_LANDED] = "Landed", + [STATE_PARKED] = "Parked", + [STATE_UNBOARDING] = "Unboard", + [STATE_HOLDING_RWY] = "Holding", + [STATE_USER_STOPPED] = "Stopped", + [STATE_AUTO_STOPPED] = "Stopped" + }; - FL_STATE aircraftState; - const char* strState; + FL_STATE aircraftState; + const char* strState; j = i - init_flight; @@ -980,11 +982,11 @@ void GameGuiShowAircraftData(TYPE_PLAYER* const ptrPlayer, TYPE_FLIGHT_DATA* con if (strState != NULL) { - FontPrintText( &SmallFont, - AircraftDataDirection_X + AircraftDataState_X_Offset, - AircraftDataDirection_Y + (AIRCRAFT_DATA_FLIGHT_GSGPOLY4_H * j), - (char*)strState ); - } + FontPrintText( &SmallFont, + AircraftDataDirection_X + AircraftDataState_X_Offset, + AircraftDataDirection_Y + (AIRCRAFT_DATA_FLIGHT_GSGPOLY4_H * j), + (char*)strState ); + } FontSetFlags(&SmallFont, FONT_NOFLAGS); @@ -1168,7 +1170,7 @@ bool GameGuiFinishedDialog(TYPE_PLAYER* const ptrPlayer) GfxSortSprite(&SecondDisplay); - GsSortGPoly4(&PauseRect); + GsSortGPoly4((GsGPoly4*)&PauseRect); FontPrintText( &SmallFont, AIRCRAFT_DATA_GSGPOLY4_X0 + @@ -1208,7 +1210,7 @@ void GameGuiAircraftCollision(TYPE_PLAYER* const ptrPlayer) { GfxSortSprite(&SecondDisplay); - GsSortGPoly4(&PauseRect); + GsSortGPoly4((GsGPoly4*)&PauseRect); FontPrintText( &SmallFont, AIRCRAFT_DATA_GSGPOLY4_X0 + 8, diff --git a/Source/System.c b/Source/System.c index 5295e46..1b35de6 100644 --- a/Source/System.c +++ b/Source/System.c @@ -703,7 +703,7 @@ volatile bool SystemIsBusy(void) * @return: true if value is contained inside buffer, false otherwise. * * ****************************************************************************/ -bool SystemContains_u8(uint8_t value, uint8_t* buffer, size_t sz) +bool SystemContains_u8(const uint8_t value, const uint8_t* const buffer, const size_t sz) { size_t i = 0; @@ -730,7 +730,7 @@ bool SystemContains_u8(uint8_t value, uint8_t* buffer, size_t sz) * @return: true if value is contained inside buffer, false otherwise. * * ****************************************************************************/ -bool SystemContains_u16(uint16_t value, uint16_t* buffer, size_t sz) +bool SystemContains_u16(const uint16_t value, const uint16_t* const buffer, const size_t sz) { size_t i = 0; @@ -889,7 +889,7 @@ int32_t SystemIndexOfStringArray(char* str, char** array) * @return Index for a variable "value" inside "array". -1 if it could not be found. * * ****************************************************************************************/ -int32_t SystemIndexOf_U16(uint16_t value, uint16_t* array, uint32_t sz) +int32_t SystemIndexOf_U16(const uint16_t value, const uint16_t* const array, const uint32_t sz) { int32_t i; @@ -917,7 +917,7 @@ int32_t SystemIndexOf_U16(uint16_t value, uint16_t* array, uint32_t sz) * * ****************************************************************************************/ -int32_t SystemIndexOf_U8(uint8_t value, uint8_t* array, uint32_t from, uint32_t sz) +int32_t SystemIndexOf_U8(const uint8_t value, const uint8_t* const array, const uint32_t from, const uint32_t sz) { int32_t i; diff --git a/Source/System.h b/Source/System.h index 12c0079..90c1969 100644 --- a/Source/System.h +++ b/Source/System.h @@ -75,10 +75,10 @@ volatile uint64_t SystemGetGlobalTimer(void); volatile bool SystemIsBusy(void); // Returns whether indicated value is contained inside buffer -bool SystemContains_u8(uint8_t value, uint8_t* buffer, size_t sz); +bool SystemContains_u8(const uint8_t value, const uint8_t* const buffer, const size_t sz); // Overload for uint16_t -bool SystemContains_u16(uint16_t value, uint16_t* buffer, size_t sz); +bool SystemContains_u16(const uint16_t value, const uint16_t* const buffer, const size_t sz); // Compares two arrays of unsigned short type. bool SystemArrayCompare(unsigned short* arr1, unsigned short* arr2, size_t sz); @@ -95,10 +95,10 @@ void SystemCheckStack(void); int32_t SystemIndexOfStringArray(char* str, char** array); // Function overload for uint16_t data type. -int32_t SystemIndexOf_U16(uint16_t value, uint16_t* array, uint32_t sz); +int32_t SystemIndexOf_U16(const uint16_t value, const uint16_t* array, const uint32_t sz); // Function overload for uint8_t data type. -int32_t SystemIndexOf_U8(uint8_t value, uint8_t* array, uint32_t from, uint32_t sz); +int32_t SystemIndexOf_U8(const uint8_t value, const uint8_t* const array, const uint32_t from, const uint32_t sz); // Returns frames per second. volatile uint8_t SystemGetFPS(void);