<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Mouse access violation?</title>
		<link>http://www.allegro.cc/forums/view/585780</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 06 Jun 2006 19:42:30 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Whenever I try to run a program that uses allegro&#39;s mouse functions, it crashes with an access violation.  Always.  I won&#39;t bother posting code, because it just always happens with whatever it is.  It happened with my own programs using the mouse, so I figured I was just doing something wrong.  So I broke out my copy of Game Programming All in One which has a CD with example programs on it, and compiled a program out of that book that uses the mouse.</p><p>Same thing happened, access violation <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />  Anyone know what could be going on?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrknPhoenix)</author>
		<pubDate>Tue, 06 Jun 2006 07:05:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Does the example program crash as well (exmouse)? What version of Allegro are you running? I&#39;m also assuming this is in Windows.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ultio)</author>
		<pubDate>Tue, 06 Jun 2006 09:04:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Shared dll, compiling with dev-c++ mingw32, and what happens is the program crashes with an access fault on exit.  And the mouse doesn&#39;t display.  I just tested it a little more and it appears it only happens when show_mouse is used with the buffer as the parameter.  Nothing else crashes besides the program on exit.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrknPhoenix)</author>
		<pubDate>Tue, 06 Jun 2006 09:06:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Did you try the exmouse.exe example program? If that works without failure then the access violation is with whatever you&#39;re compiling. If not, then it could potentially be a problem with your system or (unlikely) Allegro. If you&#39;re using an ancient version of Allegro, that would be bad. What version are you using (eg: 4.2.1, etc)? What flavor of Windows are you running under?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ultio)</author>
		<pubDate>Tue, 06 Jun 2006 09:11:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Allegro version 4.2.0, windows xp, and unfortunately I haven&#39;t heard of this exmouse test program.  Does it come with allegro?  Perhaps I don&#39;t have it because I downloaded the devpak...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrknPhoenix)</author>
		<pubDate>Tue, 06 Jun 2006 09:14:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hm. I&#39;m not sure if the devpak builds the example programs. If it did, it would be in the allegro directory structure under examples. Here&#39;s the code and you can just compile it yourself and see if it works. After that test we can better figure out what the real problem is.</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="c">/*</span></td></tr><tr><td class="number">2</td><td><span class="c"> *    Example program for the Allegro library, by Shawn Hargreaves.</span></td></tr><tr><td class="number">3</td><td><span class="c"> *</span></td></tr><tr><td class="number">4</td><td><span class="c"> *    This program demonstrates how to get mouse input. The</span></td></tr><tr><td class="number">5</td><td><span class="c"> *    first part of the test retrieves the raw mouse input data</span></td></tr><tr><td class="number">6</td><td><span class="c"> *    and displays it on the screen without using any mouse</span></td></tr><tr><td class="number">7</td><td><span class="c"> *    cursor. When you press a key the standard arrow-like mouse</span></td></tr><tr><td class="number">8</td><td><span class="c"> *    cursor appears.  You are not restricted to this shape,</span></td></tr><tr><td class="number">9</td><td><span class="c"> *    and a second keypress modifies the cursor to be several</span></td></tr><tr><td class="number">10</td><td><span class="c"> *    concentric colored circles. They are not joined together,</span></td></tr><tr><td class="number">11</td><td><span class="c"> *    so you can still see bits of what's behind when you move the</span></td></tr><tr><td class="number">12</td><td><span class="c"> *    cursor over the printed text message.</span></td></tr><tr><td class="number">13</td><td><span class="c"> */</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td><span class="p">#include &lt;stdio.h&gt;</span></td></tr><tr><td class="number">17</td><td>&#160;</td></tr><tr><td class="number">18</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">23</td><td><span class="k2">{</span></td></tr><tr><td class="number">24</td><td>   <span class="k1">int</span> mickeyx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>   <span class="k1">int</span> mickeyy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>   <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>custom_cursor<span class="k2">;</span></td></tr><tr><td class="number">27</td><td>   <span class="k1">int</span> c <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td>   <span class="k1">if</span> <span class="k2">(</span><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="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">30</td><td>      <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">31</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">32</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">33</td><td>&#160;</td></tr><tr><td class="number">34</td><td>   <span class="k1">if</span> <span class="k2">(</span><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, <span class="n">320</span>, <span class="n">200</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">35</td><td>      <span class="k1">if</span> <span class="k2">(</span><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_SAFE, <span class="n">320</span>, <span class="n">200</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">36</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_TEXT, <span class="n">0</span>, <span class="n">0</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">37</td><td>   <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Unable to set any graphic mode\n%s\n"</span>, <a href="http://www.allegro.cc/manual/allegro_error" target="_blank"><span class="a">allegro_error</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>   <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">40</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">41</td><td>&#160;</td></tr><tr><td class="number">42</td><td>   <a href="http://www.allegro.cc/manual/set_palette" target="_blank"><span class="a">set_palette</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/desktop_palette" target="_blank"><span class="a">desktop_palette</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td>   <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>&#160;</td></tr><tr><td class="number">45</td><td>   <span class="c">/* Detect mouse presence */</span></td></tr><tr><td class="number">46</td><td>   <span class="k1">if</span> <span class="k2">(</span><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="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">47</td><td>      <a href="http://www.allegro.cc/manual/textout_centre_ex" target="_blank"><span class="a">textout_centre_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"No mouse detected, but you need one!"</span>,</td></tr><tr><td class="number">48</td><td>      <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a><span class="k3">/</span><span class="n">2</span>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k3">/</span><span class="n">2</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>,</td></tr><tr><td class="number">49</td><td>      <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>      <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td>      <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">53</td><td>&#160;</td></tr><tr><td class="number">54</td><td>   <a href="http://www.allegro.cc/manual/textprintf_centre_ex" target="_blank"><span class="a">textprintf_centre_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a><span class="k3">/</span><span class="n">2</span>, <span class="n">8</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>,</td></tr><tr><td class="number">55</td><td>      <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>,</td></tr><tr><td class="number">56</td><td>      <span class="s">"Driver: %s"</span>, mouse_driver-&gt;name<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">57</td><td>&#160;</td></tr><tr><td class="number">58</td><td>   <span class="k1">do</span> <span class="k2">{</span></td></tr><tr><td class="number">59</td><td>      <span class="c">/* On most platforms (eg. DOS) things will still work correctly</span></td></tr><tr><td class="number">60</td><td><span class="c">       * without this call, but it is a good idea to include it in any</span></td></tr><tr><td class="number">61</td><td><span class="c">       * programs that you want to be portable, because on some platforms</span></td></tr><tr><td class="number">62</td><td><span class="c">       * you may not be able to get any mouse input without it.</span></td></tr><tr><td class="number">63</td><td><span class="c">       */</span></td></tr><tr><td class="number">64</td><td>      <a href="http://www.allegro.cc/manual/poll_mouse" target="_blank"><span class="a">poll_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">65</td><td>&#160;</td></tr><tr><td class="number">66</td><td>      <a href="http://www.allegro.cc/manual/acquire_screen" target="_blank"><span class="a">acquire_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>&#160;</td></tr><tr><td class="number">68</td><td>      <span class="c">/* the mouse position is stored in the variables mouse_x and mouse_y */</span></td></tr><tr><td class="number">69</td><td>      <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">16</span>, <span class="n">48</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>,</td></tr><tr><td class="number">70</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="s">"mouse_x = %-5d"</span>, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>      <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">16</span>, <span class="n">64</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>,</td></tr><tr><td class="number">72</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="s">"mouse_y = %-5d"</span>, <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k2">)</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">/* or you can use this function to measure the speed of movement.</span></td></tr><tr><td class="number">75</td><td><span class="c">       * Note that we only call it every fourth time round the loop:</span></td></tr><tr><td class="number">76</td><td><span class="c">       * there's no need for that other than to slow the numbers down</span></td></tr><tr><td class="number">77</td><td><span class="c">       * a bit so that you will have time to read them...</span></td></tr><tr><td class="number">78</td><td><span class="c">       */</span></td></tr><tr><td class="number">79</td><td>      c<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">80</td><td>      <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>c <span class="k3">&amp;</span> <span class="n">3</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">81</td><td>   <a href="http://www.allegro.cc/manual/get_mouse_mickeys" target="_blank"><span class="a">get_mouse_mickeys</span></a><span class="k2">(</span><span class="k3">&amp;</span>mickeyx, <span class="k3">&amp;</span>mickeyy<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">82</td><td>&#160;</td></tr><tr><td class="number">83</td><td>      <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">16</span>,  <span class="n">88</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>,</td></tr><tr><td class="number">84</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="s">"mickey_x = %-7d"</span>, mickeyx<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">85</td><td>      <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">16</span>, <span class="n">104</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>,</td></tr><tr><td class="number">86</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="s">"mickey_y = %-7d"</span>, mickeyy<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">87</td><td>&#160;</td></tr><tr><td class="number">88</td><td>      <span class="c">/* the mouse button state is stored in the variable mouse_b */</span></td></tr><tr><td class="number">89</td><td>      <span class="k1">if</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></td></tr><tr><td class="number">90</td><td>   <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"left button is pressed "</span>, <span class="n">16</span>, <span class="n">128</span>,</td></tr><tr><td class="number">91</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">92</td><td>      <span class="k1">else</span></td></tr><tr><td class="number">93</td><td>   <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"left button not pressed"</span>, <span class="n">16</span>, <span class="n">128</span>,</td></tr><tr><td class="number">94</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">95</td><td>&#160;</td></tr><tr><td class="number">96</td><td>      <span class="k1">if</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">2</span><span class="k2">)</span></td></tr><tr><td class="number">97</td><td>   <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"right button is pressed "</span>, <span class="n">16</span>, <span class="n">144</span>,</td></tr><tr><td class="number">98</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">99</td><td>      <span class="k1">else</span></td></tr><tr><td class="number">100</td><td>   <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"right button not pressed"</span>, <span class="n">16</span>, <span class="n">144</span>,</td></tr><tr><td class="number">101</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">102</td><td>&#160;</td></tr><tr><td class="number">103</td><td>      <span class="k1">if</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">4</span><span class="k2">)</span></td></tr><tr><td class="number">104</td><td>   <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"middle button is pressed "</span>, <span class="n">16</span>, <span class="n">160</span>,</td></tr><tr><td class="number">105</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">106</td><td>      <span class="k1">else</span></td></tr><tr><td class="number">107</td><td>   <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"middle button not pressed"</span>, <span class="n">16</span>, <span class="n">160</span>,</td></tr><tr><td class="number">108</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">109</td><td>&#160;</td></tr><tr><td class="number">110</td><td>      <span class="c">/* the wheel position is stored in the variable mouse_z */</span></td></tr><tr><td class="number">111</td><td>      <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">16</span>, <span class="n">184</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>,</td></tr><tr><td class="number">112</td><td>        <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="s">"mouse_z = %-5d"</span>, <a href="http://www.allegro.cc/manual/mouse_z" target="_blank"><span class="a">mouse_z</span></a><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>      <a href="http://www.allegro.cc/manual/release_screen" target="_blank"><span class="a">release_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">115</td><td>&#160;</td></tr><tr><td class="number">116</td><td>      <a href="http://www.allegro.cc/manual/vsync" target="_blank"><span class="a">vsync</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">117</td><td>&#160;</td></tr><tr><td class="number">118</td><td>   <span class="k2">}</span> <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">119</td><td>&#160;</td></tr><tr><td class="number">120</td><td>   <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">121</td><td>&#160;</td></tr><tr><td class="number">122</td><td>   <span class="c">/*  To display a mouse pointer, call show_mouse(). There are several</span></td></tr><tr><td class="number">123</td><td><span class="c">    *  things you should be aware of before you do this, though. For one,</span></td></tr><tr><td class="number">124</td><td><span class="c">    *  it won't work unless you call install_timer() first. For another,</span></td></tr><tr><td class="number">125</td><td><span class="c">    *  you must never draw anything onto the screen while the mouse</span></td></tr><tr><td class="number">126</td><td><span class="c">    *  pointer is visible. So before you draw anything, be sure to turn </span></td></tr><tr><td class="number">127</td><td><span class="c">    *  the mouse off with show_mouse(NULL), and turn it back on again when</span></td></tr><tr><td class="number">128</td><td><span class="c">    *  you are done.</span></td></tr><tr><td class="number">129</td><td><span class="c">    */</span></td></tr><tr><td class="number">130</td><td>   <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><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/textout_centre_ex" target="_blank"><span class="a">textout_centre_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Press a key to change cursor"</span>,</td></tr><tr><td class="number">132</td><td>         <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a><span class="k3">/</span><span class="n">2</span>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k3">/</span><span class="n">2</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>,</td></tr><tr><td class="number">133</td><td>         <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><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/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">135</td><td>   <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</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.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>NULL<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 custom mouse cursor bitmap... */</span></td></tr><tr><td class="number">139</td><td>   custom_cursor <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">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">140</td><td>   <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>custom_cursor, <a href="http://www.allegro.cc/manual/bitmap_mask_color" target="_blank"><span class="a">bitmap_mask_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">141</td><td>   <span class="k1">for</span> <span class="k2">(</span>c<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> c<span class="k3">&lt;</span><span class="n">8</span><span class="k2">;</span> c<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">142</td><td>      <a href="http://www.allegro.cc/manual/circle" target="_blank"><span class="a">circle</span></a><span class="k2">(</span>custom_cursor, <span class="n">16</span>, <span class="n">16</span>, c<span class="k3">*</span><span class="n">2</span>, <a href="http://www.allegro.cc/manual/palette_color" target="_blank"><span class="a">palette_color</span></a><span class="k2">[</span>c<span class="k2">]</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">/* select the custom cursor and set the focus point to the middle of it */</span></td></tr><tr><td class="number">145</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>custom_cursor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">146</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">16</span>, <span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">147</td><td>&#160;</td></tr><tr><td class="number">148</td><td>   <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">149</td><td>   <a href="http://www.allegro.cc/manual/textout_centre_ex" target="_blank"><span class="a">textout_centre_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Press a key to quit"</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a><span class="k3">/</span><span class="n">2</span>,</td></tr><tr><td class="number">150</td><td>         <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k3">/</span><span class="n">2</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">151</td><td>   <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">152</td><td>   <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">153</td><td>   <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">154</td><td>&#160;</td></tr><tr><td class="number">155</td><td>   <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>custom_cursor<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">156</td><td>&#160;</td></tr><tr><td class="number">157</td><td>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">158</td><td><span class="k2">}</span></td></tr><tr><td class="number">159</td><td>&#160;</td></tr><tr><td class="number">160</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></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ultio)</author>
		<pubDate>Tue, 06 Jun 2006 09:17:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hm, the exmouse program works.  And the error only seems to occur when I draw to the buffer.  Perhaps I shall post the code tomorrow.  I can&#39;t right now because it&#39;s a long day at work tomorrow, and it&#39;s late and I need sleep, hehe.  It&#39;s spread over 14 files so it&#39;d take awhile to get up here.  I&#39;ll post it tomorrow though <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> Thanks for the help, I appreciate it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrknPhoenix)</author>
		<pubDate>Tue, 06 Jun 2006 09:26:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Don&#39;t mention it. Your code will definitely help debug. What I think is that you&#39;re either blitting to an improperly created/loaded bitmap (are you checking for NULL return on create_bitmap and load_bitmap?) or you&#39;re trying to draw on an already destroy()&#39;ed bitmap.</p><p>Post the code and you&#39;ll get some more help. Good luck.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ultio)</author>
		<pubDate>Tue, 06 Jun 2006 09:28:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sounds like you&#39;re using show_mouse on a non-screen buffer (which there&#39;s not real point to, BTW, you&#39;ll never see it until you blit the buffer wasting resources in the mean-time (ie. draw_sprite the mouse_sprite to the buffer manually before showing the buffer)), then destroying the buffer while the mouse is still trying to draw to it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Tue, 06 Jun 2006 12:14:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, it&#39;s fixed now.  Not how I was hoping for but it is :p</p><p>1) After what Kitty Cat said, I drew to the screen instead of the buffer and that part worked.<br />2) Other things weren&#39;t working because I had show_mouse, scare_mouse, and set_mouse_sprite all in different functions in different files, and apparently allegro didn&#39;t like that very much.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BrknPhoenix)</author>
		<pubDate>Tue, 06 Jun 2006 18:08:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
So I broke out my copy of Game Programming All in One...
</p></div></div><p>
I stopped reading right there and skipped down to the reply box. Don&#39;t use examples from that book and expect them to work. The problem you&#39;re having is this:</p><p>1. Make the mouse draw to your back buffer.<br />2. When you&#39;re done with your program, you destroy the buffer.<br />3. Mouse still wants to draw to the buffer which is now already gone.<br />4. Kaboom!</p><p>Possible solutions:</p><p>1. Use hardware cursors.<br />2. Make the mouse draw to the screen instead of back buffer.<br />3. Make the mouse stop drawing to your back buffer before destroying it.<br />4. Draw the cursor yourself with draw_sprite.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Tue, 06 Jun 2006 19:42:30 +0000</pubDate>
	</item>
</rss>
