<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Bitmap array</title>
		<link>http://www.allegro.cc/forums/view/584064</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 10 May 2006 16:00:46 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now I know 24,467 people have asked how to do this or have been shown how to do this -- but when I finally can&#39;t remember how to, the Allegro search completely fails me. How on earth do you load into a <tt>BITMAP*</tt> array?!</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>sprite_g<span class="k2">[</span><span class="n">255</span><span class="k2">]</span><span class="k2">;</span>

main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
  sprite_g<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">=</span><a href="http://www.allegro.cc/manual/load_pcx" target="_blank"><span class="a">load_pcx</span></a><span class="k2">(</span><span class="s">"file.pcx"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
  sprite_g<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k3">=</span><a href="http://www.allegro.cc/manual/load_pcx" target="_blank"><span class="a">load_pcx</span></a><span class="k2">(</span><span class="s">"file.pcx"</span>,NULL<span class="k2">)</span><span class="k2">;</span>

  <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,sprite_g<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,sprite_g<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>,<span class="n">320</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>

  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span><span class="n">255</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>sprite_g<span class="k3">&lt;</span>i&gt;<span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

This is crashing for me every time. Checked my file paths, they&#39;re correct. I can get this to work:
</p><div class="source-code snippet"><div class="inner"><pre>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span><span class="n">255</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
    sprite_g<span class="k3">&lt;</span>i&gt;<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">20</span>,<span class="n">20</span><span class="k2">)</span><span class="k2">;</span>
    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>sprite_g<span class="k3">&lt;</span>i&gt;,<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>
  <span class="k2">}</span>
  <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,sprite_g<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

But whenever I load the file into the array it&#39;s not workin&#39;.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ceagon Xylas)</author>
		<pubDate>Wed, 10 May 2006 10:31:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>1. Initialize bitmaps to 0 before loading.<br />2. Check if 0 before drawing.<br />3. Check if 0 before destroying.<br />4. Set to 0 after destroying.</p><p>Note: #3 may not be necessary.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Wed, 10 May 2006 10:36:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If your code, you load two bitmaps, all the other positions have trash since they aren&#39;t initialized. At the end of the program you try to destroy 256 bitmaps, but only two have been allocated. Probably when i = 2 destroy_bitmap crashes.</p><p>(Plus miran&#39;s suggestions, of course)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Wed, 10 May 2006 10:37:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s crashing on the <tt>draw_sprite()</tt> function almost certainly. The reason I say that is because it runs fine until I press &#39;a&#39; in this program:</p><div class="source-code snippet"><div class="inner"><pre><span class="c">//declare bitmaps</span>

main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>end_program<span class="k2">)</span> <span class="k2">{</span>
    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_A<span class="k2">]</span><span class="k2">)</span> <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,sprite_g<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
    <span class="c">//blit the buffer</span>
  <span class="k2">}</span>
  <span class="c">//destroy_bitmap for loop</span>
<span class="k2">}</span>
</pre></div></div><p>

I&#39;ll try what you said, miran.</p><p>[edit]<br />Yay! I solved it! Thanks guys! =P<br />Basically, yeah, just had to initialize the entire array.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ceagon Xylas)</author>
		<pubDate>Wed, 10 May 2006 10:40:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yay!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Wed, 10 May 2006 12:33:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
It&#39;s crashing on the draw_sprite() function almost certainly.
</p></div></div><p>

<b>ALMOST</b>     What do you mean almost, dont you know ?</p><p>Do you know how to use a debugger ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (A J)</author>
		<pubDate>Wed, 10 May 2006 14:19:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>More importantly, initialize allegro!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Wed, 10 May 2006 16:00:46 +0000</pubDate>
	</item>
</rss>
