<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Mouse-enabled program immediately exits due to error</title>
		<link>http://www.allegro.cc/forums/view/586215</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 03 Jul 2006 21:45:53 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Chances are, this problem reeks of newbieness -- that maybe I&#39;m just not initializing something right -- but it&#39;s a problem nonetheless. A program I copied from the book I&#39;m reading, for the sake of messing around with mouse input, compiles just fine, but every time I execute it, the program immediately crashes and gives me one of those &quot;Do you wish to report this error to MS?&quot; dialogs.</p><p>If it helps to produce a solution, I&#39;m working on a notebook computer with Windows XP Profesional. I&#39;m kind of baffled here. <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /> </p><p>Here&#39;s the code:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="p">#define WHITE makecol(255,255,255)</span></td></tr><tr><td class="number">4</td><td><span class="p">#define BLACK makecol(0,0,0)</span></td></tr><tr><td class="number">5</td><td><span class="p">#define RED makecol(255,0,0)</span></td></tr><tr><td class="number">6</td><td><span class="p">#define GREEN makecol(0,255,0)</span></td></tr><tr><td class="number">7</td><td><span class="p">#define BLUE makecol(0,0,255)</span></td></tr><tr><td class="number">8</td><td><span class="p">#define SMOKE makecol(140,130,120)</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="c">// point structure used to draw lines</span></td></tr><tr><td class="number">11</td><td><span class="k1">typedef</span> <span class="k1">struct</span> POINT</td></tr><tr><td class="number">12</td><td><span class="k2">{</span></td></tr><tr><td class="number">13</td><td>    <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">14</td><td><span class="k2">}</span>POINT<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td><span class="c">// points array holds do_line points for drawing a line</span></td></tr><tr><td class="number">17</td><td>POINT points<span class="k2">[</span><span class="n">2000</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td><span class="k1">int</span> curpoint, totalpoints<span class="k2">;</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td><span class="c">// bitmap images</span></td></tr><tr><td class="number">21</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> buffer<span class="k2">;</span></td></tr><tr><td class="number">22</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> crosshair<span class="k2">;</span></td></tr><tr><td class="number">23</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> city<span class="k2">;</span></td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</td><td><span class="c">// misc variables</span></td></tr><tr><td class="number">26</td><td><span class="k1">int</span> st_x,st_y,en_x,en_y<span class="k2">;</span></td></tr><tr><td class="number">27</td><td><span class="k1">int</span> done <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td><span class="k1">int</span> destroyed <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td><span class="k1">int</span> n<span class="k2">;</span></td></tr><tr><td class="number">30</td><td><span class="k1">int</span> mx,my,mb<span class="k2">;</span></td></tr><tr><td class="number">31</td><td><span class="k1">int</span> score <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>&#160;</td></tr><tr><td class="number">33</td><td><span class="k1">void</span> updatescore<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">34</td><td><span class="k2">{</span></td></tr><tr><td class="number">35</td><td>    <span class="c">// update and display the score</span></td></tr><tr><td class="number">36</td><td>    score <span class="k3">=</span> score<span class="k3">+</span><span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>    <a href="http://www.allegro.cc/manual/textprintf_right_ex" target="_blank"><span class="a">textprintf_right_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, SCREEN_W-5, <span class="n">1</span>, WHITE, <span class="k3">-</span><span class="n">1</span>, <span class="s">"SCORE: %d"</span>, score<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td><span class="k2">}</span></td></tr><tr><td class="number">39</td><td>&#160;</td></tr><tr><td class="number">40</td><td><span class="k1">void</span> explosion<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> finalcolor<span class="k2">)</span></td></tr><tr><td class="number">41</td><td><span class="k2">{</span></td></tr><tr><td class="number">42</td><td>    <span class="k1">int</span> color, size<span class="k2">;</span></td></tr><tr><td class="number">43</td><td>&#160;</td></tr><tr><td class="number">44</td><td>    <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">20</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">45</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">46</td><td>        <span class="c">// generate a random color</span></td></tr><tr><td class="number">47</td><td>        color <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</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="n">255</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="n">255</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="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>        <span class="c">// random explosion side</span></td></tr><tr><td class="number">49</td><td>        size <span class="k3">=</span> <span class="n">20</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>%<span class="n">20</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>        <span class="c">// draw the filled circle</span></td></tr><tr><td class="number">51</td><td>        <a href="http://www.allegro.cc/manual/circlefill" target="_blank"><span class="a">circlefill</span></a><span class="k2">(</span>bmp, x, y, size, color<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>        <span class="c">// short pause</span></td></tr><tr><td class="number">53</td><td>        <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">55</td><td>    <span class="c">// missile tracker looks for this explosion color</span></td></tr><tr><td class="number">56</td><td>    <a href="http://www.allegro.cc/manual/circlefill" target="_blank"><span class="a">circlefill</span></a><span class="k2">(</span>bmp, x, y, <span class="n">40</span>, finalcolor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">57</td><td><span class="k2">}</span></td></tr><tr><td class="number">58</td><td>&#160;</td></tr><tr><td class="number">59</td><td><span class="k1">void</span> doline<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> d<span class="k2">)</span></td></tr><tr><td class="number">60</td><td><span class="k2">{</span></td></tr><tr><td class="number">61</td><td>    <span class="c">// line callback function... fills the points array</span></td></tr><tr><td class="number">62</td><td>    points<span class="k2">[</span>totalpoints<span class="k2">]</span>.x <span class="k3">=</span> x<span class="k2">;</span></td></tr><tr><td class="number">63</td><td>    points<span class="k2">[</span>totalpoints<span class="k2">]</span>.y <span class="k3">=</span> y<span class="k2">;</span></td></tr><tr><td class="number">64</td><td>    totalpoints<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">65</td><td><span class="k2">}</span></td></tr><tr><td class="number">66</td><td>&#160;</td></tr><tr><td class="number">67</td><td><span class="k1">void</span> firenewmissile<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">68</td><td><span class="k2">{</span></td></tr><tr><td class="number">69</td><td>    <span class="c">// activate the new missile</span></td></tr><tr><td class="number">70</td><td>    destroyed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>    totalpoints <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>    curpoint <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>&#160;</td></tr><tr><td class="number">74</td><td>    <span class="c">// random starting location</span></td></tr><tr><td class="number">75</td><td>    st_x <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>SCREEN_W-1<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">76</td><td>    st_y <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>&#160;</td></tr><tr><td class="number">78</td><td>    <span class="c">// random ending location</span></td></tr><tr><td class="number">79</td><td>    en_x <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>SCREEN_W-1<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">80</td><td>    en_y <span class="k3">=</span> SCREEN_H-50<span class="k2">;</span></td></tr><tr><td class="number">81</td><td>&#160;</td></tr><tr><td class="number">82</td><td>    <span class="c">// construct the line point-by-point</span></td></tr><tr><td class="number">83</td><td>    <a href="http://www.allegro.cc/manual/do_line" target="_blank"><span class="a">do_line</span></a><span class="k2">(</span>buffer, st_x, st_y, en_x, en_y, <span class="n">0</span>, <span class="k3">&amp;</span>doline<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">84</td><td><span class="k2">}</span></td></tr><tr><td class="number">85</td><td>&#160;</td></tr><tr><td class="number">86</td><td><span class="k1">void</span> movemissile<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">87</td><td><span class="k2">{</span></td></tr><tr><td class="number">88</td><td>    <span class="c">// grab a local copy of the current point</span></td></tr><tr><td class="number">89</td><td>    <span class="k1">int</span> x <span class="k3">=</span> points<span class="k2">[</span>curpoint<span class="k2">]</span>.x<span class="k2">;</span></td></tr><tr><td class="number">90</td><td>    <span class="k1">int</span> y <span class="k3">=</span> points<span class="k2">[</span>curpoint<span class="k2">]</span>.y<span class="k2">;</span></td></tr><tr><td class="number">91</td><td>&#160;</td></tr><tr><td class="number">92</td><td>    <span class="c">// hide mouse pointer</span></td></tr><tr><td class="number">93</td><td>    <a href="http://www.allegro.cc/manual/scare_mouse" target="_blank"><span class="a">scare_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">94</td><td>&#160;</td></tr><tr><td class="number">95</td><td>    <span class="c">// erase missile</span></td></tr><tr><td class="number">96</td><td>    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, x-6, y-3, x<span class="k3">+</span><span class="n">6</span>, y<span class="k3">+</span><span class="n">1</span>, BLACK<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">97</td><td>&#160;</td></tr><tr><td class="number">98</td><td>    <span class="c">// see if missile was hit by defense weapon</span></td></tr><tr><td class="number">99</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/getpixel" target="_blank"><span class="a">getpixel</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, x, y<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> GREEN<span class="k2">)</span></td></tr><tr><td class="number">100</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">101</td><td>        <span class="c">// missile destroyed! score a point</span></td></tr><tr><td class="number">102</td><td>        destroyed<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">103</td><td>        updatescore<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">104</td><td>    <span class="k2">}</span> <span class="k1">else</span> <span class="k2">{</span></td></tr><tr><td class="number">105</td><td>        <span class="c">// no hit, just draw the missile and smoke trail</span></td></tr><tr><td class="number">106</td><td>        <span class="c">//draw the smoke trail</span></td></tr><tr><td class="number">107</td><td>        <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>buffer, x, y-3, SMOKE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">108</td><td>        <span class="c">// draw the missle</span></td></tr><tr><td class="number">109</td><td>        <a href="http://www.allegro.cc/manual/circlefill" target="_blank"><span class="a">circlefill</span></a><span class="k2">(</span>buffer, x, y, <span class="n">2</span>, BLUE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">110</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">111</td><td>    <span class="c">// show mouse pointer</span></td></tr><tr><td class="number">112</td><td>    <a href="http://www.allegro.cc/manual/unscare_mouse" target="_blank"><span class="a">unscare_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">113</td><td>&#160;</td></tr><tr><td class="number">114</td><td>    <span class="c">// did the missle hit a city?</span></td></tr><tr><td class="number">115</td><td>    curpoint<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">116</td><td>    <span class="k1">if</span> <span class="k2">(</span>curpoint <span class="k3">&gt;</span><span class="k3">=</span> totalpoints<span class="k2">)</span></td></tr><tr><td class="number">117</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">118</td><td>        <span class="c">// destroy the missile</span></td></tr><tr><td class="number">119</td><td>        destroyed<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">120</td><td>        <span class="c">// animate explosion directly on screen</span></td></tr><tr><td class="number">121</td><td>        explosion<span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, x, y, BLACK<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">122</td><td>        <span class="c">// show the damage on the backbuffer</span></td></tr><tr><td class="number">123</td><td>        <a href="http://www.allegro.cc/manual/circlefill" target="_blank"><span class="a">circlefill</span></a><span class="k2">(</span>buffer, x, y, <span class="n">40</span>, BLACK<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">124</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">125</td><td><span class="k2">}</span></td></tr><tr><td class="number">126</td><td>&#160;</td></tr><tr><td class="number">127</td><td>&#160;</td></tr><tr><td class="number">128</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">129</td><td><span class="k2">{</span></td></tr><tr><td class="number">130</td><td>    <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">131</td><td>    <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">132</td><td>    <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT_WINDOWED, <span class="n">640</span>, <span class="n">480</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">133</td><td>    <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">134</td><td>    <a href="http://www.allegro.cc/manual/install_mouse" target="_blank"><span class="a">install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">135</td><td>    <a href="http://www.allegro.cc/manual/install_timer" target="_blank"><span class="a">install_timer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">136</td><td>    <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></td></tr><tr><td class="number">137</td><td>&#160;</td></tr><tr><td class="number">138</td><td>    <span class="c">//create a secondary screen buffer</span></td></tr><tr><td class="number">139</td><td>    buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">640</span>,<span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">140</td><td>&#160;</td></tr><tr><td class="number">141</td><td>    <span class="c">// display title</span></td></tr><tr><td class="number">142</td><td>    <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Strategic Defense (ESC to quit)"</span>, <span class="n">0</span>, <span class="n">1</span>, WHITE, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">143</td><td>&#160;</td></tr><tr><td class="number">144</td><td>    <span class="c">//display score</span></td></tr><tr><td class="number">145</td><td>    updatescore<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">146</td><td>&#160;</td></tr><tr><td class="number">147</td><td>    <span class="c">//draw border around screen</span></td></tr><tr><td class="number">148</td><td>    <a href="http://www.allegro.cc/manual/rect" target="_blank"><span class="a">rect</span></a><span class="k2">(</span>buffer, <span class="n">0</span>, <span class="n">12</span>, SCREEN_W-2, SCREEN_H-2, RED<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">149</td><td>&#160;</td></tr><tr><td class="number">150</td><td>    <span class="c">// load and draw the city images</span></td></tr><tr><td class="number">151</td><td>    city <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"city.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">152</td><td>&#160;</td></tr><tr><td class="number">153</td><td>    <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">5</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">154</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">155</td><td>        <a href="http://www.allegro.cc/manual/masked_blit" target="_blank"><span class="a">masked_blit</span></a><span class="k2">(</span>city, buffer, <span class="n">0</span>, <span class="n">0</span>, <span class="n">50</span><span class="k3">+</span>n<span class="k3">*</span><span class="n">120</span>, SCREEN_H-city-&gt;h-2, city-&gt;w, city-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">156</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">157</td><td>&#160;</td></tr><tr><td class="number">158</td><td>    <span class="c">// load the mouse cursor</span></td></tr><tr><td class="number">159</td><td>    crosshair <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"crosshair.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">160</td><td>    <a href="http://www.allegro.cc/manual/set_mouse_sprite" target="_blank"><span class="a">set_mouse_sprite</span></a><span class="k2">(</span>crosshair<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">161</td><td>    <a href="http://www.allegro.cc/manual/set_mouse_sprite_focus" target="_blank"><span class="a">set_mouse_sprite_focus</span></a><span class="k2">(</span><span class="n">15</span>,<span class="n">15</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">162</td><td>    <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">163</td><td>&#160;</td></tr><tr><td class="number">164</td><td>    <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">165</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">166</td><td>        <span class="c">// grab the current mouse values</span></td></tr><tr><td class="number">167</td><td>        mx <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a><span class="k2">;</span></td></tr><tr><td class="number">168</td><td>        my <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k2">;</span></td></tr><tr><td class="number">169</td><td>        mb <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">170</td><td>&#160;</td></tr><tr><td class="number">171</td><td>        <span class="c">// fire another missile if needed</span></td></tr><tr><td class="number">172</td><td>        <span class="k1">if</span> <span class="k2">(</span>destroyed<span class="k2">)</span></td></tr><tr><td class="number">173</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">174</td><td>            firenewmissile<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">175</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">176</td><td>&#160;</td></tr><tr><td class="number">177</td><td>        <span class="c">// left mouse button, fire the defense weapon</span></td></tr><tr><td class="number">178</td><td>        <span class="k1">if</span> <span class="k2">(</span>mb<span class="k2">)</span></td></tr><tr><td class="number">179</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">180</td><td>            explosion<span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, mx, my, GREEN<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">181</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">182</td><td>&#160;</td></tr><tr><td class="number">183</td><td>        <span class="c">// update enemy missile position</span></td></tr><tr><td class="number">184</td><td>        movemissile<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">185</td><td>&#160;</td></tr><tr><td class="number">186</td><td>        <span class="c">// update_screen</span></td></tr><tr><td class="number">187</td><td>        <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/screen" target="_blank"><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>, <span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">188</td><td>&#160;</td></tr><tr><td class="number">189</td><td>        <span class="c">// pause</span></td></tr><tr><td class="number">190</td><td>        <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">10</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">191</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">192</td><td>&#160;</td></tr><tr><td class="number">193</td><td>    <a href="http://www.allegro.cc/manual/set_mouse_sprite" target="_blank"><span class="a">set_mouse_sprite</span></a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">194</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>city<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">195</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>crosshair<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">196</td><td>    <a href="http://www.allegro.cc/manual/allegro_exit" target="_blank"><span class="a">allegro_exit</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">197</td><td><span class="k2">}</span></td></tr><tr><td class="number">198</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

