From 71f3e778bb35129e4794ec246ff60cfb9ef4093f Mon Sep 17 00:00:00 2001 From: Milang Date: Sun, 2 Feb 2020 16:05:56 +0100 Subject: [PATCH] fully added level decompression --- SuperCbr.g1a | Bin 77920 -> 56892 bytes assets-fx/bin/lvl_1_2.png | Bin 0 -> 3018 bytes include/level.h | 6 +- include/world.h | 2 +- levelconverter/1-2.png.c | Bin 3989 -> 0 bytes levelconverter/1-2.png.packlvl | Bin 3519 -> 0 bytes levelconverter/{1-2.png => 1_2.png} | Bin levelconverter/levelconv.py | 73 +++--------- src/config.c | 1 + src/keyboard.c | 10 +- src/level.c | 165 +++++++++++++++++++++++----- src/world.c | 2 +- 12 files changed, 168 insertions(+), 91 deletions(-) create mode 100644 assets-fx/bin/lvl_1_2.png delete mode 100644 levelconverter/1-2.png.c delete mode 100644 levelconverter/1-2.png.packlvl rename levelconverter/{1-2.png => 1_2.png} (100%) diff --git a/SuperCbr.g1a b/SuperCbr.g1a index b73ad439b3367916664534ddfbe05daff5171e37..c55e7e133baca2291a019c1f5fc44d45538a8c04 100644 GIT binary patch delta 8589 zcmb_g4OCNCp1d5h*H?iyy5zlmTTdMQRWbsUK~k2@ph32$ZqNqsn?> z6{9|n^;mWeEuN0s^@wvGXX>8g?y=Q&-8t?|A|Jz8?Lk3J9ols(rOqrn?En8>LIQq_ z-I>R^-23}~-+TY}f8R@gzx=`lS@_3i{}2Eyp{86yw`36drj1bJCPEw92;EHy4R%T`6=*m%sSUbYLEM9vB7|<)pXGtI zR|)OS5V{rnWJU8&fNi-#BRfxMXaq63;9b*5^N0klX>-ZSnEh^A-gre@ZtHYAph zSVxGeY@{auMA(jzenRM;K|*WX5OfB#P5kL;i5#vs#(N0-V|=L(^!o-G{c-(A`d{n6 z(D&-^-ZU6=eFmU^7t)iJts0aauZPh}7_qn9{UOJy7ie--O)f2`aLE1`;!4j{5hY(5 zx5$--(Ka6`6^!blhl5PdvK&>M@)n7Uyif8T(l!UX_J!kD(KxH)~P z7Cu{LZr{RJGg^g%jZ63-Z;03#htbZO+mUA*tCWc{T|ku$vBm*Aqn^8NI9tV;+g-DB z6>gHNurq0gl4rP?o8hH=Ph3g+AQSiLYbyPowcnTWT`?u?@lAt_DfC)o{IZ@Iy8nou zpZ~osRFWw8{`KJ+dEAoi?LRr}IKP`&`$KtG>V=M9#zhjhUQ3jI3lF;;lm(053hfLu z?gpg3g3#JxLK`7nrky5ZV`DJZjuCihW3hv^%i3-Z5$NS@Uy6M|+aHF)0SC7IerOu> zL2W%l@z5*Ux`1!8E4Q>)kHsa4GoD?^+ZB$ tPu902owBgJ%#BthH&cV2uA-Su{ z!kfD?RdJypJZ0^7mVr!B-~bt7on_|s4Ar_}yAosx$eJw!=5{|>9%Q@h$^*nroSQ9t zhN|!p$_^1X`_=2__BE)haHuW(8d1){6h3m3H7W}aQXDhHxY@3?*@|pM+QH;y9hvTc zA=2@Qn>h6LV9%Z@TSA72xhor06pnyzWVmxUmyo$_p#Kf2Y=`+_4h-0pEt1v%NP=Up z+z{hjnybiFq}}NF&t&B{vW_2MrG7d@I167pCJF_&7CS-!{Y65KI2ix0G;Rs7@U1y+ zdDjbPze`?LJL-}69wh$9GX{y;KTG5N0j*0qzIMx77j@i)|EV1VZu!|>chK2xH`_5v zlxLmpK(W8-mYucy#!dRB7d`Bm4o8D27_kVhX?Mx`KNUXAROuHMJuDS^rXZ(q#1+CN z84@c;wvSYdY#YJTojJd3B#caFL)kE98tcm)JmHN{a^}HlZ#)JGm&dDTL~~fh8qetW z`Ofw?GX32z6AilSiC?|2TE&g#s0K-eYz_Q(C44RKOSl(w{3mzFAc0V>^~T>LIL=n- zkM_phlig8z#$jM1HV}f zz4?-;Lp5p2s$AxDThs*1GSmBn^QpX+6#qVHjj0NV=9?HGzymQO73l8gCKaU&{&iUY3z)ZMr-bB`lZ;NEIRD6Kd=9uNY7-N(?%z71t~lS*3dW?0d{WpfS)Ua4}EuJyNv7kp-2$p2$GpR-`r zr}LKO#Fzi`+-0WrSL0`WwlibaCF}dME?4riK5x{v9@K|g25#o|<{VuT&b{)Q%C^F_ zN}Sm$oEg2?5<>sI#bCF!Y_`{elXq`1_Hf5d<6elW;0ohvw|DB{el0Y>r5j#~>b8}|P z%R3)ZjpHDHV~LhavhOGLV;%LDfiWT@Q^&|2@(&DQ3E79KR9p|K0tIaYWaI~MgfIa< zv`Yz)3WX!+!;ijj`;hQfsW-wx&K!#dB-NA6cYd(i$)>8ZJom57aQ4mn54ghyu}>GB8SE0 zb0}y;17(AO;2^-ywS-=J#4lY|7buDFoy$IC(+~2+%a4jB?xi-E4H%8QB0O4N%|<{8 z5{p;l70EDG$)$3>>E&-j;~U@|XbhGB(h<)L)W4?mRZO5qai9QmE-@d{j%=?J(z5<^^SRhDsidwIhjjs>Rx|r-XL~ zTiT@;W~>jsS7(UyG_+HAh5A>8tne0DKa-G6h473!Od?J+-H7EArU2K%EcjfJU6$5_ z3xhGN7boYnE6TBiA6)S+6Pl0_)+l*4YL5tFcUI!54(C(ke9a8_@a*eWjRRoO9nt?nf4q z1-kkq6CsKZdQ^P8{@gWe>?)v-n;Yj5+6`vAhxz{8NdA@8Nx}hx!D~lyDY+M2Kgjzm zq5vZ9fduIu_K!-qvUU~27JR{L3O)IW9F^X+Q~3+$?j?HW|%`=Z07ts zP^ghcXn7eHZZHPs3P<^?MR!!RCrsj14f7Y)Tc(cVoiGQW(c%)e>=b{Z_>C!>PfJ(8 zdLv!|g8cPZhTV8kNZ9Z$!xq=`=QirF>)u$xZb;(OHZ8}le$!oc!&Tn68Bm|ly7`bO zn*3(;lx<~B<_^i2KNv^o#s@;-n{`YPzWm^ePmfcIX=^8p7emW}Rt&8IUKt9ZhicF> z3g6cdV{aI=B&kaDBmf<Of+lYaQ>AAkmHMt8zI-#pEq+Y%ip4hIG2mfI|wKO}ToK4$0b><4uS?(K`v zQ|ZToh9($q0@Z`y%?Kw0%rs;O_OgXcV8sxoEq~E^mo3}DpDy2p>zc4FX9`@g;?-&e z;j$RMVcQzk+RtCzmX4je;u>^9f5jmgq>r#;hmM)DP760-H+;hHAar}4(6%#_VJk25 zoz+FyscSxj7dif1%?7qw&Z}*^Vyoo}O>iNh)d?;(eg&okrU1|ykj9^~ealvx`D3-K z0`nop8XMnV`-Tqp0$)gRKh}l0SSgo0ieSvPm^aqtOu<)0v~62V=;l`beBC@9zKC9L z0&*UfR5a*fx+SOdP2kn41^HXyG8Mhv3ab}I=&s)i3A^U9{sg|bVSB&~TC!iuI~!v8 zp@#doT7A2VSZg*<8{dDCqKjhZ7H;iB8~RM zNPQ8^vdDSlNH|BYn4iMHBQS!(eY3|?1>Cahd#skXvWXQ==a z^=JZ(Z#Pv`RBZ){=*;59B_?Zy#jK4-k;3YqTS3)qDKXVn*lLys`}E)1{8qKqhFoi< ztx79KT4{MpyS1vS+H9>f*(`qIoak_6Rb`!}8g)`qQam&C(7@qVO9h4pGYr}=r4nK&)k0v>w6(jcDlMWq+RWTqW`)%-Yip(D zsVwDB-dN4i&(A?rGEakz`Imz*RzSnIbGVO%6CR8-z?Vm%mwOuE_X_>^s9!b_U+SEQ z1)D$S;5Q@84m6Gp47@)K|IxVz|JECj2cIAG@VvNfBK{n67kM7OkmQFU;PdrbO7!|{}{vHI`Ihxo*!@!U7!@9q!jS~0G=66_A0&;iM+=+<1FrRmY4Sg zj)(Q5I8O=AL&o__=J52518MBx_&`w5(}VL!J*MNOd;R#V;RyZ1GkHc5)yEMN(<>%} z&kuMc9pnJ^8h9F*Am(QP{7tYl6yE`sMX!1)z_F(AKqCWQKY z=KQVsG;l-x9`J)pEj}E^J&q>H`RP1k72v|~6MSwURTAm^Gt78l!TZNoW+dP(IwHp_ zISKs85Fqu%NG1PX8c zANbK>yf}i)1mK^w#Q(G+@MRr>aU=pSl7I(!03h6dFA|v(fq$suNrA+_9RvmAlP~`N zJDBrD%BOPEh2DPis=$gz@Ud%59^=*t^fc4 delta 17082 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 diff --git a/assets-fx/bin/lvl_1_2.png b/assets-fx/bin/lvl_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d313442a24cb2bdad4bf03b4e2b8f0b3ae5a5931 GIT binary patch literal 3018 zcmb`J339_A3`HSM>o_yH{}p?TYF`X^iXdEH9I*RbiS+t&@%t z;TDUgq&x~RZ|z5`fqBdAh*}aj1-~rMF+UeT%3CL$t?b5Prq-gSjzvtTEQ8vtw8Cmn zURX;fw|O4drjDBe>Qp4D@LmjD4)kQV=|NEfU;$Qv5ukv%H3BA0!mbwbbS<*TZVBR5 z*4o(Zj78rD#RSmZ(344EMRbz#3CJ`18YELEPqw6kKL#bbWi_VVqbZh(o~{LYfR~e?Ei?&0ZG#Hj&~CvbR@=7qSk6ub;}|_B@yLI^5aySmR}P2C z>5PH({1Bm;9svk*w-%}!;n&0Pl1D=^%c8Xrp8Vig`tL15uYhq+(w|D3_=1-3Pc$^3tX3b MVSd}VTRIl{50yv^FaQ7m literal 0 HcmV?d00001 diff --git a/include/level.h b/include/level.h index 14323ec..cc37830 100644 --- a/include/level.h +++ b/include/level.h @@ -7,12 +7,12 @@ typedef struct { - uint16_t width; - uint16_t height; + uint8_t width; + uint8_t height; uint8_t data[]; // rough data } packed_level_t; -void unpack_level(packed_level_t const * const packed_level_t); +//void unpack_level(packed_level_t const * const packed_level_t); void set_level(int w, int l); // Configures the level diff --git a/include/world.h b/include/world.h index b1bf89b..22ae31a 100755 --- a/include/world.h +++ b/include/world.h @@ -103,7 +103,7 @@ cell_t* world_get(int x, int y); void display_cell(int cx, int cy, int sx, int sy, int plan); -void world_set(cell_t * w); +void world_set(int w, int h, int x, int y, cell_t const * a); void world_draw(); void world_move(); diff --git a/levelconverter/1-2.png.c b/levelconverter/1-2.png.c deleted file mode 100644 index 85b525529dfb166c077df03bb9d14110f90520f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3989 zcmb_f+iuf95M4JwN+kZlyrq&+y-od>LOv@t=6Gj>1Eu9Rw!BolK|0 zf}n#3b3rQ^>@WKufb+JMq8m7Gqcu?@0(*fcN?z4GegM$+Hk)>h?MlX^su@gqGCH+a zrpBAG#+2G471)#}v~IWF8xpq)Ac^Uw8tsqzGpxNSlNlofJ7VZ46G$?HDnS1DcbK4urIcd+gAht!dkvvuxUuB8RrW z16u(*N`QQ4=?H9yxZ%}-XNf4NeayDLjI^#exdH%i?#Yaqf`Vpeq5{a28DwsN`aa$a zOfGAOfT~d<0N!dG*hF;+Mq*>xChpqV;h??-_enG8<#WpH&ET`6%JlBk1Eps-5ncgJ z0F+r;6$Ca3UmJr%{hY`e`UFvgt|f8L4^=Bat+DD72u-{pAt2r~K_GzmdoU16MgZ1q z0bM0U4o$SyhyB$Gfi1vU4s(BNGtPxRgo=bfAcfW^@YJp(8n*axI)Lr d;qyG4l-J?>XLysB`R}V`ejP6IAIsUi{0F$~6QBS9 diff --git a/levelconverter/1-2.png.packlvl b/levelconverter/1-2.png.packlvl deleted file mode 100644 index 5fb0d46b471e45e9a7836c21605abc4223ac4051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3519 zcmb_fOHRWu5Vad1-EfB11F_BrP94nXB~lh#spj}fZRFjZiPn#By%CZ&b!_K+vK)=pN}!?m$+)PO~S zk`lfZ1BW9iv#eTS6aioWv%wHZ1|sVjh&39ko5@pTXfn$jut%9|%d$BP-wlj0fLDW8 z#sMj!kTmZAU9*1!%2deX8MpD%K(I3JmeI|mWtsFu?3NyJ?*wZhuyuN5WKA>fQM?@YBUbE4c5&5RU z8UWzFhm3T=B-5Ul0V|PVWd{uBDKgNxv>XTeg*pSMZJ+`r`b!Xt&a!3RmUE+m;TYa0 zQusfg3Dd(+Dkq20?hJ$Mr<(|`fGGgNRMrPkN%(a#Skpbh7=MF2;;K4U+j4Y+5N58eg#0W6U3HG~okR*l9%WVsSMOJ9G zMrPYVfDWK(Z97PeatK(N0U-hzF+k*jW`Se5ET}KXx7V-J@#A=c|0deD*128: + # a -= 256 + # return chr(a) + # return '%c' % int(val%256) # Load image filename = input("File name ?\n> ") img = Image.open(filename) -print("Converting", filename, "to", "\"" + filename + ".c\",", "size =", img.size) +print("Converting " + filename + " to assets-fx/" + filename + " //size =", img.size) #rough binary -code = write_char(img.size[0] - img.size[0]%256) -code += write_char(img.size[0]%256) -code += write_char((img.size[1] - img.size[1]%256)/256) -code += write_char(img.size[1]%256) +# code = str().encode('latin1') +code = write_char(int(img.size[0])) +code += write_char(int(img.size[1])) @@ -79,52 +83,11 @@ for x in range(0,img.size[0]): elif color_compare(pixels[x,y],tuyau_bout): code += write_char(8) + elif color_compare(pixels[x,y], tuyau_milieu): - left=0 - right=0 - up=0 # vide par defaut - down=0 - tx=0 - ty=0 - if x: - left = (color_compare(pixels[x-1,y], tuyau_bout)) or (color_compare(pixels[x-1,y], tuyau_milieu)) - if x != img.size[0]-1: - right = (color_compare(pixels[x+1,y], tuyau_bout)) or (color_compare(pixels[x+1,y], tuyau_milieu)) - - if y: - up = (color_compare(pixels[x,y-1], tuyau_bout)) or (color_compare(pixels[x,y-1], tuyau_milieu)) - if y != img.size[1]-1: - down = (color_compare(pixels[x,y+1], tuyau_bout)) or (color_compare(pixels[x,y+1], tuyau_milieu)) - - if right and left==0: - tx=0 - ty=3 - elif left and right==0: - tx=1 - ty=3 - elif up==0 and down: - tx=1 - ty=0 - elif up and down==0: - tx=1 - ty=1 - hexa="0x"+str(tx)+str(ty) - code += "{TUYAU,"+hexa+"}, " + code += write_char(9) elif color_compare(pixels[x,y], drapeau): - if not color_compare(pixels[x,y-1], drapeau): - code += "{END_LEVEL,0x1400}, " - elif not color_compare(pixels[x,y-2], drapeau): - code+= "{END_LEVEL,0x1401}, " - elif not color_compare(pixels[x,y-3], drapeau): - code+= "{END_LEVEL,0x1302}, " - elif not color_compare(pixels[x,y-4], drapeau): - code+= "{END_LEVEL,0x1202}, " - elif not color_compare(pixels[x,y-5], drapeau): - code+= "{END_LEVEL,0x1202}, " - elif not color_compare(pixels[x,y-6], drapeau): - code+= "{END_LEVEL,0x1202}, " - else: - code+= "{END_LEVEL,0x1102}," + code += write_char(10) # temporary code+= "{END_LEVEL,0x1102}," else: code += write_char(0) #code += str(pixels[x,y]) @@ -138,10 +101,8 @@ for x in range(0,img.size[0]): ennemis += "\n KOOPA_R(" + str(8*x) + ", " + str(8*i) + ", -1)," ennemis += "\n};\nennemis_global_size=" + str(nombre_ennemis) + ";\ninit_ennemies(ennemies0);\n" -#f = open(filename+".packlvl", 'w') -#f.write(code) -#f.close() +f = open("../assets-fx/bin/lvl_"+filename, 'wb') +f.write(code) +f.close() -build(bytes(code, 'utf-8'), filename+".o", "_lvl_"+filename.replace(".png","")) - -print("Converted succesfully !") \ No newline at end of file +print("Converted succesfully ! (", os.path.getsize("../assets-fx/bin/lvl_"+filename), "bytes )") diff --git a/src/config.c b/src/config.c index 52b146d..432f1e1 100644 --- a/src/config.c +++ b/src/config.c @@ -24,6 +24,7 @@ void configmenu() dtext(40,9,&loglevels[ll_get_level()][0],C_BLACK,C_NONE); dupdate(); + ll_pause(); int key=mkb_getkey(); if (key==KEY_EXIT) break; diff --git a/src/keyboard.c b/src/keyboard.c index d4e4834..9128ddb 100755 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -6,6 +6,7 @@ //#include #include #include +#include static mkb_t keys[6]={0}; @@ -30,6 +31,8 @@ int mkb_getkey() while (1) { key_event_t const e=pollevent(); + if (e.key==KEY_ARROW) + ll_pause(); if (e.type==KEYEV_DOWN) // Returns only whan a key is down return e.key; else @@ -119,7 +122,7 @@ void mkb_update() { key_event_t e; e=pollevent(); - int menu=0; + int menu=0, log=0; for (int i=0; i<6; i++) if (keys[i]==2) keys[i]=1; while(e.type!=KEYEV_NONE) @@ -145,7 +148,8 @@ void mkb_update() if(keydown(KEY_EXIT)) menu=1; // Displays menu after updating the keyboard - + if (e.key==KEY_ARROW) + log=1; if (k!=MK_NONE) { @@ -167,6 +171,8 @@ void mkb_update() finish_level=-1; // Exits the level return; } + if (log) + ll_pause(); } diff --git a/src/level.c b/src/level.c index 585073b..515a2ac 100644 --- a/src/level.c +++ b/src/level.c @@ -13,6 +13,7 @@ #include #include #include +#include #define PACKED_EMPTY 0 #define PACKED_STONE 1 @@ -26,6 +27,8 @@ #define PACKED_TUYAU_BOUT 8 #define PACKED_TUYAU_MIDDLE 9 +#define PACKED_FLAG 10 + void malloc_error() { extern image_t img_ram; @@ -36,37 +39,61 @@ void malloc_error() mkb_getkey(); } -static uint8_t pack_access(packed_level_t const * const p, int x, int y) +static uint8_t pack_access(packed_level_t const * const p, unsigned int x, unsigned int y) { - if (0<=x && xwidth && yheight) + { + ll_sendp(LEVEL_INFO, "\n[i]pack access at %d,%d",x,y); return p->data[x*p->height+y]; + } else + { + ll_sendp(LEVEL_WARNING, "\n[w]pack access out of range at %d,%d",x,y); return PACKED_EMPTY; + } } -static void cell_set(cell_t *const array, int w, int h, int x, int y, cell_t const cell) +static void cell_set(cell_t *const array, unsigned int w, unsigned int h, unsigned int x, unsigned int y, cell_t const cell) { - if (0<=x && xwidth; - const unsigned int h = p->height; + unsigned int w = p->width; + unsigned int h = p->height; + + ll_sendp(LEVEL_INFO, "\nUnpacking level %dx%d", w,h); cell_t * c = (cell_t *) malloc(sizeof(cell_t) * w * h); + ll_sendp(LEVEL_INFO, "\n[i]malloc %d", sizeof(cell_t) * w * h); if (c==0) - malloc_error(); + { // overriding parameters + + w = 232;//p->width; + h = 13;//p->height; + ll_sendp(LEVEL_CRITICAL, "\n[e]malloc failed !\n[i]Trying defaults:\n %dx%d", w,h); + ll_sendp(LEVEL_WARNING, "\n[w]writing into pack new coordinates:\n %dx%d", w,h); + + p->width=w; + p->height=h; + + cell_t * c = (cell_t *) malloc(sizeof(cell_t) * w * h); + if (c==0) + malloc_error(); + } + + ll_set_level(LEVEL_WARNING); int sx=0, sy=p->height; // Mario start coords - - for (int x=0; x