From 27b7fa6d318551fd302613db30861d74c1960a3e Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Fri, 6 Jan 2023 21:09:40 +0100 Subject: [PATCH] Sorting der Sprites funktioniert --- Input/inputHandler.c | 3 +- List/list.c | 119 ++++++++++++++++++++++++++++++++++--------- List/list.h | 7 ++- animation.o | Bin 0 -> 2464 bytes animationHandler.o | Bin 0 -> 2248 bytes bucket.o | Bin 0 -> 2328 bytes game.o | Bin 0 -> 3560 bytes inputHandler.o | Bin 0 -> 6848 bytes isometricMap.o | Bin 0 -> 7864 bytes list.o | Bin 0 -> 7440 bytes main.o | Bin 0 -> 2856 bytes spiel | Bin 0 -> 35560 bytes sprite.c | 2 + sprite.h | 1 + sprite.o | Bin 0 -> 3552 bytes textureatlas.o | Bin 0 -> 4976 bytes 16 files changed, 105 insertions(+), 27 deletions(-) create mode 100644 animation.o create mode 100644 animationHandler.o create mode 100644 bucket.o create mode 100644 game.o create mode 100644 inputHandler.o create mode 100644 isometricMap.o create mode 100644 list.o create mode 100644 main.o create mode 100755 spiel create mode 100644 sprite.o create mode 100644 textureatlas.o diff --git a/Input/inputHandler.c b/Input/inputHandler.c index 1d87ea0..75668f4 100644 --- a/Input/inputHandler.c +++ b/Input/inputHandler.c @@ -113,7 +113,8 @@ void mouseInput(Game *game){ else if(inputHandler->cursorWorldPos.x > maxWidth){ printf("OutOfBoundsDestination Spawn\n");} else if(inputHandler->cursorWorldPos.y > maxHeight){ printf("OutOfBoundsDestination Spawn\n");} else { - ListInsertBack(sprites, SpriteCreate(game->textures, 1, inputHandler->cursorWorldPos.x, inputHandler->cursorWorldPos.y)); + ListInsert(sprites, SpriteCreate(game->textures, 1, inputHandler->cursorWorldPos.x, inputHandler->cursorWorldPos.y)); + ListPrintForward(sprites); //ListInsertSorted(sprites, SpriteCreate(game->textures, 1, inputHandler->cursorWorldPos.x, inputHandler->cursorWorldPos.y)); } } else{ diff --git a/List/list.c b/List/list.c index 643deaa..d83a020 100644 --- a/List/list.c +++ b/List/list.c @@ -19,50 +19,119 @@ void ListPrintForward(List *list){ printf("\n[\n"); while(current != 0){ - //printf("(%f | %f),\n", current->data.x, current->data.y); + printf("%f,\n", current->data->depth); current = current->next; } printf("]\n"); } -void ListInsertFront(List *list, Sprite *data){ - Node *new = ListCreateNode(data); +void ListInsertBefore(List *list, Node *new, Node *current){ + new->next = current; + new->prev = current->prev; + current->prev = new; - if(list->head == 0){ + if(current == list->head){ list->head = new; - list->tail = new; } - else if(list->head == list->tail){ - list->head = new; - list->head->next = list->tail; - list->tail->prev = list->head; + else{ + new->prev->next = new; + } +} + +void ListInsertAfter(List *list, Node *new, Node *current){ + new->prev = current; + new->next = current->next; + current->next = new; + + if(current == list->tail){ + list->tail = new; } else{ - list->head->prev = new; - new->next = list->head; - list->head = new; + new->next->prev = new; } } -void ListInsertBack(List *list, Sprite *data){ +void ListInsert(List *list, Sprite *data){ Node *new = ListCreateNode(data); if(list->head == 0){ - list->head = new; - list->tail = new; - } - else if(list->head == list->tail){ - list->tail = new; - list->head->next = list->tail; - list->tail->prev = list->head; + list->head = new; + list->tail = new; } else{ - list->tail->next = new; - new->prev = list->tail; - list->tail = new; + Node *current = list->head; + + while(current != 0){ + if(new->data->depth < current->data->depth){ + ListInsertBefore(list, new, current); + return; + } + current = current->next; + } + + ListInsertAfter(list, new, list->tail); } } +void ListSpriteChanged(List *list, Node *changed){ + if(changed != list->tail && changed->data->depth > changed->next->data->depth){ + //Nach rechts + + Node *current = changed->next; + ListRemove(list, changed); + + while(current != 0){ + if(changed->data->depth < current->data->depth){ + ListInsertBefore(list, changed, current); + return; + } + current = current->next; + } + + ListInsertAfter(list, changed, list->tail); + } + else if(changed != list->head && changed->data->depth < changed->prev->data->depth){ + //Nach links + + Node *current = changed->prev; + ListRemove(list, changed); + + while(current != 0){ + if(changed->data->depth > current->data->depth){ + ListInsertAfter(list, changed, current); + return; + } + current = current->prev; + } + + ListInsertBefore(list, changed, list->head); + } +} + +void ListRemove(List *list, Node *remove){ + if(remove == 0){ + printf("WARNING: TRIED TO REMOVE NULLPOINTER\n"); + } + else if(list->head == remove && list->tail == remove){ + list->head = 0; + list->tail = 0; + } + else if(list->head == remove){ + remove->next->prev = 0; + list->head = remove->next; + } + else if(list->tail == remove){ + remove->prev->next = 0; + list->tail = remove->prev; + } + else{ + remove->prev->next = remove->next; + remove->next->prev = remove->prev; + } + + remove->next = 0; + remove->prev = 0; +} List * ListInit(){ List *newList = malloc(sizeof(List)); @@ -106,13 +175,15 @@ void ListDrawAllSprites(List *list, IsometricMap **map, Camera2D *camera){ // iterates over all Sprites in the list and does their acting (moving etc) void ListActAllSprites(Game *game){ - + ListPrintForward(game->sprites); // Sprites move towards their destination float movementSpeed = 150.0f * GetFrameTime(); Node *current = game->sprites->head; int counter = 0; while (current != 0){ + current->data->depth = current->data->x + current->data->y + current->data->z; + ListSpriteChanged(game->sprites, current); counter ++; if(current->data->hasDestination == 1){ Vector2 movement = { diff --git a/List/list.h b/List/list.h index 668136d..714a2a9 100644 --- a/List/list.h +++ b/List/list.h @@ -26,8 +26,11 @@ Node * ListCreateNode(Sprite *data); //Print the list in order void ListPrintForward(List *list); -void ListInsertFront(List *list, Sprite *data); -void ListInsertBack(List *list, Sprite *data); +void ListInsertBefore(List *list, Node *new, Node *current); +void ListInsertAfter(List *list, Node *new, Node *current); +void ListInsert(List *list, Sprite *data); +void ListRemove(List *list, Node *remove); +void ListSpriteChanged(List *list, Node *changed); List * ListInit(); void ListDrawAllSprites(List *list, IsometricMap **map, Camera2D *camera); void ListActAllSprites(Game *game); diff --git a/animation.o b/animation.o new file mode 100644 index 0000000000000000000000000000000000000000..7a57d2380bc25dadf26d41d5f2fa19679d3e7a7c GIT binary patch literal 2464 zcmcgt&1(};5T8w}joOx2JP7r$cqkR^lB5S|5!o7=ZcC9;$U#w>ZC!0K*$tbGwBi?t z!V-`kz4}jxo?7%!yoi57FG55Qdh0=`GjHECFRuX$f&=qr-fzC%`|WP>bb7v+G7Mlb z;3~9ti~^L8w|!f*_m%bKN@6KC`?XUC=qKzL^hCvNN_y6eO{YNM9Z1n0$eqlhu|OM6LE=`N%b82jP4 z=3?537icE>(%6`>m_a!G?QJr*BR27&apO>DwHuaGHx*Jk)6k*zOd7^e`ul9V6i=<5 zi?*_{uu538P~zgkoBx}tcipMF*`|umuM#7#q(VpKYA)%l-(F{j+9~AFB!xTSr;#j} zDHJBn(HYN=g22q>tZ^&1RLf`c`CL9bVb;bkNYG@A-bs>PR1@_W>df^Lq`=rFjKz?9 z{`QgCq>#D-DDhpaU^FY`H1 z+zqkI5`Q4`#huWfm-rhx7>c+HIj+A}b)&Vww^m?^{aJr4f~s4o1PWLT-KtjzJvZ{y z%(@pw#W3(A9lYkQ+=oG$fkMxg^!I)u(*&aE_^SjKIK3O3|6ZP(@>SfF`6;xdEVgtQ zXP(L$&OANSaOMfD`bIT!m(fOHVprJPNJn+@jr!@{+CEbPzmp$jUt0OAY=OcONdiXJ^iTlIjp6gSyWZH zp5FtG@qD(E7+{}s$WG}8l0iLp4)H!zjb?CUy?!p{Pqu?)bf~9Zzb@-vbE33*{cXg% zJ-^K^&yQ-ko}XX0*)%FcO;NVR3UCT79Z9c0A#s^@V7|!u@&S@KI)A4T?nd=bdH%{@ G>i+=Gb-IcG literal 0 HcmV?d00001 diff --git a/animationHandler.o b/animationHandler.o new file mode 100644 index 0000000000000000000000000000000000000000..2d4298bbf52bb1dcc8f6974c861592430289a212 GIT binary patch literal 2248 zcmbtU&r4KM6uxi9)JUDD3?bO!tt6pd&e+C?dN%01phB#HkV2pO)XAB7!^|7dNGb$j zn2k$w)zbeWrG>b2-^NWK7*r_XBCzw_ckleTO$7D9z2~0qoO92)=ic{Tk3JX+X&RHz z*d12WB+Hn6p|-a8(qdh#lcntPXM637VV75rJ{V*;g3&IIp4kfPA?DDvr)?<`0~4kr=a?mdY- z-Gw*z3>LaY?BvdTPmrjEs^x@G{pBGU{otDQ%vORt(Iw`uv*w#B>|1L`=61R-2NjK+vo)L?gLuPC$ zA0LdzWAVXZBR@1CNJDZ#dT>OnW)Ov}IlE>u77= zAm=N@V*q(fBVGD>DACy(S|X3Yb{jll9aGi*wrYO{o-l|>+JkVu_bc#(o0z2CjU3M1Q|HgmNZbGo{%{-J`5E9Z{rH*5$NGc+L*n88gCxLv zKoUIx-!CqNpB)ZPE}eD!w3oA;++4;jn6qp|q3-9>KFd0pj8|t%<>wsVWl7f`D>zyA zNjmG+0w>&}>(|u8qLW*2tJ@-N4<-WM2;R)k^8l+L3EATB5GpR=oGiQoL zW){3anf0<+`ns5z^L*E&Z{>Q?cV?G_zK|=K`GS{s3;qhlU?+ERY91{XmHeMDC>$+o zRkpE&J}LSs&5FwU$bep3(m_ZaBw?D*j9ns$SlkKF8wl1<5BAkoRavuIfaKPtC|Cz7xdZ zyHM*t6!B_ZYW*+7o@%@)-3)&)bH2DVyVXe0?`pW?f?J) literal 0 HcmV?d00001 diff --git a/bucket.o b/bucket.o new file mode 100644 index 0000000000000000000000000000000000000000..65b26698a18337611b488099566070503f4c322b GIT binary patch literal 2328 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�P&v!|8&W_a_?8KdKe}2MuRe;T7C$G}_SdU%9x7gW|uZ@i#(8;eYqx zf9S&xF`3Z3_QNhte{}nYeE7$F_!Am#z?Sm!`x?%Ar|=(Xc&&y{YdDvp_*Zz5qS4PM z@F+avUeLt#{XM{>K~wAHJ;ip!#l7q8@!|LR@W*}llRo^{efU52;jee=JpE*CQS1G* zi>q}V=AzIVH2%jhR{Xsh{*;FIYPil%X}He6sNp*Q2O6&Pf34v<|92X$^F#2BjqBp0 zTC>|x_$_zb9*W_ob-MobR{eC-Jt^&il0LrLDery^R}7)c3^gxTrsw$%y)N z${BR0`up)^De99c+p5R6;^*Z3;Eqov2kUWj4B&z}4;@;vPIvY4UT{76|6U=evjn@x zx@auo_SP}!wdR)VBC;7h=1`=FIGr#L9a_Y#Q`{Eny2ngxq7dzAJjC5HO-Qz=XI_PS z=idPVZT_$NjnJh{Jtr^}F?ass9B9q^O|=&?>NjW{b}zg7yFIw_U%mH3uKGIly+>Ss z8boL>^jEfa2~HdZF=_}keK5of!5&(u4gEirsec!UH@%qrS#*~{}108X+Hn} literal 0 HcmV?d00001 diff --git a/isometricMap.o b/isometricMap.o new file mode 100644 index 0000000000000000000000000000000000000000..4358dd9c9a71abe47bbe7d94a3ca70fd4226d62d GIT binary patch literal 7864 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 literal 0 HcmV?d00001 diff --git a/list.o b/list.o new file mode 100644 index 0000000000000000000000000000000000000000..e3bb01cda806f20cc43962bf0e8f1f1fa0056dc3 GIT binary patch literal 7440 zcmbtYe{5A(9Y1Z^RuOowS~td+dFtknbq@+G5hTlN%WW?SElp_$B1?I+x9x-Wz3%mv z4U|E`57WG{;D4AH!~W2){b3e|8FA=JnYI|BjgkcuV!CC^+7#oH5>q1^em>{NeW$m5 z3DIwI-#zE^{e8aQbM9%6I@{_?OG<>H67ifU%nT~TnMVubgd8TsGO<*&xkI10$8W{l zp(B&;EeB(gOn1ncb#r{$Cf%W^9F8W+C5!NAB5KB0uh=FaIqBw<{^3D6@%{<#H7R-?SAOUtUENA zcZU#f&dIB|o6A)=%}fA1`3AqujFF#kH#(DpOI2)SM5mQ>E`hg{EI;#t%5h;Q6o*mi zjE1#SrK;>A1A19j@X}l!xPiP1$hgtfKt2;tm~e;G0_vK;m2giE4?e2gwjpmF0f(^r zqGGTH`RQ8al8f$EVVsAyEI?$<<%2K*&$&jH8fE^Y@iZM*l5*km?(rjeG5C&@ky*}@ z54C`b8*$3CCn6_)iF!gE*(l#?46dBJRfr{W>U1Ea-R9buKH~Zyh|4KhnV-!{osHHC zvYGn3vW!gagf2+qDxrBQzg8-8tv5PI;f)}=U@4)*773O!a_U4N1cux}^HX3!pcyO# zTTm9q6a+wHIG*Wepaq6DD|dn}2qKs#9@GO-=zSq;SQ*+pQ@>FGGX^whesHyR!*kyT?|k@WAa4JN}; zYOAG<31j19+W0spcfPiPW?0CE(U_cP>=td@$_=7>O&l05WMiIcejaj%#_r?>QBPwG z!-b5EI+w6aY-Z=iOr&b~Y3I_AgY1w`FnyoXJf`D0=Tgb|kTXUA0SCafsn@vJIcHpL zj6@WP;#0A@ahN-#$Kq5P&imvv6*w++;CZz(M$QI{LmkPvM$QV&K}(%QQYd(EYAB98 zFvf8Lj*H02?tAy{odG`E={~J`!hb-nSI{}l=$wm?z;o;^*)!_smQu)csal}#US{7Q z!GfS{sT-rtHA+m)mdPbR_i#DgC?xebQ8^RYHD=A12jg9|n&2THxX+;h3&-bi=UR!D z&Ly5WK3ftwSvJQ}f;&ENIuqF=?<@yMF7gLPVXH1Pzp zQZp-;+La7g12!HbUOClODwQnLye$m#yT+~=r(5nV-X2un8n$*U*N&q308oo$Ib#}V z@Q{FRlL}{6^-G0w7d+u#9=&iVa zJy|Q`?<36a(;uo;@b@Mr%$~U&d}>Z^ytuH*m>VNEF-{-44~2(p1@}G_9<&u6v0N{* z7zQ>stzZ`v1Al84IAKzJo^J|qMtM9s43snWWo5558cOv&3! z9CVaFhF^ME3Xs2tILPBqz~3A2e?T16&7Xk3FW~=#IOrmO0{+_p{}OQ!;|=&_xe^Mj z1ay;3P?^my{XEdWtJq>a-^PAgvQ_?i(Kc}_8GhNbrN;hd&EL%h4)|@0lm!}{PgGeX z{&{ac2XO{fn#(Pd)trm524Aw|WsQJ6f=B)>I9FVJRm&SWSu(*OUK3eUV0$$Fn#N@T&qC{Pp$LAZ2>zEM_$Nj1e*u?y@ni(a-oU#Y`7adDSBl`@D1vV& zg4Yzmn~LDwMerj<@ShdIMQ>`rk9UY|c-3XSr0+FlIz7>s?Cs4cv^kqf`}LXZOUZ1f z=pXb4L_d)(sj@Xa;AQ<#_p;Vp4tGG$_v(6*>29x6A}wBD=Ah9_`4Zcb zO}&)?CJ^}O`XRHxrln7Ur7yT=!_pwwG4 zJ2TndPSM^z;3qo{w0HCzXzxmy=B2w~U(cE{ zS*%LxaKPTtk?aj7HR*0lYSO8`q@T*9RhGe2sCe4?JF&n8)J_fow5EE!`fR3823?oQ zWII!7$j@B_$TemL{I>pnFG~g4rR-Tn++N&DcX7EUneQC8DYvA-jUMIM>IQ!mW0H|q zR_@*Vv4U~-VK3k@@^5S0$m{Jb-nHay`#(n?k|@W=*oo?Mgc!eV22WV{VhcZS;ruhe z$p6j4Z95hEJfeNu&H)Rz?YwT`w*0t-+xGJsr+W^U;34r(4-);_>+mT75MOq^UgQKs zoac?n>!5{KSop6j+?Ky$;p`1#=ie4?%YSa+w*4qCd?3bS+o`v3+fJoEH!1&RJjQRr z!g*&gc+$dY(%@Yd{;-9oHE!0K-#OB!mOR(q*lA+3f*23Ktpq<2Z-YnLAHp{)SR4)ETQvTo5bkRHO^ws7}JD8D=VNBxs@G+Fo1B2J;`Q8vdqUXm#xVe9w3*qMe zH5|gt{c9qGoBJ28R+3CS=Kd86;pYC82;ud5Uy1m@p*}yk4{txK-aTfN^?H+W-+S2? zaeUvBBED~6K*X~dHR;Io_2I7|5l?4)FOI)yo{=A8J?~Br#{07we9Zhq(4i%-r@f1x zVx7_d_liNCDe2=XFqY7xbGp8Uq0={0x#!qJi2zZ9i~57xug^`Ip{_nY1kV)GH}MeH zp8-OWCPID<9`;`a25tVY`qj{-P1fHgh7xhk$#8^6^Wp-f)1OkFY80eCe3CF-J%<7A4HZ(GA3h_nK(0{ zyS`Xll@3AZi_iMlCqK}KzPK)}Qhe)^)F(kuRuHk2g+7S!{Acb>?+%$4J#cf+{hf2} zxpO}bdAD+QZ9>yXibkjC!AMe~Yf}&OVx$&nj%Mk+5&l{;cK%o}K6(h)2yg7(;0eCX zWr+4cuHz@tjIgpFDZf9?9>$=uZ-loZ@YTWfgW+&^{z9pw&xGX|P5cxBoMCyns6X=AXOHNv%Q9I*3UPEDrFauth)RxKxR-CRDeFYEcuUSX+F z$QPDYa=qo}1k6ds*&;c@zd3F=wCcI@G(p-Pm^^z;j2~tOIT3fHy|Y2uR#rPXGc|pc zou6j@gs{Dh;MKY8hZE)5$;wV9)6&>W7*jfg9HG0zapufuHHWR4Xw`=q(i~I#qqQ)@ z1R+s_fq)BDg4tE{#gqDCWU{W!f&VWUs5=A zP215MQAcMSJGc#pfF<5ATLVwVecGiVb+*Iuq+GMO}9ey#2HJI!*(^(|f_|BA07n&EwbOmO4M zNPly=gFFeyg13jaDET5F3-}~A$@73L;3&zGmjGG7@fIYv0a?KDmL+!pS-??(B>x1E z1^iKNl79}!0*-Hy{A)lKaJ)6ir|_^@z~{J0eq7=63V%`Ic(2lbMd3#kZYcbi!q*jk zT;UrEM=g`{*A@Pl!gH)ca9(I5(f#diVAe_Z1268|QuC~isR!0pKzh>*Ow#MVPrB#E zgNEDfa-AmKaRW=|n)`wu@C_E@mebdJp4+p$V4GtwlhxjQ)8pqbO8tM790%i5ahFsn zih-<`(k8Y=4(TLoILqRQ#7Y~NmgNf(fI9xnI}VQV-C&0Io?QQZ5uaR_ z+<%$tEiq>@eo=s;bQFCu9=CAZ`7en7h4P$n{-`rDUUDomnVS){1(2+1U*CNt?|2EhVG zLoCxFHrC>gVw$c_YRg{2A(6TmKbW=-h?6U2Qp*0oSrd{eh-|z37bLY-5 zW8LoV=lO>VGv}P&`}v*s-@Tc8mv7D;3_#O6Q!Z;3jqQ(KmhV3g5ROGu^7|y-lZvkM1JhHqEz9^O@A6 z{b^F;Px^$PYqY%Vv>Z5ICe7wst@*N3k8oL*NsaH9{zs(gZ_!t)`68>7;Oul09gfSS zM&BpFN58z^%QW*6tuJ3YbZCE?RI9gUwzaOhYR=5IrWtLm!RXo`k5{6!u)(?Rda7J~BpJoMkl1K$juTzX6L(0?RP`_|^6Kbi;rW*)tv zJoH6*;ITaLm-4`$$)op2dEl$^z&GZBKaof8|II`H=REXHdEnp8Bj>?9^z-x3PeeOj z0NhDeeSJ%NC|KVaX$VK^>#h3gWi|CpfpDOuwKEb3FRQ6)3k3tq8dkLh6fP&G66C>} zP*Y&`JgcfL&=9U{XuQ289Et{;tObEcO(@zKs10?tMp{Eb%NJ~#7jC$tHP~WRcm7>q z-Mr8pL2F^Cp=nuQZ6q2F%nyg!tJ@n|0v5^U*DiG;DQ0yr&Z5( zY`nd`arN!>%?+(>Rx_$ZRO9M~u+2hSne;jcXg~n_Gj* zfX%u%h1Hc+^|Q;am}8l2 zIybxQN_0o8Soo*DRci8SsG&$>#t9eU{5Re%p_|K9fK{#z1+yOS{L+`Pyp6Z&HEc?2 z>m;s(pV8&$xvf}23$2J2VD?RBztVMDV1MYIruXezT9q-l*24@ib|GC`7}|J?2z)AEOV+!u9R{i%ba48wNn0b5M@p+Nw1XOVVP4(vRuk5=j;S>_aybW8blmN|7KEh)dkGN+8>=wDd>7g_eOJS^pXET7Nvpp>6vnNvfuU&>*e zTbuh(mTT5;s$(zT=8yf--+g4XcA0Nh|Ew4My*KCUeIk=b^h!1|hp^aca0Zlm6MPGWaWm|H^BbT>7p*HtOH|+Z+9R$Hw^!_WNIc zH!>9hpKntF-B|*yYW2tIi+$kH|!S{DxNmPfUV`5`KJrdjEt2 z02E~NXP1+=f|xRvVkDNJnxTcTB)0FFeHc=EJQz2LOX0>{bVy=j8F9Wuq8TldJO>p1 zxG&+44J6LI%(A}!`(3|>u+0Opp=qg^vdAAh%^$l7(?W&YADiz^ltLS31&>koDtcGqSzAgUjZ*@+Khgxh^|!%(Y@K>fjqTM68S^DvIsf`_{(_ z245b_ranTV_}UUk^&L6pnhr5;-!L+R3wtRldH@82&92}8tN1cz2_XQGl>Q=Hs|YY) zI9nN`#CuCIGS*b=OzlE%NX?7=`{sd)*x`AxVf2HPRS|m*S#*#TVz}7VyjrC0#)4Al*6Hhj>12NKs^D+5T1 zG(OJJIOdPl7WJwA4<0W&e=K?^RyP={Ik@KBW@(%eY z)MDA?&={Eks1=_9&ylP=3NbOkZRzC`jt)>{cUv1X327y%cvbbl2j1OBcSz58dO4cMx#o;<&FLZ3Uh90j(h$Yv zbI|mQ9N&R7%>e~LhgNdB`)k=3634MMuv-QO?c&gxnE1H?n?^Ax_Um17??v5XsmK+Q z_g|!NZm$PD0SYL??VZa0fx=*gT3^vU{(#-^Ku;U0!EJdumpmH_d|VLzt^VFA&jZVW zH0UpYIBw`%n;5swPl5&5o)FkhoCi>m9-a)|i>s)&b{wSp_w5}kbn->Ohe`-P(n(*d z(p>~Ypl9uS3+>|cm=<<(j}o>*rL^jG1W0~y?*^wR%YskelgxEL`Aovu|?kEa-;SE=PQ;_=~;RA`@O@s%zjLX5tS}Rjl?s`bXSYgIH|G5D+ESHz%l+N^rs$<+R~*uLtN=xKKeqC9pjP1;S;Vkapag;AnrsVOL6m>FkmLw%kx9r5iyV4%df1MK&!v&DEEw^eZ< z@ogNvj^b>AS>;7Y{H~{x%bI#DKkvCwx9*wK4+sjk()#dMsm!zJz1@kY{$r^ zhuy$2ueLTkc*u~%v>dS@X9T#79WB z35YFgj7tW*rEI(rZb0cGlu=}pp@f|zyovd2yXES66o(GmeeOpbbgr$emoyrWNE)KljT1>vCyV)3f>}|_| zD&I(6nfp3rI5!m8Yvj3hFN_g8@8DfM=wjPZ3E&>_9{8Ktp^L4MF&r z^W-)YZDJorJlF;&a1tMe>bwv_k~B=8@}l)D!DYX`(nER}sgc(N(mkf?VG)Tt7o5r-k5J zk>=8eFdhQd#x^|a+yx@?uxC{4AK}Er-QA}T_N2=m0ou0D5f#N-sx)ieuO&PzwW-}s8ZcjBuggC7U|y;F-R;maan zT(@s$fnws2p6lDWe)oV+wz&ho-HOLl!Lh-Naffc;_I5SqdrtEvU2vNgkUR=8dp!6` zT%fET0`Jg(gr1qho+2jxL~ge_8YA~;taf6&raxZyTs*oPlM_t-Gi0E%41-Aq#Q3=H zQP*QWj1(F87%l1E$MzwSrB+4XP^=ccM)Rd%+_MhT9RmsJ3q$sjc>v)?_zNf3$`Yv0 zv72|teY~aJ_Jh2T&W6?yc?nta=cux`C`lDY;7@Q=A}t4Xi`$Zb6A zE+_ef`l~s!-kd&1^Kd_@4p1Df^RtyY*f{A9IZg=>$FP%+bwsxy&ORv+M|$GC$j$p{4*aT@VW8A^i3Vm4WH|dG1Sc%&*DzRLl9&w=T)u9M= ztU(hhx6#&NK)7hQYY+iYU}W4ihwwF_US!-%e=$IyBNX5g2)hESY0#PVqP0ixRRayh zb*PF8q4dXm$K%)pPN{o&Cwl4$UXC59ej) z+-4MEZ*jzRFDIqEuv^7B?~xvCc8r$3`8??4bj`6B5HvN%8|~!5hXB7e}{7W7=nO zG$y7iD=ur%+iJ{F4}kJXLFYL3ps2?=v6 zy=9v}X1cywSdVY`Y+eerR*Y^~+`ZwrwYIu@!>F~kDi5`Ghw2&J4KT2TrD!z64Rwi_ zd&G_HuWL5f%z?y$H?cXjcVu@T-F)Rlz@J|G;<1eI95!YHJzW5zJ*-6KFA??imEuXk^`}@sOl$N#l=`;;(BVRi>7w#!jxw z5U8@X9oE{I#vdoeU)M&eOl>vLHqi4Z;26CKM{YunEl6)=w1)A2_Jph^)5}FftYn5L44MEK+KHz1f zn|-;L-HzLWdwWizF`>U+>Se?s0N1Bwq@(5R{lxn+@e+oF4&@`@5uh;q@O*h5&)YPc^imTyg#TM(?3D7{#HX?APbID7jV-kT@jc<}x<+h~2)w2_n?{OPEF5=Q$ z2w1u2#l2HC{6Ujf4K!AP&KWT=pc{i||6pNe_0Yd-v+D`t+aS zc!Xy=Mn0J>m{IZQb+-P#e$>k@ZKgHZ94huEHzFQ-gT0vkK`&-L0czL{oMF04 zYN>^wFt^ruD?Sz-#gULlzENejL_tuNvo>&&qRbn^l1KgUgp)53ouo7o!HtSY;8Q3< zS(H9R#c4A~! z?nOuWu*#d8`qT*PAeXn4P=e!qqa&3lu$FMTe>(E;jA{T5ZHR#8c#RUPZfJc6nnubL zr8s^Rjvuw6KTuLx%MAK|2Ypr-PLg1LyCxob03*G6;6sNe&0$=@i+sHw9;I~^5rvV0H~NulvAIH>(doLmRcmEbp#^AZ5OCU#up7rT2mm!sd+tFMMrJ@P5YWd?AR|FH z2rS4T=L2VUdw^Vz3u!~%Ihu5d8j{byifZy4sU&k4j7BfhYS>*zqi`sc4S+^d=@}q- zuK~#D8I7I~Lgn4`ynwQd2=qz!$np%i7ie;~V@e@8sserN!lgEabWl8|qlT4IqF|_- z9@puK3D3}|iOEb0cuHpvXR5?isIDGBxvE6Xw%0n~we1*v+c2AKZE`%JCQl3awxjhR zN;v`8QUQv@%EuiJ4O?~$%069>v%j0 z*BfETW(&I&!gPR@$`L`r#>clCfmx}KU3`v3#J{l3L1=OiAt46@Z zFz|r(hC%F8TCh*)14qUkm7o8_G2Uv?b9R9OpDx)OV(NYahoQvP@G5FL=?52bbEsm0 z5T7QLE;TgZJBZ3#$+2-V;?R3IPsoi)oyX&H2rGiqluPWq#MHc;1Vkh+nttBITbygQz%Vx!aamfNj9r{%UX2PE9k0xTnl555ma^q3A-xIA9AA8 zI#><#I2)jxvOs9@LE+7gM(hn&)xwjI2AE;jwIn(>22;GWbtsxF?%| zf7ig;EG5G^4%Oo|;#wdK7<3S$aOizS&Fb<uM3emWf?!-I=^7_3MH zUy^k!A>qHo=ixu}OYD*E*~aR~#;=RnAHIpNC;3Rb{ZQmOE`f@8JCN$((~pWg-jRV2 z=X2v!U@!f!U7iG2MyuO0*{~w5os5Q#mCdH(*vp2|%h@nGB^$=>oelFiV3=tzNAuVK zs=jTo#DT4oR{&G4&OWYxrF)G#`qKiKHMJ_zQk*bTQzy*SlrWCcx6Wgl zehS|~YwUD@yyI0H&%sliy4kp-?5V|9qUE5|PIkBfALC$1hE;MzB?26|RC|Pkao=H_ zg&C^tomz+j`uve$O2f_9!w4`RK4as{T3B)x#1Gxiq;AfcF;R zf{2mzP@zTx*I9z?V8h_vMwIH;H|kxJcxMlR0naEOx0`eJS5t}_9+9Nn@X=B)n_O>u&T*FR>5BZFM(-U-v9dKIezxyb~;g-*8%-7jf+0}p_8i;hxyu<%wD13V$JoAnQsN9C* z*mm4F+|hRX49rAgPO}_30PKe}3n^zfrfeY)4KV=`ra^pfwXFTV2LXPltRvX6-}eXt zjC}A{Xyqwl=8_AsHHbez1iZ7=-#h8H5}L}RfhbL^8z8D~8_@l_{`V>nsBKWE0zKpa ztpq48ioUw{t@8>7yN6G|6oFnowcPzQzpZFU;r%Ct7P%_*&|93h{k=V2$>IqJ)c}uE zTUw@HKnBbJ&LRZf}01H#QP%$I(OHu=X&`loz z-+#$8{F!Si+LwxMPDMq)MG&C=rtQ6qM11kDpCj%CVs= zJw4j?UvgNwhulb4y^mh^m9*ZG#=lY5PgvRaq3d$!+K&lgKgN6a)BGEOOQLhpIkx$K zXwNH8sd**Z?vEAuWB9wWAL7SD0^#5cc**Zh&kEQvh=j$_D{@O{YSj{&5qS#C*zf(I zV@~Oop^lqJG@`|I-#>9rpFJ}^40F>nBW8H43TlQQ@QtF0FkK~>B)^C+%&Iv3s#!<^ zrdVST+FN|r83VrKJWP$8jtozX13oS+*2t9%&E=d-Fj>okVrF4_gFV+bTGZ`3T7bL# z*ZGdGf0mmB%xU&h1Vc6po-IpYx0pD`bzci=XO1ecUq{@Y+lzXcCD1-eWZXuuBW@m4 zS>Ju=b+XB6#SM>Tu$dqq;h7?wA@i@pDy<(I9saFLbUuBL6$&+`P@R=9rI5&pK!S}L ztrHx~;!E5(B@`u}fKL@`8aH=e^yaiU4F?s^7a|SpROSSwxrOY55S{~6G*X>rh1G_J zq%3N|CeUiov{&5>aF~@2iHf(Ku3Cd_-v7L-*h`iEbj{$ZThcZe`<;&YZ}{pHN^*AX zv%Qn$JSum%R{1T7`gpD0qHzuOeF>gQx!Z^J;VyQo~Qc&GqV*}nP7-@8k z2`+g{()!TNHjE`s?}sW7;MnLd;p1|uph5+NdI7zqzZvnOgD%VJEF595Z47rcaYrt#4up4F77sMLqRS4nKslnicT(KMhCI;7fM)%Q`adEobtda51jJA zDG!|Tz$p)$^1vw%obtf?@c@6@byY)WYoiB01k4}c)z_K&T8bZ^jRdN~frd!H)7~2K zG&i($Hm(kYJ=OC(rPG=&^)y7ATLR%|b0Fx!4-X4G*xI-{;#n2Ay&)KkoPYlLMi^u- zjz$(YSMmpmJLd&DBlwM5{uZ%kX-5Nod^k7Km}Jr}lTqoN^PFWJQ)>w$!?3#L1k`up z*N7VO~8#^+dw!@XN@aNXUcV>{MDb>ZWwVBySLt!d5E&$K?x0xnzsvL)5N zd7fp9JxhEwi*NFI7S%0WSi87-(K6o>MR|7Ba9N=8%{!-jXTjGiyq2{S@^eI6f5rKTgj1WyGoMB0EyoZFB-^$YMLZTyc^YA4cX zksd<2FK{ky^+qr&t2?B`VFLqkzO{M zN}WJ@3(~2$`*k1E>yh4%Ur||s^rQH_k@ZMtAbl9=6xE5Wf;*R31#8^}ADMW1QD4F7 zZo;SHv-~@$)CHP`Np5<}x(GPZ5B*Cj#ozCmE0*r2tkbN)M7v_{`stO1|#&1pMRZ zk1rx`<6&=Me_BR4XpVqpW`>N*Lzea>_40#)0 zcuXk($b--Qpm}N!`WO1GO+&v`juSfS;nVB?j( z*jnIQF-Gq}pSAV-QOD@%whf#I27a7MRXJsB6twhB&JS+^f0q+qc&E*O82IYJR4R~x zUuok{0Dm9wEgAS#HhwDn|0?iuBgFLI!tdMo>w#~_!+CufK8V{sSONUcUrD9LIq`+> z+WhN*@5h6kyjO4gASh_5-^0NF1o&%Vr;Q(XWg#ip2X+Jh8_ZL;jCbPe#uLx+cNq9f z@Mjj=G5^^7>_=alpp*biIpe|qPnf?}B5%_b-YPU6fGz_5*TBEv#B*HiQDR8r2hA2d z;B&517u$1^(nUROpt%S0Vn6a}Jx_@c;9 zSROoCPF<%waLNP!J039aw=nOs;1K6^A?J2nrp!IDvwUM#xjL)NcX05Us1o~y9Fuf; z$1;_{lUH(?_ipfq!+DuK+qtS}nfGsSKIUcczkfFsVwrnvUYJVc+RXJE7q+N!?a+8W z1;ndM+s7Yj=T)K-3r~tBHt=m)v9Y^f({Ve- z%jm~55>g+4gcSFtrMyz}r*zr0%cw3FY5bpb+1M?@|37@0_s33*HQrqf^P^ba~c4bQdnI$Ng~>+~v}&e!QpI&IeJ8lB#&(=Y4v zn>u|$r~7sKnofVE(?96+H2nF1=-27RI=xD#^L2WYP8Buw*>|hlf~u-(J*5i*!AL0N z!TWWtC@c4L%(+x&t&`ES>N{qa&z?PNcKKXS#}%4zmdC)1{Cp|<(|GH5scbwuVJd~UD+ zvqpA*|0ducv?g2K7b(gy&2Sb5rU#?FM7OgBTRS!Vq{RwSr4iiQQckUg%N`Oi&UaZ| zM>yWl^ygh8MQfKztaF5Zvi+XT3p6~b=|5Mi0I~-~_AeSfi4BKK&O=Biqod@~`(eO6 zB+R<_!-=`*^S$3M-+S$D%_FCU@Isem))S+?JrDiedEj3ZIG$suRubgAfb2hN_?$}> zT+Xe?=6nC!3z~kPUI^wWHtQD}e(oX#=+|(@pxC~jy-WdyH2h4gPlR9XR{-_{Ugv4} zqB2#Mb1br4k4gVY{B9PnfJ&@df$M@J;W?P}+drv*9U9lJ;jilcBWFn9?$Yo={?Z{X zISU~DLLT`K0PZ1S*7aS$i}`l0l?s8Qk6itEQjh=f}kYZ^LGY{T0{k+k4No=76<#h(q4 zwuVj=8-lIva(m91Pm5Y5cY=Vcug4pW>wW(E`AaHleD(f$ORV|@3l~>bEUaHVfBsV6 zvifBel?#1%sp-6%7gf|$S6R0Q)~yOPgqx~qoK<1;$O}c)y~Z@KI@lQq<6WbnV8mJo zb5%JT&ljEI1)=H6@s*&?SDa?OUzM-v^qN;;@&%X~?-9*-g{gVdsPi?Yd^=~Wd7)>9 zoXl67@^z}8lBfIi?ZeItBWuH<&)}|@eidkj9ChQhuA>PzUTp`-%Se?x8_T53}J5}HN zWwwj)?$f5$U_IVV+jP=fYx&~T48Pz7vGyBRwYjiFG~|3GZhbvG*q~mo%Ko6=56hlZ z%lE3z4~6eQPqa>cxogf>;by*@HN!IYIPFgvet2hV20qs-X>GTv=CF$xQ_E_q>V1pm z;a$KKtlYdTgvM`c(r=K>kdAtGhU(D_80hBxy6R=S&QVd-(AK!Pxfy@YhI+HbD|7}qhP;CXWJwZLLURVWljyP;`#ty zk<3m(BOFrf7EvS7(%oI2he(^SBmj@ncbRWkc6wgi;RFbEXQU3d*`*~gF_@Pyn^DAx z&#Diw1Lu0xu%m;*QF!sM^DV-*r|`<(^t4&gjF(9}Uxchwsotj?knRZS_d8RQdIvJy z!|{hHi*G8%EQk)|c!V=eqVt!z!eauu4~(9EM*Y++mdkLs+U>g3&U} zUGPR^od#7@R?mnuv{-^$-O#z(Dr;I7ggli-!V0q{5bop)t%Xb%>VXRf+8W59a~*9F zt4s_oL$<6Xgkl6Mo>eB3d099ljxGzVu5ad>t?O4eL5L|S*7}Ap-odOmOdc8<+FKi; zJ`|y37{>-HL&vtt8bj^v2pXBy`EO3St>o4Y$0oT-u;1rpQWJ+&&~%*GlrKbvu}{N) zjpjG0*&iBu33i$SQf}j&{Hry;Nj(l)X0d(FxaOgR_iTiW{>_@-q!(#wZ13dC*3a!Z zL%4?D#E(rnq~&2-Bz`jdB_hqTZbC{D!*AlzChal^O|Q4nx`gLHkYlXZkeT?dN%c0{ zj&~b6lQQnb*s&>___0a7T2r?D8f@K(41H?&P5j!V{hBb_f2RJMG=HV0Gx2bf`nCVa z&!a@P|Ly~fKB0YbnSH8G_3^`CPip@dFiw7t<}<0+R7^|A5^vp~#lKP?0!(V`H3pcn zNmX1hZGVU6H>uY+CQHAO_kXhVoA{PV&oG2KWm`F~Z=v8Ezt&2P)oD0S{WX>KU1Xg6 zCLU_iO+-4bZ2gQ&Ir+yL6|qULw;NW$jo*w&#=9otqq~V^?hp0pz(F>>DVvn9SYRx{ z@SFQbTi+-Do8YC1hTp_@w`qQl_MfSS(QEqAR`9a^hTpsozCQ#Yu2PlQ--h3$Zvo@v zH*x2L<}WAGaTz|79s|zFZ{p1*pH)o8P9wtbnev~IA}3n z^D_K8>}aD5zcbD1qC(rH_1B)MSh)_dosB(a{^9sAwkt~YJ@`45e#tbPMjE|_wiuaQ Q{0;Xgiqo?gvWnLK1Ka?t(*OVf literal 0 HcmV?d00001 diff --git a/sprite.c b/sprite.c index c3a9eb3..48d21a0 100644 --- a/sprite.c +++ b/sprite.c @@ -64,10 +64,12 @@ Sprite * SpriteCreate(TextureAtlas *atlas, int textureID, int x, int y){ newSprite->texture = newSprite->animationHandler->currentFrame->texture; newSprite->x = x - newSprite->texture->width / 2; newSprite->y = y - newSprite->texture->height / 2; + newSprite->z = 0; newSprite->destX = x; newSprite->destY = y; newSprite->hasDestination = 0; newSprite->selected = 0; + newSprite->depth = newSprite->x + newSprite->y; newSprite->sortable = BucketInit(newSprite, SPRITE); diff --git a/sprite.h b/sprite.h index 0c045a0..7da288c 100644 --- a/sprite.h +++ b/sprite.h @@ -16,6 +16,7 @@ typedef struct Sprite { float destY; int hasDestination; int selected; + float depth; Bucket *sortable; } Sprite; diff --git a/sprite.o b/sprite.o new file mode 100644 index 0000000000000000000000000000000000000000..2e2f2ddd5ca22f5bbb2cdd131ff2bed941ebbc46 GIT binary patch literal 3552 zcmbtWUu;uV7(ZPHRD`t{VrC%ml86~Nnr-+XK9Jk3WoHQpZWM`vW$kTqdy7Lu zTrx2`xsveWn-3%=J{#qMn5bhTY)hu8$sQKs0}(Whm@wUgdoZcrcmA|@*X{+s9b_j-Qub@?^a!2$qldDqE0k5L zlqDC^)NSA21#*-nYP~bmO{}biBYFfG>gpj^Z_k9EEUtwQF06&m-B}CoN<2_PyPHBG zHhbsy7X#Iw*8S3tP{^I=1gnWhYvFD%6G=P(rh5E3nyM^-Ks6J#<|&)6VZdAfK$N7R zhF5Mt!8;Tz%a47KyW8;_My|luq5%9;dz*PN(PD z3irn5I78}e?&-a-`(7tEAhueXz9L@A*&@7OH&@?@ojX5=FN^OA5nruQ_e9Md>bkb* zl)jRI-D6b|*et6ylfY)tC`735=6O)Nh|C38(l_QJMBTHHiw?@(g|ZO2@FwER`Zt*U z>1FN>GhL@{5?%Bw7h)$}B*De-Mi<+u`*y>{aD<(SuvuRs&aW@>8^eVoaAABl7*M{V zc+?hycd?4sDLWOq(a_Pc_*rF{C9CYj()X`Hlp>ofu}bF?oS(Y79H@v6*m5c)TI2B{ zKuM(oEUwV0nJ#RX$1k{vWpnfkg%0H12{ur=*?2;F>A%w0rmMolF1=IQN>r7xy$V@U zh=$C({t~|xXS);&k4gCrMB#+b-cd^3$b84;8c&ggtM&Kb!Q$L@Nh2jY=a>VwX*i}< z$T?cZ$d^-D)7FOKTG#&c0nMmnE}C{FV_I4Few5>p7y84j+)9rZ9{UsU3y}1K)1&jU;I!ff>ZqH#H#l z&j5zBTP!5-{xAtlL;`zuYzy50VGZ!T^6Wk;$2uY(w+-yvI`~O&sy+B)0OU|chk^7L zPD&;*6>O`406=IXjb}iw;-qAX&GU~C2b%Qy34VYs#6gQ0Mcc`r^%h4Y*tqS+(;&~v zMht&ep7Y4_y8?!BM>dM`UEe17(M|A^fTMk7m*)wvF^Mm=0RzNy1M38gR(_`e=Wzys z0phuW^-~zFd-oNy|(Nk&J@j*%K4O=ZVNGe$1I!N^F;Hcg8No5@ldIwxl33Wk#_TBN~= z11Tl?ixiA}zL+8qndM}fqSUa`dD9-Uat`UQq{dB$vv4y)zTmUy5A2P9@S6^F5(^0k zdt@sNh2Po)|G|TA^T?l-@94Ml?I!p`4~{jc{O*zOi*|N+@beN!HDs0iC67G*HYxnF z2k-FU78(Y^B@9E!YrrF+eHj|x$NAjERUK!2xT<5UQ>2C+83&1$uM`|(3|7Y$YgTc# znKz;ilnjYN5f~&oRxXpMT@;&Cu~2~TAcIcuPgPmZSw+l{M>DOfZPD4{L He*J#|i76O| literal 0 HcmV?d00001 diff --git a/textureatlas.o b/textureatlas.o new file mode 100644 index 0000000000000000000000000000000000000000..d49a06bfc6ff7a89b5077ee7a48b3d54f0919593 GIT binary patch literal 4976 zcmd5sV8P@*nADB)?ofru2QtHi|g!QdWv*o(<tLaP;0?=#kZ1>ITTP^ zy-Tz3%k{P}Zr`AG!4V;B<=dCdbG_|Mt+uxwjh883pF;opAONNI*bKGP#W2m*G`Bc$ z<~s5;dtip<)Jd9q%n2^rPtt7P1!{Y#y{|s2=ItIIL<05wYwpA30{Rszn+113wdh+-BJ7UaH&*sFXe)kN=3}nrV;v;ZXAjjn?^L) z%n54uoudVHGIpqq6jYYZU_t#F+!WM2CI|d`&Wp$k>I^bay2+kr2$@zt0{CnonHZW@ zKP83CD8y&F8IzB0?W!Rpdm06>J7;LF0p-;G5l)K*brzHBn*ecMUVp9+wB68I7nEgz zKD_$tlS!8`w6ove}Grcf@Bfs(xEQ954u~jR#Zg>cB;(8i0ALAl(>T#M|?h_$?ZSN~JYoWfB z9xtU&l+tAf)cV#Bt6-^DPLk$oo!xc{MP$0MoN3Jip6T1rG@LzM@qlNFwc%u1myX@n z(YkKPUmob6Zryz7e~2{=4Pjb61M9=8em30=H+zC!Ecca5PG3pKsa;R){q-OUL8D2u z5o%N4QdgMY>Uh|b?yBq|9OWJc3qfC`Z93Q_^%RShy5hJPYCQGD@1@e;bVlg#@K$g- zd_i5rS}3TjXm7m-W9X{3x+rxac*j^{i+hf(EU0&|a^~w`;AK_|@FerkXVt~Z%|tCy z1$qj+iI(0qmbzGPsS8S0UD%@DIXVULDD<>7-=Qziohh4mEOkz?#^xSxJT(McJU)JX zitlbHZKQM~Fccjm%aH!CK9XQ?bC?XqqRC_=Ovuijo)`QrJ0l5G*ZmzGfv!MDf3mZ^ zv$LbKz1yGcYUQ9`V3-LI^l0LTA1-?5?mprnN**ym3ZIL2_!=%yj_f7Ms83n9s;+(< zgzEvvAJPCmwypNP>*;A&;dvc2oETdX2fB_AAy+N0=L%C{c?_To=m|_n=upe+ZK!2R z7~>sO0LtS-=y)zUP7td=n12nq&E8RNvA5zE3L##$E6cTgFm00b2e^0xaFn^J1pw3^ z-~zUG7;oWtD<%fS)(d<${7}DV1)_Y7z(eq>AUj#XD_y~K=+nrS1VnK3OD2$5Hu={B6cl!%%nuEk<{i0sm}a1W~>u90HUYph{a zfVL%~am|eC2}h4>kTT4COS4qOFtE@1Y^#@_oK0;qraWK$KkVq1QNO#3BWf%8*6BMK9ooY zl7^myc6S(T&{Jf%f6&n45uV9^V}3Bl66M=gb{6C#FE%fUcsZAmbuhxS36>FOupc)c zD9`UJPSF;79@1Kek!OG-&eb?dNRKP75V+%S1OfW|xAq-ii$3K$0n>8)%{YJ4f=f4(<7-)b!op%e?yRaAMUnw@49OsI&d~>k&F^=0FeY(#cAToeW0qC~F%1`%R SV^6GPKg#nr%a+c-ZT|<#@*8vj literal 0 HcmV?d00001