From aa4dd259e2ca0d29503fe211ebd1a819e4646419 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 22 Mar 2018 13:41:42 +0000 Subject: [PATCH 1/2] Fix AI not turning to face when attacking --- src/server/src/system/SystemAI.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/server/src/system/SystemAI.cpp b/src/server/src/system/SystemAI.cpp index c199db5c..18678a3a 100644 --- a/src/server/src/system/SystemAI.cpp +++ b/src/server/src/system/SystemAI.cpp @@ -11,9 +11,10 @@ bool ai_attack(anax::Entity entity, server::SystemAttack s_attack) { if (entity.hasComponent() && entity.hasComponent()) { - tempo::ComponentAttack &a = entity.getComponent(); - tempo::ComponentWeapon &w = entity.getComponent(); - tempo::ComponentStageRotation &r = entity.getComponent(); + auto &st = entity.getComponent(); + auto &a = entity.getComponent(); + auto &w = entity.getComponent(); + auto &sr = entity.getComponent(); //if we're already attacking then just keep going if (a.beats_until_attack > -1) return true; @@ -21,10 +22,16 @@ bool ai_attack(anax::Entity entity, server::SystemAttack s_attack) glm::ivec2 direction; if (s_attack.bestAttack(entity, direction)) { - if (r.facing != direction) + if (sr.facing != direction) { //face the player, no cheating here - r.facing = direction; + sr.facing = direction; + sf::Packet update_broadcast; + update_broadcast << entity.getId() << sr.facing.x << sr.facing.y + << st.delta.x << st.delta.y << true; + + tempo::broadcastMessage(tempo::QueueID::MOVEMENT_INTENT_UPDATES, + update_broadcast); return true; } From d074c1683700fa1a410499be845e38fdf74ed25c Mon Sep 17 00:00:00 2001 From: Jamie Terry Date: Tue, 17 Apr 2018 17:27:35 +0100 Subject: [PATCH 2/2] Nasty hack - disabled sprite sheets and used loose textures. This should probably be reverted after demo day, but will do for now --- .../materials/textures/player_0_0.png | Bin 0 -> 1244 bytes .../materials/textures/player_0_1.png | Bin 0 -> 1239 bytes .../materials/textures/player_0_2.png | Bin 0 -> 1244 bytes .../materials/textures/player_0_3.png | Bin 0 -> 1235 bytes .../materials/textures/player_1_0.png | Bin 0 -> 1070 bytes .../materials/textures/player_1_1.png | Bin 0 -> 1119 bytes .../materials/textures/player_1_2.png | Bin 0 -> 1070 bytes .../materials/textures/player_1_3.png | Bin 0 -> 1167 bytes .../materials/textures/player_2_0.png | Bin 0 -> 1047 bytes .../materials/textures/player_2_1.png | Bin 0 -> 1121 bytes .../materials/textures/player_2_2.png | Bin 0 -> 1047 bytes .../materials/textures/player_2_3.png | Bin 0 -> 1102 bytes .../materials/textures/player_3_0.png | Bin 0 -> 1066 bytes .../materials/textures/player_3_1.png | Bin 0 -> 1038 bytes .../materials/textures/player_3_2.png | Bin 0 -> 1066 bytes .../materials/textures/player_3_3.png | Bin 0 -> 1016 bytes .../materials/textures/rogue_0_0.png | Bin 0 -> 843 bytes .../materials/textures/rogue_0_1.png | Bin 0 -> 825 bytes .../materials/textures/rogue_0_2.png | Bin 0 -> 848 bytes .../materials/textures/rogue_0_3.png | Bin 0 -> 848 bytes .../materials/textures/rogue_1_0.png | Bin 0 -> 890 bytes .../materials/textures/rogue_1_1.png | Bin 0 -> 895 bytes .../materials/textures/rogue_1_2.png | Bin 0 -> 862 bytes .../materials/textures/rogue_1_3.png | Bin 0 -> 862 bytes .../materials/textures/rogue_2_0.png | Bin 0 -> 882 bytes .../materials/textures/rogue_2_1.png | Bin 0 -> 878 bytes .../materials/textures/rogue_2_2.png | Bin 0 -> 861 bytes .../materials/textures/rogue_2_3.png | Bin 0 -> 863 bytes .../materials/textures/rogue_3_0.png | Bin 0 -> 658 bytes .../materials/textures/rogue_3_1.png | Bin 0 -> 666 bytes .../materials/textures/rogue_3_2.png | Bin 0 -> 656 bytes .../materials/textures/rogue_3_3.png | Bin 0 -> 676 bytes .../client/system/SystemRenderSceneNode.hpp | 2 +- src/client/main.cpp | 2 +- .../src/system/SystemRenderSceneNode.cpp | 42 +++++++++++++----- 35 files changed, 32 insertions(+), 14 deletions(-) create mode 100644 bin/resources/materials/textures/player_0_0.png create mode 100644 bin/resources/materials/textures/player_0_1.png create mode 100644 bin/resources/materials/textures/player_0_2.png create mode 100644 bin/resources/materials/textures/player_0_3.png create mode 100644 bin/resources/materials/textures/player_1_0.png create mode 100644 bin/resources/materials/textures/player_1_1.png create mode 100644 bin/resources/materials/textures/player_1_2.png create mode 100644 bin/resources/materials/textures/player_1_3.png create mode 100644 bin/resources/materials/textures/player_2_0.png create mode 100644 bin/resources/materials/textures/player_2_1.png create mode 100644 bin/resources/materials/textures/player_2_2.png create mode 100644 bin/resources/materials/textures/player_2_3.png create mode 100644 bin/resources/materials/textures/player_3_0.png create mode 100644 bin/resources/materials/textures/player_3_1.png create mode 100644 bin/resources/materials/textures/player_3_2.png create mode 100644 bin/resources/materials/textures/player_3_3.png create mode 100644 bin/resources/materials/textures/rogue_0_0.png create mode 100644 bin/resources/materials/textures/rogue_0_1.png create mode 100644 bin/resources/materials/textures/rogue_0_2.png create mode 100644 bin/resources/materials/textures/rogue_0_3.png create mode 100644 bin/resources/materials/textures/rogue_1_0.png create mode 100644 bin/resources/materials/textures/rogue_1_1.png create mode 100644 bin/resources/materials/textures/rogue_1_2.png create mode 100644 bin/resources/materials/textures/rogue_1_3.png create mode 100644 bin/resources/materials/textures/rogue_2_0.png create mode 100644 bin/resources/materials/textures/rogue_2_1.png create mode 100644 bin/resources/materials/textures/rogue_2_2.png create mode 100644 bin/resources/materials/textures/rogue_2_3.png create mode 100644 bin/resources/materials/textures/rogue_3_0.png create mode 100644 bin/resources/materials/textures/rogue_3_1.png create mode 100644 bin/resources/materials/textures/rogue_3_2.png create mode 100644 bin/resources/materials/textures/rogue_3_3.png diff --git a/bin/resources/materials/textures/player_0_0.png b/bin/resources/materials/textures/player_0_0.png new file mode 100644 index 0000000000000000000000000000000000000000..23fb2ce3e770823914b8bc4ede2a15e9fbf5cfd0 GIT binary patch literal 1244 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 literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/player_1_0.png b/bin/resources/materials/textures/player_1_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ad99882e0b9180580fadce66782da5646528ec35 GIT binary patch literal 1070 zcmV+}1kwA6P)O_OXki>~X6h~EQ-VIYLSG);N= z(`lm7D3)cBPN&Icvp9}}Wm#C3#pviL)oPWIkrB4Hx2aaEUv#8^UrHf_l6i4)kz6iU zr;6u(|LVKm1&Kt$^=>4k1RxfR5qeVQ?$&c+u~;2}Mx(Z}C682~P$+0pO2!B?6ACaB z3aFc2y*NdwR8lJGx~@q2=ejbXpZ#nq&c~n3GZP9>d>G=(Zz^29IE9q*K&cw%x*`BD z@#=5ty!bH0!nMzM>%ADam)4mH1=Py@^>3W(iok3tUN>I2{1tN-E~uPG;)g3A)d9Cc zVyM-I5ssePRY0sz6f1Sayko^G_vdN&`P{TSn~EzE{_sF=FRcS`ck6kbe-ep=d(=o2we&&Zg?s@Pj{i_U7Kzzcw{-Pu>USlb75^Q+|J6Fg7*@z`1kp^K$6edr`dWg+!nW=yC&eTyW==rmv5+7CFnHT@<8BkiQL*(AOOIz1NC34I{i~1 z7BSS(J8ygn?(FOgZW}toBYP%XSL1>Afp$SVCa_lA)Bu+rM%xO6gHu$THA=SN^4z-| z5APcA#;rUhTeMA}qyGoylb76zvqmgpFn#8PnqR&D`|kIEEj+dQ+Xtr4oZxu)lu}{f zjp*9VUwBk0^Qcl*ga-aJ^soNLt$hCpc<+UN&`ws~Q3)Esy-qmLZP;kSW;lFNh)06IGbev7=F#wNW-p{?pX_kuDwZ50Yn0N(aB8+(OCzHOf=Yc2ykb3(= o_x0c?Pn`X4fL2%jfBb9WAIvnUAcoook^lez07*qoM6N<$f=cQGM*si- literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/player_1_1.png b/bin/resources/materials/textures/player_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8d432d605a883f6944010b3994d7e1b4edc3c04c GIT binary patch literal 1119 zcmV-l1fctgP)Lvg^ZGJ6on#xe?d**wNt_O!jN zg_f=Kt#zNu3NwRtbaWdl3>FhDp)(nHVHg&M7DlLWEXul~J?scAE2Zj#eOJq|Y+14P z(*9s9=}z~3|99ViCkc4kL-KRe%*>4K*0!{?Bn3jC9h6eqv7fH%0DwxRA`OH92WE_c z5aJ4Knx<$oO%seUPb8#X;FMD6y51GMl>}GED~V7qa8*@1N^Y8_0OXO+=N&}6M5tS% zs;Vd!iy(yTXrq*hOgYI`5&%F5fubn3F9M7)XqqODIY>Jor4+?t5vr;}(==$B21+Ry zW4l+NRZ0#*DMg`B5G442p-^z#+ex*)2vjN+iDy9w0b@)6XJQd?tZ7=ux%a9<&oWUI z#U3XIFt+DU0Km$f2gt-C$YoRb=!;cR9o+TFWKxu*mr4lrBEWCXWm7o*!2&X|2&(lM zKE1q!^KTypW6Y5`2lZMBAupYH_5e_=$8hG-hj``HBo<3+$iyN$q~=pLFao)3%5i?? z#0AV9J0{vViEq!o;{f(TBII?!h>uS+6fke1YTk4ZPtB$6Ts9?0v<3%V zEUgKXw)#g=6uX-V!(IrSy-}6`*tx7zjaKm5y_cH3fA47Gfjkc^%)Do}n)2Fu!|5X< zBLILSM_$9v+I2h#lfiAr?Q!ztC${v*3a+i20$7%10Dxs#h(6jz`Bz;Us0VnYQYo>q z$g&K}vLMT{SauD=5Gr^j5$;!kL?Yo@VzMk_dHDxK`xq~TUBuDRC@jl@VHm#02>ZR! zvMgXUib6h(`1k}~|M+uXj5F(!=1Qm}SQ91_&8Ops|2eW>EUk$)-7x>3DR7fLnV>j) zXwnXpfE6BcWY5n7^?;DS8CQP%tvSk&Zxwwh;AM`zPD9@Ww%Hhx2@2gXp&KUB2ltB~ z0L;%$2cy9IZ>sh-8*`9ICMYi5_yqv4FFt|!*=hW}wHa&~wkk19YFMpqNC4~;b5GjZ zh}g|OyCcA}@8*Sl@y5FF_4hvoufQ;=0aoLq&w8f2}&szg%)R75BmEi&p_ODr6W_ z05%5qna)kA$??6|xOLZY{oZp^C{?dZ12>`TXPr#E@s?b>-+Y-3;6tTbWDmV%zaT%4 lf2@DSwQkuzi)R4kRrk^S{NvL@$6xuSKUDn z6nYgDWiW7MRawWBT1G*UIHV-ly(*i;gRl5!D#SyVw>0f$k}g%y-=%%;rSJQG-|x?R zDe$kG&&`h_k%+$5+SJsP&l3VxP@d;&J}1jE03ege_%?)q0Zb_c$8l={6GGS;Aq13C zTO^u(2hQ{SZ@~c|9*=_%!iaDj2T>Gt*8~i3Ns?+xZh#q4-7{}bZb)Hc}dXT-VOjba^yIkrtabkikO@GWNYtc zCj@r!yYQp)8}RxKi@oCSV#)US@k96>=71vt$yW~$`W(WAm882dUEOf@?=PzWeA;*d zh8e&BpsFfDp%5Ftc#(CqR}<>6S`7$ZhF~pIRkdR5_nLs&^P^pUn0rJ)$zw8^#mt;X zAuxk$nubU3zp*Cd#vBni+U3Vao1+liel}kag;Rz#e`(gb)u|B@jX@H=m!& zRq=0F8Cnk{!)6vfG_DM_=GGOjvuxb(KHwD8HG$dOybpl>$EpATf;;+9&}Jd41m}hh zp)*)czTb2a&1zAL{EsKijq+bZbaw-cSg-Ao0~ zJE7HXjz7mzA&;d(o)K#JX=wKT-bC7a0>-`24C=;nS0S*1vv%CbGPEXPtqN#Z5*nap zGEP@cVJ#AA3Ps6udZ#wULf3j;;iIZ;Hc0#Oh$z%ji2rytu zDMV2`5?IqTKBj3JD5Z`_2%W$QA;{80X)JV0k5r$$z>| zFwo_dEH|myKe8+v?M&F?guueRv;e?J#I0(W!5`LNeKvc`*2JE?56n$nFBxy|lpO&t|g%-7TZ_=WkG? zt2Nv0@Wh07R==~j`O}Zy1pq8Aty?EH_E9MnU3tKD6+}V=i%aX6ou05fmm2&0SpMd# zJ4jb+xSuNso_b(>Y}km64mf&giG&Eo$A%5h73dF!5d*MSDRLDSm)0!?)O${Mw+#D( z%{|_$6tPz+a?o_O<_i2+1Q=j{FwBXx^Gl~~aJ>cT%^hHK2eHwC<~{o^P}UF$5nB=f zjH3+cT7lT;0A{Br&>swAc6tJ4Q{KL-3P&m7>0!jS!7gs!RfP}UQ49chysdfL2h5q6 zkmYQ(g%;Qb3ps|o<{^8>Tl3f?L3_Q`H4mNIse`eXFyaX8#0rqX7eNMt&>sGcVE~0vtwrW8f2fR)T{K>iUd9vsFaB&L h_oIO4@jOlt{{q4|?(HSiBY^+_002ovPDHLkV1f*09NYi^ literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/player_2_0.png b/bin/resources/materials/textures/player_2_0.png new file mode 100644 index 0000000000000000000000000000000000000000..926702210a0be1f1b8427648ef08f2ce59595a95 GIT binary patch literal 1047 zcmV+y1nB#TP)(&?P4-+*d>UB8Zd@sp<$Kk#LYqQVyN_@gMvjb-U~g{ zW9y;NgRnQjKPUyEyX4nk8gf|Yurw_!O9@%r{A}o&?ZH8$sAN5C=a-pHy6#MNS41By zJHPq!d*Anc-}l}y@LxAA%0u(>^DO|^bZM=K0M2%cjlNFz5BQO_N)Q_@i!OWRn8Z3X#n0lbA}7&F7K7^d*{`) zZgwQfFsg5E04N9Ee_5_Py5m*0zyGqQy?O#rDwVWMCe!kmC=?wZMA>X5MXxpSZkDVPFagAFJA{>XJ?1E zr}uiqkH0+!z~@V!^|W^^iUyXKuVWYnhGCFSrvqY3yfogk^Uw@rXQx`HtVPz>oqZ+w z(JO5huB=FEwHl7&Xnhl*-`3ZI!m8D3B$G+5tjI|3gppEkP(zApp%|DOH@LCgq}got z?X5U;3O=>7fs!i}9d7*|9YE|b=nF-M8`}?68lt2k)(;x}DG3YWPyiNkXC{W z?WZOb9Tsx!*4x&C!^od5?)|;UM+U{f?(Xh^Q*kP3GLfln~i7Y!kMx)*q;p**s z%6XVk99aXNok+A>a@NPpP(+xW9#hlni$G=!raVa>sRim_3=O2|Ieq6Q{DWT zZ|_vKftTS^yui$}_tn~*I0`^@bBJF`b2E!dWKSE%c+mWXV)-kL|Lxyse*wXQv+fVc RI*tGU002ovPDHLkV1jso?lu4b literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/player_2_1.png b/bin/resources/materials/textures/player_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..88cf240ef22a99fd55394448272322019502a430 GIT binary patch literal 1121 zcmV-n1fKheP)aqDmJ%NfYgoA?Boyhw7O+SOI8unaHGL?E*s?Jnv?@A$5Z~1a zt8W^g#t`zN!qlk)VU4X-7x$3mA-Q08MW!7QpI2~A)6g^x0992T5jWfH>@2FP%9M3XK$xa!BcW-U<65lQvjV1RIvfc#gb7ePvF7!AA|O-{(Py(+c`d$8 z)0C0hRcKcyirdzU$K#G1o2Du6X_`hhn5$){L_2U#DG*WHNI zAzpvuG#|WpoJjx82m1B71-JkH>fB2bd@?fzz_TY$a`w!J|JBYbZ_BZE*4N2lw0^4! zAOXa8S^w$YjHmha$Io5)az&t6EGo%l(h^F{=Sxz0fN*RW>Q}jOan3<}<+W z3tr8$0w)e1WHK`*+fG<87;L#+cU=MNNV@F?v)hA5S5si$aGI6qX$p3BcKG?bi;ex? zc7HN62Kf?&jXMDNd#OM?suGW?%;!t@sUXIBl7i!-Bi3%t1(AJgLja@ifI|hN@4)`F zVKa$OzW=3Vny!^syQe@q`R!Jz>Ag?E^wfCcU`h0zRi>xL z84Ncn|NQ0avib%1wi)5I=QXP8j zm)~AxFgz@yZ_qH#dg4`U z&jczpo$0A@seq{ZX3z_l7L`^iJa=rw>bM98IL0y=f7J({bncqDeH@zNpkNaJ7e+MoOTqB1i&BV~Oo n_$a>_zmqS2q43ZiS{LkJaii5sT7a+Q00000NkvXXu0mjf^B5DV literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/player_2_2.png b/bin/resources/materials/textures/player_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b804cedc81112c7a2d143b9c9c04b2f33270e96 GIT binary patch literal 1047 zcmV+y1nB#TP)~KND)Li%bs;ML zgx~4op8s0_JQh6aE0s!sb}1#U>!OrGN*Q3K8?acI=sVRdgwSkMDiuy8_G=LSs9o2k zR4N&L1Mq90vjHikv~yrj5RY>nDg{cZz{dWyQ;GeQw-S`M5&;lt^H^8sp+(r)c0K0+ zCtjQ6;*}35ZzVW){wyE8JGQo4xk-)V_B{2-0=$czx}MIy?O#rDwT{(Ce!kmC=?w{JwP%&0gW5n`t))D zWTEH`?lkmHLV&b+41n>GyE^)0dLqD1q3Cew+Unp=Lx7Vf54J`a<3($M<>l)DY;SM# z*3@o~`0=-+0DQ7^)fiX`I&FFRI`McMfK)2Q{L4bqoqS=8CmIKO-YXOUFZ#7LCs2}$ zD~by{saRa8QmfUX0RXVJ78F*kRwI>4vACl8dMAwa^Uz)msb34tK(pDT*=!E%tvD2b z*|9kDxtT!86^ahGe&1!GlbuLX;8~&Q@Xh^)0Y<{6BSr-F>N5wT(}3URb2CtMxcXg{ z&CN}{{zH@u6pD^+x1JVGXOD9_dz_=+ObOn6{Urbz^>waX`@SvA_$)W6Mwf!gRQv4DPL0y2w?(*m z`<`~*>wCaJ`oNK7y9~2FW`-id?9`~H9?NK!i|kPRAU`*Mp;-Rh;D7r!+Mo6Uvb?s^ R96SI3002ovPDHLkV1jML_KE-i literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/player_2_3.png b/bin/resources/materials/textures/player_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd2f4b406fc94864ef63407b30278ec36a5fd3e GIT binary patch literal 1102 zcmV-U1hM;xP)7ZNUm5hZ14kiQR)(g_V`PXjM==EuLh> zJ?whZ2!brj=A_`C^$!X*G%UMYJj5J=+d?TJG;BJoSTlmop_d-UL;b$Yq)j@LOiu0# zLo%6fzUO(L_x+x4GVp&7rJtK}xts%F+cv7Idaf-mFDpYMkjZ2m0992bxTa~IF{Wt- zBBKNW?*ueWb02|&$n+u-2?}l)28Lk(plO;X6kyNL8f(LHGPTLjW08c%4f{UM>r@9sAt#{7x(W`Sz zL~Do6>$?Zs-@m=|ngl;Rp9Wyz>{%|p{c(HwzVW`i)+E2lHJ2{}<#JicWHOFWVyRe>(gP%tDcHWvZ(m;akX$NO!rKkSP6&`xrvR9U)@1gH zWXhw?QnA9NA6CNK4F!p$Iz{5?$GLIiX8>BQ7O%{-9rEtZBmiG5U-dP2pv|aUE-UrF zSGjYiLM#>oK-YCovrR;69M_I>F88Jr`U6Qiopxfe*n!LO>iHLFZq~W{<2sgQaq8$1 zUnPhzKr|W+>6GtYyUC}wyq@nzg}?+X%i8Dj2idkLM`%89VIk|Bo==lVrg-taYoR?A z_f>-LKYX22M~`@VKpaCQ(7D!o*|u1Y7Z$S4zyyT+!-z=G?1jsP6~3FWxmov+SlRlM zQNaFVf88t94JDPEaqjL+9_omJcSBMC6Hj`dbk98h3;-W|@_8UD_U(jov$~UgVqDtp zQn7+HGUg%h%}=)hxN^OugxUjhv%1rnakr+-&KzTIR(C@00RU@c%-et?V^aFm@}rTD$IWCXr&hS!carhEsx8tv%7BlUmm$7F71WthiM(Y1K^TXJ2*zDe=nc zJ$W3aTwnq_4@}ELM09t}(+8pqZZe^*f@1Y+UyT$Lbl`tRA|7Iz^+sEf@!h>oJvq)x z)4KEB+Tkl literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/player_3_0.png b/bin/resources/materials/textures/player_3_0.png new file mode 100644 index 0000000000000000000000000000000000000000..d327842f9d444a1856afdc1c1cdfc0aa3026cc90 GIT binary patch literal 1066 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 literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/player_3_3.png b/bin/resources/materials/textures/player_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c1465af24d49a774f764c1bc68c21779e8f67fd1 GIT binary patch literal 1016 zcmV0}n|DIfO`uBVYzW8>B=KE+m5>iUq+bTPJZ+5JYe;PA-y3 z9a@k;2ZKVP!9i1Ws3124k0!@KRfzP4c5t{3`kwFpWEXYdF2Jr(SsH!T8#p2^jkWQy< zQd@V1exa%=B}<3}8S_~f6OzT<;Di(*rm8AfzXSz0fkL6+$jlGiZO~TbYKs8t0XHbg znkB@JrPFD2iwq2|3$o7XIBXX61bUAnZ z{Th+`+OJ)QCO{PM0|+AZ5IA=qV2Q}G+!B;ki_Jc=KF}&Nzf5_u=OVze=UvpYESRRr zbv%bUj@`S0m74X5X_{y>8eD609Y%>n!Uh0IlF)26DUe^iP1D54$OvMwm<<5Bu19kk zDvAP86rpJv6h%R^+4Ph}k|aoyMCady9Yi9=lRW`vLy{!N7)wOgb@cS~K-0A7&VsOR z*E9`V3saa$$&Vv2lairn8miT5%RNuNSw*%MrT_r>+%T3VGVL8k-IMI3A_`bz5F z0RV7yb%ot>HJUz<&kX|r>gP4LxjbbE>JzP0couX+J~xcM{#R|kbnvLawGHd%HSCtF z=-Hwyr` zsMqMc_0mxwD0eGn>sD!8dcf98M;=lnme)3MaH2)?Vgdkf1{FJ*@b2j|-2fS%9v=-& zAQr|{)8nHw`^q_ix>-hlUH*kDN5czMF80t(3$|oO$+~8Z+k$OtobJ$+- zsK4ph_8h+f)Um$%7nkq9p`Bl1=Ts9qYC-^bfdQyvKPe~xDE;xL*#-2^iO+TC!{{B6 mCn*5{cztp28T^mGA^reljQwTS`Qy9*0000&&c@z literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_0_0.png b/bin/resources/materials/textures/rogue_0_0.png new file mode 100644 index 0000000000000000000000000000000000000000..aef5f53e7f39ea64597f5146c16278cc3f6b8e70 GIT binary patch literal 843 zcmV-R1GM~!P)b943t!pTV~oN?!>}yVl)|zkNQ!cyL!=U!L;D#<@y?R;oSK)m-G0(bNTT<|8wpI zf6Q$t)0zCvRj&d>u1XZii`FRKEUNzfph_<>jXDeF8{vhsNp^3rMK$Wb_sy*s5!LEy z#HT{qHwjM`*_Lp1D&w{8kIGEfG6!Kzb2-)>0Az-)03h0y0l-^lqhT9R0Zw;bWbB^s zX~JIl@a1i149RY>-vA&!<^TZCUpE2ZSQaYHJ6~A|Kuv$U@B6Sa6Iaj(=YAampx$v8 zfaTTz0KW8(0B|UGpG3N0=ri8BhPixL(`5X8Hvl`+3xw8R)=BO76rt(pG>b^|XxQ(= zlf|gN1}6j1)?6ht>>1bET&>mnv3UqjxJ&yw#L1M95h3+=H@+9i-4%xZTTqw{K$VBA z=Eu*9jssvlA~YWs)g;v&=n?tKl5)jdgvX2a{LR7*a%>ZxbQ;;=J1qcgY~C>OOPPl7 z*3>*h!p^hRjMes~kN}Ca{2|ctp}_Qq~W{b)P(}_8r1g^5NbWkEFKkLY{|I zptRcuJi8wL)xCqT{*6Y`Vj|CG3y6j{oZF V1(*1 zK~z}7?U-LkQ&AkpKR2T1%(N|QM&+Lkj7nOXVXVIdg%AcRk`-hTGz*0O5=s^bp1E;p~v-awjuZuP4N<>9CH@i~t+{NP4%Js7JMF6-eN&$H1 z^P7$V9pL1X3rtNND~BU_(nxk~{S5%zdAk63@unSsriJOsy0Z-p05k`?tsIU@l5AVk zJpeKsa{(9)Rsm4CuSAgksDp#_6SeA zw%J6Xu!pT29_|sjSx}k}e^P$IojI1MsNXr(EAZ@KQ@o!s|9yn-cb&X#}9+d^G?=uO6F{mia8n zj^FJBV0FhT0PN0orS4e2NE0osPD?JrlAzSml^y_|-cA9asQk;cq@`zN%1DwC50yxS zr_JHr>jj~_nxjfjAW0ULtEBBtOg$`B6n^u;2j$LKy@b)blCY8V*!x!Xsjn#zQ%SN)soR(TK@0a+rFHq*|d!K0*VSw5Vg-Wk+#a}GG{QMMtLefMUbZ092 zy84#`(CIs*%s&haX_kklD%<8T?dHCI{|11^m2bLlVqy@0?G-ntO(TnNB*KAEP^nv1 zutf*B)7O=J|6azFu#xP)P}~uYiLz}DJ(8a-!ttixeZK)QDhlq*00000NkvXXu0mjf D8ijek literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_0_2.png b/bin/resources/materials/textures/rogue_0_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a8eae8c48add7e3be32b6c65103f1fec550b8a50 GIT binary patch literal 848 zcmV-W1F!svP)^t z2q9KQHXlrk4J1=D!LptzDZ@z2F0Nu_5j_+!J)9l!EaR%HFYfI3GMw9YW`6v?|C|}{ zhd-oHW;6M1f4vG2xh7F8Ub0T{W>fXgdsVuLS>#!?&Wc`pN;go#ZfxOB~F-E)nk5&IZ$vX6b%uTqEmV3mby|iEG$$ zso(nesX<&KC0tZ*Oq}?#xNAG9OeQ}S@vzlLB<;FK@rfG%wAk|jcr`o%Kx_Yi@BR7l z_(TUt|8gbdQmr-!y{ieCIYc;eO|kqNmlYgk7qi@LY&a af{Xu$?*fRD>Ibs`0000MZ0?{9Qv5ObEA9>=U`BRo5t$^(OKIzZaubzze+A}afn#Le^uf0CQynSMf;C7O9 zO#5(Hvsb#snY&67BPk1e{=g%Wb4qwWnB zH5l#{XVqff8O!X+ zhAZKhZ(jj$XE+VpwfEk)4&jJS&4d0?Ets^-gF>I~0b5JMW}`TJlRl&2e-V+8jatG{ a7ry~Fdl0uq2WN`_0000-=|wedZkfIq23T^O2Q0?6*GvyU$TP#F@f%;S!CjhPazp5~F_+W>Sq2&R9Wa9aN&=eSa* zCoQ#*TsJmhsm90{F`I04#Vr5=gI5FaVPpn?)bs-YR0OP72um#{Eew{!E)-$2Y8OS9 zv{bNU1JKiXU1_sUS6^EC*BkZ>!t$w?del&+d05xR;bDEfm$0k+^$*zV)Wc=PRRCn4 zI;^z+@Vvvr`L)9U+_Q!WfY!Qx077=*p>H}#Sn5@5mKFjBlK|LvwE=+8pzQz*jJ5%A zH`Ahdy0S)@Z+Cf{({&6Ge@a$~1_`v?^rp zM5h7p%#j|gj`eKkkLtE_#o%X&{^_RzprE@@BbWOHfbl2IN}c$etEEQxO>Mk88Gw;% zegFh#*a5Jf-k^|`buovuFOtEICS^1B$$o=-SbElXvsp=nMDr#A@Oo;wLTG$cJ3IIX zr6~mU4xmN2>vXui+c=3c%ulKT)BrAzZNwRO+$2`=-dX?ne7XXbl#{eikm!pht zjeV(|!V0F8{)Zi(oX!^*m#?%><|TUge+j)(q7sx8Y3gcM#(h_=a(Z8%eZ>23ZBdGg z*rxq|XnkOE5Ee_lVbAigD=$mJQf9wk;jtcGQl&&C2t92*X+3Q(;eSoP0F{I`%%T(N QLI3~&07*qoM6N<$f=1k!jsO4v literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_1_1.png b/bin/resources/materials/textures/rogue_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..39bb00a7f9620beb1011adf7cf0e4d3a125e85bb GIT binary patch literal 895 zcmV-_1AzRAP)OKW{CY!qYN!lThns2G!g#3l16IrP=-?d^o((cGwgtcYC+GLM)IV!~D@sIYaO8xMU z?*POeN(R7ISq(td@Bjd(pIiW-EGSZ$#~trlGbN^ao1F!B0qAfMO#d=$TK^*Fs8VMn zEj625w>Dv^+AUFHGTDmKI{>T+^a0?ra~yz_^h5wk{Z=c4rRI_r7R%u&6rOC?e_Xnv zr$RzD0A1}jls2mj^+iSV-tgieEZ=&m$2G;ehYf999yZo{2v3#2HorZl9xg5@2O#@I zn$rHu^DYm^_~@x|wyIA6MA$SS`i0WkQq z(VX-|2>|w!{s0tg_^qUY^sFR%KQa}7=dSb^>`ct_dBK&nE}7IsT%+sStI7kj>R`UkABSp$d0I01z;v#&{wBG1tDVY+Iq_Hi@ zzHJ@w-07I??SgYTO8=(lR{%WBA65G6+rFB$G*= z%U788JBFOrzcp*~A!}4s%OlhILVW|pbo0%I^y0WRyGwRHUiA=mhwT5*f+M`(^amG> VNJNk*NRx literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_1_2.png b/bin/resources/materials/textures/rogue_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b83623430b450dc804ecda03d31801574f5caed6 GIT binary patch literal 862 zcmV-k1EKthP)jIJmdND})XBAVz!NC}l>z4;PYgo;u5 z5O~4F2MJ5eG9v71Sda#Jx75;Q6Sb%wDmXoy9oRFCx~m4YyWi8CGygqj=C|K`bIyQY zeks!2DH1{mfWCnn0Bp2oYD+QsLdFg7D#D%;7%3?e0FzCv0Cdev1JFL>0HDS`V)}dW zV@S^P{`tJ~{C9){=REs!*sVe4BdaSrc%7Jwv^(-H!rJmE&DCSQ{dL0i{5#t?|v2H>reV9vP1wEjh5zEWo- zt;>^K_indVU)eZjs#SbyquJ!r0w9yYXbde~U+C+w+*D@tnsC^(g^wEw90 zMGw2T<8Z#=LP8G$&=S2~hCo^h0EezO0}vIy1Aw8iP5|!YrAkj%*8{M>QufE&VgTr9 z8~`9rivWlT+NGJT zi*-G9=B?%85oeDiYss}svVB=f9Wq2XU31xR87F)sB?hLS2!N8F3(}iKU!->*w<~qx zQ;{USB29WaT#}sVk)%UnZz^runJ~=$8C~|t0UuiruZ*@TUfmh+3xMvaWdKBO-3P$% z>xYu$Sgkt1*CvIuE`8msOJ6U0HDS{n{yf;P0Tk|0cemYBlL}d*j9%7Nbo>ecZ(hkA z$L8%}9+UO%wM4QtQX!p^Q3*g&?4VM&Y4=M2?v+d_{XIeXO8aDSvhRHP@#s#=irWN0 zYyB|*+WLnz0Bf*CnALBK*kC$NL&tspw>48O#(O@yr(05DMlbiT--_$1-89{ww` o23v$#a-_#62_tPk;eSoP0o+|D6vM_>IRF3v07*qoM6N<$g5L^%6aWAK literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_1_3.png b/bin/resources/materials/textures/rogue_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d027fb5f766481868c985c0e4c882ef90bac090c GIT binary patch literal 862 zcmV-k1EKthP)3SSC?P^km-#W$C<2KTqq0ykkR)~yBAVz$NC}m+y7MNm2oxX!vG9K7t+KO-JBS&6KsywDwDIntiUw+I_H#u%JE)<4)FoUea1-&N}E zi@yLkb|xEuu*PNpn(W^IxccfE0JTxcN*_zgUz?r9z`e+0l62f_SFyUY3yB}Gb| zp0p-!a^1HHYii${BAm%K)I0=WyKxHu-^b?w$jLtmKu!2Ig|Md8q=k>=up1?0o8^m} zcVsGL76Z`VQ?HEKs;jT8{O=p~55n40ujxf=mGrP~jKjnF`T${XJzP~@2SD+~JZ1b( zy+3-`vlEBo7cMOPH~?+2J7oxDWdLyEUMm1Gk^2D{p6CMLabc$PbZsL5N2}$0k~t25 z&SonBQAaQYJPa^3`2=UuDFeX@Ni7W$3e5`Hw&Yw%m@b8^|D{C1yG#LaCEfx+T*yI# zt9`Miw~o9u-Z2Bk^pQMC!_Kg52>$@(!X_=Saechqd zi60h8dQ+D4bfhFX)h9`Z#XnHS=F1Vd`eroQrmcRqAKn~mQoMQ~XbFJcnGFC$?@I+> zsu+XBA)}-y5HEH{0pC;@whkp(Y8URWTtEb!EnQ4WrUV1NUvYfjOz~_(h z#IYwa!fUd=y_ZNgMJuE;va10|iyu6GT#?cq>L|=ru)x7KVE&(iqdBS zpuO=d0HgCus`nQclyPc8qRT!_ozDY=J(4NZC|u1C+QyZ>r<2mea(%oZ?q7u6k=7Gl oORYP?YbsNyQMmJUfbe?JU$*@yG2;H+O#lD@07*qoM6N<$f+13V+yDRo literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_2_0.png b/bin/resources/materials/textures/rogue_2_0.png new file mode 100644 index 0000000000000000000000000000000000000000..5053e7826ec953e4dfc5c7546ed5bc7a41eda1d8 GIT binary patch literal 882 zcmV-&1C9KNP)Nh~5Lqs-q-(^Zkuh%SnnF3!xx8Fsf->OyDVo8g=DojHexcfR?~ zfKNV2GI^W$ZlGQP*kU~ zEg68Y;zF16wnk)`#5yPdilQi<)>(dp|0a#Brp~z;X*}j`D*zwLDiu$po%%6?u{`|8 zW5UbI_hE@>|7Z^Ym-e3pATwwK08zFK0Nyq<2`{Vpt|$a{y%J9F<5X z_jWI655}v*nlw+MdN(PxKzRODofK>3!kOROjgPQ5((0|I_LeH)VO@;sVST=j@aSXF zO~qwc0l3gO2tY|@m`e{=UAYZFfjwJ_^`19R&L{wm$p;4i(rJYCdX%?Qijz**07$vn z0zi0(7#|*g4#54~Q~+kxE^b>_wY;I_M%Zf)+b*7x;)ZiK05~%%zF_fMoxN43lC(+H zASzdQ*4{6c>>hd#fWr;h!Ou?=fU>@F0BZKMn3lJP&4E_Q!<%Ch1*tpY>}H8n$} zboLnRzr^bo!khW&NiN6T5?6_8-qloe`l>iZH{^-7*f9-2+rWrHdx^@@HmOQXbd~2L%MH2Um?zPw(9^CmLBq*nq4Zw9O|+@&wu+W#feedrMU6w!$qxa z+%uhC(_cQB05anaD*y7iKEeZ2V;;S^Snv7>|8KHOmhh6(Z%AnXgg1y`+5i9m07*qo IM6N<$f{6u+L;wH) literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_2_1.png b/bin/resources/materials/textures/rogue_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7c386dc7e65d1997a7308b78eb7db4002509dd8b GIT binary patch literal 878 zcmV-!1CjiRP)ROkYO1qnMSn8D056HEypBCAzBpmTHJSy`@QtTa1K5&uSR`63mVa@8P}g1czY$&?G=WW70SQ#t<28UBs||p3YZL%6 z#f1RG*Vp;X+nQW%5&NJ4Xqu)4+9&)7|4ovt)WE{Lay|WaF97cwo3%ism-J%_b9wlW z$Ap))?~@AA@pr=joZov2fHK=g08*W$0KD#U3oq;Oy=mDRz-D)ivd_{pvL-RSszk`O zRFanRM|OA9WuN)&>upM0oawHg z9SZ3T=BvX}(v#@k%`2)Eo`2DyjAgl4iXR;!LO2-7dMnl6(;_@<7^8dG7;j#}?;eRR zDzh{RfD!iu01vBeO7CFwaLc6|0MxoFl(EtC_Stz2z&m@-q;EP&*eFT-T#Qwj&pYY_ z;K0=$01{(&0Wdl941l{;MF4!(ySVLxt?GdcgeSf{)&LsEE`+IvooA0Lkr z0C1#q1CTB2?DYyNx7D!przBwOgb0zh3ufysJ_=7v6{N*D>8$jMT! z@5@l1^8NME0K6L9sm#01GzIi(?#=Qbr48FC#2fDl4>TPN@c|4oXlQrGM!?fcZWb^t!q)(dZ>=k$F9YkBy$$E26V zw_%Owz-SKuXLp|gpdfNB0Lg{<0Q9vwq?gV5_LK|(u-J^#8{8>_gOtMBb5NZ1#tyj8mIY>*yy8)JIdy*^0TUk^82Xab<3 zs#qKUQ6K0Y_B)41AIZKoE#C&fQ^z0x56ZX6G&oiWK+aVs00}X2et7&j0C&oA0r+fo zaR-Lp128ptH!ypNfA+8*I0halW?64XmoZIt_p=Y^TKttA1BW^|?xlEGzP~ z`REv#Ch=SL05J0EApj}iKLB|4Q$JQ;hFpd<-#G3$`vkz77ZcjN{n81q-c^L%RkS%m z8`pL91jfzJf^Q(}YdW;lNSe{#miJeO1Mv3oR&Bnse}lZIXf4;~J6t0czn5@VLE1jy zY5wKtfX8~*^q2vVl^8DovJ0;OP+5}|nD-JP|7&68)sC91V7KO%ZanQY01~5Og(vSW nRMsV|$j+Avi=`z;c**G(S|0ZTJ=0(v00000NkvXXu0mjfK3a^? literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_2_3.png b/bin/resources/materials/textures/rogue_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..e52e388ffb439d95e40cad810171f1953f548aed GIT binary patch literal 863 zcmV-l1EBngP)OwuH}Fd{))B(!mt6P92R zEecaaS`1+fWoTtaq7gzFX^uacno0y3v?}VhIQJN58pj!J) z4M2Qlx!3EqCly-6I%oizrfI&`2|mJ$Ns^W7ocp4DpVra}z^Ce3%@^r;{T#(u9{%ew z;brZ|h(dI5tQ&yK2QC3n5VZ+_6k9$3{mo9{Wxc*NHB$rF>^!TiGyjaNNer%(2sle6 zX{m+C?y0%y_4@h^QA%B0#c{vL8i(*g=^zOgO^K9fs(%2$#<(y5K9A18Z!T*-I?h!;-Aj!;I77!`()mq)kbKloH|Dib1htmj_uhC8RDiTvx_d z?dJtCnX~#oT2b+&UZHno#WSKV`M&pu$-}!tvoAG(>H!A;clNq0#z=|iNUPGNWy&5w zm-C7s8>5q)9yqCvCxplO-Xb=z-l6OvW`C9jkmCpipfdR)0M_t*1|ux{T`Ae;N=dSW z^um-=$j4zQX_r=@anhvSbZCITa5X}@x;}y0le#-ROTHw&iVANB4TJN42U(&B@JP$7> pPr^$jYrZuvrsa}dv4mHg{s8#5^05;zfJ^`Y002ovPDHLkV1mYKi)H`- literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_3_0.png b/bin/resources/materials/textures/rogue_3_0.png new file mode 100644 index 0000000000000000000000000000000000000000..84cc2e584ca73569ae935e7c5568cb192c602054 GIT binary patch literal 658 zcmV;D0&V??P)ymW~OlBK+K zQ$ZraB9agcLcrCxFgO8M3 zJuF1aEg|ZzOWYYAu*Un-Jpfd+<^L(x-aat$($iiykooW(fX=%|9e0UjO`Y|QcK+&Z z0A|LX8e`Fc@y7scwDuZt?|d11m0MjLcIiUSW6jBhupt@IsJ&yTsu?iyV?fLjl zC%qh&U|6z$W-Ip zyG6J@dCdAH{I$6OK=bKy*18w7@2%^$)SuLmBfKL%{Nwk!kkQ4|`ME<(7$BQlRJLBd s-grruYYn#u3(-Pu5!M|dO?cPoKQMI3r^07H#{d8T07*qoM6N<$f^i}#$N&HU literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_3_1.png b/bin/resources/materials/textures/rogue_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..493d8f9fbb8d9520070b255b036a0ed0e28c418d GIT binary patch literal 666 zcmV;L0%iS)P)gh+N!LQ;|lggxs)St-=iJY@7o1TAc>(wqCc00bv`I4qmWwD6{IGHEIM>E{n6|8i~CpTk<&?Z0~f6rRpgu1mpC z0oweL@}_YnahLGQM+889TNMEB|Hbps@l^mGw3=G!WU{hC{%K7{^v!Zgn;wU(JB52j zBHH{=xC?;1+wn8S_C&vJFI!`BDGWf#<+sW_|F+l?pB}{nhBt)gCZFo%i73~D38bw( zD=Px)il}%0HMic22s>$O1e?17I5RZ}z)s^sZN;Q)+oKEGea2sO8Qu`KN;~awDV^^1 zt?$bo6HXLnQI*K#!$^5o^>EHfewh^X&k|1K?v*0t^Np+LlC1au!1LeN0r)dF3_xS& zGXSPu-}l%rU9t$6W!fq6Yj+2LhMGFpF07*qoM6N<$g7V}n AuK)l5 literal 0 HcmV?d00001 diff --git a/bin/resources/materials/textures/rogue_3_2.png b/bin/resources/materials/textures/rogue_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a26ffa13c1257817048307ef618cf4da362c1c12 GIT binary patch literal 656 zcmV;B0&o3^P)T2o%`R-Idf))-#zo^4kSus zNJW`EpMRnOP8@A27N?G@ayHc)AGC3Z2Ao4?nUZ$qVUJuAR+yBG!b<^5J`#egHDnH2@q;?G9D{ zZDSpPnV+iwJYJlNzYmvnYqRMihTjH}_L3Ei6h5oOCBjI^Wvc!2m5>{RSN{D4VDGM~ z5~OQ<$x6Kwgne)6r)e}mV^^IKpBq~M;6`WKN;>GvjL&BQs6F|@$S=RYTs+kN0p(T? z3(-nTh`Q?%w?>Ao@u6%F09Eb9e~Oh?ca6OCwAT$}K70kB>-HhXT_U}&&iY1czH}3S z+3^R)ShQzi5P-F|UL)?EFJrF?KNgf5ggdVfYd;dD6httn?)jr0$9y=dg2;M%K6%qg zFGnRAME1{Y4uH064*{5X+6};D{-bh>a4GekZ8FH8Z#WRD?!x_-3Ltl9Qg0^fm5sDp zgzM9Xt-bwgeGPzfr_NaGp3S|n?%P^_OvjG!miX}Z->X7KN2&93hlDUdzOblly?V8= qMOSJMw+IW-Qf?8}9b!#*+vz_bB*~|oTLDY}0000kS@}#g9f5_@!~}!D3)9g zo~(rs5&MH8f?XmIlIT*0V#Vm6wucf$5!A!;us)a>-VAS5lHE7o%gp@d{rT~Ezxlp- zkYNfO$E0FsN!XGIUe?YdC({U@IF@DIC;Bz^V;H`Co4EQ^p4r#ac zQj%y^yM!m1%cQIfF;nsUGCE>^IomgwTw&{WGeg5nt05%(X(jqIzdGWN<5Fd6U z(@kvuZb;d#w#l2Ub4AQ`30cFsHK;2|cw;^aK*QY;0A|PT12C8PW{69;xy3<=J6#~! zKPRkYol=oDua)!OD!(Lr!d8`sE+}`x^{q_+Zd|#l>^J`Y z&4K4N>%@^r{tQ@2%V&$kQ73Fx4eP3{=BDs#_setPosition(irr::core::vector3df(0.0f, 0.0f, 0.0f)); sn.billboard = new irr::scene::YAlignedBillboardSceneNode(sn.node, smgr, -1, pos, size, color, color); - const std::string& path = m.path; - std::cout << path << std::endl; - irr::video::ITexture *spritesheet = driver->getTexture(path.c_str()); - driver->setTextureCreationFlag(irr::video::ETCF_ALWAYS_32_BIT,true); // sn.billboard->setColor(color); sn.billboard->setMaterialFlag(irr::video::EMF_LIGHTING, false); sn.billboard->setMaterialType( irr::video::EMT_TRANSPARENT_ALPHA_CHANNEL ); - sn.billboard->setMaterialTexture( 0, spritesheet); - + sn.spriteDim = m.spriteDim; - sn.billboard->getMaterial(0).getTextureMatrix(0).setTextureScale(1.f / sn.spriteDim.y, 1.f / sn.spriteDim.x); + sn.updateNeeded = true; } } - update(); + update(driver); } -void SystemRenderSceneNode::update() +void SystemRenderSceneNode::update(irr::video::IVideoDriver *driver) { auto entities = getEntities(); @@ -94,11 +89,34 @@ void SystemRenderSceneNode::update() } sn.spritePos.y = (float) ((dirIndex + 3) % 4) / sn.spriteDim.y; if (sr.previousFacing == sr.facing) { - sn.spritePos.x = sn.spritePos.x + 1.f / sn.spriteDim.x; + ++sn.spritePos.x; } else { - sn.spritePos.x = 1.f / sn.spriteDim.x; + sn.spritePos.x = 0; + } + + tempo::ComponentModel &m = entity.getComponent(); + + char path_buffer [512]; + char extension_buffer[ 32]; + + strcpy(path_buffer, m.path.c_str()); + + char* last_dot = nullptr; + char* cur = path_buffer; + while(*cur){ + if(*cur == '.'){ last_dot = cur; } + ++cur; } - sn.billboard->getMaterial(0).getTextureMatrix(0).setTextureTranslate(sn.spritePos.x, sn.spritePos.y); + + strcpy(extension_buffer, last_dot); + last_dot[0] = '_'; + last_dot[1] = '0' + (dirIndex + 3) % 4; + last_dot[2] = '_'; + last_dot[3] = '0' + ((int)sn.spritePos.x) % 4; + strcpy(&last_dot[4], extension_buffer); + + irr::video::ITexture* sprite = driver->getTexture(path_buffer); + sn.billboard->setMaterialTexture(0, sprite); sn.updateNeeded = false; }