From ac4f92f547b0c606f32eadcfa5abeb5744bdb2d7 Mon Sep 17 00:00:00 2001 From: Bruno Dilly Date: Fri, 9 Nov 2012 18:57:58 +0000 Subject: [PATCH] ephysics: add coins test requested by Raster Just giving his 2 cents. credits: joke: acidx images: marina SVN revision: 79050 --- legacy/ephysics/data/themes/Makefile.am | 2 + legacy/ephysics/data/themes/balls.edc | 3 + legacy/ephysics/data/themes/images/coin0.png | Bin 0 -> 13830 bytes legacy/ephysics/data/themes/images/coin1.png | Bin 0 -> 12116 bytes legacy/ephysics/src/bin/Makefile.am | 1 + legacy/ephysics/src/bin/test.c | 2 + legacy/ephysics/src/bin/test_coins.c | 136 +++++++++++++++++++ 7 files changed, 144 insertions(+) create mode 100644 legacy/ephysics/data/themes/images/coin0.png create mode 100644 legacy/ephysics/data/themes/images/coin1.png create mode 100644 legacy/ephysics/src/bin/test_coins.c diff --git a/legacy/ephysics/data/themes/Makefile.am b/legacy/ephysics/data/themes/Makefile.am index 8bc5c6a869..73a26f5ab4 100644 --- a/legacy/ephysics/data/themes/Makefile.am +++ b/legacy/ephysics/data/themes/Makefile.am @@ -42,6 +42,8 @@ TEST_FILES = \ images/bt_shoot_pressed.png \ images/bt_stop.png \ images/bt_stop_pressed.png \ + images/coin0.png \ + images/coin1.png \ images/collisionL.png \ images/cube-blue.png \ images/cube-purple.png \ diff --git a/legacy/ephysics/data/themes/balls.edc b/legacy/ephysics/data/themes/balls.edc index c23965fa76..5eb9f5d118 100644 --- a/legacy/ephysics/data/themes/balls.edc +++ b/legacy/ephysics/data/themes/balls.edc @@ -24,4 +24,7 @@ ADD_CIRCLE(big-red-ball, ball-red70) ADD_CIRCLE(green-ball, ball-green) ADD_CIRCLE(big-green-ball, ball-green70) +ADD_CIRCLE(coin0, coin0) +ADD_CIRCLE(coin1, coin1) + #undef ADD_CIRCLE diff --git a/legacy/ephysics/data/themes/images/coin0.png b/legacy/ephysics/data/themes/images/coin0.png new file mode 100644 index 0000000000000000000000000000000000000000..94dfc8bbbc90c4258a40d89678a56097bbe389e7 GIT binary patch literal 13830 zcmb7rWl$x}vMoNqpaTrf4sO6 zucM`^I@ijq%&e%6?&=76SusR-9C$D=FhmJ)5yj6d@Sg(~=JV{pup9h&!FCo^cUH19 zb#^mwGyxMdwlg##lCUu_Gf^}#F!pd5HTeMs23cpJtnREXBh77OXTxCdj|_vmjr}JY z4D1KLyS;&tm5DQvp^2G=EicJsM-K^+g)uLQ8k-E0jJ>dlxrMl=qluEItg?}(l@XUQ z2|pjv4|ncQ0vi)&10r`DYg;F7cV3cz@p6Bb|7m6B`Y#?H;mLGDHFZf*>2EDUyzW{dzXF0Ow#n3?H6CFq?zY@H3<>1~}z|HB|+;$-A# zVef2VXG`=Cqk*BFi!(3Dr=|bZ1si)s3o~ z{re9}M&^G<*x3BHw3D-<$^SL}|H<#9>|t-hsA%G3=i+Ge8AVgl|Do!CSM-nIzx%)~ zW8i3I@)<>-fwhy#zi!CLaLaufZ((a-En;WnVq;?KEFr>6;^Jaq%+1BjEXc&p31kHV zm_&pD06`HURzXpK5HmoCiIbCw{XYc%6Zol%!T1v^EXv9*$SDk95@O~A07RKT!yqWk z!NJTV0_5NnW&->ND`D&8Y+!3-@{iJguonLp%k;luxrH4~44my8mF?`T|C3Gf=623@ zPUd#@M8Zn!L{u^cMi#dJG*JH&>`(U3&We~gTDY1R10C&bi2mhwZj1ki1zb#mKv7{1 z01JTm(*XbgCle-Ku+c>Pp@o}S% z*#uzegYRJAtm_RV$m5}eh@is3g`+|KHrn=#_3JhoiS(l!^Ml^sKK+MNYK}dBAD`#N!Ap*1B*>gE6w^Kf!{d@_1+YSbTO9GI%6c8pNV1py1C3~R5b znez?C2P!ZCOdAQ;+ZMTb%Fqa3( zo~?J|656cZUeqOF=I-3b>0;l0xag}x?mA5^%w_wveFX4acK`j$hSf}cy*qAa^cZ`7 zWM?O+SqK+WGDyWRA!g|b4@)z1d>?MOJpqJ-`9gnmas*sW{)V)M+_5o*aNB$6Xp}8@ zVrF{p{J87g51swfE-XzVBReyeoHlKDDNB`@k`3O=6~Ff-%hk8>aXW(0{zuvV0@>0V zM!(b#b-bh;nbJKS$m_zewfzc!eu>ECCjh>uSO@fU}z$&~H}zX|qei$eFP{#2<|w^?a@ zm!o2w0=aPLMm=tBL0e9dZ$Z#|ULsYmH3m2ji9{gs?S?9%md>E`d>2%q@n*LA zrlDBa==t|A6E`<_h-R3E(_wFKgx3fV+%#o`u8x32I7RZ8Hxm`)pL>}2^z`t~LWqfM zJ~-}>FNAg*QTKL!!Hs9y-uJY~Wc#LM>rPK24rR-yKLZddU+E670PHWGpwOd1&QiDZ9%Dm8la zE70YmP{r(Ml|46atNjJu5O64*(nx$a}sJ5?%bG&6;D^dl1JbDC~r3+jDA4m#)>+c;T!wx6*3!a|VS5pf|`L z@v9$aGOn|DghN;Bu`eg0q`_hNusdMSt9e@rdBeZrYbD?S45*nkLWgu@n8;}ldE;2W zefz@6#o-bWha*Z#y>V~@;@&CqbttMSL*om>$JVegw>tF)7Lg7885Ix#nxhh8LU#e_ zV&lk-%o(L#8NRPg9f2;}#EQ>HRgo#eIY^tasSEe=NGa<9j`-s4=+5ciX$m z09vm;F{mQ{DmVETieDu2fA%h33@_obnT%BQIJs%p+u`-9i0Za7=t+-OvQuF ztnI`+HE}W+2ryJis77Q4rgGSxwu5ZanSHn~dM+QNO{e;DyFvUys{Xq@834MVPUCr8 zT#im}vmR#XmZ~l^pdR7-y_p;lc}*alfv9sMHf9#1J%rH}v`=jul97T78;XI5un+EE zFE6-oSM*})_>9UBKBfS5C)n$21!LNvPHC^7_(ny#B3S7v0~m}Ay{1keyc%GnPFsG&y6pZO%bVdVHNflI(FloJU(WEEBgX{Jees5HtAl28q zL;iuA6Kwap*MZuTfq zv$)|H%Fv*^2Pnu2A7+Rb@;Lhx;fT5Ukdi9D+pBy*Ey5KRtj9E2g&!CM>SqT8Geb>f zDW8X!OneC=wI&##iL6IaN5L)$>%RyCR*Ohjutr8sE-)8ys_+LY9qM4&lNm0YfF^E~ zTeW465E9DEtH@To$fKYkh_PZcThI2MmRfvcH{TsPujW|tH~Y@rel-57b~>_c!tukj zL-*@QhI$j1?A}4{@w7G?+_iF;uZ|NiumC;!-r)}vf1e-bBs-^B#DNhDc!-)5mk1~C zCflpN*HTbG3DQUkWR)}~RzZObLW^#IxQ<9Lx2Y@I$;P0zP$<^T6jT9&7Nw|HK|w>a zO$~(yDnUuf4@zhEK6}z8Cb>}6gadPuek22;tUWLN0#*EbI8m)gJ76V}y?Sdk`eW3vHj70 zZpNHVV==>!5lHF#{i7#f1MR`ED@-i_o1PzZ56h?ai-}h9Dw&}P3SWmyOyg7P$#@4^ zN5pvp`6w@5UiWG}SUFoS= zNx#!)ha$6|i#SP9cE2}Ge+AQX>8`ltQgjy|L_h;|zRE{^(naNasD%a!r6EnlVSWflx{0_TZPl_-X=Kswt)@BK{ zB+e#nO1uP7Uef@wRwbfTld5dqi>R?3c-}#&|Hih`(v^#Cl%UKfls_>cN4bdOP=5fy zUd>NcS7zwRtx}goAQe(9k~4t=*fprv5wyiQkS@^s-9>l~Nh3`|U2N<4H9Yw~f7iX~ zuQ*v5SwTF*+x;^8TusS#u9t22@3&EqGxNR}3A#Zq96zTV@oa{);>q}SvG?PwmaAND z3s{`rOWDYD^uPu(zt9Z2<^W`jBsoUj^y!|6%!BUB9{QCth+(4qjWGS}nFuf5EYphFTX;7=0^9=txGas^&Wj4)&ZL8}@Z zm6So{C0U5JjEgQEnCghgrvt5;LC{;6Lvb_s*2jC=tojyHQ&-U=d5N}jh`07P_dL__ zqQ|W(PfG>zP0v%GiR{dn$YzI4b675kVF}jh7STfob9WuXvDVx-DTW3Cj%o>B7hlbo*HMUo_gL>rXqE_(sd z+=U97nPOwjM)vlwqZJk-g*eMrY$KC0gQ19730m?*5b2#Jw-;Tk^f_q_z+Rgb_3Ny_ z=%+HXiL9U)LW00yuJH17PCPF8sLDtQ<6!j8CR<(xb{(h%Pu5)08Qmn{iA7QE?N~k* ziHagW-f#ZE6;ArGvVlHJ#BC1#ji92i-%J&Su&4?Y@Em_j{3EfTqmi@#3miiTUqQAm zAoiU&o(es!-zy~3L;F+aCTZz z0~A#E?Imy4BFLa1Sd_jttO^xBIx+jbr_YVB;E5 zu&UNyvmzmQ2&45l#aZup%zXoYMHba_Ss^C4dcARC-}V1nQer=(GoRn%+AQn0}~-~JL?d(W6ZvrUs9h&4&i{d-HNemT%(YXxTy7&JDzDqzS3fW-4K z1Tk{bChKqIrDTSaBMm#RhhEb8ir`I3JmSV{%h3~y{tTa#H0X6ydJ3NLoN_qS3(|F@ z-dW%8D%&8|&+X>Ri}j*oMwOPTPE5IxvSeuX9U!}nv?>Z!b7u=Kb-;Kv=j~0Sm-8$} zJWIhlocfG&Ucr?&ahJ0Sory}U#V4l@5RuIw4-(CxkLI70&~glBn!^+o=f;P|k?&@v z=kLl6-ZZh)Jx|&!DBal)9+#(Q`lqWyPG#efVi>G~m>GU~==+4W$6m!NtQ;@gCv;^+8i`^0$H#cIrL9a4mRq3+$a&xG{Y{Yj{Q z@cM22c0>|E>CN)qbCh)!fuV?Qe)Ifh^q{5pOMxmh_!ITSx@^nYW&|iIKNz|#F=IaN zu5k3}qG797{*tM1gx#x|t+1;NpM0Mpc0;rYKmI|k^YEz^e-PS&O1y6OEQ8xHKbCwK zQ<+X;_4v*R6u2rL&au-U=QB$drHi%;lxREib-pHng@<>Fi z6H0LybSPC!?1`AO-Om>Wg#|`!Po2IR%xFSCD*H&J%;SzYSx5@^V3#~a(xbi8%L~x4 z2ysM4CoHbG&dWEvBqN17CIikojYs9{t~KHM>QhFqp#y2s5eXJr)Z?=?#^7Ee%6F;> z65{J7rhpJH$4W7+2bm$9zPpX{hIKZn0T~(^H-7>{oZwwAe)O`c87;k9a-l-U824U= z#E)+XBejZYIrzBHH58=@&g-#jK@^tLb}rDsxTk~T%f>>_inW1NMzYf&`1wKdy&;|^-Bkv*v=$PNSCpinF~NPVLUWK(uwzV{9^86<>tz2h0E;~n)ki|AG3GbO-eFGGz+yN%zZM5>#mYRF z)VEE8sX~odCWP9%+JMPaU5O_QDGZ0H)!|1DfmUZZdUjZpG}q|$c-C*M%SqXztm(GO zdeGwu|4WH-8bF?tKAA~?g|&B5$#~8km|rI9mX>5K99o2~1~3Q3!`t=LXZdFaoGd!k z?Y#-RzaJylSx;JLkn?+3@H@u}&Q7E}CGxjnl_BN&+pG`iJ8$QnP|hx|1|~;~ydFuN zGBMA9Je3L}XtM_Lu=mhVM0@@A(=Le_K>iC8?u||AsKOaUumUp|`ypsw_Z(JdcuI?G zsdo&$j91~kmF;KI!rj7QROn zqIA12E@l@gD6586x{-+DCRBgVyST3GXXWMG4v{@gb!xh;L{I}x9JK-iIkm~IbuAQa7{gcUJ#vHqp%Uc@FY)%VB8xC7qN-i)>^z;g@;U~EYttQz& zR0vGw6L&EEVDVy5Eo)f|Il^L=G!~z`Nbo`QW;J{$bWByOMiBRvKq7dZk{O}Ew;F+A z`Dvy&?ks^z;z}&c#|ZoaEVqdrLGV0F(*p`xfNM^->=a!3fWxh(aQdC0)BB_DqnpNF z17tUcts?}{HKq;`^X(Or(bM~b2r9ZwZgY^YJA>7k3w-gqe1a6CLs@i54FsZzNm)W} zVRkbj0Dy#sWPqtt2}nO#`|=UB)9{;dzc{g>WB^6`$@eAS8KVFNLjPsVzt${bsc|lS z!{t^PY^oY-00igzN{f}d16{mzk7)HovbDHC=*VL|$qKzqk8Awb@#Re+O;ws?Zpa8p zXxj1eraHu$j~m2BogOkB-b`%1VxYhIag z!6tk{>S40vCP|FkT6KG312$BJL=$>ppJYU1Z544>+`+!2;P_;L6x)VTY01bqS%osn z;h}_C6FYJ?Ho;5@5EAiDa}fCIHcmkTizp0MBNal-%AaYzHSqhtfj6|(s-h~~lH2t9 zTtnN7hkPP$8n{v?IuW$Gp4czJkd((GTRtV<9Vqk%C&y8p*DMq_s7xp(bojmy{^AL) zzO?SoE@{|#bXRa{l#OIZjeq||-1)W(^LmsrtdaX>++z&i0&D$o#Ckp0duX1X0H48? zCZ`i#_dF`A*}CJRNkp-I-I~7P@GUrpZX=j1Qo1`;69x|M`ub#`cmT^mzaI~OR3$Ej z$G0#F^%sB5dPAMoxp)MG8ZSfv>Zw_*7wlVsJ{*qvnr$N+^7aTwwwPJ?yIvB_waM9G zR-N0e!I%Rk{CJ^>oLg;JD1%I#SC0!?qWQ_T)A$`)%(WIlyF{gK$6|mU|8wA3AGG@K z^U0iA&8ih&V<@*R^}s*tG>?t?nyz4dCf~k4GniW81$azI zGS7pn#n4Gce`jQ~-=hE3ta69E%muy<#tqJb?2r{}8FCKp&Mq2N8 zye|w|`q;Ef)gPL((kHa&pXD8nSIQO^%L%AjNASKL4f|tw_H0gAMYm_I*lsc)CKL%DS zC1d2Ez^|q(1;&<1iZaPOJ|VH&+u7MFVY@(^tSPN0KNuxsI==9%gqo8G!i+1t{^Rkw zy>nQ5()|21#iAD$7^LR3N*XTF;(M*?0sf_-%yW{YoD}hN1> zW(!V^W<@FbV{5g@BUEWJLD(aKfP*g*;wJjpN+-4sCZnX??J>cGo|xEArEzvp>3tKO z*bLJ_@8~73Eg@h~;;)O+TkMq;?%d5BcCzwaOS8VmgC-v3ruTk@7t;z)@Zf68_NpBp zX-)q8>2@<0fRA~q>K?GRj)h5LZ!eHq)PEr8DGR@}UI$y$zn2|tu4h@SkCskJ7iNDL zppRudNc}b8%n)-<`0pqq{m_#>BLY{@ zr$@UbmsljxoteQ=owLK6Pk{t`3OTTtnAtzyfmI(_o^EeP(3_I7vPM;v(qcY0#Ej)% zN$yNmi_(@EoJ`m}w|Llq0AUp%j;im4M?_G+=f9&t|BuYO` ztnv3X^mK*oC&1tW4vd(U%%sZblxEEoq~x1fqB=BEeMPXGIsKYrHtBHSitlELdDxOd zqtW8ANz-`vHRQ`?;P%H1>7S7H=;3Y%;ocek)!atFyL>5yk)Keye9SGfdV228juX%G$WlrFhEnb zHNRZm)?H4rhtSADtoqe z+(hCi*7-@wFcrR{?kIz7^QA#JzkN!oa|#5hu~Smq}r3t7=2paOQ3 z>wx_SRq8CriVM`WHvMgjgiI>(?3GnZXyRA?k0;h2AgHBG*e#)zQ7~~{(#?5^Foxez zeTEuCIYlQ4vvr3i_wgMLVn5+CA9#>wM2#Sp}x9fS} zYQgC`e8DfCe&-m%T&Yvm>MyDc6nCMAlrgy-<56#~Lm3hC4G*7vehC>Mjnj$Y)xtFi zW1?0ehjeT^8|=A>2MZ~jECDKeclO3#9m}>EOff<84y*`f0CZuNF76P@J9TReL7mjd z&X1Z;keFlR@Fs*RwhQoJs0-K@B6@b1in|cS97xgDx2u`oFlWkz5puE3;@p^izAlhi zNUw_P+9O~xI`1S<68duyBg^?613F*lAN8@11kJ1n9Vz#TNjXAV6Js0Kr5ib13_lLK zTJ0+}a-U^Jr-gpJ#UH`J%`l6cl#C)UlNMDtFL%|3_*O!vG*BoQ&rN6aX>k~+!cPl6 zl>&ap91!5ckConfnF5(Qi}ICcJ$S;*@#N;&2j-AOw(Tb~(iXbGGQD1aK6P~zGD=Rk z%8^oKWe~mjXE6sC((wxkFuY&pFw&*}-n=Dh^T7O7h|52Zc8UPRh=2s^%p=8M1 zTLo?~4~Qs?-?|GeuME>01HVw94!ryY&TR2((rU+1auJ(4C@9!I6l5k*(bMKrMy9Ij zJi&q+2KZx2vegxqA$nkQyX*Y%E;*QnC?XzmcH@-S&4`G!7}aJA`EhO&9w}n!iX%(- zBR0+V6=zA?4I_8!2};tG0oc15))0ogGxDqGPQb@rzV*0?FL_EgT#HYSUaQP!pwK;2 zQ7KyC2p-`9F+o-5n?L>lbfnK8^dYn$^oi6f_IUZ4G#215_1+jI7gBNR%2Ey1q?C0> zBYD=U0k#uayusrJ`gCraZ&OQbh`2FB!zw!sg749bYK)r7PG@uoQ1z8#j-26t-}TcU zL>|IHIou9NFx8mkq7u?tS?EG)A_R~uE0??52#p`J3#_{nks7%vw~j7;57l}~%KJN` zX?daSieXDEl-I*%TfL>reEMxMV{qZt=A5hIL$&frWJQiUiovh0jWa5gO4H$qC^$fA zX_(&20>lC{SK6a1-f$^pDPTKZvOgI#BE9(6-@sj_vcH;8KOSn)(I~lsNSOG}-i9u!!UCgP>b)XgtD!gL1M%d zA(Li&P`D)~A_e<>u)Z%*yjNZu$=kA{KXfqz?ADQxKM>o*;40aj>*z%VJY1R`v01&(IC%F2$?pi)dx}k&j zzQdIeFO$bha(B1`sc7F2*KjYXFYE~depL}2lP*I$QpPS%RL6*)CTeeX-mNVFQDe>2 zbM6U>cPba17mt6{0_?k~lj@Ff8znvaK``s%%&W@8uij`;mJ9=hoAAm!Np%8{8qI!_ zh@H8yz6hV1agy;jsA327towe*u9c<|1)8l_Lp13+lBB@IOyRUfDX1JLC1J=;)P3dE z>vA417!CBmrWa)5pZQn-y6N_Lv-CHDs?JiB^Xlr6sj&|t3I<_V$(SF=M))md)w*5! zO97()#k%?IDq>T*c%4HrzCFwYk{1u5=T*%dORy#ZA(In{8Nklq_EjWG zIQIi_h3YViT+8GjvtU6U2Maxqy6DQlB55f|hmDu2!WRV&2;JP(1BaQ#kngu3d&nOH zT#bEPvJ;Ru=-n-GayYum;1w1&s%dO?i!>sVT;0j6<-&Dr_}0Uq2}K#3JGj1@M4c_o z+JK`Oe2ayDBqS8Mf<8Ssl{1Wbv&!UV+T4jO&2~C5N9s9%!;mc16&yjl)a+6eeH&?Syi|*ZCl- z?t`V)6^lS=Zqi-dL;NC2C+{r{6-&q;mfLH*?z>ja>7Y+onDmXQ#S^Y>8Wy@hKfeg| z<&nUwnQq5>-QBBy>dV@1?%$c243S+{4l|O>($n1=Y-^@!CPf{7uwNdQ6~U2=mSc0M zMkWOvR+T&NhddX~wxXIiY6iX5cxD&aLnrRAG9J?Iqw^(++lq|XZs=-OGMPlm<^66T zVlQ|jsBnZ0h;U`uM_dDcG*zI;+}9#=YiSK{<)mehLXfpv74?6QM${rR{rkpn=ZpZ@ zQ=Sk~tfnW5sY1_4Q~tH0-e6B`HEmUAc)oFDUD@9a8J3Wp5K+~r9DVOna4banaKRgm zwR^G~g0a%_Azrq1_(tZ9AcDQQ(Bu7nHW89*r%tE3?!9N}UH<|bm^=YU(EJUpn@&YA z-YEMg^6-ywey1ftuHPG8ay!*rM=lmxt7G)~A)*%4v4#jsW^Zn028t7}=_B(!K?15`zj@{m+*dOr0;04ZsG7*-a!Hkw>OlPd|mKo$}T3^%X z{lRQydLv_ayyUyD7?KYLK!bI>S4Wtr_AA#fTW^is~`0Z>qwViUD`NtwK*@5t^-`qJeaZVFbG6F_ZRBAP=sp#qZ zu9eQC@2Is~DiM6+a2aTJuYjpSt}{dQg%Sj+g&rl);<8em3j?;p$E1f?{z$7}`OO6GbK_qV7H$Uv8{_&9Lpx#GuFyQPsmX2&LCZBsn^4+tcFU{I;JQQ;hf`tG2=b ztJyT~@^hhZYYc2~IDsp=ev(K!|EOVra*%|L7Fz;AorJKkD)?BM*xl@)jF@}V`PdcD zp+}IEUWBso<`;U3w_eGKqJBDH*TppE>nTTWAgwFhMcd2wC%nBKO_a4(Itl!083_xx z2ft1@E&ktOUKc%(MnezF7sgWD-5W zH)G=xq|r26YXT@{ZK8V9jV9|6ak9|q*We|Nubq!9SL-g%Plm7iDQDMLrbbVneG?{_ zO4})@kQJj4S(F;V`NqL8Z#ccFX|F@RTn4gl2WLf7xnh#NUwP2zKrKF?_+BqGP*qnA zR4ztckLz_eTiM$mMf9|%ZP&!bG$3eS==j!r&&JIU<2c-HV>+nLfSb{IKv6Si%kbe zc=#2#??8gMbl-9BitS|tA|4KIpX{}0vuD+Imc)7@OumlqWMTycxtA_ulkvd3@p19h z4eK-<8ogdG%D6v`KT4?joE&d;@v(D1*wupyTPG&--pdqUJ-T04`}ZFfaw~Z99*)v3 zvT^W}!u38(c{8YSLP9*!+K=HqoKiAn7sZNJXMcx6i@a9S>`py+;&HErIF)r6;JXSR zKaLgY?;drwj>qgv;?2tEhsdS>WbOO%JVFO<2*i>Kp2Kh9)Ng3VGBzA)#g(}?TG5j7 z+Zz{nKf{Hcs|Z)|8gXPh!p8wBSY%jBK!r3b)-Dtl$={BOJw3}U@5Fl9f>iLfdfxsF z3Rh$DENf>RZMEx3Tt8k)CDhbKud#EmHPOGX+x)CorlHsMIQKCw7A>l(0%OlQR1Bo1 z+9jEl=HBSC;-D9X{LYvcm$J+td|3O{g*BH_?tX7KM36>bu{6$#q}^UQ%Qh@3wO3H? zzyzk!VCFP}S2eg?VW8lC>igFUZzy~nhQ_-JCKPFbr3p)IuW@?yI(HgN*UR47qG9q= z=c`Cv-w*s_dc%&tM}^7mc+K523+q~CtrBQVzV=eai=~uZMZ(ReM`qX z2%)ydHa=G?1f0aR5DrB#_DICk!nSO36L(~eN5pmQ?FGR+tC1+>vWKu_ zYyex+Qj98F3xTc1Cq;=Vf7>$QMMre3yyWP^5Q=xG9)P5vEhQ)487{rXP zxxBw3JG?G4AB@G=*H6OH3|>!)#pc3ES5y7!zW!^1B6H`qwT8rxZL+wi2AagcFf%um zV@&9X+s(B?Rc`9si6SeP9}kl7&djd;F;KMhxy)F>S=+jAdj_RcIwur1N0ehOoG;!8n?Zcp0%qmrLt4I zZ!b1Cn?BI*J28bH710XX+z>dM5y@ufX?jlguUqT(Z;^qar3}{VtuaY=MOCbX<7#xt zVv^by0`8Y9gsskZY-C$vtVQ_!uP2y?~Qw>K5vjUvx*-9`VJ_chDB_eRlH+za0$?2IL8B z&rP1C+0H4?Ra;eXRI$1?Wv9RLAS1}inK5#E!capc=`&~T`#|p+e}0(9@o*QPc2vwS z>w?a+UJcD5yb!?Ma6eA|w(jzHkCpG_XZ5y(ytUfuR5EGHPsV)L;Pgs3i4`K`@jQ*C zZTe8+WG3fpJ($=Q1^<=hdNg;B)Aj6!nOqGzy={J^n6B@4$6F^uSTyC>vOELi_)-@(8=SWyNV=*E^A`V zH6GY^Gug}EPIne*<4xC&=*6Kb-t9Usgp=tXs``H_&f`(6H^-;79Tv~#E+={{hx#Ta ztPzw>2zeA3<%GGy)1T)IYWfQVPh z>qWIxtlPCHDe`w+5GSgR=P5`T8S&|DcsaG59wx5Q4s+`?&+S6P3J|tLKm2g9nmP@5 zwfoc*odpd9|Gp`WMX9FBFvPOq#N50hEK>aa3uE$Sdhb@-lIa<)+|pyd{i%Z)-ou*D zyHgshMirk=E;}7P=uu}cD8mNPLq?ng zP)WID6(Oxrm)}%vX tO-;{hOD+Sl?)wfJ^!stZvmXQk*vHvDD+q6q=$}8cBt&IJehKLZ{vV|%Wf%Ye literal 0 HcmV?d00001 diff --git a/legacy/ephysics/data/themes/images/coin1.png b/legacy/ephysics/data/themes/images/coin1.png new file mode 100644 index 0000000000000000000000000000000000000000..b4a2872455684b64e635c1db85232e84bcef26bd GIT binary patch literal 12116 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 tnE!DQDY7>@?$RXO4JZM +#endif + +#include "ephysics_test.h" + +static Evas_Object * +_obj_face_add(Test_Data *test_data, const char *group, Evas_Coord x, Evas_Coord y) +{ + Evas_Object *obj; + + obj = elm_image_add(test_data->win); + elm_image_file_set(obj, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", + group); + evas_object_move(obj, x, y); + evas_object_resize(obj, 70, 70); + evas_object_show(obj); + test_data->evas_objs = eina_list_append(test_data->evas_objs, obj); + + return obj; +} + +static EPhysics_Body * +_coin_add(Test_Data *test_data, Evas_Coord x, Evas_Coord y) +{ + Evas_Object *front, *back, *shadow; + EPhysics_Body *coin; + + shadow = elm_layout_add(test_data->win); + elm_layout_file_set( + shadow, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "shadow-ball"); + evas_object_move(shadow, x, FLOOR_Y); + evas_object_resize(shadow, 70, 3); + evas_object_show(shadow); + test_data->evas_objs = eina_list_append(test_data->evas_objs, shadow); + + front = _obj_face_add(test_data, "coin0", x, y); + back = _obj_face_add(test_data, "coin1", x, y); + + coin = ephysics_body_circle_add(test_data->world); + ephysics_body_resize(coin, 1, 1, 1); + ephysics_body_face_evas_object_set(coin, + EPHYSICS_BODY_CYLINDER_FACE_MIDDLE_FRONT, + front, EINA_TRUE); + ephysics_body_face_evas_object_set(coin, + EPHYSICS_BODY_CYLINDER_FACE_MIDDLE_BACK, + back, EINA_FALSE); + ephysics_body_restitution_set(coin, 0.82); + ephysics_body_damping_set(coin, 0, 0.2); + ephysics_body_linear_movement_enable_set(coin, EINA_TRUE, EINA_TRUE, + EINA_TRUE); + ephysics_body_angular_movement_enable_set(coin, EINA_TRUE, EINA_TRUE, + EINA_TRUE); + ephysics_body_event_callback_add(coin, EPHYSICS_CALLBACK_BODY_UPDATE, + update_object_cb, shadow); + test_data->bodies = eina_list_append(test_data->bodies, coin); + + return coin; +} + +static void +_world_populate(Test_Data *test_data) +{ + EPhysics_Body *coin; + int y; + + y = FLOOR_Y - 70 - 20; + + coin = _coin_add(test_data, 60, y); + ephysics_body_central_impulse_apply(coin, 0, -320, 0); + ephysics_body_torque_impulse_apply(coin, -4, 0, 0); + + coin = _coin_add(test_data, 140, y); + ephysics_body_central_impulse_apply(coin, 0, -300, 0); + ephysics_body_torque_impulse_apply(coin, 8, 0, 0); + + coin = _coin_add(test_data, 220, y); + ephysics_body_central_impulse_apply(coin, 40, -340, 80); + ephysics_body_torque_impulse_apply(coin, 5, -1, 0); + + coin = _coin_add(test_data, 300, y); + ephysics_body_central_impulse_apply(coin, 0, -280, 0); + ephysics_body_torque_impulse_apply(coin, 4, 1, 0); + + coin = _coin_add(test_data, 380, y); + ephysics_body_central_impulse_apply(coin, 40, -240, 0); + ephysics_body_torque_impulse_apply(coin, 3, 1, 1); +} + +static void +_restart(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) +{ + test_clean(data); + _world_populate(data); +} + +void +test_coins(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +{ + EPhysics_Body *boundary; + EPhysics_World *world; + Test_Data *test_data; + + if (!ephysics_init()) + return; + + test_data = test_data_new(); + test_win_add(test_data, "Raster's Coins", EINA_TRUE); + + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); + elm_object_signal_emit(test_data->layout, "borders,show", "ephysics_test"); + + world = ephysics_world_new(); + ephysics_world_render_geometry_set(world, 50, 40, -50, + WIDTH - 100, FLOOR_Y - 40, DEPTH * 2); + ephysics_camera_perspective_enabled_set(ephysics_world_camera_get(world), + EINA_TRUE); + + ephysics_world_point_light_position_set(world, 0, 100, -400); + ephysics_world_ambient_light_color_set(world, 60, 60, 60); + ephysics_world_light_all_bodies_set(world, EINA_TRUE); + + test_data->world = world; + + boundary = ephysics_body_bottom_boundary_add(test_data->world); + ephysics_body_restitution_set(boundary, 0.7); + + ephysics_body_right_boundary_add(test_data->world); + ephysics_body_left_boundary_add(test_data->world); + ephysics_body_front_boundary_add(test_data->world); + ephysics_body_back_boundary_add(test_data->world); + ephysics_body_top_boundary_add(test_data->world); + + _world_populate(test_data); +}