From 7a23951a431e593052c2a5ed1817d0e38bcf9c51 Mon Sep 17 00:00:00 2001 From: SlyVTT Date: Sun, 7 May 2023 20:24:10 +0200 Subject: [PATCH] added normals and borders for all tiles --- fxlink-image-2023.05.07-20h12-1.png | Bin 0 -> 3684 bytes fxlink-image-2023.05.07-20h12-2.png | Bin 0 -> 2186 bytes fxlink-image-2023.05.07-20h12-3.png | Bin 0 -> 2263 bytes fxlink-image-2023.05.07-20h12-4.png | Bin 0 -> 4363 bytes fxlink-image-2023.05.07-20h12-5.png | Bin 0 -> 4468 bytes fxlink-image-2023.05.07-20h13-1.png | Bin 0 -> 4249 bytes fxlink-image-2023.05.07-20h13-2.png | Bin 0 -> 2816 bytes fxlink-image-2023.05.07-20h13-3.png | Bin 0 -> 4468 bytes src/level.cpp | 305 +++++++++++++++++++++++++++- src/level.h | 5 + src/main.cpp | 74 +------ 11 files changed, 319 insertions(+), 65 deletions(-) create mode 100644 fxlink-image-2023.05.07-20h12-1.png create mode 100644 fxlink-image-2023.05.07-20h12-2.png create mode 100644 fxlink-image-2023.05.07-20h12-3.png create mode 100644 fxlink-image-2023.05.07-20h12-4.png create mode 100644 fxlink-image-2023.05.07-20h12-5.png create mode 100644 fxlink-image-2023.05.07-20h13-1.png create mode 100644 fxlink-image-2023.05.07-20h13-2.png create mode 100644 fxlink-image-2023.05.07-20h13-3.png diff --git a/fxlink-image-2023.05.07-20h12-1.png b/fxlink-image-2023.05.07-20h12-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e4857b5fdbdbbf9f5629cdf93d050eac6aa4c40c GIT binary patch literal 3684 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 literal 0 HcmV?d00001 diff --git a/fxlink-image-2023.05.07-20h12-2.png b/fxlink-image-2023.05.07-20h12-2.png new file mode 100644 index 0000000000000000000000000000000000000000..70368c3791f22d477ab5c95d1a944fef74f27028 GIT binary patch literal 2186 zcmb_ec{tnY77l9cWd=26N>z)htu2bNHAO`wDr5|;=z^A_DojEMwNwp7(JBoYOT}*5 zL9DS&Lp{O>n(BhyY7i1PB|_40e{mo8_Re$Xzxn4o-+I1t-uImIed*_6XBA}CWkDd2 z0>s4;4g!f~0{vNOaiArrQ|^L5(jE}U(_R=n>zxT&V?bSM7Mk6IOX&k8%gOGMmzR^1 zlrT2cm)4gy)0Z|h6m|5aRSe}-luTP^lM;Jyd&H8HtgdxDpg;3|ZND;XH_EYkpo)0N zXvUQspps*wF_vB+kNA^336N#rgDuZSW|TIxjz*#$URv;%n%GQsV<%E-uPK)zCnYK= z=~#_*DX~Dzq*b(Q(FA6553vvxJ-wBB{BV7uGtVuA(r+vy*<_p0O2s`2qEwV44pxRc zTnEcahnas=6z~}=VS#|P@`h1F&3??C%TS7l91driR|`ydOSRGMon&8)vnj5o(=Sc zOb+E5E$20ICUm`nPOz((5ddxI`uEL>#|C2K<5yeSYzEJS%|HYr5Z!MHQ!rDQNum$V z?AqWH8Go?=elU>2?Bj?B=y*@LT9~uPX`9< zj=GM|O|0`7pLEEKdI_1y;3Q6A6hXyp@e}V*vPlm$yohr=ugomio_?_7h=t%?Q1`jB zS*)-thsQIsbISCgV1?ETWj^n7J&P%tTG~z?U(FbeE%#q%<6C4XXR}eRCu!m77cDLi z2X=D41`yoK`!k>{d`@J819Bpxj=Q(ISHLwj;2uJE@gVoc8q+vcYHdrldFtiFouc){yr0PM8E%Vcu=fBQ_NkcUj5Ly!b#|`?te9v2 z+nO(84+sBv!MDpfmV8cwLZ)bF2`gktO|c4Fac|HxGAdVwG7x+`71%++kb%HspqK@w zcjE8a+5yIf2XoawY+5w-M9qJ<9~-xpXYiKBG~ZYi@)= z?Fn;%!QA%Go5q(_SH2ksCRf;t?)e2zCU5l2cTBBV2>h%gLq|tkD)$qnwI@G+Rbi#s zYgCWCYBLj*dJYz?{>25*d*QT-Q0<#`YbSa)7W5EgKuN`XN7Loy8=agncUfs_8+Iq1 zcF_m?tt5DD0#UH2hp+@9U$k?9=7+FO+37HyvH)iYvG>gZ zG>FJK*bZ%N0(=%DZIG^_(e77r0S zB1#>g_^`?}=ex<9lI1L^@M{zmdQWgZyDBo6#`FdB#m2In8(L|xsXZ4?gJZ^-i z*Ybbw_End#hN{51HPgcF7vJ(%v;CO}BVyt}rF3=v`K8(rYux z=jei-(+|3~Z?T;xxXZq(<$t*U9B27f0*q=USpw(O(y$rj1eKUut)zn@HDdzEWG!Df zx-yQWGG-eJ9hw{4w&CwS4+Ozx{hbLAKy5H3inqo7{e4M_xHa@vD}8Rl6SuKaEE>`6 zeyrU$D=$3540t*0(0+O>R*Nl}QRV7*dMeIWUa3eE0BOFnqu^oB8;uk5UBhyVdQMq! zNt|bZkw1;dRIh(N(ig}dbN{*S5yU7L2cPQ~0arNj4`3acvMZ8+QPwgL6~9I7{Xfs$ lF5h3&qyN5zf9K-s84X=*jC5eS0Qh5oAWksH2Joe%e*xidAY%Xk literal 0 HcmV?d00001 diff --git a/fxlink-image-2023.05.07-20h12-3.png b/fxlink-image-2023.05.07-20h12-3.png new file mode 100644 index 0000000000000000000000000000000000000000..69b4af287b261bcac84295357d151c3a07aa4b29 GIT binary patch literal 2263 zcmY*bYg7~07Dg%y3|B-+K)ppYNHK^~d=p+pLYaUDm<$W)OKl%sTt*!wF>g zZYJy`7#J9ArUNw4z+l5|oKKh-;#j`(IorU%L_nu`LD$Qaqo>m>juUSN4Ro67^^vZo zPR)TPjOc(F@15av`IUVICGmEx)}|&DN$uT&yD}T^Z@p$z_SL_-t!C_99?_{DERVSB z+xy~N9NVO-dB^#T1s#F_nMrz;y)sLH2b!5%bnD3eV=x>Srmb( zj{ftB+fU!utQ5AL+11q&@fRbumcA<3Kd#qAruZ@RuD39qwqz!{SFXMzy=(m7 zoWQAPzU0-*l(-3E#%dH_cf9{e8x#Omv;P)%F4E0ew&5`MV zsAGP@=F$K)ptOFzU0V^^`Y7a~MUi?O+a+fn2PHT3M&lpE5lI12mb3Df5TQ!*=!5BM zVmx`(E!9?*QxxMf2h}UJU7=3TMB6aK0N#==tJaFk%ZDB>w=U`IYON%sJZQ4iMJqlu z?~`t48$A8S?435I)+&6TC5E&$Umg#MYE}3Y1HpQo)lx=~EGLi1mXg}M9fy`X&NzKa zI0jlNKX!{fdr}AZOl~vWd2va%NtUzAIv@JCb@|Y8_8BK?(wAUQa{7hw#cx{`Z@9qG zvG>IpZN=)U?^-;A{n^%fOx{;|HTTkdurB+)9s}mYnX!_Y`suXA9H`d1d{&xPDVxu1 z$^LY`su=e8XK!3bpMBESMO(v`@rC6v8~2z)f6c ze21dN>tE0f+pD{EQoFZJc-jLs=|8`83-C&3u3YFPQG<)uE6Ewrd8qF|HB9rtans_^ zMO4sKE_%LR{QNAy(C_7?2v{e?9!J>HNNVt{bI>Q)bbj**i=sKS@X~|1X8L!TO#7= zl%8WUfh*~1YfM`Urc)_(qoH-0E1EF@nmLss`ZcxvKQ*1Y?|)>-rx-DxEi?P`fY^J? zel`$W!|Z1P%1UOu3wM|$46Rl_jR6Xj>@AXCf2C*6kL3^($Pkq9MEBZ=UB1$mJ z-UrD>(`h0zevIgUE}!2I42@K6#bR)6v^@Ul$@A7dzG%!VtcFn5?u82v;lfkG5^9oJ z_CZM2feStOF>@0xWfg&;D;l=c4i}Ef<4aDSm&k3wkO8bFxvc#Kf#)O02f_hi$uMjt zbc8IEJ;+H1aA9HMiK~@Qig3rSS%?|eH~As!r6FGGH~m;mM45M1>b6)9@@qEZsCxQy z2kDl|8Cy`PfS5M&I`yW1?C-_xDR>q^J~?hsc|4f`qA1JGz3z0qel`k>?i z%11Ahg`*$(=K$q88Qe2VT(JX#W{GG4&EW{&kc%*cMFJp8$m~9irdBXdokFRV%wM>aZ_0qRfv*;Q&3x51n6A9=yQWcovZCYmHPBceak(OEhb<2# zd~&{wpIk5dncTI`l1TA3F`Dezg}0M=DNv1L5s=YOVbjso0g4HLigErmDjuYm_@EIu z_eLXdei9vfMPYx1$`r&S_F!8-<&r;|DP;El1jJS``w<|vn%VyYpsZlVyK{$qg%i=_ zhEj%vN1HR@v%1()FRIZSb8HGG9NY~G6-4P5;Kf-YWCt4I+!j2qAVOrY1LwOzyICU9 z9?Y607TAH)INu8fD~JVTut7m2?g2@>v@3CF$QYaI80A^nsSr_h5{%=p_tIBsmf zZ7yI)BFITc`K)l7Xak?6q=`23S-CXP4nFGuO@v=PksRn8)o7k3a_6&1WD<)ZaV3+o z7!rRniOrA%kV!cV$#F6%k0CkCMF8Q%9l)rX`4a~UqZ-js)*!_kQ^3dz4rB}?#T>{6 zMlN%p<1pgFfdXJ;69>8oBSUQH28>{As1Qa{*w7;wp|hb*7}>#w#$jZV11-bIV~*4W zMs9JWyI~}VBRv5ldpOcS7tMurWk_q|NU81wCv9E+ zO1?&T6Y7-O=n7JL#f?*qk0W3ufPz0{#C0y7#V>COQ2m>BEN{FobpV^<`aN7~wZ2iH zuJRR*9b(d zUsQgythI6uz70`-!+CP8)rQx(&`WLR7FY3sc_aK$^7l2Wu{rG+_F`foY-nwR?!%z{ Iax#kbe_|DYEC2ui literal 0 HcmV?d00001 diff --git a/fxlink-image-2023.05.07-20h12-4.png b/fxlink-image-2023.05.07-20h12-4.png new file mode 100644 index 0000000000000000000000000000000000000000..3589ee09f15a37d060657fa75c133b786f0ee0a3 GIT binary patch literal 4363 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 literal 0 HcmV?d00001 diff --git a/fxlink-image-2023.05.07-20h12-5.png b/fxlink-image-2023.05.07-20h12-5.png new file mode 100644 index 0000000000000000000000000000000000000000..d63b1462fbf294dd3aea549b38cd14630eb92fc8 GIT binary patch literal 4468 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 V;)z41Jm8mu0>Z`9xzQ;o{lBKjlw$w@ literal 0 HcmV?d00001 diff --git a/fxlink-image-2023.05.07-20h13-2.png b/fxlink-image-2023.05.07-20h13-2.png new file mode 100644 index 0000000000000000000000000000000000000000..1661d7ed6dec638c89822c413ff7e08109ba64a7 GIT binary patch literal 2816 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 literal 0 HcmV?d00001 diff --git a/fxlink-image-2023.05.07-20h13-3.png b/fxlink-image-2023.05.07-20h13-3.png new file mode 100644 index 0000000000000000000000000000000000000000..d63b1462fbf294dd3aea549b38cd14630eb92fc8 GIT binary patch literal 4468 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 wn{5X#`|9}2TQA5Kx`_+M8uV=JQ~L$}EP0e~pu #include +#include + #include "utilities.h" #include @@ -17,9 +19,14 @@ extern struct Map map_level3; extern struct Map map_level4; extern bool drawbackground; +extern bool drawforeground; +extern bool drawnormals; +extern bool drawborders; extern bool textbacktile; extern bool textforetile; +extern std::vector MyLevelBorders; + struct Map *map_level; @@ -51,6 +58,7 @@ void Level::ChangeMap( int level, Player *MyPlayer ) else map_level = &map_level0; this->UpdateDataMap( MyPlayer ); + this->UpdateBorders( ); } void Level::UpdateDataMap( Player *MyPlayer ) @@ -77,14 +85,14 @@ void Level::UpdateDataMap( Player *MyPlayer ) void Level::Render( void ) { - for(int u=!drawbackground; unblayers;u++) + for(int u=!drawbackground; unblayers-!drawforeground;u++) { for(int i=0; iw; i++) { for(int j=0; jh; j++) { uint16_t index = j * map_level->w + i; - uint16_t currentTile = map_level->layers[u][ index ]; + int16_t currentTile = map_level->layers[u][ index ]; if (currentTile!=-1) { uint16_t xtile = (currentTile % map_level->tileset_size) * 16; @@ -97,6 +105,20 @@ void Level::Render( void ) } } } + + if (drawborders) + for( int i=0; iA.x, (int) MyLevelBorders[i]->A.y, + (int) MyLevelBorders[i]->B.x, (int) MyLevelBorders[i]->B.y, + C_GREEN ); + + if (drawnormals) + for( int i=0; iA.x+(int) MyLevelBorders[i]->B.x)/2, ((int) MyLevelBorders[i]->A.y+(int) MyLevelBorders[i]->B.y)/2, + ((int) MyLevelBorders[i]->A.x+(int) MyLevelBorders[i]->B.x)/2 + (int) MyLevelBorders[i]->N.x/2, ((int) MyLevelBorders[i]->A.y+(int) MyLevelBorders[i]->B.y)/2 + (int) MyLevelBorders[i]->N.y/2, + C_BLUE ); + + } void Level::RenderSelected( uint8_t i, uint8_t j ) @@ -173,4 +195,283 @@ bool Level::IsOnGround( Player *MyPlayer ) } return false; +} + +Border* Level::MakeBorder( libnum::num DX, libnum::num DY, float x1, float y1, float x2, float y2 ) +{ + Border *Bord = new Border(); + + Bord->A.x = DX + libnum::num(x1*16.0); + Bord->A.y = DY + libnum::num(y1*16.0); + + Bord->B.x = DX + libnum::num(x2*16.0); + Bord->B.y = DY + libnum::num(y2*16.0); + + Bord->N.x = Bord->A.y - Bord->B.y; + Bord->N.y = Bord->B.x - Bord->A.x; + + return Bord; +} + +void Level::UpdateBorders( void ) +{ + MyLevelBorders.clear(); + + Border *B1; + + for(int i=0; iw; i++) + { + for(int j=0; jh; j++) + { + uint16_t index = j * map_level->w + i; + int16_t currentTile = map_level->layers[0][ index ]; + + libnum::num DeltaX = libnum::num( i*16 ); + libnum::num Deltay = libnum::num( j*16 ); + + + switch(currentTile) + { + case -1: break; // Empty background + case 0: break; // No borders (filling tile) + + case 1: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + //45° diagonals + + case 2: + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 3: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + break; + + case 12: + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 13: + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + break; + + + //22.5° diagonals + + case 4: + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 1.0,0.5 ); + MyLevelBorders.push_back(B1); + break; + + case 5: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.5, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 6: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 1.0,0.5 ); + MyLevelBorders.push_back(B1); + break; + + case 7: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.5, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + break; + + + case 14: + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.5, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 15: + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 0.0,0.5 ); + MyLevelBorders.push_back(B1); + break; + + case 16: + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.5, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + break; + + case 17: + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.0,0.5 ); + MyLevelBorders.push_back(B1); + break; + + + + // 67.5° Diagonals + + + case 24: + B1 = MakeBorder( DeltaX, Deltay, 0.5,1.0, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 34: + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 0.5,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 25: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 0.5,1.0 ); + MyLevelBorders.push_back(B1); + break; + + case 35: + B1 = MakeBorder( DeltaX, Deltay, 0.5,0.0, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + break; + + + case 26: + B1 = MakeBorder( DeltaX, Deltay, 0.5,1.0, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 36: + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 0.5,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 27: + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.5,1.0 ); + MyLevelBorders.push_back(B1); + break; + + case 37: + B1 = MakeBorder( DeltaX, Deltay, 0.5,0.0, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + break; + + + // Blocks with 3 sides + + case 8: + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 9: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 18: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 19: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + // Blocks with 2 sides + + case 28: + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 29: + + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 38: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 39: + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 48: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + break; + + case 49: + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + // Blocks with one single side + + case 10: + case 44: + B1 = MakeBorder( DeltaX, Deltay, 1.0,0.0, 0.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + case 11: + case 46: + B1 = MakeBorder( DeltaX, Deltay, 0.0,1.0, 1.0,1.0 ); + MyLevelBorders.push_back(B1); + break; + + case 20: + case 47: + B1 = MakeBorder( DeltaX, Deltay, 0.0,0.0, 0.0,1.0 ); + MyLevelBorders.push_back(B1); + break; + + case 21: + case 45: + B1 = MakeBorder( DeltaX, Deltay, 1.0,1.0, 1.0,0.0 ); + MyLevelBorders.push_back(B1); + break; + + default: + break; + } + + } + } } \ No newline at end of file diff --git a/src/level.h b/src/level.h index df6bf32..ba3fb2c 100644 --- a/src/level.h +++ b/src/level.h @@ -11,6 +11,7 @@ #include "num/num.h" #include "player.h" +#include "vector2D.h" struct Map { /*width, height and the number of layer of the map*/ @@ -38,6 +39,8 @@ class Level void ChangeMap( int level, Player *MyPlayer ); void UpdateDataMap( Player *MyPlayer ); + void UpdateBorders( void ); + bool CanGo( Player *MyPlayer ); bool IsOnGround( Player *MyPlayer ); @@ -46,6 +49,8 @@ class Level int GetTileForeground( uint16_t x, uint16_t y ); int GetTileBackgroundINT( uint8_t x, uint8_t y ); int GetTileForegroundINT( uint8_t x, uint8_t y ); + + Border* MakeBorder( libnum::num DX, libnum::num DY, float x1, float y1, float x2, float y2 ); }; diff --git a/src/main.cpp b/src/main.cpp index f864caa..4d5451f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -62,11 +62,13 @@ KeyboardExtra MyKeyboard; Level MyLevel; Player MyPlayer( 198, 180 ); -std::vector MyLevelBorders; +std::vector MyLevelBorders; bool drawbackground = true; - +bool drawforeground = true; +bool drawnormals = false; +bool drawborders = false; static void hook_prefrag(int id, void *fragment, int size) { @@ -111,8 +113,9 @@ static void render( void ) { MyLevel.Render(); + // MyLevel.RenderSelected(); - MyPlayer.Render(); +// MyPlayer.Render(); #if(BIAS) if (texttodraw>=1) Azur_draw_text(1,01, "FPS = %.0f", (float) (1000.0f / elapsedTime) ); @@ -141,6 +144,9 @@ static void get_inputs( float dt ) if( MyKeyboard.IsKeyPressed(MYKEY_OPTN) && MyKeyboard.IsKeyPressedEvent(MYKEY_9) && usb_is_open() ) {record = false; }; if( MyKeyboard.IsKeyPressed(MYKEY_OPTN) && MyKeyboard.IsKeyPressedEvent(MYKEY_VARS) ) { drawbackground = !drawbackground; } + if( MyKeyboard.IsKeyPressed(MYKEY_OPTN) && MyKeyboard.IsKeyPressedEvent(MYKEY_MENU) ) { drawforeground = !drawforeground; } + if( MyKeyboard.IsKeyPressed(MYKEY_SHIFT) && MyKeyboard.IsKeyPressedEvent(MYKEY_VARS) ) { drawnormals = !drawnormals; } + if( MyKeyboard.IsKeyPressed(MYKEY_SHIFT) && MyKeyboard.IsKeyPressedEvent(MYKEY_MENU) ) { drawborders = !drawborders; } if( MyKeyboard.IsKeyPressed(MYKEY_OPTN) && MyKeyboard.IsKeyPressedEvent(MYKEY_0) ) { texttodraw = 0; } if( MyKeyboard.IsKeyPressed(MYKEY_OPTN) && MyKeyboard.IsKeyPressedEvent(MYKEY_1) ) { texttodraw = 1; } @@ -251,47 +257,6 @@ int main(void) usb_open(interfaces, GINT_CALL_NULL); - -Border B1, B2, B3, B4; - - - B1.A.x = libnum::num( 50 ); - B1.A.y = libnum::num( 210 ); - B1.B.x = libnum::num( 250 ); - B1.B.y = libnum::num( 210 ); - B1.N.x = libnum::num( 0 ); - B1.N.y = libnum::num( -1 ); - - B2.A.x = libnum::num( 250 ); - B2.A.y = libnum::num( 210 ); - B2.B.x = libnum::num( 250 ); - B2.B.y = libnum::num( 10 ); - B2.N.x = libnum::num( -1 ); - B2.N.y = libnum::num( 0 ); - - B3.A.x = libnum::num( 250 ); - B3.A.y = libnum::num( 10 ); - B3.B.x = libnum::num( 50 ); - B3.B.y = libnum::num( 10 ); - B3.N.x = libnum::num( 0 ); - B3.N.y = libnum::num( 1 ); - - B4.A.x = libnum::num( 50 ); - B4.A.y = libnum::num( 10 ); - B4.B.x = libnum::num( 50 ); - B4.B.y = libnum::num( 210 ); - B4.N.x = libnum::num( 1 ); - B4.N.y = libnum::num( 0 ); - - - MyLevelBorders.push_back( B1 ); - MyLevelBorders.push_back( B2 ); - MyLevelBorders.push_back( B3 ); - MyLevelBorders.push_back( B4 ); - - - - //MyLevel.ChangeMap(2, &MyPlayer); prof_init(); @@ -321,28 +286,11 @@ Border B1, B2, B3, B4; { // all the stuff to be rendered should be put here - azrp_clear( C_GREEN ); + azrp_clear( C_WHITE ); render(); - - for( int i=0; i