From c9a4e38a219d765b4f0e90a3cf28441fb7cd6b98 Mon Sep 17 00:00:00 2001 From: Tituya Date: Mon, 22 Mar 2021 22:50:42 +0100 Subject: [PATCH] fix define glitch, back to subimages --- CMakeLists.txt | 43 +++-------- assets-cg/img/appear.png | Bin 339 -> 940 bytes assets-cg/img/appearblock.png | Bin 636 -> 0 bytes assets-cg/img/chrono2.png | Bin 607 -> 883 bytes assets-cg/img/chrono2appear.png | Bin 348 -> 0 bytes assets-cg/img/fxconv-metadata.txt | 23 ++---- assets-cg/img/key1.png | Bin 266 -> 812 bytes assets-cg/img/key2.png | Bin 258 -> 982 bytes assets-cg/img/key2block.png | Bin 582 -> 0 bytes assets-cg/img/key2blockvoid.png | Bin 259 -> 0 bytes assets-cg/img/keyblock.png | Bin 590 -> 0 bytes assets-cg/img/{solid_0.png => solid.png} | Bin compile_levels.py | 4 - editor/levels/16.lvl | 2 +- update_levels.sh => generate_define.sh | 1 - project.cfg | 90 ----------------------- src/drawlevel.c | 31 ++++---- src/save.c | 4 +- time.py | 33 +++++---- times.lvl | 2 +- 20 files changed, 53 insertions(+), 180 deletions(-) delete mode 100755 assets-cg/img/appearblock.png delete mode 100755 assets-cg/img/chrono2appear.png delete mode 100755 assets-cg/img/key2block.png delete mode 100755 assets-cg/img/key2blockvoid.png delete mode 100755 assets-cg/img/keyblock.png rename assets-cg/img/{solid_0.png => solid.png} (100%) rename update_levels.sh => generate_define.sh (83%) delete mode 100755 project.cfg diff --git a/CMakeLists.txt b/CMakeLists.txt index 50475c3..5c3896e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,38 +11,24 @@ find_package(Gint 2.1 REQUIRED) include_directories(include) +add_custom_command( + OUTPUT "${CMAKE_CURRENT_LIST_DIR}/src/setlevel.c" + COMMENT "Generate src/setlevel.c" + COMMAND python3 compile_levels.py + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + DEPENDS compile_levels.py + ) + add_custom_command( OUTPUT "${CMAKE_CURRENT_LIST_DIR}/src/times.c" "${CMAKE_CURRENT_LIST_DIR}/include/define.h" COMMENT "Generate src/times.c & include/define.h" + COMMAND sh generate_define.sh COMMAND python3 time.py WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} - DEPENDS time.py times.lvl) - -add_custom_command( - OUTPUT "${CMAKE_CURRENT_LIST_DIR}/src/setlevel.c" - COMMENT "Generate src/setlevel.c" - COMMAND sh update_levels.sh - WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} - DEPENDS update_levels.sh compile_levels.py - editor/levels/0.lvl - editor/levels/1.lvl - editor/levels/2.lvl - editor/levels/3.lvl - editor/levels/4.lvl - editor/levels/5.lvl - editor/levels/6.lvl - editor/levels/7.lvl - editor/levels/8.lvl - editor/levels/9.lvl - editor/levels/10.lvl - editor/levels/11.lvl - editor/levels/12.lvl - editor/levels/13.lvl - editor/levels/14.lvl - editor/levels/15.lvl - editor/levels/16.lvl) + DEPENDS time.py times.lvl generate_define.sh + ) set(SOURCES src/collide.c @@ -57,12 +43,10 @@ set(ASSETS) set(ASSETS_fx) set(ASSETS_cg assets-cg/img/appear.png - assets-cg/img/appearblock.png assets-cg/img/blackout.png assets-cg/img/chock.png assets-cg/img/chrono1.png assets-cg/img/chrono2.png - assets-cg/img/chrono2appear.png assets-cg/img/coin.png assets-cg/img/damaged.png assets-cg/img/dead.png @@ -71,14 +55,11 @@ set(ASSETS_cg assets-cg/img/ice.png assets-cg/img/key1.png assets-cg/img/key2.png - assets-cg/img/key2block.png - assets-cg/img/key2blockvoid.png - assets-cg/img/keyblock.png assets-cg/img/medals.png assets-cg/img/menu.png assets-cg/img/new.png assets-cg/img/player.png - assets-cg/img/solid_0.png + assets-cg/img/solid.png assets-cg/img/speedrun.png assets-cg/img/switch.png) diff --git a/assets-cg/img/appear.png b/assets-cg/img/appear.png index 307adfd7b0c66da3669a2f6188217f47c886457e..0f1009bbb32e1fd3904ed91c5899b82306060e23 100755 GIT binary patch literal 940 zcmV;d15^BoP)L)o zL{a_#OBBJPL=<#Xv?#SfLc%@B3Wb%zJqA*(1QLiUBq1XBW4&wd&dj@)Vm9$dC~R`1 z(ahC*dUJH%x%bGDb{$}rdDbn;vR2L*oBvU-t=9E-U;WBGTabsJ_uL8x2Mo+1`SCjn z1c9JH0CfC}zlE2;idO!`XG4m-q}qqfgwmbLAxAhAV*=%RUvNP z*!JbS*Zvogzk!{H#^`}kMn{4m6HvD5b#pjSPy~O?Xm}t!b;5)YGQc68Jn)&kZ$G)u z^^I$?b#wc<{LkvS=~=FP{niP>PWv6$?|}^*>p{v54MH*lgdjqHM>u@o#2Jvj!x8A5 zAQx3&>*ls!-#Fg?`zQN8Jc6Tjf200M$8Ekh$9G7V58cY%?4ymK{sz4%Y5th z{J9i3Sr2xVUJt4Pq+OxfarPf2_8ukNjG`(rx4JWW(76nqHz1z|!B2bOqL^hK@jhBY zJ`{%2M(TkLg_H?#5>&u3hGp%A>Q9IYsxZ|C4R(Cs>RP-|H>_Kf9HCV}@idTS5f#B7 zN5mDCKpH5;0nkj)a*}~Qf$$iTotXnGTKT%2pTx3Oe&?eBsc_0tD5Enf3j}aA>@a{S zp$$P5hC&dS?7(m!OwDrI1Lwh650p4Tp$v{0Fw96tLexleGSZp~grKNE)`mC%g+ROI zsDkEtk>9_FPOJ?W4r)0=ThNw}5}1KI1QEhWXy)Vl2Q&hDW)Q7gl(X5eqLsgYyIx;i zi}KCgcc1Uyv?!{3J~0E?5%eo?gP28hJpU(Nue0Fb5AZ!9PC0qo#w_&ZvS3NO{^iGS zlA4L?P#N^08V6EP&>l#$CLjh;gwS#F8AFnSgKm9zF%P_e*@P5IETB;xr=J3P31SmM z3$hNxjw1@A`%3v6AVQq0X8B>Y>+h{C$j>XkcrhpeSp4>?{P;oFH3f>@lEv?@%1^ht zo~ZA3aigA?m#PkjmkKn8R!gXgy02rVSZ)MY(yk*2+5itux&l;SG4U_S7?iG=1=lzL O00006 literal 339 zcmV-Z0j&OsP)WNa`$;T_sM;)46R>RATHXeL%!&HelQBMDw8mm95EzLIccG-h94-WQn!CIu$D6(%O;#|6e zq8=xTh7YH|{h957D?8 diff --git a/assets-cg/img/appearblock.png b/assets-cg/img/appearblock.png deleted file mode 100755 index 4c8dffe29bd3c31401f6e3bb828762e7f20f689d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)fBpKB1du>L%O&Dg7X#OlalmeItIHt2Om`FY1y*T93zRTo zoYWZ8Iqidj5q;1MieQ>V|K5i3^w@^^(V4nLMcCGu$AwU)crkD@co+1|Y5ygDC(3qV zZRW831?&N|N$Ori24+cQ5DAfR{A@h`4pWHvnAFEba`88CIxTv;jkpXm`OTQK(tmH5 zAR2VD*!%!70!@_NZNStuI2kR1X{Z!n_*97q_J50^>v4BthSM&I^RiIug$I=5lTlwq zB=BmqY@Cjb$iU6H&J)9`hcxso?te_&z~&@hMKOU_=+DOa-Awxic@?n|-94B@WMi6z zOU!@XPHV8+f^~@T3fCv6Tdgn|`MAR5n4Eerri0K}(K?BQ@~fp!)>p1FQvQBIyOMB+-C#N6kuqFS<955UnL9@J(U{*MQ9^ z%)ssn%m?tjkf3b9*HCNH8bmBh^NScdQM6dw%FW7Vu>ByWQ*xLg6Z+L^K{VJtBrbUQ z1M(}Bx6rNQ_7hIQM2rp6vAUqOmP^C4*dG_&F7SRC>i3}PkWlht!@fAHYcf=EDTxeB zU~d<6yM3fXK*0n-5Ef#ZSj1`;dEKafWD6ai!jT)%l<_v{xC7mQmAzz6q!hrYm>&c0CFZYfuE0#xHUgt+9#m}&s=a)%M4iNrveuM<@?FHHR<+XuX@i4>Z4j9 z6S$Gg^W(t*s>*w^NE%vj(|{rk5#WAUWpy#@X`(0VTGtEyL|^`jo*tv4BlN`~`g|YF zVaoH@x99Jt$JWlBM*n}YQQXIhCV$v}u8GZj?yl8YTU#TFA{K7nMvURzPd>Fiv4y9J zwJU4j*#Nx=G)<)26WyzHv$S&d_5y5eZ4m?kK@bpzA;bNBT-Rmz@F9M)i7YPzR^KFG zuFAYlv!1MLSpzk3!M0jvTMu9|nGi)0VHmQrv%~K0EWzYooZfIa1YmV_6_J`N0aJ8=EZI7k z22>Z_L#5lRycm$2MbGnSG#Xdh`o53jI2PNnc5XDa3ak`N{F@lZ_BTMQ)uP#KvbniQ z7>4xweZXe!`#!B!i-zY}J2#(<7XdF8U_JAC^@FVeajdh`W9apIj7B5c?KYiGr?j1& zou$+1&~CR`SX^XuRE=f#kw3l1%OLWCJ4bsiV@36at!O8$z|PLjn46npdwZKK%P_{! zXf*JBAFw;X@$6KT&;Nc)A6$F+zn0QiQ8|V5RkaJQePF-!`+ed#E_F9HHUP_%>mN>m*3&Vg~Kl!M~wvw@iVA zbZz$z{SVqf2PsImbh6HZAfiLC0p+2$@8$k*xG#wr1TWm-oO{mq`#tBLBitP^RN!j} zHH0}t55WTgVgw-o2~vSjATy9Ts2p^tz&CdR5FFfp!rGaAfS^I@L=XcILHc?H;P1d$ z@D|=rCTjo-zq2WBkt2S6Bl^2_XP85D@X22iW8{(OCHXqZSEjiw5as6t@HcX(VY9bh z!k5>uwYRcwZ$KBIqfa$QmzcY|DWKo)Q&kl^+uH~!+1h&rscZyIyaVy$Bhmj(3LZR# zqoX6rvZO3athG4j&|33ycNf!Y@nU};faxSDkc8CH=o9mNKBuZGthJn;o^p0}Mp>4; zxw^tR2f)|M)lbM6ldgx);NakZ5CY!&WiUWp*Er{RcYV#ZF zWjr1)nT;_NMM0M5K$=LQK?;?O+Zz~-Mogzu+U+)-PG`xyv9Up?)1lpNv(xJ_oixcB zw9HaRm0tzVW;43oE+;1^gbs`&`g66m7c$4Mh#H}!*T8Zt zq(g|FPbEDh@#34uKb-3QVItTG<%3Up3M$YE23$R1W}|v1#KY&sue@XCgzQde$&zPt uwi5d4lCOrXy02RUTf=U>ue~+Q3H<H|Neh z?|VM(85NeWB=G2svvcwDd$DfPQ>cAT^@LtJeic9X2Ec9aJpjvRrtqmSQ&<6Du{?_- zipW@|l!D}Jziw7Jd2Vl z3&A$7n?sZ7NNzvXR^M87&OeCR2j^{CgnF@Y#lj(!`HfG7h&}EU)(K0nI5dgHCE^cv z3Tr%lcb2?6gl_=$xVg2KE`hbLZLGn4l^ZzKZK(3l)P9vMKHKD5*V8lJ;Cn-~+4B?myB14PCL1SQhu zEQ#FyxE~un%y-;RE7uMl8Tkc3VB%kbycq%dv1SVZLj{r3F$q6g`PJk-&%S*$!0NMy z08EUwm!p=QMi0C!PuVIvgyNIKVS23Go~INR%GZf-$ck`n^96dg?Hbl^L6Y)X&10Lj zeM+gn^$Zw7Lh-TYC)0(mgr$_LR4G4K;^(=-GEX-y5q8&DZ^|zACczG((B>F9xzJ3U z?xO)1Io0^9%`x&E=q{l%EPzs~NthNR7(k3P$N@dud^#+_NR2ZC7_$G*{G;;>0C1{+ zr9zdRX2K^eYmfRUuCk4;-HiRP`Y~=wH8@WzIe-J;%2D75(5Q7noEDNmb39%o--aHT z81BD?ZiG67lNewmqoBJayZ*f@gh^|vnh@E2-R~@?Ry%Wn^mdKI;Vst0F9Jo@&Et; diff --git a/assets-cg/img/key2.png b/assets-cg/img/key2.png index 05150e2ae13d985e7e2cd4bd2783239d92a02629..d07656e18bd60bfd8ec89abe64ec5ec24947cb89 100755 GIT binary patch literal 982 zcmV;{11bE8P)BN^k*bITBEDJ`>JceIBBeAjYm(p}yKmocc-ggMJ4qEY z((38`n)jWV@64>K?d}OcywZd3Fwvurpf@=XElMu)2x8PLZwCCt&nnfIe(pV|1peu&oyKuXz`8RR& zhk6=($Aho6Tkz-k&4)m|-h_@oePqOZ2Go_h@#sJj1qf72nnmO24m`M9Wj|VRq*ik` z(nL6HpebFVHs0Krz0sLwS8#3m0JYsciH=eR0|OC6Dn)C<>J9JtgCPV;6DUmzEG=64 z4vg{ZwRVemTwmKK_6LU^=>3Tx<@@7z=F0&*HF`!v2E9~60{w*%b*y+g0URfq*Iw~^ z1M4PLsd#fkYP)+yg<`!~fX?MCI{!}AlW{DUNgWT3gTZ0Qa($v_i@ur#JUJ$v$C zIB|c55yh+{p7-^UfA{zI%Z)~(m}{5KVZoYG&UwH`mcrA|PDimnw*IRaN5y!rzvu?M z=w9eM#q9E~0M%$ThLelemyXCgKR!cc4lx=NOi;%9V>$3%=GUtNCklRe`>t=6v!$p? zV-c7-tG9L@U)4A+6*&VZ#$m@XhvoeLy`A2+a^FhxD`D`+n>WG{<)2qbT%a*?=Xy zT7SFv;men%BkpDTl};?0e5>dbU>kS5D~ z{8dXHeAHC$e$kR7^%?l}r}xx*U;ZLaG~JVg?{?l)Tc7_Ts_2z9dH?_b07*qoM6N<$ Ef|K0TlNhg*TBy znde{@LkOdq!_@SY1R!vn)_!x&cd11iCUS<_`~0(=B;h8(@y@R4QA)}CJ>^>uF5|x{ zU{Uv5zG>o-clY<7Z(JiW-}6NxQ}F2%4I)>4UhLx7!823sUc;~J|0Q23GImcq!BNF1 z_sN2(e}_Q>V`9&i=2?6f7-zk0(K+&v>(I<@BL;?}^WE#*pFcVQ^aO*atDnm{r-UW| D)5m2d diff --git a/assets-cg/img/key2block.png b/assets-cg/img/key2block.png deleted file mode 100755 index f0b02fdb6e6f9b88342ff3c24ba85fd0e4d1c941..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fN(P)PrG5QV?4?jCyv+Zlru;)Dep0EvB$#38r?hhWDE*ph9; zh9dw93bBW#oktWl}-Y53Eu^ zZF(Y}>qaTPFtxyPj(C)}3wU(|B}&r^0M5u0>FZ?qz5?~aL#JFl0}XbR;StX{SXy%3$VtP8L2S#CMw{)2)s!)&hP_%E_$EFu%E*}-Z*qj%D<4Slg!;X9F zoDt4OaJDo3y2&`wo|2GlG}htmmQ;G0e$Sq9-3qsHc#(zASXzkW5BFlcA9-8~D4x|uNk%9PSW(_gA?7mv0tJcL Usq9U~^Z)<=07*qoM6N<$g6lg69{>OV diff --git a/assets-cg/img/key2blockvoid.png b/assets-cg/img/key2blockvoid.png deleted file mode 100755 index 2045aa5d830a36a6478fd18b51426267a679de6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfkxy0%l%_A4jWI&7BzDuJ=A=|s{NIrj*EL^piSe{2ZAaQ9iI6QbyZw8c$;J^ zhAD|tOX3*zadc|whu;7D;?I}U$v(H%aH`D>$@Ja!>+h##q0r;s zm~JqwN=gpkR4(=5F$nY6%dmWhv`~#Qv(R5g=8Yi_^vf>Heec6_$42{d{1L17te55; zoAuP3A*^{=El6trG$)U9kUw7y+@Hc+-{MPdR(s7_K7(8A5T-G@y GGywqXab&;% diff --git a/assets-cg/img/keyblock.png b/assets-cg/img/keyblock.png deleted file mode 100755 index 61b28d3af70238314b450cbb33057b04a72092d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmV-U0Z)rZ6z-3 zMpFoG+(}mwaZ|czDczJ((H26it@qwJce)r8Z>02v;hZ^h-t#pl@m&H#^!Yy)HlzIB z9+{HeGU>8Bx5H(!?_xkN_?|8tSpi6o0I_s7rbm9;JeTXp9whL^q$gc zZn1s1K;7LT)jxQC!~lUQgq#3aX#kB;e@cb`6`29RxCbZ}D+N%6J{Yt{s(BoUPT;6V z_T5c_1Qd^@20)!jLm1M^=*d+@14JGH5IBti05VPSl2Q{x zYq>WX+)cb#-e;$`N`av&68#j9mz1EVw3=V>-4dg;7as>vE;jerK7N9~vKu79>MS*R zJWebx)ilgKyuMnUrOss3MFj;!Wh|@R7%$&p007^AhkO6@K89&DfTQ~GRqgBp0 zyZ!|LC%5o=IqG$osT`yX%RNA0VH0DWLDW%^>d0X@u<{I;E*t6;S1nk{X9#jmrYUca zpRu^S|L?Q_w0ZsRJ}HO51h9ma+d1ZZ3MVPScsd_i0MuNSJQu_%mw6v?P!x_t4I-XY cQ~1*6FOE{hD&5uPRsaA107*qoM6N<$f-2+segFUf diff --git a/assets-cg/img/solid_0.png b/assets-cg/img/solid.png similarity index 100% rename from assets-cg/img/solid_0.png rename to assets-cg/img/solid.png diff --git a/compile_levels.py b/compile_levels.py index 2b3306f..b38276c 100755 --- a/compile_levels.py +++ b/compile_levels.py @@ -47,7 +47,3 @@ while 1: save.write("}}\nvoid del_level(char level[])\n{memcpy(level,\"\ 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",350);}") - -#copy the textures from editor -import shutil -shutil.copytree("editor/img","assets-cg/img", dirs_exist_ok=True) diff --git a/editor/levels/16.lvl b/editor/levels/16.lvl index ae5c296..a89baad 100644 --- a/editor/levels/16.lvl +++ b/editor/levels/16.lvl @@ -1,4 +1,4 @@ 11111dddd100d110111111331000000000000d1d0000dd10s0111d00000000K1d10000d11111ddddd11ddhh1dddd000dddd11100Sh00dd00000dd00000001i0000000dd000000d0000S001i01100d0dd00d000dd0000001i0d00Sd0dd00dd10ddhh00l01i0ddddd0dd00ddi0d00000001iBBBdd0011aaddi0d0S00d0011000dd000300ddi0d0000d00110mmdd000d00ddi0dd00dd0011emtdddddd00ddi0ddddddkk1111111111100111Bdddd110016 -15 +14 7 \ No newline at end of file diff --git a/update_levels.sh b/generate_define.sh similarity index 83% rename from update_levels.sh rename to generate_define.sh index a4f6fa0..3aaa4fb 100755 --- a/update_levels.sh +++ b/generate_define.sh @@ -2,4 +2,3 @@ echo "#define LEVEL_MAX $(ls editor/levels/[^0]*.lvl | wc -l) #define PLAYER_HEIGHT 11 #define FPS 70" > include/define.h -python3 compile_levels.py diff --git a/project.cfg b/project.cfg deleted file mode 100755 index 930f5ad..0000000 --- a/project.cfg +++ /dev/null @@ -1,90 +0,0 @@ -#--- -# fxSDK project configuration file for cube -#--- - -# Project name, should be at most 8 bytes long. -# (You can also specify NAME_G1A or NAME_G3A to override individually.) -NAME := AST3 - -# Internal name, should be '@' followed by at most 7 uppercase letters. -# WARNING: If this convention is not followed, the add-in might not appear in -# the main menu of the calculator! -INTERNAL := ASTTT - -# Output file name. The default is to take , replace spaces with dashes, -# and add .g1a (or .g3a). You can specify a different folder if you want. -TARGET_FX := -TARGET_CG := - -# fx-9860G icon location -ICON_FX = assets-fx/icon-fx.png -# fx-CG 50 icon locations -ICON_CG_UNS = assets-cg/icon-cg-uns.png -ICON_CG_SEL = assets-cg/icon-cg-sel.png - -#--- -# Toolchain selection -#--- - -# Toolchain for fx9860g. Please see also CFLAGS_FX below. -TOOLCHAIN_FX := sh-elf - -# Toolchain for fxcg50. Please see also CFLAGS_CG below. -TOOLCHAIN_CG := sh-elf - -#--- -# Compiler flags -#--- - -# Base compiler flags for the fxSDK, you usually want to keep these. -CFLAGS := -mb -ffreestanding -nostdlib -fstrict-volatile-bitfields - -# Platform-specific compiler flags. -# <> If you are using sh3eb-elf, use -m3. (You can do this on both FX and CG.) -# <> If you are using sh4eb-elf, use -m4-nofpu. (Not ideal on FX but works.) -# <> If you are using sh4eb-nofpu-elf, then your compiler will likely use the -# FPU and cause problems on the calculator. Consider another configuration. -# <> If you are using an sh-elf with several targets, specify whichever you -# support. I recommend -m3 on FX and -m4-nofpu on CG. -# Please see also TOOLCHAIN_FX and TOOLCHAIN_CG above. -CFLAGS_FX := -D FX9860G -m3 -CFLAGS_CG := -D FXCG50 -m4-nofpu - -# Additional compiler flags, change to your own taste! -CFLAGS += -Wall -Wextra -Os - -# Include paths. Add one -I option for each folder from which you want to -# be able to include files with #include<>. -INCLUDE := -I include - -# Libraries. Add one -l option for each library you are using, and also -# suitable -L options if you have library files in custom folders. To use -# fxlib, add libfx.a to the project directory and use "-L . -lfx". -LIBS_FX := -LIBS_CG := - -# Base linker flags for the fxSDK, you usually want to keep these. -LDFLAGS_FX := -T fx9860g.ld -lgint-fx $(LIBS_FX) -lgint-fx -lgcc -LDFLAGS_CG := -T fxcg50.ld -lgint-cg $(LIBS_CG) -lgint-cg -lgcc - -# Additional linker flags, if you need any. -LDFLAGS := - -# Additional platform-specific linker flags. -LDFLAGS_FX += -Wl,-Map=build-fx/map -LDFLAGS_CG += -Wl,-Map=build-cg/map - -#--- -# File conversion parameters -#--- - -# Here you can add fxconv options for each converted file, individually. -# The syntax is ".". For example, to specify the parameters for a -# font named "hexa.png", you might write: -# -# FONT.hexa.png = charset:print grid.size:3x5 grid.padding:1 - -IMG.speedrun.png = profile:p4 -IMG.menu.png = profile:p4 -IMG.endscreen.png = profile:p4 -IMG.new.png = profile:p4 diff --git a/src/drawlevel.c b/src/drawlevel.c index 5a26ea3..08f63c5 100755 --- a/src/drawlevel.c +++ b/src/drawlevel.c @@ -6,26 +6,21 @@ #define VISIBLE_RECT 35 -extern bopti_image_t img_solid_0; //solid block +extern bopti_image_t img_solid; //solid block extern bopti_image_t img_coin; //facultative coin extern bopti_image_t img_dead; //dead block extern bopti_image_t img_player; //player extern bopti_image_t img_end; //end of level extern bopti_image_t img_key1; //key 1 -extern bopti_image_t img_keyblock; //block link to the key1 extern bopti_image_t img_blackout; //blackout extern bopti_image_t img_chrono1; //chronoblock extern bopti_image_t img_chrono2; //chronoblock 2 extern bopti_image_t img_key2; //key 2 -extern bopti_image_t img_key2block; //block link to the key 2 -extern bopti_image_t img_key2blockvoid; //block link to the key 2 extern bopti_image_t img_damaged; //damaged block extern bopti_image_t img_chock; //chock block extern bopti_image_t img_switch; //switch block extern bopti_image_t img_ice; //switch block extern bopti_image_t img_appear; //appear block -extern bopti_image_t img_appearblock; //appear block -extern bopti_image_t img_chrono2appear; //appear block extern bopti_image_t img_endscreen; extern bopti_image_t img_new; @@ -46,7 +41,7 @@ void draw_level(char level[]) switch(level[i]) { case '1': //solid block - dimage(x,y,&img_solid_0); + dimage(x,y,&img_solid); break; case 't': //coin (treasure) dimage(x,y,&img_coin); @@ -58,25 +53,25 @@ void draw_level(char level[]) dimage(x,y,&img_end); break; case '3': //block link to the key1 - dimage(x,y,&img_keyblock); + dsubimage(x,y,&img_key1,0,0,16,16,DIMAGE_NONE); break; case 'k': //key1 - dimage(x,y,&img_key1); + dsubimage(x,y,&img_key1,16,0,16,16,DIMAGE_NONE); break; - case 'a': //block link to the key2 when it's not powered on - dimage(x,y,&img_key2blockvoid); + case 'a': //block link to the key2 when it's not on + dsubimage(x,y,&img_key2,0,0,16,16,DIMAGE_NONE); break; case '4': //block link to the key2 - dimage(x,y,&img_key2block); + dsubimage(x,y,&img_key2,16,0,16,16,DIMAGE_NONE); break; case 'K': //key2 - dimage(x,y,&img_key2); + dsubimage(x,y,&img_key2,32,0,16,16,DIMAGE_NONE); break; case 'c': //chrono blocks dimage(x,y,&img_chrono1); break; case 'C': //chrono blocks - dimage(x,y,&img_chrono2); + dsubimage(x,y,&img_chrono2,16,0,16,16,DIMAGE_NONE); break; case 'b': //blackout blocks dimage(x,y,&img_blackout); @@ -94,16 +89,16 @@ void draw_level(char level[]) dimage(x,y,&img_switch); break; case 'h': //void appear blocks - dimage(x,y,&img_appear); + dsubimage(x,y,&img_appear,0,0,16,16,DIMAGE_NONE); break; case 'H': //appear blocks - dimage(x,y,&img_appearblock); + dsubimage(x,y,&img_appear,16,0,16,16,DIMAGE_NONE); break; case 'y': //appear blocks - dimage(x,y,&img_appear); + dsubimage(x,y,&img_appear,0,0,16,16,DIMAGE_NONE); break; case 'm': //chronoappear blocks - dimage(x,y,&img_chrono2appear); + dsubimage(x,y,&img_chrono2,0,0,16,16,DIMAGE_NONE); break; } x+=16; diff --git a/src/save.c b/src/save.c index e78ae89..600994e 100755 --- a/src/save.c +++ b/src/save.c @@ -2,6 +2,8 @@ #include #include "define.h" #include "drawlevel.h" +#include + int retcode; int id_leveltab = 0; @@ -39,7 +41,7 @@ void loadfile(void) void savetimes(float framelevel, int id_level) { if(times[id_level - 1] > (int)(framelevel / FPS * 100) || - times[id_level - 1] == 0) + times[id_level - 1] == 0 || keydown(KEY_7)) { times[id_level - 1] = (int)(framelevel / FPS * 100); draw_end((int)framelevel, id_level, 1); diff --git a/time.py b/time.py index dfb7985..a345d08 100755 --- a/time.py +++ b/time.py @@ -2,35 +2,36 @@ gold = 1.2 argent = 1.5 bronze = 2 -f = open("times.lvl","r+") -d = open("src/times.c","w") -lvm = open(f"include/define.h","r") -ids=f.readlines() +timeslevel = open("times.lvl","r+") +dest = open("src/times.c","w") +lvm = open("include/define.h","r") +ids=timeslevel.readlines() times=[] + for i in ids: - times.append(i.rstrip()) -try: - for i in range(int(''.join(list(filter(str.isdigit, lvm.readline()))))): - hop=times[i].find("-") - if hop!=-1: times[i]=times[i][:hop] -except IndexError: - times.append("0.00") -d.write("#include \"times.h\"\n\ + times.append(i.rstrip()) + +nblvl = int(''.join(filter(str.isdigit,lvm.readline()))) + +while(len(times) < nblvl): + times.append("0.00") + +dest.write("#include \"times.h\"\n\ #include \"define.h\"\n\ #include \n\ #include \n\n\ extern bopti_image_t img_medals;\n\ float level_time[] = {") -d.write(f"{','.join(times)}") +dest.write(f"{','.join(times)}") -d.write("};\n\ +dest.write("};\n\ void check_medal(unsigned int frame_level, int id_level, int x, int y)\n\ {\n\ float time=1.0;\n\ float framefloat = frame_level;") -d.write("\ntime = level_time[id_level-1];\n\n\ +dest.write("\ntime = level_time[id_level-1];\n\n\ if(frame_level/FPS < (unsigned int)time || (frame_level/FPS <= (unsigned int)time && \n\ (unsigned int)((framefloat)/FPS*100-frame_level/FPS*100) <= (unsigned int)((time)*100-(int)(time)*100))) dsubimage(x+45,y,&img_medals,36,0,12,12,DIMAGE_NONE);\n\ if(frame_level/FPS < (unsigned int)(time*"+str(gold)+") || (frame_level/FPS <= (unsigned int)(time*"+str(gold)+") && \n\ @@ -46,7 +47,7 @@ void draw_time(int id_level)\n\ dclear(C_WHITE);\n\ float time=1.0;\n") -d.write("\ntime = level_time[id_level-1];\n\n\ +dest.write("\ntime = level_time[id_level-1];\n\n\ dsubimage(172,90,&img_medals,36,0,12,12,DIMAGE_NONE);\n\ dprint(187,90,C_BLACK,\"%.2j\",(int)(time*100));\n\ dsubimage(172,110,&img_medals,24,0,12,12,DIMAGE_NONE);\n\ diff --git a/times.lvl b/times.lvl index 4c4a8eb..f2e2ec7 100755 --- a/times.lvl +++ b/times.lvl @@ -13,4 +13,4 @@ 5.39 8.35 7.45 -14.01 +10.53