From 3c4d7371999bdecd8485dd879dfd093f45c4c547 Mon Sep 17 00:00:00 2001 From: JanEhehalt Date: Wed, 7 Dec 2022 15:25:05 +0100 Subject: [PATCH] =?UTF-8?q?bissl=20effizienter,=20sprites=20kaputt=20bruh,?= =?UTF-8?q?=20komische=20bug=20ich=20wei=C3=9F=20net=20weiter=20:(,=20ich?= =?UTF-8?q?=20merge=20hier=20den=20main=20mal=20drauf,=20mal=20schauen=20w?= =?UTF-8?q?as=20passiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DepthSorting/bucket.c | 4 +- DepthSorting/bucket.h | 5 ++- DepthSorting/mergeSort.c | 78 ++++++++++++++++++------------------ IsometricMap/isometricMap.c | 25 ++++++------ IsometricMap/tile.h | 2 + animation.o | Bin 0 -> 2648 bytes animationHandler.o | Bin 0 -> 2432 bytes bucket.o | Bin 0 -> 1896 bytes game.o | Bin 0 -> 3592 bytes inputHandler.o | Bin 0 -> 7080 bytes isometricMap.o | Bin 0 -> 8488 bytes isometricRenderer.o | Bin 0 -> 3880 bytes list.o | Bin 0 -> 7600 bytes main.o | Bin 0 -> 3024 bytes mergeSort.o | Bin 0 -> 2648 bytes spiel | Bin 0 -> 40864 bytes sprite.c | 5 ++- sprite.h | 2 + sprite.o | Bin 0 -> 3920 bytes textureatlas.o | Bin 0 -> 5136 bytes tile.o | Bin 0 -> 1072 bytes 21 files changed, 65 insertions(+), 56 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 isometricRenderer.o create mode 100644 list.o create mode 100644 main.o create mode 100644 mergeSort.o create mode 100755 spiel create mode 100644 sprite.o create mode 100644 textureatlas.o create mode 100644 tile.o diff --git a/DepthSorting/bucket.c b/DepthSorting/bucket.c index 479b13c..9f01fea 100644 --- a/DepthSorting/bucket.c +++ b/DepthSorting/bucket.c @@ -1,6 +1,8 @@ #include "bucket.h" #include "stdio.h" #include "stdlib.h" +#include "../sprite.h" +#include "../IsometricMap/tile.h" #define TEXTUREWIDTH 32; @@ -19,7 +21,7 @@ Bucket * BucketInit(Sprite *sprite, Tile *tile){ bucket->type = 1; bucket->sprite = 0; bucket->tile = tile; - bucket->depth = tile->x * TEXTUREWIDTH + tile->y * TEXTUREHEIGHT + 0.001 * tile->z; + bucket->depth = tile->x * TEXTUREWIDTH + tile->y * TEXTUREHEIGHT + tile->z; return bucket; } return 0; diff --git a/DepthSorting/bucket.h b/DepthSorting/bucket.h index 8b0e771..ec5351a 100644 --- a/DepthSorting/bucket.h +++ b/DepthSorting/bucket.h @@ -1,8 +1,9 @@ #ifndef BUCKET_H_ #define BUCKET_H_ #include "raylib.h" -#include "../sprite.h" -#include "../IsometricMap/tile.h" + +typedef struct Sprite Sprite; +typedef struct Tile Tile; typedef struct Bucket{ int type; // 0: Sprite, 1: Tile diff --git a/DepthSorting/mergeSort.c b/DepthSorting/mergeSort.c index 8cc9887..6cf3ad6 100644 --- a/DepthSorting/mergeSort.c +++ b/DepthSorting/mergeSort.c @@ -1,43 +1,43 @@ #include "bucket.h" void MergeSort(Bucket *liste[], int groesse){ - - if(groesse > 1){ - - Bucket *haelfte1[groesse/2]; - Bucket *haelfte2[(groesse + 1)/2]; - int i; - for(i = 0; i < groesse/2; ++i) - haelfte1[i] = liste[i]; - for(i = groesse/2; i < groesse; ++i) - haelfte2[i - groesse/2] = liste[i]; - - MergeSort(haelfte1,groesse/2); - MergeSort(haelfte2,(groesse + 1)/2); - - Bucket **pos1 = &haelfte1[0]; - Bucket **pos2 = &haelfte2[0]; - for(i = 0; i < groesse; ++i){ - if((*pos1)->depth <= (*pos2)->depth){ - liste[i] = *pos1; - if (pos1 != &haelfte2[(groesse+1)/2 - 1]) { // pos1 nicht verändern, wenn der größte Wert mehrmals vorkommt - if(pos1 == &haelfte1[groesse/2 - 1]){ - pos1 = &haelfte2[(groesse+1)/2 - 1]; - } - else{ - ++pos1; - } - } - } - else{ - liste[i] = *pos2; - if(pos2 == &haelfte2[(groesse + 1)/2 - 1]){ - pos2 = &haelfte1[groesse/2 - 1]; - } - else{ - ++pos2; - } - } - } - } + + if(groesse > 1){ + + Bucket *haelfte1[groesse/2]; + Bucket *haelfte2[(groesse + 1)/2]; + int i; + for(i = 0; i < groesse/2; ++i) + haelfte1[i] = liste[i]; + for(i = groesse/2; i < groesse; ++i) + haelfte2[i - groesse/2] = liste[i]; + + MergeSort(haelfte1,groesse/2); + MergeSort(haelfte2,(groesse + 1)/2); + + Bucket **pos1 = &haelfte1[0]; + Bucket **pos2 = &haelfte2[0]; + for(i = 0; i < groesse; ++i){ + if((*pos1)->depth <= (*pos2)->depth){ + liste[i] = *pos1; + if (pos1 != &haelfte2[(groesse+1)/2 - 1]) { // pos1 nicht verändern, wenn der größte Wert mehrmals vorkommt + if(pos1 == &haelfte1[groesse/2 - 1]){ + pos1 = &haelfte2[(groesse+1)/2 - 1]; + } + else{ + ++pos1; + } + } + } + else{ + liste[i] = *pos2; + if(pos2 == &haelfte2[(groesse + 1)/2 - 1]){ + pos2 = &haelfte1[groesse/2 - 1]; + } + else{ + ++pos2; + } + } + } + } } \ No newline at end of file diff --git a/IsometricMap/isometricMap.c b/IsometricMap/isometricMap.c index 7284d68..1fefdb9 100644 --- a/IsometricMap/isometricMap.c +++ b/IsometricMap/isometricMap.c @@ -55,7 +55,7 @@ IsometricMap * IsometricMapInit(int layer){ tmp->offsetX = offset->x; tmp->offsetY = offset->y; free(offset); - + tmp->sortable = BucketInit(0, tmp); tiles[i][j] = tmp; } } @@ -143,22 +143,18 @@ Tile * IsometricMapGetTileFromWorldCoordinates(IsometricMap **isometricMap, floa // Gives the most upper Tile above *tile Tile * IsometricMapGetMostUpperTile(IsometricMap **isometricMap, Tile *tile){ - Tile *ptr = (Tile *) malloc(sizeof(Tile *)); + //Tile *ptr = (Tile *) malloc(sizeof(Tile *)); // hardcoded layer amount int n = 9; for(n=9;n>=0;n--){ if( tile->x < isometricMap[n]->width && tile->y < isometricMap[n]->height && tile->x >= 0 && tile->y >= 0 ){ if(isometricMap[n]->tiles[tile->x][tile->y]->textureId != -1){ - ptr->x = isometricMap[n]->tiles[tile->x][tile->y]->x; - ptr->y = isometricMap[n]->tiles[tile->x][tile->y]->y; - ptr->z = isometricMap[n]->tiles[tile->x][tile->y]->z; - return ptr; + return isometricMap[n]->tiles[tile->x][tile->y]; } } } - ptr = 0; - return ptr; + return 0; } // changes to Texture ID of tile at x y on maplayer layer @@ -204,7 +200,7 @@ void IsometricMapDraw(Game *game){ if (game->layers[n]->tiles[i][j]->textureId == -1){ } else{ - buckets[counter] = BucketInit(0, game->layers[n]->tiles[i][j]); + buckets[counter] = game->layers[n]->tiles[i][j]->sortable; ++counter; } } @@ -225,27 +221,30 @@ void IsometricMapDraw(Game *game){ current->data.y > jtmp && current->data.x < maxI && current->data.y < maxJ){ - buckets[counter] = BucketInit(¤t->data, 0); + buckets[counter] = current->data.sortable; ++counter; } current = current->next; } - MergeSort(buckets, counter); - + + //printf("HÄÄÄÄÄÄ\n"); int k = 0; for(k = 0; k < counter; k++){ if(buckets[k]->type == 1){ + //printf("Tile begin -"); DrawTexture( game->layers[0]->tileTextures[buckets[k]->tile->textureId], buckets[k]->tile->offsetX, buckets[k]->tile->offsetY, WHITE); + //printf("- Tile end \n"); } else if(buckets[k]->type == 0){ + //printf("Sprite begin -"); DrawSpriteToWorld(buckets[k]->sprite, game->layers, game->camera); + //printf("- Sprite end \n"); } - //free(buckets[k]); } diff --git a/IsometricMap/tile.h b/IsometricMap/tile.h index dd656b9..455f2ac 100644 --- a/IsometricMap/tile.h +++ b/IsometricMap/tile.h @@ -1,6 +1,7 @@ #ifndef TILE_H_ #define TILE_H_ #include "raylib.h" +#include "../DepthSorting/bucket.h" // Tile with textureid = -1 wouldn't be drawed, would just be a placeholder tile typedef struct Tile{ @@ -10,6 +11,7 @@ typedef struct Tile{ int z; int offsetX; int offsetY; + Bucket *sortable; } Tile; #endif \ No newline at end of file diff --git a/animation.o b/animation.o new file mode 100644 index 0000000000000000000000000000000000000000..75e4a759373d08db7729ffd8a67a6dde7cf7974f GIT binary patch literal 2648 zcmc&#&ubGw6rMD-joNA~9txF`Q>kFrL<-s>vTaDREzy?R926zp)YTS~O-MGKVB1H5eUWy3yeX}#oWD=p^!3UG~=6kd zVAoi4CQ-%)dz-e&O_TMrKKAqU@UM(j`(nNL9^ML*qXDN?OYB>98aq7HH_Z@t5xo0J zNsCyur;V*a^0lVcGYzX2)>Ew=6I~ea_A*wjx<{TptG1&SYglz=z1*%Q$wzi(-!Cl8 z`H&A&O=?+R2wAmx^d(y;lOh(v1c$!9_j|YaCO%egwN+NDQ97!rkWv{<2bw+6OhTb= zGtE?5wYn}$MPaTLH!q?1`GzO&M8{%PK8tN!iW<>zBX-`$aVSZ;Y2bh!qmjCiVO@-E z0}IlCob?q8JYHadwQyjluQ#+w7w#P47?8{ONt_D5>WcUGxD-HB_^tvcN#RHOH=6!C zz)3FR0!x2zB!CFyKY^1Z*5V)Ke&5sni_mWN9!Nc9Q`huLDRt&Qs>uCo$ zt~@$QM3C{9L_vHr$XRcN`)N9$tdny~*boi=khF%g*kAA~grknk=ih*^>jK{(4dL9A z&e1^pJ3$fW909hwTClyO>FiuGc{8z?U7VUuC$g+y=krA+ zG+DL_PQ2{co}=bhoU)fJ7hO*Wr|sp3d@X41pU;z|e;@dQ^+Rw*Rs0P{eY}rs8NVy` zgLoB>hjlrwk@m{IUXfPW$=inKta;41XL~j? za+L}*mWzdgLwp!+(Q^#Ci(?fJT=??`Zq+E2izT9Mof*7>vy#0Ja>WY%O+_djROu(% zBn!H!i=0$!)N#x=CAy?+h@7Jj}QbH(7vLZH&JA0glo)4@ORV8tL9+6)a Uoxd~W?3DjjtUs?Nldb3f0hB(;H~;_u literal 0 HcmV?d00001 diff --git a/animationHandler.o b/animationHandler.o new file mode 100644 index 0000000000000000000000000000000000000000..21f4c0199b4af28ebb7939fd4855839e1427820e GIT binary patch literal 2432 zcmbtV%}*0S6n||IP=PL{AtV^nlYvCmmT&-LWT9!hCXEoJ#u!am$^wOUOWJJ$#?KIq zwHJ=)$+IVp-h_BSZvF`#G--l~G37vv5#O7gX_sY*iN0j!z4^V*c{8*7IGTugJsuF` zfosrM2^4vALspomKnJu#&41x%QZ0W~*S-bS^26%;AS$b5pq8TtYK2C!s+J`ZcNB?f z7|M`}BB>kd_Gh2!`J`4rtuRzAPqbS00jh<>Isf;qn!i)&Uf=y-%PC>b11lXG)%=p$ zUGv}GCJ$z936g^7ovk_lzNW;;6lND1*?w2Qc(jB%t+%;7W@cI?e?g+#qkt@O8G!T+QgL1gf!kJ$a&eVKrK>S7$yZ~E-`EU>gEC!zYli*pAJUwkKt?StQ z^N7y+0<7|kg-b|$TP(v z$c4PMNau4o-9Vj@H+31`c7M^-(o1|jZ*n}HjyqrWTSs1Q&SD6e_$3?^ z^I!eL=u4^WcLJBN$@7bP2_tf@hY=&w5Gif+j{8%6cH(e-A7iK#nBDG+8|Y#?i5Pv& zob^|^e-L$ca@N0yN-}l&w{l>^?u@e2pKhVs`S;R~3Tc|n0CfKJ6&3#C{M~Ys%NvoO p?}NSxXI%U#rt|C(f+2qYDzvZ>4_8MzQF8Nt!Rr^_1L5HG{{u4QO2PmD literal 0 HcmV?d00001 diff --git a/bucket.o b/bucket.o new file mode 100644 index 0000000000000000000000000000000000000000..8143d5cdb8823b39c7b09b2a1764980a9392420a GIT binary patch literal 1896 zcmbtU%}*0S6o2jVr2<hXUot!I{pR<3Z)V=KuVeA4U?2d} z0&okCB8dXjlp|laT^)L%2O8?d{e)5eX>9z~jPiQTD3_`qG$hoBWRzoj#>RRLc*fX_ z?NtZ^@{G*{QfIqtzoLf(UTdf!BZMG1dVfP**lDPXpCvGW!PmMPYA1SKeeki4gu1%8 zO=%ixpFTj&uRB<>3VfV`ihUaLjEdeR%24?#mZwV9O}%ZW+TKvFda|@{5&O$0`T`uh z-~DzsH9HQ|lan{Kp+u^b<0Wm3jk54?q+~~tS0iB-9%Yd$4sPq(@JpwoEl=M|KoDS? zFnOK*=#vFr&Ou-`6d3I8?0Sa{xPTZ9vLEz`^@iRCCwn@A-;qIpzftenVE52(Rq^dC z?M3e9xJtoHex}%`XgH*IYQQHH{V5vfNAoEAoOfFG;UpWlYAcRSxX2$xUFXVi8y&?*!?5Hf!Z@EtlsO z!?!eCoXC7%?`tko?2KaPfCdRyMk=!lWYemIfCl|Idb zIOy(l9BvyDPcJOMGdNQn`Cd8^xLHW3a_4WdV7x${1FElp}=J# TT@&d;&riQ1K;C3Jj#vK|V4KQJ literal 0 HcmV?d00001 diff --git a/game.o b/game.o new file mode 100644 index 0000000000000000000000000000000000000000..f438d02b19178cc96b1928a9bd0a2bcafc8b23dd GIT binary patch literal 3592 zcmbuCUrbw79LLY4us;rH(Iqa9m^zoOb8-W0CL+ca$c2)Wu?+fT6iau3YX6Y-HrX7s z#3p74^Sh^z(}KfIio%2_>?O9_6O^%AkL>DxQ}wfU*2cEoPyP`K6n>rv5r&ByNlI6hXRvzdGd!qrRPy`e|JsG!ZLZ~ zPDoux*#lw(EdY>rQ1Rb}BQmQ)1h0PYW8f9e%M};@qb=bqV>K=?eDT z@hbYID-Bo>*Y*|Ax>iPwrc!UJ^~Qv?XZXHpVlh+>M7|4r@slg?PN%1+l|^b4TzRdm zq~N_X&c5#*AaA731923c$a+s4Za0r?V;4J-HYb?#j-f?$5n;0NWQ~<;(V= zKA*clL1(*AKbJdeZ;RbGKAoCtxuz@^wMxHM&0xc2fRgrhRn-a=Kpva0#-(%x_TGf5~@xOL<@>=DeXVc4sklnX`_>*SWlgRzh@Ud7h`+?~(|E2HcSMI@R=@J_m z8hXL&3r%MdM#kHxUR1lgdNO9OC)?Ytc3)I`&eb{QGuDjaL7^{oYN@l_}Rf%E{KlN0#v=oCfdYWBp{TwR_%f8frVF7R=&<4h>vj?O%87hF!M5 z7!;F;YOj^c+{Io-J(syFJAQaSH0Rp~?P5nA<{#R}$-|>k{N~w!b)e8WTjeZ(9akOr zB?lgK;2{S-`565E32%FTe z8<~_oV8p^{bN0l1Dr)FMDLriHEEr82CLK*DNK6c!VIt>L*1BXv4qdoSs2SYvHGb0EGOw zQ3QWN;&Pl(iPQax`QJ#KazgM9p4#MJ=3@@L;J`}`{JsM}MGHc#>xLZo0|)Lky)b$| z%)+~jsp%VWBRq}PNY&dpp{4X#ST&GBOuZI1!c3h`r)r@+>s+`CsjOU`sxEx2K0*0~*+c-??{t zj!8=D>g<-)#i~D0iMD(oYShw}s+RhNMol=IRJK#8x=09FDsB1DN~TyXk@;|`++N>r zcII}xz6I2dbl#cY{N9^4@4b05A>Yzl_OA&9m}~*Ihq)t(G8Wq8_9MI-VH?>7wxoUT zU!8{iw{|1580yn*=<|ksCcgkipP{{(>(k=1OInRSzod1|YN4qmtyW)fr;VvXP*QFx zl*K;npE+%ZzA*GGq%oY+c1$I=VYEPhHedzqh@(#~fSFo-{`L>Cx}#umXcrfe3ZB7e z(W3xk9m`{;R=;_tt0dhfdJ98_ujGU5@o4`wyYkm!v3PdIo`1SnWJTIa1GBH$^Vn0- zz9!bGpGAjs*XM&k3y`*VA+X5K`P)eSoSEu81C=VsaLBnmSV6x zBx6u;Vo+A{LH2mG8(DpU@-v>Ba~=2X#YqZ)VZV2jqSI?+E1wSWv0iA*8QC$QMt0HwY9XQlMXE zW2+-p6A2!)q3C&caD{s$fSET1sW8{>7q;{qgV1V|k- z#&X)|2lu69BbD~_)Ze!R@*hzgzL29$j1AH{{z|ivs`1te(ripm71l@@i)1KJTy{lz z)aUH6;rlBbfzupC$Hp8*UE&MrZ;~{8V~n@f2_G3XMCTJ)=%Xd=sPvst4IIl6IOXo4 zT5$}8mKoVYRM9>(>_15FlH54_D}%5Joh)B4PittQSqk&CWK#m%GBRgwF)K#ATjWHT z@5t6hHal3AiUqm8?_&wO^*(XWN-HS(DCTm-J9U{~LO76l4xogJCw#3o;u^Llm)V8lxF5> zM*G#Yt)DG3dEHm+rWAWi*lg4}wRvi&));?*W}W!mzDzwy*;JllyOc;BCD);|bgvF= zRMp%$DP6M(gtt}`4k(2BlD|nE3Xt6OMOx{7HT?{Gn&fhZeM2TB)EJcbycD}Zq?18c zi3r3G8uQ!e2IN%*p%JlI0grOMbR=#4((QU475x%XjT)M`L@QK@(}fd_>*X$R5Ks&R zp~_Rk9OgX`vcu$w8vPz^a26f9i0kt$<4}{v_Vbi>Gjda$Kp>b#6(tv~Skt+nAV(>s zfY$00AY%zmro!Wp7Zt=Mp96V9+@eE`7>&>yX<~?9sORJaH+7UI&JArKJ(p%8Aw=QM zqhdgPBnfu?WjKs#&?Tmg&7l;4$m1|dMZd#wWDd2?)+cZ8cE*$0NCwo={eqhmrK9i=hvZ@zv4=P$?>LFCpZ8?-Hw1pcgC9eZUxYW$ug>)6 zG5HQAFRY&2Lc5&gg0xFsvH9o%M!`FQ2}}zwPm-4>$;-bbF9R?18atf_hP9SETzQDl z3yvPq3x=J(MatJAUhv}b)gx|ntj}{Px>A<3V~3VWBe)TsLC%2Q5m(zEM&Rg_E71Hv z0ZM3Bpz7-0hY{#1txz>Fca0?6b~tSv?%S70$9q%FX3C1iqgE^t54I0RUyHNyldiDS z8(9gw-pmd(H9Z#$b)HDat#ojAcvrY#dt;i98sGe4L%3mAxN)0-0=T#Tx-)Ir9<0 z!PzNsDjGNe^2f!zO?-ELqzVdx1dY%SjYnIqvF0yazcW+*FP5uh9~aBbR+RlOJnUKS zdZkna_tHuXqYCb|a`+>wLC(h}SGNj=2kGio!Pcz;5v#`(`?>E4`z-x1=WRO(D2GRU zaGV(EmwI{J2s^}y zdN9Qe+n2ViM7%X=rc!3_O0doBH={twm=tRtOvWs;DQS{4Yl)?-gYlG^wAvF%iwnB8 zcE$&VE#2KIE826ayXWMo?!IWOpPe#KpGZWLy>f#unx~r+R4~cV{mJNn*%2Esd3e|p z&WE4iYU(f3yC3aKKKN;YBh670pBLkIeQ@Lz+WD>z z{%;@sd&K$l+B58fkNeahim zbw91>|EUlEvJe0FKK#57f6<5ku@65at}fX58O6@$6dY$w?yE(?H!8R$t~%(!KdDOo zbp==B_%?z;P5KS@9NJF=?)BSmeE9GC@Nf9=|LDVC^5GYJ_`0|!U?*&s`|T09+*b=W zMJ=iDpQN$mzoFoGH%a`*3a;`mE4a$PuHY*FPYSN`*CM&8!G4v$QNdMy5M*lD7k;ue zi;l$Q`=Zx_%lE~o2bcFP3#U#GSkV*owUW;Fr0gZl{%F{uyN!i=qgIrKPoz>ToJ=@_ zp2Wa_8K=2;!ZO43*4@r86)}D#o(|J>Ge}p_X_A2^^JI4)E)%(h|LYqhX_RbH9!k0* zqPJ7{Q%;ETE{ELrh(V-;IGtN4p40|KT|*clD~=yOW0-$N;G#?e;w|M_SK{9F>uCZy z|5y1&l7&t+Cuqn<#QGf=D9!s;+f8$jZ%{bsUKjGPPi@kE`Q1m8vaj;^CA}N=) z1+uwjJ-uYhq;_Ibr*#v5FewsjYo%^V)g%-gHZ)~ZnKITtyeXTKH4{OJwrGl$eZKeZ z?Dt-56){foySvZ#=Y8*c-+M3Z%UV-ona9Ia^RP!*VWv>VUca?44vJxr-M}`nW#4W8 z3F-WAt$KQKfDev!=w|s{Tfv}nZGOkZ`6UeJi68T6-F#+RAJK;Nk%ufOYmrPqX6TsC zy*h8LFtt(M;J+eoLp7Lh5zJez%)AxMwSsx4Zfeunp&59vf|Xjci?*5BQcfTroh7$1 zGFvJv;F1DHNm`JGh{^ZHjKz>s@F*#?7)WR%LuibT(&8;1q3%_EGKT=jm~d?-tDOc1 zlilTqEMB2m@S361dgKrKNag#)h6v8+Bezr)Gc_p4mHAY~US5w@%*6f7)&=X?MUwaK%Poz1d! zG#Z(qvs}azqj4?*iP0EusWh7>%+LihHEwEW3yaP{D7WnM2g^-u%=d;ivFzJ6z3h8> z(!#5Pv^T_n%-c>;pXDvc6)97|stL=70&F^e=RDk$ewrZwyEntM{;EDw{Weh`F{68+ zlfhLA?Brj)x@U@P=)5egjmucl2GnWezTtALF|D0-g!rs)_%HtzOGmb2L-^>lr5e-b z`40W_mEv?5S6T5&Ul{oMGjFLwgfkT2gNr;h&qH(PDQ_Ej+{Vc%FKW5XOWBDkyX7WaoY=SsLFJ-KI!&unxc$EPfM&SR%;FvSN~ zd1{4+mdJnI9HOw9p_TkTSo^Z%nA;-92eC;hSg6w8!=rgx=OGHktd-vRxRHazG;h)9 zaN44wsEeRNmp@p6M>7;YIVm(NxRPK*+k!Fh3#-}^jWDg!R%o>3+ltAv&GR$?@~pN9 z8DhT*c9FqP3ANZR@ZzzFP~XAHk0-V!mJlqroPLU;M#rU!5_#4n*J-IwX~ai(uzb`J zuz3V5$3vHR^DKFMu?ZC#GTJ4Y!JTcIz^#?w2#Pfc7qJqD<41S&1@NQjBs(iNTsvELT#DYCS3U-LK90URlJfBr8=K$(r-M zGAU+$ZLZVz;k&;3Cw0F9A{1+Ip(abOt{Y7y{QCq7 zFIVbWZ52LJj;?OZ#;mq>Er_yPxZb*-bGVUBq%kUWrK;4}JXBO>ihI0n$~W?7ODT9O zO7e=z4PJ^HC88ND$EA1dRDN1P)9+&{Rpc)QnJc=f$~noxA-b{Y%J5t2Dr^w5qSyFo zsJi@_bnlucJ-Ehv{4%Z=afjQ&hkHZM7f{~3xCbv^sQ-?1UsdT&30SAC3?@r*SU23# z;N$7R6*lmd^xzU3&`NNB%u;QJ=DGj!CVk{fux?#zqoakJrnPD0MZ z>B=pvsqRwhLjcE66?A@X;5WcQ*meV%ov6^7Za!hnF-tY0>()9 z4E5$2qUdIZbnE7^38>1?#1(`b(??Da7m9MHukRh5|4zMD;AjeiWMLW{%G!GvlLhL{ zGepVjENOwbHd;^`XN1OWVohZ2qL}+dZ=NCQl`Rn0Mho^e%(|>xl2)iU&k*&>R)}k( zm2Bos;5f}Jn>mIN?HEPK5q%YJ>&Av-D9Bb(y;q3y%rHb%VDqjN#0mx3DK;v_94jb@ z(QB^F+Kg#AJHs=_r67g-%Jyu6uRhFs%mdqAhxiEhstq! zp}1F&oJnlQ?O94Uu_^dHt~7K~XrmE1vJ6u}Khk)FvJP(tFZ9|7)kGizL})7zbds=Q z0KzUCfh4RLfN-ZIAgr||!kXs@?v$a>)91)9=F9vG0W(ifrPfC>v=#i1s)S}UuMrPg zVYG0!NJAoE_spYW_vkY9_%f%#`OEdQ^mTbG%V+U6y3Y7pV!+nKkddtvrd=Yn zeZyG>2V%)U zJY^7gD4y!;NZvt87<#B<0treTn=A^ZaMY;QxuBY~}1r+Q^*-zcmqiaso>A%*PuX|!^yeh~u!DXmPal$Wv2Z2-f*=d~ zrzCv`e9G(hZuJlc`8OfyRKfG~vft+Q=Oq2t4*8$w<<%ec9&^yYkf#R-N1LLD@~`Yy zLVo~IP||y^vC+ebQNuOXA^;a_Bv#Ho5=Y!k_bR7c1aE%VoCL4fWhX{6uh{isI61qq zc^NjfNb@rK_}JLI?CK35<=Txl|3&Tqy8}O>x!c14is6rzz`qQf^uI3?SmYJ3WC{L( z5_q}9$c%rAHAs$b3 z#QMTUH0h8AUvoTZg!=oVVto!`gSc2^T=sPw=p+wWf68#`*pmpq$e^e-f`IfLjCB~@ zg{dBmb#)u8IhyE-w#E|%BW@LH8n^Z*Vn(zrF5G17E|E=Cvly$yZ;f6x&~{23_ll@C z3J*%0`0+N9=kJiX;wKul9;*}j?fmpd2WpD{ZfnYZD0{d5Hsm2Sx1T>KfnP_8i}3HW z;WvP;*7Xw`?z7>)u;Fwr75^i$PLV%VHvBmoZja}334EulBV>k#L-K>k{S%(Ddn;`c8sWF$r*OlD-)_TyYQydO8vqYA ziVyu%+am`GSNBYZ3s?8sQ5PO0$IxE0y1agM|6Fk4>i(H?;p+Y=m*+zHqwb$AE?nI| zdtA7>XIM@0NUsq-gx*M4eYYAVqCMdn1FylXrXy^GSr8b=^Qnxft9or!R7RIcd%>jDs`CAr^Zg21Sa$^Erv7Oxsp zPq|E662#Bm{FMA?wembudXgRWhP9c9XrIH6aLGoHXp1hp3YXzmQ??x=()mf{cR-eO z+H(|Bwj}M3(Ztr=?;LfYk$kO2%A_OZ(5c47%kh3ybZ4kct`FlGQQVe|m*e@@oH!*(MR4iW@b# ru~f#WB)a8Er+e=KG5xdj#Gemb{=25)PAVo}EB{}EVX4VK-SYnfxlUE+ literal 0 HcmV?d00001 diff --git a/isometricRenderer.o b/isometricRenderer.o new file mode 100644 index 0000000000000000000000000000000000000000..605d5355799d3496b11f00f637b27e466926c069 GIT binary patch literal 3880 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 X@kdy(7&5i=Pw{D50cgAGw?#wzf zOB+EgM5V)`^wCEj1z(Dy+VHKM7K~}Z+c|AmQna9^L;C>dgnC?^J~lI8qnQt9 zr`74>>deuIV;YoEYznp~u+`5j!U(`RG2ARBQ@qc-e-1L2mCV8MJ-KVRS%;9n$Zaki zkm{uJ=}2W_th$=b8X5HB#*~giM&Yk8$(&6*aa5D2YIjtYJ;iQDqbz%>B);cy$o!Lw z&cc%^{$r1Enqi+*KU*7QbZ%*#xg)gLVBZa@0!aqpipQrFIQux;? z{QDGsJB9z0!hcQS_fq(S6b?PzvegdjpjB_2EteXtv$a~Yy3krEl^fL-%-NQIK6>ry zde5XGXqI7C2CnD0(6Bte)bUH*ZnN)NzUe`wYwB)U?_6ARoq=sY*<7;hQ?8Eh?ou>3 z?HK0lDVXz|p6R<*=d|7@J5+6hn`ju#x8O88u4&rPa|Rw}?+<*qXs)y!-8G_7-Si`u z^OoT+1BKS+n>3k78kOH%b_QLe(seu&Ys6pvRJb%dXA|!Q_BQ>4w=&7gWJIC6VjP>` zM+u@3r!z13EI}0Flh_2W5JVxK$0qo@1W}07`yseP5QX?&Y=VD@ItlT8*aW{$5QX?N z*aZKMAPRB1;{?yq#e_nfK3;-PN&Gp9zb^6p5m`-jw)3iFYJU z_pqq5fI1277quNxy_KG?w?XxMH|m##=9*ny_07vZsD|$Aptd~^RM&|H9jDhbZM4~r zZ>so>IOh3yhWU8O9;kiS>6@;n|AH z1LPWyS2!pNN8ZQd=@cgI|2qE*AoiK|pT6=UUht&clxm*mU*kR9f%MNU9#3<|_Z|`C b=noglXlxy0Lw3g{#c%NX{b-t<-+27LHayXZ literal 0 HcmV?d00001 diff --git a/mergeSort.o b/mergeSort.o new file mode 100644 index 0000000000000000000000000000000000000000..a2a49b118a43c26e5ef23414ccd59b968957c9f7 GIT binary patch literal 2648 zcmcIkO>7%Q6rRoI$CLz{s1lKis1LNNC9=ej11YHTHrnKYQYtkuAVF9;&bC3Rlge33 z4QdNv4RqzC=4^o36!y}wjDjj)fnqw?d;Fs3-{w-|E#{NzN5y~kzugz zy$AN$^L8dX4!P!i2hbR7Z8ci7&Ss_Hh08LnH^9E0)3WwT>F!>sd~+L;Ww7o_V8<__ z`lfwLy+%p6zOH`9^#UyH{+_f;A=3Xvbd zz7KutW+%+uV`vN3{EOQ`G_P)=<=mYb>JVAq(LY}^L;E;tRRSPwfED0;tzsLLDl(Kd zWIWC?lDCSI5C2P?^P2iC=R{{ItCzX%%m1p2|6gAIzd+;`*nj*F{EIiVJdvtKa#|i9 zGJ~9U9*YXO0BXy*cpj2#V7HeoEibv-)u-jp{NM&`Enj`ZC)5fVl}ej?rPZ6;Tes~J z+AQ=+klTd`ijc(PiRk&)wd|QI4MA6kg^e~hDnu6d+%?BWV~m|`GRD>{@yNDTaE`e7 z8s2Bb5XajZf-ckxbv@P}wwTkup$tass=_lbNobyJkhIS)aBP%&yjHKD-xR z%VozhgLQ8>jMtEd#KTl)!P1rj)wEx6os&EoE#Re+JZR?fqK)aEy4LK zf75&VX%RE7j>D_ON;Fc(u~^MG=n1so7<@a=u3z{ z@9cGwgZ515i>CgL)+1lZ7n&DZ=3A{c`GJhqj?rT#422wiula4uzJEgECfGH4$^0~p z7_DU1`Y6b8*H6`DAv1r{GOv=$5Y-MGoi3id7KlBEgX-#)ZUp>rmNL>OjN$3DsU+DE zp)-AO=;&c}NIyC-FszN}BkJKHO=r43V2mP>4(`3F$0(?ePz<-w`=Xft)<25A6tf41 zTSR_}?-r3?%m;B(=x)1nPssl*bfVYQaEEaHspB6;-7TVi0vkhx@_YT49Dh-NVej=H z#SJoz2?J+dbowXyMExUQ;V*E%+!UfB_&dd+w?psE>ra@scL=e7lm8GcT;i?uv$*Hy Nf6?)$H}4j&|38RpA720f literal 0 HcmV?d00001 diff --git a/spiel b/spiel new file mode 100755 index 0000000000000000000000000000000000000000..0c26f763b388a1c508192d4f8d86a2f4da8b24df GIT binary patch literal 40864 zcmeHw4Rlo1wf{{55*3(`Gj&7%HtS}0DF=eu(mvFEmQ>h`P#Fy)7oy;*ZRh+y` zeB&uA%J%e^%Q&4(CElp7h2s@lI(!a?%hb$Aw&~o+@txbO>3Y%bR*_0RG8ggf6nr}c zpG*~DPnk-4l1=Duo{(oxUBJ=fVxNj)=UXZG>}iFdmnqdj&+<1Tb$?HN)q<}j#O2u2 zC&=JW4t9~_@JB!R?vWcR zqztN)Xy_q&*~L_*{51R#4R8NL$Z;5@ulinTrZm^{CK%7lg4_aFHaNjtS?G`DkaJrO z_}m=uNjc#8XlOQl(mC`zCkOpCIp9CYA?M*7`dkir7yj%|Edbf{oS&oKn?dig3qkp= z9Q8hv1O6y@vei312mR3;aBmKHQ4ak_a@5M#AV`^la@~Pi^B` zPrcXQM9|tsZ%9EcO~G0v90}EWBOt3?@AcIC1H5jJhr|h|X!iO8N22F7DyeDabQ{D0z zHo>Kh2sdhiqXROJXcx&4Q&@&8G{Glks1>IPj*c~+ViVk9K=IBq!KF_SdYTDtexH?^ z;2$%|nP-BFB?-g2O>p5N46d2r7ntN!o8T9k;44k=ViWwcCiq1rc%upaaTC171i#n> zUvGlTwG5$KP4G)i^jl5vPnh5xCirD0c&7>OGQqn{@XJl`ohJAdCV00Aex(V%+XTPL z1W%aYQ%&$b6Z~ouyx#=B#soi;{eNqLcO9Sjs}?&}sKv*>@Svh-ZHY*Jx?hVOEIhyz zOV9n6&5AOTo*GBuxJ)7XM#7AwUQegf9jr_Na3uArQKrB*lIk(a6qrX+KQzh|07p`f z8)XW7BdISMWeRvBsfUa*1*wtLeMXrA+(^o6lqs-{r0y`v6wpReWk#7^03)ecMwtTJ zNa}KZg7(WYyr+E=c~6DH{0C(f+Z*Qc&9?GfTY09f zJk?gd)K)&5_UcEGDG=~eA)qilSkL@c@>Be4 zy_wKT^tu`?cJntVtLbk>CTj7Uzl}ojgA?g=vJS!I(D<*RoOcg+jrxf{bw7}lsR7?| zMB`$u{rrZz73KN;h^+fu2%pJ145rYVmtUUpOEwj<&lrebcC>M~5}NCaG5)tc~)+ zt)Lz%1;YRs`oYjwr^Uxjoks0Px6DdF;{i0EwR}K}y9?v)aql{=?R(d;x(6+WWI;ep z7X*d+{+>Twme>F4sG0I85yaOQLz;T@UB?WFaH@mI^e<^AG0{E{^w&EAy=06-7c;Xn z`9!G|8Z|Njpk-im3s;1TcTdB>SXZ_yy&Ha$uF!wKwYN+^QlSsRW70~Qeh^u>QW{(S ziqeNN*QUZTBO%op-NPS59ktA=2_6Lb*eFKUZ$Q z-k&jqzMlj`OZSv_$riE%r=CIffF!ro9)((bC5F{xO}`f|!R>JVd6? zS#4x(jL;gYqFh$NOQMPzRI$uj#W`C1Zlj82PW?`&zMqWo1yKo%Ve@<^^Zd99mEpd< zNwu5}IaZ_w#A*CuXjB)P#sIq6O#?uW9@cC6^{SWl&4aedu2D2aSBJG;HHoqk+jKZD zO8f)b_-f4AXm|`=3#byE%%HKvGzPmMt{&D8VZi;UMp4)ZO&)$9vdD_i>E<%VOI96* zMW77{MOI-pW-1PoiX6%YoH3r>AJF$>kmU7aU{NOx%b)~)qRfmuPWh6Rathege#v(U zm0pr17iD_gY+1y!6a=7@I{ZA#K=&ciJzfL#%1a562_)ol)9M|s!8-b;{^Y;Hc=eiN za{|MehAG96)qRd>EMz2;5sAi&$t6jSm`IM*JKjz>u2+-mK1tkEe8F*jPiQ)o$cZMs zvjTIRySO}A0bz>Nfz(%_uMlu--5kau1zb&~VHyZ#2asj-!Dw>$F9L1u1GL{DIU$-p%KLzdnLa>dcTQ?v zZu9|_sky6FG0b;oAe>7z z(IhxcUxucSLooEXoLHh7LI#p+F};y}1Oe)9wB0>1xk7?P-xw$-(ZtHzG?v|*yj zFz8yCs0tD7MNNN&totUG&ERV%`-%$O#gvJ&3j0xqV_F|#-F~9pgGDqPU{H%~8dM^F z&<*l=mC@6ea9ANViOVZ;yO_L3s0zLMB>f(jTA=sQaj2;`xe&|np((NN6LVf{FC~gY zACH;jKI-q}eea~xTN06bSrtlKBDx~^%19RH9GCpD1lygH-dMYP*#5)qrCYHduq6U=9#z99Kko%MWj<-8k=@wLk>F$<#EE%|H($o;i8S&1o zE=*o2b)uIEQJ{Zmo@xX$xQ8T>@lKM##0J?G@TsjBI|;p~=Yz{;_38Vkzeq434A}I( zy#Cne#~cse4CBfX9dBi0Jg&rB`=MofHM~H^3

QArChZ*X?klwR>GzD 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 Yfsyq}!Xjj{@h85_DL!svuoad63*6y46951J literal 0 HcmV?d00001 diff --git a/sprite.c b/sprite.c index 8a85a13..c4abac3 100644 --- a/sprite.c +++ b/sprite.c @@ -8,6 +8,7 @@ #include "Textures/animation.h" #include "Textures/textureatlas.h" #include "IsometricMap/tile.h" +#include "DepthSorting/bucket.h" // @param deprecated void SpriteAdd(Sprite *sprites, int *spriteAmount, Texture2D *texture, int x, int y){ @@ -86,7 +87,7 @@ Sprite * SpriteCreate(TextureAtlas *atlas, int textureID, int x, int y){ animations = atlas->cursorAnimation; } else{ - printf("\n\n\n\n\n\n\n\nSpriteCreate mit falscher ID aufgerufen oder ID nicht bekannt!!!\n\n\n\n\n\n\n\n"); + printf("\n\n\n\n\n\n\n\nSpriteCreate mit falscher ID (%d) aufgerufen oder ID nicht bekannt!!!\n\n\n\n\n\n\n\n", textureID); } AnimationHandler *newHandler = AnimationHandlerInit(animations); @@ -100,5 +101,7 @@ Sprite * SpriteCreate(TextureAtlas *atlas, int textureID, int x, int y){ newSprite->hasDestination = 0; newSprite->selected = 0; + newSprite->sortable = BucketInit(newSprite, 0); + return newSprite; } diff --git a/sprite.h b/sprite.h index f63f088..87d394e 100644 --- a/sprite.h +++ b/sprite.h @@ -4,6 +4,7 @@ #include "IsometricMap/isometricMap.h" #include "Textures/animationHandler.h" #include "Textures/textureatlas.h" +#include "DepthSorting/bucket.h" typedef struct Sprite { AnimationHandler *animationHandler; @@ -15,6 +16,7 @@ typedef struct Sprite { float destY; int hasDestination; int selected; + Bucket *sortable; } Sprite; // @param deprecated diff --git a/sprite.o b/sprite.o new file mode 100644 index 0000000000000000000000000000000000000000..6d63660643765d0d26b8c79addbd434d402719ad GIT binary patch literal 3920 zcmbtXUu;uV7(ZPHRD`wYKoW@F8PP$YZpecWB<~P zeVE`*t|Uu*=FJCvFfnQ(;X%hB+emn*$zm3xW>GYa^I>L*EW~7f-}%$tl{O~$C8y{6 ze&_pl&iTG`)A!Wwjyj)@Nb-?mq%294kiwH?KEl`tX&_t4O7Pi-agF|_jsK}=^zy1k z^UE5I7irJ^7*!XwYp?YfqpP(0fPlFD1gCSQgiF~G=rK()ne5cK?F4V?{gvQ; za1l}$fhlxfLpS+3P$&!qtyzuEvP78zfT*bjN)ed@32%`wcOPlKGUdD-{c7#T8c>Y> zIx!oiKgQ_dRzlWDl->b$53In65i$odbG8x-?w?}OAe~jrQ**TdoD7bg8vR{!eVThR zpwW#QJr!`HA=(j&(O+V8h9#dYW$og_ob9;(zSM!y-PWB6t+zc)7|A}%J}ii^S(Uqf(^X^-X2T)044bb@VcOlPc>u9EbVaB zc{(E+?gqFLzTkjMIZ@0Be7kYT2Au*+*cr1FmoY_-vW6@5(}M*%4Nc-JKx1KRE<+2l z)&zUhEO#E)ytiJn5zN$rwA+o+Jt-;3%tl_oggM(R*>4zAI?p(y*VckMcW;x^(Z1td z$2*TG@m$I}uO!W^Z5p~`CY6r7WjLvfrSxa*lw(Gd$tLi#Sr7-?Z4-2rbjneN^wFF# zY}!g!OljVe+^gvMq4TDlA2KZ^ljOLSGKL*x&>Yb%%V}zAlFkU}Y;QlJG{* zwrmPa!h^gUa2!Zs{81Z1SL@ohZZtswLiPP~6E*ZVK7wxs}~+Vd&GOLqj?i#_&jDNKcKfbJB0vrfG@b@oW;F zkEoSO>-f@;62}*W7Jp<&S|1(F7zEO{oT0L+rd!ET)9$iT4r$99Bc{XH=VAXycpdmg z{DWUJpqCH?!na}z42c&I1VX$4hQu$4mO?z}!GErSKk(pq@6yjzQ5ThdmTKVJMO~o& z(;h!3J@|GH{*l1te)q!~(shsi4v=L&pL+0TJh+JgfpFRhL+UHQBcXqhGLs|hw~Wia zOIF~rUnVMW*)N||;Ic1BICm-S=z}mjHlK$jXPcvX*nz4eVW=aWga>mu61Fp3Ff!@1 zX~CM6am+A$BMz{#6!Lj1ABN)1nznNZY|xWAoEWn8v?((Af0F{{SPGRdT?8u5`p2RN%5riiaNu;6UfRJ81D?}MHq;SYetCC*A;OkF5F3xVEv%a$F*+- zTlDFz6%fe{5&tR*9+LS>=rAy7-y#7qAH!w_lJ(6cu8X|fN1KP2Iyhet_FfEmX(#bM zVDM{KnSWN;D^gL+mHA%)yxRUJh5gij*qg9k?fw_>LkTp-CxZ8nB_ZR>`>z%oO?pK^ ro)H_vHxOM`+N00Py9bDTA{2`#c&PIHw!vC8`!nMIFMdb8RB8V&LGeFx literal 0 HcmV?d00001 diff --git a/textureatlas.o b/textureatlas.o new file mode 100644 index 0000000000000000000000000000000000000000..ddd110bbe7d610d4ffe601c5132a5f1e973b3a2c GIT binary patch literal 5136 zcmd5=TWnNC7@pm2X;GjnA{RkZ9*QNQOA93iMY6OxWk?!YDI1BTSq{6~c4aU1>^X7? zSk1DAlg(liV}f8}^+g_hAn~PwgvDYPqQ*X%n)uK}O$x0^iI@;HS^s~|%y#y0)_^94 zKbbQ#-+cdNZvSjMq;z(;T`nTTMYfaqo@X%^Au(Iz!74-|_<`%FgFR4SsUHXf!I zliHz(w(+nE>p4QrzMJN;f|-Jn#|WXm&g%)R3(6!`K>CS&&k!=M zoCWxtZ!pn6u6#ranIqtzaWgt^-Sk%xl6@ZsV13TauP5_pO(z!^fw8>20=WQC?a(mo#}=S?D&<(V3I8MG@G*P=67yFEWhr$%vl(PP~W1ta+?V8WBX8{ zrDto4#&FR%RWwQlX!=?`%z}mP93;)Xgj-P-=DJdtRgZF*Ly$78)m-o>hl%&W3bV$D zJ=Bic4#q$3<9&y1CiFk}8iyn>uAG7S;Z1(d*a`=Fgnm)VC6}yRV#KLgOU-??FcgC1 zl4v5-q~7^VFtg3F&}D3Pwh)eT3w;H@H_|ljUn=F1G`rz0%S3CgWx7M)XKw)gIQ zW{1QM4}z803(6c`gMz{?!p(P~4Jp-B=A;A!&rABmT-VUTf^w%C2s1U%@Gz}e_>!3| zS!K>Sk0=w=1?dDHq4{Sft<2S?m04F-nSD{Yb9@Z^QAlUYzD8TXoh+%i)5^3fePVh= z-RXW<=HcNRV|;}}hL%cdzW!(*DMNzcwEcI2IJ}ONg?>`;NPP@dEdLU=UId&^E+DuH#3HD`}7WBBLgk2-$}{j=w~3&SKW(8XmSvnq?VC0w4@XA-_#vOg)|DzP%<8mBw#F&)FVFltRbkU}KCZJ1%|5ofs zV)wrl#t>_kIM{rH$B*&JBJ@Sw27{t4^FDdN`R@TGq}t;@&-LqNqtF)XFW}dpf&T6K z*SY?PAoAL-kEhUS|3~q013AFHgy8<;uR)#_d c4#^-jw#Bt|3FZzb{gs%UKy<4reeL>x1NLekqW}N^ literal 0 HcmV?d00001 diff --git a/tile.o b/tile.o new file mode 100644 index 0000000000000000000000000000000000000000..ab5577697d3b561c8f279c63aed45d60cd7d22fa GIT binary patch literal 1072 zcmbVL%}T>S5T11F?@4chmwHmcE{W8G9wbm|FCtzFy(TfJ*!+-ez+Utfd=wv{ujCWx z%yyS9yQ!c9Gqdx}d^7u#ypL{gI-UnwJh+Bcq)~uR0}Le`!Y=FpjEBRk-pM3xa?$iI z`GEWVppjAVcJ6b3z=P8zE?Hf)d#D?z1t%kMkn0jLO7GZ0q zF}W+3z+lq_5n;F^N5u0iQo>0p(56^R>Ugq+XkKGcz#OcI^mrTd4MzRVq$TdF|+|rcghdOZg8~v{0US lS_wK(IR0_Y-BIdZZM1EkqDr@q*1mg6Ocj4Bt5(K7{|^jnI4S@D literal 0 HcmV?d00001