From 9454ac88fef56b190c2b0d5ee6249e3cf24e6cfc Mon Sep 17 00:00:00 2001 From: "wagic.the.homebrew" Date: Sun, 1 Feb 2009 06:29:29 +0000 Subject: [PATCH] Erwan - Added CC Avatar - Fixed a segfault bug when selling cards - Added a few messages in the credits - Show types of a card in "Alternate" display - This update should get rid of all copyrighted contents --- projects/mtg/bin/Res/player/avatar.jpg | Bin 0 -> 2133 bytes projects/mtg/icon.png | Bin 15826 -> 16757 bytes projects/mtg/include/GameStateDeckViewer.h | 62 ++++++++++++--------- projects/mtg/include/GameStateDuel.h | 1 + projects/mtg/src/CardGui.cpp | 10 +++- projects/mtg/src/GameStateDuel.cpp | 18 +++++- projects/mtg/src/GameStateOptions.cpp | 29 ++++------ projects/mtg/src/MTGGuiPlay.cpp | 8 +++ projects/mtg/src/Subtypes.cpp | 5 -- 9 files changed, 79 insertions(+), 54 deletions(-) create mode 100644 projects/mtg/bin/Res/player/avatar.jpg diff --git a/projects/mtg/bin/Res/player/avatar.jpg b/projects/mtg/bin/Res/player/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..29e85c6e43f342262c32a5e540d6add2aa700367 GIT binary patch literal 2133 zcmbV~dpuO@8pqe%$z_aNjoPk*PN*|3kz6*K357$h>A04ZB#H^cAotyj5-GKF+HMI) za<|J=E*Y|CyM$aq*b!|rt|P|UYuP^gpYzW-=Ut!g`aRF{zVGwCzx7$*AUF<4*-~w& z00M~w+Mx#kw-Cr<005lX!3R=H2v{#cPihhk*OSz%g8d=jp*S5Pc1PhHuKPhi*WNw@J_nBBS~|pbZzzWq z&f#9#J8btwLVcm!9#VJIpWMPi-{2KM5CL=nH55V>KoSrr0sifvMp}hzft7Le#i@qM>c-!GETU#v`C87Yn@7^~3ri5)CBJ(QQ9)fpbN}BC=o=h1 zG&*8zb&NtiZf#?G%Gt%$&E4a)|Jic^=L0WXym~D>f_6PJ>PBKxa!P7idgh(1?7KPl z?&toLUr<<7{G{aR^Q!8a+PeCN#y8C^t!;1HIUPN{eee4R20si=*vx z((=mcnqd7K0zmy~2YUa99|GhDiAJN)IM@#YNrONU&=?gmR@%Z5=Nl@csv9pNYkB)| z9EE^>8x#RB2U>aDv=ydn z*V%^Zn8WXF2%PAH1F<9fzy2PYI~Ze+uNFT;(L*pl`h4bbDoFf+mf+*f$)w6|owAdi ziFa*!0&ZPvcV1_h3`jK^GG93C4Z##y5m&&9xuZmu|S*DYGafg4DTnYu`BMTHF(oWLRisZehx>V{1Y8 zD?-?lb@gXQJ`cJ*m@$`MG2J_kt(;)m`(HI!&EMzxhRR{?mh58XXP=A~9$>Ot=k{u0 zFTB#5A9@nCyf9-fwCd|R*;rU^_fmglNmDGBGU^vG8Wmxd)x9Z}|K;?#mqUUq%jZSY z%=;FOgGzK4w!lrnTqtn@1Y&gPp)|fj+wMAisBhV*$54Z?kIa3xf3}xKoD=kU^PZc~ zK)_08Z41L#b$Ovn>u4yCrk&4r(>t?}X+O|QsT&DB9a+~~Gwjk3P+!CPzKz^&_Au7v z8<{85>a~YYOVYN_HZ4n#CFoltt1scGUjO1hqR_uH%PZuT+6At*^$c@Q6eT-1Q|pJm z6gS2Vrb@ndpy|4*liz2;7o&pN%bs~bK`ejB1f$|PX-uv$}2 z#;5bgQkC%6Kp^p>ZqM@LikOmR0ezTVHQ_PkM^*@*xK^t!R^q4W$g;51U#b@VLJj1hC%1i%UTc$vK46Er(o1iuV)m zkh0s`aYW*4xkH;;Nn4vr0uT_m-7t1u&s!*5%b&f_)3R9V$Qr%b**U7|k$fz{vmqA~ z!1SrvCCi9p#X7F9R0IjLwhaF{qe$dSW|w%48PE2!1FNOldaM17{Hu(H8gM=Jhf>{g z?ncxZ2S0icROC5@%^X!tB4yMf{gwFx8udzOLC3)z{N}}P4c@$-`goy zELx-P9VwyC21XJeDrAObhH%_BG{z>o+NyZPEwsku;&2Uip=Cg3U^OQ=c#Iw;* zZtB(yZi%zzEPVB1@_!x=Z_Q|S5EtZG^&UK*V^g=GGaveI_ZIi8E5^4(FM&XlsYJN5 z+YiSj6)*otA$<)9BW&98>{^1f8_VAv>=09qf$M&uwiQ3f#1cu6sN7 zm-(?Pd3GcHy%OD=)$6Q@-Xlh(O1$_v#v_{nE4ohetM-CIdoB)NT6AWhAf{9rU?tS|euvc<{z- zUw5_e$^%o4HzNg$!HebHhbIQbeWKjz1xfd=Bc~B6cC5pzvtCCh#?~dwg|s^$KsAWQ zr!uCj8bF}p0N{=Av{Fh~4!8DqTs8Uy8UH>kD1?)-6WdM`z(>*!Q&dko{)dsDy76}kS27w3`7@La?_ks!c+5+=nj4y@@ z7!ypg$rvFdKuAJ)rCn)r-r32qXQq2P=gL+8sjjZ->YkPVd0M6F>I&z4@%_T7g?)C2 zz?2VJ+Y%^*p%98d2m+xn#7hvvL81(aBE*Xj$3wgTeu5zcf|M;>I}bs|5-~FOm;b{&G1l$`{ZV7HsWqkkVgC3HwU8o$uklDez-ga~%@#|*(Aj1qJS6N8? z(6tXD%h1K=UOf1A`A45gyWA2uFEexH)yJP3z3t<7z2~dRA}N{M|Mp*={ox;0hIZXs ztU?tQg2OHdM{5+rq0^6JcRVDhvj-#rf1(5lHF9wR#PSO10NvoA69PlTY9yx21T1kX zt-%L8Q>tA9t^{Wb>PLbQa90x!Q6zNsw-{iNr)tr+kwY|2ZM>o z;2OX&A#b|3s-Pha`!zd!c1?>!2x2dq=Z z)(`@)L*j_UBek)CyRw2ZDrIa!eKKHTsNGbb54Zs!#{d4rZra+Fi><0N1cV_;%-hvF zct@Ia<&A5{)G@Ej}j)5oPtsjlyS zntgr7&1RD?zeeA5?V)aBr9AG+`S zvGdhr417gv3{e;gD5eVmAX<&BaL8Gs7@}~=>afX7NtFYr#z9H0$$_ZJfuztK0h$98 zt9xwlx8LqHLnR;wiYVAoAO|)Jq9_@VJyek+r@^o$d&+;chikI{AF(!gFnocR)O}UN6%wH81CYjJFch}f?E+myVHxa` z6!qB;w0-G^i;yI^dPghkb0W)_JfV@J_w;!(Cnw1}#|qm**DqWr&vEy-GtbGk$P+() zp;{Gn?LnQEhQ=u*uc@m$7<}~0g%7+Nedj$S?Y%Rxuo&8X5Hi_&?|9(0`^OIT$BK?a z@42V?!mnQ&y8ZUaKm6kQqO_w=_{ocbBe#SGB83<~=n&V|*Gn2vAh^R@n+FE94Gfq} zcxG`HkvW1uzW%wvFaNm6YZ6Z$l;@1*!h>A zyf`-O>BM-Dzsm(h=YJMur@?f%JArOeD# zb&B>-#20KAi`iU!T9*f*#tiUa86jCtz({+QW~1F>4}a_{pZ(kS#n+aAod-`b&>npRj-}|25|N8qQ<9n-> z(s#c0$nxAJ)usux2dn(AON3ODG#IYC8X!X8UO;|v0{`c~-S)+QpXaM3#hk0g5vt2I zT>DRw>jDmJgQVR~6}I|Uxqc4VB5=(|=@SAU(nNmu%iDi(0v6~JAQzB59Bs^1(OtCm zNJzN~*14=nwkq8Eeof}Vwd%!i?RGf&u}|Lh&`r;<^yOm8PnjCZ1a8;Xwfzg0}y%Mb#zM zwHVb52L=OcWc3Cphs)&jJoL%;+&apfJiV!NOOa!=#lRqt$wDEr09>y^Lkyj`=Uz6q zxp4XvPMUmu1F5OYFoFhm-Lm^Y``W^$HPm^t|Fjj4KlWO5a5(hj^YJnF>MtJO;A{3- zanD8^gw^;D4A+-FIrz(O_;($>4cGz#5fii1cW>u``x<-42mk3q%Vsk&`ezSMw5_F! znBR*`KlQ7pR`>n(dHMQ0-%eg#I&=D|*LVy=u$mm!2v{eg2DcQ>%L`(k+mZa|_Z|D{ z-*@{ z=;09zmFqwb@WVwxh%QTYV+pjId8=aIdUBK z4BUSpIXY;XSrOU~y!npcGkrnf+{@>mco7lP3(q_`DG0L8W=!S2$!6~u9>}e&u=ynT zT1cjCrRu5QUYUBW?Nfi@dH>KiIL2%_{o8;2!HjQs=l%Pq|8UXk-Z5NWo;&vBbpe`u znGtwFR_$YI6_P~=fi%;g%)<&11o6u+`Tp{4)9<*At-9`e7;fTtku=-v z?ntRrXz$814Q$}=xytdU#ZvHuu0^5+5m>I)|d zFr+G@oZE=mU4cN)A%}keA>D{$D3vK%++6}}|Jdgrz4zUpiT3V+aqB1k;Ya`Zy?+fx zdR~3$In@e)LBJ7@W)o|gfs^=`KDYPw?I#vi`~K>G&jTN<9!C@ijyYX{LwCK`YPHYJ zPEuCaUw-s+zx>ay0rUEsAAeQgIUTi%Vv{+k=^)$?E%33roWK9Jb$;Fd>CazK?U<_b zs>y;h6agbR4~(B`*u^@QGMXucNi|}kHdE~a%|n0>&oL+01`yeF`Esmou~mm5)d#3L zRGyav&AB!PE@~b{s#{4gAO){9bWk&MVC(SvtJx$9w@v~!I1N#5xQ&K`(&S3r2TwtC z)zbruiCb@a^vgk^ls47kCV=+UEwCj33<5|9&QZe-)k34S@u{e+{&d;!k-(Wq-GnHx z2uJ_n3wPc#`s}+t*H54cV=SWBaGd0MR=E#?$uca809Hu~abSZhgllFSJWpzt{1|=M`B(>lO@p?}xuorI|bLeczWq`@YY7@#m{cQx>a}vf2fK zfBvb*9{=SxO=f$wqWszHj(nj|cQ!RzVXEZd7$BO2L1Hd%^#`)YOLzS6%gIlFaTWLs zl_oFz=ASxxwn6ti#O9a2`tjW~BftP;@d99Y&$e4W@`-=!?%&R`TsD(>=E=uyz5D*p zfBFMRZHh3E-GD>0?QoqY`d35;zDVOMZ2SpDoS{gxzq48@Z!RoyxI7FEjqUp2p~}T{@Z~?A;;UtF#L+#v`^~p)lVAMJA2#C4NkC+Cu&ZS5N|{xBqtq~@y6M7NXs?KbK`~T2sn|>u_I0+uXLoG-*gS$rJV)lMZKq=+FCI_F zXQuc{5rHHoy^(;o?F&p^?{3d5&ASJ8-Sp<0_xNA)$ZN5^&KGheOXv74Z`u|tz5I*E zlBELg8o6oYw*OIFI(_B&|9G`j#_iq--%iw=y>gx7Xx`i9AMvjG;EKB~lq+tM&S3B8 zn58)L+OaDv!^1V1uj`pq3pE_njhWCijhY1&sui~F;Gk)B5r6AOI_#DgwneYqy?g!k zU3he8Pm$<=aH_4pv(I!X4sRnP<9FWM?jd3IrRh1*}D+aP#N^2uBqtDZ_}28ax<=V|@n>fAa3wOeXyE$Cm*g{M|hV_xcY< z&U?IR7=;UEA7^f}^YgDWf8i{jE$0*IjLc(>_I}?s+nF_PXmYJ9C;K|OY$4N%fV&|+ zkIldEyJHf-p(7nKg3yH$o6qx^G@VUVDrF9ULdB^oK1Eg>xiNB+>Oq~PfiGnyh~{2x zKHs6c_uV_R5iqX{xbteF?d1#1(v|CcIS(r-1Eg(q;&1K&UY-5U@3_+Xk}7qi)!w#k z?C1evB65*3=jk$jCUNJpkH1zg}*Pom@6uU0Td#lO+Yi zN`_FWHe9(mm~Gn8hTi1pfu6u{Jpdvo%WZGk`=OnuU@IlDQqURe@0xpHzg);To}Rw_ z4^PdNH{$}wv9ifSl?loWD}RcI6)J_;+2j9l3A49#?m2XDzx&GdxpFyQt+_?TX946> z&Ty(AaMgv2YleVTR;-0o^VO&(Aoc}dQ3OZKc3aoj@Pl_*cl(dq-E?--{LJdnxnlTj-RGR}#@B!ENX}dXT8|I{{1h3q<3`n{pa_;_KCmyms~dUxleznT*yLD!|m!@1)nzg z6D{UfkKhCz>g#*o{oybj~(uqK>p0#E(A`@ow(j9aM` zKKC!bPR3V2P(L$y&SG=A+(Cb^ZTjjdhdV$~mRvSvvALWspV?wNf9mC(`)>W&_y6y? zQ!fKuC2%#fdJrhxz3Dg)mTnp`Bq{&MXCe!f2 zeSiCw%s})yg38wy2LIs)Om=0l#hJDwKU4>7v3n$uuT+Y_WrOFUDBjh-1Bgm$bFG+5 z^E}6LETmys$v8f_5lzVkCg{I5cGQ_Do>6*D*hm80Ng5>6zw2at@#Eb~7p3ew58`IE{OoKVi zvm(sqU}p!<(%H2&1%McSg`mccK8;4AL%01}Hp-Y+fi!dnHIrE#{npvmQ(AIUeg@G2 z60Cn(=A%u6q^NEC#@~IIvNLqI&_CL)Tj~?*i*5ltWC5xh!d2RsaGQgkEwLSd`hd*}TJ zKD6VQH~f2`uBo^`l`dnj0O7TS4`P@<+@xvXf9>64l+76mcMgo~dF6#CyrG`^-}P6( zj3yJYv5EbEeEi3Y(-#TSgb}6-r(Y@NlZY(KhJ&uFY|@Z;j*RUNggc-3uW#=?aP;-#&xP9B7p6|N^3d0D`^JdEOn_v7em0SJo|Sk&Mg6%r7n#TRmU zLSth`Fr0k-#YZdIC0S(D>Pw65k_@?T(&FmdcKG7imjNu=w(GW1vDDc&e)i-`i~*wAYpI6Wp!ycIQwHfm znhF32q7@mmtUJ^s9SdViITh$ipnhCc= z*P5BG=k}Eo5QX!qe8L7+Yv+J1YBe{ES{+)e1u6|o3x=&O396N~I9-Q!niE0OW zb{c2KV5QB zE7>^I@K)M0jP4Ibn!kb}3%uwZ+2LB`%pnqk+#dhza#^Iys8&yao1;$SZ4t!44JAv9 zpahAVDU-u#@dPNhPYL))b6{v<=h55Va+~#zv0@@C$2SUfku?H{+7Yb9of{J{TeA~J zun4v?Q$F|N>DYXm1j~`Z-h11ZdbagWok#JnZhrE>O5LXi7x9!bPMmKXNU0hgDTU zl*wQ>HdY3#p^qL!zl50rjF5N`@kq6kWv-OjxSm50gew=~p}t+c%<45eolDmS44d2m zXQY!(u9lN=sOH=;6J>4d^$!k5+8qH)sgx~TTSP3rw&AvNlw1zjrz}`zHEEqnnOJgQ zWW2Md{LCL;7cjT$V9+u-vkuAi6e^-6ounF16tn^xL<`!IWo#HO6!CTU9@*bkk%+0u zjqK_QUoB~MKtL3UD`XPvj$P&jSJ2NFGhmX0)!upV&Re%v;*+^&pGk=vkC?6AZ8r^0 zbPrL}HfqJ?sG!cQ?0l=ey2>VE=ke~*;Bd6~%&(uStghuF`^HBsm#1e-bC)(CG&YYz z#avaNKs{Q7v|zI?UCqfn9l)W6ej*T}jPL4y`?i-XPGo(&^Vs6S^JiAGD@!6%0d!Fu zyujqjlFd;HM*DIr7+{*SV_;%;c*6c8R~LTVf&a^Xjg!} zx^!i_x;B?d6)f$x-X424CnYzEB9A-W)(Ca^9HVHXz;L38GP`_GG0)KqT!S!my{O5U z+%yxo+4iYBnn6Sngd!n}Lvs4ccGqNwf8~~uZBJh~eD(BHd2{hb9tdz8VE+ z#Gm{@8xN!55bkm1S(!v}pmPLfHcgn1<=xdyB~wh={2>z*UuT@wHYe$hB4!thx(;m1 zRjHfeMYoq?$jx(?%cVNSWi7VTGU!UpTDMWKh9F_BmH{_hm5dVRk$#VvL@o>Wi>b01 zE!Z5DHv2}eN8)`u$~OJ~m|rW`Z7cHTXd=nKub-1$T1mw@APVEJs?HQ{a@o*YA-^KQq9BXLfMkoCmvt*#clbDN_xs$z0EQ#wOtzX$No=*2SX0gh zHl#=+vY9jEvdq!d&EmCV+0^>rt%q*i7ku6AEw-VTz}(A(Ex=uT@s(^MmIY5Bow@2w zL;E6mDt*4N5i*(loT)^jNjQIfYCe7TOrl)mXEtL~lB5h*l=W0R4C^tWqStlB&^1{$ zgu%71nEo@EM*G;<+ivsk^i2`CxJmm?EDxSLIiFu!fy5ffmBk99#BCOH4bOq6(&gmT z<)`zR#NnIo!KVDqWfbMO3Vn9Evayr~!vSK+WfNClE-hG4mQIUM%2O_+!(3A0*J8!k zVwSFQio@nbwHny~|FU6}P}87|yijXnaINl$>1Ww|{s-;~+%xd1%|*kg)FrGB2TgmT z+a5jcS-E^w;wrMFlz9OpG?4({A#%MXimxP=&plts7k1q{jJNw|d6`&W&PtN3b-O9G zo>EmME)$UEhN z06<=wr@2zDg@Rg~Sj(tNawFBC$w?#K0M#pzT2TQ8=o09!a#>4q%n+g}4U{@4tPs)X zr~J>Jw_Hs1%XpXHTrrzUE_=4a4z0@rG%ZH@yGC6ztL3)&sWl*SsG-XRgu&HJa<$}6 zGd`G;UG5OavXaQ^F(YD-6XVELK{8pK9LEDC!A-y|;O;;dm@hAg7*6$#?ECY-{>S(K z_2<)>d~9Wb69itYceE<~&04n|rr)%ZO&@#qG_2^iv_#-@7sJ=?*!RHjrS{-TZ|CYm zGWkUC5U>Zh30G>C5Ui#Ep@v=pt5!+PT;;vdNPF*F-unfP=jn3xr{DUN%oiZB!m|}6 z5UdH1WJoE14~XF3^o~zmIDfjkcWBSeZ)2ItW_+WoZ)AG%;;Sz`(-!SMb@I5&7hMHt ztOTedH)_99BVIxsWba9j7O6VFFGdc%>fu^oGV{Qa+i7~N`f zo;mqyE}N3&dd5s|u2c6h5DeDgq|}mskeJQPiDypn!oI)4`0nn_ZT^#0aS10lMnH2F zV7O|ncaR}+Qtcz6#HjgVDY3bU;HHl~@`G|A$MM{mv!}Q3K0?#gaI_!LjOT%Ws%A6k zo%?RJJ6z{Zy)v=q@Na+hz0=2^NyK9WLA?ITQ^i6a+%lbvr{YUio1>6Rq9`gzlH9CQ zs!6EV;}N5OG&p;aW7COj#l5fJnsj-q6q%O=^z3ry%#{_O@eQ4Z8*;CT+sxHdxl}B^ zwuoW`U=%}FCojM5^|u!aDXY!>mr6i+ScaXMy2{WMQ8XyM+?0!{^@?tZ8Fd1yk%=oDe#g6Zy<_x6 zr>9iTQ{Q^&;Pa2aDsfCp?HkrA+K{H=2#Q*4o^mlQ*PaPn7DYMT{wN3}R~D{gI9beR zZjhqalVFD9_4K5cQDq!vZcA?h9#61ZK>&r1{0eS7R~v6N#yhCB4ZzOv&EOLiiORTEE_zuMmfm% zY^l*OQ{RE=$mS(1)fowdu)f=PslJHKPaC@<rJ4n6 zJV8;!9f=&hrBk5!r=OohWT9S*YQ9$eLyS5GH&Sg%pQ6eTseZC@1TkcLrN-1{2x?V@ z<~op$bkzOEOpq)f#DG<21Cfs=!w1 zU4^xpAgbl9YfS{G5+c;5ZAf*ih`ptuO*V4Xpez6ZV><1P2`)V&ft$_aH}C!A1NnBx zbC(u|e)GpwzMRv#i|WJGIjJ|B8@Zt}L9TJ5o^01_8eCghfYuHo^`@ZuwFq24Q?DC0 zq!ezozv?3~qeM03OKS~X``>i1>F>n(Dqn=FSbFg&)uSS*h1I5;zP>G16joIL*A!+-tRD;G}n4QvCB z=-EH~?96M=-gNWP6UUxSZ>|Cug6dU8wLMd=uZcjkQVFC^PinF#x=8^pL65W=f}zfg zFq=EK_21GP^SJXMrs8-!Vo$G%+cy?BWJ!dz!gPx?I$YjAd-$_cSI&I$3qQH(mbY5% z-by)tocHvF za?kzb^!UkVPs%)_mrGH^pdL!z)$-^6>sx<#^!pEe=#eugo&qC=Vf5+8f8g*$$9Eq5 z)9-#*$Ru_jJPHnOtS!aYSKj-Ve{Zq5U<7e{{NMZLKknRpkTjWn!N~H$EL|=C>_^`` zbjwkL-!9J-R(2<3M%VY6paEl*JQQ!OpHBrC%!B6n#I8<6Yf8z zA4Dm~QOi$Gt#<$Ru}Qv^RrS7J9??i(a|Q&i{LT-59mT2cft_Fb?7P`=oH7%1DQR(p zB_)lKW9gEbLy>EX?aVgs-EaS>!`tEZhEW`dFtxZaGd#L`cKXU%Y&n}rf=Na@`hNPO zZ(ccnLKJvobFGd5lFoAd9S85<<1M zZi%nXU3pdDsxSWW$1nWuJL$yY+~i3RldLRUzVO-~r!T!cIFpZVwEv7Ohi zoaOmylSZi0rPO{62DGVoYYbPQCS8KJoUfk%-RLHbWRKw{0P~|Dq%xTS+E<#=1Wp8@ zzrfXju^}y_KeXZ6wS%qjNAHEvtbY@(+2V*A_i1UvHXf9lF3}GfduMcCrypz?%+`^# zpe;QF#?a7w7N0WF#tW@J?p#kX=rTer}lxON0; z!O5_8vbKe_9c4&r2RHl%^o6!4N6XxrNTtfY#;q2)h7CKwYhY%|+upHfZ`Up1>8{WQ zOi>lihKk}w(RViHzjQT|SXyNYIi+YV%PoEcHegajn{!KmB{ws`I9?fQI8=Qr%dKoM z>KUY=Bj`rTp_n-YgHh$9bS8@c$#4SC%WBS{Sw-~b4@kbT>R?Kq*HFrW-q?0EzHU(w z2!4aB-tdSFiyTwTt*rZ(f&+fwSW04^aYVhzeri49$WL^2zA`y6d0{cPu^})Otvj$a zg4+5Of}6y@LE>gT)9%-*G)88rx0j8L8VCZ=qp~VZ6lKM_0{Bf57MscCv-v|#zt`b1 zQv@fLGn*^%<=ORYGS9P|8Z{cyn~+wAHx8&?mQx-Ta5Tm6O?2F9e_Gh{-y17qL<~0= zuOC5hoU}Q-k+$wGce_hKES554g9x+N26d8~a;bPWZohPCJsVr)tK}LAnt`EVgt~Dv zrpI;hH`pZUf)OZb!bnQln#{PmHIX<;U^oH+Bws2PGr3BcfpN;> z4SAw%ZDDi7nhTqgZd2Au77?MmnL?j_O?vHgCYNQ@e&DSE`wfoNc!L?`_y5Pq-_X?? zdQw}@R7yq47g(-a)D~?60EH{0H!Jz{B5@AGl!hAw!6~aN673)9*y*fJxRcUY=o%#E z)?z$efwV$lodMu<3`YqQ*ec5@c?OV6=bXWkg7cKqFte4gItZJcv{(U&Q52RqhAkJX zg%Zbb2u_j?kHzbEcwJ5>;j~CjinEgy3M-kQGA89^p63~krJ-cOJeLopp^(Yx_1n3y zJd4oD%{9|1;QJE!IIYX*qqd8(#l2z54A963-uxBjY;2f znzBL~_->2U?Y1~6776rY zdmvx!56;q+a!OfUp_3YbWy0pNg}YoG-EJpJ(D77kExw#67mAV~)n@?^9Z3;(FBOP7 zLJ_y$?sJG9vfv^L7BpwZDmcPcs`zrbdx`F1VVjev_~m6vx~3#mQ4>Yk?N-JKufR-U zHEp>(i><72g%ToQCMskP_WHY=nILm%BT+najft(%ytHhx*}M+aic~gJrHy!nu5!A! zYnUumC*XQcQ)N{H7r<%>$Y`T)WQ(8{jnNE|k)3)b10x8l$KO8Ozi$v5vdmE=OXHqR zeqQIcBlhS3)q zu~tn@Fa$Et+NdindT>L{F#ZZ_P>LXJUUyH2b-V9+dtk!~oCKN__!*8Rt5r*e3$9kS z&2N$`OZoKrW;L4uegYUUNES4%%fO%rbg5is>3}0l#MpW$pRuTBN#?d zl*2&=sf?4zmL!R^QiPd7aUfm-fLjPjkv5mv>BR_)E9FY5%}TKZ@q(l~bhzQ%bv$Bp z_!xvVsR-1fD_d9sL0fXCn%7iYLlh5Dtz^q`8j6JEf+S@zTqMlkBUl|(uaxc;W)DQn z#X;wKIWU**S%|TT)nqxH1gazPtkMGra1GBgRi-Rj1Pt}stDO=O-*ED!oJyL?W+%VS}@+)^qgonv6Otmk?ag^&zL3o!sN z-J@UzE;N5`s1Sy2OA=h?5D35Nd}eJaekIWFBC?2B#w|F9dSwa1#UhC_1j$pDJY~&$ zU8_T0yxeZz+#Z}sk1fQdL@Zg!WF(HoO(r059Bc+Ufr(isoOOEabjc6o*WEW3?F)92 z%Y;mAfO@v+f+?Y4ZxM_}%xinN+$Y(2)^X2K8d?sBLc~OVpjZoAGz>U!< ztTqrCY5fK}P_vmbh6N3)Rj)5f0Ljq#TslSPe7=y7U}(n-eDgvvz?X_{I29#U!_=C? zlC@Yl%Fa@bq=!rO`ld@A&iH6#wy}V=)f;~p#+CgJ$ByjsfqxVu_d-t zomt_hmY6vXzGA1^!hz0^=(Di|RAj2TOkR$~h2Ghky0U-i;TUj+b3bOm+^q6wneO6LG3ZSbqa}OPid1c7$s{9oRQ6e-rfz=(UyR5XC?+HF zf<;IY;$`4la1$(0oQR_UO7ykSymcg2@H4!*$`aQyLphr}ge_7~vYVRgFvmE^&SQ3% zK+Iy6tw?K|rs*ZP!kVmJUpQp#aphd(B7w1Th8ARTU503mDOHwBWjR+6HdAaOQORc+ zmJvW;o`K-itLQ0M?em93QR!nB1SO8Fr?w;wP&K=BHKC#hSaS0|))D~MeU7$@Lg{eF zu=+=NEuEx901A+;EzqrT7dBj2-hz_>Z94dc=zmqvLDh(efrhE53iWo*@K zx#;nF+B!O-qy4@@w`<)+B~27<_b@hjEhxk#>17zj5T_t;2q{Qy<}$>sNt-j*lGWIT zP|CBwWhnzRQD#rb-`U+CE_G0|6q*^aUhqrqWR_aby3@r_(bt;@?s3_93M(TJK+=-L z7V-Q-F~i3Wp=r_ z4g%{?O1Dx*W;FYISTk$b7H-tQfjl5Pi4#5 zELSNhK3RF4g4~GDm0^OwiY`^;ib-5GNLN|LQGvRt>uKxj(IR6e#6 z_c{X}o5O?)f{@K8^Cg&tGPtwi;ysj^lpmA4XI|Mf<00)h-0qo?fjB&L=C#aaRmxc0IU(qi*t?EgU_fSNj+2*? z!u4yJ%u+_A8E|)fi6*#-%+Xwq0c^-FXlA0GEkfbMYH5kwB!H4DLjvJ6&jI}vz*c=T z6VyUbBbl^RjcgECJ=QiR>J4y7hgMBFEMt~dGbEY|fi>u*1t`s0Qo9HvOb&lw+xDKj z`{I4>8HWcj1Hd2UA{6CGGh}tjE~pyhlS9?n+xr|FyP_A@w_lnrZ!E?tS%8<61%8T! z6GbH%Dx-i*lu4q@2!`Xex2eIpN@BeGVCH<+p>BL+2bPW@{%IvX&qQnKSKm2wH07rJsOM;UgoJZ!>5uZ0c) z@Jgj@rku&lS{#Dao^|oXF3-~bHs6Keo{MwsYYXdiArAuyMKMWfK~!E{gP{Vhymu1? zp|@nn%j&6e)e-;z&6PMn`)X=EIq$h1iFQPyQ9N6rk!)7LU=u-FIK|NLdScj^U~jU~ znrtJ@-nDKq3|S3Xd)q@xe}dl1rKaZ)SYbMDvWY-`=t}K1Wr_>I2@*u?vJhWiNvyBrvMFA%>UFEva`PKE;_2?)0Cr`8WApK~Go}313ltcL$ZbkWaa9J& zZ?aH!uRGi^GSq7s4Q1M?MY}0QQk>0MG+Rmm$Hu5PaH+R@auvb+3i3vP*j!~ z4ud7&t(8@2wS>Xewc?FbCU7=Psk&KVvx)R9b=7RKSY0NSNJsZU5%dGAAO82R=iOjOPj!S!StRWZB z(hRG&$zi~fQg#5V!N=q8c`TtXB%1w7SeZtO)6B^Z1>!H(ha!-wyD5ZrcQ<_cx8 z1tVRBT&7$q5Cln@%nSqcKby-WyLyM$W6L(Xqgcq(H0=+Be)gk(-Hfk4_`VPGylAo7 zi^alYzxq*Zd5&c&z=A{28?d2SEb0jrUerwF4QuJGAq&uT0R~v9Oy^RWwb`Ys;ZV=e z(9Yh$3GYmsFKM>0E>D4?t_F*-f_1xW@p#Hfgr_ChDncm3D(}J;Sgi;MH?iE9{WO*` zA&7$uY1Q9a{Wb)*tZl^SrY=uSO}*>kPqz1rdxIU}NH>b&x$LIP6G$gFjy?BS&yIUp zhFwpyrfzh><1>oS0-2G?8e2%jF z0J*IWFNR^@4lKhQd*P2)FP#bm!ohIV0Ui*HBsbTASS&5fL_4}UmU-gWKLo}KV1}9N zmkas4FW9y;Kb=bh9M2opYP32I`38QZmUgToIV~j#%Z-;E>xLTAmUGlOrwEr^L$W!# zRLX9|7iZe8Y#TYy*E!~!^|&%7iVIRHpZKB#42cO6Q37HyhKCqVWIkLP`-QJ+rA6i+ODQBjwPyO5b_YTyvZK`EaGY|wg56yc+XII?Vm+QkyR(d&l>SZ-u`m@= zEY<$h_0ChTE#}tO1h$T1x7J!(ayG^;h=v|(Lq`$BVs~4tPT=GKs0D5c$MI;_Acm8( z*Drc}p`O8AQ&-Oc&fR+S9W2WN60nT2zzi@F$H|qYxl3nXsT6_PUk3oh>u&>=D!#E= zE*69uQkJxwdaLy}U^e|Hsl`d$s5j+?`;cD1*U`4l5(sKCAX|9@-^jk{CxB=MH=CWo zaNl_E;qB-y-=yD_AkB&#RZFJ%M9-5~0vArr6%uiYXN{z9YKGpzBnWEa&DKN%Kyd&I z38K(y05p86q`naZfC4}@rdpD)FPF2a{Cb{ZECUXc*#uP~;FPO)Ea$tjj3!o-Y_%ebQj3(e z)SqQ-6+vSigEj$4U+AD62R9Q$$+&nx*5C7?FO`sFpe0;wO=sf;tA-b$=txvHcKgdW z7)c$%{##4EY$NQ&C>?YMis~EgLX!`~Q{;6|J<4x{Ph+8@?J0!Y;(xYdY3&=#}StRJnvA}~&p6o?1{9*@fmg4@JK zs+`G)EZs<*Zs{3o*h$zByEKcx^40L~H|WI%UG170xAZKbY?z})IAa1v4+HA=)R%)8 z0)sl^;l>F~)egvzdpBI(l7DQH6S?{S>arhr3&pq6*JxYRuX>lMG3E!LtJVwQ>m2OZ zF+h&F*3DA&e9CtGN_B01g)J9>VMeup1A+{?W#El0H{q_9KcjBd35~Q;7HQUldMXex zSbRg-Rn~Isuny9ohSJH+Yg~+mu7%32DdA@QYY7pz>Wc9z9C2^4OK)ICj0X|TUMZ<6 z3^Up6{*LJQMD);bb-+DOq1j^5bRpjVr?b++wRxtHQ(mhE-{3wi!C*r;ntfP9Kj6k} zjXaaJbv6y&=oO9@`vYt4L2f=-C##0C>if;zzzt}-Wxpi=G~U^0nzmX?sKIr`LSc=D zIRm{~m7vA_YC1ts7FRetINo!3Oxh8i_1a&?aYo?Lbjo{tefYT(+4Y$PzFIq`Kd!zh;CT&q@!JkO!Zf=Nty z&zbU1`iQljT|K>TbP!?mwL(#q+`|jMn`$!?5#R+pq_t4tvVkWsZb@k-x;^h7B{usjwi*r{G z+;)F=-{_gwUwG}<(=;dD|DI3mI|P_i&ZH6!r<-P~GuJM-y@6mj3fOV^{Oc=AGn?zn zoAKpLDqbm5JeAnShsjxJ6#p4T57U$B!^>Cz%zzLvI)oKO9$#7dI z&?y-RbPWc=9Y8@ZUpSdcCRnB_2z+fhqWs^bTeSTa2UAVADGeEwo0 z7mEqCVoA%p7~$p@t+tpoU}35~>!; zY_YiuxnwpKBS~`qZ4VX8-1W;RM#lHC41M|ROZoJgz|&yHz+?eoSEau87H9;-=Qg{0 z@6GoOj@{JWH4HdZD&~PV0=lvuTLb}>$Lq%l)8hQ()V1@#NZfSun@G}35M-%T0Nh=i zoBG{vew@o}j*RZ~2cta$qnnAuvrqkIeRYxNsdw5{bx1*!nLrpuWO|z8+lNEWSR3PH%(8a>YOu|g_ zsMqft4{Q!wF5+@^CKEj|O)gF@GWj%6n%0+O8Z4XP1B3ub0co~40Tukgj$7aIKf>)J z;COO#ZR+v~o+&Za!u<6!rCeO8f`i6GwJ#wGb?#ZPS%KNPWH37>0Fx=_#5~TU%=biw{WU)FfoH-ut=#F*{ zoILSjv5-4_%RPGz+y-v@;klcbiX8^0Q3Oy%Fie50}zqP*~va)pBZ zgOQ;&n1hfEgVVgy7H+W+0WaR|t#sQr{MH0zDgvy9pnwzzT_(~Q$MsD2*=1^RCSJ+q zFv8^P?%p}-+T*=uhc`Cp=mmh{i{7v c^9tqv4>|LA4U+waY5)KL07*qoM6N<$f<)lRH~;_u literal 15826 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 ct*Zn2f6J0Kcollection); playerdata = NEW PlayerData(mParent->collection); sellMenu = NULL; @@ -276,6 +278,10 @@ class GameStateDeckViewer: public GameState, public JGuiListener if (hudAlpha < 0) hudAlpha = 0; if (sellMenu){ sellMenu->Update(dt); + if (delSellMenu){ + SAFE_DELETE(sellMenu); + delSellMenu = 0; + } return; } if (mStage == STAGE_WAITING || mStage == STAGE_ONSCREEN_MENU){ @@ -460,6 +466,7 @@ class GameStateDeckViewer: public GameState, public JGuiListener deckname = "Deck"; } sprintf(buffer,"%s - %i/%i", deckname.c_str(),currentPos, total); + mFont->SetScale(1.0f); mFont->SetColor(ARGB(hudAlpha,255,255,255)); mFont->DrawString(buffer,SCREEN_WIDTH/2, y+5,JGETEXT_CENTER); @@ -502,8 +509,9 @@ class GameStateDeckViewer: public GameState, public JGuiListener } void renderOnScreenMenu(){ - mFont->SetColor(ARGB(255,255,255,255)); - mFont->SetScale(1.0); + JLBFont * font = GameApp::CommonRes->GetJLBFont(Constants::MAIN_FONT); + font->SetColor(ARGB(255,255,255,255)); + font->SetScale(1.0); JRenderer * r = JRenderer::GetInstance(); float pspIconsSize = 0.5; @@ -529,12 +537,12 @@ class GameStateDeckViewer: public GameState, public JGuiListener r->RenderQuad(pspIcons[3],leftPspX + 20, leftPspY,0,pspIconsSize,pspIconsSize); - mFont->DrawString("Prev.", leftPspX - 35, leftPspY-15); - mFont->DrawString("Next", leftPspX + 15, leftPspY-15); - mFont->DrawString("card", leftPspX - 35, leftPspY); - mFont->DrawString("card", leftPspX + 15, leftPspY); - mFont->DrawString("Next color", leftPspX - 33, leftPspY - 35); - mFont->DrawString("Prev. color", leftPspX -33 , leftPspY +25); + font->DrawString("Prev.", leftPspX - 35, leftPspY-15); + font->DrawString("Next", leftPspX + 15, leftPspY-15); + font->DrawString("card", leftPspX - 35, leftPspY); + font->DrawString("card", leftPspX + 15, leftPspY); + font->DrawString("Next color", leftPspX - 33, leftPspY - 35); + font->DrawString("Prev. color", leftPspX -33 , leftPspY +25); //RIGHT PSP CIRCLE render r->FillCircle(rightPspX+(onScreenTransition*204),rightPspY,40,ARGB(128,50,50,50)); @@ -544,16 +552,16 @@ class GameStateDeckViewer: public GameState, public JGuiListener r->RenderQuad(pspIcons[7],rightPspX, rightPspY + 20,0,pspIconsSize,pspIconsSize); if (displayed_deck == myCollection){ - mFont->DrawString("Add card", rightPspX + 20, rightPspY-15); - mFont->DrawString("Display Deck", rightPspX - 35, rightPspY - 40); + font->DrawString("Add card", rightPspX + 20, rightPspY-15); + font->DrawString("Display Deck", rightPspX - 35, rightPspY - 40); }else{ - mFont->DrawString("Remove card", rightPspX + 20, rightPspY-15); - mFont->DrawString("Display Collection", rightPspX - 35, rightPspY - 40); + font->DrawString("Remove card", rightPspX + 20, rightPspY-15); + font->DrawString("Display Collection", rightPspX - 35, rightPspY - 40); } - mFont->DrawString("Deck info", rightPspX - 70 , rightPspY-15); - mFont->DrawString("Sell card", rightPspX - 30 , rightPspY+20); + font->DrawString("Deck info", rightPspX - 70 , rightPspY-15); + font->DrawString("Sell card", rightPspX - 30 , rightPspY+20); //Bottom menus - mFont->DrawString("menu", SCREEN_WIDTH-35 +rightTransition, SCREEN_HEIGHT-15); + font->DrawString("menu", SCREEN_WIDTH-35 +rightTransition, SCREEN_HEIGHT-15); @@ -563,15 +571,15 @@ class GameStateDeckViewer: public GameState, public JGuiListener for (int j=0; jgetCount(j); if (value > 0){ - sprintf(buffer, "%i", value); - mFont->DrawString(buffer, SCREEN_WIDTH-190+rightTransition + nb_letters*13, SCREEN_HEIGHT/2 + 40); - r->RenderQuad(mIcons[j],SCREEN_WIDTH-197+rightTransition + nb_letters*13 , SCREEN_HEIGHT/2 + 46,0,0.5,0.5); - if (value > 9){nb_letters += 3;}else{nb_letters+=2;} + sprintf(buffer, "%i", value); + font->DrawString(buffer, SCREEN_WIDTH-190+rightTransition + nb_letters*13, SCREEN_HEIGHT/2 + 40); + r->RenderQuad(mIcons[j],SCREEN_WIDTH-197+rightTransition + nb_letters*13 , SCREEN_HEIGHT/2 + 46,0,0.5,0.5); + if (value > 9){nb_letters += 3;}else{nb_letters+=2;} } } int value = myDeck->getCount(); sprintf(buffer, "Your Deck: %i cards", value); - mFont->DrawString(buffer, SCREEN_WIDTH-200+rightTransition, SCREEN_HEIGHT/2 + 25); + font->DrawString(buffer, SCREEN_WIDTH-200+rightTransition, SCREEN_HEIGHT/2 + 25); //TODO, put back ! /*int nbCreatures = myDeck->countByType("Creature"); @@ -582,13 +590,13 @@ class GameStateDeckViewer: public GameState, public JGuiListener */ - mFont->DrawString("You are currently viewing your", SCREEN_WIDTH-200+rightTransition, 5); + font->DrawString("You are currently viewing your", SCREEN_WIDTH-200+rightTransition, 5); if (displayed_deck == myCollection){ - mFont->DrawString("collection. Press TRIANGLE", SCREEN_WIDTH-200+rightTransition, 20); - mFont->DrawString("to switch to your deck", SCREEN_WIDTH-200+rightTransition, 35); + font->DrawString("collection. Press TRIANGLE", SCREEN_WIDTH-200+rightTransition, 20); + font->DrawString("to switch to your deck", SCREEN_WIDTH-200+rightTransition, 35); }else{ - mFont->DrawString("deck. Press TRIANGLE to", SCREEN_WIDTH-200+rightTransition, 20); - mFont->DrawString("switch to your collection", SCREEN_WIDTH-200+rightTransition, 35); + font->DrawString("deck. Press TRIANGLE to", SCREEN_WIDTH-200+rightTransition, 20); + font->DrawString("switch to your collection", SCREEN_WIDTH-200+rightTransition, 35); } } @@ -791,8 +799,8 @@ class GameStateDeckViewer: public GameState, public JGuiListener } } case 21: - SAFE_DELETE(sellMenu); //TODO, stop deleting this object while it's being used !!! - break; + delSellMenu = 1; + break; } } diff --git a/projects/mtg/include/GameStateDuel.h b/projects/mtg/include/GameStateDuel.h index d408e277a..cc564bf0e 100644 --- a/projects/mtg/include/GameStateDuel.h +++ b/projects/mtg/include/GameStateDuel.h @@ -18,6 +18,7 @@ class GameStateDuel: public GameState, public JGuiListener #ifdef TESTSUITE TestSuite * testSuite; #endif + int showMsg; int mGamePhase; Player * mCurrentPlayer; Player * mPlayers[2]; diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index d8a9bff08..cea9dcbe9 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -1,6 +1,7 @@ #include "../include/config.h" #include "../include/CardGui.h" #include "../include/ManaCostHybrid.h" +#include "../include/Subtypes.h" #include void CardGui::alternateRender(MTGCard * card, JLBFont * mFont, JQuad ** manaIcons, float x, float y, float rotation, float scale){ @@ -63,7 +64,6 @@ void CardGui::alternateRender(MTGCard * card, JLBFont * mFont, JQuad ** manaIcon unsigned int j = 0; while ((h = manacost->getHybridCost(j))){ - OutputDebugString("Hybrid\n"); for (int i = 0; i < 2; i++){ int color = h->color1; int value = h->value1; @@ -178,6 +178,14 @@ void CardGui::alternateRender(MTGCard * card, JLBFont * mFont, JQuad ** manaIcon mFont->DrawString(buf,x+v.x,y+v.y); } + for (int i = card->nb_types-1; i>=0; i--){ + v.x = ((-width/2)+10) * scale; + v.y = (height/2-20 - 12 * i) * scale; + v.Rotate(rotation); + string s = Subtypes::subtypesList->find(card->types[i]); + mFont->DrawString(s.c_str(),x+v.x,y+v.y); + } + } diff --git a/projects/mtg/src/GameStateDuel.cpp b/projects/mtg/src/GameStateDuel.cpp index ef6a0fd7b..73e683763 100644 --- a/projects/mtg/src/GameStateDuel.cpp +++ b/projects/mtg/src/GameStateDuel.cpp @@ -47,6 +47,7 @@ GameStateDuel::GameStateDuel(GameApp* parent): GameState(parent) { #ifdef TESTSUITE testSuite = NULL; #endif + showMsg = 0; } GameStateDuel::~GameStateDuel() { @@ -69,8 +70,8 @@ void GameStateDuel::Start() mGamePhase = DUEL_STATE_CHOOSE_DECK1; mFont = GameApp::CommonRes->GetJLBFont(Constants::MENU_FONT); - mFont->SetBase(0); // using 2nd font - opponentMenuFont = mFont; //NEW JLBFont("graphics/simon",22); + mFont->SetBase(0); + opponentMenuFont = mFont; menu = NEW SimpleMenu(DUEL_MENU_GAME_MENU, this, mFont, SCREEN_WIDTH/2-100, 25); @@ -280,6 +281,7 @@ void GameStateDuel::Update(float dt) } game->Update(dt); if (game->gameOver){ + showMsg = (rand() % 5); if (!mPlayers[0]->isAI() && mPlayers[1]->isAI() && mPlayers[0]!= game->gameOver){ #if defined (WIN32) || defined (LINUX) char buf[4096]; @@ -352,7 +354,7 @@ void GameStateDuel::Render() if (!mPlayers[0]->isAI() && mPlayers[1]->isAI() ){ if (game->gameOver !=mPlayers[0]){ sprintf (buffer, "Victory! Congratulations, You earn 500 credits"); - }else{ + }else{ sprintf (buffer, "You have been defeated"); } }else{ @@ -363,6 +365,16 @@ void GameStateDuel::Render() sprintf(buffer, "Player %i wins (%i)", winner, p0life ); } mFont->DrawString(buffer, 10, 150); + + if (showMsg == 1){ + JLBFont * f = GameApp::CommonRes->GetJLBFont(Constants::MAIN_FONT); + mFont->DrawString("Please support this project !" ,10,180); + f->DrawString("Wagic is free, open source, and developed on the little free time I have" ,10,196); + f->DrawString("If you enjoy this game, please consider donating a few bucks" ,10,208); + f->DrawString("I'll drink a beer in your name!" ,10,220); + f->DrawString("Thanks in advance for your support." ,10,232); + mFont->DrawString("-> http://wololo.net/wagic" ,10,244); + } break; } case DUEL_STATE_CHOOSE_DECK1: diff --git a/projects/mtg/src/GameStateOptions.cpp b/projects/mtg/src/GameStateOptions.cpp index 915667eeb..9bff6115f 100644 --- a/projects/mtg/src/GameStateOptions.cpp +++ b/projects/mtg/src/GameStateOptions.cpp @@ -69,43 +69,36 @@ void GameStateOptions::Render() "Wagic, The Homebrew ?! by WilLoW", "This is a work in progress and it contains bugs", "updates on http://www.wololo.net/wagic", - "Many thanks to J for his help in this release, and to all card creators", + "Many thanks to the programmers and card creators who helped in this release", "", "Developped with the JGE++ Library (http://jge.khors.com)", - "", - "this freeware app is not endorsed by Wizards of the Coast, Inc", - "", + "Player's avatar from http://mathieuchoinet.blogspot.com, under CC License", + "Background picture from KDE4 , www.kde.org", "SFX From www.soundsnap.com", - - }; - - const char * const MusicText[] = { "", "Music by Celestial Aeon Project, under Creative Commons License", - "Their music can be downloaded at http://www.jamendo.com" + "Their music can be downloaded at http://www.jamendo.com", + "", + "This work is not related to or endoresed by Wizards of the Coast, Inc", + "", + "Please support this project with donations at http://wololo.net/wagic", }; + JLBFont * mFont = GameApp::CommonRes->GetJLBFont("graphics/magic"); mFont->SetColor(ARGB(255,200,200,200)); mFont->SetScale(1.0); float startpos = 272 - timer * 10; float pos = startpos; - for (int i = 0; i < 10; i++){ + int size = sizeof(CreditsText) / sizeof(CreditsText[0]); + for (int i = 0; i < size; i++){ pos = startpos +20*i; if (pos > -20){ mFont->DrawString(CreditsText[i],SCREEN_WIDTH/2,pos ,JGETEXT_CENTER); } } - if (GameApp::HasMusic){ - for (int i = 0; i < 3; i++){ - pos = startpos +20*(10+i); - if (pos > -20){ - mFont->DrawString(MusicText[i],SCREEN_WIDTH/2, pos,JGETEXT_CENTER); - } - } - } if (pos < -20) timer = 0; mFont->SetScale(1.f); diff --git a/projects/mtg/src/MTGGuiPlay.cpp b/projects/mtg/src/MTGGuiPlay.cpp index 1a769180c..052e31753 100644 --- a/projects/mtg/src/MTGGuiPlay.cpp +++ b/projects/mtg/src/MTGGuiPlay.cpp @@ -352,6 +352,14 @@ void MTGGuiPlay::Render(){ RenderPlayerInfo(0); RenderPlayerInfo(1); + int opponentHand = game->players[1]->game->hand->nb_cards; + char buffer[10]; + sprintf(buffer,"%i",opponentHand); + mFont->SetColor(ARGB(128,0,0,0)); + mFont->DrawString(buffer, 56, 20); + mFont->SetColor(ARGB(255,255,255,255)); + mFont->DrawString(buffer, 54, 18); + if (mGlitterAlpha < 0){ mGlitterAlpha = 510; int position = rand() % 2; diff --git a/projects/mtg/src/Subtypes.cpp b/projects/mtg/src/Subtypes.cpp index 1bc74f131..72201e69c 100644 --- a/projects/mtg/src/Subtypes.cpp +++ b/projects/mtg/src/Subtypes.cpp @@ -14,11 +14,6 @@ Subtypes::Subtypes(){ int Subtypes::Add(string value){ int result = find(value); if (result) return result; -#if defined (WIN32) - char buf[4096]; - sprintf(buf, "Adding new type: *%s*\n",value.c_str()); - OutputDebugString(buf); -#endif std::transform( value.begin(), value.end(), value.begin(), ::tolower ); nb_items++; values[value] = nb_items;