From 1a315efc1d824c56e0b25e9d24fca2893cd182ba Mon Sep 17 00:00:00 2001 From: Slyvtt Date: Tue, 29 Mar 2022 22:10:12 +0200 Subject: [PATCH] Tuned circuits + some polishing - Ready for 0.95+ --- CppOutRun.layout | 94 +++++------ fxlink-image-2022.02.28-23h13-6.png | Bin 25361 -> 0 bytes fxlink-image-2022.02.28-23h14-21.png | Bin 37187 -> 0 bytes src/include/menus.h | 2 +- src/include/saves.h | 4 +- src/main.cc | 41 ++--- src/parameters.h | 2 +- src/src/circuit.cc | 226 ++++++++------------------- src/src/menus.cc | 35 +++-- src/src/saves.cc | 1 - 10 files changed, 161 insertions(+), 244 deletions(-) delete mode 100644 fxlink-image-2022.02.28-23h13-6.png delete mode 100644 fxlink-image-2022.02.28-23h14-21.png diff --git a/CppOutRun.layout b/CppOutRun.layout index 28ad034..e5bf66f 100644 --- a/CppOutRun.layout +++ b/CppOutRun.layout @@ -2,34 +2,34 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -56,29 +56,29 @@ - + - + - + - + - + - + - + - + - + - + @@ -94,14 +94,14 @@ - + - + - + - + @@ -109,14 +109,29 @@ + + + + + + + + + + + + + + + - + - + @@ -144,29 +159,14 @@ - + - + - + - - - - - - - - - - - - - - - - + diff --git a/fxlink-image-2022.02.28-23h13-6.png b/fxlink-image-2022.02.28-23h13-6.png deleted file mode 100644 index 344a4aba4a8a0488fdfe3a18da2a65b3e8ba8b20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25361 zcmZ6xWl)?=6E3{y1_|!&79?1Z;O?-vySuvu3GVK0i@OEa-~{*Jus8&_!}Fdx^;La; zdhVK;d**7Hp04SRP*RZmj7We8002HqONl8108r5%-+wJ4 z+9eoHDVxgmwB}{Z&G_3cL!}Rzl_3_8EGG_P7p_)cvzV_;>d8S{m2CZ}VM2 z3jCWGbuVFej-(J1JuqoM;9~D~)+_EvNkZ^85oZfN?mSJg;}RX(WhvwRlK7$6x}yMh z_2s2kR)NUt(=G>d)3Y`RXprUcLQ>V=sUuMtR+QF3TY=iSC#zOBBzkq^|5%JfO8!-{ zEvvX2Y<(#nb`on4*rD5T&pauslrX-T@J!kRYS6RP;KT?2mf7ct^MueYBYCJ=(YiF< zKjsee@tsxf*i?2*JHdOq_W1q@jYCWKTi@n>U*&)L(JfvkaLGJU=4X5>Bg0Eqz+e$q zAW*Sawu0oL?<{F|(TT)=+B7}P^>w%>Mk+vyufss#xPKZaU4`oQ2jJ-LOAEK#k(N8; z)iM@Vg)|l)f+=g`vyJrkq?PK;pWtSx7hU@7p3aRRx4N3dm!Et4A-l7N0oDIif&VU6 zaOS}KA=G_+f*&j|*vKD;5BV|e-t4J zcDc`i=8pkd-1(RTBg}pEdB)7r`>Ek;^Ld%iRQn;AC7f9P^qqgjR({7)y~JxT7l{JbB=ak|6Ksby0m{ow9@)Kh0Vid$IG>UO)b|X#-xh1? zK22cBxAPAjw)fSN~_KlP(E<~pIJ;?E& zOsO3V_xa$6)^7!(5)n@WXgjX!i*`@`h8OG82`F_9J6-Ok@hZDt-e^_5(w+Y)P#E+Q zfQ`{#-q<<1xkBR=@Vpiom^+1Ir&jg&7xHI+)^f-j{9w6%kz(Q70oYm?RcvJKL0zwB zIv~`fGw`;Us2N6$4dM0rEveE>WZ^Vy9zUpKK z8JE46-0!yYe}(lWjCy|jIxm@2PINy`Y5JFZq5PsSGAS|eyPvW_XM2z9W85;1$8};@ zu{BTEokzgn!7iVQVkz!X$tFt538zuYcaBea{=myW6X`h<3yaAxGb zU#ZRHaR;6462x)gjN0dis)gq6xlYs>@LQ6D{`q34;_-#~X9Ihl8soLJujx}WsR2>q zR4{XUrIW(9jT?vG2E-p;Msl=wWcJs1#nfxJ6hwBLTzgv2)U~1MBB(e}vU%cA_fPW1 zK|yUFru;fm*Rs;AR% z>OY^!>TBM8^MCuXuO3&UIPfW^b=Rkq#XW}J7- zGkMwBZbjn!+;Z}B=#`%sIiF+`&r}}txeZ0fVH2&ivVkCQuC@2K5Li9AhkupmaGFRl zu9yJ%_F%*8CatyB-QeO;y7BcD-_LJGap_r5@6_M>X5g*MzuR|DvGly9@P+B>Z}#g* zSJ`zmqtXY+G0*2bt@yuYOL0k3P)!o0t<-DJNwE2$*)eK#P&(sQ@7>0Oipx5+*NnU4xGPM2Yo~7quO@ej zXWY-p-PerIC&N76trQcB9mC8YI4ZqyyMrYk>}L+R-)}E7R?e?nC%Y~hdV0pgym2gD zvfsV`+ngpBOtVlZ9(D04FX^oNe?0kO@_plZQsKP+PqjJQf-HSha~p9y&X7A09q zgFg&t3tB>vo1)ambBwWjaoy$vjfU`~%>6)mxwKj{*Vv4;@_!q$rT^mXc@OC;)AZuh zPW%t^;ZD)N`9aZgaD`km)qk8igqScBHpSljXR9nkm|7nS)NbXroCxZU*lM=Nfu#r_^VNT!ixFIk2 zLmJ2i9w)iLS4m?3t>^27#~*q>>()nSz*3W|h80*vZJQwS`#XR>304bmiXX_TN@6y@ z%lIjf6%}g2?D2$eqBiE^Nco0o#?pEvrx@dm=^0QSapCQ;<$&p&e#=;;83WPttAoai zys)_80nE4b#>Uf)`JWI!0mP&;aBQUYyr$^P7Ow_D%)FCoW>?L5`^WjW(#;S4hEK9{ zqrCU30W>7?PrJ2FDj5p9dlWC+tV5FG^q-ue&=5a|LX**8Pl`jW!~Ou{$OzMgS7`jy zQbK?x!T}H0F8lN{VP7x_Kb!)zJ95 zI0{8(HdeH(IC+I?2&KKpdmLwT$Ps=`hg!^(p@hyPoWX3Zo(~f&f2BXZn0qAjna>jHa zgblUB!`Kha@DV02u507iu-=SF)WRA~!vs~W(261KgP@8J;3!0rSNuW4&=uCCRK&ek z&V20w=#ww<4U0|?G77?Cy-xu2x;YWi0^MG>@f$y&QPjNCdN_a zoV7||lEvjJv@Lr^A10yb1kJT0I1fZV6X zuH2lHz?@hZysPweL}xoTM8r=-Y)}b+92uyUBS7xCh(=$a3Md_7IDp-%TtCe6yzL0^ z`hw{IUxcS9jh0=10f?P$=Hs5c)!o02#ziSITdyql&x7f3%Wm~7EPve^R${QOvBYNT z8U@o!1uO8uXa@Q!cX*!m*M*{|;_$lH9E$k4PL8VzWM2lq~TA<8yCe6sdC1%Dsp#fKTJX4EhgjAWu(2s)w z3sxdlUC<50vDqfMG546U?$(SF9FjB#_*;B7acw=t~^2!$=YtV4=<@FVxl{}o3Btq!3_GH z+rY*AmxT|PQx>bniD5$xm(t(}lhXBpddqv5m@XfaF!6o0^BE{;(++$F4Vj{bVo5R_us53hD&Uxh z@MW$dba?S$XZz6|>Ab#rs>#yGa+p^-{y-hWIMcIR8=kPxE7>3NfP*;#2#FBCi78Z) z9(6+ir27>V%#5>l|4OM$mWwi)6>c6()u^%GEI&yUVpLuq73Y_ok1&A+O*ePUd)U5| z6iO6u;zRu{W+=F_goFoz;&#<(F4*XkF?UE}J9>VaHi$ z<0)fxCR`9Qdy=hrMc?#1vWm;yK>^eDgTgON8j4ie%ISiH>$@uqqpqvhs!^TslE*&g zpz3mKsE)#%M77}bWctuie47I8{6+f-6EhUXEhy@c4xw3rq{vdC_2gWKDA^q{cZJmr zC-rWS$FTeNd{-WP!Bw7HV!JQMtg~;I+a!ue?-I`Rs))@PwpaFlrP7s^eqo-}v%ozY0?Qhf*zjEdQ4>%NZ06p26o=T=OJd~GL_u~WEMetB<*sfpummx3Chpej=80bQbh!eK_@<9py6K$oR z_`*mfA)2cB-J-qvstJ(|bYcif(^hHL2a&B91)BrO^ppg*(elORrJ^9TFXL6SPja_% zuyC5HgdM8*-nm0R4qFA0ncqzCi}ngBlhMl_CAus=*T+IW}%@*JLyS&9&%2gN=HWJJjZ+rMqv_xHFTo;(p6gp+);v6Awh#RoZg+cVib=N zHz`PK^|-Z7oFD60BuW}O0y7v>&IwD0B2lQffzi~ZSFsi+Gq25lgIwD$zURrg4n74|s_ZzSRJw~kEQF=+njn+KYx zmXMJYIqQNNou_^^*F#$jgwRZ4i}wjqs{F)=AT&}G>_VC98^#$Y2wq6C!&KP%{&-&M zWReM|rCLGpqr@EZV@Rf{U2cVN!u@o5IBAUpf2Yw~7AxuqAIGW+$i^&7(-y&GrU2a) z=il<%2r<4(=8;cq5|Zlk*OT4SrnJoVLzq?rCR0XhMN6c5240!=)LA$g)FVVD8KR~} zxiTR1zria|1VyR01;V`y4`?+>0g(dKP8T6snCYi6m-KZ-k>)Z=mnyvDC#ZCWyAiprT2(2I(3Le2vPdR5`qqIj<@#teK3^Jpu!6LGwu!AvZ)r$4hpX#=fg_ z#H8;V>uz{5WcuOBaiH3 zPcYAc!;*McqA{wpTrf%wDxb4-1_XQM1+(kt7Jp{Y^*W&>0cL|=xoAfJv*y)ME~Ge@ zNiL#5Y+oJQW4MC$b|M0w(6J(*)1Bg}6=o-nbn5JN372ca}{SSNze@^~cSfI5vOJ5+vE_;Y8&Q8{&J zh5Pi9WFVXESYi38AzgBMh}BHIHTD8Zs7UCSn>x{P9j@~);n!$PN?$5VQ=cl-=ABy@ z7meWum0$wfX6xE(JGZhqNe=N*Zus+(f9B|n$dJ>hMgP%@0Iueul(s|p*bdURl(~CX{qiM(KM)ck6bG5+SkEo=u)x8h7>u0SnWUKzoL+XFF zJVw0Z$drk@wAk-!OQ^fB0zb+|IK$a_Ko6&ANrv$L3KXF(q(3B=F)KKY@Q7#2&3A9& z+M8oWy%-l3TQDZofI_^bR)+IR)dyFDN!*nc%rfeOJ+bIbT^daiMFu3!ouu@7N?Tif zf=^aH-|#11j}H^bG&7(h%6r9`p+**wH7^xu6$qDsHmrv<#813R{Yk!iPGvI<2=f4| zO-766;TG}xWz_C22!Y+fY<9gai{N#9RNmzC@5Z*62&~dogY+w%47kn0HN-K5zX^5J z@YHIcD_-Qcl`PsT1Z=`@`*pkCrOdgNRdnJOF?w(w`j*wrBS0 z__`T?OHjBtuVZrl*pez)aYduilQW%X2h|wN-P#}u59f4omRN92ptcTGkvv zXXDwVRx1s)J7F&m$1qk7nz}o0UG33)2l?(o!4rdBz$izTOE~4a<8G3SxsSQbOH9>` z+UxWM-m6;~0_M`&>56}r?}HE0 zioFfzCm}YB$6!TZI8cTY?zg@)J{;_gb%Yc95?bw5Z?QzJmLPIrT#iR=8-k(jHut#5 z^t+b8VsXItn)$mys*X!dSnx26K!K6}7X0p?N7P6{o^^-MfcWG21K{~tx?2k(FqEjg zlffrK=_IWFCtgYR#rR}_ujjXl5+!>f+ESXBmfmi~?e@7=?>mH)@nvn^pNxDmh}cRv z9$vDrh&9P+BrxB%BR*d=M3Nk_jg*(n-}U9Q?v*!~p)lt&l|-tcA$<|_jPxzSp;FUe zuyF@*uw@VF#utPD9mcwuaV&x<22BQn=vUQ9*2 z`6fGOz~Ga7*gWOVRW1kQGo87Y_$^Bg!wde!2nm_J`!6b+2*N@6?5Qo^ZeWq0y5L7J8hUM$QO zpd0yRrqUFy^9vkc(dZxeXl4IyS;P*(xpOT1pepf-fAfG(p`{Bl?m4^+SRJcis!?$l zOJ)dW1Hk?)o+*Qvahj7ywu4HXXHCaA^=Xn>KCPYjcm679?fq}ZeqrvhA1*)e#usy< zo1L=eI1U)kmeT{VIBD3c975DS=&(j1g(?@N1n4lW@EPU#m?5C*@!z0O^c-Bp#i%%L1;Mvq#_<&t)p$;5+gLeH8s_Oraenjp)9 z-6rHG&qW)}xSw)m<8RzA+_P7Msg=mVQ}%1G?PZ79uKGp#G?lmokUU6eF&`q)e$0HD z0DaG@X;u{Tb*UyBgT*(71a|M$$1+v5?eBFOwAs2o-~~DyYKB+NV3Y*~j#C;R6p(|6 z6!t3lXIA^cyG}qkcHuR8;C?k>aV$nhIuoc1Yn*{^+8H3`T2-XmJu^FVC~Q0c;#}Sf zmOmFgxJK?Jb9>d-^)+Ogr*3+3dbsRvc;W%Fl*DwZ2;Jf_KP)Ev_$U^AuPTTJUX{a6kQ&k!kG=w@|%H2Ykp z;L22EvgObIKc;S+b8Hf1dH)3-FjSZzln`rlBb16TXQtx&aBivV7lhzxR&1IoOVqPh zW1+#p=!}W00KsBSa>LGlZIuC^lmHr}cggCIlo3H8QwDdnTV~%dxVJNS4a8ib{$7VNr;_8W3c9?q zFG+I5h6mctdsw|_L+QQ}Y4H3Ky?nLRoIF?bPv1J^wwM*|y!hmHDWwm0u;#3ce~07V zr?;Ot@@82dX)`tlg=ta`A0$JD}-)?Q6rOZc+EU5;4qj#C3 zbR@dFHU(X*GQkC7#gs#<4WjJ8(UC2;rt~D0Ms@l202In6BZ~qG2$h>vlw_=I1vDBP*jPFm62W# zF;q2tB6BH`#^dTIT!n&i`DCy52y)%Le~|^p2=eO>qK!_f|@o;7o_vM4;`CNdwhBou^+t#_poqhF? zSEvXd$pd*DR{dPd0!%FmmTZV9G^M*|`d9u^!9d9ab<8YS+>9E9INIW&dC!j&HI0*a zYH*x%9?u|EDFiDS)hq?g+zY2{DYLK3C*xJp7GVvak8QcSNN4sOFI$mbB1i9p@1(#X zqZO1cAdvsZ?JIGcIP>R2BprrOJv-r>@-J%Df3jWnZ40aQyQNqRikAeD3#BxXXtTq( z->C=bwvnT(E5cgFVwIU&$3$qzWogSvynsM)&l-y~ZmF?s@hPyihvyqSJ&+ z#V0}iaBGsHOU4A7xPTrZvf{CZhY!QPnn|sCiQ?NK#WSEWdX*d^0_uPP+EK1C>GoOQ z>F%gZ=r7aU=wx@l+qelmB^@@IP)Xf=Ag8o}s%A`Ho44%^D>ugV2mA)iIx}574OOCjOI8K3$+hE>h?hPvgo?qQ5y7 z`1L4W(XwIepC4=;q~0Thfl@?MwgpEgpIT&@4%?epI0E?@MXVxBR;sn*iEN--Whm>4 zY;BOwk_1j~$#$V`(I4{Df>mekG!1V~AaI#m_-E%$sC4e-*Y|Lmp+cN=9iS3g9OLx3 zGhapHre*`-^Dj%)dYYwcDYL?F&ksTij26O=A9sI>Z+=GqL>; zc%4_}v3XmU!sN$JPqf4vvEJo7ZQb#-J1UTGKv5-bsm{*C2`9> z58x~KM$L`R_8xD{mUQJ$zNj0+W(q@o2`t_~%2_emiqx82E zQJ@C#&i?eekeE#$3nfcx z#nOH=@(*79W>hij%4c-|u(GEc=OW-LH()4<93#Oh&&=zL{u*embcS}nY{zP~N1#vd zoKo-deNvXw%or`$R|L7RT*mrBhBXTH?z((Ik(-=P>_gsf{nVUyU#e$g*DiWmkc3*+h3&3;D*`n!9#WsOKJ#vPvVYw6-U# z#6t0{^khKB$|@n#cD`xV_h*hqUT=!K#U+ASD0H0|pLPm785X2NC?uoVi#Qo{L{_lE zuzuTcs@QLg|1u1R3x(V&ppz!gx&CBE3%~;*8WueImH2Wd)8mLn!||0{J#JB>(a#xU z+X&lw>l;E#nqK7@ELfRUgf}5#ackKvC>wqvsN~sFW1(-OpQq^e10sQhR7Q-VIOw4K zrc)VxapuLIs#(Ge=5{JC%8OUYZJ}hp0@h(OJoV`%Zq>8O6MM1Tne+9i<4>HyJK<1v zi+NmQYIja9hERrUrMvjxU=(R+C};W&E*NNK1>r-M=dU%oRlaH2CR_V;I2S~2GIP^E zBkZZ{|9NxQP4YXz;1HKg?5TSZ{d+JMXO%zH$=^N>C>{7UUyK6Qj|^AdN;%hLSC>?> zvDDEqI<;G-zwJ%-Dw@m=lV3JjYNm%1haxNcqo^KMLpwsN8r%dhHiGSDe(qXqbd;P_-F^(2NCUYO6;#x=)Cn}HE@mg;G@?3430{( zTK+_vyiXD7JpDBR$INuUx6z#rl_69?aBrnlj*?Hs!+H0Lo%rCMXX=Dvxp7kb)T<#6 z@h~5v%4Ebb^85F4^%E;H&Tb?4VVQQ`L-)qX4q2yhRkRdmSwslm4I1De@|c^aHDjK6 z7-qP9H4xkLSZ~^zh5aEeKsgLkQ_n4rBDJ3 zYyDRVYbO1kjzOc}LXuI~^USgS3PJ6x{IdaIeD*Po6GoQQ%Y@qULPOPNIro+Jd?Z$Y-q%HX>_dKqg*SRY*7aU*`5#iQkCADYx?9 zG9_o3%7Zmg@Ha~AltVC&cd6(xw|lK_ip$I4=R1!QBO`?6xDA_ zG2ifjBM}5zC-;)GSB@PvI<_heCr#kVOS-do#qf=SZ#F!+q~&T%tw!yilkyG#PdWht z|DsTRH_r}1$`=g^m$T^GXJNMOpIv^}IB1~K-$eqs6F=E0BiHtt7 zDF0|uB{D7mss~9(I(s17dU|^@y8Ail`thQC?ZntFeAClxt+}FPy)?D$4nC(&BF#xI zfjvTES30$?^BAK{LO2*ueJ>*g)#qAAXl~_Agy0``O+Js~3}PXQa^`~ROn?c0yeWS? zeN>>Ld-^-fnNN7FGOtCAVlzO6o})|;Q6Nu=4y+M(te=CDO?kVeRF0*sV(!XVT-jzG>n=-b;un1{%z#jRQ=?fh~0*j3r&5fNh1uKhDhddnFs4~#`>WA9Esyz%$~SPH=V%xhZvo?RW}RdK5A z6M8|n4~k18?3SgfA}vumZzyV5a-_m&^gSkm2`B9il!~r(@J$<#c;Z)><`&c2NALZ2 z`*7xaK>SRymJp@!y8CJesCoW=asf&6>KPelWPZQxw}b9p_zILk?P|9?FBBZ8S`Ftt znz5I^Whj|vb(oK=;Wv`7nxraF$5tgL9N}&;{Cu0l0XB9}UY6A(5a&PpXSg<)T;0dO z3cV0jchzr!AMOi(#9JI$HFMnSG>`dP(Mz>V4NN@1H9!wg76)dSQ*xDyPZGSHJ-j?^ zP{VEhCt*8{$FUokAAH*T=&-T!-_sYjzZQ}uqSfj@4{6ivO21ofsi#Wjp(%Cs zEV;v7XwYtEX0~`JVGm+$N_q^lZ~Io1i&zP$Q4PPo@eQ& zF`Z&QBM;?9yf~{whOi54;6|)3UO@EvKrvwRiy~UbGS8c+K^+dDdj!xlb1Eui!X$@uyYa817I!7LwaL7^^#-4M{^E)u&SAs^ z6G1<$mVY9vd~3;&Z|=o*>iQ41+6L>HI+a_>M?@D(k7_KYX)s*&DUMM6O7g@`(WU^+ zt^Vdu2M{KAtdWNttsSLUsYv?VnKAj}JxbPBYX@Iha$Kk0B{_T)7*rPiDjrD#iKZSb zI`Pkpg5JZBnZ^rD>Ra2V=#1H{moB55n)`u8K`6JiRc`D{GdJ|I!-+$BWXv&TAM7%f z`a1^f8nx0%G^i9o=*EATo{6YoJJHcOZ0lPs*a?wpiM0Y&P$Da5McQG&lNDB&1coty z$=zZLZVMg9II2=>TpS@%VzvH6rGnLf>}S3BCNHls;c?g=BsUH&bqG<^6N&_V7?bh{ zeG-!(=2ad@@39zrFop3B6M z%pdpsdVL0;A{B1gjZ@X9_Y;f-)`@5EXxEobh#@N|Kf34EL1IYo{4Nl{p0`gP3%|*u zFM}iAFVS2?(e}b)u4FT)cJkI^8?>UzqTAx^Z-_tkLA+PP(qhiuR6o*+N?`W}q4*Lq*Jucs=T0 zoAI5E3U5iKR5dzEd9{Qc9`vZV8*#;ch=#o zZ#L%iFM3S&j0`Ismo%NQun1U&x!y$lKDag%oy4|M>Y=(C2r94V$gUoj(SQ4ztGgBG$ezLR z{d`Bzyv1ddHG;x+%vK3}$zO;9H5$zLe!HVdwK-)`BfHxT-S&hJXp_B(`u#)dk~g2= zx+W@ke~ExrzUSa;0GVtwH*{xbvUXOHu4@TiL+!LH!kKvXNX>LGa$+L5M7iidn*kS~ z3v?4)FjhUO&-H3|!%;R>=B$y)`qCMq8#F%)5oNqL{RXeR8cn@MT6wo1Hi8}>KWrKC zsrV61;QfiTu}@)gxAA$QK)+`~K$Z z>*w-j{1*fD5Gy_gS)ZHEjL;21xMbp0<}@AR#OagfbI^x0BB$h`Te2G_ZiY~rE6!n! zf4*rO(`h-5h9oZxtR9i`nvc?efrynOCU_**QoBV%%&5K$A*PE#IX*Vz0fj&9tWb~_ z5QGOcocKmc0ghBDgpCER#o^N~ThS3ZXFTS#7U*~1?6FUarB3ZNER{Tiurk>=bp+fv zIi&t8ekxjyb;O2YYuHcK}((A?4rN^(w+FKxfM-J1g{n|?ET2tEl z#+gUOQi*(hO3cw#%Uhn*jyaP~LXdwNcmG|hswGH~vZ83pJ?qT{EAk1wpU6l>_k$Jcy%U%DeIS82Enlx3q49)#as`ofPtU_x$dq%c}Rk6GF zxvb`+rqdPpK0jno5Fjf@tJ6sEb{LpLPRYP5lnnEi@+_S*Q| zny1ltzw$5?HEw`&t>HHDnk@LD;k(`00r%Px++!E@fjeN$-G41X`=k;G6 zseNkYP=NXP`&ehs302RrRKZEl%+9O&TZeqQYt&;HYEk1qO)BrrZ5HF2bGzo*L*75B zoofMdd#%zhCwH#~yfhdr?WZ|9pvSd4cCDaga-*j+tJI_9S1_z4BN`XvPohj?tP8>| z0s{t|GM<^p5;=||0{6D})i8V3DmCG6Bi?Fl(c~LU^h!YTh_Y}}Vbkk18RtbL9T(+E zmI5q2QWMl}<{TP2V)bq5Q?N;7=wb^VK|)5ekWT%9t`Lm6-BL*(Qr

L(#%Y%6YId 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%0Dx@1grYK4-p5BrxiLz2CQmNAry>|ZX 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 Di4RFO diff --git a/fxlink-image-2022.02.28-23h14-21.png b/fxlink-image-2022.02.28-23h14-21.png deleted file mode 100644 index 8dcf26705d2f780d06588ce3f41ce631ad32edd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37187 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

?M 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 -#define DEBUGXXX 1 +#define DEBUGXXX 0 extern bopti_image_t player; @@ -471,14 +471,14 @@ int main(void) { selectedCircuit = drawMenuCircuitSelect(); - if (selectedCircuit != -1) secondvalidation = drawMenuCircuitDetails( selectedCircuit, 0 ); + if (selectedCircuit != -1) secondvalidation = drawMenuCircuitDetails( selectedCircuit ); if (selectedCircuit != -1 && secondvalidation != -1) exitflag=true; } else if (mode==1) { selectedCircuit = drawMenuCircuitSelect(); - if (selectedCircuit != -1) secondvalidation = drawMenuCircuitDetails( selectedCircuit, 1 ); + if (selectedCircuit != -1) secondvalidation = drawMenuCircuitDetails( selectedCircuit ); if (selectedCircuit != -1 && secondvalidation != -1) secondvalidation = drawMenuBestTime( selectedCircuit ); if (selectedCircuit != -1 && secondvalidation != -1) exitflag=true; } @@ -534,7 +534,9 @@ int main(void) createCircuit( selectedCircuit ); // Creates the circuit MAX_SEGMENT = circuit.size(); - uint32_t maxDistance = (MAX_SEGMENT-nbInterestingSegments-5)*SEGMENT_LENGTH; + //uint32_t maxDistance = (MAX_SEGMENT-nbInterestingSegments-5)*SEGMENT_LENGTH; + + double maxDistance = (double) ((MAX_SEGMENT-1)*SEGMENT_LENGTH); putBillBoards(); @@ -559,12 +561,13 @@ int main(void) else if (CarsNumb==3) NB_CARS_TRAFFIC=150; else NB_CARS_TRAFFIC=75; } - */ else // while circular needs much less + */ + else // while circular needs much less { - if (CarsNumb==0) NB_CARS_TRAFFIC=5; - else if (CarsNumb==1) NB_CARS_TRAFFIC=10; - else if (CarsNumb==2) NB_CARS_TRAFFIC=20; - else if (CarsNumb==3) NB_CARS_TRAFFIC=30; + if (CarsNumb==0) NB_CARS_TRAFFIC=25; + else if (CarsNumb==1) NB_CARS_TRAFFIC=50; + else if (CarsNumb==2) NB_CARS_TRAFFIC=100; + else if (CarsNumb==3) NB_CARS_TRAFFIC=150; else NB_CARS_TRAFFIC=10; } @@ -607,7 +610,7 @@ int main(void) bool finishSequence = false; // Did we reached the end of the race ? bool failSequence = false; // Did we run out of time ? - + bool stopcounting = false; while (!stop) { @@ -640,8 +643,8 @@ int main(void) startRemaining = ((float) (startCount) / 100000.0); } - start_time -= dt*1000; - elapsed_time += dt*1000; + if (!stopcounting) start_time -= dt*1000; + if (!stopcounting) elapsed_time += dt*1000; if (start_time<0) start_time=0; remaining_time = ((float) (start_time) / 1000000.0); @@ -914,7 +917,8 @@ int main(void) circuit[indexstart]->CheckValidated = true; score+=20000; finishSequence=true; - FinalTime = elapsed_time/1000000; + stopcounting = true; + FinalTime = elapsed_time; } #if DEBUGXXX==1 if (usb_is_open()) @@ -937,7 +941,7 @@ int main(void) else { circuit[indexstart]->CheckLap = currentLap; - start_time += circuit[indexstart]->Extratime - handicap; + //start_time += circuit[indexstart]->Extratime - handicap; circuit[indexstart]->CheckValidated = true; } #if DEBUGXXX==1 @@ -955,6 +959,7 @@ int main(void) if (start_time<=0 && mode == 0) { failSequence=true; + stopcounting = true; } @@ -1021,13 +1026,13 @@ int main(void) if (mode==0) { - dprint_opt(233,3, C_RGB(0,0,0), C_NONE, DTEXT_RIGHT, DTEXT_TOP, "%.3D ;", remaining_time ); - dprint_opt(231,1, C_RGB(255,255,0), C_NONE, DTEXT_RIGHT, DTEXT_TOP, "%.3D ;", remaining_time ); // the ';' char corresponds to "s" + dprint_opt(238,3, C_RGB(0,0,0), C_NONE, DTEXT_RIGHT, DTEXT_TOP, "%.3D ;", remaining_time ); + dprint_opt(237,1, C_RGB(255,255,0), C_NONE, DTEXT_RIGHT, DTEXT_TOP, "%.3D ;", remaining_time ); // the ';' char corresponds to "s" } else if (mode==1) { - dprint_opt(233,3, C_RGB(0,0,0), C_NONE, DTEXT_RIGHT, DTEXT_TOP, "%.3D ;", elapsed_time/1000000 ); - dprint_opt(231,1, C_RGB(255,255,0), C_NONE, DTEXT_RIGHT, DTEXT_TOP, "%.3D ;", elapsed_time/1000000 ); // the ';' char corresponds to "s" + dprint_opt(238,3, C_RGB(0,0,0), C_NONE, DTEXT_RIGHT, DTEXT_TOP, "%.3D ;", elapsed_time/1000000 ); + dprint_opt(237,1, C_RGB(255,255,0), C_NONE, DTEXT_RIGHT, DTEXT_TOP, "%.3D ;", elapsed_time/1000000 ); // the ';' char corresponds to "s" } diff --git a/src/parameters.h b/src/parameters.h index 15f7634..ecfe142 100644 --- a/src/parameters.h +++ b/src/parameters.h @@ -28,7 +28,7 @@ #define std ustl -#define IS_FXLIB 1 +#define IS_FXLIB 0 #endif // PARAMETERS_H diff --git a/src/src/circuit.cc b/src/src/circuit.cc index 805dbdf..f2d7683 100644 --- a/src/src/circuit.cc +++ b/src/src/circuit.cc @@ -75,40 +75,26 @@ void createCircuit( int circuitNumber ) addCurve( L_LONG, C_EASY, RIGHT_CURVE, PLAINS ); addCurve( L_LONG, C_EASY, LEFT_CURVE, PLAINS ); addStraightLine( L_MEDIUM, PLAINS ); - addCheckPoint( PLAINS, 60 ); // time around 66s + addCheckPoint( PLAINS, 55 ); // time around 66s addStraightLine( L_MEDIUM, PLAINS ); addHill( L_MEDIUM, H_SMALL, UP_HILL, PLAINS ); addHill( L_MEDIUM, H_SMALL, DOWN_HILL, PLAINS ); addCurve( L_LONG, C_EASY, RIGHT_CURVE, PLAINS ); addStraightLine( L_VERYLONG, PLAINS ); - addCheckPoint( PLAINS, 70 ); // time around 121s = Delta: 55s - - addStraightLine( L_VERYLONG, PLAINS ); - addCurve( L_LONG, C_EASY, LEFT_CURVE, PLAINS ); - addCurve( L_LONG, C_EASY, RIGHT_CURVE, PLAINS ); - addCurve( L_LONG, C_EASY, LEFT_CURVE, PLAINS ); - addStraightLine( L_MEDIUM, PLAINS ); addCheckPoint( PLAINS, 20 ); // time around 188s = Delta: 67s addStraightLine( L_VERYSHORT, PLAINS ); addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, PLAINS ); addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, PLAINS ); addStraightLine( L_VERYSHORT, PLAINS ); - addCheckPoint( PLAINS, 60 ); // time around 204s = Delta: 16s + addCheckPoint( PLAINS, 55 ); // time around 204s = Delta: 16s addStraightLine( L_MEDIUM, PLAINS ); addHill( L_MEDIUM, H_SMALL, UP_HILL, PLAINS ); addHill( L_MEDIUM, H_SMALL, DOWN_HILL, PLAINS ); addCurve( L_LONG, C_EASY, RIGHT_CURVE, PLAINS ); addStraightLine( L_VERYLONG, PLAINS ); - addCheckPoint( PLAINS, 70 ); // time around 259s = Delta: 55s - - addStraightLine( L_VERYLONG, PLAINS ); - addCurve( L_LONG, C_EASY, LEFT_CURVE, PLAINS ); - addCurve( L_LONG, C_EASY, RIGHT_CURVE, PLAINS ); - addCurve( L_LONG, C_EASY, LEFT_CURVE, PLAINS ); - addStraightLine( L_MEDIUM, PLAINS ); addFinishLine( PLAINS, 0 ); // time around 326s = Delta: 67s addStraightLine( L_VERYSHORT, PLAINS ); @@ -144,7 +130,7 @@ void createCircuit( int circuitNumber ) addStraightLine( L_VERYSHORT, DESERT ); addHill( L_MEDIUM, H_BIG, UP_HILL, DESERT ); addStraightLine( L_LONG, DESERT ); - addCheckPoint( DESERT, 30 ); + addCheckPoint( DESERT, 28 ); addStraightLine( L_VERYSHORT, DESERT ); addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, DESERT ); @@ -152,16 +138,7 @@ void createCircuit( int circuitNumber ) addCurvyHill( L_MEDIUM, H_BIG, DOWN_HILL, C_EASY, RIGHT_CURVE, DESERT ); addCurvyHill( L_MEDIUM, H_BIG, DOWN_HILL, C_HARD, RIGHT_CURVE, DESERT ); addStraightLine( L_VERYSHORT, DESERT ); - addCheckPoint( DESERT, 75 ); - - addStraightLine( L_VERYSHORT, DESERT ); - addHill( L_MEDIUM, H_BIG, DOWN_HILL, DESERT ); - addStraightLine( L_VERYLONG, DESERT ); - addStraightLine( L_LONG, DESERT ); - addStraightLine( L_VERYLONG, DESERT ); - addCurve( L_SHORT, C_EASY, LEFT_CURVE, DESERT ); - addStraightLine( L_VERYSHORT, DESERT ); - addCheckPoint( DESERT, 35 ); + addCheckPoint( DESERT, 29 ); addStraightLine( L_VERYSHORT, DESERT ); addCurve( L_SHORT, C_HARD, LEFT_CURVE, DESERT ); @@ -200,18 +177,7 @@ void createCircuit( int circuitNumber ) addStraightLine( L_VERYSHORT, USA ); addHill( L_MEDIUM, H_BIG, DOWN_HILL, USA ); addStraightLine( L_VERYSHORT, USA ); - addCheckPoint( USA, 80 ); - - - addStraightLine( L_VERYLONG, USA ); - addCurve( L_SHORT, C_HARD, LEFT_CURVE, USA ); - addStraightLine( L_VERYLONG, USA ); - addCurve( L_SHORT, C_EASY, LEFT_CURVE, USA ); - addCurve( L_SHORT, C_MEDIUM, RIGHT_CURVE, USA ); - addCurvyHill( L_MEDIUM, H_MEDIUM, UP_HILL, C_HARD, LEFT_CURVE, USA ); - addCurvyHill( L_MEDIUM, H_BIG, DOWN_HILL, C_HARD, RIGHT_CURVE, USA ); - addStraightLine( L_MEDIUM, USA ); - addCheckPoint( USA, 70 ); + addCheckPoint( USA, 62 ); addStraightLine( L_VERYLONG, USA ); @@ -236,17 +202,6 @@ void createCircuit( int circuitNumber ) addStraightLine( L_VERYSHORT, FINLAND ); addCheckPoint( FINLAND, 90 ); - - addStraightLine( L_VERYSHORT, FINLAND ); - addHill( L_MEDIUM, H_BIG, UP_HILL, FINLAND ); - addHill( L_MEDIUM, H_BIG, DOWN_HILL, FINLAND ); - addStraightLine( L_VERYLONG, FINLAND ); - addCurve( L_LONG, C_HARD, LEFT_CURVE, FINLAND ); - addStraightLine( L_VERYLONG, FINLAND ); - addCurve( L_SHORT, C_EASY, LEFT_CURVE, FINLAND ); - addStraightLine( L_VERYSHORT, FINLAND ); - addCheckPoint( FINLAND, 90 ); - addStraightLine( L_VERYSHORT, FINLAND ); addCurve( L_SHORT, C_HARD, LEFT_CURVE, FINLAND ); addCurve( L_SHORT, C_HARD, RIGHT_CURVE, FINLAND ); @@ -257,19 +212,8 @@ void createCircuit( int circuitNumber ) addCurve( L_SHORT, C_HARD, LEFT_CURVE, FINLAND ); addStraightLine( L_VERYLONG, FINLAND ); addCurve( L_SHORT, C_EASY, LEFT_CURVE, FINLAND ); - addCheckPoint( FINLAND, 90 ); - - addStraightLine( L_VERYSHORT, FINLAND ); - addHill( L_MEDIUM, H_BIG, UP_HILL, FINLAND ); - addHill( L_MEDIUM, H_BIG, DOWN_HILL, FINLAND ); - addStraightLine( L_VERYLONG, FINLAND ); - addCurve( L_LONG, C_HARD, LEFT_CURVE, FINLAND ); - addStraightLine( L_VERYLONG, FINLAND ); - addCurve( L_SHORT, C_EASY, LEFT_CURVE, FINLAND ); - addStraightLine( L_VERYSHORT, FINLAND ); addCheckPoint( FINLAND, 95 ); - addStraightLine( L_LONG, FINLAND ); addHill( L_MEDIUM, H_BIG, UP_HILL, FINLAND ); addHill( L_MEDIUM, H_BIG, DOWN_HILL, FINLAND ); @@ -295,14 +239,7 @@ void createCircuit( int circuitNumber ) addCurve( L_MEDIUM, C_MEDIUM, RIGHT_CURVE, AFRICA ); addCurve( L_SHORT, C_MEDIUM, LEFT_CURVE, AFRICA ); addStraightLine( L_VERYSHORT, AFRICA ); - addCheckPoint( AFRICA, 70 ); - - addStraightLine( L_VERYLONG, AFRICA ); - addCurve( L_LONG, C_EASY, LEFT_CURVE, AFRICA ); - addCurve( L_LONG, C_EASY, RIGHT_CURVE, AFRICA ); - addCurve( L_LONG, C_EASY, LEFT_CURVE, AFRICA ); - addStraightLine( L_MEDIUM, AFRICA ); - addCheckPoint( AFRICA, 40 ); + addCheckPoint( AFRICA, 38 ); addStraightLine( L_VERYSHORT, AFRICA ); addCurve( L_SHORT, C_MEDIUM, RIGHT_CURVE, AFRICA ); @@ -312,7 +249,7 @@ void createCircuit( int circuitNumber ) addStraightLine( L_VERYSHORT, AFRICA ); addHill( L_MEDIUM, H_BIG, UP_HILL, AFRICA ); addStraightLine( L_LONG, AFRICA ); - addCheckPoint( AFRICA, 30 ); + addCheckPoint( AFRICA, 25 ); addStraightLine( L_VERYSHORT, AFRICA ); addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, AFRICA ); @@ -320,7 +257,7 @@ void createCircuit( int circuitNumber ) addCurvyHill( L_MEDIUM, H_BIG, DOWN_HILL, C_EASY, RIGHT_CURVE, AFRICA ); addCurvyHill( L_MEDIUM, H_BIG, DOWN_HILL, C_HARD, RIGHT_CURVE, AFRICA ); addStraightLine( L_VERYSHORT, AFRICA ); - addCheckPoint( AFRICA, 85 ); + addCheckPoint( AFRICA, 80 ); addStraightLine( L_VERYSHORT, AFRICA ); addHill( L_MEDIUM, H_BIG, UP_HILL, AFRICA ); @@ -330,140 +267,113 @@ void createCircuit( int circuitNumber ) addStraightLine( L_VERYLONG, AFRICA ); addCurve( L_SHORT, C_EASY, LEFT_CURVE, AFRICA ); addStraightLine( L_VERYSHORT, AFRICA ); - addCheckPoint( AFRICA, 95 ); - - addStraightLine( L_LONG, AFRICA ); - addHill( L_MEDIUM, H_BIG, UP_HILL, AFRICA ); - addHill( L_MEDIUM, H_BIG, DOWN_HILL, AFRICA ); - addStraightLine( L_VERYLONG, AFRICA ); - addCurve( L_SHORT, C_HARD, LEFT_CURVE, AFRICA ); - addStraightLine( L_VERYLONG, AFRICA ); - addCurve( L_SHORT, C_EASY, LEFT_CURVE, AFRICA ); - addStraightLine( L_LONG, AFRICA ); addFinishLine( AFRICA, 0 ); addStraightLine( L_VERYSHORT, AFRICA ); } - if (circuitNumber==5) + else if (circuitNumber==5) { addStraightLine( L_VERYSHORT, PLAINS ); - addStartLine( PLAINS, 30 ); + addStartLine( PLAINS, 43 ); + addStraightLine( L_VERYSHORT, PLAINS ); addCurve( L_SHORT, C_HARD, LEFT_CURVE, PLAINS ); + addStraightLine( L_VERYSHORT, PLAINS ); addCurve( L_SHORT, C_HARD, RIGHT_CURVE, PLAINS ); - addFinishLine( PLAINS, 30 ); + addHill( L_MEDIUM, H_SMALL, UP_HILL, PLAINS ); + addStraightLine( L_SHORT, PLAINS ); + addHill( L_MEDIUM, H_SMALL, DOWN_HILL, PLAINS ); + addCurve( L_LONG, C_EASY, RIGHT_CURVE, PLAINS ); + addStraightLine( L_VERYSHORT, PLAINS ); + + addFinishLine( PLAINS, 43 ); addStraightLine( L_VERYSHORT, PLAINS ); } else if (circuitNumber==6) { - addStartLine( DESERT, 30 ); - addStraightLine( L_VERYSHORT, DESERT ); - addStraightLine( L_VERYSHORT, DESERT ); - addStraightLine( L_VERYSHORT, DESERT ); - addStraightLine( L_VERYSHORT, DESERT ); addStraightLine( L_VERYSHORT, DESERT ); + addStartLine( DESERT, 60 ); + + addStraightLine( L_LONG, DESERT ); addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, DESERT ); - addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, DESERT ); + addStraightLine( L_VERYSHORT, DESERT ); + addCurve( L_SHORT, C_MEDIUM, RIGHT_CURVE, DESERT ); + addCurve( L_SHORT, C_MEDIUM, LEFT_CURVE, DESERT ); + addCurve( L_SHORT, C_MEDIUM, RIGHT_CURVE, DESERT ); + addCurve( L_SHORT, C_MEDIUM, LEFT_CURVE, DESERT ); addStraightLine( L_VERYSHORT, DESERT ); addCurvyHill( L_MEDIUM, H_BIG, DOWN_HILL, C_HARD, RIGHT_CURVE, DESERT ); - addCheckPoint( DESERT, 30 ); addStraightLine( L_VERYSHORT, DESERT ); - addCheckPoint( DESERT, 30 ); - addCurve( L_SHORT, C_HARD, LEFT_CURVE, DESERT ); - addCurve( L_SHORT, C_HARD, RIGHT_CURVE, DESERT ); - addStraightLine( L_LONG, DESERT ); - addHill( L_MEDIUM, H_BIG, UP_HILL, DESERT ); - addHill( L_MEDIUM, H_BIG, DOWN_HILL, DESERT ); - addStraightLine( L_VERYLONG, DESERT ); - addCurve( L_SHORT, C_HARD, LEFT_CURVE, DESERT ); - addStraightLine( L_VERYLONG, DESERT ); - addCurve( L_SHORT, C_EASY, LEFT_CURVE, DESERT ); - addCheckPoint( DESERT, 30 ); - addFinishLine( DESERT, 30 ); + addCurve( L_SHORT, C_MEDIUM, RIGHT_CURVE, DESERT ); + addCurve( L_SHORT, C_MEDIUM, LEFT_CURVE, DESERT ); + addCurve( L_SHORT, C_MEDIUM, RIGHT_CURVE, DESERT ); + addCurve( L_SHORT, C_MEDIUM, LEFT_CURVE, DESERT ); + addStraightLine( L_VERYSHORT, DESERT ); + + addFinishLine( DESERT, 60 ); addStraightLine( L_VERYSHORT, DESERT ); } else if (circuitNumber==7) { - addStartLine( USA, 30 ); - addStraightLine( L_VERYSHORT, USA ); - addStraightLine( L_VERYSHORT, USA ); - addStraightLine( L_VERYSHORT, USA ); addStraightLine( L_VERYSHORT, USA ); + addStartLine( USA, 53 ); + addStraightLine( L_VERYSHORT, USA ); + addCurvyHill( L_MEDIUM, H_MEDIUM, UP_HILL, C_HARD, RIGHT_CURVE, USA ); addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, USA ); - addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, USA ); + addStraightLine( L_SHORT, USA ); + addCurve( L_SHORT, C_MEDIUM, LEFT_CURVE, USA ); + addCurve( L_SHORT, C_MEDIUM, RIGHT_CURVE, USA ); addStraightLine( L_VERYSHORT, USA ); + addCurve( L_SHORT, C_MEDIUM, LEFT_CURVE, USA ); + addCurve( L_SHORT, C_MEDIUM, RIGHT_CURVE, USA ); + addStraightLine( L_SHORT, USA ); + addCurvyHill( L_MEDIUM, H_MEDIUM, DOWN_HILL, C_HARD, LEFT_CURVE, USA ); addCurvyHill( L_MEDIUM, H_BIG, DOWN_HILL, C_HARD, RIGHT_CURVE, USA ); - addCheckPoint( USA, 30 ); - addStraightLine( L_VERYSHORT, USA ); - addCheckPoint( USA, 30 ); - addCurve( L_SHORT, C_HARD, LEFT_CURVE, USA ); - addCurve( L_SHORT, C_HARD, RIGHT_CURVE, USA ); - addStraightLine( L_LONG, USA ); - addHill( L_MEDIUM, H_BIG, UP_HILL, USA ); - addHill( L_MEDIUM, H_BIG, DOWN_HILL, USA ); - addStraightLine( L_VERYLONG, USA ); - addCurve( L_SHORT, C_HARD, LEFT_CURVE, USA ); - addStraightLine( L_VERYLONG, USA ); - addCurve( L_SHORT, C_EASY, LEFT_CURVE, USA ); - addCheckPoint( USA, 30 ); - addFinishLine( USA, 30 ); + addStraightLine( L_SHORT, USA ); + + addFinishLine( USA, 53 ); addStraightLine( L_VERYSHORT, USA ); } else if (circuitNumber==8) { - addStartLine( FINLAND, 30 ); addStraightLine( L_VERYSHORT, FINLAND ); + addStartLine( FINLAND, 68 ); + addStraightLine( L_VERYSHORT, FINLAND ); - addStraightLine( L_VERYSHORT, FINLAND ); - addStraightLine( L_VERYSHORT, FINLAND ); - addStraightLine( L_VERYSHORT, FINLAND ); - addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, FINLAND ); - addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, FINLAND ); + addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_EASY, LEFT_CURVE, FINLAND ); + addCurvyHill( L_MEDIUM, H_SMALL, UP_HILL, C_MEDIUM, LEFT_CURVE, FINLAND ); addStraightLine( L_VERYSHORT, FINLAND ); addCurvyHill( L_MEDIUM, H_BIG, DOWN_HILL, C_HARD, RIGHT_CURVE, FINLAND ); - addCheckPoint( FINLAND, 30 ); + addCurvyHill( L_MEDIUM, H_SMALL, DOWN_HILL, C_MEDIUM, LEFT_CURVE, FINLAND ); + addCurve( L_SHORT, C_MEDIUM, LEFT_CURVE, FINLAND ); + addCurve( L_SHORT, C_MEDIUM, RIGHT_CURVE, FINLAND ); addStraightLine( L_VERYSHORT, FINLAND ); - addCheckPoint( FINLAND, 30 ); - addCurve( L_SHORT, C_HARD, LEFT_CURVE, FINLAND ); - addCurve( L_SHORT, C_HARD, RIGHT_CURVE, FINLAND ); - addStraightLine( L_LONG, FINLAND ); - addHill( L_MEDIUM, H_BIG, UP_HILL, FINLAND ); - addHill( L_MEDIUM, H_BIG, DOWN_HILL, FINLAND ); - addStraightLine( L_VERYLONG, FINLAND ); - addCurve( L_SHORT, C_HARD, LEFT_CURVE, FINLAND ); - addStraightLine( L_VERYLONG, FINLAND ); - addCurve( L_SHORT, C_EASY, LEFT_CURVE, FINLAND ); - addCheckPoint( FINLAND, 30 ); - addFinishLine( FINLAND, 30 ); + addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_EASY, LEFT_CURVE, FINLAND ); + addCurvyHill( L_MEDIUM, H_SMALL, UP_HILL, C_MEDIUM, LEFT_CURVE, FINLAND ); + addStraightLine( L_VERYSHORT, FINLAND ); + addCurvyHill( L_MEDIUM, H_BIG, DOWN_HILL, C_HARD, RIGHT_CURVE, FINLAND ); + addCurvyHill( L_MEDIUM, H_SMALL, DOWN_HILL, C_MEDIUM, LEFT_CURVE, FINLAND ); + addStraightLine( L_VERYSHORT, FINLAND ); + + addFinishLine( FINLAND, 68 ); addStraightLine( L_VERYSHORT, FINLAND ); } else if (circuitNumber==9) { - addStartLine( AFRICA, 30 ); addStraightLine( L_VERYSHORT, AFRICA ); + addStartLine( AFRICA, 84 ); + addStraightLine( L_VERYSHORT, AFRICA ); - addStraightLine( L_VERYSHORT, AFRICA ); - addStraightLine( L_VERYSHORT, AFRICA ); - addStraightLine( L_VERYSHORT, AFRICA ); - addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, AFRICA ); - addCurvyHill( L_MEDIUM, H_BIG, UP_HILL, C_HARD, LEFT_CURVE, AFRICA ); - addStraightLine( L_VERYSHORT, AFRICA ); - addCurvyHill( L_MEDIUM, H_BIG, DOWN_HILL, C_HARD, RIGHT_CURVE, AFRICA ); - addCheckPoint( AFRICA, 30 ); - addStraightLine( L_VERYSHORT, AFRICA ); - addCheckPoint( AFRICA, 30 ); - addCurve( L_SHORT, C_HARD, LEFT_CURVE, AFRICA ); - addCurve( L_SHORT, C_HARD, RIGHT_CURVE, AFRICA ); - addStraightLine( L_LONG, AFRICA ); addHill( L_MEDIUM, H_BIG, UP_HILL, AFRICA ); addHill( L_MEDIUM, H_BIG, DOWN_HILL, AFRICA ); addStraightLine( L_VERYLONG, AFRICA ); - addCurve( L_SHORT, C_HARD, LEFT_CURVE, AFRICA ); + addCurve( L_LONG, C_HARD, LEFT_CURVE, AFRICA ); addStraightLine( L_VERYLONG, AFRICA ); addCurve( L_SHORT, C_EASY, LEFT_CURVE, AFRICA ); - addCheckPoint( AFRICA, 30 ); - addFinishLine( AFRICA, 30 ); + addStraightLine( L_VERYSHORT, AFRICA ); + + addFinishLine( AFRICA, 84 ); addStraightLine( L_VERYSHORT, AFRICA ); } }; diff --git a/src/src/menus.cc b/src/src/menus.cc index 14ecd8a..6bd417a 100644 --- a/src/src/menus.cc +++ b/src/src/menus.cc @@ -712,28 +712,28 @@ void drawGameOptions( void ) if (CarsNumb==0) + { + dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <50>" ); + if (GameOptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <50>" ); + else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <50>" ); + } + else if (CarsNumb==1) { dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <100>" ); if (GameOptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <100>" ); else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <100>" ); } - else if (CarsNumb==1) + else if (CarsNumb==2) { dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <200>" ); if (GameOptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <200>" ); else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <200>" ); } - else if (CarsNumb==2) - { - dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <500>" ); - if (GameOptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <500>" ); - else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <500>" ); - } else if (CarsNumb==3) { - dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <1000>" ); - if (GameOptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <1000>" ); - else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <1000>" ); + dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <300>" ); + if (GameOptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <300>" ); + else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <300>" ); } dprint_opt(94, 82, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "PLAYER" ); @@ -998,7 +998,7 @@ void getInputPauseQuit( void ) -int drawMenuCircuitDetails( int circuit, int mode ) +int drawMenuCircuitDetails( int circuit ) { uint16_t pulse=0; doneMenuDetailsCircuit = false; @@ -1185,15 +1185,18 @@ int drawMenuBestTime( int circuit ) for( int k=0; k<5; k++) { - if (HallOfFame[circuit][k].bestTime != 9999) + if (HallOfFame[circuit][k].bestTime != 0x0FFFFFFF) { - dprint_opt(12, 40+k*30, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%d %c%c%c - %D sec", k+1, HallOfFame[circuit][k].playerName[0],HallOfFame[circuit][k].playerName[1],HallOfFame[circuit][k].playerName[2], HallOfFame[circuit][k].bestTime ); - dprint_opt(12, 38+k*30, C_RGB(255, 255, 255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%d %c%c%c - %D sec", k+1, HallOfFame[circuit][k].playerName[0],HallOfFame[circuit][k].playerName[1],HallOfFame[circuit][k].playerName[2], HallOfFame[circuit][k].bestTime ); + uint32_t temp1 = HallOfFame[circuit][k].bestTime/1000000/60; + uint32_t temp2 = HallOfFame[circuit][k].bestTime/1000000 - temp1*60; + uint32_t temp3 = (HallOfFame[circuit][k].bestTime - temp1*60*1000000 - temp2*1000000)/1000; + dprint_opt(12, 40+k*30, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%d %c%c%c - %D:%D,%D", k+1, HallOfFame[circuit][k].playerName[0],HallOfFame[circuit][k].playerName[1],HallOfFame[circuit][k].playerName[2], temp1, temp2, temp3 ); + dprint_opt(12, 38+k*30, C_RGB(255, 255, 255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%d %c%c%c - %D:%D,%D", k+1, HallOfFame[circuit][k].playerName[0],HallOfFame[circuit][k].playerName[1],HallOfFame[circuit][k].playerName[2], temp1, temp2, temp3 ); } else { - dprint_opt(12, 40+k*30, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%d %c%c%c - ... sec", k+1, HallOfFame[circuit][k].playerName[0],HallOfFame[circuit][k].playerName[1],HallOfFame[circuit][k].playerName[2], HallOfFame[circuit][k].bestTime ); - dprint_opt(12, 38+k*30, C_RGB(255, 255, 255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%d %c%c%c - ... sec", k+1, HallOfFame[circuit][k].playerName[0],HallOfFame[circuit][k].playerName[1],HallOfFame[circuit][k].playerName[2], HallOfFame[circuit][k].bestTime ); + dprint_opt(12, 40+k*30, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%d ... - ...", k+1 ); + dprint_opt(12, 38+k*30, C_RGB(255, 255, 255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%d ... - ...", k+1 ); } } diff --git a/src/src/saves.cc b/src/src/saves.cc index 0d580ad..e4ee539 100644 --- a/src/src/saves.cc +++ b/src/src/saves.cc @@ -17,7 +17,6 @@ void is_save_existing( void ) if (file==NULL) { - fclose( file ); saveexist = false; } else