<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>upgrading tank war codebase to allegro 5</title>
		<link>http://www.allegro.cc/forums/view/616560</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 30 Oct 2016 05:49:44 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi <br />I&#39;m upgrading tank war to allegro 5 and See this code from old thread on the forum. I use the book, allegro  wiki site and <a href="http://fixbyproximity.com/2d-game-development-course/">2D Game Development Course</a> site and forum to make it work.I am stuck on  error: use of undeclared identifier &#39;screen&#39; in line 31 and 26.I searched the forum and book and the old source code and I could not find the variable. can someone help me to upgrade it?</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="number">   2</span><span class="k1">void</span> drawtank<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number">   3</span><span class="k2">{</span>
<span class="number">   4</span>    <span class="k1">int</span> x <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.x<span class="k2">;</span>
<span class="number">   5</span>    <span class="k1">int</span> y <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.y<span class="k2">;</span>
<span class="number">   6</span>    <span class="k1">int</span> dir <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.dir<span class="k2">;</span>
<span class="number">   7</span>
<span class="number">   8</span>    <span class="c">//draw tank body and turret </span>
<span class="number">   9</span>    <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-11, y-11, x<span class="k3">+</span><span class="n">11</span>, y<span class="k3">+</span><span class="n">11</span>, tanks<span class="k2">[</span>num<span class="k2">]</span>.color<span class="k2">)</span><span class="k2">;</span>
<span class="number">  10</span>    <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-6, y-6, x<span class="k3">+</span><span class="n">6</span>, y<span class="k3">+</span><span class="n">6</span>, GREY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  11</span>
<span class="number">  12</span>    <span class="c">//draw the treads based on orientation </span>
<span class="number">  13</span>    <span class="k1">if</span> <span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">|</span><span class="k3">|</span> dir <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number">  14</span>    <span class="k2">{</span>
<span class="number">  15</span>        <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-16, y-16, x-11, y<span class="k3">+</span><span class="n">16</span>, DARK_GREY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span>        <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x<span class="k3">+</span><span class="n">11</span>, y-16, x<span class="k3">+</span><span class="n">16</span>, y<span class="k3">+</span><span class="n">16</span>, DARK_GREY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span>    <span class="k2">}</span>
<span class="number">  18</span>    <span class="k1">else</span>
<span class="number">  19</span>    <span class="k1">if</span> <span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">|</span><span class="k3">|</span> dir <span class="k3">=</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span>
<span class="number">  20</span>    <span class="k2">{</span>
<span class="number">  21</span>        <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-16, y-16, x<span class="k3">+</span><span class="n">16</span>, y-11, DARK_GREY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  22</span>        <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-16, y<span class="k3">+</span><span class="n">16</span>, x<span class="k3">+</span><span class="n">16</span>, y<span class="k3">+</span><span class="n">11</span>, DARK_GREY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  23</span>    <span class="k2">}</span>
<span class="number">  24</span>
<span class="number">  25</span>    <span class="c">//draw the turret based on direction </span>
<span class="number">  26</span>    <span class="k1">switch</span> <span class="k2">(</span>dir<span class="k2">)</span>
<span class="number">  27</span>    <span class="k2">{</span>
<span class="number">  28</span>        <span class="k1">case</span> <span class="n">0</span><span class="k2">:</span>
<span class="number">  29</span>            <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-1, y, x<span class="k3">+</span><span class="n">1</span>, y-16, DARK_GREY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number">  31</span>        <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number">  32</span>            <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x, y-1, x<span class="k3">+</span><span class="n">16</span>, y<span class="k3">+</span><span class="n">1</span>, DARK_GREY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number">  34</span>        <span class="k1">case</span> <span class="n">2</span><span class="k2">:</span>
<span class="number">  35</span>            <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-1, y, x<span class="k3">+</span><span class="n">1</span>, y<span class="k3">+</span><span class="n">16</span>, DARK_GREY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number">  37</span>        <span class="k1">case</span> <span class="n">3</span><span class="k2">:</span>
<span class="number">  38</span>            <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x, y-1, x-16, y<span class="k3">+</span><span class="n">1</span>, DARK_GREY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number">  40</span>    <span class="k2">}</span>
<span class="number">  41</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number">  43</span>
<span class="number">  44</span>
<span class="number">  45</span><span class="k1">void</span> erasetank<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number">  46</span><span class="k2">{</span>
<span class="number">  47</span>    <span class="c">//calculate box to encompass the tank </span>
<span class="number">  48</span>    <span class="k1">int</span> left <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">-</span> <span class="n">17</span><span class="k2">;</span>
<span class="number">  49</span>    <span class="k1">int</span> top <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">-</span> <span class="n">17</span><span class="k2">;</span>
<span class="number">  50</span>    <span class="k1">int</span> right <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">+</span> <span class="n">17</span><span class="k2">;</span>
<span class="number">  51</span>    <span class="k1">int</span> bottom <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">+</span> <span class="n">17</span><span class="k2">;</span>
<span class="number">  52</span>
<span class="number">  53</span>    <span class="c">//erase the tank </span>
<span class="number">  54</span>    <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>left, top, right, bottom, BLACK<span class="k2">)</span><span class="k2">;</span>
<span class="number">  55</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  56</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number">  57</span>
<span class="number">  58</span>
<span class="number">  59</span><span class="k1">void</span> movetank<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number">  60</span><span class="k2">{</span>
<span class="number">  61</span>    <span class="k1">int</span> dir <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.dir<span class="k2">;</span>
<span class="number">  62</span>    <span class="k1">int</span> speed <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number">  63</span>
<span class="number">  64</span>    <span class="c">//update tank position based on direction </span>
<span class="number">  65</span>    <span class="k1">switch</span><span class="k2">(</span>dir<span class="k2">)</span>
<span class="number">  66</span>    <span class="k2">{</span>
<span class="number">  67</span>        <span class="k1">case</span> <span class="n">0</span><span class="k2">:</span>
<span class="number">  68</span>            tanks<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">-</span><span class="k3">=</span> speed<span class="k2">;</span>
<span class="number">  69</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number">  70</span>        <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number">  71</span>            tanks<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">+</span><span class="k3">=</span> speed<span class="k2">;</span>
<span class="number">  72</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number">  73</span>        <span class="k1">case</span> <span class="n">2</span><span class="k2">:</span>
<span class="number">  74</span>            tanks<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">+</span><span class="k3">=</span> speed<span class="k2">;</span>
<span class="number">  75</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number">  76</span>        <span class="k1">case</span> <span class="n">3</span><span class="k2">:</span>
<span class="number">  77</span>            tanks<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> speed<span class="k2">;</span>
<span class="number">  78</span>    <span class="k2">}</span>
<span class="number">  79</span>
<span class="number">  80</span>    <span class="c">//keep tank inside the screen </span>
<span class="number">  81</span>    <span class="k1">if</span> <span class="k2">(</span>tanks<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">&gt;</span> WIDTH-22<span class="k2">)</span>
<span class="number">  82</span>    <span class="k2">{</span>
<span class="number">  83</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">=</span> WIDTH-22<span class="k2">;</span>
<span class="number">  84</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  85</span>    <span class="k2">}</span>
<span class="number">  86</span>    <span class="k1">if</span> <span class="k2">(</span>tanks<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">&lt;</span> <span class="n">22</span><span class="k2">)</span>
<span class="number">  87</span>    <span class="k2">{</span>
<span class="number">  88</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">=</span> <span class="n">22</span><span class="k2">;</span>
<span class="number">  89</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  90</span>    <span class="k2">}</span>
<span class="number">  91</span>    <span class="k1">if</span> <span class="k2">(</span>tanks<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">&gt;</span> HEIGHT-22<span class="k2">)</span>
<span class="number">  92</span>    <span class="k2">{</span>
<span class="number">  93</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">=</span> HEIGHT-22<span class="k2">;</span>
<span class="number">  94</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  95</span>    <span class="k2">}</span>
<span class="number">  96</span>    <span class="k1">if</span> <span class="k2">(</span>tanks<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">&lt;</span> <span class="n">22</span><span class="k2">)</span>
<span class="number">  97</span>    <span class="k2">{</span>
<span class="number">  98</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">22</span><span class="k2">;</span>
<span class="number">  99</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 100</span>    <span class="k2">}</span>
<span class="number"> 101</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 102</span>
<span class="number"> 103</span>
<span class="number"> 104</span><span class="k1">void</span> explode<span class="k2">(</span><span class="k1">int</span> num, <span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 105</span><span class="k2">{</span>
<span class="number"> 106</span>
<span class="number"> 107</span>    <span class="k1">int</span> n<span class="k2">;</span>
<span class="number"> 108</span>
<span class="number"> 109</span>    <span class="c">//retrieve location of enemy tank </span>
<span class="number"> 110</span>    <span class="k1">int</span> tx <span class="k3">=</span> tanks<span class="k2">[</span><span class="k3">!</span>num<span class="k2">]</span>.x<span class="k2">;</span>
<span class="number"> 111</span>    <span class="k1">int</span> ty <span class="k3">=</span> tanks<span class="k2">[</span><span class="k3">!</span>num<span class="k2">]</span>.y<span class="k2">;</span>
<span class="number"> 112</span>
<span class="number"> 113</span>    <span class="c">//is bullet inside the boundary of the enemy tank? </span>
<span class="number"> 114</span>    <span class="k1">if</span> <span class="k2">(</span>x <span class="k3">&gt;</span> tx-16 <span class="k3">&amp;</span><span class="k3">&amp;</span> x <span class="k3">&lt;</span> tx<span class="k3">+</span><span class="n">16</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> y <span class="k3">&gt;</span> ty-16 <span class="k3">&amp;</span><span class="k3">&amp;</span> y <span class="k3">&lt;</span> ty<span class="k3">+</span><span class="n">16</span><span class="k2">)</span>
<span class="number"> 115</span>        score<span class="k2">(</span>num<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>
<span class="number"> 117</span>    <span class="c">//draw some random circles for the "explosion" </span>
<span class="number"> 118</span>    <span class="k1">for</span> <span class="k2">(</span>n <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> n <span class="k3">&lt;</span> <span class="n">10</span><span class="k2">;</span> n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 119</span>    <span class="k2">{</span>
<span class="number"> 120</span>        <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-16, y-16, x<span class="k3">+</span><span class="n">16</span>, y<span class="k3">+</span><span class="n">16</span>, RANDOM_COLOUR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>        <span class="c">/* rest(1); */</span>
<span class="number"> 122</span>    <span class="k2">}</span>
<span class="number"> 123</span>
<span class="number"> 124</span>    <span class="c">//clear the area of debris </span>
<span class="number"> 125</span>    <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-16, y-16, x<span class="k3">+</span><span class="n">16</span>, y<span class="k3">+</span><span class="n">16</span>, BLACK<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 127</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 128</span>
<span class="number"> 129</span><span class="k1">int</span> cmp_colour<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">char</span> r, <span class="k1">char</span> g, <span class="k1">char</span> b<span class="k2">)</span> <span class="k2">{</span><span class="c">/*{{{*/</span>
<span class="number"> 130</span>    <span class="k1">unsigned</span> <span class="k1">char</span> pixelr, pixelg, pixelb<span class="k2">;</span>
<span class="number"> 131</span>
<span class="number"> 132</span>    <a href="http://www.allegro.cc/manual/al_unmap_rgb"><span class="a">al_unmap_rgb</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_pixel"><span class="a">al_get_pixel</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a>, x, y<span class="k2">)</span>, <span class="k3">&amp;</span>pixelr, <span class="k3">&amp;</span>pixelg, <span class="k3">&amp;</span>pixelb<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>    <span class="k1">if</span> <span class="k2">(</span>r <span class="k3">=</span><span class="k3">=</span> pixelr <span class="k3">&amp;</span><span class="k3">&amp;</span> g <span class="k3">=</span><span class="k3">=</span> pixelg <span class="k3">&amp;</span><span class="k3">&amp;</span> b <span class="k3">=</span><span class="k3">=</span> pixelb<span class="k2">)</span>
<span class="number"> 134</span>        <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 135</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 136</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 137</span>
<span class="number"> 138</span>
<span class="number"> 139</span><span class="k1">void</span> updatebullet<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 140</span><span class="k2">{</span>
<span class="number"> 141</span>    <span class="k1">int</span> x <span class="k3">=</span> bullets<span class="k2">[</span>num<span class="k2">]</span>.x<span class="k2">;</span>
<span class="number"> 142</span>    <span class="k1">int</span> y <span class="k3">=</span> bullets<span class="k2">[</span>num<span class="k2">]</span>.y<span class="k2">;</span>
<span class="number"> 143</span>
<span class="number"> 144</span>    <span class="k1">if</span> <span class="k2">(</span>bullets<span class="k2">[</span>num<span class="k2">]</span>.alive<span class="k2">)</span>
<span class="number"> 145</span>    <span class="k2">{</span>
<span class="number"> 146</span>        <span class="c">//erase bullet </span>
<span class="number"> 147</span>        <a href="http://www.allegro.cc/manual/al_draw_rectangle"><span class="a">al_draw_rectangle</span></a><span class="k2">(</span>x-1, y-1, x<span class="k3">+</span><span class="n">1</span>, y<span class="k3">+</span><span class="n">1</span>, BLACK, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 148</span>
<span class="number"> 149</span>        <span class="c">//move bullet </span>
<span class="number"> 150</span>        bullets<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">+</span><span class="k3">=</span> bullets<span class="k2">[</span>num<span class="k2">]</span>.xspd<span class="k2">;</span>
<span class="number"> 151</span>        bullets<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">+</span><span class="k3">=</span> bullets<span class="k2">[</span>num<span class="k2">]</span>.yspd<span class="k2">;</span>
<span class="number"> 152</span>        x <span class="k3">=</span> bullets<span class="k2">[</span>num<span class="k2">]</span>.x<span class="k2">;</span>
<span class="number"> 153</span>        y <span class="k3">=</span> bullets<span class="k2">[</span>num<span class="k2">]</span>.y<span class="k2">;</span>
<span class="number"> 154</span>
<span class="number"> 155</span>        <span class="c">//stay within the screen </span>
<span class="number"> 156</span>        <span class="k1">if</span> <span class="k2">(</span>x <span class="k3">&lt;</span> <span class="n">5</span> <span class="k3">|</span><span class="k3">|</span> x <span class="k3">&gt;</span> WIDTH-5 <span class="k3">|</span><span class="k3">|</span> y <span class="k3">&lt;</span> <span class="n">20</span> <span class="k3">|</span><span class="k3">|</span> y <span class="k3">&gt;</span> HEIGHT-5<span class="k2">)</span>
<span class="number"> 157</span>        <span class="k2">{</span>
<span class="number"> 158</span>            bullets<span class="k2">[</span>num<span class="k2">]</span>.alive <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 159</span>            <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 160</span>        <span class="k2">}</span>
<span class="number"> 161</span>
<span class="number"> 162</span>        <span class="c">//draw bullet </span>
<span class="number"> 163</span>        x <span class="k3">=</span> bullets<span class="k2">[</span>num<span class="k2">]</span>.x<span class="k2">;</span>
<span class="number"> 164</span>        y <span class="k3">=</span> bullets<span class="k2">[</span>num<span class="k2">]</span>.y<span class="k2">;</span>
<span class="number"> 165</span>        <a href="http://www.allegro.cc/manual/al_draw_rectangle"><span class="a">al_draw_rectangle</span></a><span class="k2">(</span>x-1, y-1, x<span class="k3">+</span><span class="n">1</span>, y<span class="k3">+</span><span class="n">1</span>, YELLOW, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 166</span>
<span class="number"> 167</span>        <span class="c">//look for a hit </span>
<span class="number"> 168</span>        <span class="k1">if</span> <span class="k2">(</span>cmp_colour<span class="k2">(</span>bullets<span class="k2">[</span>num<span class="k2">]</span>.x, bullets<span class="k2">[</span>num<span class="k2">]</span>.y, <span class="n">0xff</span>, <span class="n">0xff</span>, <span class="n">0xff</span><span class="k2">)</span><span class="k2">)</span> <span class="c">// black </span>
<span class="number"> 169</span>        <span class="k2">{</span>
<span class="number"> 170</span>            bullets<span class="k2">[</span>num<span class="k2">]</span>.alive <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 171</span>            explode<span class="k2">(</span>num, x, y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 172</span>        <span class="k2">}</span>
<span class="number"> 173</span>
<span class="number"> 174</span>        <span class="c">//print the bullet's position </span>
<span class="number"> 175</span>        <span class="c">//al_draw_textf(font, al_map_rgb(255, 255, 255), WIDTH/2-50, 1, 2, "B1 %-3dx%-3d  B2 %-3dx%-3d", bullets[0].x, bullets[0].y, bullets[1].x, bullets[1].y);</span>
<span class="number"> 176</span>    <span class="k2">}</span>
<span class="number"> 177</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 178</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 179</span>
<span class="number"> 180</span>
<span class="number"> 181</span><span class="k1">int</span> checkpath<span class="k2">(</span><span class="k1">int</span> x1,<span class="k1">int</span> y1,<span class="k1">int</span> x2,<span class="k1">int</span> y2,<span class="k1">int</span> x3,<span class="k1">int</span> y3<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 182</span><span class="k2">{</span>
<span class="number"> 183</span>    <span class="k1">if</span> <span class="k2">(</span>cmp_colour<span class="k2">(</span>x1, y1, <span class="n">0xff</span>, <span class="n">0xff</span>, <span class="n">0xff</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span>
<span class="number"> 184</span>            cmp_colour<span class="k2">(</span>x2, y2, <span class="n">0xff</span>, <span class="n">0xff</span>, <span class="n">0xff</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span>
<span class="number"> 185</span>            cmp_colour<span class="k2">(</span>x3, y3, <span class="n">0xff</span>, <span class="n">0xff</span>, <span class="n">0xff</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 186</span>        <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 187</span>    <span class="k1">else</span>
<span class="number"> 188</span>        <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 189</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 190</span> 
<span class="number"> 191</span><span class="k1">void</span> clearpath<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 192</span><span class="k2">{</span>
<span class="number"> 193</span>    <span class="c">//shortcut vars </span>
<span class="number"> 194</span>    <span class="k1">int</span> dir <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.dir<span class="k2">;</span>
<span class="number"> 195</span>    <span class="k1">int</span> speed <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 196</span>    <span class="k1">int</span> x <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.x<span class="k2">;</span>
<span class="number"> 197</span>    <span class="k1">int</span> y <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.y<span class="k2">;</span>
<span class="number"> 198</span>
<span class="number"> 199</span>    <span class="k1">switch</span><span class="k2">(</span>dir<span class="k2">)</span>
<span class="number"> 200</span>    <span class="k2">{</span>
<span class="number"> 201</span>        <span class="c">//check pixels north </span>
<span class="number"> 202</span>        <span class="k1">case</span> <span class="n">0</span><span class="k2">:</span>
<span class="number"> 203</span>            <span class="k1">if</span> <span class="k2">(</span>speed <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 204</span>            <span class="k2">{</span>
<span class="number"> 205</span>                <span class="k1">if</span> <span class="k2">(</span>checkpath<span class="k2">(</span>x-16, y-20, x, y-20, x<span class="k3">+</span><span class="n">16</span>, y-20<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 206</span>                    tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 207</span>            <span class="k2">}</span>
<span class="number"> 208</span>            <span class="k1">else</span>
<span class="number"> 209</span>                <span class="c">//if reverse dir, check south </span>
<span class="number"> 210</span>            <span class="k1">if</span> <span class="k2">(</span>checkpath<span class="k2">(</span>x-16, y<span class="k3">+</span><span class="n">20</span>, x, y<span class="k3">+</span><span class="n">20</span>, x<span class="k3">+</span><span class="n">16</span>, y<span class="k3">+</span><span class="n">20</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 211</span>                tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 212</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 213</span>
<span class="number"> 214</span>            <span class="c">//check pixels east</span>
<span class="number"> 215</span>        <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number"> 216</span>            <span class="k1">if</span> <span class="k2">(</span>speed <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 217</span>            <span class="k2">{</span>
<span class="number"> 218</span>                <span class="k1">if</span> <span class="k2">(</span>checkpath<span class="k2">(</span>x<span class="k3">+</span><span class="n">20</span>, y-16, x<span class="k3">+</span><span class="n">20</span>, y, x<span class="k3">+</span><span class="n">20</span>, y<span class="k3">+</span><span class="n">16</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 219</span>                    tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 220</span>            <span class="k2">}</span>
<span class="number"> 221</span>            <span class="k1">else</span>
<span class="number"> 222</span>                <span class="c">//if reverse dir, check west </span>
<span class="number"> 223</span>            <span class="k1">if</span> <span class="k2">(</span>checkpath<span class="k2">(</span>x-20, y-16, x-20, y, x-20, y<span class="k3">+</span><span class="n">16</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 224</span>                tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 225</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 226</span>
<span class="number"> 227</span>            <span class="c">//check pixels south</span>
<span class="number"> 228</span>        <span class="k1">case</span> <span class="n">2</span><span class="k2">:</span>
<span class="number"> 229</span>            <span class="k1">if</span> <span class="k2">(</span>speed <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 230</span>            <span class="k2">{</span>
<span class="number"> 231</span>                <span class="k1">if</span> <span class="k2">(</span>checkpath<span class="k2">(</span>x-16, y<span class="k3">+</span><span class="n">20</span>, x, y<span class="k3">+</span><span class="n">20</span>, x<span class="k3">+</span><span class="n">16</span>, y<span class="k3">+</span><span class="n">20</span> <span class="k2">)</span><span class="k2">)</span>
<span class="number"> 232</span>                    tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 233</span>            <span class="k2">}</span>
<span class="number"> 234</span>            <span class="k1">else</span>
<span class="number"> 235</span>                <span class="c">//if reverse dir, check north </span>
<span class="number"> 236</span>            <span class="k1">if</span> <span class="k2">(</span>checkpath<span class="k2">(</span>x-16, y-20, x, y-20, x<span class="k3">+</span><span class="n">16</span>, y-20<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 237</span>                tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 238</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 239</span>
<span class="number"> 240</span>            <span class="c">//check pixels west</span>
<span class="number"> 241</span>        <span class="k1">case</span> <span class="n">3</span><span class="k2">:</span>
<span class="number"> 242</span>            <span class="k1">if</span> <span class="k2">(</span>speed <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 243</span>            <span class="k2">{</span>
<span class="number"> 244</span>                <span class="k1">if</span> <span class="k2">(</span>checkpath<span class="k2">(</span>x-20, y-16, x-20, y, x-20, y<span class="k3">+</span><span class="n">16</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 245</span>                    tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 246</span>            <span class="k2">}</span>
<span class="number"> 247</span>            <span class="k1">else</span>
<span class="number"> 248</span>                <span class="c">//if reverse dir, check east </span>
<span class="number"> 249</span>            <span class="k1">if</span> <span class="k2">(</span>checkpath<span class="k2">(</span>x<span class="k3">+</span><span class="n">20</span>, y-16, x<span class="k3">+</span><span class="n">20</span>, y, x<span class="k3">+</span><span class="n">20</span>, y<span class="k3">+</span><span class="n">16</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 250</span>                tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 251</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 252</span>    <span class="k2">}</span>
<span class="number"> 253</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 254</span>
<span class="number"> 255</span>
<span class="number"> 256</span><span class="k1">void</span> fireweapon<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 257</span><span class="k2">{</span>
<span class="number"> 258</span>    <span class="k1">int</span> x <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.x<span class="k2">;</span>
<span class="number"> 259</span>    <span class="k1">int</span> y <span class="k3">=</span> tanks<span class="k2">[</span>num<span class="k2">]</span>.y<span class="k2">;</span>
<span class="number"> 260</span>
<span class="number"> 261</span>    <span class="c">//ready to fire again? </span>
<span class="number"> 262</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bullets<span class="k2">[</span>num<span class="k2">]</span>.alive<span class="k2">)</span>
<span class="number"> 263</span>    <span class="k2">{</span>
<span class="number"> 264</span>        bullets<span class="k2">[</span>num<span class="k2">]</span>.alive <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 265</span>
<span class="number"> 266</span>        <span class="c">//fire bullet in direction tank is facing </span>
<span class="number"> 267</span>        <span class="k1">switch</span> <span class="k2">(</span>tanks<span class="k2">[</span>num<span class="k2">]</span>.dir<span class="k2">)</span>
<span class="number"> 268</span>        <span class="k2">{</span>
<span class="number"> 269</span>            <span class="c">//north </span>
<span class="number"> 270</span>            <span class="k1">case</span> <span class="n">0</span><span class="k2">:</span>
<span class="number"> 271</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">=</span> x<span class="k2">;</span>
<span class="number"> 272</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">=</span> y-22<span class="k2">;</span>
<span class="number"> 273</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.xspd <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 274</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.yspd <span class="k3">=</span> <span class="k3">-</span>BULLETSPEED<span class="k2">;</span>
<span class="number"> 275</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 276</span>                <span class="c">//east</span>
<span class="number"> 277</span>            <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number"> 278</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">=</span> x<span class="k3">+</span><span class="n">22</span><span class="k2">;</span>
<span class="number"> 279</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">=</span> y<span class="k2">;</span>
<span class="number"> 280</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.xspd <span class="k3">=</span> BULLETSPEED<span class="k2">;</span>
<span class="number"> 281</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.yspd <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 282</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 283</span>                <span class="c">//south</span>
<span class="number"> 284</span>            <span class="k1">case</span> <span class="n">2</span><span class="k2">:</span>
<span class="number"> 285</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">=</span> x<span class="k2">;</span>
<span class="number"> 286</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">=</span> y<span class="k3">+</span><span class="n">22</span><span class="k2">;</span>
<span class="number"> 287</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.xspd <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 288</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.yspd <span class="k3">=</span> BULLETSPEED<span class="k2">;</span>
<span class="number"> 289</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 290</span>                <span class="c">//west</span>
<span class="number"> 291</span>            <span class="k1">case</span> <span class="n">3</span><span class="k2">:</span>
<span class="number"> 292</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.x <span class="k3">=</span> x-22<span class="k2">;</span>
<span class="number"> 293</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.y <span class="k3">=</span> y<span class="k2">;</span>
<span class="number"> 294</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.xspd <span class="k3">=</span> <span class="k3">-</span>BULLETSPEED<span class="k2">;</span>
<span class="number"> 295</span>                bullets<span class="k2">[</span>num<span class="k2">]</span>.yspd <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 296</span>        <span class="k2">}</span>
<span class="number"> 297</span>    <span class="k2">}</span>
<span class="number"> 298</span><span class="k2">}</span>
<span class="number"> 299</span><span class="k1">void</span> forward<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 300</span><span class="k2">{</span>
<span class="number"> 301</span>    tanks<span class="k2">[</span>num<span class="k2">]</span>.speed<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 302</span>    <span class="k1">if</span> <span class="k2">(</span>tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">&gt;</span> MAXSPEED<span class="k2">)</span>
<span class="number"> 303</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> MAXSPEED<span class="k2">;</span>
<span class="number"> 304</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 305</span>
<span class="number"> 306</span>
<span class="number"> 307</span><span class="k1">void</span> backward<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 308</span><span class="k2">{</span>
<span class="number"> 309</span>    tanks<span class="k2">[</span>num<span class="k2">]</span>.speed--<span class="k2">;</span>
<span class="number"> 310</span>    <span class="k1">if</span> <span class="k2">(</span>tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">&lt;</span> <span class="k3">-</span>MAXSPEED<span class="k2">)</span>
<span class="number"> 311</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.speed <span class="k3">=</span> <span class="k3">-</span>MAXSPEED<span class="k2">;</span>
<span class="number"> 312</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 313</span>
<span class="number"> 314</span>
<span class="number"> 315</span><span class="k1">void</span> turnleft<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 316</span><span class="k2">{</span>
<span class="number"> 317</span>    tanks<span class="k2">[</span>num<span class="k2">]</span>.dir--<span class="k2">;</span>
<span class="number"> 318</span>    <span class="k1">if</span> <span class="k2">(</span>tanks<span class="k2">[</span>num<span class="k2">]</span>.dir <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 319</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.dir <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 320</span><span class="k2">}</span>
<span class="number"> 321</span>
<span class="number"> 322</span><span class="k1">void</span> turnright<span class="k2">(</span><span class="k1">int</span> num<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 323</span><span class="k2">{</span>
<span class="number"> 324</span>    tanks<span class="k2">[</span>num<span class="k2">]</span>.dir<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 325</span>    <span class="k1">if</span> <span class="k2">(</span>tanks<span class="k2">[</span>num<span class="k2">]</span>.dir <span class="k3">&gt;</span> <span class="n">3</span><span class="k2">)</span>
<span class="number"> 326</span>        tanks<span class="k2">[</span>num<span class="k2">]</span>.dir <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 327</span><span class="k2">}</span>
<span class="number"> 328</span><span class="k1">void</span> getinput<span class="k2">(</span><span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 329</span><span class="k2">{</span>
<span class="number"> 330</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number"> 331</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 332</span>    <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">!</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 333</span>        <span class="k2">;</span>
<span class="number"> 334</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 335</span>        gameOver <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 336</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span>
<span class="number"> 337</span>        forward<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 338</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span>
<span class="number"> 339</span>        backward<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 340</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span>
<span class="number"> 341</span>        turnright<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 342</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span>
<span class="number"> 343</span>        turnleft<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 344</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ENTER<span class="k2">)</span>
<span class="number"> 345</span>        fireweapon<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 346</span>
<span class="number"> 347</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_W<span class="k2">)</span>
<span class="number"> 348</span>        forward<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 349</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_D<span class="k2">)</span>
<span class="number"> 350</span>        turnright<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 351</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_A<span class="k2">)</span>
<span class="number"> 352</span>        turnleft<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 353</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_S<span class="k2">)</span>
<span class="number"> 354</span>        backward<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 355</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_SPACE<span class="k2">)</span>
<span class="number"> 356</span>        fireweapon<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 357</span>
<span class="number"> 358</span>    <span class="c">//short delay after keypress         </span>
<span class="number"> 359</span>    <span class="c">/* rest(10); */</span>
<span class="number"> 360</span><span class="k2">}</span>
<span class="number"> 361</span><span class="k1">void</span> score<span class="k2">(</span><span class="k1">int</span> player<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 362</span><span class="k2">{</span>
<span class="number"> 363</span>    <span class="c">//update score </span>
<span class="number"> 364</span>    <span class="k1">int</span> points <span class="k3">=</span> <span class="k3">+</span><span class="k3">+</span>tanks<span class="k2">[</span>player<span class="k2">]</span>.score<span class="k2">;</span>
<span class="number"> 365</span>
<span class="number"> 366</span>    <span class="c">//display score </span>
<span class="number"> 367</span>    <span class="c">//al_draw_textf(font, BURST, WIDTH-70*(player+1), 1, 0, "P%d: %d", player+1, points);</span>
<span class="number"> 368</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 369</span><span class="k2">}</span>
<span class="number"> 370</span>
<span class="number"> 371</span><span class="k1">void</span> setuptanks<span class="k2">(</span><span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 372</span><span class="k2">{</span>
<span class="number"> 373</span>    <span class="c">//player 1 </span>
<span class="number"> 374</span>    tanks<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x <span class="k3">=</span> <span class="n">30</span><span class="k2">;</span>
<span class="number"> 375</span>    tanks<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.y <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 376</span>    tanks<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.dir <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 377</span>    tanks<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 378</span>    tanks<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.color <span class="k3">=</span> BLUE<span class="k2">;</span>
<span class="number"> 379</span>    tanks<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.score <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 380</span>
<span class="number"> 381</span>    <span class="c">//player 2 </span>
<span class="number"> 382</span>    tanks<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.x <span class="k3">=</span> WIDTH-30<span class="k2">;</span>
<span class="number"> 383</span>    tanks<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.y <span class="k3">=</span> HEIGHT-30<span class="k2">;</span>
<span class="number"> 384</span>    tanks<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.dir <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 385</span>    tanks<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 386</span>    tanks<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.color <span class="k3">=</span> RED<span class="k2">;</span>
<span class="number"> 387</span>    tanks<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.score <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 388</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 389</span>
<span class="number"> 390</span>
<span class="number"> 391</span><span class="k1">void</span> setupdebris<span class="k2">(</span><span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 392</span><span class="k2">{</span>
<span class="number"> 393</span>    <span class="k1">int</span> n,x,y,size,color<span class="k2">;</span>
<span class="number"> 394</span>
<span class="number"> 395</span>    <span class="c">//fill the battlefield with random debris </span>
<span class="number"> 396</span>    <span class="k1">for</span> <span class="k2">(</span>n <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> n <span class="k3">&lt;</span> BLOCKS<span class="k2">;</span> n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 397</span>    <span class="k2">{</span>
<span class="number"> 398</span>        x <span class="k3">=</span> BLOCKSIZE <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="k2">(</span>WIDTH-BLOCKSIZE<span class="k3">*</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 399</span>        y <span class="k3">=</span> BLOCKSIZE <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="k2">(</span>HEIGHT-BLOCKSIZE<span class="k3">*</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 400</span>        size <span class="k3">=</span> <span class="k2">(</span><span class="n">10</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % BLOCKSIZE<span class="k2">)</span><span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
<span class="number"> 401</span>        <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x-size, y-size, x<span class="k3">+</span>size, y<span class="k3">+</span>size, RANDOM_COLOUR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 402</span>    <span class="k2">}</span>
<span class="number"> 403</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 404</span>
<span class="number"> 405</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 406</span>
<span class="number"> 407</span>
<span class="number"> 408</span><span class="k1">void</span> setupscreen<span class="k2">(</span><span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 409</span><span class="k2">{</span>
<span class="number"> 410</span><span class="p">#if 0</span>
<span class="number"> 411</span>    <span class="c">//set video mode     </span>
<span class="number"> 412</span>    <span class="k1">int</span> ret <span class="k3">=</span> <a href="http://www.allegro.cc/manual/set_gfx_mode"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>MODE, WIDTH, HEIGHT, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 413</span>    <span class="k1">if</span> <span class="k2">(</span>ret <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span> 
<span class="number"> 414</span>        <a href="http://www.allegro.cc/manual/allegro_message"><span class="a">allegro_message</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/allegro_error"><span class="a">allegro_error</span></a><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 415</span>        <span class="k1">return</span><span class="k2">;</span> 
<span class="number"> 416</span>    <span class="k2">}</span>
<span class="number"> 417</span><span class="p">#endif</span>
<span class="number"> 418</span>
<span class="number"> 419</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 420</span>    <span class="c">//print title </span>
<span class="number"> 421</span>    <span class="c">//al_draw_textf(font, BURST, 1, 1, 0, "Tank War - %dx%d", WIDTH, HEIGHT);</span>
<span class="number"> 422</span>
<span class="number"> 423</span>    <span class="c">//draw screen border         </span>
<span class="number"> 424</span>    <a href="http://www.allegro.cc/manual/al_draw_rectangle"><span class="a">al_draw_rectangle</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">12</span>, WIDTH-1, HEIGHT-1, TAN, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 425</span>    <a href="http://www.allegro.cc/manual/al_draw_rectangle"><span class="a">al_draw_rectangle</span></a><span class="k2">(</span><span class="n">1</span>, <span class="n">13</span>, WIDTH-2, HEIGHT-2, TAN, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 426</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 427</span><span class="k2">}</span><span class="c">/*}}}*/</span>
<span class="number"> 428</span>
<span class="number"> 429</span>
<span class="number"> 430</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span><span class="k3">*</span>argv<span class="k2">)</span><span class="c">/*{{{*/</span>
<span class="number"> 431</span><span class="k2">{</span>
<span class="number"> 432</span>
<span class="number"> 433</span>    <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 434</span>    <span class="k1">bool</span> render <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 435</span>
<span class="number"> 436</span>    <span class="k1">float</span> gameTime <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 437</span>    <span class="k1">int</span> frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 438</span>    <span class="k1">int</span> gameFPS <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 439</span>
<span class="number"> 440</span>
<span class="number"> 441</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 442</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 443</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer<span class="k2">;</span>
<span class="number"> 444</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">;</span>
<span class="number"> 445</span>
<span class="number"> 446</span>
<span class="number"> 447</span>    <a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 448</span>    <a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 449</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 450</span>    <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 451</span>    <a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 452</span>
<span class="number"> 453</span>
<span class="number"> 454</span>
<span class="number"> 455</span>    <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"arial.ttf"</span>, <span class="n">18</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 456</span>
<span class="number"> 457</span>
<span class="number"> 458</span>    event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 459</span>    timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> <span class="n">60</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 460</span>
<span class="number"> 461</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 462</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 463</span>
<span class="number"> 464</span>    <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 465</span>    gameTime <span class="k3">=</span> al_current_time<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 466</span>
<span class="number"> 467</span>    <span class="c">//initialize everything </span>
<span class="number"> 468</span>
<span class="number"> 469</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 470</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Failed to initialize Allegro library.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 471</span>        <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 472</span>    <span class="k2">}</span>
<span class="number"> 473</span>
<span class="number"> 474</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 475</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Failed to install keyboard.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 476</span>        <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 477</span>    <span class="k2">}</span>
<span class="number"> 478</span>
<span class="number"> 479</span>    <span class="c">/* install_timer(); */</span>
<span class="number"> 480</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 481</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 482</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><span class="k2">(</span>display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 483</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Failed to create display.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 484</span>        <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 485</span>    <span class="k2">}</span>
<span class="number"> 486</span>
<span class="number"> 487</span>    ALLEGRO_PATH <span class="k3">*</span>path <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_standard_path"><span class="a">al_get_standard_path</span></a><span class="k2">(</span>ALLEGRO_RESOURCES_PATH<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 488</span>    <a href="http://www.allegro.cc/manual/al_append_path_component"><span class="a">al_append_path_component</span></a><span class="k2">(</span>path, <span class="s">"resources"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 489</span>    <a href="http://www.allegro.cc/manual/al_change_directory"><span class="a">al_change_directory</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a><span class="k2">(</span>path, <span class="s">'/'</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">// change the working directory </span>
<span class="number"> 490</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Should be in %s\n"</span>, <a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a><span class="k2">(</span>path, <span class="s">'/'</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 491</span>    <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"Airacobra Alt.ttf"</span>, <span class="n">72</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 492</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 493</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Error loading Airacobra Alt.ttf.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 494</span>        <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 495</span>    <span class="k2">}</span>
<span class="number"> 496</span>    <a href="http://www.allegro.cc/manual/al_destroy_path"><span class="a">al_destroy_path</span></a><span class="k2">(</span>path<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 497</span>
<span class="number"> 498</span>    setupscreen<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 499</span>    setupdebris<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 500</span>    setuptanks<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 501</span>
<span class="number"> 502</span>    <span class="c">//game loop </span>
<span class="number"> 503</span>    <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>gameOver<span class="k2">)</span>
<span class="number"> 504</span>    <span class="k2">{</span>
<span class="number"> 505</span><span class="p">#if 0</span>
<span class="number"> 506</span>        <span class="c">//erase the tanks </span>
<span class="number"> 507</span>        erasetank<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 508</span>        erasetank<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 509</span>         
<span class="number"> 510</span>        <span class="c">//check for collisions </span>
<span class="number"> 511</span>        clearpath<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 512</span>        clearpath<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 513</span>         
<span class="number"> 514</span>        <span class="c">//move the tanks </span>
<span class="number"> 515</span>        movetank<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 516</span>        movetank<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 517</span><span class="p">#endif</span>
<span class="number"> 518</span>
<span class="number"> 519</span>        <span class="c">//draw the tanks </span>
<span class="number"> 520</span>        drawtank<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 521</span>        drawtank<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 522</span>
<span class="number"> 523</span><span class="p">#if 0</span>
<span class="number"> 524</span>        <span class="c">//update the bullets </span>
<span class="number"> 525</span>        updatebullet<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 526</span>        updatebullet<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 527</span><span class="p">#endif</span>
<span class="number"> 528</span>
<span class="number"> 529</span>        <span class="c">//check for keypresses </span>
<span class="number"> 530</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number"> 531</span>        <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 532</span>        <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 533</span>            getinput<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 534</span>
<span class="number"> 535</span>        <span class="c">//slow the game down (adjust as necessary) </span>
<span class="number"> 536</span>        <a href="http://www.allegro.cc/manual/al_rest"><span class="a">al_rest</span></a><span class="k2">(</span><span class="n">30</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 537</span>    <span class="k2">}</span>
<span class="number"> 538</span>
<span class="number"> 539</span>    <span class="c">//end program </span>
<span class="number"> 540</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 541</span><span class="k2">}</span><span class="c">/*}}}*/</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DarkSlayer)</author>
		<pubDate>Sun, 30 Oct 2016 03:33:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>In Allegro 4, references to <span class="source-code"><a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a></span> are used to draw directly to the screen. In Allegro 5, when you want to draw to the screen, you need to set the target bitmap to the back buffer of the display you are using.</p><div class="source-code snippet"><div class="inner"><pre><span class="c">/// OLD Allegro 4 code</span>
<a href="http://www.allegro.cc/manual/blit"><span class="a">blit</span></a><span class="k2">(</span>bmp , <a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a> , <span class="n">0</span> , <span class="n">0</span> , <span class="n">0</span> , <span class="n">0</span> , bmp-&gt;w , bmp-&gt;h<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

</p><div class="source-code snippet"><div class="inner"><pre><span class="c">/// Equivalent Allegro 5 Code</span>
<a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>bmp , <span class="n">0</span> , <span class="n">0</span> , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 30 Oct 2016 03:54:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>just I want to ask. do you know whare I can I get source code of the game in allegro 5?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DarkSlayer)</author>
		<pubDate>Sun, 30 Oct 2016 05:20:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I haven&#39;t the faintest clue. If you&#39;re lucky, somebody else has already done it for you. Google is (might be) your friend. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 30 Oct 2016 05:49:44 +0000</pubDate>
	</item>
</rss>
