<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>how are you all?</title>
		<link>http://www.allegro.cc/forums/view/610215</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 15 May 2012 02:48:34 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
 Just in case anyone was missing me <img src="http://www.allegro.cc/forums/smileys/embarassed.gif" alt=":-[" />, I wanted to say hi again Allegro!</p><p>My absence hasn&#39;t meant I&#39;ve not been programming. In fact I&#39;ve been working really hard on my game and it&#39;s going very well indeed. </p><p>Here&#39;s an example of some code I wrote recently :</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="c">/* circle_and_rotating_line_collision() : checks if a circle moving in a straight line, collides with a</span>
<span class="number">   2</span><span class="c">straight line which is rotating around a fixed point</span>
<span class="number">   3</span><span class="c"></span>
<span class="number">   4</span><span class="c">arguments:</span>
<span class="number">   5</span><span class="c"></span>
<span class="number">   6</span><span class="c">pai : polygon angle increment : angle in radians for how much the polygon rotated per update</span>
<span class="number">   7</span><span class="c"></span>
<span class="number">   8</span><span class="c">*/</span>
<span class="number">   9</span><span class="k1">int</span> circle_and_rotating_line_collision<span class="k2">(</span>Circle <span class="k3">*</span>c, <span class="k1">const</span> <span class="k1">double</span> cr_x, <span class="k1">const</span> <span class="k1">double</span> cr_y, <span class="k1">const</span> <span class="k1">double</span> pai, Point v1, Point v2,  PotentialMove<span class="k3">&amp;</span> move<span class="k2">)</span>
<span class="number">  10</span><span class="k2">{</span>
<span class="number">  11</span>   
<span class="number">  12</span>   Point v1_s, v2_s<span class="k2">;</span> <span class="c">// v1 shifted and v2 shifted by radius of circle in direction perpendicular to side of polygon away from centre of rotation</span>
<span class="number">  13</span>   
<span class="number">  14</span>   
<span class="number">  15</span>   
<span class="number">  16</span>   <span class="k1">double</span> psa2 <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span> <span class="k2">(</span>v2.y <span class="k3">-</span> v1.y<span class="k2">)</span> , <span class="k2">(</span>v2.x <span class="k3">-</span> v1.x<span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span>   <span class="k1">if</span><span class="k2">(</span> psa2 <span class="k3">&lt;</span> <span class="n">0</span>.<span class="n">0</span> <span class="k2">)</span>
<span class="number">  18</span>   <span class="k2">{</span>
<span class="number">  19</span>      psa2 <span class="k3">+</span><span class="k3">=</span> TWO_PI<span class="k2">;</span>
<span class="number">  20</span>   <span class="k2">}</span>
<span class="number">  21</span>   
<span class="number">  22</span>   psa2 <span class="k3">-</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/ALLEGRO_PI"><span class="a">ALLEGRO_PI</span></a> <span class="k3">/</span> <span class="n">2</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  23</span>   
<span class="number">  24</span>   principal_value<span class="k2">(</span> <span class="k3">&amp;</span>psa2 <span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span>   
<span class="number">  26</span>   v1_s.x <span class="k3">=</span> v1.x <span class="k3">+</span> c-&gt;radius <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>psa2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  27</span>   v1_s.y <span class="k3">=</span> v1.y <span class="k3">+</span> c-&gt;radius <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>psa2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  28</span>   v2_s.x <span class="k3">=</span> v2.x <span class="k3">+</span> c-&gt;radius <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>psa2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span>   v2_s.y <span class="k3">=</span> v2.y <span class="k3">+</span> c-&gt;radius <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>psa2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>   
<span class="number">  31</span>   <span class="k1">const</span> <span class="k1">double</span> k <span class="k3">=</span> c-&gt;remaining_distance <span class="k3">/</span> pai<span class="k2">;</span>                 <span class="c">// for storing the constant value : (distance circle travels) / (polygon increment angle)</span>
<span class="number">  32</span>   <span class="k1">const</span> <span class="k1">double</span> xL <span class="k3">=</span> v1_s.x <span class="k3">&lt;</span> v2_s.x ? v1_s.x <span class="k3">-</span> cr_x <span class="k2">:</span> v2_s.x <span class="k3">-</span> cr_x<span class="k2">;</span> 
<span class="number">  33</span>   <span class="k1">const</span> <span class="k1">double</span> yL <span class="k3">=</span> v1_s.x <span class="k3">&lt;</span> v2_s.x ? v1_s.y <span class="k3">-</span> cr_y <span class="k2">:</span> v2_s.y <span class="k3">-</span> cr_y<span class="k2">;</span>
<span class="number">  34</span>   <span class="k1">const</span> <span class="k1">double</span> xR <span class="k3">=</span> v1_s.x <span class="k3">&lt;</span> v2_s.x ? v2_s.x <span class="k3">-</span> cr_x <span class="k2">:</span> v1_s.x <span class="k3">-</span> cr_x<span class="k2">;</span>
<span class="number">  35</span>   <span class="k1">const</span> <span class="k1">double</span> yR <span class="k3">=</span> v1_s.x <span class="k3">&lt;</span> v2_s.x ? v2_s.y <span class="k3">-</span> cr_y <span class="k2">:</span> v1_s.y <span class="k3">-</span> cr_y<span class="k2">;</span>
<span class="number">  36</span>   <span class="k1">const</span> <span class="k1">double</span> sL <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span> <span class="k2">(</span>xR <span class="k3">-</span> xL<span class="k2">)</span> <span class="k3">*</span> <span class="k2">(</span>xR <span class="k3">-</span> xL<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>yR <span class="k3">-</span> yL<span class="k2">)</span> <span class="k3">*</span> <span class="k2">(</span>yR <span class="k3">-</span> yL<span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span> <span class="c">// length of polygon side</span>
<span class="number">  37</span>   <span class="k1">const</span> <span class="k1">double</span> xt <span class="k3">=</span>  <span class="k2">(</span><span class="k2">(</span>xL <span class="k3">*</span> <span class="k2">(</span>xR <span class="k3">-</span> xL<span class="k2">)</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>yL <span class="k3">*</span> <span class="k2">(</span>yR <span class="k3">-</span> yL<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> sL<span class="k2">;</span>  <span class="c">// xt : x translation for the spiral</span>
<span class="number">  38</span>   <span class="k1">const</span> <span class="k1">double</span> yt <span class="k3">=</span> <span class="k2">(</span>yL <span class="k3">*</span> xR <span class="k3">-</span> xL <span class="k3">*</span> yR<span class="k2">)</span> <span class="k3">/</span> sL<span class="k2">;</span>                     <span class="c">// yt : y translation for the spiral</span>
<span class="number">  39</span>   <span class="k1">const</span> <span class="k1">double</span> cos_psa <span class="k3">=</span> <span class="k2">(</span>xR <span class="k3">-</span> xL<span class="k2">)</span> <span class="k3">/</span> sL<span class="k2">;</span>      <span class="c">// cosine of the angle side of polygon makes </span>
<span class="number">  40</span>   <span class="k1">const</span> <span class="k1">double</span> sin_psa <span class="k3">=</span> <span class="k2">(</span>yR <span class="k3">-</span> yL<span class="k2">)</span> <span class="k3">/</span> sL<span class="k2">;</span>      <span class="c">// sine of the angle side of polygon makes</span>
<span class="number">  41</span>   <span class="k1">double</span> pc<span class="k2">[</span><span class="n">7</span><span class="k2">]</span><span class="k2">;</span> <span class="c">// polynomial coeffecients</span>
<span class="number">  42</span>   <span class="k1">double</span> z<span class="k2">[</span> <span class="n">12</span> <span class="k2">]</span><span class="k2">;</span> <span class="c">// array for real and imaginary parts of solutions to polynomial</span>
<span class="number">  43</span>   <span class="k1">int</span> i<span class="k2">;</span>
<span class="number">  44</span>   gsl_poly_complex_workspace <span class="k3">*</span>w <span class="k3">=</span> gsl_poly_complex_workspace_alloc <span class="k2">(</span><span class="n">7</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  45</span>   
<span class="number">  46</span>   <span class="k1">double</span> r, pA<span class="k2">;</span>
<span class="number">  47</span>   
<span class="number">  48</span>   <span class="k1">double</span> a <span class="k3">=</span> c-&gt;cc_x <span class="k3">-</span> cr_x<span class="k2">;</span>
<span class="number">  49</span>   <span class="k1">double</span> b <span class="k3">=</span> c-&gt;cc_y <span class="k3">-</span> cr_y<span class="k2">;</span>
<span class="number">  50</span>   
<span class="number">  51</span>   <span class="c">//cout &lt;&lt; "a" &lt;&lt; a &lt;&lt; "b" &lt;&lt; b &lt;&lt; "\n"; </span>
<span class="number">  52</span>   <span class="k1">double</span> psa <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span> yR <span class="k3">-</span> yL, xR <span class="k3">-</span> xL <span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span> 
<span class="number">  54</span>   <span class="k1">if</span><span class="k2">(</span> psa <span class="k3">&lt;</span> <span class="n">0</span>.<span class="n">0f</span> <span class="k2">)</span>
<span class="number">  55</span>   <span class="k2">{</span>
<span class="number">  56</span>      psa <span class="k3">+</span><span class="k3">=</span> TWO_PI<span class="k2">;</span>
<span class="number">  57</span>   <span class="k2">}</span>
<span class="number">  58</span>   
<span class="number">  59</span>   
<span class="number">  60</span>   <span class="c">//cout &lt;&lt; "psa = " &lt;&lt; psa &lt;&lt; "\n";</span>
<span class="number">  61</span>   
<span class="number">  62</span>   pc<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> b <span class="k3">*</span> cos_psa <span class="k3">-</span> a <span class="k3">*</span> sin_psa <span class="k3">-</span> yt<span class="k2">;</span>
<span class="number">  63</span>   pc<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> cos_psa <span class="k3">-</span> a <span class="k3">*</span> cos_psa <span class="k3">-</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> sin_psa <span class="k3">-</span> b <span class="k3">*</span> sin_psa<span class="k2">;</span>
<span class="number">  64</span>   pc<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span> b <span class="k3">*</span> cos_psa <span class="k3">/</span> <span class="n">2</span>.<span class="n">0f</span> <span class="k3">+</span> a <span class="k3">*</span> sin_psa <span class="k3">/</span> <span class="n">2</span>.<span class="n">0f</span> <span class="k3">-</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> sin_psa  <span class="k3">-</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> cos_psa<span class="k2">;</span>
<span class="number">  65</span>   pc<span class="k2">[</span><span class="n">3</span><span class="k2">]</span> <span class="k3">=</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> cos_psa <span class="k3">/</span> <span class="n">2</span>.<span class="n">0f</span> <span class="k3">+</span> a <span class="k3">*</span> cos_psa <span class="k3">/</span> <span class="n">6</span>.<span class="n">0</span> <span class="k3">+</span> b <span class="k3">*</span> sin_psa <span class="k3">/</span> <span class="n">6</span>.<span class="n">0f</span> <span class="k3">+</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> sin_psa <span class="k3">/</span> <span class="n">2</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  66</span>   pc<span class="k2">[</span><span class="n">4</span><span class="k2">]</span> <span class="k3">=</span> b <span class="k3">*</span> cos_psa <span class="k3">/</span> <span class="n">24</span>.<span class="n">0f</span> <span class="k3">-</span> a <span class="k3">*</span> sin_psa <span class="k3">/</span> <span class="n">24</span>.<span class="n">0f</span> <span class="k3">+</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> cos_psa <span class="k3">/</span> <span class="n">6</span>.<span class="n">0f</span> <span class="k3">+</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> sin_psa <span class="k3">/</span> <span class="n">6</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  67</span>   pc<span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <span class="k3">=</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> cos_psa <span class="k3">/</span> <span class="n">24</span>.<span class="n">0f</span> <span class="k3">-</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> sin_psa <span class="k3">/</span> <span class="n">24</span>.<span class="n">0f</span> <span class="k3">-</span> a <span class="k3">*</span> cos_psa <span class="k3">/</span> <span class="n">120</span>.<span class="n">0f</span> <span class="k3">-</span> b <span class="k3">*</span> sin_psa <span class="k3">/</span> <span class="n">120</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  68</span>   pc<span class="k2">[</span><span class="n">6</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> cos_psa <span class="k3">/</span> <span class="n">120</span>.<span class="n">0f</span> <span class="k3">-</span> k <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>c-&gt;circle_angle<span class="k2">)</span> <span class="k3">*</span> sin_psa <span class="k3">/</span> <span class="n">120</span>.<span class="n">0f</span><span class="k2">;</span>
<span class="number">  69</span>         
<span class="number">  70</span>   gsl_poly_complex_solve<span class="k2">(</span>pc, <span class="n">7</span>, w, z<span class="k2">)</span><span class="k2">;</span>
<span class="number">  71</span>
<span class="number">  72</span>   <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">6</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span>
<span class="number">  73</span>   <span class="k2">{</span>    
<span class="number">  74</span>      <span class="k1">if</span><span class="k2">(</span> z<span class="k2">[</span> <span class="n">2</span> <span class="k3">*</span> i <span class="k3">+</span> <span class="n">1</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>
<span class="number">  75</span>      <span class="k2">{</span>
<span class="number">  76</span>         r <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_618.html" target="_blank">pow</a><span class="k2">(</span> b <span class="k3">+</span> k <span class="k3">*</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span> c-&gt;circle_angle <span class="k2">)</span>, <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_618.html" target="_blank">pow</a><span class="k2">(</span> a <span class="k3">+</span> k <span class="k3">*</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span> c-&gt;circle_angle <span class="k2">)</span>, <span class="n">2</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</span>    
<span class="number">  78</span>         pA <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span> b <span class="k3">+</span> k <span class="k3">*</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span> c-&gt;circle_angle <span class="k2">)</span>, a <span class="k3">+</span> k <span class="k3">*</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span> c-&gt;circle_angle <span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  79</span>
<span class="number">  80</span>         <span class="k1">if</span><span class="k2">(</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span> <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span> <span class="k3">&lt;</span><span class="k3">=</span> pai <span class="k3">&amp;</span><span class="k3">&amp;</span> r <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span> pA <span class="k3">-</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span> <span class="k3">-</span> psa<span class="k2">)</span> <span class="k3">-</span> xt <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> r <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span> pA <span class="k3">-</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span> <span class="k3">-</span> psa <span class="k2">)</span> <span class="k3">-</span> xt <span class="k3">&lt;</span><span class="k3">=</span> sL <span class="k2">)</span>        
<span class="number">  81</span>         <span class="k2">{</span>
<span class="number">  82</span>            
<span class="number">  83</span>            <span class="k1">double</span> hit_x, hit_xr<span class="k2">;</span>
<span class="number">  84</span>            <span class="k1">double</span> hit_y, hit_yr<span class="k2">;</span>
<span class="number">  85</span>            
<span class="number">  86</span>            <span class="c">//cout &lt;&lt; "degrees required to hit " &lt;&lt; (z[2*i] * 180.0f / ALLEGRO_PI) &lt;&lt; "\n"; </span>
<span class="number">  87</span>            
<span class="number">  88</span>            rotate_point<span class="k2">(</span> psa, r <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span> pA <span class="k3">-</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span> <span class="k3">-</span> psa<span class="k2">)</span>, r <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span> pA <span class="k3">-</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span> <span class="k3">-</span> psa<span class="k2">)</span>, <span class="k3">&amp;</span>hit_x, <span class="k3">&amp;</span>hit_y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>            rotate_point<span class="k2">(</span> z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span>, hit_x, hit_y, <span class="k3">&amp;</span>hit_xr, <span class="k3">&amp;</span>hit_yr<span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>            
<span class="number">  91</span>            move.x <span class="k3">=</span> hit_xr <span class="k3">+</span> cr_x<span class="k2">;</span>
<span class="number">  92</span>            move.y <span class="k3">=</span> hit_yr <span class="k3">+</span> cr_y<span class="k2">;</span>
<span class="number">  93</span>            
<span class="number">  94</span>            <span class="k1">double</span> xLr, yLr, xRr, yRr<span class="k2">;</span> <span class="c">// for storing where the coordinates of the ends of the line where it</span>
<span class="number">  95</span>                                       <span class="c">// it is when the circle hits it</span>
<span class="number">  96</span>            
<span class="number">  97</span>            <span class="c">// rotate points (xL, yL) and (xR, yR) to where they are when circle hits it so the angle of it</span>
<span class="number">  98</span>            <span class="c">// can be worked out. This is needed to determine the angle the circle bounces off at</span>
<span class="number">  99</span>            
<span class="number"> 100</span>            rotate_point<span class="k2">(</span>z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span>, xL, yL, <span class="k3">&amp;</span>xLr, <span class="k3">&amp;</span>yLr<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 101</span>            rotate_point<span class="k2">(</span>z<span class="k2">[</span><span class="n">2</span><span class="k3">*</span>i<span class="k2">]</span>, xR, yR, <span class="k3">&amp;</span>xRr, <span class="k3">&amp;</span>yRr<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</span>         
<span class="number"> 103</span>            <span class="k1">double</span> side_angle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span> yRr <span class="k3">-</span> yLr, xRr <span class="k3">-</span> xLr <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 104</span>            
<span class="number"> 105</span>            <span class="k1">double</span> new_angle <span class="k3">=</span> <span class="n">2</span>.<span class="n">0f</span> <span class="k3">*</span> side_angle <span class="k3">-</span> c-&gt;circle_angle<span class="k2">;</span> 
<span class="number"> 106</span>            
<span class="number"> 107</span>            principal_value<span class="k2">(</span><span class="k3">&amp;</span>new_angle<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</span>            
<span class="number"> 109</span>            move.angle <span class="k3">=</span> new_angle<span class="k2">;</span>
<span class="number"> 110</span>         
<span class="number"> 111</span>            <span class="c">//cout &lt;&lt; "returning 1 from rotating line function.\n";</span>
<span class="number"> 112</span>            <span class="c">//eek();</span>
<span class="number"> 113</span>         
<span class="number"> 114</span>            <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 115</span>         <span class="k2">}</span>
<span class="number"> 116</span>      <span class="k2">}</span>
<span class="number"> 117</span>      
<span class="number"> 118</span>   <span class="k2">}</span>
<span class="number"> 119</span>   
<span class="number"> 120</span>   <span class="c">//cout &lt;&lt; "rotating line function : returning 0.\n";</span>
<span class="number"> 121</span>   
<span class="number"> 122</span>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 123</span><span class="k2">}</span>
</div></div><p>

It took me weeks to work it out but it works good. Very proud to have worked it out.</p><p>So here I am, finally getting somewhere with my game and they want to rope me in for a medical assessment to see if I&#39;m fit for work.</p><p>Also, I&#39;m now doing a maths degree and playing ping ping once a week.</p><p>Anyway, hope everyone&#39;s getting on alright,</p><p>Will
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Sun, 13 May 2012 01:45:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello Will! Nice to see you&#39;re still making progress with that project. Is it for that isometric project you posted some screens some time ago?</p><p>As for me, I&#39;m on my 2nd year of Electronics Engineering and currently working on a large reverse-engineering/modding project. Ironically it has taught me a lot more and been a great motivation to learn how more modern 3D graphics engines work, and I&#39;ll surely try out all this stuff for probably building my dream engine once more.</p><p>Not using Allegro much lately, but I&#39;ll surely try to jump back in if Speedhack happens this year again.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Sun, 13 May 2012 02:08:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>hi dario, thanks for saying hi.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/610215/954738#target">Dario ff</a> said:</div><div class="quote"><p>
Is it for that isometric project you posted some screens some time ago?
</p></div></div><p>

It&#39;s for a pong variation I&#39;m working on :</p><p><span class="remote-thumbnail"><span class="json">{"name":"606007","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/6\/563db1236d17c276cfd44d6964358f8a.png","w":1070,"h":816,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/6\/563db1236d17c276cfd44d6964358f8a"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/5/6/563db1236d17c276cfd44d6964358f8a-240.jpg" alt="606007" width="240" height="183" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Sun, 13 May 2012 02:20:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>On to my second year of four for a CompSci degree, have 10 days til classes start again for the summer term...</p><p>Glad you&#39;re making progress Will. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 13 May 2012 02:33:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Haven&#39;t coded much recently. Went surfing 3 days in row for the first time since the summer of 2011! South shore is finally getting big on Oahu.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Sun, 13 May 2012 20:42:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Besides programming, I helped put a new rear bumper on my wife&#39;s grandfather&#39;s truck and been taping and painting their kitchen this past two weeks. Outside of that I have just been doing house chores and taking care of wife and son.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 13 May 2012 22:58:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, William. I can&#39;t tell those people who use their real name apart, so I haven&#39;t missed you ;p Nice to see you back and doing well.<br />I&#39;m working on a port of a game while learning Git, and my own little project while learning obscure language constructs.<br />I have no idea how that posted code works. But you know you could rewrite the pow(x, 2), and separate the cos/sin in the pc[] calculation? Modern compilers might do this during optimization.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (weapon_S)</author>
		<pubDate>Mon, 14 May 2012 19:59:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/610215/954802#target">weapon_S</a> said:</div><div class="quote"><p>Modern compilers might do this during optimization.</p></div></div><p>

Its hard to say without benchmarking it. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /><br />I&#39;ve seem some types of multiplication run slower with the -O3 flag (with inline assembler). Go figure.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Mon, 14 May 2012 20:30:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi William! Glad to see you. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>That &quot;pong&quot; looks nice. Does the &quot;quads&quot; rotate?</p><p>Myself I&#39;m working hard in my Allegro wrapper for Pascal. It does work but only &quot;sometimes&quot;.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/610215/954809#target">verthex</a> said:</div><div class="quote"><p>I&#39;ve seem some types of multiplication run slower with the -O3 flag (with inline assembler). Go figure.</p></div></div><p> IIRC Allegro 3 used -O2 because it had better bechmarking than -O3. <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Niunio)</author>
		<pubDate>Mon, 14 May 2012 20:49:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi William! Good to hear you&#39;re doing fine. Is this the game you mentioned half a year ago in Cambridge?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Mon, 14 May 2012 21:34:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>...aww...Cambs...</p><p>Hello Willy! I&#39;m eggsellent thanks, glad your still using oxygen (in a good way)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Tue, 15 May 2012 01:42:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi man!, I&#39;m on my 2nd year since I turned 21, and yesterday I saw a dog walking on the street, I said &quot;GRRR&quot; and the dog said &quot;Hello&quot;. And talking about universities here&#39;s a joke. <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p><pre>
A teacher asks her class if anyone can use the word fascinate in a sentence.
Brian raises his hand and says, &quot;The sky is fascinating.&quot;
The teacher says, &quot;No that&#39;s fascinating.&quot;
Jennifer raises her hand and says, &quot;When I saw the tigers at the zoo I was fascinated.&quot;
The teacher says, &quot;No that&#39;s fascinated.&quot;
So finally Little Johnny raises his hand and says, 
&quot;My mom bought a new blouse with 12 pearl buttons, but her tit&#39;s are so 
big she could only fasten eight!
</pre><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Tue, 15 May 2012 02:48:34 +0000</pubDate>
	</item>
</rss>
