<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>draw_sprite() crash</title>
		<link>http://www.allegro.cc/forums/view/585697</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 31 May 2006 21:39:51 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Simple as that. when i call the function draw_sprite it simply crashes my code. I&#39;ve read lots of posts with that problem and i haven&#39;t found the answer. <br />The program is ok, but i&#39;ve tested it with some fprintf&#39;s and it crashes exactly on the first draw_sprite. here&#39;s some code:<br /> 
</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="k1">int</span> allegro<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">2</td><td>      </td></tr><tr><td class="number">3</td><td>    <span class="c">//piped = (int *)malloc(sizeof(int));</span></td></tr><tr><td class="number">4</td><td>     </td></tr><tr><td class="number">5</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">6</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">7</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">8</td><td>  <a href="http://www.allegro.cc/manual/enable_hardware_cursor" target="_blank"><span class="a">enable_hardware_cursor</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>  </td></tr><tr><td class="number">10</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">32</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</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,<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">12</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">13</td><td>    <span class="c">//char buf[128];</span></td></tr><tr><td class="number">14</td><td>    </td></tr><tr><td class="number">15</td><td>   </td></tr><tr><td class="number">16</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>  <span class="c">//cria fundo como bitmap para todas as variacoes </span></td></tr><tr><td class="number">17</td><td>                                        <span class="c">//serem feitas no bitmap e nao no ecra</span></td></tr><tr><td class="number">18</td><td>    </td></tr><tr><td class="number">19</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> buffer, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">9</span>, <span class="n">183</span>, <span class="n">48</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//set do background</span></td></tr><tr><td class="number">20</td><td>    </td></tr><tr><td class="number">21</td><td>    arrowBOT <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">"arrow.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>    BOTSprite <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">"BOT.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>    BOTSecundario <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">"BOT2.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>    obstaculo <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">"obstaculo.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  rato <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">"rato2.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>&#160;</td></tr><tr><td class="number">27</td><td>&#160;</td></tr><tr><td class="number">28</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">29</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>rato<span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">30</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">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">31</td><td> <span class="c">//coordenadas iniciais do bot</span></td></tr><tr><td class="number">32</td><td>    x<span class="k3">=</span><span class="n">295</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>    y<span class="k3">=</span><span class="n">215</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td><a href="http://www.allegro.cc/manual/get_refresh_rate" target="_blank"><span class="a">get_refresh_rate</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>    </td></tr><tr><td class="number">35</td><td> <span class="c">//blit(buffer, screen, 0, 0, mouse_x, mouse_y, 640, 480); </span></td></tr><tr><td class="number">36</td><td>&#160;</td></tr><tr><td class="number">37</td><td>cursor_x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>cursor_y <span class="k3">=</span> <span class="n">0</span><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="c">//incrementa - decrementa velocidade KEY_TILDE  KEY_MINUS</span></td></tr><tr><td class="number">41</td><td>    <span class="k1">while</span> <span class="k2">(</span>idle <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">42</td><td>&#160;</td></tr><tr><td class="number">43</td><td>        </td></tr><tr><td class="number">44</td><td>      <span class="c">//getMouseInfo();</span></td></tr><tr><td class="number">45</td><td>  </td></tr><tr><td class="number">46</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">"..::RAC BOT tester::.."</span>,<span class="n">25</span>,<span class="n">15</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>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">9</span>,<span class="n">183</span>,<span class="n">48</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>&#160;</td></tr><tr><td class="number">48</td><td><span class="c">//imprime variaveis</span></td></tr><tr><td class="number">49</td><td>    textprintf<span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">150</span>,<span class="n">460</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="s">"X = %d"</span>, x<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>    textprintf<span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">250</span>,<span class="n">460</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="s">"Y = %d"</span>, y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td>    textprintf<span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">350</span>,<span class="n">460</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="s">"Velocidade = %d"</span>, vel<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>  </td></tr><tr><td class="number">53</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"x = %d || y = %d || Vel = %d || Angle = %d \n"</span>,x,y,vel,ammount<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td><span class="c">//   </span></td></tr><tr><td class="number">55</td><td>&#160;</td></tr><tr><td class="number">56</td><td>    <span class="c">//linhas verticais         </span></td></tr><tr><td class="number">57</td><td>    <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a><span class="k2">(</span> buffer,<span class="n">25</span>,<span class="n">0</span>,<span class="n">25</span>,<span class="n">480</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">58</td><td>    <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> <span class="k2">(</span>buffer, <span class="n">612</span>,<span class="n">0</span>,<span class="n">612</span>,<span class="n">680</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">59</td><td><span class="c">//linhas horizontais</span></td></tr><tr><td class="number">60</td><td>    <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> <span class="k2">(</span>buffer,<span class="n">0</span>,<span class="n">25</span>,<span class="n">680</span>,<span class="n">25</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">61</td><td>    <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> <span class="k2">(</span>buffer, <span class="n">0</span>,<span class="n">450</span>,<span class="n">680</span>,<span class="n">450</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">62</td><td>&#160;</td></tr><tr><td class="number">63</td><td>&#160;</td></tr><tr><td class="number">64</td><td>&#160;</td></tr><tr><td class="number">65</td><td>&#160;</td></tr><tr><td class="number">66</td><td>&#160;</td></tr><tr><td class="number">67</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">68</td><td><span class="c">//ERROR---------------</span></td></tr><tr><td class="number">69</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,BOTSecundario,x-7,y-10<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>   <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"CHAMOU1"</span><span class="k2">)</span><span class="k2">;</span>    </td></tr><tr><td class="number">71</td><td>&#160;</td></tr><tr><td class="number">72</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,obstaculo, <span class="n">150</span>,<span class="n">100</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a> <span class="k2">(</span>buffer,rato,cursor_x,cursor_y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>&#160;</td></tr><tr><td class="number">75</td><td>    <span class="c">//draw_sprite (buffer,BOTSprite,x,y);</span></td></tr><tr><td class="number">76</td><td>    <a href="http://www.allegro.cc/manual/rotate_sprite" target="_blank"><span class="a">rotate_sprite</span></a><span class="k2">(</span>buffer, BOTSprite, x, y, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span>ammount<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>    </td></tr><tr><td class="number">78</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a> <span class="k2">(</span>buffer,arrowBOT,<span class="n">550</span>,<span class="n">400</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//escreve as setas</span></td></tr></tbody></table></div></div><p>