If anyone can help, it would be greatly appreciated! <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (David_at_wedu)</author>
		<pubDate>Sat, 01 Jul 2006 20:41:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why do you not do any error checking?</p><p>EDIT: Oh yeah, I see now. You&#39;re reading <i>that</i> book... <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>Solution: check for errors and it will soon all be clear. Most probably  one or more bitmaps that you try to load can&#39;t be loaded.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Sat, 01 Jul 2006 20:43:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What is this famous book, that people talk about here on the boards from time to time?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (count)</author>
		<pubDate>Mon, 03 Jul 2006 05:38:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The <i>Necronomicon All In One</i>, by Jonathan Alhazred.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Mon, 03 Jul 2006 06:35:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
What is this famous book, that people talk about here on the boards from time to time?
</p></div></div><p>
It&#39;s called Game Programming All in One: second edition and the author is Jonathan Harbour. I really don&#39;t think the book is all that bad, but I have picked up on some of what people here have been saying in regards to bad coding practices, how he&#39;s basically anti-C++ (because he probably doesn&#39;t <b>get it</b>), and apparently the guy&#39;s a jerk if anyone dares to call him on any of his mistakes.</p><p>But, if the book gets me at least rolling on working with Allegro -- I&#39;m about halfway through the book -- then I&#39;ll be happy. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (David_at_wedu)</author>
		<pubDate>Mon, 03 Jul 2006 21:24:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I found the book pretty handy to get started, as well as for random things here and there, but now that I&#39;m started I&#39;ve pretty much already left that book behind <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> As soon as the example programs in it started crashing I knew something was terribly wrong, hehe.  </p><p>I don&#39;t know why he hates C++ though <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />  I went ahead and put all my allegro stuff in classes anyway, screw him &gt;_&gt;
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrknPhoenix)</author>
		<pubDate>Mon, 03 Jul 2006 21:27:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
As soon as the example programs in it started crashing I knew something was terribly wrong, hehe.
</p></div></div><p>
I haven&#39;t really had any of the examples crash, save for a few that used variable names that were defined elsewhere already (MAX comes to mind). Other than that, I&#39;ve only encountered depreciated text handling functions, which I quickly looked up in the Allegro manual and updated.</p><p>Still, I do wish the book were C++-centric, if only because I learn better off seeing examples.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (David_at_wedu)</author>
		<pubDate>Mon, 03 Jul 2006 21:45:53 +0000</pubDate>
	</item>
</rss>
