From 607196d72dde88eac2cb50f836c8e40c079d3b0e Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Wed, 21 Dec 2022 00:54:14 +0100 Subject: [PATCH] Viel behoben --- Input/inputHandler.c | 21 ++++++++------- IsometricMap/isometricMap.c | 10 +++---- List/list.c | 52 ++++++++++++++++++------------------ List/list.h | 2 +- List/nodeData.h | 12 --------- animation.o | Bin 0 -> 2464 bytes animationHandler.o | Bin 0 -> 2248 bytes bucket.o | Bin 0 -> 1592 bytes game.c | 8 +++--- game.o | Bin 0 -> 3560 bytes inputHandler.o | Bin 0 -> 7024 bytes isometricMap.o | Bin 0 -> 8408 bytes isometricRenderer.o | Bin 0 -> 3736 bytes list.o | Bin 0 -> 6464 bytes main.c | 2 +- main.o | Bin 0 -> 2928 bytes mergeSort.o | Bin 0 -> 1256 bytes spiel | Bin 0 -> 35864 bytes sprite.o | Bin 0 -> 3776 bytes textureatlas.o | Bin 0 -> 4976 bytes tile.o | Bin 0 -> 952 bytes 21 files changed, 48 insertions(+), 59 deletions(-) delete mode 100644 List/nodeData.h 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/Input/inputHandler.c b/Input/inputHandler.c index 5653868..b25a232 100644 --- a/Input/inputHandler.c +++ b/Input/inputHandler.c @@ -122,10 +122,11 @@ void mouseInput(Game *game){ float width = GetMousePosition().x - inputHandler->rectStart.x; float height = GetMousePosition().y - inputHandler->rectStart.y; + // Add Sprite if(abs(width) + abs(height) < 20){ - int maxWidth = (game->layers[0]->width-1) * game->layers[0]->textureWidth; - int maxHeight = (game->layers[0]->height-1) * game->layers[0]->textureHeight; + int maxWidth = (game->layers[0]->width) * game->layers[0]->textureWidth; + int maxHeight = (game->layers[0]->height) * game->layers[0]->textureHeight; if(inputHandler->cursorWorldPos.x < 0){ printf("OutOfBoundsDestination Spawn\n");} else if(inputHandler->cursorWorldPos.y < 0){ printf("OutOfBoundsDestination Spawn\n");} else if(inputHandler->cursorWorldPos.x > maxWidth){ printf("OutOfBoundsDestination Spawn\n");} @@ -145,17 +146,17 @@ void mouseInput(Game *game){ float deltaY; Node *current = sprites->head; while (current != 0){ - Vector2 currPos = {current->data.x + current->data.texture->width, current->data.y + current->data.texture->height/2}; - IsometricMapUnproject(layers, camera, currPos.x, currPos.y, current->data.z, &currPos); + Vector2 currPos = {current->data->x + current->data->texture->width, current->data->y + current->data->texture->height/2}; + IsometricMapUnproject(layers, camera, currPos.x, currPos.y, current->data->z, &currPos); deltaX = currPos.x - camera->target.x - (rect.x + camera->target.x); deltaY = currPos.y - camera->target.y - (rect.y + camera->target.y); if(deltaX > 0 && deltaX < width && deltaY > 0 && deltaY < height){ - current->data.selected = 1; + current->data->selected = 1; } else{ - current->data.selected = 0; + current->data->selected = 0; } current = current->next; @@ -166,8 +167,8 @@ void mouseInput(Game *game){ Node *current = sprites->head; while (current != 0){ - if(current->data.selected){ - current->data.hasDestination = 1; + if(current->data->selected){ + current->data->hasDestination = 1; float destX = inputHandler->cursorWorldPos.x; float destY = inputHandler->cursorWorldPos.y; int maxWidth = (game->layers[0]->width-1) * game->layers[0]->textureWidth; @@ -177,8 +178,8 @@ void mouseInput(Game *game){ if(destX > maxWidth){ printf("OutOfBoundsDestination\n"); goto skip; } if(destY > maxHeight){ printf("OutOfBoundsDestination\n"); goto skip; } - current->data.destX = destX; - current->data.destY = destY; + current->data->destX = destX; + current->data->destY = destY; } skip: current = current->next; diff --git a/IsometricMap/isometricMap.c b/IsometricMap/isometricMap.c index 98e4e20..0947bc8 100644 --- a/IsometricMap/isometricMap.c +++ b/IsometricMap/isometricMap.c @@ -219,11 +219,11 @@ void IsometricMapDraw(Game *game){ maxJ = (int)(botleft.y) + extraPixels; while(current != 0){ // Only drawing the Sprites which are within Camera view - if( current->data.x > itmp && - current->data.y > jtmp && - current->data.x < maxI && - current->data.y < maxJ){ - buckets[counter] = current->data.sortable; + if( current->data->x > itmp && + current->data->y > jtmp && + current->data->x < maxI && + current->data->y < maxJ){ + buckets[counter] = current->data->sortable; ++counter; } current = current->next; diff --git a/List/list.c b/List/list.c index c19dba4..395458f 100644 --- a/List/list.c +++ b/List/list.c @@ -8,7 +8,7 @@ Node * ListCreateNode(Sprite *data){ Node *new = (Node *) malloc(sizeof(Node)); - new->data = *data; + new->data = data; new->next = 0; new->prev = 0; return new; @@ -75,7 +75,7 @@ void ListInsertSorted(List *list, Sprite *data){ inserted = 0; continue; } - else if(data->y <= current->data.y){ + else if(data->y <= current->data->y){ if(current == list->head){ free(new); ListInsertFront(list, data); @@ -124,11 +124,11 @@ void ListDrawAllSprites(List *list, IsometricMap **map, Camera2D *camera){ // drawing some extra corner pixels // if extraPixels == 0 you can see flickering in the corners // Only drawing the Sprites which are within Camera view - if( current->data.x > itmp && - current->data.y > jtmp && - current->data.x < maxI && - current->data.y < maxJ){ - DrawSpriteToWorld(¤t->data, map, camera); + if( current->data->x > itmp && + current->data->y > jtmp && + current->data->x < maxI && + current->data->y < maxJ){ + DrawSpriteToWorld(current->data, map, camera); } current = current->next; } @@ -144,21 +144,21 @@ void ListActAllSprites(Game *game){ int counter = 0; while (current != 0){ counter ++; - if(current->data.hasDestination == 1){ + if(current->data->hasDestination == 1){ Vector2 movement = { - current->data.destX - current->data.x, - current->data.destY - current->data.y + current->data->destX - current->data->x, + current->data->destY - current->data->y }; if(Vector2Length(movement) < movementSpeed){ - current->data.hasDestination = 0; - current->data.x = current->data.destX; - current->data.y = current->data.destY; + current->data->hasDestination = 0; + current->data->x = current->data->destX; + current->data->y = current->data->destY; } else{ movement = Vector2Normalize(movement); movement = Vector2Scale(movement, movementSpeed); - current->data.x += movement.x; - current->data.y += movement.y; + current->data->x += movement.x; + current->data->y += movement.y; // Change sprite according to direction Vector2 nullvektor = {0,0}; @@ -168,46 +168,46 @@ void ListActAllSprites(Game *game){ if(angle <= 22.5 && angle >= -22.5){ // E - AnimationChangeAnimation(current->data.animationHandler, E); + AnimationChangeAnimation(current->data->animationHandler, E); } else if(angle > 0 && angle <= 67.5){ // NE - AnimationChangeAnimation(current->data.animationHandler, NE); + AnimationChangeAnimation(current->data->animationHandler, NE); } else if(angle > 0 && angle <= 112.5){ // N - AnimationChangeAnimation(current->data.animationHandler, N); + AnimationChangeAnimation(current->data->animationHandler, N); } else if(angle > 0 && angle <= 157.5){ // NW - AnimationChangeAnimation(current->data.animationHandler, NW); + AnimationChangeAnimation(current->data->animationHandler, NW); } else if(angle < 0 && angle >= -67.5){ // SE - AnimationChangeAnimation(current->data.animationHandler, SE); + AnimationChangeAnimation(current->data->animationHandler, SE); } else if(angle < 0 && angle >= -112.5){ // S - AnimationChangeAnimation(current->data.animationHandler, S); + AnimationChangeAnimation(current->data->animationHandler, S); } else if(angle < 0 && angle >= -157.5){ // SW - AnimationChangeAnimation(current->data.animationHandler, SW); + AnimationChangeAnimation(current->data->animationHandler, SW); } else{ // W - AnimationChangeAnimation(current->data.animationHandler, W); + AnimationChangeAnimation(current->data->animationHandler, W); } } } - SpriteUpdateAnimation(¤t->data); + SpriteUpdateAnimation(current->data); // updating z-position according to the tile the sprite stands on - Tile *floorTile = IsometricMapGetTileFromWorldCoordinates(game->layers, current->data.x, current->data.y, 0); + Tile *floorTile = IsometricMapGetTileFromWorldCoordinates(game->layers, current->data->x, current->data->y, 0); Tile *topTile = IsometricMapGetMostUpperTile(game->layers, floorTile); - current->data.z = topTile->z; + current->data->z = topTile->z; current = current->next; } diff --git a/List/list.h b/List/list.h index f808ca5..e4b2c58 100644 --- a/List/list.h +++ b/List/list.h @@ -14,7 +14,7 @@ typedef struct List { } List; typedef struct Node { - Sprite data; + Sprite *data; Node *next; Node *prev; diff --git a/List/nodeData.h b/List/nodeData.h deleted file mode 100644 index d6ac082..0000000 --- a/List/nodeData.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef NODEDATA_H_ -#define NODEDATA_H_ - -#include "../sprite.h" - -typedef union NodeData { - int dataInt; - float dataFloat; - Sprite dataSprite; -} NodeData; - -#endif \ No newline at end of file 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..7ef6b27c45361af1075fb32e4f22bcf2ca1bdb80 GIT binary patch literal 1592 zcmbtU&ubG=5T4y8ZPe7HQYBE4J&B4w^5ar_kkt^gibxfMxk%ZpTPw|GL-GQtP&^c* zAs7D~Z>D;P-g@;Sxd;ITkz8^R>dfwY$-3-G2j+(@Iy0t`(vZm8NJsqIi>=mSDG3J`(xlwjDBf4Bn-$i`V}nQ zOnClKPYZlJNu`Z6g5>C{lT`JS3^EuTQTZgbqG!nYZei;Y@TU|Ey&IEf4E01{%m~L& z$5DSX<{3Sq93PG1y$^nrRF1b(KL?Z4wE?l`-Q(}5%jb_!E*3YmD`mUEU02KHSb^oX zn)z%#pUY=&YR$q`0csK>9!U&ULye=BA67sGWk8sGTSdgD5F=Uj4JfZ3gVIeaYssa= zTP(haI4Q|jI&Pm$zfp_Ji|QAwARt<3P7HpXL}eFdx0q*7qkArZd$SNbkLqn`Ug~?b zjxFTffuw;8_ijW#!}T@k-%bXc?HHtiPQ1Lk$Gceb`$relj6 z{GZW~PH(&zYNLx-zMo9Xy~}tF9eNjC0>W0sqhv%(dm*k|wZtzAd_mMnb16JXB*O4@ z#Hr`M@^i?go>|nO$oYjJh`yXJ?M46#mOhdNK`^5BK4MF#e|6rh|zr5%O&^uH0_9YU}!=F9&K Y!bn70KfrSZHHv>I`1M((?}Yh(0Ezapz5oCK literal 0 HcmV?d00001 diff --git a/game.c b/game.c index 4cd8ca1..ac2642e 100644 --- a/game.c +++ b/game.c @@ -67,7 +67,7 @@ Game *GameInit() { ((game->layers))[n] = IsometricMapInit(n); } - /* + for (n = 0; n < 10; n++) { for (i = 0; i < game->layers[n]->width; i++) @@ -122,11 +122,11 @@ Game *GameInit() } } } - */ + n = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < game->layers[0]->width; i++) { - for (j = 0; j < 3; j++) + for (j = 0; j < game->layers[0]->height; j++) { IsometricMapChangeTextureIdOfTile(game->layers, i, j, n, 0); } diff --git a/game.o b/game.o new file mode 100644 index 0000000000000000000000000000000000000000..046450b2290ae375a4a432dbf2e4f2574b033b1e GIT binary patch literal 3560 zcmbuAUuauZ7{Jd>x~+5FlFE?6It)5y%Iu{{QH&FpE?j#norZ0F)b1|5ZKL_e%?)gt zCdG&l?$qGZK#@M~O?{htSh|U1V=oi-u!n#VBBW-ZGK4*-_51EUCq22|tF0c$Ip6u6 z@83D+yC-F7_7#sH5Y`0pGTE9jO33nKTXNJCqvQbDPv+$6k7wk{gJAtG&!-MYq(%Y9obk#@#`O;yLJ;IT?YY78ocrqK=l`(qyBE1mem@1rA|<6z^@N1 z`hH%2=o^j>a7v5~I+jnW?&&|z>)cQwde3l?#-=**WKxM0hd>?%aGg?O7H)&ONPtpSF z9(6u&aMe3-O!6u|ipRj`I;2y)gQ@VSRs4blEPdAh0d!|~7>Y}XKZD|pt^Kd!VVR3` z&&5wIt2Z9q{)Uj%6J$CTdod84Rx^4w8wiEONij5^3r~c@q3}c`keeK%Fu)ig1K=|N zKYSggUz;NyBCI2WFU)KLo$sadgN(m(ng|#C!l9u(gEde-0(_LNT|sA42mBv+V*7VX z6|eX6U7$r5T?ULdKz`kHTK4v`>0kAlS@$yx^Ejt(<^pUOe*S({bB52Z6CZQo&%5vw zEXX-Qp;X{w^DWHy=CO*)g$ zrd3@_CQd22zk%4Yl37xzrhd2%w=p-W|*536ArA7C4SI$@Fh?9KTw|hcFm4^v`qIg}?8@ zuetD_T=-!O2+bZh?!td_;pcGk4t@eACGfpkKRP8u%wJ6F%6S-d%^H`Pq^T)I)SXK4v` G`@aAp*g(Yq literal 0 HcmV?d00001 diff --git a/inputHandler.o b/inputHandler.o new file mode 100644 index 0000000000000000000000000000000000000000..1f193a3c7f693030ff6810e754536d20ef4cbcc8 GIT binary patch literal 7024 zcmbtZZ){sv6~9ih&4aYh*)k|<5&qCtZpqxHorDUsa+|#Ng(WnkjoL|p%#B}GuZbP( zmo%MN337t^orFJRnDe{u zUcc)%zpjESx$oZJIp=rJJ?Gp%O24nSAFT-lm}~)dh`A$)GPeGCw;$u(7~9M?v2Mfu z#|b017U|dS>dS`x`qB!d{f2h2(66Nm54BLo@?xEJ8uedT}t{9f`ds4pEul=*2 z?a^08zCw07hIh0*bD3Qjtn_n-88LhrrjmVI%+s`p z4skav34*3|bZDVXg~Rr;y})BQW#qqIymK4Tr{Gg0@2bI-fh8Iz@WtwZr*%8>4YA&$ z6L<{Wz!zzLHSie2!ycV_lvFkF8&2Shl7I((!$W{EV&0=uuR&ic2YzEj2EOP7zN+P? z`Qu?X^7;yuW2zv+^@Ft;inw9lJWc6H82P##5kA(7%>^Sr0o2Hk%{thui#S%gqEm2m z7G0f12U(IxuFz@N`m!5+WQH7?rFF;ZU0Ci0DGH&Jk8RHtOV)ngH?}*nP%Mnvkb`YB zSf|0#VK_{ya>`?2Vt|(MG$C&9!RKli%X5Ko)tGGj12-U3BS3V_m?&uDYqa(KRr0Yq zdw%Z2F9nv~LxO2<@1|eF#1PH(D68OPXDzWC^K-=-)y^V2N*1@TD3PXuJu&)d(lG?j zC3|VYA?p!eFno^~5GP}@vr)v$2niD|)FSUa)K1G-8ue0!sY$TduU&lCU01ylFiJTy z@*Rs>ZB9}W9m8F}KkLvfiz{AH51pp)lLEYX}=gqTzF(t--)zL9(VKC`|{diN>F za#@ajLu{La2fcWh^Zo==*`1H5kG%ATssv}doO!h|_a=-3xtsVf&Hl^BrP3|b1uxC< zg7qCf1)C@gpLDBLE#f*C_7-svwhR0=LC?r{Mx1YKuaTQ?H0(~UktcTRi(HZ`)EoJ3 z((I}uAF*lYIlbzVHvZ#US^}qrr)5gVFalcFC)d@GQ72D3UOUbeRq1oc2uhuCoFZd5 zbnW?n|5(UNz+$fWtoEZ9DWr10=f@VgODsRN#5?jhk?`0u!P;-4$XhbQ{%{bC%Og=%&S6AoiK=r!uA3_m2u)drq3#t0IsJ|-&M8hSMfDCG z>RwY2SNRH*r;t44jlYY==#4cs!e3Qaq+l!5#z}BxM22J`7D297Hxn;HL}MCa$I&Pj zL^SE(nr7O>Z~jB)26TDC#_1+G??kzP$lChMgC1u*L*slbg1hFRi!8*p!PWG9`nvbxHW@+P}pMTkvS-K@ONZlHK56jwjFzb=urkY4-b zW*I~@v6rqRnpdlCls2hz13K5L>g=G!BUGFPZv|Wd61WB+yc(EtFrJ7RO2iB$;^&kI z;KhXTW#?gIJ;8J0z7^?>zGB$J_lcVy9SHBnty8ovu1JS|gm>unD^P(_J-*bjL6k6v z@mg~R^nkf_;<2qx&$(8uk7pIc9+XzWTZbRps>ijOx^tV%ly-dBI^KUIJ)BBpTg|MM zOvSBaIu$-K6hEJ0)rE>R?~YXhueGvcEiGRSM~;~(E1eEEH%IqJn|p`$?cKMpdEedx z;i3Jz1Q?bWV|7FlrXNyp?3>-Jh6M`1un*7zVvIK&TBGw}f!DfNU^EoiTK`mVij>2I zZxgbMFh0CF^uwB#O;75%+FC0>T8=y>boQt^wY#|j>|Yl0k4eAGQCkdxAWYC0{m_c| zN6u06kn;obYnZN%{i{?>URz#mrL>kur4kF#@EJv)ua&Sb&<`?i+f6_<{2<}rk@h?u zgndKcZ_*YWPmV5uaaw zmJF%!eAD*@AN@l=(tl62)Cb9L(l6dNs z0kb`sGPBTuE=SlPwA;YO+Op|E)5;|KI^shuXGv_HG)JxBjM zM%9X#p?5Ts9z2!K3?y38=}ZEL0L|K#<&GU0wybojGh=46W}*`8G6&2!P;w^AP7Gy| zmf4aq$(pq%vsPOwYi6t?@xF5vb9SeOgeSedS&O8-eP_@0_Q#V0?3{VwOgf%P$mP9g zUT96zK}2pI&BO=IlgUAor-41|eE7M6Gh>4u>}Y#@@U*~D&h%bpUl-#UAN)ffTy9)1 zPnPnIhBNC)`bmE-E4b?Cv=6=_a4-KZu@Aj?pASCjgYU%RsliXxpMyU58w!rISFWoa z1k}9#)Ps~7#Gj#`)IX%)*h&(gRdAJmS;6ZS{Z$1=SMt;#=+wOHiYqu|QvaNS*8Vte}jUDPz2O~t9krD;Ie*jZ=tO!`fA();{5gMKP_J zKkuX8=A-{DAN?B&{tWpoK{>XRX?rZs{W{gtNLL$Lk;oAPqtRkk+^(EBs{o$M~r)Ld9Si)_QIeQKSN(D<9yG` zUd9}VM=iS9STqs0;w*Y5n`O~V+8Okv2M6h;$)c&WWk%`k_&mQ<#Q2reaFni_A-aez zkPVp3v%USeOym;&uWy*Fab%0*q0AK%y+wZ}p|MGi;hX8SZOcwUu|xf7&ttsg@j{B2j=nGgVURPg4k)1DEu`~ VZJr@N>#Nz13jZzDnEGD({{j`!mTdq4 literal 0 HcmV?d00001 diff --git a/isometricMap.o b/isometricMap.o new file mode 100644 index 0000000000000000000000000000000000000000..84bb686fec21f72306492392e7bba5b334cd265e GIT binary patch literal 8408 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 UDWmkRCSQ_2qAa1M{PN5H8|S!oMgRZ+ literal 0 HcmV?d00001 diff --git a/isometricRenderer.o b/isometricRenderer.o new file mode 100644 index 0000000000000000000000000000000000000000..c43f2fe4509727b4a7490c652e3ce6288cd0be9b GIT binary patch literal 3736 zcmbtWU2GIp6u#3fWl_p(1(gI7$3zX3x}ha8min_uFC7x8Sg81*)Ma}&*+ zDsj{>4v;<>d@*ZMLyaUfp$~oFVfz!d7-Ckl4;!`KyBfo(Ap!jEQNo=9>Tv*7{A{z3vWN&56#=ynHpfJngV<4NfY)nu6{-jX& zVcD3LO*$u=#0)ixH>QE`$0f0~up|cPyts32NqqY|rvok7DO(}`TT@s=1=zl@$n=V^ ztDr9nnO*gWS{?|y1H?cWpcP=XV{49n@dhnkKH~c%C(6@P%MJA`E%e^a>SPtx#k^5! zCZtM?8A~8lV+QH&Ep>}+P>)62wrq3y;q>s?E*rnerXZVd_+_I>Hs17``vbY`=w(l7s1t0tYTRo+R9!%aFZ3x71~LuEmyMQ|;4(OL1zHE!wuap5jjf7i@FBj{DxyqLpK zOS~{=iA28KKL`C76ce{)oK*4tc+}BGgDfR zt>neVYOAn@+LZH1Id5hv>rqx#Q|9TcJ=a+{6oMq|!1yVd7jXU|7n`*cFlKGJ-Ox=s zY8}eTLp3jyz1+vpoz=H4djV!eC>ZoQ29)oEp9hTV!=vQ<#ylOxm(hpEEM*K8H%kGq zPI~==$Ja7IYB!8`K_?ww?T-e7j_2tF2yiD%+FKU4#hi6Dj2U!t@oP&QHR#0RXCT`A zBRGmC&B|Bhsfte)V7$P>&$}JCc;_*(>F1F8^_=8Bf`0Wuw(N^{|GosfIq=( zH!*nsmcXYC2b!Cx?(=;kfS2tPVm{wu5~t5sjg}8HuiB8Zk^EI%WdOiet9GT;XT8-* z>`_o3arj%c0v3cPu+r7i_Ilv20FFF7-g+OvA|C##2mX-<{<#NE;_mJTBgAVWNGhYH z3694x<(!sLmDQg14Alr=j7X279gV1pk~kiZYO%U1EAdk?txf^HN7UqLC8CjmfwUHm zoEeD3&I}BO<7Wxk3iab^fX4^V-}pNL)(!+=Vf%6BI3B|W!$Q0X9*!3rIE+vYFFA0W zP453RCWM7N55dE6)dSCY;9Ie1SZ{a4rjmK_(?OFsO!y6jsTDZ4!iIOV}~g$U;my;WDuH)%-g z;_n_4EBzFml=H7ue|3>ayFn4@~IluAj%d>vGqB8e);t9Uo%( z-vygQtreeT^=pn;6y5Rv0(Kvw*8l(j literal 0 HcmV?d00001 diff --git a/list.o b/list.o new file mode 100644 index 0000000000000000000000000000000000000000..a5c69b4503ce40f198fd500649b9f3f6f08f1248 GIT binary patch literal 6464 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 literal 0 HcmV?d00001 diff --git a/mergeSort.o b/mergeSort.o new file mode 100644 index 0000000000000000000000000000000000000000..b9bf56a5a12ea2b7da1d0ba555aa2b6e52667180 GIT binary patch literal 1256 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⪚EPGDDub@52)%7eiWS_WEs zt5mge2G`;}2WtWRm9#oXoW99;)Lp{W)hkKmrJ{= z&e78CBi#hT-5RdKn*>s|s4sILb#;KfB-`D}u3i9J;ihBvwaJdLaL2KelX<^Gg$@`F zIpb>R)Wz1!MBVr7kQ*tq7Fijx`yCbYX97%&p`xJ8HazC<~O04pBj3zUu@D`rn~v&22{XI=re>m#PTEU;WQqvZ3K<} zX5ZX|=W1$9kLAhCpW6rA+BW=VU)_Ymx;&WniJc6;o|aqOE+UEH?`C1}n9%IYE9hwZ z-3$cxzzx6I_cozkzBuOqhR%eyfS-HnCcRPbo13syXPl|O23vO^LYo?Xv#)Q$UQL*3 zKU4k*H0KKB=h7|He)j^#_DB8XG4p2~>gArnimpxqktqJ%{65WRLV4H5 z#gHN1x<7-zMNigEX!JEAOxlF}vYtEtcFk|XvIT}yg(iOk{jUsuvrlJ2bDm=8Sy%4o zJ4m?uueCyBbtpFsYY>CX{2v3%&2RQ~O}L3j*OQq)_t)I~Bejaygmq5ED!8$m5y^c! z?#ZwZ@iFISTlB_7CcR0U@R#86;NS3@bG5C<$^SZdsiNUG`_w&}-={l zS$@Mma2FDI27)RqQi1bn_)Yi+VBGvxyC!W>;VdFukKr@nVc^{SX5W0)t%}L$X+#)4 zll~hbgc<$KI^M7OGwCzbvEBhMVI}x?KZgH0HxO~d?+%Ucag%oI{EZ*tIK-}H^fCU2 k{ln<)=3jlMN}Z$qvB8;qO?na{+4y4-MR8&VLq^j2e=`+IfdBvi literal 0 HcmV?d00001 diff --git a/sprite.o b/sprite.o new file mode 100644 index 0000000000000000000000000000000000000000..6975c49c0bb722f0657146d3bd48699db8816e8b GIT binary patch literal 3776 zcmbtX&u<$=6duQEYf2ltD2G<9U?WlF{)m;N9B74*o!HGpYC=fk7D3yvU9THA_S&r1 zkRmEng_aCUrQZ4nzyXO%RX9`}AWf<|kt$>$hp6IEpdhP7Y9I#!LNf2o&e)qJzLY1; z&YN$(dGGC;_twdKi6e(wd_E$@M_wY0l|%`NKIziA8YOLHD@juJ3!VB+q3rxBWu;}x zl2tZ%Kh6^O=;aMaq^w-U`O3l^l4GMsf!_uECE!+Ue8CaT>t)J`m|1Vhmf zD%6e!>}YE`_-J7zxOaXfc;eEyI}{CM#wy@xv`aaaQ_VV2H~t?oYbZP$PkY0l>JI=AGKczP_~h> zV*xuBVuwR<_EVhQ=2@jvx0Hw4=Z@3qGF#%_*c?|#jm*lkvE0-I%(MiSU88ifd>?K}^16%x4s zOVPEt2vGY~$VD4vr=TpHT(}c)t@b5me|nL7!%WwxokSPC(uK1UE|TD4WUY(M)PAk* zVkE?lh1jeo5hqujT80-6@xr$gaCP-chu7ds4Bo~nhRzrci28>!Q7nE|T4c!z8@%)N z3lOD~O_o@uC8aj7xJ0LB!W`RSCl=Z5Mz7rfYr-7l zR@O66vAC8Y84wKG1(oph@(7nPLI>sjR&S+0m)I=yh7Y>q5!C5k?9OHAK;E5T1KEwn zbJ%zO%WfCP6BT)WmqhMJL_wt-eHLH9QNvRGiYwwn0`CCf_I4p>VGegdj>krZ28Q|% zDam5SIHRQWf~jk&rKgm`B}20^c|$o`Ff*1OOQkx1zgdU__L(|xm0ZSB(rUJ-jq9c| z5Ld#xQ+pJ(ls==IrL=A+`ILhj8ExEBPU{n@VOSj<9nu&f{e69hlyJXpSoyrt-5og) z=^iWeboKOf_jDap3J3NGP>~o99v-bQ6d3r)>>o;!7UG*hOn!@fV*LbQDDBQfeD919 z-(<+QbIYc{6(H{d90y7#K4NX5OD%m{H;w}VmI{m)VW8Ya<8r_MBmY#Z{~I6B6oB7= zf$|4FBquTDZ>c(V(8v3@2l6~VBq!h4{{(T6QMVue%jm+{Sm%kA8UdSHo;E;j`laTfC9qv3iF#V z5dTZyJePod0AoGBR|UV*4+;p+EzFqf_4uDP!LK*L%S~`n9W5$e3PQ@N3bS>rQ)0xMmX6jirVnOYZ2vn0wBBzT* z5;616Ld)lJ@VzDxBX8*u`1W@4;uPyMMkxX%T+mJH9GpQ*`uJGdRCBtBkA^!a$A&*T#}ujAthQzgd%<@hQ$H=^Bq^!H@&7#tIpD!%{BrJveW|;t7sPot zhPszK0vLV=yzx(q^WM0;@t+koz2|R;^E0sT7Vmi-HrKoVVf+CEnRF(C_m3qZ&&&JA y_woA1Ba@;auZb7NZwvbIo=2PBy9bDb1@SvvxWt=3{C2E&eqO|Hxz3{MJ^wG*#XP70 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 diff --git a/tile.o b/tile.o new file mode 100644 index 0000000000000000000000000000000000000000..6bc1abe0d895176796eeac98a8500492c7198c00 GIT binary patch literal 952 zcmbVKOG?B*5Us@VyK^VFX;&&}lMjNrkialzBklxul8He@^C4+rX61D}hR1N}6+D4f znX0j;XQc&|SMOE5{*jl_#kuc!AmPCo{4!Aijx90ykrUW}b%1m@JXL#XQJK0{VW?vr z-ZW7VMPU@2s3zWLQHj>CIY3aD%b4lq75L!2ktX3Wx3-nm98!M(pI>t#5%cg==o~RC5!-4v~vE^PN# zVH*u}_7%sNI9#av4m;Q&ZAk_g6Nd|R{kzy$!~C!R0KK$kfN4jghSis_5MIAL_pMR&D>)^okof8`