the error is right there where it&#39;s commented ERROR. <br />Anny ideas what the heck it is? Please, try to be specific, if you want more info, i&#39;ll give it to you.<br />By the way, I&#39;m working under linux (MEPIS) compiling with gcc.<br />Thank you...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (JMonteiro .)</author>
		<pubDate>Wed, 31 May 2006 21:12:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Check the return value of load_bitmap.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Wed, 31 May 2006 21:19:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The arrowBOT = load_bitmap(&quot;arrow.bmp&quot;,NULL) gives 134796800. (making fprintf(stderr,&quot;%d&quot;,arrowBOT);), i suppose it gives an integer..
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (JMonteiro .)</author>
		<pubDate>Wed, 31 May 2006 21:23:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The return value of load_bitmap() is a BITMAP pointer. You&#39;re supposed to check if the pointer is NULL or not NULL. If it is NULL it means load_bitmap() failed. You are supposed to check that every time you call load_bitmap().</p><p>Why are you drawing your first sprite to screen when you have made a buffer to draw to?</p><p>Why do you call acquire_screen()?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Wed, 31 May 2006 21:27:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve checked it, it doesn&#39;t return NULL. <br />As for the second question, it was supposed to write to the buffer, but due to some tests i forgot to change that before posting. But it&#39;s buffer and it&#39;s not working..  :\</p><p>I&#39;ve done the acquire_screen coz it was recommended in one post i saw, initialy it wasn&#39;t there.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (JMonteiro .)</author>
		<pubDate>Wed, 31 May 2006 21:33:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I edited my last post while you were typing. To reiterate: you must check that every bitmap loaded OK. If you get one wrong (because of wrong path, or mismatching filename case, or whatever), your code will crash. I also added a question about calling acquire_screen(). EDIT: hehe...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Wed, 31 May 2006 21:35:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks man, i missed one bitmap when i changed the folder of my sources <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> ..</p><p>Thank you so much for helping me get there <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (JMonteiro .)</author>
		<pubDate>Wed, 31 May 2006 21:39:51 +0000</pubDate>
	</item>
</rss>
